于 2017年7月23日 GMT+08:00 下午11:15:04, Chen-Yu Tsai <wens@xxxxxxxx> 写到: >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. 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. >>>>>> + */ >>>>>> +®_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@xxxxxxxxxxxxxxxx. >>>>>> >>>>>> 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@xxxxxxxxxxxxxxxx. >>>> 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@xxxxxxxxxxxxxxxx. >> 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 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html