[linux-sunxi] [PATCH 2/3] arm64: allwinner: a64: enable AXP803 for Banana Pi M64

icenowy at aosc.io icenowy at aosc.io
Fri Jul 21 04:38:42 PDT 2017


在 2017-07-21 15:49,Chen-Yu Tsai 写道:
> On Fri, Jul 21, 2017 at 3:44 PM, Icenowy Zheng <icenowy at aosc.io> wrote:
>> 
>> 
>> 于 2017年7月21日 GMT+08:00 下午3:42:07, Chen-Yu Tsai <wens at csie.org> 写到:
>>> On Fri, Jul 21, 2017 at 7:07 AM, Icenowy Zheng <icenowy at 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 at 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 at 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 at 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 at googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel



More information about the linux-arm-kernel mailing list