Skip to content

Commit 249606d

Browse files
vadimp-nvidiajwrdegoede
authored andcommitted
platform/x86: mlx-platform: Add support for multiply cooling devices
Add new registers to support systems with multiply cooling devices. Modular systems support up-to four cooling devices. This capability is detected according to the registers initial setting. Signed-off-by: Vadim Pasternak <vadimp@nvidia.com> Reviewed-by: Michael <michaelsh@nvidia.com> Link: https://lore.kernel.org/r/20211002093609.3771576-1-vadimp@nvidia.com Signed-off-by: Hans de Goede <hdegoede@redhat.com>
1 parent 5b0a315 commit 249606d

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

drivers/platform/x86/mlx-platform.c

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,12 +120,15 @@
120120
#define MLXPLAT_CPLD_LPC_REG_TACHO4_OFFSET 0xe7
121121
#define MLXPLAT_CPLD_LPC_REG_TACHO5_OFFSET 0xe8
122122
#define MLXPLAT_CPLD_LPC_REG_TACHO6_OFFSET 0xe9
123+
#define MLXPLAT_CPLD_LPC_REG_PWM2_OFFSET 0xea
123124
#define MLXPLAT_CPLD_LPC_REG_TACHO7_OFFSET 0xeb
124125
#define MLXPLAT_CPLD_LPC_REG_TACHO8_OFFSET 0xec
125126
#define MLXPLAT_CPLD_LPC_REG_TACHO9_OFFSET 0xed
126127
#define MLXPLAT_CPLD_LPC_REG_TACHO10_OFFSET 0xee
127128
#define MLXPLAT_CPLD_LPC_REG_TACHO11_OFFSET 0xef
128129
#define MLXPLAT_CPLD_LPC_REG_TACHO12_OFFSET 0xf0
130+
#define MLXPLAT_CPLD_LPC_REG_PWM3_OFFSET 0xf3
131+
#define MLXPLAT_CPLD_LPC_REG_PWM4_OFFSET 0xf4
129132
#define MLXPLAT_CPLD_LPC_REG_FAN_CAP1_OFFSET 0xf5
130133
#define MLXPLAT_CPLD_LPC_REG_FAN_CAP2_OFFSET 0xf6
131134
#define MLXPLAT_CPLD_LPC_REG_FAN_DRW_CAP_OFFSET 0xf7
@@ -3414,6 +3417,18 @@ static struct mlxreg_core_data mlxplat_mlxcpld_default_fan_data[] = {
34143417
.label = "pwm1",
34153418
.reg = MLXPLAT_CPLD_LPC_REG_PWM1_OFFSET,
34163419
},
3420+
{
3421+
.label = "pwm2",
3422+
.reg = MLXPLAT_CPLD_LPC_REG_PWM2_OFFSET,
3423+
},
3424+
{
3425+
.label = "pwm3",
3426+
.reg = MLXPLAT_CPLD_LPC_REG_PWM3_OFFSET,
3427+
},
3428+
{
3429+
.label = "pwm4",
3430+
.reg = MLXPLAT_CPLD_LPC_REG_PWM4_OFFSET,
3431+
},
34173432
{
34183433
.label = "tacho1",
34193434
.reg = MLXPLAT_CPLD_LPC_REG_TACHO1_OFFSET,
@@ -3803,6 +3818,9 @@ static bool mlxplat_mlxcpld_writeable_reg(struct device *dev, unsigned int reg)
38033818
case MLXPLAT_CPLD_LPC_REG_WD3_TLEFT_OFFSET:
38043819
case MLXPLAT_CPLD_LPC_REG_WD3_ACT_OFFSET:
38053820
case MLXPLAT_CPLD_LPC_REG_PWM1_OFFSET:
3821+
case MLXPLAT_CPLD_LPC_REG_PWM2_OFFSET:
3822+
case MLXPLAT_CPLD_LPC_REG_PWM3_OFFSET:
3823+
case MLXPLAT_CPLD_LPC_REG_PWM4_OFFSET:
38063824
case MLXPLAT_CPLD_LPC_REG_PWM_CONTROL_OFFSET:
38073825
return true;
38083826
}
@@ -3902,6 +3920,9 @@ static bool mlxplat_mlxcpld_readable_reg(struct device *dev, unsigned int reg)
39023920
case MLXPLAT_CPLD_LPC_REG_CPLD3_MVER_OFFSET:
39033921
case MLXPLAT_CPLD_LPC_REG_CPLD4_MVER_OFFSET:
39043922
case MLXPLAT_CPLD_LPC_REG_PWM1_OFFSET:
3923+
case MLXPLAT_CPLD_LPC_REG_PWM2_OFFSET:
3924+
case MLXPLAT_CPLD_LPC_REG_PWM3_OFFSET:
3925+
case MLXPLAT_CPLD_LPC_REG_PWM4_OFFSET:
39053926
case MLXPLAT_CPLD_LPC_REG_TACHO1_OFFSET:
39063927
case MLXPLAT_CPLD_LPC_REG_TACHO2_OFFSET:
39073928
case MLXPLAT_CPLD_LPC_REG_TACHO3_OFFSET:
@@ -4014,6 +4035,9 @@ static bool mlxplat_mlxcpld_volatile_reg(struct device *dev, unsigned int reg)
40144035
case MLXPLAT_CPLD_LPC_REG_CPLD3_MVER_OFFSET:
40154036
case MLXPLAT_CPLD_LPC_REG_CPLD4_MVER_OFFSET:
40164037
case MLXPLAT_CPLD_LPC_REG_PWM1_OFFSET:
4038+
case MLXPLAT_CPLD_LPC_REG_PWM2_OFFSET:
4039+
case MLXPLAT_CPLD_LPC_REG_PWM3_OFFSET:
4040+
case MLXPLAT_CPLD_LPC_REG_PWM4_OFFSET:
40174041
case MLXPLAT_CPLD_LPC_REG_TACHO1_OFFSET:
40184042
case MLXPLAT_CPLD_LPC_REG_TACHO2_OFFSET:
40194043
case MLXPLAT_CPLD_LPC_REG_TACHO3_OFFSET:
@@ -4069,6 +4093,9 @@ static const struct reg_default mlxplat_mlxcpld_regmap_ng400[] = {
40694093
static const struct reg_default mlxplat_mlxcpld_regmap_eth_modular[] = {
40704094
{ MLXPLAT_CPLD_LPC_REG_GP2_OFFSET, 0x61 },
40714095
{ MLXPLAT_CPLD_LPC_REG_PWM_CONTROL_OFFSET, 0x00 },
4096+
{ MLXPLAT_CPLD_LPC_REG_PWM2_OFFSET, 0x00 },
4097+
{ MLXPLAT_CPLD_LPC_REG_PWM3_OFFSET, 0x00 },
4098+
{ MLXPLAT_CPLD_LPC_REG_PWM4_OFFSET, 0x00 },
40724099
{ MLXPLAT_CPLD_LPC_REG_WD1_ACT_OFFSET, 0x00 },
40734100
{ MLXPLAT_CPLD_LPC_REG_WD2_ACT_OFFSET, 0x00 },
40744101
{ MLXPLAT_CPLD_LPC_REG_WD3_ACT_OFFSET, 0x00 },

0 commit comments

Comments
 (0)