[PATCH 1/2] arm64: dts: exynos7: Add pmic s2mps15 device tree node

Alim Akhtar alim.akhtar at samsung.com
Mon Nov 2 05:01:37 PST 2015



On 11/02/2015 05:55 PM, Krzysztof Kozlowski wrote:
> 2015-11-02 19:04 GMT+09:00 Alim Akhtar <alim.akhtar at samsung.com>:
>> This patch add pmic (s2mps15) node of espresso board,
>
> This patch adds PMIC (S2MPS15)...
>
>> which includes addition of regulators and pmic-clk sub-nodes.
>>
>> Signed-off-by: Abhilash Kesavan <a.kesavan at samsung.com>
>> Signed-off-by: Alim Akhtar <alim.akhtar at samsung.com>
>> ---
>> This patch should go in after driver side changes [1] lands.
>> [1]-> https://www.mail-archive.com/linux-samsung-soc@vger.kernel.org/msg47736.html
>
> Eh? Why? Usually there is not such requirement.
>
Got it, I just thought without driver changes these dts modification 
does not make sense. Thanks for clarification.
>>
>>   arch/arm64/boot/dts/exynos/exynos7-espresso.dts |  349 +++++++++++++++++++++++
>>   1 file changed, 349 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/exynos/exynos7-espresso.dts b/arch/arm64/boot/dts/exynos/exynos7-espresso.dts
>> index 838a3626dac1..8ce04a0ec928 100644
>> --- a/arch/arm64/boot/dts/exynos/exynos7-espresso.dts
>> +++ b/arch/arm64/boot/dts/exynos/exynos7-espresso.dts
>> @@ -53,6 +53,355 @@
>>          status = "okay";
>>   };
>>
>> +&hsi2c_4 {
>> +       samsung,i2c-sda-delay = <100>;
>> +       samsung,i2c-max-bus-freq = <200000>;
>> +       status = "okay";
>> +
>> +       s2mps15_pmic at 66 {
>> +               compatible = "samsung,s2mps15-pmic";
>> +               reg = <0x66>;
>> +               interrupts = <2 0>;
>> +               interrupt-parent = <&gpa0>;
>> +               pinctrl-names = "default";
>> +               pinctrl-0 = <&pmic_irq>;
>> +               wakeup-source;
>> +
>> +               s2mps15_osc: clocks {
>> +                       compatible = "samsung,s2mps13-clk";
>> +                       #clock-cells = <1>;
>> +                       clock-output-names = "s2mps13_ap", "s2mps13_cp",
>> +                               "s2mps13_bt";
>> +               };
>
> Don't you want to use one of these clocks for s3c-rtc (&rtc node)?
>
yes, you are right, rtc on this board is currently broken, mainly 
because of the introduction of rtc_src clock in the s3c-rtc driver.
That is on my do list next. will take a look.

Are you suggesting to remove this -clk node now and add along with rtc 
changes? I feel this should go in along with this patch.

>> +
>> +               regulators {
>> +                       ldo1_reg: LDO1 {
>> +                               regulator-name = "vdd_ldo1";
>> +                               regulator-min-microvolt = <500000>;
>> +                               regulator-max-microvolt = <900000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo2_reg: LDO2 {
>> +                               regulator-name = "vdd_ldo2";
>> +                               regulator-min-microvolt = <1620000>;
>> +                               regulator-max-microvolt = <3300000>;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                               regulator-always-on;
>> +                       };
>> +
>> +                       ldo3_reg: LDO3 {
>> +                               regulator-name = "vdd_ldo3";
>> +                               regulator-min-microvolt = <1620000>;
>> +                               regulator-max-microvolt = <1980000>;
>> +                               regulator-always-on;
>> +                               regulator-boot-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo4_reg: LDO4 {
>> +                               regulator-name = "vdd_ldo4";
>> +                               regulator-min-microvolt = <800000>;
>> +                               regulator-max-microvolt = <1110000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo5_reg: LDO5 {
>> +                               regulator-name = "vdd_ldo5";
>> +                               regulator-min-microvolt = <1620000>;
>> +                               regulator-max-microvolt = <1980000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo6_reg: LDO6 {
>> +                               regulator-name = "vdd_ldo6";
>> +                               regulator-min-microvolt = <2250000>;
>> +                               regulator-max-microvolt = <3300000>;
>> +                               regulator-always-on;
>> +                               regulator-boot-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo7_reg: LDO7 {
>> +                               regulator-name = "vdd_ldo7";
>> +                               regulator-min-microvolt = <700000>;
>> +                               regulator-max-microvolt = <1150000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo8_reg: LDO8 {
>> +                               regulator-name = "vdd_ldo8";
>> +                               regulator-min-microvolt = <700000>;
>> +                               regulator-max-microvolt = <1000000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo9_reg: LDO9 {
>> +                               regulator-name = "vdd_ldo9";
>> +                               regulator-min-microvolt = <700000>;
>> +                               regulator-max-microvolt = <1000000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo10_reg: LDO10 {
>> +                               regulator-name = "vdd_ldo10";
>> +                               regulator-min-microvolt = <700000>;
>> +                               regulator-max-microvolt = <1000000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo11_reg: LDO11 {
>> +                               regulator-name = "vdd_ldo11";
>> +                               regulator-min-microvolt = <1000000>;
>> +                               regulator-max-microvolt = <1300000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo12_reg: LDO12 {
>> +                               regulator-name = "vdd_ldo12";
>> +                               regulator-min-microvolt = <1000000>;
>> +                               regulator-max-microvolt = <1300000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo13_reg: LDO13 {
>> +                               regulator-name = "vdd_ldo13";
>> +                               regulator-min-microvolt = <1000000>;
>> +                               regulator-max-microvolt = <1300000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo14_reg: LDO14 {
>> +                               regulator-name = "vdd_ldo14";
>> +                               regulator-min-microvolt = <1800000>;
>> +                               regulator-max-microvolt = <3375000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo15_reg: LDO15 {
>> +                               regulator-name = "vdd_ldo15";
>> +                               regulator-min-microvolt = <1500000>;
>> +                               regulator-max-microvolt = <2275000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo16_reg: LDO16 {
>> +                               regulator-name = "vdd_ldo16";
>> +                               regulator-min-microvolt = <1800000>;
>> +                               regulator-max-microvolt = <1800000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo17_reg: LDO17 {
>> +                               regulator-name = "vdd_ldo17";
>> +                               regulator-min-microvolt = <1800000>;
>> +                               regulator-max-microvolt = <3375000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo18_reg: LDO18 {
>> +                               regulator-name = "vdd_ldo18";
>> +                               regulator-min-microvolt = <1500000>;
>> +                               regulator-max-microvolt = <2275000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo19_reg: LDO19 {
>> +                               regulator-name = "vdd_ldo19";
>> +                               regulator-min-microvolt = <1800000>;
>> +                               regulator-max-microvolt = <3375000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo20_reg: LDO20 {
>> +                               regulator-name = "vdd_ldo20";
>> +                               regulator-min-microvolt = <1500000>;
>> +                               regulator-max-microvolt = <2275000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo21_reg: LDO21 {
>> +                               regulator-name = "vdd_ldo21";
>> +                               regulator-min-microvolt = <1800000>;
>> +                               regulator-max-microvolt = <3375000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo22_reg: LDO22 {
>> +                               regulator-name = "vdd_ldo22";
>> +                               regulator-min-microvolt = <1200000>;
>> +                               regulator-max-microvolt = <1200000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo23_reg: LDO23 {
>> +                               regulator-name = "vdd_ldo23";
>> +                               regulator-min-microvolt = <1500000>;
>> +                               regulator-max-microvolt = <2275000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo24_reg: LDO24 {
>> +                               regulator-name = "vdd_ldo24";
>> +                               regulator-min-microvolt = <1800000>;
>> +                               regulator-max-microvolt = <3375000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo25_reg: LDO25 {
>> +                               regulator-name = "vdd_ldo25";
>> +                               regulator-min-microvolt = <1800000>;
>> +                               regulator-max-microvolt = <3375000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo26_reg: LDO26 {
>> +                               regulator-name = "vdd_ldo26";
>> +                               regulator-min-microvolt = <700000>;
>> +                               regulator-max-microvolt = <1470000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       ldo27_reg: LDO27 {
>> +                               regulator-name = "vdd_ldo27";
>> +                               regulator-min-microvolt = <1500000>;
>> +                               regulator-max-microvolt = <2275000>;
>> +                               regulator-always-on;
>> +                               regulator-enable-ramp-delay = <125>;
>> +                       };
>> +
>> +                       buck1_reg: BUCK1 {
>> +                               regulator-name = "vdd_mif";
>> +                               regulator-min-microvolt = <500000>;
>> +                               regulator-max-microvolt = <1200000>;
>> +                               regulator-always-on;
>> +                               regulator-boot-on;
>> +                               regulator-ramp-delay = <25000>;
>> +                               regulator-enable-ramp-delay = <250>;
>> +                       };
>> +
>> +                       buck2_reg: BUCK2 {
>> +                               regulator-name = "vdd_atlas";
>> +                               regulator-min-microvolt = <1200000>;
>> +                               regulator-max-microvolt = <1200000>;
>> +                               regulator-always-on;
>> +                               regulator-boot-on;
>> +                               regulator-ramp-delay = <12500>;
>> +                               regulator-enable-ramp-delay = <250>;
>> +                       };
>> +
>> +                       buck3_reg: BUCK3 {
>> +                               regulator-name = "vdd_apollo";
>> +                               regulator-min-microvolt = <1200000>;
>> +                               regulator-max-microvolt = <1200000>;
>> +                               regulator-always-on;
>> +                               regulator-boot-on;
>> +                               regulator-ramp-delay = <12500>;
>> +                               regulator-enable-ramp-delay = <250>;
>> +                       };
>> +
>> +                       buck4_reg: BUCK4 {
>> +                               regulator-name = "vdd_int";
>> +                               regulator-min-microvolt = <500000>;
>> +                               regulator-max-microvolt = <1200000>;
>> +                               regulator-always-on;
>> +                               regulator-boot-on;
>> +                               regulator-ramp-delay = <12500>;
>> +                               regulator-enable-ramp-delay = <250>;
>> +                       };
>> +
>> +                       buck5_reg: BUCK5 {
>> +                               regulator-name = "vdd_buck5";
>> +                               regulator-min-microvolt = <500000>;
>> +                               regulator-max-microvolt = <1300000>;
>> +                               regulator-always-on;
>> +                               regulator-ramp-delay = <25000>;
>> +                               regulator-enable-ramp-delay = <250>;
>> +                       };
>> +
>> +                       buck6_reg: BUCK6 {
>> +                               regulator-name = "vdd_g3d";
>> +                               regulator-min-microvolt = <500000>;
>> +                               regulator-max-microvolt = <1400000>;
>> +                               regulator-always-on;
>> +                               regulator-ramp-delay = <12500>;
>> +                               regulator-enable-ramp-delay = <250>;
>> +                       };
>> +
>> +                       buck7_reg: BUCK7 {
>> +                               regulator-name = "vdd_buck7";
>> +                               regulator-min-microvolt = <1000000>;
>> +                               regulator-max-microvolt = <1500000>;
>> +                               regulator-always-on;
>> +                               regulator-boot-on;
>> +                               regulator-ramp-delay = <25000>;
>> +                               regulator-enable-ramp-delay = <250>;
>> +                       };
>> +
>> +                       buck8_reg: BUCK8 {
>> +                               regulator-name = "vdd_buck8";
>> +                               regulator-min-microvolt = <1000000>;
>> +                               regulator-max-microvolt = <1500000>;
>> +                               regulator-always-on;
>> +                               regulator-boot-on;
>> +                               regulator-ramp-delay = <25000>;
>> +                               regulator-enable-ramp-delay = <250>;
>> +                       };
>> +
>> +                       buck9_reg: BUCK9 {
>> +                               regulator-name = "vdd_buck9";
>> +                               regulator-min-microvolt = <1800000>;
>> +                               regulator-max-microvolt = <2100000>;
>> +                               regulator-always-on;
>> +                               regulator-boot-on;
>> +                               regulator-ramp-delay = <25000>;
>> +                               regulator-enable-ramp-delay = <250>;
>> +                       };
>> +
>> +                       buck10_reg: BUCK10 {
>> +                               regulator-name = "vdd_buck10";
>> +                               regulator-min-microvolt = <1000000>;
>> +                               regulator-max-microvolt = <3000000>;
>> +                               regulator-boot-on;
>> +                               regulator-always-on;
>> +                               regulator-ramp-delay = <25000>;
>> +                               regulator-enable-ramp-delay = <250>;
>> +                       };
>
> All of these ldo3 and bucks in vendor tree for Espresso board have
> ramp delay of 12000. Also they don't have enable-ramp-delay set and
> voltages sometimes differ. I don't have S2MPS15 datasheet so I don't
> know what is the true value... I'll leave it up to you but it looks
> suspicious.
>
These values generally comes from our board design team, so I cann't 
really comment on that, it may vary from board revision etc.
I will check if we have any updated version of recommended value and 
update accordingly.

>> +               };
>> +       };
>> +};
>
> What will be the benefit of defining all of these regulators if they
> are always on and without consumers? No one will disable them, no one
> will change the voltage. Please provide some consumers.
>
As many drivers are not yet enabled in arm64 defconfig, that is one of 
the reason why we are not seeing many consumer for these nodes.
This is the ground work being done for enabling those. If you insist 
will try to reduce what is being used now. Moreover this was used to 
verify functionality of pmic driver as well.


> Best regards,
> Krzysztof
>



More information about the linux-arm-kernel mailing list