UPSTREAM: regulator: fan53555: Add support for FAN53555UC13X type
authorWadim Egorov <w.egorov@phytec.de>
Wed, 20 Apr 2016 08:01:08 +0000 (10:01 +0200)
committerHuang, Tao <huangtao@rock-chips.com>
Thu, 20 Apr 2017 00:45:18 +0000 (08:45 +0800)
IC type options 00, 13 and 23 are sharing the same DIE_ID 0.
Let's differentiate between these revisions.
FAN53555UC13X has the ID 0 and REV 0xf, starts at 800mV and
increments in 10mV steps.

Change-Id: I3fdcd305013ccef73145da2b84f303021304876a
Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit e57cbb70b7b3773f78fc6b8b70ab1eb3367e5350)
Signed-off-by: Jacob Chen <jacob2.chen@rock-chips.com>
drivers/regulator/fan53555.c

index f892808d87cf49c950a66d09eedadb60e3351fd6..21c39c538a94de0eeeded9467c5e6a2c77ab4216 100644 (file)
@@ -70,6 +70,12 @@ enum {
        FAN53555_CHIP_ID_08 = 8,
 };
 
+/* IC mask revision */
+enum {
+       FAN53555_CHIP_REV_00 = 0x3,
+       FAN53555_CHIP_REV_13 = 0xf,
+};
+
 enum {
        SILERGY_SYR82X = 8,
 };
@@ -276,6 +282,22 @@ static int fan53555_voltages_setup_fairchild(struct fan53555_device_info *di)
        /* Init voltage range and step */
        switch (di->chip_id) {
        case FAN53555_CHIP_ID_00:
+               switch (di->chip_rev) {
+               case FAN53555_CHIP_REV_00:
+                       di->vsel_min = 600000;
+                       di->vsel_step = 10000;
+                       break;
+               case FAN53555_CHIP_REV_13:
+                       di->vsel_min = 800000;
+                       di->vsel_step = 10000;
+                       break;
+               default:
+                       dev_err(di->dev,
+                               "Chip ID %d with rev %d not supported!\n",
+                               di->chip_id, di->chip_rev);
+                       return -EINVAL;
+               }
+               break;
        case FAN53555_CHIP_ID_01:
        case FAN53555_CHIP_ID_03:
        case FAN53555_CHIP_ID_05: