Commit fc53f5fb authored by Ido Schimmel's avatar Ido Schimmel Committed by Jakub Kicinski

mlxsw: reg: Add Management Cable IO and Notifications register

Add the Management Cable IO and Notifications register. It will be used
to retrieve the power mode status of a module in subsequent patches and
whether a module is present in a cage or not.
Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent f10ba086
...@@ -10402,6 +10402,39 @@ static inline void mlxsw_reg_mlcr_pack(char *payload, u8 local_port, ...@@ -10402,6 +10402,39 @@ static inline void mlxsw_reg_mlcr_pack(char *payload, u8 local_port,
MLXSW_REG_MLCR_DURATION_MAX : 0); MLXSW_REG_MLCR_DURATION_MAX : 0);
} }
/* MCION - Management Cable IO and Notifications Register
* ------------------------------------------------------
* The MCION register is used to query transceiver modules' IO pins and other
* notifications.
*/
#define MLXSW_REG_MCION_ID 0x9052
#define MLXSW_REG_MCION_LEN 0x18
MLXSW_REG_DEFINE(mcion, MLXSW_REG_MCION_ID, MLXSW_REG_MCION_LEN);
/* reg_mcion_module
* Module number.
* Access: Index
*/
MLXSW_ITEM32(reg, mcion, module, 0x00, 16, 8);
enum {
MLXSW_REG_MCION_MODULE_STATUS_BITS_PRESENT_MASK = BIT(0),
MLXSW_REG_MCION_MODULE_STATUS_BITS_LOW_POWER_MASK = BIT(8),
};
/* reg_mcion_module_status_bits
* Module IO status as defined by SFF.
* Access: RO
*/
MLXSW_ITEM32(reg, mcion, module_status_bits, 0x04, 0, 16);
static inline void mlxsw_reg_mcion_pack(char *payload, u8 module)
{
MLXSW_REG_ZERO(mcion, payload);
mlxsw_reg_mcion_module_set(payload, module);
}
/* MTPPS - Management Pulse Per Second Register /* MTPPS - Management Pulse Per Second Register
* -------------------------------------------- * --------------------------------------------
* This register provides the device PPS capabilities, configure the PPS in and * This register provides the device PPS capabilities, configure the PPS in and
...@@ -12446,6 +12479,7 @@ static const struct mlxsw_reg_info *mlxsw_reg_infos[] = { ...@@ -12446,6 +12479,7 @@ static const struct mlxsw_reg_info *mlxsw_reg_infos[] = {
MLXSW_REG(mgir), MLXSW_REG(mgir),
MLXSW_REG(mrsr), MLXSW_REG(mrsr),
MLXSW_REG(mlcr), MLXSW_REG(mlcr),
MLXSW_REG(mcion),
MLXSW_REG(mtpps), MLXSW_REG(mtpps),
MLXSW_REG(mtutc), MLXSW_REG(mtutc),
MLXSW_REG(mpsc), MLXSW_REG(mpsc),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment