[v4] sunxi: add support for Banana Pi M2 Zero board

Message ID 20181027051100.59649-1-icenowy@aosc.io
State New
Headers show
Series
  • [v4] sunxi: add support for Banana Pi M2 Zero board
Related show

Commit Message

Icenowy Zheng Oct. 27, 2018, 5:11 a.m.
From: Jun Nie <jun.nie@linaro.org>

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.

Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
Signed-off-by: Jun Nie <jun.nie@linaro.org>
---
Changes in v4:
- Fixed MMC card detect on product batch boards.
- Synced the device tree from the same commit with other H3/H2+ DTs.

 arch/arm/dts/Makefile                         |   1 +
 .../dts/sun8i-h2-plus-bananapi-m2-zero.dts    | 121 ++++++++++++++++++
 board/sunxi/MAINTAINERS                       |   5 +
 configs/bananapi_m2_zero_defconfig            |  13 ++
 4 files changed, 140 insertions(+)
 create mode 100644 arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts
 create mode 100644 configs/bananapi_m2_zero_defconfig

Comments

Maxime Ripard Oct. 29, 2018, 8:03 a.m. | #1
On Sat, Oct 27, 2018 at 01:11:00PM +0800, Icenowy Zheng wrote:
> From: Jun Nie <jun.nie@linaro.org>

> 

> 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.

> 

> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>

> Signed-off-by: Jun Nie <jun.nie@linaro.org>


Ideally, your SoB should be the second one.

Otherwise,
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>


Thanks!
Maxime

-- 
Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
Jagan Teki Oct. 30, 2018, 6:27 a.m. | #2
On Sat, Oct 27, 2018 at 10:41 AM Icenowy Zheng <icenowy@aosc.io> wrote:
>
> From: Jun Nie <jun.nie@linaro.org>
>
> 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.
>
> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> Signed-off-by: Jun Nie <jun.nie@linaro.org>
> ---
> Changes in v4:
> - Fixed MMC card detect on product batch boards.
> - Synced the device tree from the same commit with other H3/H2+ DTs.
>
>  arch/arm/dts/Makefile                         |   1 +
>  .../dts/sun8i-h2-plus-bananapi-m2-zero.dts    | 121 ++++++++++++++++++
>  board/sunxi/MAINTAINERS                       |   5 +
>  configs/bananapi_m2_zero_defconfig            |  13 ++
>  4 files changed, 140 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 0de6234eec..c2de60e031 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -365,6 +365,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-libretech-all-h3-cc.dtb \
>         sun8i-h2-plus-orangepi-r1.dtb \
>         sun8i-h2-plus-orangepi-zero.dtb \

[snip]

>
> +SINOVOIP BPI M2 ZERO BOARD

Can be "BANANAPI M2 ZERO"

> +M:     Icenowy Zheng <icenowy@aosc.io>
> +S:     Maintained
> +F:     configs/Sinovoip_BPI_M2_Zero_defconfig

configs/bananapi_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 0000000000..91302eb49c
> --- /dev/null
> +++ b/configs/bananapi_m2_zero_defconfig
> @@ -0,0 +1,13 @@
> +CONFIG_ARM=y
> +CONFIG_ARCH_SUNXI=y
> +CONFIG_SPL=y
> +CONFIG_MACH_SUN8I_H3=y
> +CONFIG_DRAM_CLK=408
> +CONFIG_DRAM_ZQ=3881979
> +CONFIG_DRAM_ODT_EN=y
> +CONFIG_MMC0_CD_PIN=""

I don't think this would need, it's PF6 by default for H3
Icenowy Zheng Oct. 30, 2018, 6:49 a.m. | #3
于 2018年10月30日 GMT+08:00 下午2:27:43, Jagan Teki <jagan@amarulasolutions.com> 写到:
>On Sat, Oct 27, 2018 at 10:41 AM Icenowy Zheng <icenowy@aosc.io> wrote:
>>
>> From: Jun Nie <jun.nie@linaro.org>
>>
>> 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.
>>
>> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
>> Signed-off-by: Jun Nie <jun.nie@linaro.org>
>> ---
>> Changes in v4:
>> - Fixed MMC card detect on product batch boards.
>> - Synced the device tree from the same commit with other H3/H2+ DTs.
>>
>>  arch/arm/dts/Makefile                         |   1 +
>>  .../dts/sun8i-h2-plus-bananapi-m2-zero.dts    | 121
>++++++++++++++++++
>>  board/sunxi/MAINTAINERS                       |   5 +
>>  configs/bananapi_m2_zero_defconfig            |  13 ++
>>  4 files changed, 140 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 0de6234eec..c2de60e031 100644
>> --- a/arch/arm/dts/Makefile
>> +++ b/arch/arm/dts/Makefile
>> @@ -365,6 +365,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-libretech-all-h3-cc.dtb \
>>         sun8i-h2-plus-orangepi-r1.dtb \
>>         sun8i-h2-plus-orangepi-zero.dtb \
>
>[snip]
>
>>
>> +SINOVOIP BPI M2 ZERO BOARD
>
>Can be "BANANAPI M2 ZERO"
>
>> +M:     Icenowy Zheng <icenowy@aosc.io>
>> +S:     Maintained
>> +F:     configs/Sinovoip_BPI_M2_Zero_defconfig
>
>configs/bananapi_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 0000000000..91302eb49c
>> --- /dev/null
>> +++ b/configs/bananapi_m2_zero_defconfig
>> @@ -0,0 +1,13 @@
>> +CONFIG_ARM=y
>> +CONFIG_ARCH_SUNXI=y
>> +CONFIG_SPL=y
>> +CONFIG_MACH_SUN8I_H3=y
>> +CONFIG_DRAM_CLK=408
>> +CONFIG_DRAM_ZQ=3881979
>> +CONFIG_DRAM_ODT_EN=y
>> +CONFIG_MMC0_CD_PIN=""
>
>I don't think this would need, it's PF6 by default for H3

This board has inverted CD pin, which is not supported by U-Boot.

So CD is disabled.
Jagan Teki Oct. 31, 2018, 6:12 a.m. | #4
On Tue, Oct 30, 2018 at 11:57 AM Jagan Teki <jagan@amarulasolutions.com> wrote:
>
> On Sat, Oct 27, 2018 at 10:41 AM Icenowy Zheng <icenowy@aosc.io> wrote:
> >
> > From: Jun Nie <jun.nie@linaro.org>
> >
> > 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.
> >
> > Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> > Signed-off-by: Jun Nie <jun.nie@linaro.org>
> > ---
> > Changes in v4:
> > - Fixed MMC card detect on product batch boards.
> > - Synced the device tree from the same commit with other H3/H2+ DTs.
> >
> >  arch/arm/dts/Makefile                         |   1 +
> >  .../dts/sun8i-h2-plus-bananapi-m2-zero.dts    | 121 ++++++++++++++++++
> >  board/sunxi/MAINTAINERS                       |   5 +
> >  configs/bananapi_m2_zero_defconfig            |  13 ++
> >  4 files changed, 140 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 0de6234eec..c2de60e031 100644
> > --- a/arch/arm/dts/Makefile
> > +++ b/arch/arm/dts/Makefile
> > @@ -365,6 +365,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-libretech-all-h3-cc.dtb \
> >         sun8i-h2-plus-orangepi-r1.dtb \
> >         sun8i-h2-plus-orangepi-zero.dtb \
>
> [snip]
>
> >
> > +SINOVOIP BPI M2 ZERO BOARD
>
> Can be "BANANAPI M2 ZERO"
>
> > +M:     Icenowy Zheng <icenowy@aosc.io>
> > +S:     Maintained
> > +F:     configs/Sinovoip_BPI_M2_Zero_defconfig
>
> configs/bananapi_m2_zero_defconfig

If agree? will do above changes while applying?
Icenowy Zheng Oct. 31, 2018, 6:16 a.m. | #5
于 2018年10月31日 GMT+08:00 下午2:12:34, Jagan Teki <jagan@amarulasolutions.com> 写到:
>On Tue, Oct 30, 2018 at 11:57 AM Jagan Teki
><jagan@amarulasolutions.com> wrote:
>>
>> On Sat, Oct 27, 2018 at 10:41 AM Icenowy Zheng <icenowy@aosc.io>
>wrote:
>> >
>> > From: Jun Nie <jun.nie@linaro.org>
>> >
>> > 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.
>> >
>> > Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
>> > Signed-off-by: Jun Nie <jun.nie@linaro.org>
>> > ---
>> > Changes in v4:
>> > - Fixed MMC card detect on product batch boards.
>> > - Synced the device tree from the same commit with other H3/H2+
>DTs.
>> >
>> >  arch/arm/dts/Makefile                         |   1 +
>> >  .../dts/sun8i-h2-plus-bananapi-m2-zero.dts    | 121
>++++++++++++++++++
>> >  board/sunxi/MAINTAINERS                       |   5 +
>> >  configs/bananapi_m2_zero_defconfig            |  13 ++
>> >  4 files changed, 140 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 0de6234eec..c2de60e031 100644
>> > --- a/arch/arm/dts/Makefile
>> > +++ b/arch/arm/dts/Makefile
>> > @@ -365,6 +365,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-libretech-all-h3-cc.dtb \
>> >         sun8i-h2-plus-orangepi-r1.dtb \
>> >         sun8i-h2-plus-orangepi-zero.dtb \
>>
>> [snip]
>>
>> >
>> > +SINOVOIP BPI M2 ZERO BOARD
>>
>> Can be "BANANAPI M2 ZERO"
>>
>> > +M:     Icenowy Zheng <icenowy@aosc.io>
>> > +S:     Maintained
>> > +F:     configs/Sinovoip_BPI_M2_Zero_defconfig
>>
>> configs/bananapi_m2_zero_defconfig
>
>If agree? will do above changes while applying?

Okay, thanks.
Jagan Teki Oct. 31, 2018, 6:50 a.m. | #6
On Sat, Oct 27, 2018 at 10:41 AM Icenowy Zheng <icenowy@aosc.io> wrote:
>
> From: Jun Nie <jun.nie@linaro.org>
>
> 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.
>
> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> Signed-off-by: Jun Nie <jun.nie@linaro.org>
> ---

Applied to u-boot-sunxi/master

Patch

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 0de6234eec..c2de60e031 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -365,6 +365,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-libretech-all-h3-cc.dtb \
 	sun8i-h2-plus-orangepi-r1.dtb \
 	sun8i-h2-plus-orangepi-zero.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 0000000000..7d01f93226
--- /dev/null
+++ b/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts
@@ -0,0 +1,121 @@ 
+// 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";
+		pinctrl-names = "default";
+
+		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";
+		pinctrl-names = "default";
+
+		sw4 {
+			label = "power";
+			linux,code = <BTN_0>;
+			gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	wifi_pwrseq: wifi_pwrseq {
+		compatible = "mmc-pwrseq-simple";
+		pinctrl-names = "default";
+		reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
+	};
+};
+
+&ehci0 {
+	status = "okay";
+};
+
+&mmc0 {
+	vmmc-supply = <&reg_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";
+};
+
+&mmc1 {
+	vmmc-supply = <&reg_vcc3v3>;
+	vqmmc-supply = <&reg_vcc3v3>;
+	mmc-pwrseq = <&wifi_pwrseq>;
+	bus-width = <4>;
+	non-removable;
+	status = "okay";
+
+	brcmf: wifi@1 {
+		reg = <1>;
+		compatible = "brcm,bcm4329-fmac";
+		interrupt-parent = <&pio>;
+		interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */
+		interrupt-names = "host-wake";
+	};
+};
+
+&ohci0 {
+	status = "okay";
+};
+
+&uart0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart0_pins_a>;
+	status = "okay";
+};
+
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
+	status = "okay";
+};
+
+&usb_otg {
+	dr_mode = "otg";
+	status = "okay";
+};
+
+&usbphy {
+	usb0_id_det-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
+	/*
+	 * There're two micro-USB connectors, one is power-only and another is
+	 * OTG. The Vbus of these two connectors are connected together, so
+	 * the external USB device will be powered just by the power input
+	 * from the power-only USB port.
+	 */
+	status = "okay";
+};
diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS
index 2f95976445..390b119003 100644
--- a/board/sunxi/MAINTAINERS
+++ b/board/sunxi/MAINTAINERS
@@ -402,6 +402,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 0000000000..91302eb49c
--- /dev/null
+++ b/configs/bananapi_m2_zero_defconfig
@@ -0,0 +1,13 @@ 
+CONFIG_ARM=y
+CONFIG_ARCH_SUNXI=y
+CONFIG_SPL=y
+CONFIG_MACH_SUN8I_H3=y
+CONFIG_DRAM_CLK=408
+CONFIG_DRAM_ZQ=3881979
+CONFIG_DRAM_ODT_EN=y
+CONFIG_MMC0_CD_PIN=""
+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
+# CONFIG_CMD_FLASH is not set
+# CONFIG_SPL_DOS_PARTITION is not set
+# CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_DEFAULT_DEVICE_TREE="sun8i-h2-plus-bananapi-m2-zero"