mirror of
https://github.com/torvalds/linux.git
synced 2024-12-19 09:32:32 +00:00
02d12855f5
USB4 spec specifies standard set of sideband operations that are send over the low speed link to access either retimers on the link or the link parter (the other router). The USB4 retimer spec extends these and adds operations for retimer NVM upgrade. This implements the retimer access and NVM upgrade USB4 port sideband operations which we need for retimer support in the patch that follows. Signed-off-by: Rajmohan Mani <rajmohan.mani@intel.com> Co-developed-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
32 lines
1002 B
C
32 lines
1002 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* USB4 port sideband registers found on routers and retimers
|
|
*
|
|
* Copyright (C) 2020, Intel Corporation
|
|
* Authors: Mika Westerberg <mika.westerberg@linux.intel.com>
|
|
* Rajmohan Mani <rajmohan.mani@intel.com>
|
|
*/
|
|
|
|
#ifndef _SB_REGS
|
|
#define _SB_REGS
|
|
|
|
#define USB4_SB_OPCODE 0x08
|
|
|
|
enum usb4_sb_opcode {
|
|
USB4_SB_OPCODE_ERR = 0x20525245, /* "ERR " */
|
|
USB4_SB_OPCODE_ONS = 0x444d4321, /* "!CMD" */
|
|
USB4_SB_OPCODE_ENUMERATE_RETIMERS = 0x4d554e45, /* "ENUM" */
|
|
USB4_SB_OPCODE_QUERY_LAST_RETIMER = 0x5453414c, /* "LAST" */
|
|
USB4_SB_OPCODE_GET_NVM_SECTOR_SIZE = 0x53534e47, /* "GNSS" */
|
|
USB4_SB_OPCODE_NVM_SET_OFFSET = 0x53504f42, /* "BOPS" */
|
|
USB4_SB_OPCODE_NVM_BLOCK_WRITE = 0x574b4c42, /* "BLKW" */
|
|
USB4_SB_OPCODE_NVM_AUTH_WRITE = 0x48545541, /* "AUTH" */
|
|
USB4_SB_OPCODE_NVM_READ = 0x52524641, /* "AFRR" */
|
|
};
|
|
|
|
#define USB4_SB_METADATA 0x09
|
|
#define USB4_SB_METADATA_NVM_AUTH_WRITE_MASK GENMASK(5, 0)
|
|
#define USB4_SB_DATA 0x12
|
|
|
|
#endif
|