Message ID | 1527136699-19238-1-git-send-email-jun.nie@linaro.org |
---|---|
State | New |
Headers | show |
Series | [v2] sunxi: add support for Banana Pi M2 Zero board | expand |
Hi, On Thu, May 24, 2018 at 12:38:19PM +0800, Jun Nie wrote: > Banana Pi M2 Zero is a board by Sinovoip with Allwinner H2+ SoC, 16-bit > 512MiB DDR3 memory, a MicroSD slot, two MicroUSB ports (one OTG and one > powering-only) and a miniHDMI port. > > DTS file is from Linux kernel with removing some nodes that are not needed > in u-boot or not merged into u-boot yet. > > Signed-off-by: Icenowy Zheng <icenowy@aosc.io> > Signed-off-by: Jun Nie <jun.nie@linaro.org> Don't forget to CC me on the sunxi-related patches. > --- > arch/arm/dts/Makefile | 1 + > arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts | 68 +++++++++++++++++++++++++ > board/sunxi/MAINTAINERS | 5 ++ > configs/bananapi_m2_zero_defconfig | 15 ++++++ > 4 files changed, 89 insertions(+) > create mode 100644 arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts > create mode 100644 configs/bananapi_m2_zero_defconfig > > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile > index 20a4c37..8d6fab2 100644 > --- a/arch/arm/dts/Makefile > +++ b/arch/arm/dts/Makefile > @@ -338,6 +338,7 @@ dtb-$(CONFIG_MACH_SUN8I_A83T) += \ > sun8i-a83t-cubietruck-plus.dtb \ > sun8i-a83t-tbs-a711.dts > dtb-$(CONFIG_MACH_SUN8I_H3) += \ > + sun8i-h2-plus-bananapi-m2-zero.dtb \ > sun8i-h2-plus-orangepi-zero.dtb \ > sun8i-h3-bananapi-m2-plus.dtb \ > sun8i-h3-libretech-all-h3-cc.dtb \ > diff --git a/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts b/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts > new file mode 100644 > index 0000000..92e8cf4 > --- /dev/null > +++ b/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts > @@ -0,0 +1,68 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io> > + * > + * Based on sun8i-h3-bananapi-m2-plus.dts, which is: > + * Copyright (C) 2016 Chen-Yu Tsai <wens@csie.org> > + */ > + > +/dts-v1/; > +#include "sun8i-h3.dtsi" > +#include "sunxi-common-regulators.dtsi" > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > + > +/ { > + model = "Banana Pi BPI-M2-Zero"; > + compatible = "sinovoip,bpi-m2-zero", "allwinner,sun8i-h2-plus"; > + > + aliases { > + serial0 = &uart0; > + serial1 = &uart1; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + pwr_led { > + label = "bananapi-m2-zero:red:pwr"; > + gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */ > + default-state = "on"; > + }; > + }; > + > + gpio_keys { > + compatible = "gpio-keys"; > + > + sw4 { > + label = "power"; > + linux,code = <BTN_0>; > + gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; > + }; > + }; > +}; > + > +&mmc0 { > + vmmc-supply = <®_vcc3v3>; > + bus-width = <4>; > + /* > + * On the production batch of this board the card detect GPIO is > + * high active (card inserted), although on the early samples it's > + * low active. > + */ > + cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */ > + status = "okay"; > +}; > + > +&uart0 { > + status = "okay"; > +}; > + > +&uart1 { > + status = "okay"; > +}; Why not using straight the DT from linux here? There's a couple of things missing from this one (the pinctrl nodes, for example). > diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS > index 5eb8bbe..0d904d9 100644 > --- a/board/sunxi/MAINTAINERS > +++ b/board/sunxi/MAINTAINERS > @@ -363,6 +363,11 @@ M: Icenowy Zheng <icenowy@aosc.io> > S: Maintained > F: configs/Sinovoip_BPI_M2_Plus_defconfig > > +SINOVOIP BPI M2 ZERO BOARD > +M: Icenowy Zheng <icenowy@aosc.io> > +S: Maintained > +F: configs/Sinovoip_BPI_M2_Zero_defconfig > + > SINOVOIP BPI M3 A83T BOARD > M: VishnuPatekar <vishnupatekar0510@gmail.com> > S: Maintained > diff --git a/configs/bananapi_m2_zero_defconfig b/configs/bananapi_m2_zero_defconfig > new file mode 100644 > index 0000000..b919d8b > --- /dev/null > +++ b/configs/bananapi_m2_zero_defconfig > @@ -0,0 +1,15 @@ > +CONFIG_ARM=y > +CONFIG_ARCH_SUNXI=y > +CONFIG_SYS_TEXT_BASE=0x4a000000 Did you run savedefconfig recently? That should be the default nowadays. > +CONFIG_MACH_SUN8I_H3=y > +CONFIG_DRAM_CLK=408 > +CONFIG_DRAM_ZQ=3881979 > +CONFIG_DRAM_ODT_EN=y > +CONFIG_MMC0_CD_PIN="" That doesn't match the DT. Maxime
2018-05-24 15:54 GMT+08:00 Maxime Ripard <maxime.ripard@bootlin.com>: > Hi, > > On Thu, May 24, 2018 at 12:38:19PM +0800, Jun Nie wrote: >> Banana Pi M2 Zero is a board by Sinovoip with Allwinner H2+ SoC, 16-bit >> 512MiB DDR3 memory, a MicroSD slot, two MicroUSB ports (one OTG and one >> powering-only) and a miniHDMI port. >> >> DTS file is from Linux kernel with removing some nodes that are not needed >> in u-boot or not merged into u-boot yet. >> >> Signed-off-by: Icenowy Zheng <icenowy@aosc.io> >> Signed-off-by: Jun Nie <jun.nie@linaro.org> > > > Don't forget to CC me on the sunxi-related patches. Sure, will add your email in the script. > >> --- >> arch/arm/dts/Makefile | 1 + >> arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts | 68 +++++++++++++++++++++++++ >> board/sunxi/MAINTAINERS | 5 ++ >> configs/bananapi_m2_zero_defconfig | 15 ++++++ >> 4 files changed, 89 insertions(+) >> create mode 100644 arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts >> create mode 100644 configs/bananapi_m2_zero_defconfig >> >> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile >> index 20a4c37..8d6fab2 100644 >> --- a/arch/arm/dts/Makefile >> +++ b/arch/arm/dts/Makefile >> @@ -338,6 +338,7 @@ dtb-$(CONFIG_MACH_SUN8I_A83T) += \ >> sun8i-a83t-cubietruck-plus.dtb \ >> sun8i-a83t-tbs-a711.dts >> dtb-$(CONFIG_MACH_SUN8I_H3) += \ >> + sun8i-h2-plus-bananapi-m2-zero.dtb \ >> sun8i-h2-plus-orangepi-zero.dtb \ >> sun8i-h3-bananapi-m2-plus.dtb \ >> sun8i-h3-libretech-all-h3-cc.dtb \ >> diff --git a/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts b/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts >> new file mode 100644 >> index 0000000..92e8cf4 >> --- /dev/null >> +++ b/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts >> @@ -0,0 +1,68 @@ >> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) >> +/* >> + * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io> >> + * >> + * Based on sun8i-h3-bananapi-m2-plus.dts, which is: >> + * Copyright (C) 2016 Chen-Yu Tsai <wens@csie.org> >> + */ >> + >> +/dts-v1/; >> +#include "sun8i-h3.dtsi" >> +#include "sunxi-common-regulators.dtsi" >> + >> +#include <dt-bindings/gpio/gpio.h> >> +#include <dt-bindings/input/input.h> >> + >> +/ { >> + model = "Banana Pi BPI-M2-Zero"; >> + compatible = "sinovoip,bpi-m2-zero", "allwinner,sun8i-h2-plus"; >> + >> + aliases { >> + serial0 = &uart0; >> + serial1 = &uart1; >> + }; >> + >> + chosen { >> + stdout-path = "serial0:115200n8"; >> + }; >> + >> + leds { >> + compatible = "gpio-leds"; >> + >> + pwr_led { >> + label = "bananapi-m2-zero:red:pwr"; >> + gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */ >> + default-state = "on"; >> + }; >> + }; >> + >> + gpio_keys { >> + compatible = "gpio-keys"; >> + >> + sw4 { >> + label = "power"; >> + linux,code = <BTN_0>; >> + gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; >> + }; >> + }; >> +}; >> + >> +&mmc0 { >> + vmmc-supply = <®_vcc3v3>; >> + bus-width = <4>; >> + /* >> + * On the production batch of this board the card detect GPIO is >> + * high active (card inserted), although on the early samples it's >> + * low active. >> + */ >> + cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */ >> + status = "okay"; >> +}; >> + >> +&uart0 { >> + status = "okay"; >> +}; >> + >> +&uart1 { >> + status = "okay"; >> +}; > > Why not using straight the DT from linux here? There's a couple of > things missing from this one (the pinctrl nodes, for example). I had thought that pinctrl is not merged yet in u-boot per the comments for patch V1. Will keep it in next version. WIFI is removed because it shall not work in u-boot. ehci0/ohci0 are removed because they are still missing in h3.dtsi. > >> diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS >> index 5eb8bbe..0d904d9 100644 >> --- a/board/sunxi/MAINTAINERS >> +++ b/board/sunxi/MAINTAINERS >> @@ -363,6 +363,11 @@ M: Icenowy Zheng <icenowy@aosc.io> >> S: Maintained >> F: configs/Sinovoip_BPI_M2_Plus_defconfig >> >> +SINOVOIP BPI M2 ZERO BOARD >> +M: Icenowy Zheng <icenowy@aosc.io> >> +S: Maintained >> +F: configs/Sinovoip_BPI_M2_Zero_defconfig >> + >> SINOVOIP BPI M3 A83T BOARD >> M: VishnuPatekar <vishnupatekar0510@gmail.com> >> S: Maintained >> diff --git a/configs/bananapi_m2_zero_defconfig b/configs/bananapi_m2_zero_defconfig >> new file mode 100644 >> index 0000000..b919d8b >> --- /dev/null >> +++ b/configs/bananapi_m2_zero_defconfig >> @@ -0,0 +1,15 @@ >> +CONFIG_ARM=y >> +CONFIG_ARCH_SUNXI=y >> +CONFIG_SYS_TEXT_BASE=0x4a000000 > > Did you run savedefconfig recently? That should be the default nowadays. Yes, this config is copied from saved defconfig. I rebased to denx/next to generate patch. Or I should prepare the patch based on denx/master? > >> +CONFIG_MACH_SUN8I_H3=y >> +CONFIG_DRAM_CLK=408 >> +CONFIG_DRAM_ZQ=3881979 >> +CONFIG_DRAM_ODT_EN=y >> +CONFIG_MMC0_CD_PIN="" > > That doesn't match the DT. Right. I see Kconfig default cd_pin is PF6. Not sure why this line is generated. Will remove it in next version. > > Maxime > > -- > Maxime Ripard, Bootlin (formerly Free Electrons) > Embedded Linux and Kernel engineering > https://bootlin.com
On Thu, May 24, 2018 at 04:22:53PM +0800, Jun Nie wrote: > > Why not using straight the DT from linux here? There's a couple of > > things missing from this one (the pinctrl nodes, for example). > > I had thought that pinctrl is not merged yet in u-boot per the > comments for patch V1. Will > keep it in next version. > > WIFI is removed because it shall not work in u-boot. It doesn't really matter, the hardware is the same and the DT should be the same as well, even though U-Boot will not use it to its full extent. There's even some people using directly the U-Boot DT to boot Linux. In this case, you wouldn't get all the features supported in Linux either. > ehci0/ohci0 are removed because they are still missing in h3.dtsi. You can sync the H3 DTSI with Linux as well then, we probably didn't do it for quite some time. > > > >> diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS > >> index 5eb8bbe..0d904d9 100644 > >> --- a/board/sunxi/MAINTAINERS > >> +++ b/board/sunxi/MAINTAINERS > >> @@ -363,6 +363,11 @@ M: Icenowy Zheng <icenowy@aosc.io> > >> S: Maintained > >> F: configs/Sinovoip_BPI_M2_Plus_defconfig > >> > >> +SINOVOIP BPI M2 ZERO BOARD > >> +M: Icenowy Zheng <icenowy@aosc.io> > >> +S: Maintained > >> +F: configs/Sinovoip_BPI_M2_Zero_defconfig > >> + > >> SINOVOIP BPI M3 A83T BOARD > >> M: VishnuPatekar <vishnupatekar0510@gmail.com> > >> S: Maintained > >> diff --git a/configs/bananapi_m2_zero_defconfig b/configs/bananapi_m2_zero_defconfig > >> new file mode 100644 > >> index 0000000..b919d8b > >> --- /dev/null > >> +++ b/configs/bananapi_m2_zero_defconfig > >> @@ -0,0 +1,15 @@ > >> +CONFIG_ARM=y > >> +CONFIG_ARCH_SUNXI=y > >> +CONFIG_SYS_TEXT_BASE=0x4a000000 > > > > Did you run savedefconfig recently? That should be the default nowadays. > > Yes, this config is copied from saved defconfig. I rebased to > denx/next to generate patch. > Or I should prepare the patch based on denx/master? This should have been solved by 341c05865478, which is part of v2018.05 Maxime -- Maxime Ripard, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 20a4c37..8d6fab2 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -338,6 +338,7 @@ dtb-$(CONFIG_MACH_SUN8I_A83T) += \ sun8i-a83t-cubietruck-plus.dtb \ sun8i-a83t-tbs-a711.dts dtb-$(CONFIG_MACH_SUN8I_H3) += \ + sun8i-h2-plus-bananapi-m2-zero.dtb \ sun8i-h2-plus-orangepi-zero.dtb \ sun8i-h3-bananapi-m2-plus.dtb \ sun8i-h3-libretech-all-h3-cc.dtb \ diff --git a/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts b/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts new file mode 100644 index 0000000..92e8cf4 --- /dev/null +++ b/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io> + * + * Based on sun8i-h3-bananapi-m2-plus.dts, which is: + * Copyright (C) 2016 Chen-Yu Tsai <wens@csie.org> + */ + +/dts-v1/; +#include "sun8i-h3.dtsi" +#include "sunxi-common-regulators.dtsi" + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> + +/ { + model = "Banana Pi BPI-M2-Zero"; + compatible = "sinovoip,bpi-m2-zero", "allwinner,sun8i-h2-plus"; + + aliases { + serial0 = &uart0; + serial1 = &uart1; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + leds { + compatible = "gpio-leds"; + + pwr_led { + label = "bananapi-m2-zero:red:pwr"; + gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */ + default-state = "on"; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + + sw4 { + label = "power"; + linux,code = <BTN_0>; + gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&mmc0 { + vmmc-supply = <®_vcc3v3>; + bus-width = <4>; + /* + * On the production batch of this board the card detect GPIO is + * high active (card inserted), although on the early samples it's + * low active. + */ + cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */ + status = "okay"; +}; + +&uart0 { + status = "okay"; +}; + +&uart1 { + status = "okay"; +}; diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS index 5eb8bbe..0d904d9 100644 --- a/board/sunxi/MAINTAINERS +++ b/board/sunxi/MAINTAINERS @@ -363,6 +363,11 @@ M: Icenowy Zheng <icenowy@aosc.io> S: Maintained F: configs/Sinovoip_BPI_M2_Plus_defconfig +SINOVOIP BPI M2 ZERO BOARD +M: Icenowy Zheng <icenowy@aosc.io> +S: Maintained +F: configs/Sinovoip_BPI_M2_Zero_defconfig + SINOVOIP BPI M3 A83T BOARD M: VishnuPatekar <vishnupatekar0510@gmail.com> S: Maintained diff --git a/configs/bananapi_m2_zero_defconfig b/configs/bananapi_m2_zero_defconfig new file mode 100644 index 0000000..b919d8b --- /dev/null +++ b/configs/bananapi_m2_zero_defconfig @@ -0,0 +1,15 @@ +CONFIG_ARM=y +CONFIG_ARCH_SUNXI=y +CONFIG_SYS_TEXT_BASE=0x4a000000 +CONFIG_MACH_SUN8I_H3=y +CONFIG_DRAM_CLK=408 +CONFIG_DRAM_ZQ=3881979 +CONFIG_DRAM_ODT_EN=y +CONFIG_MMC0_CD_PIN="" +CONFIG_DEFAULT_DEVICE_TREE="sun8i-h2-plus-bananapi-m2-zero" +# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set +CONFIG_SPL=y +# CONFIG_CMD_FLASH is not set +# CONFIG_SPL_DOS_PARTITION is not set +# CONFIG_SPL_ISO_PARTITION is not set +# CONFIG_SPL_EFI_PARTITION is not set