Patch "regulator: rk808: Restrict DVS GPIOs to the RK808 variant only" has been added to the 6.12-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    regulator: rk808: Restrict DVS GPIOs to the RK808 variant only

to the 6.12-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     regulator-rk808-restrict-dvs-gpios-to-the-rk808-vari.patch
and it can be found in the queue-6.12 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit d09a3dd6728f1e6f0be5a25a4f1fb7de9aa27d61
Author: Dragan Simic <dsimic@xxxxxxxxxxx>
Date:   Mon Oct 14 12:43:41 2024 +0200

    regulator: rk808: Restrict DVS GPIOs to the RK808 variant only
    
    [ Upstream commit 0d214f27c0e3d9694284c95bac1502c2d247355b ]
    
    The rk808-regulator driver supports multiple PMIC variants from the Rockckip
    RK80x and RK81x series, but the DVS GPIOs are supported on the RK808 variant
    only, according to the DT bindings [1][2][3][4][5][6] and the datasheets for
    the supported PMIC variants. [7][8][9][10][11][12]
    
    Thus, change the probe path so the "dvs-gpios" property is checked for and
    its value possibly used only when the handled PMIC variant is RK808.  There's
    no point in doing that on the other PMIC variants, because they don't support
    the DVS GPIOs, and it goes against the DT bindings to allow a possible out-
    of-place "dvs-gpios" property to actually be handled in the driver.
    
    This eliminates the following messages, emitted when the "dvs-gpios" property
    isn't found in the DT, from the kernel log on boards that actually don't use
    the RK808 variant, which may have provided a source of confusion:
    
      rk808-regulator rk808-regulator.2.auto: there is no dvs0 gpio
      rk808-regulator rk808-regulator.2.auto: there is no dvs1 gpio
    
    Furthermore, demote these kernel messages to debug messages, because they are
    useful during the board bringup phase only.  Emitting them afterwards, on the
    boards that use the RK808 variant, but actually don't use the DVS0/1 GPIOs,
    clutters the kernel log a bit, while they provide no value and may actually
    cause false impression that some PMIC-related issues are present.
    
    [1] Documentation/devicetree/bindings/mfd/rockchip,rk805.yaml
    [2] Documentation/devicetree/bindings/mfd/rockchip,rk806.yaml
    [3] Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml
    [4] Documentation/devicetree/bindings/mfd/rockchip,rk816.yaml
    [5] Documentation/devicetree/bindings/mfd/rockchip,rk817.yaml
    [6] Documentation/devicetree/bindings/mfd/rockchip,rk818.yaml
    [7] https://rockchip.fr/RK805%20datasheet%20V1.2.pdf
    [8] https://wmsc.lcsc.com/wmsc/upload/file/pdf/v2/lcsc/2401261533_Rockchip-RK806-1_C5156483.pdf
    [9] https://rockchip.fr/RK808%20datasheet%20V1.4.pdf
    [10] https://rockchip.fr/RK816%20datasheet%20V1.3.pdf
    [11] https://rockchip.fr/RK817%20datasheet%20V1.01.pdf
    [12] https://rockchip.fr/RK818%20datasheet%20V1.0.pdf
    
    Fixes: 11375293530b ("regulator: rk808: Add regulator driver for RK818")
    Reported-by: Diederik de Haas <didi.debian@xxxxxxxxx>
    Signed-off-by: Dragan Simic <dsimic@xxxxxxxxxxx>
    Link: https://patch.msgid.link/9a415c59699e76fc7b88a2552520a4ca2538f44e.1728902488.git.dsimic@xxxxxxxxxxx
    Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/regulator/rk808-regulator.c b/drivers/regulator/rk808-regulator.c
index 01a8d04879184..37476d2558fda 100644
--- a/drivers/regulator/rk808-regulator.c
+++ b/drivers/regulator/rk808-regulator.c
@@ -1853,7 +1853,7 @@ static int rk808_regulator_dt_parse_pdata(struct device *dev,
 		}
 
 		if (!pdata->dvs_gpio[i]) {
-			dev_info(dev, "there is no dvs%d gpio\n", i);
+			dev_dbg(dev, "there is no dvs%d gpio\n", i);
 			continue;
 		}
 
@@ -1889,12 +1889,6 @@ static int rk808_regulator_probe(struct platform_device *pdev)
 	if (!pdata)
 		return -ENOMEM;
 
-	ret = rk808_regulator_dt_parse_pdata(&pdev->dev, regmap, pdata);
-	if (ret < 0)
-		return ret;
-
-	platform_set_drvdata(pdev, pdata);
-
 	switch (rk808->variant) {
 	case RK805_ID:
 		regulators = rk805_reg;
@@ -1905,6 +1899,11 @@ static int rk808_regulator_probe(struct platform_device *pdev)
 		nregulators = ARRAY_SIZE(rk806_reg);
 		break;
 	case RK808_ID:
+		/* DVS0/1 GPIOs are supported on the RK808 only */
+		ret = rk808_regulator_dt_parse_pdata(&pdev->dev, regmap, pdata);
+		if (ret < 0)
+			return ret;
+
 		regulators = rk808_reg;
 		nregulators = RK808_NUM_REGULATORS;
 		break;
@@ -1930,6 +1929,8 @@ static int rk808_regulator_probe(struct platform_device *pdev)
 		return -EINVAL;
 	}
 
+	platform_set_drvdata(pdev, pdata);
+
 	config.dev = &pdev->dev;
 	config.driver_data = pdata;
 	config.regmap = regmap;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux