diff mbox

[v3] ARM: sun8i: h2+: add support for Banana Pi M2 Zero board

Message ID 20171224054029.12278-1-icenowy@aosc.io (mailing list archive)
State New, archived
Headers show

Commit Message

Icenowy Zheng Dec. 24, 2017, 5:40 a.m. UTC
Banana Pi M2 Zero board is a H2+-based board by Sinovoip, with a form
factor and GPIO holes similar to Raspberry Pi Zero.

It features:
- Allwinner H2+ SoC
- Single-chip (16-bit) 512MiB DDR3 DRAM
- Ampak AP6212 Wi-Fi/Bluetooth module
- MicroSD slot
- Two MicroUSB Type-B ports (one can only be used to power the board and
  the other features OTG functionality)
- Two keys, a reset and a GPIO-connected key.
- HDMI Type-C (miniHDMI) connector connected to the HDMI part of H2+.
- CSI connector to connect the camera sensor provided by Sinovoip.

Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
---
Changes in v3:
- Add comments about Vbus problem in &usbphy node.

Changes in v2:
- Use high active SD card detect on the production batch.

 arch/arm/boot/dts/Makefile                         |   1 +
 .../boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts    | 162 +++++++++++++++++++++
 2 files changed, 163 insertions(+)
 create mode 100644 arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts

Comments

Icenowy Zheng Dec. 24, 2017, 12:24 p.m. UTC | #1
在 2017年12月24日星期日 CST 下午4:02:08,Priit Laes 写道:
> On Sun, Dec 24, 2017 at 01:40:29PM +0800, Icenowy Zheng wrote:
> > Banana Pi M2 Zero board is a H2+-based board by Sinovoip, with a form
> > factor and GPIO holes similar to Raspberry Pi Zero.
> > 
> > It features:
> > - Allwinner H2+ SoC
> > - Single-chip (16-bit) 512MiB DDR3 DRAM
> > - Ampak AP6212 Wi-Fi/Bluetooth module
> > - MicroSD slot
> > - Two MicroUSB Type-B ports (one can only be used to power the board and
> > 
> >   the other features OTG functionality)
> > 
> > - Two keys, a reset and a GPIO-connected key.
> > - HDMI Type-C (miniHDMI) connector connected to the HDMI part of H2+.
> > - CSI connector to connect the camera sensor provided by Sinovoip.
> > 
> > Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> > ---
> > Changes in v3:
> > - Add comments about Vbus problem in &usbphy node.
> > 
> > Changes in v2:
> > - Use high active SD card detect on the production batch.
> > 
> >  arch/arm/boot/dts/Makefile                         |   1 +
> >  .../boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts    | 162
> >  +++++++++++++++++++++ 2 files changed, 163 insertions(+)
> >  create mode 100644 arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
> > 
> > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> > index 0bb8db33704a..937a8768671f 100644
> > --- a/arch/arm/boot/dts/Makefile
> > +++ b/arch/arm/boot/dts/Makefile
> > @@ -962,6 +962,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
> > 
> >  	sun8i-a83t-cubietruck-plus.dtb \
> >  	sun8i-a83t-tbs-a711.dtb \
> >  	sun8i-h2-plus-orangepi-r1.dtb \
> > 
> > +	sun8i-h2-plus-bananapi-m2-zero.dtb \
> > 
> >  	sun8i-h2-plus-orangepi-zero.dtb \
> >  	sun8i-h3-bananapi-m2-plus.dtb \
> >  	sun8i-h3-beelink-x2.dtb \
> > 
> > diff --git a/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
> > b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts new file mode
> > 100644
> > index 000000000000..5bc182ddc5f7
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
> > @@ -0,0 +1,162 @@
> > +/*
> > + * 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>
> > + *
> > + * This file is dual-licensed: you can use it either under the terms
> > + * of the GPL or the X11 license, at your option. Note that this dual
> > + * licensing only applies to this file, and not this project as a
> > + * whole.
> > + *
> > + *  a) This file is free software; you can redistribute it and/or
> > + *     modify it under the terms of the GNU General Public License as
> > + *     published by the Free Software Foundation; either version 2 of the
> > + *     License, or (at your option) any later version.
> > + *
> > + *     This file is distributed in the hope that it will be useful,
> > + *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > + *     GNU General Public License for more details.
> > + *
> > + * Or, alternatively,
> > + *
> > + *  b) Permission is hereby granted, free of charge, to any person
> > + *     obtaining a copy of this software and associated documentation
> > + *     files (the "Software"), to deal in the Software without
> > + *     restriction, including without limitation the rights to use,
> > + *     copy, modify, merge, publish, distribute, sublicense, and/or
> > + *     sell copies of the Software, and to permit persons to whom the
> > + *     Software is furnished to do so, subject to the following
> > + *     conditions:
> > + *
> > + *     The above copyright notice and this permission notice shall be
> > + *     included in all copies or substantial portions of the Software.
> > + *
> > + *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> > + *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> > + *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> > + *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> > + *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> > + *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> > + *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> > + *     OTHER DEALINGS IN THE SOFTWARE.
> > + */
> > +
> > +/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 {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&mmc0_pins_a>;
> > +	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.
> > +	 */
> 
> Is there a way to differentiate between early samples and production
> batches? Board markings, etc?

in fact there's no significant markings to differentiate them.

Howeverm the early samples are never sold; you will know it's an
early sample if you manage to get it from Sinovoip.

> 
> > +	cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
> > +	status = "okay";
> > +};
> > +
> > +&mmc1 {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&mmc1_pins_a>;
> > +	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";
> > +};
Philippe Ombredanne Dec. 25, 2017, 2:25 p.m. UTC | #2
On Sun, Dec 24, 2017 at 6:40 AM, Icenowy Zheng <icenowy@aosc.io> wrote:
> Banana Pi M2 Zero board is a H2+-based board by Sinovoip, with a form
> factor and GPIO holes similar to Raspberry Pi Zero.
>
> It features:
> - Allwinner H2+ SoC
> - Single-chip (16-bit) 512MiB DDR3 DRAM
> - Ampak AP6212 Wi-Fi/Bluetooth module
> - MicroSD slot
> - Two MicroUSB Type-B ports (one can only be used to power the board and
>   the other features OTG functionality)
> - Two keys, a reset and a GPIO-connected key.
> - HDMI Type-C (miniHDMI) connector connected to the HDMI part of H2+.
> - CSI connector to connect the camera sensor provided by Sinovoip.
>
> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> ---
> Changes in v3:
> - Add comments about Vbus problem in &usbphy node.
>
> Changes in v2:
> - Use high active SD card detect on the production batch.
>
>  arch/arm/boot/dts/Makefile                         |   1 +
>  .../boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts    | 162 +++++++++++++++++++++
>  2 files changed, 163 insertions(+)
>  create mode 100644 arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 0bb8db33704a..937a8768671f 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -962,6 +962,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
>         sun8i-a83t-cubietruck-plus.dtb \
>         sun8i-a83t-tbs-a711.dtb \
>         sun8i-h2-plus-orangepi-r1.dtb \
> +       sun8i-h2-plus-bananapi-m2-zero.dtb \
>         sun8i-h2-plus-orangepi-zero.dtb \
>         sun8i-h3-bananapi-m2-plus.dtb \
>         sun8i-h3-beelink-x2.dtb \
> diff --git a/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
> new file mode 100644
> index 000000000000..5bc182ddc5f7
> --- /dev/null
> +++ b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
> @@ -0,0 +1,162 @@
> +/*
> + * 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>
> + *
> + * This file is dual-licensed: you can use it either under the terms
> + * of the GPL or the X11 license, at your option. Note that this dual
> + * licensing only applies to this file, and not this project as a
> + * whole.
> + *
> + *  a) This file is free software; you can redistribute it and/or
> + *     modify it under the terms of the GNU General Public License as
> + *     published by the Free Software Foundation; either version 2 of the
> + *     License, or (at your option) any later version.
> + *
> + *     This file is distributed in the hope that it will be useful,
> + *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> + *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + *     GNU General Public License for more details.
> + *
> + * Or, alternatively,
> + *
> + *  b) Permission is hereby granted, free of charge, to any person
> + *     obtaining a copy of this software and associated documentation
> + *     files (the "Software"), to deal in the Software without
> + *     restriction, including without limitation the rights to use,
> + *     copy, modify, merge, publish, distribute, sublicense, and/or
> + *     sell copies of the Software, and to permit persons to whom the
> + *     Software is furnished to do so, subject to the following
> + *     conditions:
> + *
> + *     The above copyright notice and this permission notice shall be
> + *     included in all copies or substantial portions of the Software.
> + *
> + *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> + *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> + *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> + *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> + *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> + *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> + *     OTHER DEALINGS IN THE SOFTWARE.
> + */
> +

Could you use SPDX tags instead of this long legalese?
Julian Calaby Feb. 3, 2018, 6:45 a.m. UTC | #3
Hi all,

On Sun, Dec 24, 2017 at 4:40 PM, Icenowy Zheng <icenowy@aosc.io> wrote:
> Banana Pi M2 Zero board is a H2+-based board by Sinovoip, with a form
> factor and GPIO holes similar to Raspberry Pi Zero.
>
> It features:
> - Allwinner H2+ SoC
> - Single-chip (16-bit) 512MiB DDR3 DRAM
> - Ampak AP6212 Wi-Fi/Bluetooth module
> - MicroSD slot
> - Two MicroUSB Type-B ports (one can only be used to power the board and
>   the other features OTG functionality)
> - Two keys, a reset and a GPIO-connected key.
> - HDMI Type-C (miniHDMI) connector connected to the HDMI part of H2+.
> - CSI connector to connect the camera sensor provided by Sinovoip.
>
> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>

[Trimmed lots of non-sunxi-specific mailing lists]

Did support for this board ever get merged?

(I have two of them now, so if it didn't, I'll try to shepherd this
and it's corresponding u-boot patch upstream.)

Thanks,
Maxime Ripard Feb. 5, 2018, 1:36 p.m. UTC | #4
On Sat, Feb 03, 2018 at 05:45:52PM +1100, Julian Calaby wrote:
> Hi all,
> 
> On Sun, Dec 24, 2017 at 4:40 PM, Icenowy Zheng <icenowy@aosc.io> wrote:
> > Banana Pi M2 Zero board is a H2+-based board by Sinovoip, with a form
> > factor and GPIO holes similar to Raspberry Pi Zero.
> >
> > It features:
> > - Allwinner H2+ SoC
> > - Single-chip (16-bit) 512MiB DDR3 DRAM
> > - Ampak AP6212 Wi-Fi/Bluetooth module
> > - MicroSD slot
> > - Two MicroUSB Type-B ports (one can only be used to power the board and
> >   the other features OTG functionality)
> > - Two keys, a reset and a GPIO-connected key.
> > - HDMI Type-C (miniHDMI) connector connected to the HDMI part of H2+.
> > - CSI connector to connect the camera sensor provided by Sinovoip.
> >
> > Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> 
> [Trimmed lots of non-sunxi-specific mailing lists]
> 
> Did support for this board ever get merged?

It doesn't look like it did.

> (I have two of them now, so if it didn't, I'll try to shepherd this
> and it's corresponding u-boot patch upstream.)

That sounds great :)

Maxime
Icenowy Zheng Feb. 6, 2018, 2:51 a.m. UTC | #5
于 2018年2月5日 GMT+08:00 下午9:36:25, Maxime Ripard <maxime.ripard@bootlin.com> 写到:
>On Sat, Feb 03, 2018 at 05:45:52PM +1100, Julian Calaby wrote:
>> Hi all,
>> 
>> On Sun, Dec 24, 2017 at 4:40 PM, Icenowy Zheng <icenowy@aosc.io>
>wrote:
>> > Banana Pi M2 Zero board is a H2+-based board by Sinovoip, with a
>form
>> > factor and GPIO holes similar to Raspberry Pi Zero.
>> >
>> > It features:
>> > - Allwinner H2+ SoC
>> > - Single-chip (16-bit) 512MiB DDR3 DRAM
>> > - Ampak AP6212 Wi-Fi/Bluetooth module
>> > - MicroSD slot
>> > - Two MicroUSB Type-B ports (one can only be used to power the
>board and
>> >   the other features OTG functionality)
>> > - Two keys, a reset and a GPIO-connected key.
>> > - HDMI Type-C (miniHDMI) connector connected to the HDMI part of
>H2+.
>> > - CSI connector to connect the camera sensor provided by Sinovoip.
>> >
>> > Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
>> 
>> [Trimmed lots of non-sunxi-specific mailing lists]
>> 
>> Did support for this board ever get merged?
>
>It doesn't look like it did.

Is there any problem in this patch now except the
absense of SPDX license usage?

>
>> (I have two of them now, so if it didn't, I'll try to shepherd this
>> and it's corresponding u-boot patch upstream.)
>
>That sounds great :)
>
>Maxime
Maxime Ripard Feb. 6, 2018, 8:29 a.m. UTC | #6
On Tue, Feb 06, 2018 at 10:51:04AM +0800, Icenowy Zheng wrote:
> 于 2018年2月5日 GMT+08:00 下午9:36:25, Maxime Ripard <maxime.ripard@bootlin.com> 写到:
> >On Sat, Feb 03, 2018 at 05:45:52PM +1100, Julian Calaby wrote:
> >> Hi all,
> >> 
> >> On Sun, Dec 24, 2017 at 4:40 PM, Icenowy Zheng <icenowy@aosc.io>
> >wrote:
> >> > Banana Pi M2 Zero board is a H2+-based board by Sinovoip, with a
> >form
> >> > factor and GPIO holes similar to Raspberry Pi Zero.
> >> >
> >> > It features:
> >> > - Allwinner H2+ SoC
> >> > - Single-chip (16-bit) 512MiB DDR3 DRAM
> >> > - Ampak AP6212 Wi-Fi/Bluetooth module
> >> > - MicroSD slot
> >> > - Two MicroUSB Type-B ports (one can only be used to power the
> >board and
> >> >   the other features OTG functionality)
> >> > - Two keys, a reset and a GPIO-connected key.
> >> > - HDMI Type-C (miniHDMI) connector connected to the HDMI part of
> >H2+.
> >> > - CSI connector to connect the camera sensor provided by Sinovoip.
> >> >
> >> > Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> >> 
> >> [Trimmed lots of non-sunxi-specific mailing lists]
> >> 
> >> Did support for this board ever get merged?
> >
> >It doesn't look like it did.
> 
> Is there any problem in this patch now except the
> absense of SPDX license usage?

Doesn't look like it.

Maxime
Julian Calaby Feb. 6, 2018, 10:08 a.m. UTC | #7
Hi Maxime,

On Tue, Feb 6, 2018 at 7:29 PM, Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> On Tue, Feb 06, 2018 at 10:51:04AM +0800, Icenowy Zheng wrote:
>> 于 2018年2月5日 GMT+08:00 下午9:36:25, Maxime Ripard <maxime.ripard@bootlin.com> 写到:
>> >On Sat, Feb 03, 2018 at 05:45:52PM +1100, Julian Calaby wrote:
>> >> Hi all,
>> >>
>> >> On Sun, Dec 24, 2017 at 4:40 PM, Icenowy Zheng <icenowy@aosc.io>
>> >wrote:
>> >> > Banana Pi M2 Zero board is a H2+-based board by Sinovoip, with a
>> >form
>> >> > factor and GPIO holes similar to Raspberry Pi Zero.
>> >> >
>> >> > It features:
>> >> > - Allwinner H2+ SoC
>> >> > - Single-chip (16-bit) 512MiB DDR3 DRAM
>> >> > - Ampak AP6212 Wi-Fi/Bluetooth module
>> >> > - MicroSD slot
>> >> > - Two MicroUSB Type-B ports (one can only be used to power the
>> >board and
>> >> >   the other features OTG functionality)
>> >> > - Two keys, a reset and a GPIO-connected key.
>> >> > - HDMI Type-C (miniHDMI) connector connected to the HDMI part of
>> >H2+.
>> >> > - CSI connector to connect the camera sensor provided by Sinovoip.
>> >> >
>> >> > Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
>> >>
>> >> [Trimmed lots of non-sunxi-specific mailing lists]
>> >>
>> >> Did support for this board ever get merged?
>> >
>> >It doesn't look like it did.
>>
>> Is there any problem in this patch now except the
>> absense of SPDX license usage?
>
> Doesn't look like it.

Awesome, I'll get it booting, fix the licence block and re-submit.

I'll also put together patches to add the HDMI and DVFS bits and send
them as those features make it upstream.

I was worried that I'd have to figure out the WiFi stuff, however
Icenowy has already done that. Thanks!

Thanks,
Icenowy Zheng Feb. 6, 2018, 10:10 a.m. UTC | #8
于 2018年2月6日 GMT+08:00 下午6:08:03, Julian Calaby <julian.calaby@gmail.com> 写到:
>Hi Maxime,
>
>On Tue, Feb 6, 2018 at 7:29 PM, Maxime Ripard
><maxime.ripard@bootlin.com> wrote:
>> On Tue, Feb 06, 2018 at 10:51:04AM +0800, Icenowy Zheng wrote:
>>> 于 2018年2月5日 GMT+08:00 下午9:36:25, Maxime Ripard
><maxime.ripard@bootlin.com> 写到:
>>> >On Sat, Feb 03, 2018 at 05:45:52PM +1100, Julian Calaby wrote:
>>> >> Hi all,
>>> >>
>>> >> On Sun, Dec 24, 2017 at 4:40 PM, Icenowy Zheng <icenowy@aosc.io>
>>> >wrote:
>>> >> > Banana Pi M2 Zero board is a H2+-based board by Sinovoip, with
>a
>>> >form
>>> >> > factor and GPIO holes similar to Raspberry Pi Zero.
>>> >> >
>>> >> > It features:
>>> >> > - Allwinner H2+ SoC
>>> >> > - Single-chip (16-bit) 512MiB DDR3 DRAM
>>> >> > - Ampak AP6212 Wi-Fi/Bluetooth module
>>> >> > - MicroSD slot
>>> >> > - Two MicroUSB Type-B ports (one can only be used to power the
>>> >board and
>>> >> >   the other features OTG functionality)
>>> >> > - Two keys, a reset and a GPIO-connected key.
>>> >> > - HDMI Type-C (miniHDMI) connector connected to the HDMI part
>of
>>> >H2+.
>>> >> > - CSI connector to connect the camera sensor provided by
>Sinovoip.
>>> >> >
>>> >> > Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
>>> >>
>>> >> [Trimmed lots of non-sunxi-specific mailing lists]
>>> >>
>>> >> Did support for this board ever get merged?
>>> >
>>> >It doesn't look like it did.
>>>
>>> Is there any problem in this patch now except the
>>> absense of SPDX license usage?
>>
>> Doesn't look like it.
>
>Awesome, I'll get it booting, fix the licence block and re-submit.

I will do it, don't worry.

>
>I'll also put together patches to add the HDMI and DVFS bits and send
>them as those features make it upstream.

They should come in these features' patchset. For
HDMI I think Jernej will manage it and for DVFS I'll do it.

>
>I was worried that I'd have to figure out the WiFi stuff, however
>Icenowy has already done that. Thanks!
>
>Thanks,
diff mbox

Patch

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 0bb8db33704a..937a8768671f 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -962,6 +962,7 @@  dtb-$(CONFIG_MACH_SUN8I) += \
 	sun8i-a83t-cubietruck-plus.dtb \
 	sun8i-a83t-tbs-a711.dtb \
 	sun8i-h2-plus-orangepi-r1.dtb \
+	sun8i-h2-plus-bananapi-m2-zero.dtb \
 	sun8i-h2-plus-orangepi-zero.dtb \
 	sun8i-h3-bananapi-m2-plus.dtb \
 	sun8i-h3-beelink-x2.dtb \
diff --git a/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
new file mode 100644
index 000000000000..5bc182ddc5f7
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
@@ -0,0 +1,162 @@ 
+/*
+ * 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>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/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 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc0_pins_a>;
+	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 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc1_pins_a>;
+	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";
+};