Skip to content

Commit 0d214f2

Browse files
Dragan Simicbroonie
authored andcommitted
regulator: rk808: Restrict DVS GPIOs to the RK808 variant only
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: 1137529 ("regulator: rk808: Add regulator driver for RK818") Reported-by: Diederik de Haas <didi.debian@cknow.org> Signed-off-by: Dragan Simic <dsimic@manjaro.org> Link: https://patch.msgid.link/9a415c59699e76fc7b88a2552520a4ca2538f44e.1728902488.git.dsimic@manjaro.org Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent bbc1baa commit 0d214f2

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

drivers/regulator/rk808-regulator.c

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1849,7 +1849,7 @@ static int rk808_regulator_dt_parse_pdata(struct device *dev, struct regmap *map
18491849
}
18501850

18511851
if (!pdata->dvs_gpio[i]) {
1852-
dev_info(dev, "there is no dvs%d gpio\n", i);
1852+
dev_dbg(dev, "there is no dvs%d gpio\n", i);
18531853
continue;
18541854
}
18551855

@@ -1884,12 +1884,6 @@ static int rk808_regulator_probe(struct platform_device *pdev)
18841884
if (!pdata)
18851885
return -ENOMEM;
18861886

1887-
ret = rk808_regulator_dt_parse_pdata(&pdev->dev, regmap, pdata);
1888-
if (ret < 0)
1889-
return ret;
1890-
1891-
platform_set_drvdata(pdev, pdata);
1892-
18931887
switch (rk808->variant) {
18941888
case RK805_ID:
18951889
regulators = rk805_reg;
@@ -1900,6 +1894,11 @@ static int rk808_regulator_probe(struct platform_device *pdev)
19001894
nregulators = ARRAY_SIZE(rk806_reg);
19011895
break;
19021896
case RK808_ID:
1897+
/* DVS0/1 GPIOs are supported on the RK808 only */
1898+
ret = rk808_regulator_dt_parse_pdata(&pdev->dev, regmap, pdata);
1899+
if (ret < 0)
1900+
return ret;
1901+
19031902
regulators = rk808_reg;
19041903
nregulators = RK808_NUM_REGULATORS;
19051904
break;
@@ -1924,6 +1923,8 @@ static int rk808_regulator_probe(struct platform_device *pdev)
19241923
"unsupported RK8xx ID %lu\n", rk808->variant);
19251924
}
19261925

1926+
platform_set_drvdata(pdev, pdata);
1927+
19271928
config.dev = &pdev->dev;
19281929
config.driver_data = pdata;
19291930
config.regmap = regmap;

0 commit comments

Comments
 (0)