]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
platform/x86: mlx-platform: Add support for tachometer speed register
authorVadim Pasternak <vadimp@mellanox.com>
Mon, 18 Mar 2019 10:58:22 +0000 (10:58 +0000)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 6 May 2019 14:54:42 +0000 (17:54 +0300)
Add support for tachometer speed register for the next generation
systems MQMB7xx, MSN37xx, MSN34xx, MSN38xx.

All these systems support tachometer speed capability register.
This register is to be provided mlxreg-fan driver.

Signed-off-by: Vadim Pasternak <vadimp@mellanox.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/platform/x86/mlx-platform.c

index 48fa7573e29b29f7966339b1f00868e036aa8fc7..3f129a28ee43068bbe95fcdf22b0e5d5d8a55f7d 100644 (file)
@@ -72,6 +72,7 @@
 #define MLXPLAT_CPLD_LPC_REG_FAN_CAP1_OFFSET   0xf5
 #define MLXPLAT_CPLD_LPC_REG_FAN_CAP2_OFFSET   0xf6
 #define MLXPLAT_CPLD_LPC_REG_FAN_DRW_CAP_OFFSET        0xf7
+#define MLXPLAT_CPLD_LPC_REG_TACHO_SPEED_OFFSET        0xf8
 #define MLXPLAT_CPLD_LPC_IO_RANGE              0x100
 #define MLXPLAT_CPLD_LPC_I2C_CH1_OFF           0xdb
 #define MLXPLAT_CPLD_LPC_I2C_CH2_OFF           0xda
@@ -1339,6 +1340,10 @@ static struct mlxreg_core_data mlxplat_mlxcpld_default_fan_data[] = {
                .capability = MLXPLAT_CPLD_LPC_REG_FAN_CAP2_OFFSET,
                .bit = BIT(3),
        },
+       {
+               .label = "conf",
+               .capability = MLXPLAT_CPLD_LPC_REG_TACHO_SPEED_OFFSET,
+       },
 };
 
 static struct mlxreg_core_platform_data mlxplat_default_fan_data = {
@@ -1428,6 +1433,7 @@ static bool mlxplat_mlxcpld_readable_reg(struct device *dev, unsigned int reg)
        case MLXPLAT_CPLD_LPC_REG_FAN_CAP1_OFFSET:
        case MLXPLAT_CPLD_LPC_REG_FAN_CAP2_OFFSET:
        case MLXPLAT_CPLD_LPC_REG_FAN_DRW_CAP_OFFSET:
+       case MLXPLAT_CPLD_LPC_REG_TACHO_SPEED_OFFSET:
                return true;
        }
        return false;
@@ -1484,6 +1490,7 @@ static bool mlxplat_mlxcpld_volatile_reg(struct device *dev, unsigned int reg)
        case MLXPLAT_CPLD_LPC_REG_FAN_CAP1_OFFSET:
        case MLXPLAT_CPLD_LPC_REG_FAN_CAP2_OFFSET:
        case MLXPLAT_CPLD_LPC_REG_FAN_DRW_CAP_OFFSET:
+       case MLXPLAT_CPLD_LPC_REG_TACHO_SPEED_OFFSET:
                return true;
        }
        return false;