Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

regulator: qcom_spmi: Add PM8950 SPMI regulator

The PM8950 has 5 HFSMPS, 1 FTSMPS2.5 (s5, controlling APC voltage)
and 23 LDO regulators.
Add the configuration for this chip.

Signed-off-by: Angelo G. Del Regno <kholk11@gmail.com>
Link: https://lore.kernel.org/r/20190921095043.62593-3-kholk11@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Angelo G. Del Regno and committed by
Mark Brown
e4ff1710 04a99ce6

+55
+21
Documentation/devicetree/bindings/regulator/qcom,spmi-regulator.txt
··· 8 8 "qcom,pm8841-regulators" 9 9 "qcom,pm8916-regulators" 10 10 "qcom,pm8941-regulators" 11 + "qcom,pm8950-regulators" 11 12 "qcom,pm8994-regulators" 12 13 "qcom,pmi8994-regulators" 13 14 "qcom,pms405-regulators" ··· 72 71 Value type: <phandle> 73 72 Definition: Reference to regulator supplying the input pin, as 74 73 described in the data sheet. 74 + 75 + - vdd_s1-supply: 76 + - vdd_s2-supply: 77 + - vdd_s3-supply: 78 + - vdd_s4-supply: 79 + - vdd_s4-supply: 80 + - vdd_s5-supply: 81 + - vdd_s6-supply: 82 + - vdd_l1_l19-supply: 83 + - vdd_l2_l23-supply: 84 + - vdd_l3-supply: 85 + - vdd_l4_l5_l6_l7_l16-supply: 86 + - vdd_l8_l11_l12_l17_l22-supply: 87 + - vdd_l9_l10_l13_l14_l15_l18-supply: 88 + - vdd_l20-supply: 89 + - vdd_l21-supply: 90 + Usage: optional (pm8950 only) 91 + Value type: <phandle> 92 + Definition: reference to regulator supplying the input pin, as 93 + described in the data sheet 75 94 76 95 - vdd_s1-supply: 77 96 - vdd_s2-supply:
+34
drivers/regulator/qcom_spmi-regulator.c
··· 1869 1869 { } 1870 1870 }; 1871 1871 1872 + static const struct spmi_regulator_data pm8950_regulators[] = { 1873 + { "s1", 0x1400, "vdd_s1", }, 1874 + { "s2", 0x1700, "vdd_s2", }, 1875 + { "s3", 0x1a00, "vdd_s3", }, 1876 + { "s4", 0x1d00, "vdd_s4", }, 1877 + { "s5", 0x2000, "vdd_s5", }, 1878 + { "s6", 0x2300, "vdd_s6", }, 1879 + { "l1", 0x4000, "vdd_l1_l19", }, 1880 + { "l2", 0x4100, "vdd_l2_l23", }, 1881 + { "l3", 0x4200, "vdd_l3", }, 1882 + { "l4", 0x4300, "vdd_l4_l5_l6_l7_l16", }, 1883 + { "l5", 0x4400, "vdd_l4_l5_l6_l7_l16", }, 1884 + { "l6", 0x4500, "vdd_l4_l5_l6_l7_l16", }, 1885 + { "l7", 0x4600, "vdd_l4_l5_l6_l7_l16", }, 1886 + { "l8", 0x4700, "vdd_l8_l11_l12_l17_l22", }, 1887 + { "l9", 0x4800, "vdd_l9_l10_l13_l14_l15_l18", }, 1888 + { "l10", 0x4900, "vdd_l9_l10_l13_l14_l15_l18", }, 1889 + { "l11", 0x4a00, "vdd_l8_l11_l12_l17_l22", }, 1890 + { "l12", 0x4b00, "vdd_l8_l11_l12_l17_l22", }, 1891 + { "l13", 0x4c00, "vdd_l9_l10_l13_l14_l15_l18", }, 1892 + { "l14", 0x4d00, "vdd_l9_l10_l13_l14_l15_l18", }, 1893 + { "l15", 0x4e00, "vdd_l9_l10_l13_l14_l15_l18", }, 1894 + { "l16", 0x4f00, "vdd_l4_l5_l6_l7_l16", }, 1895 + { "l17", 0x5000, "vdd_l8_l11_l12_l17_l22", }, 1896 + { "l18", 0x5100, "vdd_l9_l10_l13_l14_l15_l18", }, 1897 + { "l19", 0x5200, "vdd_l1_l19", }, 1898 + { "l20", 0x5300, "vdd_l20", }, 1899 + { "l21", 0x5400, "vdd_l21", }, 1900 + { "l22", 0x5500, "vdd_l8_l11_l12_l17_l22", }, 1901 + { "l23", 0x5600, "vdd_l2_l23", }, 1902 + { } 1903 + }; 1904 + 1872 1905 static const struct spmi_regulator_data pm8994_regulators[] = { 1873 1906 { "s1", 0x1400, "vdd_s1", }, 1874 1907 { "s2", 0x1700, "vdd_s2", }, ··· 1978 1945 { .compatible = "qcom,pm8841-regulators", .data = &pm8841_regulators }, 1979 1946 { .compatible = "qcom,pm8916-regulators", .data = &pm8916_regulators }, 1980 1947 { .compatible = "qcom,pm8941-regulators", .data = &pm8941_regulators }, 1948 + { .compatible = "qcom,pm8950-regulators", .data = &pm8950_regulators }, 1981 1949 { .compatible = "qcom,pm8994-regulators", .data = &pm8994_regulators }, 1982 1950 { .compatible = "qcom,pmi8994-regulators", .data = &pmi8994_regulators }, 1983 1951 { .compatible = "qcom,pms405-regulators", .data = &pms405_regulators },