mfd: simple-mfd-i2c: Add Delta TN48M CPLD support
authorRobert Marko <robert.marko@sartura.hr>
Mon, 31 Jan 2022 13:30:44 +0000 (14:30 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Feb 2022 08:59:35 +0000 (09:59 +0100)
Delta TN48M switches have a Lattice CPLD that serves
multiple purposes including being a GPIO expander.

So, lets use the simple I2C MFD driver to provide the MFD core.

Also add a virtual symbol which pulls in the simple-mfd-i2c driver and
provide a common symbol on which the subdevice drivers can depend on.

Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Link: https://lore.kernel.org/r/20220131133049.77780-2-robert.marko@sartura.hr
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mfd/Kconfig
drivers/mfd/simple-mfd-i2c.c

index ba0b3eb..be1ad8c 100644 (file)
@@ -297,6 +297,17 @@ config MFD_ASIC3
          This driver supports the ASIC3 multifunction chip found on many
          PDAs (mainly iPAQ and HTC based ones)
 
+config MFD_TN48M_CPLD
+       tristate "Delta Networks TN48M switch CPLD driver"
+       depends on I2C
+       depends on ARCH_MVEBU || COMPILE_TEST
+       select MFD_SIMPLE_MFD_I2C
+       help
+         Select this option to enable support for Delta Networks TN48M switch
+         CPLD. It consists of reset and GPIO drivers. CPLD provides GPIOS-s
+         for the SFP slots as well as power supply related information.
+         SFP support depends on the GPIO driver being selected.
+
 config PMIC_DA903X
        bool "Dialog Semiconductor DA9030/DA9034 PMIC Support"
        depends on I2C=y
index 5153669..0d6a51e 100644 (file)
@@ -64,6 +64,7 @@ static int simple_mfd_i2c_probe(struct i2c_client *i2c)
 
 static const struct of_device_id simple_mfd_i2c_of_match[] = {
        { .compatible = "kontron,sl28cpld" },
+       { .compatible = "delta,tn48m-cpld" },
        {}
 };
 MODULE_DEVICE_TABLE(of, simple_mfd_i2c_of_match);