Subject: [PATCH 2/3] ARM: dts: use vmmc-supply of emmc/sd for exynos5422-odroidxu3

From: [email-masked] (Krzysztof Kozlowski)
Date: Mon, 12 Oct 2015 21:13:38 +0900

W dniu 12.10.2015 o 20:08, Anand Moon pisze:
> Hi Krzysztof,
> 
> On 12 October 2015 at 11:19, Krzysztof Kozlowski
> <[email-masked]> wrote:
>> On 12.10.2015 13:42, Krzysztof Kozlowski wrote:
>>> On 12.10.2015 00:46, Anand Moon wrote:
>>>> Added support for vmmc/vqmmc-supply for emmc/sd cards.
>>>> Fixed the min values for regulator ldo13_reg (VDDQ_MMC2).
>>>
>>> I can't see the description of a problem which is fixed. If you fix
>>> something, then please describe what is wrong.
>>>
>>>> Added ramp-delay for LDO9(VDD33_USB3_0).
>>>> Added ramp-delay for LDO13(VDDQ_MMC2).
>>>> Added ramp-delay for LDO15(ETH_P3V3).
>>>>
>>>> Signed-off-by: Anand Moon <[email-masked]>
>>>>
>>>> ---
>>>> Changes based on git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git v4.4-next/dt-samsung branch
>>>>
>>>> Note:
>>>> Changes need for support of UHS-I highspeed cards.
>>>> changes for vqmmc-supply for emmc is not supported.
>>>>
>>>> [    1.831136] vdd_ldo9: ramp_delay not set
>>>> [    1.843049] vdd_ldo13: ramp_delay not set
>>>> [    1.850975] vdd_ldo15: ramp_delay not set
>>>> [    1.862816] vdd_sd: ramp_delay not set
>>>> ---
>>>>  arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 8 +++++++-
>>>>  1 file changed, 7 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>>>> index 26decbd..58c06d3 100644
>>>> --- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>>>> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>>>> @@ -157,6 +157,7 @@
>>>>                              regulator-min-microvolt = <3000000>;
>>>>                              regulator-max-microvolt = <3000000>;
>>>>                              regulator-always-on;
>>>> +                            regulator-ramp-delay = <12000>;
>>>>                      };
>>>>
>>>>                      ldo10_reg: LDO10 {
>>>> @@ -182,9 +183,10 @@
>>>>
>>>>                      ldo13_reg: LDO13 {
>>>>                              regulator-name = "vdd_ldo13";
>>>> -                            regulator-min-microvolt = <2800000>;
>>>> +                            regulator-min-microvolt = <1800000>;
>>>>                              regulator-max-microvolt = <2800000>;
>>>>                              regulator-always-on;
>>>> +                            regulator-ramp-delay = <12000>;
>>>>                      };
>>>>
>>>>                      ldo15_reg: LDO15 {
>>>> @@ -213,6 +215,7 @@
>>>>                              regulator-min-microvolt = <2800000>;
>>>>                              regulator-max-microvolt = <2800000>;
>>>>                              regulator-always-on;
>>>> +                            regulator-ramp-delay = <12000>;
>>>
>>> Where did you get this value from? It looks wrong... My datasheet does
>>> not have 12000 uV/uS.
>>
> 
>> Anand,
>>
>> We have actually been here:
>> http://lists.infradead.org/pipermail/linux-arm-kernel/2015-June/351601.html
>>
>> That time you used 8000. I asked the same question - how did you figure
>> out the exact value.
>>
>> Now we have the same question - why 12000?
>>
>> It is completely fine to make a mistake (I do a lot of them) but please
>> try not to make the same mistake again.
>>
>> BR,
>> Krzysztof
> 
> I will focus more in the future to clamp down my mistakes to minimal.
> 
>>
>>>
>>>>                      };
>>>>
>>>>                      ldo24_reg: LDO24 {
>>>> @@ -338,6 +341,7 @@
>>>>      samsung,dw-mshc-ddr-timing = <0 2>;
>>>>      samsung,dw-mshc-hs400-timing = <0 2>;
>>>>      samsung,read-strobe-delay = <90>;
>>>> +    vmmc-supply = <&ldo3_reg>;
>>>>      pinctrl-names = "default";
>>>>      pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_cd &sd0_rclk>;
>>>>      bus-width = <8>;
>>>> @@ -352,6 +356,8 @@
>>>>      samsung,dw-mshc-ciu-div = <3>;
>>>>      samsung,dw-mshc-sdr-timing = <0 4>;
>>>>      samsung,dw-mshc-ddr-timing = <0 2>;
>>>> +    vmmc-supply = <&ldo19_reg>;
>>>> +    vqmmc-supply = <&ldo13_reg>;
>>>
>>> It looks wrong. LDO13 is used in one place as VQMMC and in other as
>>> VMMC. How did you figure out which regulator supplies which power domain?
>>>
> 
> I refer Schematics diagram to XU4_MAIN_REV0.1.pdf
> 
> From the PWR_PMCI_S2MPS11_LDO_CTRL document it LDO13 point to VDDQ_MMC2.
> 

Aaa right, by mistake I thought that you put LDO13 here and in the node
before, but there is LDO3, not 13. You did this correctly.

But I have two other questions:
1. Maybe these regulators now should not be always-enabled?
2. Why changing minimum voltage of LDO13 to 1.8V? The schematics says 2.8V.

Best regards,
Krzysztof