Message ID | 20180728182615.20845-1-jagan@amarulasolutions.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: allwinner: h6: Add OrangePi One Plus initial support | expand |
Hi, On Sat, Jul 28, 2018 at 11:56:15PM +0530, Jagan Teki wrote: > OrangePi One Plus is Allwinner H6 based open-source SBC, > which support: > - Allwinner H6 Quad-core 64-bit ARM Cortex-A53 > - GPU Mali-T720 > - 1GB LPDDR3 RAM > - AXP805 PMIC > - 1Gbps GMAC via RTL8211 > - USB 2.0 Host, OTG > - HDMI port > - 5V/2A DC power supply > > Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> > --- > arch/arm64/boot/dts/allwinner/Makefile | 1 + > .../allwinner/sun50i-h6-orangepi-one-plus.dts | 150 ++++++++++++++++++ > 2 files changed, 151 insertions(+) > create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts > > diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile > index 9ffa7a038791..c38f326e7fec 100644 > --- a/arch/arm64/boot/dts/allwinner/Makefile > +++ b/arch/arm64/boot/dts/allwinner/Makefile > @@ -15,4 +15,5 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb > +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts > new file mode 100644 > index 000000000000..0612c19cd994 > --- /dev/null > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts > @@ -0,0 +1,150 @@ > +// SPDX-License-Identifier: (GPL-2.0+ or MIT) > +/* > + * Copyright (C) 2018 Amarula Solutions > + * Author: Jagan Teki <jagan@amarulasolutions.com> > + */ > + > +/dts-v1/; > + > +#include "sun50i-h6.dtsi" > + > +#include <dt-bindings/gpio/gpio.h> > + > +/ { > + model = "OrangePi One Plus"; > + compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6"; > + > + aliases { > + serial0 = &uart0; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > +}; > + > +&mmc0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&mmc0_pins>; > + vmmc-supply = <®_cldo1>; > + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; > + bus-width = <4>; > + status = "okay"; > +}; > + > +&r_i2c { > + status = "okay"; > + > + axp805: pmic@36 { > + compatible = "x-powers,axp805", "x-powers,axp806"; > + reg = <0x36>; > + interrupt-parent = <&r_intc>; > + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; > + interrupt-controller; > + #interrupt-cells = <1>; > + x-powers,self-working-mode; > + > + regulators { > + reg_aldo1: aldo1 { > + regulator-always-on; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-name = "vcc-pl"; > + }; > + > + reg_aldo2: aldo2 { > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-name = "vcc-ac200"; > + }; > + > + reg_aldo3: aldo3 { > + regulator-always-on; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-name = "vcc25-dram"; > + }; > + > + reg_bldo1: bldo1 { > + regulator-always-on; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-name = "vcc-bias-pll"; > + }; > + > + reg_bldo2: bldo2 { > + regulator-always-on; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-name = "vcc-efuse-pcie-hdmi-io"; > + }; > + > + reg_bldo3: bldo3 { > + regulator-always-on; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-name = "vcc-dcxoio"; > + }; > + > + bldo4 { > + /* unused */ > + }; > + > + reg_cldo1: cldo1 { > + regulator-always-on; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-name = "vcc-3v3"; > + }; > + > + reg_cldo2: cldo2 { > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-name = "vcc-wifi-1"; > + }; > + > + reg_cldo3: cldo3 { > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-name = "vcc-wifi-2"; > + }; > + > + reg_dcdca: dcdca { > + regulator-always-on; > + regulator-min-microvolt = <810000>; > + regulator-max-microvolt = <1080000>; > + regulator-name = "vdd-cpu"; > + }; > + > + reg_dcdcc: dcdcc { > + regulator-min-microvolt = <810000>; > + regulator-max-microvolt = <1080000>; > + regulator-name = "vdd-gpu"; > + }; > + > + reg_dcdcd: dcdcd { > + regulator-always-on; > + regulator-min-microvolt = <960000>; > + regulator-max-microvolt = <960000>; > + regulator-name = "vdd-sys"; > + }; > + > + reg_dcdce: dcdce { > + regulator-always-on; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + regulator-name = "vcc-dram"; > + }; > + > + sw { > + /* unused */ > + }; Can't we have a DTSI for this PMIC too? It looks good otherwise, thanks! Maxime
On Mon, Jul 30, 2018 at 5:00 PM, Maxime Ripard <maxime.ripard@bootlin.com> wrote: > Hi, > > On Sat, Jul 28, 2018 at 11:56:15PM +0530, Jagan Teki wrote: >> OrangePi One Plus is Allwinner H6 based open-source SBC, >> which support: >> - Allwinner H6 Quad-core 64-bit ARM Cortex-A53 >> - GPU Mali-T720 >> - 1GB LPDDR3 RAM >> - AXP805 PMIC >> - 1Gbps GMAC via RTL8211 >> - USB 2.0 Host, OTG >> - HDMI port >> - 5V/2A DC power supply >> >> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> >> --- >> arch/arm64/boot/dts/allwinner/Makefile | 1 + >> .../allwinner/sun50i-h6-orangepi-one-plus.dts | 150 ++++++++++++++++++ >> 2 files changed, 151 insertions(+) >> create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts >> >> diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile >> index 9ffa7a038791..c38f326e7fec 100644 >> --- a/arch/arm64/boot/dts/allwinner/Makefile >> +++ b/arch/arm64/boot/dts/allwinner/Makefile >> @@ -15,4 +15,5 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb >> +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb >> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts >> new file mode 100644 >> index 000000000000..0612c19cd994 >> --- /dev/null >> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts >> @@ -0,0 +1,150 @@ >> +// SPDX-License-Identifier: (GPL-2.0+ or MIT) >> +/* >> + * Copyright (C) 2018 Amarula Solutions >> + * Author: Jagan Teki <jagan@amarulasolutions.com> >> + */ >> + >> +/dts-v1/; >> + >> +#include "sun50i-h6.dtsi" >> + >> +#include <dt-bindings/gpio/gpio.h> >> + >> +/ { >> + model = "OrangePi One Plus"; >> + compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6"; >> + >> + aliases { >> + serial0 = &uart0; >> + }; >> + >> + chosen { >> + stdout-path = "serial0:115200n8"; >> + }; >> +}; >> + >> +&mmc0 { >> + pinctrl-names = "default"; >> + pinctrl-0 = <&mmc0_pins>; >> + vmmc-supply = <®_cldo1>; >> + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; >> + bus-width = <4>; >> + status = "okay"; >> +}; >> + >> +&r_i2c { >> + status = "okay"; >> + >> + axp805: pmic@36 { >> + compatible = "x-powers,axp805", "x-powers,axp806"; >> + reg = <0x36>; >> + interrupt-parent = <&r_intc>; >> + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; >> + interrupt-controller; >> + #interrupt-cells = <1>; >> + x-powers,self-working-mode; >> + >> + regulators { >> + reg_aldo1: aldo1 { >> + regulator-always-on; >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-name = "vcc-pl"; >> + }; >> + >> + reg_aldo2: aldo2 { >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-name = "vcc-ac200"; >> + }; >> + >> + reg_aldo3: aldo3 { >> + regulator-always-on; >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-name = "vcc25-dram"; >> + }; >> + >> + reg_bldo1: bldo1 { >> + regulator-always-on; >> + regulator-min-microvolt = <1800000>; >> + regulator-max-microvolt = <1800000>; >> + regulator-name = "vcc-bias-pll"; >> + }; >> + >> + reg_bldo2: bldo2 { >> + regulator-always-on; >> + regulator-min-microvolt = <1800000>; >> + regulator-max-microvolt = <1800000>; >> + regulator-name = "vcc-efuse-pcie-hdmi-io"; >> + }; >> + >> + reg_bldo3: bldo3 { >> + regulator-always-on; >> + regulator-min-microvolt = <1800000>; >> + regulator-max-microvolt = <1800000>; >> + regulator-name = "vcc-dcxoio"; >> + }; >> + >> + bldo4 { >> + /* unused */ >> + }; >> + >> + reg_cldo1: cldo1 { >> + regulator-always-on; >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-name = "vcc-3v3"; >> + }; >> + >> + reg_cldo2: cldo2 { >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-name = "vcc-wifi-1"; >> + }; >> + >> + reg_cldo3: cldo3 { >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-name = "vcc-wifi-2"; >> + }; >> + >> + reg_dcdca: dcdca { >> + regulator-always-on; >> + regulator-min-microvolt = <810000>; >> + regulator-max-microvolt = <1080000>; >> + regulator-name = "vdd-cpu"; >> + }; >> + >> + reg_dcdcc: dcdcc { >> + regulator-min-microvolt = <810000>; >> + regulator-max-microvolt = <1080000>; >> + regulator-name = "vdd-gpu"; >> + }; >> + >> + reg_dcdcd: dcdcd { >> + regulator-always-on; >> + regulator-min-microvolt = <960000>; >> + regulator-max-microvolt = <960000>; >> + regulator-name = "vdd-sys"; >> + }; >> + >> + reg_dcdce: dcdce { >> + regulator-always-on; >> + regulator-min-microvolt = <1200000>; >> + regulator-max-microvolt = <1200000>; >> + regulator-name = "vcc-dram"; >> + }; >> + >> + sw { >> + /* unused */ >> + }; > > Can't we have a DTSI for this PMIC too? Back when we started adding the regulators, Mark wasn't too happy with all the placeholders we put in the dtsi. I think we got away with it because we had other things in there as well. That's not true for this particular PMIC. ChenYu > It looks good otherwise, thanks! > Maxime > > -- > Maxime Ripard, Bootlin (formerly Free Electrons) > Embedded Linux and Kernel engineering > https://bootlin.com
On Mon, Jul 30, 2018 at 2:47 PM, Chen-Yu Tsai <wens@csie.org> wrote: > On Mon, Jul 30, 2018 at 5:00 PM, Maxime Ripard > <maxime.ripard@bootlin.com> wrote: >> Hi, >> >> On Sat, Jul 28, 2018 at 11:56:15PM +0530, Jagan Teki wrote: >>> OrangePi One Plus is Allwinner H6 based open-source SBC, >>> which support: >>> - Allwinner H6 Quad-core 64-bit ARM Cortex-A53 >>> - GPU Mali-T720 >>> - 1GB LPDDR3 RAM >>> - AXP805 PMIC >>> - 1Gbps GMAC via RTL8211 >>> - USB 2.0 Host, OTG >>> - HDMI port >>> - 5V/2A DC power supply >>> >>> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> >>> --- >>> arch/arm64/boot/dts/allwinner/Makefile | 1 + >>> .../allwinner/sun50i-h6-orangepi-one-plus.dts | 150 ++++++++++++++++++ >>> 2 files changed, 151 insertions(+) >>> create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts >>> >>> diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile >>> index 9ffa7a038791..c38f326e7fec 100644 >>> --- a/arch/arm64/boot/dts/allwinner/Makefile >>> +++ b/arch/arm64/boot/dts/allwinner/Makefile >>> @@ -15,4 +15,5 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb >>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb >>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb >>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb >>> +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb >>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb >>> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts >>> new file mode 100644 >>> index 000000000000..0612c19cd994 >>> --- /dev/null >>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts >>> @@ -0,0 +1,150 @@ >>> +// SPDX-License-Identifier: (GPL-2.0+ or MIT) >>> +/* >>> + * Copyright (C) 2018 Amarula Solutions >>> + * Author: Jagan Teki <jagan@amarulasolutions.com> >>> + */ >>> + >>> +/dts-v1/; >>> + >>> +#include "sun50i-h6.dtsi" >>> + >>> +#include <dt-bindings/gpio/gpio.h> >>> + >>> +/ { >>> + model = "OrangePi One Plus"; >>> + compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6"; >>> + >>> + aliases { >>> + serial0 = &uart0; >>> + }; >>> + >>> + chosen { >>> + stdout-path = "serial0:115200n8"; >>> + }; >>> +}; >>> + >>> +&mmc0 { >>> + pinctrl-names = "default"; >>> + pinctrl-0 = <&mmc0_pins>; >>> + vmmc-supply = <®_cldo1>; >>> + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; >>> + bus-width = <4>; >>> + status = "okay"; >>> +}; >>> + >>> +&r_i2c { >>> + status = "okay"; >>> + >>> + axp805: pmic@36 { >>> + compatible = "x-powers,axp805", "x-powers,axp806"; >>> + reg = <0x36>; >>> + interrupt-parent = <&r_intc>; >>> + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; >>> + interrupt-controller; >>> + #interrupt-cells = <1>; >>> + x-powers,self-working-mode; >>> + >>> + regulators { >>> + reg_aldo1: aldo1 { >>> + regulator-always-on; >>> + regulator-min-microvolt = <3300000>; >>> + regulator-max-microvolt = <3300000>; >>> + regulator-name = "vcc-pl"; >>> + }; >>> + >>> + reg_aldo2: aldo2 { >>> + regulator-min-microvolt = <3300000>; >>> + regulator-max-microvolt = <3300000>; >>> + regulator-name = "vcc-ac200"; >>> + }; >>> + >>> + reg_aldo3: aldo3 { >>> + regulator-always-on; >>> + regulator-min-microvolt = <3300000>; >>> + regulator-max-microvolt = <3300000>; >>> + regulator-name = "vcc25-dram"; >>> + }; >>> + >>> + reg_bldo1: bldo1 { >>> + regulator-always-on; >>> + regulator-min-microvolt = <1800000>; >>> + regulator-max-microvolt = <1800000>; >>> + regulator-name = "vcc-bias-pll"; >>> + }; >>> + >>> + reg_bldo2: bldo2 { >>> + regulator-always-on; >>> + regulator-min-microvolt = <1800000>; >>> + regulator-max-microvolt = <1800000>; >>> + regulator-name = "vcc-efuse-pcie-hdmi-io"; >>> + }; >>> + >>> + reg_bldo3: bldo3 { >>> + regulator-always-on; >>> + regulator-min-microvolt = <1800000>; >>> + regulator-max-microvolt = <1800000>; >>> + regulator-name = "vcc-dcxoio"; >>> + }; >>> + >>> + bldo4 { >>> + /* unused */ >>> + }; >>> + >>> + reg_cldo1: cldo1 { >>> + regulator-always-on; >>> + regulator-min-microvolt = <3300000>; >>> + regulator-max-microvolt = <3300000>; >>> + regulator-name = "vcc-3v3"; >>> + }; >>> + >>> + reg_cldo2: cldo2 { >>> + regulator-min-microvolt = <3300000>; >>> + regulator-max-microvolt = <3300000>; >>> + regulator-name = "vcc-wifi-1"; >>> + }; >>> + >>> + reg_cldo3: cldo3 { >>> + regulator-min-microvolt = <3300000>; >>> + regulator-max-microvolt = <3300000>; >>> + regulator-name = "vcc-wifi-2"; >>> + }; >>> + >>> + reg_dcdca: dcdca { >>> + regulator-always-on; >>> + regulator-min-microvolt = <810000>; >>> + regulator-max-microvolt = <1080000>; >>> + regulator-name = "vdd-cpu"; >>> + }; >>> + >>> + reg_dcdcc: dcdcc { >>> + regulator-min-microvolt = <810000>; >>> + regulator-max-microvolt = <1080000>; >>> + regulator-name = "vdd-gpu"; >>> + }; >>> + >>> + reg_dcdcd: dcdcd { >>> + regulator-always-on; >>> + regulator-min-microvolt = <960000>; >>> + regulator-max-microvolt = <960000>; >>> + regulator-name = "vdd-sys"; >>> + }; >>> + >>> + reg_dcdce: dcdce { >>> + regulator-always-on; >>> + regulator-min-microvolt = <1200000>; >>> + regulator-max-microvolt = <1200000>; >>> + regulator-name = "vcc-dram"; >>> + }; >>> + >>> + sw { >>> + /* unused */ >>> + }; >> >> Can't we have a DTSI for this PMIC too? > > Back when we started adding the regulators, Mark wasn't too happy with > all the placeholders we put in the dtsi. I think we got away with it > because we had other things in there as well. That's not true for this > particular PMIC. So we need separate dtsi for this PMIC as well?
On Tue, Jul 31, 2018 at 9:41 PM, Jagan Teki <jagan@amarulasolutions.com> wrote: > On Mon, Jul 30, 2018 at 2:47 PM, Chen-Yu Tsai <wens@csie.org> wrote: >> On Mon, Jul 30, 2018 at 5:00 PM, Maxime Ripard >> <maxime.ripard@bootlin.com> wrote: >>> Hi, >>> >>> On Sat, Jul 28, 2018 at 11:56:15PM +0530, Jagan Teki wrote: >>>> OrangePi One Plus is Allwinner H6 based open-source SBC, >>>> which support: >>>> - Allwinner H6 Quad-core 64-bit ARM Cortex-A53 >>>> - GPU Mali-T720 >>>> - 1GB LPDDR3 RAM >>>> - AXP805 PMIC >>>> - 1Gbps GMAC via RTL8211 >>>> - USB 2.0 Host, OTG >>>> - HDMI port >>>> - 5V/2A DC power supply >>>> >>>> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> >>>> --- >>>> arch/arm64/boot/dts/allwinner/Makefile | 1 + >>>> .../allwinner/sun50i-h6-orangepi-one-plus.dts | 150 ++++++++++++++++++ >>>> 2 files changed, 151 insertions(+) >>>> create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts >>>> >>>> diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile >>>> index 9ffa7a038791..c38f326e7fec 100644 >>>> --- a/arch/arm64/boot/dts/allwinner/Makefile >>>> +++ b/arch/arm64/boot/dts/allwinner/Makefile >>>> @@ -15,4 +15,5 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb >>>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb >>>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb >>>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb >>>> +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb >>>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb >>>> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts >>>> new file mode 100644 >>>> index 000000000000..0612c19cd994 >>>> --- /dev/null >>>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts >>>> @@ -0,0 +1,150 @@ >>>> +// SPDX-License-Identifier: (GPL-2.0+ or MIT) >>>> +/* >>>> + * Copyright (C) 2018 Amarula Solutions >>>> + * Author: Jagan Teki <jagan@amarulasolutions.com> >>>> + */ >>>> + >>>> +/dts-v1/; >>>> + >>>> +#include "sun50i-h6.dtsi" >>>> + >>>> +#include <dt-bindings/gpio/gpio.h> >>>> + >>>> +/ { >>>> + model = "OrangePi One Plus"; >>>> + compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6"; >>>> + >>>> + aliases { >>>> + serial0 = &uart0; >>>> + }; >>>> + >>>> + chosen { >>>> + stdout-path = "serial0:115200n8"; >>>> + }; >>>> +}; >>>> + >>>> +&mmc0 { >>>> + pinctrl-names = "default"; >>>> + pinctrl-0 = <&mmc0_pins>; >>>> + vmmc-supply = <®_cldo1>; >>>> + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; >>>> + bus-width = <4>; >>>> + status = "okay"; >>>> +}; >>>> + >>>> +&r_i2c { >>>> + status = "okay"; >>>> + >>>> + axp805: pmic@36 { >>>> + compatible = "x-powers,axp805", "x-powers,axp806"; >>>> + reg = <0x36>; >>>> + interrupt-parent = <&r_intc>; >>>> + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; >>>> + interrupt-controller; >>>> + #interrupt-cells = <1>; >>>> + x-powers,self-working-mode; >>>> + >>>> + regulators { >>>> + reg_aldo1: aldo1 { >>>> + regulator-always-on; >>>> + regulator-min-microvolt = <3300000>; >>>> + regulator-max-microvolt = <3300000>; >>>> + regulator-name = "vcc-pl"; >>>> + }; >>>> + >>>> + reg_aldo2: aldo2 { >>>> + regulator-min-microvolt = <3300000>; >>>> + regulator-max-microvolt = <3300000>; >>>> + regulator-name = "vcc-ac200"; >>>> + }; >>>> + >>>> + reg_aldo3: aldo3 { >>>> + regulator-always-on; >>>> + regulator-min-microvolt = <3300000>; >>>> + regulator-max-microvolt = <3300000>; >>>> + regulator-name = "vcc25-dram"; >>>> + }; >>>> + >>>> + reg_bldo1: bldo1 { >>>> + regulator-always-on; >>>> + regulator-min-microvolt = <1800000>; >>>> + regulator-max-microvolt = <1800000>; >>>> + regulator-name = "vcc-bias-pll"; >>>> + }; >>>> + >>>> + reg_bldo2: bldo2 { >>>> + regulator-always-on; >>>> + regulator-min-microvolt = <1800000>; >>>> + regulator-max-microvolt = <1800000>; >>>> + regulator-name = "vcc-efuse-pcie-hdmi-io"; >>>> + }; >>>> + >>>> + reg_bldo3: bldo3 { >>>> + regulator-always-on; >>>> + regulator-min-microvolt = <1800000>; >>>> + regulator-max-microvolt = <1800000>; >>>> + regulator-name = "vcc-dcxoio"; >>>> + }; >>>> + >>>> + bldo4 { >>>> + /* unused */ >>>> + }; >>>> + >>>> + reg_cldo1: cldo1 { >>>> + regulator-always-on; >>>> + regulator-min-microvolt = <3300000>; >>>> + regulator-max-microvolt = <3300000>; >>>> + regulator-name = "vcc-3v3"; >>>> + }; >>>> + >>>> + reg_cldo2: cldo2 { >>>> + regulator-min-microvolt = <3300000>; >>>> + regulator-max-microvolt = <3300000>; >>>> + regulator-name = "vcc-wifi-1"; >>>> + }; >>>> + >>>> + reg_cldo3: cldo3 { >>>> + regulator-min-microvolt = <3300000>; >>>> + regulator-max-microvolt = <3300000>; >>>> + regulator-name = "vcc-wifi-2"; >>>> + }; >>>> + >>>> + reg_dcdca: dcdca { >>>> + regulator-always-on; >>>> + regulator-min-microvolt = <810000>; >>>> + regulator-max-microvolt = <1080000>; >>>> + regulator-name = "vdd-cpu"; >>>> + }; >>>> + >>>> + reg_dcdcc: dcdcc { >>>> + regulator-min-microvolt = <810000>; >>>> + regulator-max-microvolt = <1080000>; >>>> + regulator-name = "vdd-gpu"; >>>> + }; >>>> + >>>> + reg_dcdcd: dcdcd { >>>> + regulator-always-on; >>>> + regulator-min-microvolt = <960000>; >>>> + regulator-max-microvolt = <960000>; >>>> + regulator-name = "vdd-sys"; >>>> + }; >>>> + >>>> + reg_dcdce: dcdce { >>>> + regulator-always-on; >>>> + regulator-min-microvolt = <1200000>; >>>> + regulator-max-microvolt = <1200000>; >>>> + regulator-name = "vcc-dram"; >>>> + }; >>>> + >>>> + sw { >>>> + /* unused */ >>>> + }; >>> >>> Can't we have a DTSI for this PMIC too? >> >> Back when we started adding the regulators, Mark wasn't too happy with >> all the placeholders we put in the dtsi. I think we got away with it >> because we had other things in there as well. That's not true for this >> particular PMIC. > > So we need separate dtsi for this PMIC as well? I don't think we do. We don't gain much. ChenYu
On Tue, Jul 31, 2018 at 9:42 PM Chen-Yu Tsai <wens@csie.org> wrote: > > On Tue, Jul 31, 2018 at 9:41 PM, Jagan Teki <jagan@amarulasolutions.com> wrote: > > On Mon, Jul 30, 2018 at 2:47 PM, Chen-Yu Tsai <wens@csie.org> wrote: > >> On Mon, Jul 30, 2018 at 5:00 PM, Maxime Ripard > >> <maxime.ripard@bootlin.com> wrote: > >>> Hi, > >>> > >>> On Sat, Jul 28, 2018 at 11:56:15PM +0530, Jagan Teki wrote: > >>>> OrangePi One Plus is Allwinner H6 based open-source SBC, > >>>> which support: > >>>> - Allwinner H6 Quad-core 64-bit ARM Cortex-A53 > >>>> - GPU Mali-T720 > >>>> - 1GB LPDDR3 RAM > >>>> - AXP805 PMIC > >>>> - 1Gbps GMAC via RTL8211 > >>>> - USB 2.0 Host, OTG > >>>> - HDMI port > >>>> - 5V/2A DC power supply > >>>> > >>>> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> > >>>> --- > >>>> arch/arm64/boot/dts/allwinner/Makefile | 1 + > >>>> .../allwinner/sun50i-h6-orangepi-one-plus.dts | 150 ++++++++++++++++++ > >>>> 2 files changed, 151 insertions(+) > >>>> create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts > >>>> > >>>> diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile > >>>> index 9ffa7a038791..c38f326e7fec 100644 > >>>> --- a/arch/arm64/boot/dts/allwinner/Makefile > >>>> +++ b/arch/arm64/boot/dts/allwinner/Makefile > >>>> @@ -15,4 +15,5 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb > >>>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb > >>>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb > >>>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb > >>>> +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb > >>>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb > >>>> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts > >>>> new file mode 100644 > >>>> index 000000000000..0612c19cd994 > >>>> --- /dev/null > >>>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts > >>>> @@ -0,0 +1,150 @@ > >>>> +// SPDX-License-Identifier: (GPL-2.0+ or MIT) > >>>> +/* > >>>> + * Copyright (C) 2018 Amarula Solutions > >>>> + * Author: Jagan Teki <jagan@amarulasolutions.com> > >>>> + */ > >>>> + > >>>> +/dts-v1/; > >>>> + > >>>> +#include "sun50i-h6.dtsi" > >>>> + > >>>> +#include <dt-bindings/gpio/gpio.h> > >>>> + > >>>> +/ { > >>>> + model = "OrangePi One Plus"; > >>>> + compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6"; > >>>> + > >>>> + aliases { > >>>> + serial0 = &uart0; > >>>> + }; > >>>> + > >>>> + chosen { > >>>> + stdout-path = "serial0:115200n8"; > >>>> + }; > >>>> +}; > >>>> + > >>>> +&mmc0 { > >>>> + pinctrl-names = "default"; > >>>> + pinctrl-0 = <&mmc0_pins>; > >>>> + vmmc-supply = <®_cldo1>; > >>>> + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; > >>>> + bus-width = <4>; > >>>> + status = "okay"; > >>>> +}; > >>>> + > >>>> +&r_i2c { > >>>> + status = "okay"; > >>>> + > >>>> + axp805: pmic@36 { > >>>> + compatible = "x-powers,axp805", "x-powers,axp806"; > >>>> + reg = <0x36>; > >>>> + interrupt-parent = <&r_intc>; > >>>> + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; > >>>> + interrupt-controller; > >>>> + #interrupt-cells = <1>; > >>>> + x-powers,self-working-mode; > >>>> + > >>>> + regulators { > >>>> + reg_aldo1: aldo1 { > >>>> + regulator-always-on; > >>>> + regulator-min-microvolt = <3300000>; > >>>> + regulator-max-microvolt = <3300000>; > >>>> + regulator-name = "vcc-pl"; > >>>> + }; > >>>> + > >>>> + reg_aldo2: aldo2 { > >>>> + regulator-min-microvolt = <3300000>; > >>>> + regulator-max-microvolt = <3300000>; > >>>> + regulator-name = "vcc-ac200"; > >>>> + }; > >>>> + > >>>> + reg_aldo3: aldo3 { > >>>> + regulator-always-on; > >>>> + regulator-min-microvolt = <3300000>; > >>>> + regulator-max-microvolt = <3300000>; > >>>> + regulator-name = "vcc25-dram"; > >>>> + }; > >>>> + > >>>> + reg_bldo1: bldo1 { > >>>> + regulator-always-on; > >>>> + regulator-min-microvolt = <1800000>; > >>>> + regulator-max-microvolt = <1800000>; > >>>> + regulator-name = "vcc-bias-pll"; > >>>> + }; > >>>> + > >>>> + reg_bldo2: bldo2 { > >>>> + regulator-always-on; > >>>> + regulator-min-microvolt = <1800000>; > >>>> + regulator-max-microvolt = <1800000>; > >>>> + regulator-name = "vcc-efuse-pcie-hdmi-io"; > >>>> + }; > >>>> + > >>>> + reg_bldo3: bldo3 { > >>>> + regulator-always-on; > >>>> + regulator-min-microvolt = <1800000>; > >>>> + regulator-max-microvolt = <1800000>; > >>>> + regulator-name = "vcc-dcxoio"; > >>>> + }; > >>>> + > >>>> + bldo4 { > >>>> + /* unused */ > >>>> + }; > >>>> + > >>>> + reg_cldo1: cldo1 { > >>>> + regulator-always-on; > >>>> + regulator-min-microvolt = <3300000>; > >>>> + regulator-max-microvolt = <3300000>; > >>>> + regulator-name = "vcc-3v3"; > >>>> + }; > >>>> + > >>>> + reg_cldo2: cldo2 { > >>>> + regulator-min-microvolt = <3300000>; > >>>> + regulator-max-microvolt = <3300000>; > >>>> + regulator-name = "vcc-wifi-1"; > >>>> + }; > >>>> + > >>>> + reg_cldo3: cldo3 { > >>>> + regulator-min-microvolt = <3300000>; > >>>> + regulator-max-microvolt = <3300000>; > >>>> + regulator-name = "vcc-wifi-2"; > >>>> + }; > >>>> + > >>>> + reg_dcdca: dcdca { > >>>> + regulator-always-on; > >>>> + regulator-min-microvolt = <810000>; > >>>> + regulator-max-microvolt = <1080000>; > >>>> + regulator-name = "vdd-cpu"; > >>>> + }; > >>>> + > >>>> + reg_dcdcc: dcdcc { > >>>> + regulator-min-microvolt = <810000>; > >>>> + regulator-max-microvolt = <1080000>; > >>>> + regulator-name = "vdd-gpu"; > >>>> + }; > >>>> + > >>>> + reg_dcdcd: dcdcd { > >>>> + regulator-always-on; > >>>> + regulator-min-microvolt = <960000>; > >>>> + regulator-max-microvolt = <960000>; > >>>> + regulator-name = "vdd-sys"; > >>>> + }; > >>>> + > >>>> + reg_dcdce: dcdce { > >>>> + regulator-always-on; > >>>> + regulator-min-microvolt = <1200000>; > >>>> + regulator-max-microvolt = <1200000>; > >>>> + regulator-name = "vcc-dram"; > >>>> + }; > >>>> + > >>>> + sw { > >>>> + /* unused */ > >>>> + }; > >>> > >>> Can't we have a DTSI for this PMIC too? > >> > >> Back when we started adding the regulators, Mark wasn't too happy with > >> all the placeholders we put in the dtsi. I think we got away with it > >> because we had other things in there as well. That's not true for this > >> particular PMIC. > > > > So we need separate dtsi for this PMIC as well? > > I don't think we do. We don't gain much. Merged with Maxime's ack, and the subject prefix fixed. Also squashed in the Ethernet patch for this board. ChenYu
On Monday 03 September 2018 11:05 AM, Chen-Yu Tsai wrote: > On Tue, Jul 31, 2018 at 9:42 PM Chen-Yu Tsai <wens@csie.org> wrote: >> >> On Tue, Jul 31, 2018 at 9:41 PM, Jagan Teki <jagan@amarulasolutions.com> wrote: >>> On Mon, Jul 30, 2018 at 2:47 PM, Chen-Yu Tsai <wens@csie.org> wrote: >>>> On Mon, Jul 30, 2018 at 5:00 PM, Maxime Ripard >>>> <maxime.ripard@bootlin.com> wrote: >>>>> Hi, >>>>> >>>>> On Sat, Jul 28, 2018 at 11:56:15PM +0530, Jagan Teki wrote: >>>>>> OrangePi One Plus is Allwinner H6 based open-source SBC, >>>>>> which support: >>>>>> - Allwinner H6 Quad-core 64-bit ARM Cortex-A53 >>>>>> - GPU Mali-T720 >>>>>> - 1GB LPDDR3 RAM >>>>>> - AXP805 PMIC >>>>>> - 1Gbps GMAC via RTL8211 >>>>>> - USB 2.0 Host, OTG >>>>>> - HDMI port >>>>>> - 5V/2A DC power supply >>>>>> >>>>>> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> >>>>>> --- >>>>>> arch/arm64/boot/dts/allwinner/Makefile | 1 + >>>>>> .../allwinner/sun50i-h6-orangepi-one-plus.dts | 150 ++++++++++++++++++ >>>>>> 2 files changed, 151 insertions(+) >>>>>> create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts >>>>>> >>>>>> diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile >>>>>> index 9ffa7a038791..c38f326e7fec 100644 >>>>>> --- a/arch/arm64/boot/dts/allwinner/Makefile >>>>>> +++ b/arch/arm64/boot/dts/allwinner/Makefile >>>>>> @@ -15,4 +15,5 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb >>>>>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb >>>>>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb >>>>>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb >>>>>> +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb >>>>>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb >>>>>> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts >>>>>> new file mode 100644 >>>>>> index 000000000000..0612c19cd994 >>>>>> --- /dev/null >>>>>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts >>>>>> @@ -0,0 +1,150 @@ >>>>>> +// SPDX-License-Identifier: (GPL-2.0+ or MIT) >>>>>> +/* >>>>>> + * Copyright (C) 2018 Amarula Solutions >>>>>> + * Author: Jagan Teki <jagan@amarulasolutions.com> >>>>>> + */ >>>>>> + >>>>>> +/dts-v1/; >>>>>> + >>>>>> +#include "sun50i-h6.dtsi" >>>>>> + >>>>>> +#include <dt-bindings/gpio/gpio.h> >>>>>> + >>>>>> +/ { >>>>>> + model = "OrangePi One Plus"; >>>>>> + compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6"; >>>>>> + >>>>>> + aliases { >>>>>> + serial0 = &uart0; >>>>>> + }; >>>>>> + >>>>>> + chosen { >>>>>> + stdout-path = "serial0:115200n8"; >>>>>> + }; >>>>>> +}; >>>>>> + >>>>>> +&mmc0 { >>>>>> + pinctrl-names = "default"; >>>>>> + pinctrl-0 = <&mmc0_pins>; >>>>>> + vmmc-supply = <®_cldo1>; >>>>>> + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; >>>>>> + bus-width = <4>; >>>>>> + status = "okay"; >>>>>> +}; >>>>>> + >>>>>> +&r_i2c { >>>>>> + status = "okay"; >>>>>> + >>>>>> + axp805: pmic@36 { >>>>>> + compatible = "x-powers,axp805", "x-powers,axp806"; >>>>>> + reg = <0x36>; >>>>>> + interrupt-parent = <&r_intc>; >>>>>> + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; >>>>>> + interrupt-controller; >>>>>> + #interrupt-cells = <1>; >>>>>> + x-powers,self-working-mode; >>>>>> + >>>>>> + regulators { >>>>>> + reg_aldo1: aldo1 { >>>>>> + regulator-always-on; >>>>>> + regulator-min-microvolt = <3300000>; >>>>>> + regulator-max-microvolt = <3300000>; >>>>>> + regulator-name = "vcc-pl"; >>>>>> + }; >>>>>> + >>>>>> + reg_aldo2: aldo2 { >>>>>> + regulator-min-microvolt = <3300000>; >>>>>> + regulator-max-microvolt = <3300000>; >>>>>> + regulator-name = "vcc-ac200"; >>>>>> + }; >>>>>> + >>>>>> + reg_aldo3: aldo3 { >>>>>> + regulator-always-on; >>>>>> + regulator-min-microvolt = <3300000>; >>>>>> + regulator-max-microvolt = <3300000>; >>>>>> + regulator-name = "vcc25-dram"; >>>>>> + }; >>>>>> + >>>>>> + reg_bldo1: bldo1 { >>>>>> + regulator-always-on; >>>>>> + regulator-min-microvolt = <1800000>; >>>>>> + regulator-max-microvolt = <1800000>; >>>>>> + regulator-name = "vcc-bias-pll"; >>>>>> + }; >>>>>> + >>>>>> + reg_bldo2: bldo2 { >>>>>> + regulator-always-on; >>>>>> + regulator-min-microvolt = <1800000>; >>>>>> + regulator-max-microvolt = <1800000>; >>>>>> + regulator-name = "vcc-efuse-pcie-hdmi-io"; >>>>>> + }; >>>>>> + >>>>>> + reg_bldo3: bldo3 { >>>>>> + regulator-always-on; >>>>>> + regulator-min-microvolt = <1800000>; >>>>>> + regulator-max-microvolt = <1800000>; >>>>>> + regulator-name = "vcc-dcxoio"; >>>>>> + }; >>>>>> + >>>>>> + bldo4 { >>>>>> + /* unused */ >>>>>> + }; >>>>>> + >>>>>> + reg_cldo1: cldo1 { >>>>>> + regulator-always-on; >>>>>> + regulator-min-microvolt = <3300000>; >>>>>> + regulator-max-microvolt = <3300000>; >>>>>> + regulator-name = "vcc-3v3"; >>>>>> + }; >>>>>> + >>>>>> + reg_cldo2: cldo2 { >>>>>> + regulator-min-microvolt = <3300000>; >>>>>> + regulator-max-microvolt = <3300000>; >>>>>> + regulator-name = "vcc-wifi-1"; >>>>>> + }; >>>>>> + >>>>>> + reg_cldo3: cldo3 { >>>>>> + regulator-min-microvolt = <3300000>; >>>>>> + regulator-max-microvolt = <3300000>; >>>>>> + regulator-name = "vcc-wifi-2"; >>>>>> + }; >>>>>> + >>>>>> + reg_dcdca: dcdca { >>>>>> + regulator-always-on; >>>>>> + regulator-min-microvolt = <810000>; >>>>>> + regulator-max-microvolt = <1080000>; >>>>>> + regulator-name = "vdd-cpu"; >>>>>> + }; >>>>>> + >>>>>> + reg_dcdcc: dcdcc { >>>>>> + regulator-min-microvolt = <810000>; >>>>>> + regulator-max-microvolt = <1080000>; >>>>>> + regulator-name = "vdd-gpu"; >>>>>> + }; >>>>>> + >>>>>> + reg_dcdcd: dcdcd { >>>>>> + regulator-always-on; >>>>>> + regulator-min-microvolt = <960000>; >>>>>> + regulator-max-microvolt = <960000>; >>>>>> + regulator-name = "vdd-sys"; >>>>>> + }; >>>>>> + >>>>>> + reg_dcdce: dcdce { >>>>>> + regulator-always-on; >>>>>> + regulator-min-microvolt = <1200000>; >>>>>> + regulator-max-microvolt = <1200000>; >>>>>> + regulator-name = "vcc-dram"; >>>>>> + }; >>>>>> + >>>>>> + sw { >>>>>> + /* unused */ >>>>>> + }; >>>>> >>>>> Can't we have a DTSI for this PMIC too? >>>> >>>> Back when we started adding the regulators, Mark wasn't too happy with >>>> all the placeholders we put in the dtsi. I think we got away with it >>>> because we had other things in there as well. That's not true for this >>>> particular PMIC. >>> >>> So we need separate dtsi for this PMIC as well? >> >> I don't think we do. We don't gain much. > > Merged with Maxime's ack, and the subject prefix fixed. > Also squashed in the Ethernet patch for this board. H6 EMAC node changes still in ML.
On Tue, Sep 4, 2018 at 10:31 PM Jagan Teki <jagan@openedev.com> wrote: > > On Monday 03 September 2018 11:05 AM, Chen-Yu Tsai wrote: > > On Tue, Jul 31, 2018 at 9:42 PM Chen-Yu Tsai <wens@csie.org> wrote: > >> > >> On Tue, Jul 31, 2018 at 9:41 PM, Jagan Teki <jagan@amarulasolutions.com> wrote: > >>> On Mon, Jul 30, 2018 at 2:47 PM, Chen-Yu Tsai <wens@csie.org> wrote: > >>>> On Mon, Jul 30, 2018 at 5:00 PM, Maxime Ripard > >>>> <maxime.ripard@bootlin.com> wrote: > >>>>> Hi, > >>>>> > >>>>> On Sat, Jul 28, 2018 at 11:56:15PM +0530, Jagan Teki wrote: > >>>>>> OrangePi One Plus is Allwinner H6 based open-source SBC, > >>>>>> which support: > >>>>>> - Allwinner H6 Quad-core 64-bit ARM Cortex-A53 > >>>>>> - GPU Mali-T720 > >>>>>> - 1GB LPDDR3 RAM > >>>>>> - AXP805 PMIC > >>>>>> - 1Gbps GMAC via RTL8211 > >>>>>> - USB 2.0 Host, OTG > >>>>>> - HDMI port > >>>>>> - 5V/2A DC power supply > >>>>>> > >>>>>> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> > >>>>>> --- > >>>>>> arch/arm64/boot/dts/allwinner/Makefile | 1 + > >>>>>> .../allwinner/sun50i-h6-orangepi-one-plus.dts | 150 ++++++++++++++++++ > >>>>>> 2 files changed, 151 insertions(+) > >>>>>> create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts > >>>>>> > >>>>>> diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile > >>>>>> index 9ffa7a038791..c38f326e7fec 100644 > >>>>>> --- a/arch/arm64/boot/dts/allwinner/Makefile > >>>>>> +++ b/arch/arm64/boot/dts/allwinner/Makefile > >>>>>> @@ -15,4 +15,5 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb > >>>>>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb > >>>>>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb > >>>>>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb > >>>>>> +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb > >>>>>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb > >>>>>> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts > >>>>>> new file mode 100644 > >>>>>> index 000000000000..0612c19cd994 > >>>>>> --- /dev/null > >>>>>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts > >>>>>> @@ -0,0 +1,150 @@ > >>>>>> +// SPDX-License-Identifier: (GPL-2.0+ or MIT) > >>>>>> +/* > >>>>>> + * Copyright (C) 2018 Amarula Solutions > >>>>>> + * Author: Jagan Teki <jagan@amarulasolutions.com> > >>>>>> + */ > >>>>>> + > >>>>>> +/dts-v1/; > >>>>>> + > >>>>>> +#include "sun50i-h6.dtsi" > >>>>>> + > >>>>>> +#include <dt-bindings/gpio/gpio.h> > >>>>>> + > >>>>>> +/ { > >>>>>> + model = "OrangePi One Plus"; > >>>>>> + compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6"; > >>>>>> + > >>>>>> + aliases { > >>>>>> + serial0 = &uart0; > >>>>>> + }; > >>>>>> + > >>>>>> + chosen { > >>>>>> + stdout-path = "serial0:115200n8"; > >>>>>> + }; > >>>>>> +}; > >>>>>> + > >>>>>> +&mmc0 { > >>>>>> + pinctrl-names = "default"; > >>>>>> + pinctrl-0 = <&mmc0_pins>; > >>>>>> + vmmc-supply = <®_cldo1>; > >>>>>> + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; > >>>>>> + bus-width = <4>; > >>>>>> + status = "okay"; > >>>>>> +}; > >>>>>> + > >>>>>> +&r_i2c { > >>>>>> + status = "okay"; > >>>>>> + > >>>>>> + axp805: pmic@36 { > >>>>>> + compatible = "x-powers,axp805", "x-powers,axp806"; > >>>>>> + reg = <0x36>; > >>>>>> + interrupt-parent = <&r_intc>; > >>>>>> + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; > >>>>>> + interrupt-controller; > >>>>>> + #interrupt-cells = <1>; > >>>>>> + x-powers,self-working-mode; > >>>>>> + > >>>>>> + regulators { > >>>>>> + reg_aldo1: aldo1 { > >>>>>> + regulator-always-on; > >>>>>> + regulator-min-microvolt = <3300000>; > >>>>>> + regulator-max-microvolt = <3300000>; > >>>>>> + regulator-name = "vcc-pl"; > >>>>>> + }; > >>>>>> + > >>>>>> + reg_aldo2: aldo2 { > >>>>>> + regulator-min-microvolt = <3300000>; > >>>>>> + regulator-max-microvolt = <3300000>; > >>>>>> + regulator-name = "vcc-ac200"; > >>>>>> + }; > >>>>>> + > >>>>>> + reg_aldo3: aldo3 { > >>>>>> + regulator-always-on; > >>>>>> + regulator-min-microvolt = <3300000>; > >>>>>> + regulator-max-microvolt = <3300000>; > >>>>>> + regulator-name = "vcc25-dram"; > >>>>>> + }; > >>>>>> + > >>>>>> + reg_bldo1: bldo1 { > >>>>>> + regulator-always-on; > >>>>>> + regulator-min-microvolt = <1800000>; > >>>>>> + regulator-max-microvolt = <1800000>; > >>>>>> + regulator-name = "vcc-bias-pll"; > >>>>>> + }; > >>>>>> + > >>>>>> + reg_bldo2: bldo2 { > >>>>>> + regulator-always-on; > >>>>>> + regulator-min-microvolt = <1800000>; > >>>>>> + regulator-max-microvolt = <1800000>; > >>>>>> + regulator-name = "vcc-efuse-pcie-hdmi-io"; > >>>>>> + }; > >>>>>> + > >>>>>> + reg_bldo3: bldo3 { > >>>>>> + regulator-always-on; > >>>>>> + regulator-min-microvolt = <1800000>; > >>>>>> + regulator-max-microvolt = <1800000>; > >>>>>> + regulator-name = "vcc-dcxoio"; > >>>>>> + }; > >>>>>> + > >>>>>> + bldo4 { > >>>>>> + /* unused */ > >>>>>> + }; > >>>>>> + > >>>>>> + reg_cldo1: cldo1 { > >>>>>> + regulator-always-on; > >>>>>> + regulator-min-microvolt = <3300000>; > >>>>>> + regulator-max-microvolt = <3300000>; > >>>>>> + regulator-name = "vcc-3v3"; > >>>>>> + }; > >>>>>> + > >>>>>> + reg_cldo2: cldo2 { > >>>>>> + regulator-min-microvolt = <3300000>; > >>>>>> + regulator-max-microvolt = <3300000>; > >>>>>> + regulator-name = "vcc-wifi-1"; > >>>>>> + }; > >>>>>> + > >>>>>> + reg_cldo3: cldo3 { > >>>>>> + regulator-min-microvolt = <3300000>; > >>>>>> + regulator-max-microvolt = <3300000>; > >>>>>> + regulator-name = "vcc-wifi-2"; > >>>>>> + }; > >>>>>> + > >>>>>> + reg_dcdca: dcdca { > >>>>>> + regulator-always-on; > >>>>>> + regulator-min-microvolt = <810000>; > >>>>>> + regulator-max-microvolt = <1080000>; > >>>>>> + regulator-name = "vdd-cpu"; > >>>>>> + }; > >>>>>> + > >>>>>> + reg_dcdcc: dcdcc { > >>>>>> + regulator-min-microvolt = <810000>; > >>>>>> + regulator-max-microvolt = <1080000>; > >>>>>> + regulator-name = "vdd-gpu"; > >>>>>> + }; > >>>>>> + > >>>>>> + reg_dcdcd: dcdcd { > >>>>>> + regulator-always-on; > >>>>>> + regulator-min-microvolt = <960000>; > >>>>>> + regulator-max-microvolt = <960000>; > >>>>>> + regulator-name = "vdd-sys"; > >>>>>> + }; > >>>>>> + > >>>>>> + reg_dcdce: dcdce { > >>>>>> + regulator-always-on; > >>>>>> + regulator-min-microvolt = <1200000>; > >>>>>> + regulator-max-microvolt = <1200000>; > >>>>>> + regulator-name = "vcc-dram"; > >>>>>> + }; > >>>>>> + > >>>>>> + sw { > >>>>>> + /* unused */ > >>>>>> + }; > >>>>> > >>>>> Can't we have a DTSI for this PMIC too? > >>>> > >>>> Back when we started adding the regulators, Mark wasn't too happy with > >>>> all the placeholders we put in the dtsi. I think we got away with it > >>>> because we had other things in there as well. That's not true for this > >>>> particular PMIC. > >>> > >>> So we need separate dtsi for this PMIC as well? > >> > >> I don't think we do. We don't gain much. > > > > Merged with Maxime's ack, and the subject prefix fixed. > > Also squashed in the Ethernet patch for this board. > > H6 EMAC node changes still in ML. Oops. Dropped that part. Sorry about that. ChenYu
diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile index 9ffa7a038791..c38f326e7fec 100644 --- a/arch/arm64/boot/dts/allwinner/Makefile +++ b/arch/arm64/boot/dts/allwinner/Makefile @@ -15,4 +15,5 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts new file mode 100644 index 000000000000..0612c19cd994 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts @@ -0,0 +1,150 @@ +// SPDX-License-Identifier: (GPL-2.0+ or MIT) +/* + * Copyright (C) 2018 Amarula Solutions + * Author: Jagan Teki <jagan@amarulasolutions.com> + */ + +/dts-v1/; + +#include "sun50i-h6.dtsi" + +#include <dt-bindings/gpio/gpio.h> + +/ { + model = "OrangePi One Plus"; + compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6"; + + aliases { + serial0 = &uart0; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; +}; + +&mmc0 { + pinctrl-names = "default"; + pinctrl-0 = <&mmc0_pins>; + vmmc-supply = <®_cldo1>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; + bus-width = <4>; + status = "okay"; +}; + +&r_i2c { + status = "okay"; + + axp805: pmic@36 { + compatible = "x-powers,axp805", "x-powers,axp806"; + reg = <0x36>; + interrupt-parent = <&r_intc>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; + interrupt-controller; + #interrupt-cells = <1>; + x-powers,self-working-mode; + + regulators { + reg_aldo1: aldo1 { + regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-pl"; + }; + + reg_aldo2: aldo2 { + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-ac200"; + }; + + reg_aldo3: aldo3 { + regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc25-dram"; + }; + + reg_bldo1: bldo1 { + regulator-always-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-name = "vcc-bias-pll"; + }; + + reg_bldo2: bldo2 { + regulator-always-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-name = "vcc-efuse-pcie-hdmi-io"; + }; + + reg_bldo3: bldo3 { + regulator-always-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-name = "vcc-dcxoio"; + }; + + bldo4 { + /* unused */ + }; + + reg_cldo1: cldo1 { + regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-3v3"; + }; + + reg_cldo2: cldo2 { + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-wifi-1"; + }; + + reg_cldo3: cldo3 { + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-wifi-2"; + }; + + reg_dcdca: dcdca { + regulator-always-on; + regulator-min-microvolt = <810000>; + regulator-max-microvolt = <1080000>; + regulator-name = "vdd-cpu"; + }; + + reg_dcdcc: dcdcc { + regulator-min-microvolt = <810000>; + regulator-max-microvolt = <1080000>; + regulator-name = "vdd-gpu"; + }; + + reg_dcdcd: dcdcd { + regulator-always-on; + regulator-min-microvolt = <960000>; + regulator-max-microvolt = <960000>; + regulator-name = "vdd-sys"; + }; + + reg_dcdce: dcdce { + regulator-always-on; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-name = "vcc-dram"; + }; + + sw { + /* unused */ + }; + }; + }; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_ph_pins>; + status = "okay"; +};
OrangePi One Plus is Allwinner H6 based open-source SBC, which support: - Allwinner H6 Quad-core 64-bit ARM Cortex-A53 - GPU Mali-T720 - 1GB LPDDR3 RAM - AXP805 PMIC - 1Gbps GMAC via RTL8211 - USB 2.0 Host, OTG - HDMI port - 5V/2A DC power supply Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> --- arch/arm64/boot/dts/allwinner/Makefile | 1 + .../allwinner/sun50i-h6-orangepi-one-plus.dts | 150 ++++++++++++++++++ 2 files changed, 151 insertions(+) create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts