platform/x86: mlx-platform: Add extra CPLD for next generation systems
authorVadim Pasternak <vadimp@mellanox.com>
Tue, 26 Feb 2019 08:20:32 +0000 (08:20 +0000)
committerDarren Hart (VMware) <dvhart@infradead.org>
Thu, 7 Mar 2019 16:46:29 +0000 (08:46 -0800)
Add support for CPLD4 for the next generation systems MQMB7xx, MSN37xx,
MSN34xx, MSN38xx.

All these systems are equipped with four programmable device.
The version of this new device is to be exposed to sysfs through
mlxreg-io register.

Signed-off-by: Vadim Pasternak <vadimp@mellanox.com>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
drivers/platform/x86/mlx-platform.c

index aa3311971be6e2dc6e629487039645e6c20c57a0..dd166b2bf7421e20396a4093e2a335a00682a16e 100644 (file)
@@ -25,6 +25,7 @@
 #define MLXPLAT_CPLD_LPC_REG_CPLD1_VER_OFFSET  0x00
 #define MLXPLAT_CPLD_LPC_REG_CPLD2_VER_OFFSET  0x01
 #define MLXPLAT_CPLD_LPC_REG_CPLD3_VER_OFFSET  0x02
+#define MLXPLAT_CPLD_LPC_REG_CPLD4_VER_OFFSET  0x03
 #define MLXPLAT_CPLD_LPC_REG_RESET_CAUSE_OFFSET        0x1d
 #define MLXPLAT_CPLD_LPC_REG_RST_CAUSE1_OFFSET 0x1e
 #define MLXPLAT_CPLD_LPC_REG_RST_CAUSE2_OFFSET 0x1f
@@ -1139,6 +1140,12 @@ static struct mlxreg_core_data mlxplat_mlxcpld_default_ng_regs_io_data[] = {
                .bit = GENMASK(7, 0),
                .mode = 0444,
        },
+       {
+               .label = "cpld4_version",
+               .reg = MLXPLAT_CPLD_LPC_REG_CPLD4_VER_OFFSET,
+               .bit = GENMASK(7, 0),
+               .mode = 0444,
+       },
        {
                .label = "reset_long_pb",
                .reg = MLXPLAT_CPLD_LPC_REG_RESET_CAUSE_OFFSET,
@@ -1369,6 +1376,7 @@ static bool mlxplat_mlxcpld_readable_reg(struct device *dev, unsigned int reg)
        case MLXPLAT_CPLD_LPC_REG_CPLD1_VER_OFFSET:
        case MLXPLAT_CPLD_LPC_REG_CPLD2_VER_OFFSET:
        case MLXPLAT_CPLD_LPC_REG_CPLD3_VER_OFFSET:
+       case MLXPLAT_CPLD_LPC_REG_CPLD4_VER_OFFSET:
        case MLXPLAT_CPLD_LPC_REG_RESET_CAUSE_OFFSET:
        case MLXPLAT_CPLD_LPC_REG_RST_CAUSE1_OFFSET:
        case MLXPLAT_CPLD_LPC_REG_RST_CAUSE2_OFFSET:
@@ -1426,6 +1434,7 @@ static bool mlxplat_mlxcpld_volatile_reg(struct device *dev, unsigned int reg)
        case MLXPLAT_CPLD_LPC_REG_CPLD1_VER_OFFSET:
        case MLXPLAT_CPLD_LPC_REG_CPLD2_VER_OFFSET:
        case MLXPLAT_CPLD_LPC_REG_CPLD3_VER_OFFSET:
+       case MLXPLAT_CPLD_LPC_REG_CPLD4_VER_OFFSET:
        case MLXPLAT_CPLD_LPC_REG_RESET_CAUSE_OFFSET:
        case MLXPLAT_CPLD_LPC_REG_RST_CAUSE1_OFFSET:
        case MLXPLAT_CPLD_LPC_REG_RST_CAUSE2_OFFSET: