From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1428675AbdDYJ2P convert rfc822-to-8bit (ORCPT ); Tue, 25 Apr 2017 05:28:15 -0400 Received: from hermes.aosc.io ([199.195.250.187]:33213 "EHLO hermes.aosc.io" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1177264AbdDYJ2L (ORCPT ); Tue, 25 Apr 2017 05:28:11 -0400 Date: Tue, 25 Apr 2017 17:28:01 +0800 In-Reply-To: <8c7864f1-a0d7-b87f-f9d6-5201cc773609@arm.com> References: <20170424160103.9447-1-icenowy@aosc.io> <20170424160103.9447-10-icenowy@aosc.io> <8c7864f1-a0d7-b87f-f9d6-5201cc773609@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Subject: Re: [linux-sunxi] [PATCH v4 09/10] arm64: allwinner: a64: enable AXP803 regulators for Pine64 To: Andre Przywara , Thomas Gleixner , Rob Herring , Maxime Ripard , Chen-Yu Tsai , Lee Jones , Liam Girdwood CC: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@googlegroups.com From: Icenowy Zheng Message-ID: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 于 2017年4月25日 GMT+08:00 下午5:24:13, Andre Przywara 写到: >Hi, > >On 24/04/17 17:01, Icenowy Zheng wrote: >> Add support of AXP803 regulators in the Pine64 device tree, in order >to >> enable many future functionalities, e.g. Wi-Fi. > >In general that's quite some code to just achieve some device power >plane switching, but that's another discussion, I guess ;-) > >To me this patch here like a lot of churn to be duplicated in each >board's DT. >Can't we provide some sane defaults, either in axp803.dtsi or in an >extra file (allwinner-ref-axp803.dtsi?), and only overwrite them in a >board's DT if a board deviates? For critical regulators you're right, however, peripherals' power seems to vary a lot, e.g. Wi-Fi and HDMI. The DLDO1 for HDMI and DLDO4 for Wi-Fi design is only adopted by Pine64; according to BPi M64 schematics, Wi-Fi is DLDO2 and Wi-Fi IO voltage is DLDO4 (on Pine64 it's ELDO1 which is forced to be 1.8v because it's connected to CPVDD); on Orange Pi Win {,Plus} Wi-Fi is ALDO1, Wi-Fi IO is DLDO4 and HDMI is DLDO3. >Because it seems like many boards are actually based on some Allwinner >reference design and use very similar, if not identical settings. > >Also one thing below ... > >> >> Signed-off-by: Icenowy Zheng >> --- >> .../arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | 109 >+++++++++++++++++++++ >> 1 file changed, 109 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts >b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts >> index 3e1b44292534..abc1879e91f2 100644 >> --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts >> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts >> @@ -106,6 +106,115 @@ >> }; >> }; >> >> +#include "axp803.dtsi" >> + >> +®_aldo1 { >> + regulator-min-microvolt = <2800000>; >> + regulator-max-microvolt = <2800000>; >> + regulator-name = "vcc-csi"; >> +}; >> + >> +®_aldo2 { >> + regulator-always-on; >> + regulator-min-microvolt = <1800000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-name = "vcc-pl"; >> +}; >> + >> +®_aldo3 { >> + regulator-always-on; >> + regulator-min-microvolt = <2700000>; >> + regulator-max-microvolt = <3300000>; >> + 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>; >> + 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>; > >On the Pine64 there is DDR3L DRAM, running at 1.35V. > >Cheers, >Andre. > > >> + 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"; >> +}; >> + >> +®_dldo2 { >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-name = "vcc-mipi"; >> +}; >> + >> +®_dldo3 { >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-name = "avdd-csi"; >> +}; >> + >> +®_dldo4 { >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-name = "vcc-wifi"; >> +}; >> + >> +®_eldo1 { >> + regulator-min-microvolt = <1800000>; >> + regulator-max-microvolt = <1800000>; >> + regulator-name = "cpvdd"; >> +}; >> + >> +®_eldo3 { >> + regulator-min-microvolt = <1800000>; >> + regulator-max-microvolt = <1800000>; >> + regulator-name = "vdd-1v8-csi"; >> +}; >> + >> +®_fldo1 { >> + regulator-min-microvolt = <1200000>; >> + regulator-max-microvolt = <1200000>; >> + regulator-name = "vcc-1v2-hsic"; >> +}; >> + >> +®_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>; >>