diff mbox

[2/3] arm64: allwinner: a64: enable AXP803 for Banana Pi M64

Message ID 20170720230717.58255-2-icenowy@aosc.io (mailing list archive)
State New, archived
Headers show

Commit Message

Icenowy Zheng July 20, 2017, 11:07 p.m. UTC
Banana Pi M64 board uses an AXP803 PMIC.

Enable the PMIC and its regulators.

As we have now proper regulators support, missing or dummy regulators
are changed to the correct ones.

Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
---
 .../boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 116 +++++++++++++++++++--
 1 file changed, 106 insertions(+), 10 deletions(-)

Comments

Chen-Yu Tsai July 21, 2017, 7:42 a.m. UTC | #1
On Fri, Jul 21, 2017 at 7:07 AM, Icenowy Zheng <icenowy@aosc.io> wrote:
> Banana Pi M64 board uses an AXP803 PMIC.
>
> Enable the PMIC and its regulators.
>
> As we have now proper regulators support, missing or dummy regulators
> are changed to the correct ones.
>
> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> ---
>  .../boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 116 +++++++++++++++++++--
>  1 file changed, 106 insertions(+), 10 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
> index 829922d077fb..51d67c0a0edf 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
> @@ -58,13 +58,6 @@
>         chosen {
>                 stdout-path = "serial0:115200n8";
>         };
> -
> -       reg_vcc3v3: vcc3v3 {
> -               compatible = "regulator-fixed";
> -               regulator-name = "vcc3v3";
> -               regulator-min-microvolt = <3300000>;
> -               regulator-max-microvolt = <3300000>;
> -       };
>  };
>
>  &ehci1 {
> @@ -76,6 +69,7 @@
>         pinctrl-0 = <&rgmii_pins>;
>         phy-mode = "rgmii";
>         phy-handle = <&ext_rgmii_phy>;
> +       phy-supply = <&reg_dc1sw>;
>         status = "okay";
>  };
>
> @@ -99,7 +93,7 @@
>  &mmc0 {
>         pinctrl-names = "default";
>         pinctrl-0 = <&mmc0_pins>;
> -       vmmc-supply = <&reg_vcc3v3>;
> +       vmmc-supply = <&reg_dcdc1>;
>         cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
>         cd-inverted;
>         disable-wp;
> @@ -110,7 +104,8 @@
>  &mmc1 {
>         pinctrl-names = "default";
>         pinctrl-0 = <&mmc1_pins>;
> -       vmmc-supply = <&reg_vcc3v3>;
> +       vmmc-supply = <&reg_dldo2>;
> +       vqmmc-supply = <&reg_dldo4>;
>         bus-width = <4>;
>         non-removable;
>         status = "okay";
> @@ -119,7 +114,7 @@
>  &mmc2 {
>         pinctrl-names = "default";
>         pinctrl-0 = <&mmc2_pins>;
> -       vmmc-supply = <&reg_vcc3v3>;
> +       vmmc-supply = <&reg_dcdc1>;
>         bus-width = <8>;
>         non-removable;
>         cap-mmc-hw-reset;
> @@ -130,6 +125,107 @@
>         status = "okay";
>  };
>
> +&r_rsb {
> +       status = "okay";
> +
> +       axp803: pmic@3a3 {
> +               compatible = "x-powers,axp803";
> +               reg = <0x3a3>;
> +               interrupt-parent = <&r_intc>;
> +               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
> +       };
> +};
> +
> +#include "axp803.dtsi"
> +
> +&reg_aldo2 {
> +       regulator-always-on;
> +       regulator-min-microvolt = <1800000>;
> +       regulator-max-microvolt = <3300000>;
> +       regulator-name = "vcc-pl";
> +};
> +
> +&reg_aldo3 {
> +       regulator-always-on;
> +       regulator-min-microvolt = <3000000>;
> +       regulator-max-microvolt = <3000000>;
> +       regulator-name = "vcc-pll-avcc";
> +};
> +
> +&reg_dc1sw {
> +       regulator-name = "vcc-phy";
> +};
> +
> +&reg_dcdc1 {
> +       regulator-always-on;
> +       regulator-min-microvolt = <3300000>;
> +       regulator-max-microvolt = <3300000>;
> +       regulator-name = "vcc-3v3";
> +};
> +
> +&reg_dcdc2 {
> +       regulator-always-on;
> +       regulator-min-microvolt = <1000000>;

The datasheet says the minimum voltage is 1.04V.

> +       regulator-max-microvolt = <1300000>;
> +       regulator-name = "vdd-cpux";
> +};
> +
> +/* DCDC3 is polyphased with DCDC2 */
> +
> +&reg_dcdc5 {
> +       regulator-always-on;
> +       regulator-min-microvolt = <1500000>;
> +       regulator-max-microvolt = <1500000>;
> +       regulator-name = "vcc-dram";
> +};
> +
> +&reg_dcdc6 {
> +       regulator-always-on;
> +       regulator-min-microvolt = <1100000>;
> +       regulator-max-microvolt = <1100000>;
> +       regulator-name = "vdd-sys";
> +};
> +
> +&reg_dldo1 {
> +       regulator-min-microvolt = <3300000>;
> +       regulator-max-microvolt = <3300000>;
> +       regulator-name = "vcc-hdmi-dsi";
> +};
> +
> +&reg_dldo2 {
> +       regulator-min-microvolt = <3300000>;
> +       regulator-max-microvolt = <3300000>;
> +       regulator-name = "vcc-wifi";
> +};
> +
> +&reg_dldo4 {
> +       regulator-min-microvolt = <1800000>;
> +       regulator-max-microvolt = <3300000>;
> +       regulator-name = "vcc-wifi-io";
> +};
> +
> +&reg_eldo1 {
> +       regulator-min-microvolt = <1800000>;
> +       regulator-max-microvolt = <1800000>;
> +       regulator-name = "cpvdd";
> +};
> +

It looks like you are missing a few regulators? I assume you
would add them once the peripherals that use them are added?

Otherwise this patch looks good.

ChenYu

> +/*
> + * The A64 chip cannot work without this regulator off, although
> + * it seems to be only driving the AR100 core.
> + * Maybe we don't still know well about CPUs domain.
> + */
> +&reg_fldo2 {
> +       regulator-always-on;
> +       regulator-min-microvolt = <1100000>;
> +       regulator-max-microvolt = <1100000>;
> +       regulator-name = "vdd-cpus";
> +};
> +
> +&reg_rtc_ldo {
> +       regulator-name = "vcc-rtc";
> +};
> +
>  &uart0 {
>         pinctrl-names = "default";
>         pinctrl-0 = <&uart0_pins_a>;
> --
> 2.13.0
>
> --
> You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
Icenowy Zheng July 21, 2017, 7:44 a.m. UTC | #2
于 2017年7月21日 GMT+08:00 下午3:42:07, Chen-Yu Tsai <wens@csie.org> 写到:
>On Fri, Jul 21, 2017 at 7:07 AM, Icenowy Zheng <icenowy@aosc.io> wrote:
>> Banana Pi M64 board uses an AXP803 PMIC.
>>
>> Enable the PMIC and its regulators.
>>
>> As we have now proper regulators support, missing or dummy regulators
>> are changed to the correct ones.
>>
>> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
>> ---
>>  .../boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 116
>+++++++++++++++++++--
>>  1 file changed, 106 insertions(+), 10 deletions(-)
>>
>> diff --git
>a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>> index 829922d077fb..51d67c0a0edf 100644
>> --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>> @@ -58,13 +58,6 @@
>>         chosen {
>>                 stdout-path = "serial0:115200n8";
>>         };
>> -
>> -       reg_vcc3v3: vcc3v3 {
>> -               compatible = "regulator-fixed";
>> -               regulator-name = "vcc3v3";
>> -               regulator-min-microvolt = <3300000>;
>> -               regulator-max-microvolt = <3300000>;
>> -       };
>>  };
>>
>>  &ehci1 {
>> @@ -76,6 +69,7 @@
>>         pinctrl-0 = <&rgmii_pins>;
>>         phy-mode = "rgmii";
>>         phy-handle = <&ext_rgmii_phy>;
>> +       phy-supply = <&reg_dc1sw>;
>>         status = "okay";
>>  };
>>
>> @@ -99,7 +93,7 @@
>>  &mmc0 {
>>         pinctrl-names = "default";
>>         pinctrl-0 = <&mmc0_pins>;
>> -       vmmc-supply = <&reg_vcc3v3>;
>> +       vmmc-supply = <&reg_dcdc1>;
>>         cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
>>         cd-inverted;
>>         disable-wp;
>> @@ -110,7 +104,8 @@
>>  &mmc1 {
>>         pinctrl-names = "default";
>>         pinctrl-0 = <&mmc1_pins>;
>> -       vmmc-supply = <&reg_vcc3v3>;
>> +       vmmc-supply = <&reg_dldo2>;
>> +       vqmmc-supply = <&reg_dldo4>;
>>         bus-width = <4>;
>>         non-removable;
>>         status = "okay";
>> @@ -119,7 +114,7 @@
>>  &mmc2 {
>>         pinctrl-names = "default";
>>         pinctrl-0 = <&mmc2_pins>;
>> -       vmmc-supply = <&reg_vcc3v3>;
>> +       vmmc-supply = <&reg_dcdc1>;
>>         bus-width = <8>;
>>         non-removable;
>>         cap-mmc-hw-reset;
>> @@ -130,6 +125,107 @@
>>         status = "okay";
>>  };
>>
>> +&r_rsb {
>> +       status = "okay";
>> +
>> +       axp803: pmic@3a3 {
>> +               compatible = "x-powers,axp803";
>> +               reg = <0x3a3>;
>> +               interrupt-parent = <&r_intc>;
>> +               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
>> +       };
>> +};
>> +
>> +#include "axp803.dtsi"
>> +
>> +&reg_aldo2 {
>> +       regulator-always-on;
>> +       regulator-min-microvolt = <1800000>;
>> +       regulator-max-microvolt = <3300000>;
>> +       regulator-name = "vcc-pl";
>> +};
>> +
>> +&reg_aldo3 {
>> +       regulator-always-on;
>> +       regulator-min-microvolt = <3000000>;
>> +       regulator-max-microvolt = <3000000>;
>> +       regulator-name = "vcc-pll-avcc";
>> +};
>> +
>> +&reg_dc1sw {
>> +       regulator-name = "vcc-phy";
>> +};
>> +
>> +&reg_dcdc1 {
>> +       regulator-always-on;
>> +       regulator-min-microvolt = <3300000>;
>> +       regulator-max-microvolt = <3300000>;
>> +       regulator-name = "vcc-3v3";
>> +};
>> +
>> +&reg_dcdc2 {
>> +       regulator-always-on;
>> +       regulator-min-microvolt = <1000000>;
>
>The datasheet says the minimum voltage is 1.04V.

A64 datasheet?

Maybe I need to fix all A64 AXP patches.

>
>> +       regulator-max-microvolt = <1300000>;
>> +       regulator-name = "vdd-cpux";
>> +};
>> +
>> +/* DCDC3 is polyphased with DCDC2 */
>> +
>> +&reg_dcdc5 {
>> +       regulator-always-on;
>> +       regulator-min-microvolt = <1500000>;
>> +       regulator-max-microvolt = <1500000>;
>> +       regulator-name = "vcc-dram";
>> +};
>> +
>> +&reg_dcdc6 {
>> +       regulator-always-on;
>> +       regulator-min-microvolt = <1100000>;
>> +       regulator-max-microvolt = <1100000>;
>> +       regulator-name = "vdd-sys";
>> +};
>> +
>> +&reg_dldo1 {
>> +       regulator-min-microvolt = <3300000>;
>> +       regulator-max-microvolt = <3300000>;
>> +       regulator-name = "vcc-hdmi-dsi";
>> +};
>> +
>> +&reg_dldo2 {
>> +       regulator-min-microvolt = <3300000>;
>> +       regulator-max-microvolt = <3300000>;
>> +       regulator-name = "vcc-wifi";
>> +};
>> +
>> +&reg_dldo4 {
>> +       regulator-min-microvolt = <1800000>;
>> +       regulator-max-microvolt = <3300000>;
>> +       regulator-name = "vcc-wifi-io";
>> +};
>> +
>> +&reg_eldo1 {
>> +       regulator-min-microvolt = <1800000>;
>> +       regulator-max-microvolt = <1800000>;
>> +       regulator-name = "cpvdd";
>> +};
>> +
>
>It looks like you are missing a few regulators? I assume you
>would add them once the peripherals that use them are added?

Yes.

I mainly dropped CSI part, as it seems so complicate.

>
>Otherwise this patch looks good.
>
>ChenYu
>
>> +/*
>> + * The A64 chip cannot work without this regulator off, although
>> + * it seems to be only driving the AR100 core.
>> + * Maybe we don't still know well about CPUs domain.
>> + */
>> +&reg_fldo2 {
>> +       regulator-always-on;
>> +       regulator-min-microvolt = <1100000>;
>> +       regulator-max-microvolt = <1100000>;
>> +       regulator-name = "vdd-cpus";
>> +};
>> +
>> +&reg_rtc_ldo {
>> +       regulator-name = "vcc-rtc";
>> +};
>> +
>>  &uart0 {
>>         pinctrl-names = "default";
>>         pinctrl-0 = <&uart0_pins_a>;
>> --
>> 2.13.0
>>
>> --
>> You received this message because you are subscribed to the Google
>Groups "linux-sunxi" group.
>> To unsubscribe from this group and stop receiving emails from it,
>send an email to linux-sunxi+unsubscribe@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
Chen-Yu Tsai July 21, 2017, 7:49 a.m. UTC | #3
On Fri, Jul 21, 2017 at 3:44 PM, Icenowy Zheng <icenowy@aosc.io> wrote:
>
>
> 于 2017年7月21日 GMT+08:00 下午3:42:07, Chen-Yu Tsai <wens@csie.org> 写到:
>>On Fri, Jul 21, 2017 at 7:07 AM, Icenowy Zheng <icenowy@aosc.io> wrote:
>>> Banana Pi M64 board uses an AXP803 PMIC.
>>>
>>> Enable the PMIC and its regulators.
>>>
>>> As we have now proper regulators support, missing or dummy regulators
>>> are changed to the correct ones.
>>>
>>> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
>>> ---
>>>  .../boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 116
>>+++++++++++++++++++--
>>>  1 file changed, 106 insertions(+), 10 deletions(-)
>>>
>>> diff --git
>>a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>>b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>>> index 829922d077fb..51d67c0a0edf 100644
>>> --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>>> @@ -58,13 +58,6 @@
>>>         chosen {
>>>                 stdout-path = "serial0:115200n8";
>>>         };
>>> -
>>> -       reg_vcc3v3: vcc3v3 {
>>> -               compatible = "regulator-fixed";
>>> -               regulator-name = "vcc3v3";
>>> -               regulator-min-microvolt = <3300000>;
>>> -               regulator-max-microvolt = <3300000>;
>>> -       };
>>>  };
>>>
>>>  &ehci1 {
>>> @@ -76,6 +69,7 @@
>>>         pinctrl-0 = <&rgmii_pins>;
>>>         phy-mode = "rgmii";
>>>         phy-handle = <&ext_rgmii_phy>;
>>> +       phy-supply = <&reg_dc1sw>;
>>>         status = "okay";
>>>  };
>>>
>>> @@ -99,7 +93,7 @@
>>>  &mmc0 {
>>>         pinctrl-names = "default";
>>>         pinctrl-0 = <&mmc0_pins>;
>>> -       vmmc-supply = <&reg_vcc3v3>;
>>> +       vmmc-supply = <&reg_dcdc1>;
>>>         cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
>>>         cd-inverted;
>>>         disable-wp;
>>> @@ -110,7 +104,8 @@
>>>  &mmc1 {
>>>         pinctrl-names = "default";
>>>         pinctrl-0 = <&mmc1_pins>;
>>> -       vmmc-supply = <&reg_vcc3v3>;
>>> +       vmmc-supply = <&reg_dldo2>;
>>> +       vqmmc-supply = <&reg_dldo4>;
>>>         bus-width = <4>;
>>>         non-removable;
>>>         status = "okay";
>>> @@ -119,7 +114,7 @@
>>>  &mmc2 {
>>>         pinctrl-names = "default";
>>>         pinctrl-0 = <&mmc2_pins>;
>>> -       vmmc-supply = <&reg_vcc3v3>;
>>> +       vmmc-supply = <&reg_dcdc1>;
>>>         bus-width = <8>;
>>>         non-removable;
>>>         cap-mmc-hw-reset;
>>> @@ -130,6 +125,107 @@
>>>         status = "okay";
>>>  };
>>>
>>> +&r_rsb {
>>> +       status = "okay";
>>> +
>>> +       axp803: pmic@3a3 {
>>> +               compatible = "x-powers,axp803";
>>> +               reg = <0x3a3>;
>>> +               interrupt-parent = <&r_intc>;
>>> +               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
>>> +       };
>>> +};
>>> +
>>> +#include "axp803.dtsi"
>>> +
>>> +&reg_aldo2 {
>>> +       regulator-always-on;
>>> +       regulator-min-microvolt = <1800000>;
>>> +       regulator-max-microvolt = <3300000>;
>>> +       regulator-name = "vcc-pl";
>>> +};
>>> +
>>> +&reg_aldo3 {
>>> +       regulator-always-on;
>>> +       regulator-min-microvolt = <3000000>;
>>> +       regulator-max-microvolt = <3000000>;
>>> +       regulator-name = "vcc-pll-avcc";
>>> +};
>>> +
>>> +&reg_dc1sw {
>>> +       regulator-name = "vcc-phy";
>>> +};
>>> +
>>> +&reg_dcdc1 {
>>> +       regulator-always-on;
>>> +       regulator-min-microvolt = <3300000>;
>>> +       regulator-max-microvolt = <3300000>;
>>> +       regulator-name = "vcc-3v3";
>>> +};
>>> +
>>> +&reg_dcdc2 {
>>> +       regulator-always-on;
>>> +       regulator-min-microvolt = <1000000>;
>>
>>The datasheet says the minimum voltage is 1.04V.
>
> A64 datasheet?

Yes. V1.1.

>
> Maybe I need to fix all A64 AXP patches.
>
>>
>>> +       regulator-max-microvolt = <1300000>;
>>> +       regulator-name = "vdd-cpux";
>>> +};
>>> +
>>> +/* DCDC3 is polyphased with DCDC2 */
>>> +
>>> +&reg_dcdc5 {
>>> +       regulator-always-on;
>>> +       regulator-min-microvolt = <1500000>;
>>> +       regulator-max-microvolt = <1500000>;
>>> +       regulator-name = "vcc-dram";
>>> +};
>>> +
>>> +&reg_dcdc6 {
>>> +       regulator-always-on;
>>> +       regulator-min-microvolt = <1100000>;
>>> +       regulator-max-microvolt = <1100000>;
>>> +       regulator-name = "vdd-sys";
>>> +};
>>> +
>>> +&reg_dldo1 {
>>> +       regulator-min-microvolt = <3300000>;
>>> +       regulator-max-microvolt = <3300000>;
>>> +       regulator-name = "vcc-hdmi-dsi";
>>> +};
>>> +
>>> +&reg_dldo2 {
>>> +       regulator-min-microvolt = <3300000>;
>>> +       regulator-max-microvolt = <3300000>;
>>> +       regulator-name = "vcc-wifi";
>>> +};
>>> +
>>> +&reg_dldo4 {
>>> +       regulator-min-microvolt = <1800000>;
>>> +       regulator-max-microvolt = <3300000>;
>>> +       regulator-name = "vcc-wifi-io";
>>> +};
>>> +
>>> +&reg_eldo1 {
>>> +       regulator-min-microvolt = <1800000>;
>>> +       regulator-max-microvolt = <1800000>;
>>> +       regulator-name = "cpvdd";
>>> +};
>>> +
>>
>>It looks like you are missing a few regulators? I assume you
>>would add them once the peripherals that use them are added?
>
> Yes.
>
> I mainly dropped CSI part, as it seems so complicate.

HSIC is also missing. I know the board doesn't use the feature,
but the regulator is hooked up. It would be better to set the
name and constraints.

ChenYu

>
>>
>>Otherwise this patch looks good.
>>
>>ChenYu
>>
>>> +/*
>>> + * The A64 chip cannot work without this regulator off, although
>>> + * it seems to be only driving the AR100 core.
>>> + * Maybe we don't still know well about CPUs domain.
>>> + */
>>> +&reg_fldo2 {
>>> +       regulator-always-on;
>>> +       regulator-min-microvolt = <1100000>;
>>> +       regulator-max-microvolt = <1100000>;
>>> +       regulator-name = "vdd-cpus";
>>> +};
>>> +
>>> +&reg_rtc_ldo {
>>> +       regulator-name = "vcc-rtc";
>>> +};
>>> +
>>>  &uart0 {
>>>         pinctrl-names = "default";
>>>         pinctrl-0 = <&uart0_pins_a>;
>>> --
>>> 2.13.0
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>Groups "linux-sunxi" group.
>>> To unsubscribe from this group and stop receiving emails from it,
>>send an email to linux-sunxi+unsubscribe@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
Icenowy Zheng July 21, 2017, 11:38 a.m. UTC | #4
在 2017-07-21 15:49,Chen-Yu Tsai 写道:
> On Fri, Jul 21, 2017 at 3:44 PM, Icenowy Zheng <icenowy@aosc.io> wrote:
>> 
>> 
>> 于 2017年7月21日 GMT+08:00 下午3:42:07, Chen-Yu Tsai <wens@csie.org> 写到:
>>> On Fri, Jul 21, 2017 at 7:07 AM, Icenowy Zheng <icenowy@aosc.io> 
>>> wrote:
>>>> Banana Pi M64 board uses an AXP803 PMIC.
>>>> 
>>>> Enable the PMIC and its regulators.
>>>> 
>>>> As we have now proper regulators support, missing or dummy 
>>>> regulators
>>>> are changed to the correct ones.
>>>> 
>>>> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
>>>> ---
>>>>  .../boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 116
>>> +++++++++++++++++++--
>>>>  1 file changed, 106 insertions(+), 10 deletions(-)
>>>> 
>>>> diff --git
>>> a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>>> b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>>>> index 829922d077fb..51d67c0a0edf 100644
>>>> --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>>>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>>>> @@ -58,13 +58,6 @@
>>>>         chosen {
>>>>                 stdout-path = "serial0:115200n8";
>>>>         };
>>>> -
>>>> -       reg_vcc3v3: vcc3v3 {
>>>> -               compatible = "regulator-fixed";
>>>> -               regulator-name = "vcc3v3";
>>>> -               regulator-min-microvolt = <3300000>;
>>>> -               regulator-max-microvolt = <3300000>;
>>>> -       };
>>>>  };
>>>> 
>>>>  &ehci1 {
>>>> @@ -76,6 +69,7 @@
>>>>         pinctrl-0 = <&rgmii_pins>;
>>>>         phy-mode = "rgmii";
>>>>         phy-handle = <&ext_rgmii_phy>;
>>>> +       phy-supply = <&reg_dc1sw>;
>>>>         status = "okay";
>>>>  };
>>>> 
>>>> @@ -99,7 +93,7 @@
>>>>  &mmc0 {
>>>>         pinctrl-names = "default";
>>>>         pinctrl-0 = <&mmc0_pins>;
>>>> -       vmmc-supply = <&reg_vcc3v3>;
>>>> +       vmmc-supply = <&reg_dcdc1>;
>>>>         cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
>>>>         cd-inverted;
>>>>         disable-wp;
>>>> @@ -110,7 +104,8 @@
>>>>  &mmc1 {
>>>>         pinctrl-names = "default";
>>>>         pinctrl-0 = <&mmc1_pins>;
>>>> -       vmmc-supply = <&reg_vcc3v3>;
>>>> +       vmmc-supply = <&reg_dldo2>;
>>>> +       vqmmc-supply = <&reg_dldo4>;
>>>>         bus-width = <4>;
>>>>         non-removable;
>>>>         status = "okay";
>>>> @@ -119,7 +114,7 @@
>>>>  &mmc2 {
>>>>         pinctrl-names = "default";
>>>>         pinctrl-0 = <&mmc2_pins>;
>>>> -       vmmc-supply = <&reg_vcc3v3>;
>>>> +       vmmc-supply = <&reg_dcdc1>;
>>>>         bus-width = <8>;
>>>>         non-removable;
>>>>         cap-mmc-hw-reset;
>>>> @@ -130,6 +125,107 @@
>>>>         status = "okay";
>>>>  };
>>>> 
>>>> +&r_rsb {
>>>> +       status = "okay";
>>>> +
>>>> +       axp803: pmic@3a3 {
>>>> +               compatible = "x-powers,axp803";
>>>> +               reg = <0x3a3>;
>>>> +               interrupt-parent = <&r_intc>;
>>>> +               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
>>>> +       };
>>>> +};
>>>> +
>>>> +#include "axp803.dtsi"
>>>> +
>>>> +&reg_aldo2 {
>>>> +       regulator-always-on;
>>>> +       regulator-min-microvolt = <1800000>;
>>>> +       regulator-max-microvolt = <3300000>;
>>>> +       regulator-name = "vcc-pl";
>>>> +};
>>>> +
>>>> +&reg_aldo3 {
>>>> +       regulator-always-on;
>>>> +       regulator-min-microvolt = <3000000>;
>>>> +       regulator-max-microvolt = <3000000>;
>>>> +       regulator-name = "vcc-pll-avcc";
>>>> +};
>>>> +
>>>> +&reg_dc1sw {
>>>> +       regulator-name = "vcc-phy";
>>>> +};
>>>> +
>>>> +&reg_dcdc1 {
>>>> +       regulator-always-on;
>>>> +       regulator-min-microvolt = <3300000>;
>>>> +       regulator-max-microvolt = <3300000>;
>>>> +       regulator-name = "vcc-3v3";
>>>> +};
>>>> +
>>>> +&reg_dcdc2 {
>>>> +       regulator-always-on;
>>>> +       regulator-min-microvolt = <1000000>;
>>> 
>>> The datasheet says the minimum voltage is 1.04V.
>> 
>> A64 datasheet?
> 
> Yes. V1.1.
> 
>> 
>> Maybe I need to fix all A64 AXP patches.
>> 
>>> 
>>>> +       regulator-max-microvolt = <1300000>;
>>>> +       regulator-name = "vdd-cpux";
>>>> +};
>>>> +
>>>> +/* DCDC3 is polyphased with DCDC2 */
>>>> +
>>>> +&reg_dcdc5 {
>>>> +       regulator-always-on;
>>>> +       regulator-min-microvolt = <1500000>;
>>>> +       regulator-max-microvolt = <1500000>;
>>>> +       regulator-name = "vcc-dram";
>>>> +};
>>>> +
>>>> +&reg_dcdc6 {
>>>> +       regulator-always-on;
>>>> +       regulator-min-microvolt = <1100000>;
>>>> +       regulator-max-microvolt = <1100000>;
>>>> +       regulator-name = "vdd-sys";
>>>> +};
>>>> +
>>>> +&reg_dldo1 {
>>>> +       regulator-min-microvolt = <3300000>;
>>>> +       regulator-max-microvolt = <3300000>;
>>>> +       regulator-name = "vcc-hdmi-dsi";
>>>> +};
>>>> +
>>>> +&reg_dldo2 {
>>>> +       regulator-min-microvolt = <3300000>;
>>>> +       regulator-max-microvolt = <3300000>;
>>>> +       regulator-name = "vcc-wifi";
>>>> +};
>>>> +
>>>> +&reg_dldo4 {
>>>> +       regulator-min-microvolt = <1800000>;
>>>> +       regulator-max-microvolt = <3300000>;
>>>> +       regulator-name = "vcc-wifi-io";
>>>> +};
>>>> +
>>>> +&reg_eldo1 {
>>>> +       regulator-min-microvolt = <1800000>;
>>>> +       regulator-max-microvolt = <1800000>;
>>>> +       regulator-name = "cpvdd";
>>>> +};
>>>> +
>>> 
>>> It looks like you are missing a few regulators? I assume you
>>> would add them once the peripherals that use them are added?
>> 
>> Yes.
>> 
>> I mainly dropped CSI part, as it seems so complicate.
> 
> HSIC is also missing. I know the board doesn't use the feature,
> but the regulator is hooked up. It would be better to set the
> name and constraints.

OK.

I think maybe Pine64 and SoPine w/ baseborad also need the HSIC
regulator set up, right? (They're also not used but hooked)

> 
> ChenYu
> 
>> 
>>> 
>>> Otherwise this patch looks good.
>>> 
>>> ChenYu
>>> 
>>>> +/*
>>>> + * The A64 chip cannot work without this regulator off, although
>>>> + * it seems to be only driving the AR100 core.
>>>> + * Maybe we don't still know well about CPUs domain.
>>>> + */
>>>> +&reg_fldo2 {
>>>> +       regulator-always-on;
>>>> +       regulator-min-microvolt = <1100000>;
>>>> +       regulator-max-microvolt = <1100000>;
>>>> +       regulator-name = "vdd-cpus";
>>>> +};
>>>> +
>>>> +&reg_rtc_ldo {
>>>> +       regulator-name = "vcc-rtc";
>>>> +};
>>>> +
>>>>  &uart0 {
>>>>         pinctrl-names = "default";
>>>>         pinctrl-0 = <&uart0_pins_a>;
>>>> --
>>>> 2.13.0
>>>> 
>>>> --
>>>> You received this message because you are subscribed to the Google
>>> Groups "linux-sunxi" group.
>>>> To unsubscribe from this group and stop receiving emails from it,
>>> send an email to linux-sunxi+unsubscribe@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>> 
>> --
>> You received this message because you are subscribed to the Google 
>> Groups "linux-sunxi" group.
>> To unsubscribe from this group and stop receiving emails from it, send 
>> an email to linux-sunxi+unsubscribe@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Chen-Yu Tsai July 23, 2017, 3:15 p.m. UTC | #5
On Fri, Jul 21, 2017 at 7:38 PM,  <icenowy@aosc.io> wrote:
> 在 2017-07-21 15:49,Chen-Yu Tsai 写道:
>>
>> On Fri, Jul 21, 2017 at 3:44 PM, Icenowy Zheng <icenowy@aosc.io> wrote:
>>>
>>>
>>>
>>> 于 2017年7月21日 GMT+08:00 下午3:42:07, Chen-Yu Tsai <wens@csie.org> 写到:
>>>>
>>>> On Fri, Jul 21, 2017 at 7:07 AM, Icenowy Zheng <icenowy@aosc.io> wrote:
>>>>>
>>>>> Banana Pi M64 board uses an AXP803 PMIC.
>>>>>
>>>>> Enable the PMIC and its regulators.
>>>>>
>>>>> As we have now proper regulators support, missing or dummy regulators
>>>>> are changed to the correct ones.
>>>>>
>>>>> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
>>>>> ---
>>>>>  .../boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 116
>>>>
>>>> +++++++++++++++++++--
>>>>>
>>>>>  1 file changed, 106 insertions(+), 10 deletions(-)
>>>>>
>>>>> diff --git
>>>>
>>>> a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>>>> b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>>>>>
>>>>> index 829922d077fb..51d67c0a0edf 100644
>>>>> --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>>>>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>>>>> @@ -58,13 +58,6 @@
>>>>>         chosen {
>>>>>                 stdout-path = "serial0:115200n8";
>>>>>         };
>>>>> -
>>>>> -       reg_vcc3v3: vcc3v3 {
>>>>> -               compatible = "regulator-fixed";
>>>>> -               regulator-name = "vcc3v3";
>>>>> -               regulator-min-microvolt = <3300000>;
>>>>> -               regulator-max-microvolt = <3300000>;
>>>>> -       };
>>>>>  };
>>>>>
>>>>>  &ehci1 {
>>>>> @@ -76,6 +69,7 @@
>>>>>         pinctrl-0 = <&rgmii_pins>;
>>>>>         phy-mode = "rgmii";
>>>>>         phy-handle = <&ext_rgmii_phy>;
>>>>> +       phy-supply = <&reg_dc1sw>;
>>>>>         status = "okay";
>>>>>  };
>>>>>
>>>>> @@ -99,7 +93,7 @@
>>>>>  &mmc0 {
>>>>>         pinctrl-names = "default";
>>>>>         pinctrl-0 = <&mmc0_pins>;
>>>>> -       vmmc-supply = <&reg_vcc3v3>;
>>>>> +       vmmc-supply = <&reg_dcdc1>;
>>>>>         cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
>>>>>         cd-inverted;
>>>>>         disable-wp;
>>>>> @@ -110,7 +104,8 @@
>>>>>  &mmc1 {
>>>>>         pinctrl-names = "default";
>>>>>         pinctrl-0 = <&mmc1_pins>;
>>>>> -       vmmc-supply = <&reg_vcc3v3>;
>>>>> +       vmmc-supply = <&reg_dldo2>;
>>>>> +       vqmmc-supply = <&reg_dldo4>;
>>>>>         bus-width = <4>;
>>>>>         non-removable;
>>>>>         status = "okay";
>>>>> @@ -119,7 +114,7 @@
>>>>>  &mmc2 {
>>>>>         pinctrl-names = "default";
>>>>>         pinctrl-0 = <&mmc2_pins>;
>>>>> -       vmmc-supply = <&reg_vcc3v3>;
>>>>> +       vmmc-supply = <&reg_dcdc1>;
>>>>>         bus-width = <8>;
>>>>>         non-removable;
>>>>>         cap-mmc-hw-reset;
>>>>> @@ -130,6 +125,107 @@
>>>>>         status = "okay";
>>>>>  };
>>>>>
>>>>> +&r_rsb {
>>>>> +       status = "okay";
>>>>> +
>>>>> +       axp803: pmic@3a3 {
>>>>> +               compatible = "x-powers,axp803";
>>>>> +               reg = <0x3a3>;
>>>>> +               interrupt-parent = <&r_intc>;
>>>>> +               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
>>>>> +       };
>>>>> +};
>>>>> +
>>>>> +#include "axp803.dtsi"
>>>>> +
>>>>> +&reg_aldo2 {
>>>>> +       regulator-always-on;
>>>>> +       regulator-min-microvolt = <1800000>;
>>>>> +       regulator-max-microvolt = <3300000>;
>>>>> +       regulator-name = "vcc-pl";
>>>>> +};
>>>>> +
>>>>> +&reg_aldo3 {
>>>>> +       regulator-always-on;
>>>>> +       regulator-min-microvolt = <3000000>;
>>>>> +       regulator-max-microvolt = <3000000>;
>>>>> +       regulator-name = "vcc-pll-avcc";
>>>>> +};
>>>>> +
>>>>> +&reg_dc1sw {
>>>>> +       regulator-name = "vcc-phy";
>>>>> +};
>>>>> +
>>>>> +&reg_dcdc1 {
>>>>> +       regulator-always-on;
>>>>> +       regulator-min-microvolt = <3300000>;
>>>>> +       regulator-max-microvolt = <3300000>;
>>>>> +       regulator-name = "vcc-3v3";
>>>>> +};
>>>>> +
>>>>> +&reg_dcdc2 {
>>>>> +       regulator-always-on;
>>>>> +       regulator-min-microvolt = <1000000>;
>>>>
>>>>
>>>> The datasheet says the minimum voltage is 1.04V.
>>>
>>>
>>> A64 datasheet?
>>
>>
>> Yes. V1.1.
>>
>>>
>>> Maybe I need to fix all A64 AXP patches.
>>>
>>>>
>>>>> +       regulator-max-microvolt = <1300000>;
>>>>> +       regulator-name = "vdd-cpux";
>>>>> +};
>>>>> +
>>>>> +/* DCDC3 is polyphased with DCDC2 */
>>>>> +
>>>>> +&reg_dcdc5 {
>>>>> +       regulator-always-on;
>>>>> +       regulator-min-microvolt = <1500000>;
>>>>> +       regulator-max-microvolt = <1500000>;
>>>>> +       regulator-name = "vcc-dram";
>>>>> +};
>>>>> +
>>>>> +&reg_dcdc6 {
>>>>> +       regulator-always-on;
>>>>> +       regulator-min-microvolt = <1100000>;
>>>>> +       regulator-max-microvolt = <1100000>;
>>>>> +       regulator-name = "vdd-sys";
>>>>> +};
>>>>> +
>>>>> +&reg_dldo1 {
>>>>> +       regulator-min-microvolt = <3300000>;
>>>>> +       regulator-max-microvolt = <3300000>;
>>>>> +       regulator-name = "vcc-hdmi-dsi";
>>>>> +};
>>>>> +
>>>>> +&reg_dldo2 {
>>>>> +       regulator-min-microvolt = <3300000>;
>>>>> +       regulator-max-microvolt = <3300000>;
>>>>> +       regulator-name = "vcc-wifi";
>>>>> +};
>>>>> +
>>>>> +&reg_dldo4 {
>>>>> +       regulator-min-microvolt = <1800000>;
>>>>> +       regulator-max-microvolt = <3300000>;
>>>>> +       regulator-name = "vcc-wifi-io";
>>>>> +};
>>>>> +
>>>>> +&reg_eldo1 {
>>>>> +       regulator-min-microvolt = <1800000>;
>>>>> +       regulator-max-microvolt = <1800000>;
>>>>> +       regulator-name = "cpvdd";
>>>>> +};
>>>>> +
>>>>
>>>>
>>>> It looks like you are missing a few regulators? I assume you
>>>> would add them once the peripherals that use them are added?
>>>
>>>
>>> Yes.
>>>
>>> I mainly dropped CSI part, as it seems so complicate.
>>
>>
>> HSIC is also missing. I know the board doesn't use the feature,
>> but the regulator is hooked up. It would be better to set the
>> name and constraints.
>
>
> OK.
>
> I think maybe Pine64 and SoPine w/ baseborad also need the HSIC
> regulator set up, right? (They're also not used but hooked)
>

Correct. If they are wired up, then they have constraints that
need to be adhered to.

ChenYu

>>
>> ChenYu
>>
>>>
>>>>
>>>> Otherwise this patch looks good.
>>>>
>>>> ChenYu
>>>>
>>>>> +/*
>>>>> + * The A64 chip cannot work without this regulator off, although
>>>>> + * it seems to be only driving the AR100 core.
>>>>> + * Maybe we don't still know well about CPUs domain.
>>>>> + */
>>>>> +&reg_fldo2 {
>>>>> +       regulator-always-on;
>>>>> +       regulator-min-microvolt = <1100000>;
>>>>> +       regulator-max-microvolt = <1100000>;
>>>>> +       regulator-name = "vdd-cpus";
>>>>> +};
>>>>> +
>>>>> +&reg_rtc_ldo {
>>>>> +       regulator-name = "vcc-rtc";
>>>>> +};
>>>>> +
>>>>>  &uart0 {
>>>>>         pinctrl-names = "default";
>>>>>         pinctrl-0 = <&uart0_pins_a>;
>>>>> --
>>>>> 2.13.0
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>
>>>> Groups "linux-sunxi" group.
>>>>>
>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>
>>>> send an email to linux-sunxi+unsubscribe@googlegroups.com.
>>>>>
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "linux-sunxi" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an
>>> email to linux-sunxi+unsubscribe@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to linux-sunxi+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
Icenowy Zheng July 23, 2017, 3:39 p.m. UTC | #6
于 2017年7月23日 GMT+08:00 下午11:15:04, Chen-Yu Tsai <wens@csie.org> 写到:
>On Fri, Jul 21, 2017 at 7:38 PM,  <icenowy@aosc.io> wrote:
>> 在 2017-07-21 15:49,Chen-Yu Tsai 写道:
>>>
>>> On Fri, Jul 21, 2017 at 3:44 PM, Icenowy Zheng <icenowy@aosc.io>
>wrote:
>>>>
>>>>
>>>>
>>>> 于 2017年7月21日 GMT+08:00 下午3:42:07, Chen-Yu Tsai <wens@csie.org> 写到:
>>>>>
>>>>> On Fri, Jul 21, 2017 at 7:07 AM, Icenowy Zheng <icenowy@aosc.io>
>wrote:
>>>>>>
>>>>>> Banana Pi M64 board uses an AXP803 PMIC.
>>>>>>
>>>>>> Enable the PMIC and its regulators.
>>>>>>
>>>>>> As we have now proper regulators support, missing or dummy
>regulators
>>>>>> are changed to the correct ones.
>>>>>>
>>>>>> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
>>>>>> ---
>>>>>>  .../boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 116
>>>>>
>>>>> +++++++++++++++++++--
>>>>>>
>>>>>>  1 file changed, 106 insertions(+), 10 deletions(-)
>>>>>>
>>>>>> diff --git
>>>>>
>>>>> a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>>>>> b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>>>>>>
>>>>>> index 829922d077fb..51d67c0a0edf 100644
>>>>>> --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>>>>>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
>>>>>> @@ -58,13 +58,6 @@
>>>>>>         chosen {
>>>>>>                 stdout-path = "serial0:115200n8";
>>>>>>         };
>>>>>> -
>>>>>> -       reg_vcc3v3: vcc3v3 {
>>>>>> -               compatible = "regulator-fixed";
>>>>>> -               regulator-name = "vcc3v3";
>>>>>> -               regulator-min-microvolt = <3300000>;
>>>>>> -               regulator-max-microvolt = <3300000>;
>>>>>> -       };
>>>>>>  };
>>>>>>
>>>>>>  &ehci1 {
>>>>>> @@ -76,6 +69,7 @@
>>>>>>         pinctrl-0 = <&rgmii_pins>;
>>>>>>         phy-mode = "rgmii";
>>>>>>         phy-handle = <&ext_rgmii_phy>;
>>>>>> +       phy-supply = <&reg_dc1sw>;
>>>>>>         status = "okay";
>>>>>>  };
>>>>>>
>>>>>> @@ -99,7 +93,7 @@
>>>>>>  &mmc0 {
>>>>>>         pinctrl-names = "default";
>>>>>>         pinctrl-0 = <&mmc0_pins>;
>>>>>> -       vmmc-supply = <&reg_vcc3v3>;
>>>>>> +       vmmc-supply = <&reg_dcdc1>;
>>>>>>         cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
>>>>>>         cd-inverted;
>>>>>>         disable-wp;
>>>>>> @@ -110,7 +104,8 @@
>>>>>>  &mmc1 {
>>>>>>         pinctrl-names = "default";
>>>>>>         pinctrl-0 = <&mmc1_pins>;
>>>>>> -       vmmc-supply = <&reg_vcc3v3>;
>>>>>> +       vmmc-supply = <&reg_dldo2>;
>>>>>> +       vqmmc-supply = <&reg_dldo4>;
>>>>>>         bus-width = <4>;
>>>>>>         non-removable;
>>>>>>         status = "okay";
>>>>>> @@ -119,7 +114,7 @@
>>>>>>  &mmc2 {
>>>>>>         pinctrl-names = "default";
>>>>>>         pinctrl-0 = <&mmc2_pins>;
>>>>>> -       vmmc-supply = <&reg_vcc3v3>;
>>>>>> +       vmmc-supply = <&reg_dcdc1>;
>>>>>>         bus-width = <8>;
>>>>>>         non-removable;
>>>>>>         cap-mmc-hw-reset;
>>>>>> @@ -130,6 +125,107 @@
>>>>>>         status = "okay";
>>>>>>  };
>>>>>>
>>>>>> +&r_rsb {
>>>>>> +       status = "okay";
>>>>>> +
>>>>>> +       axp803: pmic@3a3 {
>>>>>> +               compatible = "x-powers,axp803";
>>>>>> +               reg = <0x3a3>;
>>>>>> +               interrupt-parent = <&r_intc>;
>>>>>> +               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
>>>>>> +       };
>>>>>> +};
>>>>>> +
>>>>>> +#include "axp803.dtsi"
>>>>>> +
>>>>>> +&reg_aldo2 {
>>>>>> +       regulator-always-on;
>>>>>> +       regulator-min-microvolt = <1800000>;
>>>>>> +       regulator-max-microvolt = <3300000>;
>>>>>> +       regulator-name = "vcc-pl";
>>>>>> +};
>>>>>> +
>>>>>> +&reg_aldo3 {
>>>>>> +       regulator-always-on;
>>>>>> +       regulator-min-microvolt = <3000000>;
>>>>>> +       regulator-max-microvolt = <3000000>;
>>>>>> +       regulator-name = "vcc-pll-avcc";
>>>>>> +};
>>>>>> +
>>>>>> +&reg_dc1sw {
>>>>>> +       regulator-name = "vcc-phy";
>>>>>> +};
>>>>>> +
>>>>>> +&reg_dcdc1 {
>>>>>> +       regulator-always-on;
>>>>>> +       regulator-min-microvolt = <3300000>;
>>>>>> +       regulator-max-microvolt = <3300000>;
>>>>>> +       regulator-name = "vcc-3v3";
>>>>>> +};
>>>>>> +
>>>>>> +&reg_dcdc2 {
>>>>>> +       regulator-always-on;
>>>>>> +       regulator-min-microvolt = <1000000>;
>>>>>
>>>>>
>>>>> The datasheet says the minimum voltage is 1.04V.
>>>>
>>>>
>>>> A64 datasheet?
>>>
>>>
>>> Yes. V1.1.
>>>
>>>>
>>>> Maybe I need to fix all A64 AXP patches.
>>>>
>>>>>
>>>>>> +       regulator-max-microvolt = <1300000>;
>>>>>> +       regulator-name = "vdd-cpux";
>>>>>> +};
>>>>>> +
>>>>>> +/* DCDC3 is polyphased with DCDC2 */
>>>>>> +
>>>>>> +&reg_dcdc5 {
>>>>>> +       regulator-always-on;
>>>>>> +       regulator-min-microvolt = <1500000>;
>>>>>> +       regulator-max-microvolt = <1500000>;
>>>>>> +       regulator-name = "vcc-dram";
>>>>>> +};
>>>>>> +
>>>>>> +&reg_dcdc6 {
>>>>>> +       regulator-always-on;
>>>>>> +       regulator-min-microvolt = <1100000>;
>>>>>> +       regulator-max-microvolt = <1100000>;
>>>>>> +       regulator-name = "vdd-sys";
>>>>>> +};
>>>>>> +
>>>>>> +&reg_dldo1 {
>>>>>> +       regulator-min-microvolt = <3300000>;
>>>>>> +       regulator-max-microvolt = <3300000>;
>>>>>> +       regulator-name = "vcc-hdmi-dsi";
>>>>>> +};
>>>>>> +
>>>>>> +&reg_dldo2 {
>>>>>> +       regulator-min-microvolt = <3300000>;
>>>>>> +       regulator-max-microvolt = <3300000>;
>>>>>> +       regulator-name = "vcc-wifi";
>>>>>> +};
>>>>>> +
>>>>>> +&reg_dldo4 {
>>>>>> +       regulator-min-microvolt = <1800000>;
>>>>>> +       regulator-max-microvolt = <3300000>;
>>>>>> +       regulator-name = "vcc-wifi-io";
>>>>>> +};
>>>>>> +
>>>>>> +&reg_eldo1 {
>>>>>> +       regulator-min-microvolt = <1800000>;
>>>>>> +       regulator-max-microvolt = <1800000>;
>>>>>> +       regulator-name = "cpvdd";
>>>>>> +};
>>>>>> +
>>>>>
>>>>>
>>>>> It looks like you are missing a few regulators? I assume you
>>>>> would add them once the peripherals that use them are added?
>>>>
>>>>
>>>> Yes.
>>>>
>>>> I mainly dropped CSI part, as it seems so complicate.
>>>
>>>
>>> HSIC is also missing. I know the board doesn't use the feature,
>>> but the regulator is hooked up. It would be better to set the
>>> name and constraints.
>>
>>
>> OK.
>>
>> I think maybe Pine64 and SoPine w/ baseborad also need the HSIC
>> regulator set up, right? (They're also not used but hooked)
>>
>
>Correct. If they are wired up, then they have constraints that
>need to be adhered to.

Already fixed up in Pine64/SoPine patchset v2.

>
>ChenYu
>
>>>
>>> ChenYu
>>>
>>>>
>>>>>
>>>>> Otherwise this patch looks good.
>>>>>
>>>>> ChenYu
>>>>>
>>>>>> +/*
>>>>>> + * The A64 chip cannot work without this regulator off, although
>>>>>> + * it seems to be only driving the AR100 core.
>>>>>> + * Maybe we don't still know well about CPUs domain.
>>>>>> + */
>>>>>> +&reg_fldo2 {
>>>>>> +       regulator-always-on;
>>>>>> +       regulator-min-microvolt = <1100000>;
>>>>>> +       regulator-max-microvolt = <1100000>;
>>>>>> +       regulator-name = "vdd-cpus";
>>>>>> +};
>>>>>> +
>>>>>> +&reg_rtc_ldo {
>>>>>> +       regulator-name = "vcc-rtc";
>>>>>> +};
>>>>>> +
>>>>>>  &uart0 {
>>>>>>         pinctrl-names = "default";
>>>>>>         pinctrl-0 = <&uart0_pins_a>;
>>>>>> --
>>>>>> 2.13.0
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the
>Google
>>>>>
>>>>> Groups "linux-sunxi" group.
>>>>>>
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>
>>>>> send an email to linux-sunxi+unsubscribe@googlegroups.com.
>>>>>>
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>Groups
>>>> "linux-sunxi" group.
>>>> To unsubscribe from this group and stop receiving emails from it,
>send an
>>>> email to linux-sunxi+unsubscribe@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>>
>>> _______________________________________________
>>> linux-arm-kernel mailing list
>>> linux-arm-kernel@lists.infradead.org
>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>>
>>
>> --
>> You received this message because you are subscribed to the Google
>Groups
>> "linux-sunxi" group.
>> To unsubscribe from this group and stop receiving emails from it,
>send an
>> email to linux-sunxi+unsubscribe@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>
>_______________________________________________
>linux-arm-kernel mailing list
>linux-arm-kernel@lists.infradead.org
>http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
diff mbox

Patch

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
index 829922d077fb..51d67c0a0edf 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
@@ -58,13 +58,6 @@ 
 	chosen {
 		stdout-path = "serial0:115200n8";
 	};
-
-	reg_vcc3v3: vcc3v3 {
-		compatible = "regulator-fixed";
-		regulator-name = "vcc3v3";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-	};
 };
 
 &ehci1 {
@@ -76,6 +69,7 @@ 
 	pinctrl-0 = <&rgmii_pins>;
 	phy-mode = "rgmii";
 	phy-handle = <&ext_rgmii_phy>;
+	phy-supply = <&reg_dc1sw>;
 	status = "okay";
 };
 
@@ -99,7 +93,7 @@ 
 &mmc0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc0_pins>;
-	vmmc-supply = <&reg_vcc3v3>;
+	vmmc-supply = <&reg_dcdc1>;
 	cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
 	cd-inverted;
 	disable-wp;
@@ -110,7 +104,8 @@ 
 &mmc1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc1_pins>;
-	vmmc-supply = <&reg_vcc3v3>;
+	vmmc-supply = <&reg_dldo2>;
+	vqmmc-supply = <&reg_dldo4>;
 	bus-width = <4>;
 	non-removable;
 	status = "okay";
@@ -119,7 +114,7 @@ 
 &mmc2 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc2_pins>;
-	vmmc-supply = <&reg_vcc3v3>;
+	vmmc-supply = <&reg_dcdc1>;
 	bus-width = <8>;
 	non-removable;
 	cap-mmc-hw-reset;
@@ -130,6 +125,107 @@ 
 	status = "okay";
 };
 
+&r_rsb {
+	status = "okay";
+
+	axp803: pmic@3a3 {
+		compatible = "x-powers,axp803";
+		reg = <0x3a3>;
+		interrupt-parent = <&r_intc>;
+		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+	};
+};
+
+#include "axp803.dtsi"
+
+&reg_aldo2 {
+	regulator-always-on;
+	regulator-min-microvolt = <1800000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-pl";
+};
+
+&reg_aldo3 {
+	regulator-always-on;
+	regulator-min-microvolt = <3000000>;
+	regulator-max-microvolt = <3000000>;
+	regulator-name = "vcc-pll-avcc";
+};
+
+&reg_dc1sw {
+	regulator-name = "vcc-phy";
+};
+
+&reg_dcdc1 {
+	regulator-always-on;
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-3v3";
+};
+
+&reg_dcdc2 {
+	regulator-always-on;
+	regulator-min-microvolt = <1000000>;
+	regulator-max-microvolt = <1300000>;
+	regulator-name = "vdd-cpux";
+};
+
+/* DCDC3 is polyphased with DCDC2 */
+
+&reg_dcdc5 {
+	regulator-always-on;
+	regulator-min-microvolt = <1500000>;
+	regulator-max-microvolt = <1500000>;
+	regulator-name = "vcc-dram";
+};
+
+&reg_dcdc6 {
+	regulator-always-on;
+	regulator-min-microvolt = <1100000>;
+	regulator-max-microvolt = <1100000>;
+	regulator-name = "vdd-sys";
+};
+
+&reg_dldo1 {
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-hdmi-dsi";
+};
+
+&reg_dldo2 {
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-wifi";
+};
+
+&reg_dldo4 {
+	regulator-min-microvolt = <1800000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-wifi-io";
+};
+
+&reg_eldo1 {
+	regulator-min-microvolt = <1800000>;
+	regulator-max-microvolt = <1800000>;
+	regulator-name = "cpvdd";
+};
+
+/*
+ * The A64 chip cannot work without this regulator off, although
+ * it seems to be only driving the AR100 core.
+ * Maybe we don't still know well about CPUs domain.
+ */
+&reg_fldo2 {
+	regulator-always-on;
+	regulator-min-microvolt = <1100000>;
+	regulator-max-microvolt = <1100000>;
+	regulator-name = "vdd-cpus";
+};
+
+&reg_rtc_ldo {
+	regulator-name = "vcc-rtc";
+};
+
 &uart0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&uart0_pins_a>;