Re: [linux-sunxi] [PATCH 2/3] arm64: allwinner: a64: enable AXP803 for Banana Pi M64
From: Chen-Yu Tsai
Date: Sun Jul 23 2017 - 11:15:44 EST
On Fri, Jul 21, 2017 at 7:38 PM, <icenowy@xxxxxxx> wrote:
> å 2017-07-21 15:49ïChen-Yu Tsai åéï
>>
>> On Fri, Jul 21, 2017 at 3:44 PM, Icenowy Zheng <icenowy@xxxxxxx> wrote:
>>>
>>>
>>>
>>> ä 2017å7æ21æ GMT+08:00 äå3:42:07, Chen-Yu Tsai <wens@xxxxxxxx> åå:
>>>>
>>>> On Fri, Jul 21, 2017 at 7:07 AM, Icenowy Zheng <icenowy@xxxxxxx> 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@xxxxxxx>
>>>>> ---
>>>>> .../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 = <®_dc1sw>;
>>>>> status = "okay";
>>>>> };
>>>>>
>>>>> @@ -99,7 +93,7 @@
>>>>> &mmc0 {
>>>>> pinctrl-names = "default";
>>>>> pinctrl-0 = <&mmc0_pins>;
>>>>> - vmmc-supply = <®_vcc3v3>;
>>>>> + vmmc-supply = <®_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 = <®_vcc3v3>;
>>>>> + vmmc-supply = <®_dldo2>;
>>>>> + vqmmc-supply = <®_dldo4>;
>>>>> bus-width = <4>;
>>>>> non-removable;
>>>>> status = "okay";
>>>>> @@ -119,7 +114,7 @@
>>>>> &mmc2 {
>>>>> pinctrl-names = "default";
>>>>> pinctrl-0 = <&mmc2_pins>;
>>>>> - vmmc-supply = <®_vcc3v3>;
>>>>> + vmmc-supply = <®_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"
>>>>> +
>>>>> +®_aldo2 {
>>>>> + regulator-always-on;
>>>>> + regulator-min-microvolt = <1800000>;
>>>>> + regulator-max-microvolt = <3300000>;
>>>>> + regulator-name = "vcc-pl";
>>>>> +};
>>>>> +
>>>>> +®_aldo3 {
>>>>> + regulator-always-on;
>>>>> + regulator-min-microvolt = <3000000>;
>>>>> + regulator-max-microvolt = <3000000>;
>>>>> + regulator-name = "vcc-pll-avcc";
>>>>> +};
>>>>> +
>>>>> +®_dc1sw {
>>>>> + regulator-name = "vcc-phy";
>>>>> +};
>>>>> +
>>>>> +®_dcdc1 {
>>>>> + regulator-always-on;
>>>>> + regulator-min-microvolt = <3300000>;
>>>>> + regulator-max-microvolt = <3300000>;
>>>>> + regulator-name = "vcc-3v3";
>>>>> +};
>>>>> +
>>>>> +®_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 */
>>>>> +
>>>>> +®_dcdc5 {
>>>>> + regulator-always-on;
>>>>> + regulator-min-microvolt = <1500000>;
>>>>> + regulator-max-microvolt = <1500000>;
>>>>> + regulator-name = "vcc-dram";
>>>>> +};
>>>>> +
>>>>> +®_dcdc6 {
>>>>> + regulator-always-on;
>>>>> + regulator-min-microvolt = <1100000>;
>>>>> + regulator-max-microvolt = <1100000>;
>>>>> + regulator-name = "vdd-sys";
>>>>> +};
>>>>> +
>>>>> +®_dldo1 {
>>>>> + regulator-min-microvolt = <3300000>;
>>>>> + regulator-max-microvolt = <3300000>;
>>>>> + regulator-name = "vcc-hdmi-dsi";
>>>>> +};
>>>>> +
>>>>> +®_dldo2 {
>>>>> + regulator-min-microvolt = <3300000>;
>>>>> + regulator-max-microvolt = <3300000>;
>>>>> + regulator-name = "vcc-wifi";
>>>>> +};
>>>>> +
>>>>> +®_dldo4 {
>>>>> + regulator-min-microvolt = <1800000>;
>>>>> + regulator-max-microvolt = <3300000>;
>>>>> + regulator-name = "vcc-wifi-io";
>>>>> +};
>>>>> +
>>>>> +®_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.
>>>>> + */
>>>>> +®_fldo2 {
>>>>> + regulator-always-on;
>>>>> + regulator-min-microvolt = <1100000>;
>>>>> + regulator-max-microvolt = <1100000>;
>>>>> + regulator-name = "vdd-cpus";
>>>>> +};
>>>>> +
>>>>> +®_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@xxxxxxxxxxxxxxxxx
>>>>>
>>>>> 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@xxxxxxxxxxxxxxxxx
>>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
>> 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@xxxxxxxxxxxxxxxxx
> For more options, visit https://groups.google.com/d/optout.