Skip to content

Commit 3d0593c

Browse files
vadimp-nvidiajwrdegoede
authored andcommitted
platform: mellanox: mlx-platform: add support for additional CPLD
Extend to support 5-th CPLD version, PN and minimal version registers. Signed-off-by: Vadim Pasternak <vadimp@nvidia.com> Reviewed-by: Michael Shych <michaelsh@nvidia.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Link: https://lore.kernel.org/r/20230822113451.13785-7-vadimp@nvidia.com Signed-off-by: Hans de Goede <hdegoede@redhat.com>
1 parent 7d3d0fe commit 3d0593c

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

drivers/platform/x86/mlx-platform.c

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@
9595
#define MLXPLAT_CPLD_LPC_REG_FAN_OFFSET 0x88
9696
#define MLXPLAT_CPLD_LPC_REG_FAN_EVENT_OFFSET 0x89
9797
#define MLXPLAT_CPLD_LPC_REG_FAN_MASK_OFFSET 0x8a
98+
#define MLXPLAT_CPLD_LPC_REG_CPLD5_VER_OFFSET 0x8e
99+
#define MLXPLAT_CPLD_LPC_REG_CPLD5_PN_OFFSET 0x8f
100+
#define MLXPLAT_CPLD_LPC_REG_CPLD5_PN1_OFFSET 0x90
98101
#define MLXPLAT_CPLD_LPC_REG_EROT_OFFSET 0x91
99102
#define MLXPLAT_CPLD_LPC_REG_EROT_EVENT_OFFSET 0x92
100103
#define MLXPLAT_CPLD_LPC_REG_EROT_MASK_OFFSET 0x93
@@ -129,6 +132,7 @@
129132
#define MLXPLAT_CPLD_LPC_REG_DBG4_OFFSET 0xb9
130133
#define MLXPLAT_CPLD_LPC_REG_GP4_RO_OFFSET 0xc2
131134
#define MLXPLAT_CPLD_LPC_REG_SPI_CHNL_SELECT 0xc3
135+
#define MLXPLAT_CPLD_LPC_REG_CPLD5_MVER_OFFSET 0xc4
132136
#define MLXPLAT_CPLD_LPC_REG_WD_CLEAR_OFFSET 0xc7
133137
#define MLXPLAT_CPLD_LPC_REG_WD_CLEAR_WP_OFFSET 0xc8
134138
#define MLXPLAT_CPLD_LPC_REG_WD1_TMR_OFFSET 0xc9
@@ -3431,6 +3435,12 @@ static struct mlxreg_core_data mlxplat_mlxcpld_default_ng_regs_io_data[] = {
34313435
.bit = GENMASK(7, 0),
34323436
.mode = 0444,
34333437
},
3438+
{
3439+
.label = "cpld5_version",
3440+
.reg = MLXPLAT_CPLD_LPC_REG_CPLD5_VER_OFFSET,
3441+
.bit = GENMASK(7, 0),
3442+
.mode = 0444,
3443+
},
34343444
{
34353445
.label = "cpld1_pn",
34363446
.reg = MLXPLAT_CPLD_LPC_REG_CPLD1_PN_OFFSET,
@@ -3459,6 +3469,13 @@ static struct mlxreg_core_data mlxplat_mlxcpld_default_ng_regs_io_data[] = {
34593469
.mode = 0444,
34603470
.regnum = 2,
34613471
},
3472+
{
3473+
.label = "cpld5_pn",
3474+
.reg = MLXPLAT_CPLD_LPC_REG_CPLD5_PN_OFFSET,
3475+
.bit = GENMASK(15, 0),
3476+
.mode = 0444,
3477+
.regnum = 2,
3478+
},
34623479
{
34633480
.label = "cpld1_version_min",
34643481
.reg = MLXPLAT_CPLD_LPC_REG_CPLD1_MVER_OFFSET,
@@ -3483,6 +3500,12 @@ static struct mlxreg_core_data mlxplat_mlxcpld_default_ng_regs_io_data[] = {
34833500
.bit = GENMASK(7, 0),
34843501
.mode = 0444,
34853502
},
3503+
{
3504+
.label = "cpld5_version_min",
3505+
.reg = MLXPLAT_CPLD_LPC_REG_CPLD5_MVER_OFFSET,
3506+
.bit = GENMASK(7, 0),
3507+
.mode = 0444,
3508+
},
34863509
{
34873510
.label = "asic_reset",
34883511
.reg = MLXPLAT_CPLD_LPC_REG_RESET_GP2_OFFSET,
@@ -5031,6 +5054,7 @@ static bool mlxplat_mlxcpld_readable_reg(struct device *dev, unsigned int reg)
50315054
case MLXPLAT_CPLD_LPC_REG_CPLD2_VER_OFFSET:
50325055
case MLXPLAT_CPLD_LPC_REG_CPLD3_VER_OFFSET:
50335056
case MLXPLAT_CPLD_LPC_REG_CPLD4_VER_OFFSET:
5057+
case MLXPLAT_CPLD_LPC_REG_CPLD5_VER_OFFSET:
50345058
case MLXPLAT_CPLD_LPC_REG_CPLD1_PN_OFFSET:
50355059
case MLXPLAT_CPLD_LPC_REG_CPLD1_PN1_OFFSET:
50365060
case MLXPLAT_CPLD_LPC_REG_CPLD2_PN_OFFSET:
@@ -5039,6 +5063,8 @@ static bool mlxplat_mlxcpld_readable_reg(struct device *dev, unsigned int reg)
50395063
case MLXPLAT_CPLD_LPC_REG_CPLD3_PN1_OFFSET:
50405064
case MLXPLAT_CPLD_LPC_REG_CPLD4_PN_OFFSET:
50415065
case MLXPLAT_CPLD_LPC_REG_CPLD4_PN1_OFFSET:
5066+
case MLXPLAT_CPLD_LPC_REG_CPLD5_PN_OFFSET:
5067+
case MLXPLAT_CPLD_LPC_REG_CPLD5_PN1_OFFSET:
50425068
case MLXPLAT_CPLD_LPC_REG_RESET_GP4_OFFSET:
50435069
case MLXPLAT_CPLD_LPC_REG_RESET_CAUSE_OFFSET:
50445070
case MLXPLAT_CPLD_LPC_REG_RST_CAUSE1_OFFSET:
@@ -5150,6 +5176,7 @@ static bool mlxplat_mlxcpld_readable_reg(struct device *dev, unsigned int reg)
51505176
case MLXPLAT_CPLD_LPC_REG_CPLD2_MVER_OFFSET:
51515177
case MLXPLAT_CPLD_LPC_REG_CPLD3_MVER_OFFSET:
51525178
case MLXPLAT_CPLD_LPC_REG_CPLD4_MVER_OFFSET:
5179+
case MLXPLAT_CPLD_LPC_REG_CPLD5_MVER_OFFSET:
51535180
case MLXPLAT_CPLD_LPC_REG_PWM1_OFFSET:
51545181
case MLXPLAT_CPLD_LPC_REG_PWM2_OFFSET:
51555182
case MLXPLAT_CPLD_LPC_REG_PWM3_OFFSET:
@@ -5191,6 +5218,7 @@ static bool mlxplat_mlxcpld_volatile_reg(struct device *dev, unsigned int reg)
51915218
case MLXPLAT_CPLD_LPC_REG_CPLD2_VER_OFFSET:
51925219
case MLXPLAT_CPLD_LPC_REG_CPLD3_VER_OFFSET:
51935220
case MLXPLAT_CPLD_LPC_REG_CPLD4_VER_OFFSET:
5221+
case MLXPLAT_CPLD_LPC_REG_CPLD5_VER_OFFSET:
51945222
case MLXPLAT_CPLD_LPC_REG_CPLD1_PN_OFFSET:
51955223
case MLXPLAT_CPLD_LPC_REG_CPLD1_PN1_OFFSET:
51965224
case MLXPLAT_CPLD_LPC_REG_CPLD2_PN_OFFSET:
@@ -5199,6 +5227,8 @@ static bool mlxplat_mlxcpld_volatile_reg(struct device *dev, unsigned int reg)
51995227
case MLXPLAT_CPLD_LPC_REG_CPLD3_PN1_OFFSET:
52005228
case MLXPLAT_CPLD_LPC_REG_CPLD4_PN_OFFSET:
52015229
case MLXPLAT_CPLD_LPC_REG_CPLD4_PN1_OFFSET:
5230+
case MLXPLAT_CPLD_LPC_REG_CPLD5_PN_OFFSET:
5231+
case MLXPLAT_CPLD_LPC_REG_CPLD5_PN1_OFFSET:
52025232
case MLXPLAT_CPLD_LPC_REG_RESET_GP4_OFFSET:
52035233
case MLXPLAT_CPLD_LPC_REG_RESET_CAUSE_OFFSET:
52045234
case MLXPLAT_CPLD_LPC_REG_RST_CAUSE1_OFFSET:
@@ -5302,6 +5332,7 @@ static bool mlxplat_mlxcpld_volatile_reg(struct device *dev, unsigned int reg)
53025332
case MLXPLAT_CPLD_LPC_REG_CPLD2_MVER_OFFSET:
53035333
case MLXPLAT_CPLD_LPC_REG_CPLD3_MVER_OFFSET:
53045334
case MLXPLAT_CPLD_LPC_REG_CPLD4_MVER_OFFSET:
5335+
case MLXPLAT_CPLD_LPC_REG_CPLD5_MVER_OFFSET:
53055336
case MLXPLAT_CPLD_LPC_REG_PWM1_OFFSET:
53065337
case MLXPLAT_CPLD_LPC_REG_PWM2_OFFSET:
53075338
case MLXPLAT_CPLD_LPC_REG_PWM3_OFFSET:

0 commit comments

Comments
 (0)