diff mbox series

ARM: dts: sun8i: r40/v40: rewrite BPi M2 Berry DTS to rebase on M2 Ultra

Message ID 20180724163655.61365-1-icenowy@aosc.io (mailing list archive)
State New, archived
Headers show
Series ARM: dts: sun8i: r40/v40: rewrite BPi M2 Berry DTS to rebase on M2 Ultra | expand

Commit Message

Icenowy Zheng July 24, 2018, 4:36 p.m. UTC
Banana Pi designs the BPi M2 Berry board to be software compatible with
BPi M2 Ultra, so it's based on M2 Ultra with some function cuts,
including:

- 2048MiB DRAM -> 1024MiB (this should be proceed by the bootloader);
- dropped a LED;
- dropped eMMC;
- dropped USB2 and connect USB1 to a 4-port HUB.

Thus we can make the M2 Berry device tree based on the M2 Ultra, rather
than write one from scratch.

Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
---
 .../boot/dts/sun8i-v40-bananapi-m2-berry.dts  | 141 +++---------------
 1 file changed, 24 insertions(+), 117 deletions(-)

Comments

Simon Baatz July 24, 2018, 6:36 p.m. UTC | #1
On Wed, Jul 25, 2018 at 12:36:55AM +0800, Icenowy Zheng wrote:
> Banana Pi designs the BPi M2 Berry board to be software compatible with
> BPi M2 Ultra, so it's based on M2 Ultra with some function cuts,
> including:
> 
> - 2048MiB DRAM -> 1024MiB (this should be proceed by the bootloader);
> - dropped a LED;
> - dropped eMMC;
> - dropped USB2 and connect USB1 to a 4-port HUB.
> 
> Thus we can make the M2 Berry device tree based on the M2 Ultra, rather
> than write one from scratch.

Good idea!  I know that Ultra came first and then the cut-down Berry. 
But from a device tree point of view, wouldn't it make more sense to
take M2 Berry as the base and just add the hardware for M2 Ultra?
Maxime Ripard July 26, 2018, 12:41 p.m. UTC | #2
On Wed, Jul 25, 2018 at 12:36:55AM +0800, Icenowy Zheng wrote:
> Banana Pi designs the BPi M2 Berry board to be software compatible with
> BPi M2 Ultra,

Do you have a reference for this?

> so it's based on M2 Ultra with some function cuts, including:
> 
> - 2048MiB DRAM -> 1024MiB (this should be proceed by the bootloader);
> - dropped a LED;
> - dropped eMMC;
> - dropped USB2 and connect USB1 to a 4-port HUB.

Is it the exhaustive list?

I'm a bit reluctant to merge that kind of patches usually, since that
would also imply that each time someone will commit something to the
M2-Ultra, it would automatically apply to the M2-Berry, without any
easy way to tell and / or test.

Maxime
Icenowy Zheng July 26, 2018, 12:47 p.m. UTC | #3
于 2018年7月26日 GMT+08:00 下午8:41:19, Maxime Ripard <maxime.ripard@bootlin.com> 写到:
>On Wed, Jul 25, 2018 at 12:36:55AM +0800, Icenowy Zheng wrote:
>> Banana Pi designs the BPi M2 Berry board to be software compatible
>with
>> BPi M2 Ultra,
>
>Do you have a reference for this?

See [1], it says "BPI-M2U and BPI-M2 Berry share the same image".

[1] http://www.banana-pi.org/download.html

>
>> so it's based on M2 Ultra with some function cuts, including:
>> 
>> - 2048MiB DRAM -> 1024MiB (this should be proceed by the bootloader);
>> - dropped a LED;
>> - dropped eMMC;
>> - dropped USB2 and connect USB1 to a 4-port HUB.
>
>Is it the exhaustive list?

Sorry, but I forgot one thing -- LiPo battery connector.

The list can be examined with [2], except LED difference.

[2] https://bananapi.gitbooks.io/bpi-m2-ultra-open-source-single-board-computer/content/

>
>I'm a bit reluctant to merge that kind of patches usually, since that
>would also imply that each time someone will commit something to the
>M2-Ultra, it would automatically apply to the M2-Berry, without any
>easy way to tell and / or test.
>
>Maxime
Maxime Ripard July 26, 2018, 3:24 p.m. UTC | #4
On Thu, Jul 26, 2018 at 08:47:34PM +0800, Icenowy Zheng wrote:
> 
> 
> 于 2018年7月26日 GMT+08:00 下午8:41:19, Maxime Ripard <maxime.ripard@bootlin.com> 写到:
> >On Wed, Jul 25, 2018 at 12:36:55AM +0800, Icenowy Zheng wrote:
> >> Banana Pi designs the BPi M2 Berry board to be software compatible
> >with
> >> BPi M2 Ultra,
> >
> >Do you have a reference for this?
> 
> See [1], it says "BPI-M2U and BPI-M2 Berry share the same image".
> 
> [1] http://www.banana-pi.org/download.html

Debian supports different SoC from different vendor using the same
image, so it's not really a good argument to share the device tree. I
mean, you can even boot an H3 to a shell using an A33 device tree.

Maxime
Icenowy Zheng July 26, 2018, 3:26 p.m. UTC | #5
于 2018年7月26日 GMT+08:00 下午11:24:27, Maxime Ripard <maxime.ripard@bootlin.com> 写到:
>On Thu, Jul 26, 2018 at 08:47:34PM +0800, Icenowy Zheng wrote:
>> 
>> 
>> 于 2018年7月26日 GMT+08:00 下午8:41:19, Maxime Ripard
><maxime.ripard@bootlin.com> 写到:
>> >On Wed, Jul 25, 2018 at 12:36:55AM +0800, Icenowy Zheng wrote:
>> >> Banana Pi designs the BPi M2 Berry board to be software compatible
>> >with
>> >> BPi M2 Ultra,
>> >
>> >Do you have a reference for this?
>> 
>> See [1], it says "BPI-M2U and BPI-M2 Berry share the same image".
>> 
>> [1] http://www.banana-pi.org/download.html
>
>Debian supports different SoC from different vendor using the same
>image, so it's not really a good argument to share the device tree. I
>mean, you can even boot an H3 to a shell using an A33 device tree.

Please note that the vendor image is fully functional BSP
image, neither a function limited one nor one without
HW configuration.

>
>Maxime
Icenowy Zheng Aug. 8, 2018, 10:36 a.m. UTC | #6
在 2018-07-26四的 14:41 +0200,Maxime Ripard写道:
> On Wed, Jul 25, 2018 at 12:36:55AM +0800, Icenowy Zheng wrote:
> > Banana Pi designs the BPi M2 Berry board to be software compatible
> > with
> > BPi M2 Ultra,
> 
> Do you have a reference for this?
> 
> > so it's based on M2 Ultra with some function cuts, including:
> > 
> > - 2048MiB DRAM -> 1024MiB (this should be proceed by the
> > bootloader);
> > - dropped a LED;
> > - dropped eMMC;
> > - dropped USB2 and connect USB1 to a 4-port HUB.
> 
> Is it the exhaustive list?

I have asked Mikey from Sinovoip, and he has agreed this.

Here's a list provided by him, which covers some things I forgot:
- 2GiB -> 1GiB
- no eMMC
- no onboard microphone
- no IR
- no charging (and power jack to USB)
- USB change
- one less LED

Should I add this to the device tree's comment?

> 
> I'm a bit reluctant to merge that kind of patches usually, since that
> would also imply that each time someone will commit something to the
> M2-Ultra, it would automatically apply to the M2-Berry, without any
> easy way to tell and / or test.
> 
> Maxime
> 
> -- 
> Maxime Ripard, Bootlin (formerly Free Electrons)
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
Maxime Ripard Aug. 20, 2018, noon UTC | #7
Hi!

On Wed, Aug 08, 2018 at 06:36:56PM +0800, Icenowy Zheng wrote:
> 在 2018-07-26四的 14:41 +0200,Maxime Ripard写道:
> > On Wed, Jul 25, 2018 at 12:36:55AM +0800, Icenowy Zheng wrote:
> > > Banana Pi designs the BPi M2 Berry board to be software compatible
> > > with
> > > BPi M2 Ultra,
> > 
> > Do you have a reference for this?
> > 
> > > so it's based on M2 Ultra with some function cuts, including:
> > > 
> > > - 2048MiB DRAM -> 1024MiB (this should be proceed by the
> > > bootloader);
> > > - dropped a LED;
> > > - dropped eMMC;
> > > - dropped USB2 and connect USB1 to a 4-port HUB.
> > 
> > Is it the exhaustive list?
> 
> I have asked Mikey from Sinovoip, and he has agreed this.
> 
> Here's a list provided by him, which covers some things I forgot:
> - 2GiB -> 1GiB
> - no eMMC
> - no onboard microphone
> - no IR
> - no charging (and power jack to USB)
> - USB change
> - one less LED
> 
> Should I add this to the device tree's comment?

Not really, because...

> > 
> > I'm a bit reluctant to merge that kind of patches usually, since that
> > would also imply that each time someone will commit something to the
> > M2-Ultra, it would automatically apply to the M2-Berry, without any
> > easy way to tell and / or test.

... this still applies.

Maxime
Icenowy Zheng Aug. 20, 2018, 12:06 p.m. UTC | #8
于 2018年8月20日 GMT+08:00 下午8:00:46, Maxime Ripard <maxime.ripard@bootlin.com> 写到:
>Hi!
>
>On Wed, Aug 08, 2018 at 06:36:56PM +0800, Icenowy Zheng wrote:
>> 在 2018-07-26四的 14:41 +0200,Maxime Ripard写道:
>> > On Wed, Jul 25, 2018 at 12:36:55AM +0800, Icenowy Zheng wrote:
>> > > Banana Pi designs the BPi M2 Berry board to be software
>compatible
>> > > with
>> > > BPi M2 Ultra,
>> > 
>> > Do you have a reference for this?
>> > 
>> > > so it's based on M2 Ultra with some function cuts, including:
>> > > 
>> > > - 2048MiB DRAM -> 1024MiB (this should be proceed by the
>> > > bootloader);
>> > > - dropped a LED;
>> > > - dropped eMMC;
>> > > - dropped USB2 and connect USB1 to a 4-port HUB.
>> > 
>> > Is it the exhaustive list?
>> 
>> I have asked Mikey from Sinovoip, and he has agreed this.
>> 
>> Here's a list provided by him, which covers some things I forgot:
>> - 2GiB -> 1GiB
>> - no eMMC
>> - no onboard microphone
>> - no IR
>> - no charging (and power jack to USB)
>> - USB change
>> - one less LED
>> 
>> Should I add this to the device tree's comment?
>
>Not really, because...
>
>> > 
>> > I'm a bit reluctant to merge that kind of patches usually, since
>that
>> > would also imply that each time someone will commit something to
>the
>> > M2-Ultra, it would automatically apply to the M2-Berry, without any
>> > easy way to tell and / or test.
>
>... this still applies.

But I think few developers will have both boards at the same time.

>
>Maxime
Maxime Ripard Aug. 20, 2018, 3:02 p.m. UTC | #9
On Mon, Aug 20, 2018 at 08:06:21PM +0800, Icenowy Zheng wrote:
> 
> 
> 于 2018年8月20日 GMT+08:00 下午8:00:46, Maxime Ripard <maxime.ripard@bootlin.com> 写到:
> >Hi!
> >
> >On Wed, Aug 08, 2018 at 06:36:56PM +0800, Icenowy Zheng wrote:
> >> 在 2018-07-26四的 14:41 +0200,Maxime Ripard写道:
> >> > On Wed, Jul 25, 2018 at 12:36:55AM +0800, Icenowy Zheng wrote:
> >> > > Banana Pi designs the BPi M2 Berry board to be software
> >compatible
> >> > > with
> >> > > BPi M2 Ultra,
> >> > 
> >> > Do you have a reference for this?
> >> > 
> >> > > so it's based on M2 Ultra with some function cuts, including:
> >> > > 
> >> > > - 2048MiB DRAM -> 1024MiB (this should be proceed by the
> >> > > bootloader);
> >> > > - dropped a LED;
> >> > > - dropped eMMC;
> >> > > - dropped USB2 and connect USB1 to a 4-port HUB.
> >> > 
> >> > Is it the exhaustive list?
> >> 
> >> I have asked Mikey from Sinovoip, and he has agreed this.
> >> 
> >> Here's a list provided by him, which covers some things I forgot:
> >> - 2GiB -> 1GiB
> >> - no eMMC
> >> - no onboard microphone
> >> - no IR
> >> - no charging (and power jack to USB)
> >> - USB change
> >> - one less LED
> >> 
> >> Should I add this to the device tree's comment?
> >
> >Not really, because...
> >
> >> > 
> >> > I'm a bit reluctant to merge that kind of patches usually, since
> >that
> >> > would also imply that each time someone will commit something to
> >the
> >> > M2-Ultra, it would automatically apply to the M2-Berry, without any
> >> > easy way to tell and / or test.
> >
> >... this still applies.
> 
> But I think few developers will have both boards at the same time.

Which is only making it worse, because then someone with only the BPI
m2-ultra, when changing the DT, will not be able to tell that:

 - it's applied to the M2-Berry too,
 - if it works on the M2-Berry.

Maxime
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts b/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
index 35859d8f3267..b740c659e623 100644
--- a/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
+++ b/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
@@ -40,143 +40,50 @@ 
  *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
-/dts-v1/;
-#include "sun8i-r40.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
+#include "sun8i-r40-bananapi-m2-ultra.dts"
 
 / {
 	model = "Banana Pi M2 Berry";
 	compatible = "sinovoip,bpi-m2-berry", "allwinner,sun8i-r40";
 
-	aliases {
-		serial0 = &uart0;
-	};
-
-	chosen {
-		stdout-path = "serial0:115200n8";
-	};
-
 	leds {
-		compatible = "gpio-leds";
-
-		pwr-led {
-			label = "bananapi:red:pwr";
-			gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>;
-			default-state = "on";
-		};
-
-		user-led {
-			label = "bananapi:green:user";
-			gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>;
-		};
-	};
-
-	reg_vcc5v0: vcc5v0 {
-		compatible = "regulator-fixed";
-		regulator-name = "vcc5v0";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>; /* PH23 */
-		enable-active-high;
-	};
-
-	wifi_pwrseq: wifi_pwrseq {
-		compatible = "mmc-pwrseq-simple";
-		reset-gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 WIFI_EN */
+		/* M2 Berry dropped blue LED due to size */
+		/delete-node/ user-led-blue;
 	};
 };
 
 &ehci1 {
 	/* Terminus Tech FE 1.1s 4-port USB 2.0 hub here */
-	status = "okay";
-};
-
-&i2c0 {
-	status = "okay";
-
-	axp22x: pmic@68 {
-		compatible = "x-powers,axp221";
-		reg = <0x34>;
-		interrupt-parent = <&nmi_intc>;
-		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
-	};
-};
-
-#include "axp22x.dtsi"
-
-&reg_aldo3 {
-	regulator-always-on;
-	regulator-min-microvolt = <2700000>;
-	regulator-max-microvolt = <3300000>;
-	regulator-name = "avcc";
-};
-
-&reg_dcdc1 {
-	regulator-always-on;
-	regulator-min-microvolt = <3000000>;
-	regulator-max-microvolt = <3000000>;
-	regulator-name = "vcc-3v0";
-};
-
-&reg_dcdc2 {
-	regulator-always-on;
-	regulator-min-microvolt = <1000000>;
-	regulator-max-microvolt = <1300000>;
-	regulator-name = "vdd-cpu";
-};
-
-&reg_dcdc3 {
-	regulator-always-on;
-	regulator-min-microvolt = <1000000>;
-	regulator-max-microvolt = <1300000>;
-	regulator-name = "vdd-sys";
-};
-
-&reg_dcdc5 {
-	regulator-always-on;
-	regulator-min-microvolt = <1500000>;
-	regulator-max-microvolt = <1500000>;
-	regulator-name = "vcc-dram";
-};
-
-&reg_dldo1 {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <3300000>;
-	regulator-name = "vcc-wifi-io";
 };
 
-&reg_dldo2 {
-	regulator-min-microvolt = <3300000>;
-	regulator-max-microvolt = <3300000>;
-	regulator-name = "vcc-wifi";
+&ehci2 {
+	/*
+	 * M2 Berry dropped wiring out USB2, due to all USB port is
+	 * from a hub at USB1.
+	 */
+	status = "disabled";
 };
 
-&mmc0 {
-	vmmc-supply = <&reg_dcdc1>;
-	bus-width = <4>;
-	cd-gpios = <&pio 7 13 GPIO_ACTIVE_LOW>; /* PH13 */
-	status = "okay";
+&mmc2 {
+	/* M2 Berry has no eMMC */
+	status = "disabled";
 };
 
-&mmc1 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&mmc1_pg_pins>;
-	vmmc-supply = <&reg_dldo2>;
-	vqmmc-supply = <&reg_dldo1>;
-	mmc-pwrseq = <&wifi_pwrseq>;
-	bus-width = <4>;
-	non-removable;
-	status = "okay";
+&ohci1 {
+	/*
+	 * M2 Berry have a Hub connected to the USB1 pins, so no USB1.1 device
+	 * can be directly connected to the USB1 port, thus the OHCI controller
+	 * can be disabled.
+	 */
+	status = "disabled";
 };
 
-&uart0 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart0_pb_pins>;
-	status = "okay";
+&ohci2 {
+	/* See comments at &ehci2 */
+	status = "disabled";
 };
 
 &usbphy {
-	usb1_vbus-supply = <&reg_vcc5v0>;
-	status = "okay";
+	/* See comments at &ehci2 */
+	/delete-property/ usb2_vbus-supply;
 };