Message ID | 1496086228-2806-1-git-send-email-jagan@openedev.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
于 2017年5月30日 GMT+08:00 上午3:30:26, Jagan Teki <jagan@openedev.com> 写到: >From: Jagan Teki <jagan@amarulasolutions.com> > >from BPI(BIPAI KEJI LIMITED) products the Bananapi board >is named as 'Bananapi M1' and this is the starting >bananapi board from M1 series. > >So rename dts and suffix 'M1' on model for the same, >so-that next sequence on bananapi starts like M1 Plus, M2 and so..on > >Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> >--- >Note: Bananapi BPI product site >http://www.banana-pi.org/product.html > > arch/arm/boot/dts/Makefile | 2 +- >arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts | 286 >++++++++++++++++++++++++++++ >arch/arm/boot/dts/sun7i-a20-bananapi.dts | 286 >---------------------------- > 3 files changed, 287 insertions(+), 287 deletions(-) > create mode 100644 arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts > delete mode 100644 arch/arm/boot/dts/sun7i-a20-bananapi.dts > >diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile >index 45c6e65..1b086f0 100644 >--- a/arch/arm/boot/dts/Makefile >+++ b/arch/arm/boot/dts/Makefile >@@ -851,7 +851,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \ > sun6i-a31s-sinovoip-bpi-m2.dtb \ > sun6i-a31s-yones-toptech-bs1078-v2.dtb > dtb-$(CONFIG_MACH_SUN7I) += \ >- sun7i-a20-bananapi.dtb \ >+ sun7i-a20-bananapi-m1.dtb \ > sun7i-a20-bananapi-m1-plus.dtb \ > sun7i-a20-bananapro.dtb \ > sun7i-a20-cubieboard2.dtb \ >diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts >b/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts >new file mode 100644 >index 0000000..8b97b89 >--- /dev/null >+++ b/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts >@@ -0,0 +1,286 @@ >+/* >+ * Copyright 2014 Hans de Goede <hdegoede@redhat.com> >+ * >+ * Hans de Goede <hdegoede@redhat.com> >+ * >+ * 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 "sun7i-a20.dtsi" >+#include "sunxi-common-regulators.dtsi" >+ >+#include <dt-bindings/gpio/gpio.h> >+#include <dt-bindings/interrupt-controller/irq.h> >+ >+/ { >+ model = "LeMaker Banana Pi M1"; >+ compatible = "lemaker,bananapi", "allwinner,sun7i-a20"; LeMaker never name this BPI M1. The M1 tag is made by Sinovoip and Bipai. I suggest you just set model to "Banana Pi M1" and compatible to three: "bananapi,bpi-m1", "lemaker,bananapi" (Sinovoip BPi M1 is fully compatible with the original Banana Pi by LeMaker, so here're these compatibles) and "allwinner,sun7i-a20". >+ >+ aliases { >+ serial0 = &uart0; >+ serial1 = &uart3; >+ serial2 = &uart7; >+ }; >+ >+ chosen { >+ stdout-path = "serial0:115200n8"; >+ }; >+ >+ leds { >+ compatible = "gpio-leds"; >+ pinctrl-names = "default"; >+ pinctrl-0 = <&led_pins_bananapi>; >+ >+ green { >+ label = "bananapi:green:usr"; >+ gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>; >+ }; >+ }; >+ >+ reg_gmac_3v3: gmac-3v3 { >+ compatible = "regulator-fixed"; >+ pinctrl-names = "default"; >+ pinctrl-0 = <&gmac_power_pin_bananapi>; >+ regulator-name = "gmac-3v3"; >+ regulator-min-microvolt = <3300000>; >+ regulator-max-microvolt = <3300000>; >+ startup-delay-us = <100000>; >+ enable-active-high; >+ gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>; >+ }; >+}; >+ >+&ahci { >+ status = "okay"; >+}; >+ >+&codec { >+ status = "okay"; >+}; >+ >+&cpu0 { >+ cpu-supply = <®_dcdc2>; >+ operating-points = < >+ /* kHz uV */ >+ 960000 1400000 >+ 912000 1400000 >+ 864000 1350000 >+ 720000 1250000 >+ 528000 1150000 >+ 312000 1100000 >+ 144000 1050000 >+ >; >+}; >+ >+&ehci0 { >+ status = "okay"; >+}; >+ >+&ehci1 { >+ status = "okay"; >+}; >+ >+&gmac { >+ pinctrl-names = "default"; >+ pinctrl-0 = <&gmac_pins_rgmii_a>; >+ phy = <&phy1>; >+ phy-mode = "rgmii"; >+ phy-supply = <®_gmac_3v3>; >+ status = "okay"; >+ >+ phy1: ethernet-phy@1 { >+ reg = <1>; >+ }; >+}; >+ >+&i2c0 { >+ pinctrl-names = "default"; >+ pinctrl-0 = <&i2c0_pins_a>; >+ status = "okay"; >+ >+ axp209: pmic@34 { >+ reg = <0x34>; >+ interrupt-parent = <&nmi_intc>; >+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; >+ }; >+}; >+ >+&i2c2 { >+ pinctrl-names = "default"; >+ pinctrl-0 = <&i2c2_pins_a>; >+ status = "okay"; >+}; >+ >+&ir0 { >+ pinctrl-names = "default"; >+ pinctrl-0 = <&ir0_rx_pins_a>; >+ status = "okay"; >+}; >+ >+&mmc0 { >+ pinctrl-names = "default"; >+ pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_bananapi>; >+ vmmc-supply = <®_vcc3v3>; >+ bus-width = <4>; >+ cd-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */ >+ cd-inverted; >+ status = "okay"; >+}; >+ >+&ohci0 { >+ status = "okay"; >+}; >+ >+&ohci1 { >+ status = "okay"; >+}; >+ >+&otg_sram { >+ status = "okay"; >+}; >+ >+&pio { >+ usb0_id_detect_pin: usb0_id_detect_pin@0 { >+ pins = "PH4"; >+ function = "gpio_in"; >+ bias-pull-up; >+ }; >+ >+ mmc0_cd_pin_bananapi: mmc0_cd_pin@0 { >+ pins = "PH10"; >+ function = "gpio_in"; >+ bias-pull-up; >+ }; >+ >+ gmac_power_pin_bananapi: gmac_power_pin@0 { >+ pins = "PH23"; >+ function = "gpio_out"; >+ }; >+ >+ led_pins_bananapi: led_pins@0 { >+ pins = "PH24"; >+ function = "gpio_out"; >+ }; >+}; >+ >+#include "axp209.dtsi" >+ >+®_dcdc2 { >+ regulator-always-on; >+ regulator-min-microvolt = <1000000>; >+ regulator-max-microvolt = <1400000>; >+ regulator-name = "vdd-cpu"; >+}; >+ >+®_dcdc3 { >+ regulator-always-on; >+ regulator-min-microvolt = <1000000>; >+ regulator-max-microvolt = <1400000>; >+ regulator-name = "vdd-int-dll"; >+}; >+ >+®_ldo1 { >+ regulator-name = "vdd-rtc"; >+}; >+ >+®_ldo2 { >+ regulator-always-on; >+ regulator-min-microvolt = <3000000>; >+ regulator-max-microvolt = <3000000>; >+ regulator-name = "avcc"; >+}; >+ >+®_usb0_vbus { >+ status = "okay"; >+}; >+ >+®_usb1_vbus { >+ status = "okay"; >+}; >+ >+®_usb2_vbus { >+ status = "okay"; >+}; >+ >+&spi0 { >+ pinctrl-names = "default"; >+ pinctrl-0 = <&spi0_pins_a>, >+ <&spi0_cs0_pins_a>, >+ <&spi0_cs1_pins_a>; >+ status = "okay"; >+}; >+ >+&uart0 { >+ pinctrl-names = "default"; >+ pinctrl-0 = <&uart0_pins_a>; >+ status = "okay"; >+}; >+ >+&uart3 { >+ pinctrl-names = "default"; >+ pinctrl-0 = <&uart3_pins_b>; >+ status = "okay"; >+}; >+ >+&uart7 { >+ pinctrl-names = "default"; >+ pinctrl-0 = <&uart7_pins_a>; >+ status = "okay"; >+}; >+ >+&usb_otg { >+ dr_mode = "otg"; >+ status = "okay"; >+}; >+ >+&usb_power_supply { >+ status = "okay"; >+}; >+ >+&usbphy { >+ pinctrl-names = "default"; >+ pinctrl-0 = <&usb0_id_detect_pin>; >+ usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ >+ usb0_vbus_power-supply = <&usb_power_supply>; >+ usb0_vbus-supply = <®_usb0_vbus>; >+ usb1_vbus-supply = <®_usb1_vbus>; >+ usb2_vbus-supply = <®_usb2_vbus>; >+ status = "okay"; >+}; >diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi.dts >b/arch/arm/boot/dts/sun7i-a20-bananapi.dts >deleted file mode 100644 >index ed2f35a..0000000 >--- a/arch/arm/boot/dts/sun7i-a20-bananapi.dts >+++ /dev/null >@@ -1,286 +0,0 @@ >-/* >- * Copyright 2014 Hans de Goede <hdegoede@redhat.com> >- * >- * Hans de Goede <hdegoede@redhat.com> >- * >- * 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 "sun7i-a20.dtsi" >-#include "sunxi-common-regulators.dtsi" >- >-#include <dt-bindings/gpio/gpio.h> >-#include <dt-bindings/interrupt-controller/irq.h> >- >-/ { >- model = "LeMaker Banana Pi"; >- compatible = "lemaker,bananapi", "allwinner,sun7i-a20"; >- >- aliases { >- serial0 = &uart0; >- serial1 = &uart3; >- serial2 = &uart7; >- }; >- >- chosen { >- stdout-path = "serial0:115200n8"; >- }; >- >- leds { >- compatible = "gpio-leds"; >- pinctrl-names = "default"; >- pinctrl-0 = <&led_pins_bananapi>; >- >- green { >- label = "bananapi:green:usr"; >- gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>; >- }; >- }; >- >- reg_gmac_3v3: gmac-3v3 { >- compatible = "regulator-fixed"; >- pinctrl-names = "default"; >- pinctrl-0 = <&gmac_power_pin_bananapi>; >- regulator-name = "gmac-3v3"; >- regulator-min-microvolt = <3300000>; >- regulator-max-microvolt = <3300000>; >- startup-delay-us = <100000>; >- enable-active-high; >- gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>; >- }; >-}; >- >-&ahci { >- status = "okay"; >-}; >- >-&codec { >- status = "okay"; >-}; >- >-&cpu0 { >- cpu-supply = <®_dcdc2>; >- operating-points = < >- /* kHz uV */ >- 960000 1400000 >- 912000 1400000 >- 864000 1350000 >- 720000 1250000 >- 528000 1150000 >- 312000 1100000 >- 144000 1050000 >- >; >-}; >- >-&ehci0 { >- status = "okay"; >-}; >- >-&ehci1 { >- status = "okay"; >-}; >- >-&gmac { >- pinctrl-names = "default"; >- pinctrl-0 = <&gmac_pins_rgmii_a>; >- phy = <&phy1>; >- phy-mode = "rgmii"; >- phy-supply = <®_gmac_3v3>; >- status = "okay"; >- >- phy1: ethernet-phy@1 { >- reg = <1>; >- }; >-}; >- >-&i2c0 { >- pinctrl-names = "default"; >- pinctrl-0 = <&i2c0_pins_a>; >- status = "okay"; >- >- axp209: pmic@34 { >- reg = <0x34>; >- interrupt-parent = <&nmi_intc>; >- interrupts = <0 IRQ_TYPE_LEVEL_LOW>; >- }; >-}; >- >-&i2c2 { >- pinctrl-names = "default"; >- pinctrl-0 = <&i2c2_pins_a>; >- status = "okay"; >-}; >- >-&ir0 { >- pinctrl-names = "default"; >- pinctrl-0 = <&ir0_rx_pins_a>; >- status = "okay"; >-}; >- >-&mmc0 { >- pinctrl-names = "default"; >- pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_bananapi>; >- vmmc-supply = <®_vcc3v3>; >- bus-width = <4>; >- cd-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */ >- cd-inverted; >- status = "okay"; >-}; >- >-&ohci0 { >- status = "okay"; >-}; >- >-&ohci1 { >- status = "okay"; >-}; >- >-&otg_sram { >- status = "okay"; >-}; >- >-&pio { >- usb0_id_detect_pin: usb0_id_detect_pin@0 { >- pins = "PH4"; >- function = "gpio_in"; >- bias-pull-up; >- }; >- >- mmc0_cd_pin_bananapi: mmc0_cd_pin@0 { >- pins = "PH10"; >- function = "gpio_in"; >- bias-pull-up; >- }; >- >- gmac_power_pin_bananapi: gmac_power_pin@0 { >- pins = "PH23"; >- function = "gpio_out"; >- }; >- >- led_pins_bananapi: led_pins@0 { >- pins = "PH24"; >- function = "gpio_out"; >- }; >-}; >- >-#include "axp209.dtsi" >- >-®_dcdc2 { >- regulator-always-on; >- regulator-min-microvolt = <1000000>; >- regulator-max-microvolt = <1400000>; >- regulator-name = "vdd-cpu"; >-}; >- >-®_dcdc3 { >- regulator-always-on; >- regulator-min-microvolt = <1000000>; >- regulator-max-microvolt = <1400000>; >- regulator-name = "vdd-int-dll"; >-}; >- >-®_ldo1 { >- regulator-name = "vdd-rtc"; >-}; >- >-®_ldo2 { >- regulator-always-on; >- regulator-min-microvolt = <3000000>; >- regulator-max-microvolt = <3000000>; >- regulator-name = "avcc"; >-}; >- >-®_usb0_vbus { >- status = "okay"; >-}; >- >-®_usb1_vbus { >- status = "okay"; >-}; >- >-®_usb2_vbus { >- status = "okay"; >-}; >- >-&spi0 { >- pinctrl-names = "default"; >- pinctrl-0 = <&spi0_pins_a>, >- <&spi0_cs0_pins_a>, >- <&spi0_cs1_pins_a>; >- status = "okay"; >-}; >- >-&uart0 { >- pinctrl-names = "default"; >- pinctrl-0 = <&uart0_pins_a>; >- status = "okay"; >-}; >- >-&uart3 { >- pinctrl-names = "default"; >- pinctrl-0 = <&uart3_pins_b>; >- status = "okay"; >-}; >- >-&uart7 { >- pinctrl-names = "default"; >- pinctrl-0 = <&uart7_pins_a>; >- status = "okay"; >-}; >- >-&usb_otg { >- dr_mode = "otg"; >- status = "okay"; >-}; >- >-&usb_power_supply { >- status = "okay"; >-}; >- >-&usbphy { >- pinctrl-names = "default"; >- pinctrl-0 = <&usb0_id_detect_pin>; >- usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ >- usb0_vbus_power-supply = <&usb_power_supply>; >- usb0_vbus-supply = <®_usb0_vbus>; >- usb1_vbus-supply = <®_usb1_vbus>; >- usb2_vbus-supply = <®_usb2_vbus>; >- status = "okay"; >-};
On Mon, May 29, 2017 at 07:30:26PM +0000, Jagan Teki wrote: > From: Jagan Teki <jagan@amarulasolutions.com> > > from BPI(BIPAI KEJI LIMITED) products the Bananapi board > is named as 'Bananapi M1' and this is the starting > bananapi board from M1 series. > > So rename dts and suffix 'M1' on model for the same, > so-that next sequence on bananapi starts like M1 Plus, M2 and so..on > > Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> > --- > Note: Bananapi BPI product site > http://www.banana-pi.org/product.html > > arch/arm/boot/dts/Makefile | 2 +- > arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts | 286 ++++++++++++++++++++++++++++ > arch/arm/boot/dts/sun7i-a20-bananapi.dts | 286 ---------------------------- > 3 files changed, 287 insertions(+), 287 deletions(-) > create mode 100644 arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts > delete mode 100644 arch/arm/boot/dts/sun7i-a20-bananapi.dts > > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > index 45c6e65..1b086f0 100644 > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > @@ -851,7 +851,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \ > sun6i-a31s-sinovoip-bpi-m2.dtb \ > sun6i-a31s-yones-toptech-bs1078-v2.dtb > dtb-$(CONFIG_MACH_SUN7I) += \ > - sun7i-a20-bananapi.dtb \ > + sun7i-a20-bananapi-m1.dtb \ > sun7i-a20-bananapi-m1-plus.dtb \ > sun7i-a20-bananapro.dtb \ > sun7i-a20-cubieboard2.dtb \ > diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts b/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts > new file mode 100644 > index 0000000..8b97b89 > --- /dev/null > +++ b/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts > @@ -0,0 +1,286 @@ > +/* > + * Copyright 2014 Hans de Goede <hdegoede@redhat.com> > + * > + * Hans de Goede <hdegoede@redhat.com> [...] > +/dts-v1/; > +#include "sun7i-a20.dtsi" > +#include "sunxi-common-regulators.dtsi" > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/interrupt-controller/irq.h> > + > +/ { > + model = "LeMaker Banana Pi M1"; > + compatible = "lemaker,bananapi", "allwinner,sun7i-a20"; [...] > diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi.dts b/arch/arm/boot/dts/sun7i-a20-bananapi.dts > deleted file mode 100644 > index ed2f35a..0000000 > --- a/arch/arm/boot/dts/sun7i-a20-bananapi.dts > +++ /dev/null NACK! Please neither rename the dts nor change the model string. Such a change would make newer kernels unusable on many existing installations without manual fixups by the end user. Linux distributions use databases with model-specific setup information (such as the dtb file name, the platform-specific bootscript to use, usable kernel flavours (lpae or non-lpae), etc.) on kernel installations and kernel upgrades, and those use the model string as their key for finding the relevant information. If you change either the dts file name or the model string inside the dts, you'll effectively break the proper installation of newer kernel versions on existing end user systems. For an example of such a database, please cf. https://anonscm.debian.org/cgit/d-i/flash-kernel.git/tree/db/all.db#n731 Regards, Karsten
On Tue, May 30, 2017 at 3:15 AM, Karsten Merker <merker@debian.org> wrote: > On Mon, May 29, 2017 at 07:30:26PM +0000, Jagan Teki wrote: >> From: Jagan Teki <jagan@amarulasolutions.com> >> >> from BPI(BIPAI KEJI LIMITED) products the Bananapi board >> is named as 'Bananapi M1' and this is the starting >> bananapi board from M1 series. >> >> So rename dts and suffix 'M1' on model for the same, >> so-that next sequence on bananapi starts like M1 Plus, M2 and so..on >> >> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> >> --- >> Note: Bananapi BPI product site >> http://www.banana-pi.org/product.html >> >> arch/arm/boot/dts/Makefile | 2 +- >> arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts | 286 ++++++++++++++++++++++++++++ >> arch/arm/boot/dts/sun7i-a20-bananapi.dts | 286 ---------------------------- >> 3 files changed, 287 insertions(+), 287 deletions(-) >> create mode 100644 arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts >> delete mode 100644 arch/arm/boot/dts/sun7i-a20-bananapi.dts >> >> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile >> index 45c6e65..1b086f0 100644 >> --- a/arch/arm/boot/dts/Makefile >> +++ b/arch/arm/boot/dts/Makefile >> @@ -851,7 +851,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \ >> sun6i-a31s-sinovoip-bpi-m2.dtb \ >> sun6i-a31s-yones-toptech-bs1078-v2.dtb >> dtb-$(CONFIG_MACH_SUN7I) += \ >> - sun7i-a20-bananapi.dtb \ >> + sun7i-a20-bananapi-m1.dtb \ >> sun7i-a20-bananapi-m1-plus.dtb \ >> sun7i-a20-bananapro.dtb \ >> sun7i-a20-cubieboard2.dtb \ >> diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts b/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts >> new file mode 100644 >> index 0000000..8b97b89 >> --- /dev/null >> +++ b/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts >> @@ -0,0 +1,286 @@ >> +/* >> + * Copyright 2014 Hans de Goede <hdegoede@redhat.com> >> + * >> + * Hans de Goede <hdegoede@redhat.com> > [...] >> +/dts-v1/; >> +#include "sun7i-a20.dtsi" >> +#include "sunxi-common-regulators.dtsi" >> + >> +#include <dt-bindings/gpio/gpio.h> >> +#include <dt-bindings/interrupt-controller/irq.h> >> + >> +/ { >> + model = "LeMaker Banana Pi M1"; >> + compatible = "lemaker,bananapi", "allwinner,sun7i-a20"; > [...] >> diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi.dts b/arch/arm/boot/dts/sun7i-a20-bananapi.dts >> deleted file mode 100644 >> index ed2f35a..0000000 >> --- a/arch/arm/boot/dts/sun7i-a20-bananapi.dts >> +++ /dev/null > > NACK! > > Please neither rename the dts nor change the model string. Such a > change would make newer kernels unusable on many existing > installations without manual fixups by the end user. Linux > distributions use databases with model-specific setup information > (such as the dtb file name, the platform-specific bootscript to > use, usable kernel flavours (lpae or non-lpae), etc.) on kernel > installations and kernel upgrades, and those use the model string > as their key for finding the relevant information. If you change > either the dts file name or the model string inside the dts, > you'll effectively break the proper installation of newer kernel > versions on existing end user systems. I understand your concerns about distribution change, but with new change in 'bananapi' brand owned by BIPAI KEJI(BPI) the model must need to update and this is not technically as Bananapi board it is Bananapi M1 [1] These are generic changes based on the hardware vendor info. [1] http://www.banana-pi.org/m1.html thanks!
On Tue, May 30, 2017 at 10:00:49AM +0530, Jagan Teki wrote: > On Tue, May 30, 2017 at 3:15 AM, Karsten Merker <merker@debian.org> wrote: > > On Mon, May 29, 2017 at 07:30:26PM +0000, Jagan Teki wrote: > >> From: Jagan Teki <jagan@amarulasolutions.com> > >> > >> from BPI(BIPAI KEJI LIMITED) products the Bananapi board > >> is named as 'Bananapi M1' and this is the starting > >> bananapi board from M1 series. > >> > >> So rename dts and suffix 'M1' on model for the same, > >> so-that next sequence on bananapi starts like M1 Plus, M2 and so..on > >> > >> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> > >> --- > >> Note: Bananapi BPI product site > >> http://www.banana-pi.org/product.html > >> > >> arch/arm/boot/dts/Makefile | 2 +- > >> arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts | 286 ++++++++++++++++++++++++++++ > >> arch/arm/boot/dts/sun7i-a20-bananapi.dts | 286 ---------------------------- > >> 3 files changed, 287 insertions(+), 287 deletions(-) > >> create mode 100644 arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts > >> delete mode 100644 arch/arm/boot/dts/sun7i-a20-bananapi.dts > >> > >> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > >> index 45c6e65..1b086f0 100644 > >> --- a/arch/arm/boot/dts/Makefile > >> +++ b/arch/arm/boot/dts/Makefile > >> @@ -851,7 +851,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \ > >> sun6i-a31s-sinovoip-bpi-m2.dtb \ > >> sun6i-a31s-yones-toptech-bs1078-v2.dtb > >> dtb-$(CONFIG_MACH_SUN7I) += \ > >> - sun7i-a20-bananapi.dtb \ > >> + sun7i-a20-bananapi-m1.dtb \ > >> sun7i-a20-bananapi-m1-plus.dtb \ > >> sun7i-a20-bananapro.dtb \ > >> sun7i-a20-cubieboard2.dtb \ > >> diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts b/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts > >> new file mode 100644 > >> index 0000000..8b97b89 > >> --- /dev/null > >> +++ b/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts > >> @@ -0,0 +1,286 @@ > >> +/* > >> + * Copyright 2014 Hans de Goede <hdegoede@redhat.com> > >> + * > >> + * Hans de Goede <hdegoede@redhat.com> > > [...] > >> +/dts-v1/; > >> +#include "sun7i-a20.dtsi" > >> +#include "sunxi-common-regulators.dtsi" > >> + > >> +#include <dt-bindings/gpio/gpio.h> > >> +#include <dt-bindings/interrupt-controller/irq.h> > >> + > >> +/ { > >> + model = "LeMaker Banana Pi M1"; > >> + compatible = "lemaker,bananapi", "allwinner,sun7i-a20"; > > [...] > >> diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi.dts b/arch/arm/boot/dts/sun7i-a20-bananapi.dts > >> deleted file mode 100644 > >> index ed2f35a..0000000 > >> --- a/arch/arm/boot/dts/sun7i-a20-bananapi.dts > >> +++ /dev/null > > > > NACK! > > > > Please neither rename the dts nor change the model string. Such a > > change would make newer kernels unusable on many existing > > installations without manual fixups by the end user. Linux > > distributions use databases with model-specific setup information > > (such as the dtb file name, the platform-specific bootscript to > > use, usable kernel flavours (lpae or non-lpae), etc.) on kernel > > installations and kernel upgrades, and those use the model string > > as their key for finding the relevant information. If you change > > either the dts file name or the model string inside the dts, > > you'll effectively break the proper installation of newer kernel > > versions on existing end user systems. > > I understand your concerns about distribution change, but with new > change in 'bananapi' brand owned by BIPAI KEJI(BPI) the model must > need to update and this is not technically as Bananapi board it is > Bananapi M1 [1] > > These are generic changes based on the hardware vendor info. > > [1] http://www.banana-pi.org/m1.html Hello Jagan, I have to disagree here. Whatever BIPAI KEJI(BPI) chooses to name their products today or in the future doesn't change history. The "original" Banana Pi was sold under the LeMaker brand and it was named "Banana Pi" and not "Banana Pi M1". The fact that LeMaker has stopped selling their Banana Pi board and BIPAI KEJI(BPI) (a different company than LeMaker!) now sells a board that is compatible to the original "LeMaker Banana Pi" under the name "Banana Pi M1" (and not "LeMaker Banana Pi M1" as you claim in your modified dts) doesn't matter at all for an existing dts and is in no way a valid reason to make an incompatible change that breaks existing systems. If you wanted to add a new (technically identical) dts with a different model string under a new dts file name and keep the existing one unchanged, I would find that unneccessary but at least acceptable insofar as it wouldn't break existing end user systems, but breaking existing systems in the wild is clearly unacceptable. I assume that the kernel dts maintainers would probably still object to such an addition as it is unneccessary from a purely technical point of view if the boards are 100% compatible, but that would of course be their decision to make. Regards, Karsten
On Tue, May 30, 2017 at 08:22:44AM +0200, Karsten Merker wrote: > On Tue, May 30, 2017 at 10:00:49AM +0530, Jagan Teki wrote: > > On Tue, May 30, 2017 at 3:15 AM, Karsten Merker <merker@debian.org> wrote: > > > On Mon, May 29, 2017 at 07:30:26PM +0000, Jagan Teki wrote: > > >> From: Jagan Teki <jagan@amarulasolutions.com> > > >> > > >> from BPI(BIPAI KEJI LIMITED) products the Bananapi board > > >> is named as 'Bananapi M1' and this is the starting > > >> bananapi board from M1 series. > > >> > > >> So rename dts and suffix 'M1' on model for the same, > > >> so-that next sequence on bananapi starts like M1 Plus, M2 and so..on > > >> > > >> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> > > >> --- > > >> Note: Bananapi BPI product site > > >> http://www.banana-pi.org/product.html > > >> > > >> arch/arm/boot/dts/Makefile | 2 +- > > >> arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts | 286 ++++++++++++++++++++++++++++ > > >> arch/arm/boot/dts/sun7i-a20-bananapi.dts | 286 ---------------------------- > > >> 3 files changed, 287 insertions(+), 287 deletions(-) > > >> create mode 100644 arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts > > >> delete mode 100644 arch/arm/boot/dts/sun7i-a20-bananapi.dts > > >> > > >> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > > >> index 45c6e65..1b086f0 100644 > > >> --- a/arch/arm/boot/dts/Makefile > > >> +++ b/arch/arm/boot/dts/Makefile > > >> @@ -851,7 +851,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \ > > >> sun6i-a31s-sinovoip-bpi-m2.dtb \ > > >> sun6i-a31s-yones-toptech-bs1078-v2.dtb > > >> dtb-$(CONFIG_MACH_SUN7I) += \ > > >> - sun7i-a20-bananapi.dtb \ > > >> + sun7i-a20-bananapi-m1.dtb \ > > >> sun7i-a20-bananapi-m1-plus.dtb \ > > >> sun7i-a20-bananapro.dtb \ > > >> sun7i-a20-cubieboard2.dtb \ > > >> diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts b/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts > > >> new file mode 100644 > > >> index 0000000..8b97b89 > > >> --- /dev/null > > >> +++ b/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts > > >> @@ -0,0 +1,286 @@ > > >> +/* > > >> + * Copyright 2014 Hans de Goede <hdegoede@redhat.com> > > >> + * > > >> + * Hans de Goede <hdegoede@redhat.com> > > > [...] > > >> +/dts-v1/; > > >> +#include "sun7i-a20.dtsi" > > >> +#include "sunxi-common-regulators.dtsi" > > >> + > > >> +#include <dt-bindings/gpio/gpio.h> > > >> +#include <dt-bindings/interrupt-controller/irq.h> > > >> + > > >> +/ { > > >> + model = "LeMaker Banana Pi M1"; > > >> + compatible = "lemaker,bananapi", "allwinner,sun7i-a20"; > > > [...] > > >> diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi.dts b/arch/arm/boot/dts/sun7i-a20-bananapi.dts > > >> deleted file mode 100644 > > >> index ed2f35a..0000000 > > >> --- a/arch/arm/boot/dts/sun7i-a20-bananapi.dts > > >> +++ /dev/null > > > > > > NACK! > > > > > > Please neither rename the dts nor change the model string. Such a > > > change would make newer kernels unusable on many existing > > > installations without manual fixups by the end user. Linux > > > distributions use databases with model-specific setup information > > > (such as the dtb file name, the platform-specific bootscript to > > > use, usable kernel flavours (lpae or non-lpae), etc.) on kernel > > > installations and kernel upgrades, and those use the model string > > > as their key for finding the relevant information. If you change > > > either the dts file name or the model string inside the dts, > > > you'll effectively break the proper installation of newer kernel > > > versions on existing end user systems. > > > > I understand your concerns about distribution change, but with new > > change in 'bananapi' brand owned by BIPAI KEJI(BPI) the model must > > need to update and this is not technically as Bananapi board it is > > Bananapi M1 [1] > > > > These are generic changes based on the hardware vendor info. > > > > [1] http://www.banana-pi.org/m1.html > > Hello Jagan, > > I have to disagree here. Whatever BIPAI KEJI(BPI) chooses to name > their products today or in the future doesn't change history. > The "original" Banana Pi was sold under the LeMaker brand and it > was named "Banana Pi" and not "Banana Pi M1". The fact that > LeMaker has stopped selling their Banana Pi board and BIPAI > KEJI(BPI) (a different company than LeMaker!) now sells a board > that is compatible to the original "LeMaker Banana Pi" under the > name "Banana Pi M1" (and not "LeMaker Banana Pi M1" as you claim > in your modified dts) doesn't matter at all for an existing dts > and is in no way a valid reason to make an incompatible change > that breaks existing systems. > > If you wanted to add a new (technically identical) dts with a > different model string under a new dts file name and keep the > existing one unchanged, I would find that unneccessary but at > least acceptable insofar as it wouldn't break existing end user > systems, but breaking existing systems in the wild is clearly > unacceptable. I assume that the kernel dts maintainers would > probably still object to such an addition as it is unneccessary > from a purely technical point of view if the boards are 100% > compatible, but that would of course be their decision to make. I fully agree, we shouldn't have to modify either the DT itself, the compatibles, or anything really, to keep up with the crazy naming scheme some random vendor invents. Maxime
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 45c6e65..1b086f0 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -851,7 +851,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \ sun6i-a31s-sinovoip-bpi-m2.dtb \ sun6i-a31s-yones-toptech-bs1078-v2.dtb dtb-$(CONFIG_MACH_SUN7I) += \ - sun7i-a20-bananapi.dtb \ + sun7i-a20-bananapi-m1.dtb \ sun7i-a20-bananapi-m1-plus.dtb \ sun7i-a20-bananapro.dtb \ sun7i-a20-cubieboard2.dtb \ diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts b/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts new file mode 100644 index 0000000..8b97b89 --- /dev/null +++ b/arch/arm/boot/dts/sun7i-a20-bananapi-m1.dts @@ -0,0 +1,286 @@ +/* + * Copyright 2014 Hans de Goede <hdegoede@redhat.com> + * + * Hans de Goede <hdegoede@redhat.com> + * + * 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 "sun7i-a20.dtsi" +#include "sunxi-common-regulators.dtsi" + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/interrupt-controller/irq.h> + +/ { + model = "LeMaker Banana Pi M1"; + compatible = "lemaker,bananapi", "allwinner,sun7i-a20"; + + aliases { + serial0 = &uart0; + serial1 = &uart3; + serial2 = &uart7; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&led_pins_bananapi>; + + green { + label = "bananapi:green:usr"; + gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>; + }; + }; + + reg_gmac_3v3: gmac-3v3 { + compatible = "regulator-fixed"; + pinctrl-names = "default"; + pinctrl-0 = <&gmac_power_pin_bananapi>; + regulator-name = "gmac-3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + startup-delay-us = <100000>; + enable-active-high; + gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>; + }; +}; + +&ahci { + status = "okay"; +}; + +&codec { + status = "okay"; +}; + +&cpu0 { + cpu-supply = <®_dcdc2>; + operating-points = < + /* kHz uV */ + 960000 1400000 + 912000 1400000 + 864000 1350000 + 720000 1250000 + 528000 1150000 + 312000 1100000 + 144000 1050000 + >; +}; + +&ehci0 { + status = "okay"; +}; + +&ehci1 { + status = "okay"; +}; + +&gmac { + pinctrl-names = "default"; + pinctrl-0 = <&gmac_pins_rgmii_a>; + phy = <&phy1>; + phy-mode = "rgmii"; + phy-supply = <®_gmac_3v3>; + status = "okay"; + + phy1: ethernet-phy@1 { + reg = <1>; + }; +}; + +&i2c0 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins_a>; + status = "okay"; + + axp209: pmic@34 { + reg = <0x34>; + interrupt-parent = <&nmi_intc>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; + }; +}; + +&i2c2 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c2_pins_a>; + status = "okay"; +}; + +&ir0 { + pinctrl-names = "default"; + pinctrl-0 = <&ir0_rx_pins_a>; + status = "okay"; +}; + +&mmc0 { + pinctrl-names = "default"; + pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_bananapi>; + vmmc-supply = <®_vcc3v3>; + bus-width = <4>; + cd-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */ + cd-inverted; + status = "okay"; +}; + +&ohci0 { + status = "okay"; +}; + +&ohci1 { + status = "okay"; +}; + +&otg_sram { + status = "okay"; +}; + +&pio { + usb0_id_detect_pin: usb0_id_detect_pin@0 { + pins = "PH4"; + function = "gpio_in"; + bias-pull-up; + }; + + mmc0_cd_pin_bananapi: mmc0_cd_pin@0 { + pins = "PH10"; + function = "gpio_in"; + bias-pull-up; + }; + + gmac_power_pin_bananapi: gmac_power_pin@0 { + pins = "PH23"; + function = "gpio_out"; + }; + + led_pins_bananapi: led_pins@0 { + pins = "PH24"; + function = "gpio_out"; + }; +}; + +#include "axp209.dtsi" + +®_dcdc2 { + regulator-always-on; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1400000>; + regulator-name = "vdd-cpu"; +}; + +®_dcdc3 { + regulator-always-on; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1400000>; + regulator-name = "vdd-int-dll"; +}; + +®_ldo1 { + regulator-name = "vdd-rtc"; +}; + +®_ldo2 { + regulator-always-on; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + regulator-name = "avcc"; +}; + +®_usb0_vbus { + status = "okay"; +}; + +®_usb1_vbus { + status = "okay"; +}; + +®_usb2_vbus { + status = "okay"; +}; + +&spi0 { + pinctrl-names = "default"; + pinctrl-0 = <&spi0_pins_a>, + <&spi0_cs0_pins_a>, + <&spi0_cs1_pins_a>; + status = "okay"; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_pins_a>; + status = "okay"; +}; + +&uart3 { + pinctrl-names = "default"; + pinctrl-0 = <&uart3_pins_b>; + status = "okay"; +}; + +&uart7 { + pinctrl-names = "default"; + pinctrl-0 = <&uart7_pins_a>; + status = "okay"; +}; + +&usb_otg { + dr_mode = "otg"; + status = "okay"; +}; + +&usb_power_supply { + status = "okay"; +}; + +&usbphy { + pinctrl-names = "default"; + pinctrl-0 = <&usb0_id_detect_pin>; + usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ + usb0_vbus_power-supply = <&usb_power_supply>; + usb0_vbus-supply = <®_usb0_vbus>; + usb1_vbus-supply = <®_usb1_vbus>; + usb2_vbus-supply = <®_usb2_vbus>; + status = "okay"; +}; diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi.dts b/arch/arm/boot/dts/sun7i-a20-bananapi.dts deleted file mode 100644 index ed2f35a..0000000 --- a/arch/arm/boot/dts/sun7i-a20-bananapi.dts +++ /dev/null @@ -1,286 +0,0 @@ -/* - * Copyright 2014 Hans de Goede <hdegoede@redhat.com> - * - * Hans de Goede <hdegoede@redhat.com> - * - * 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 "sun7i-a20.dtsi" -#include "sunxi-common-regulators.dtsi" - -#include <dt-bindings/gpio/gpio.h> -#include <dt-bindings/interrupt-controller/irq.h> - -/ { - model = "LeMaker Banana Pi"; - compatible = "lemaker,bananapi", "allwinner,sun7i-a20"; - - aliases { - serial0 = &uart0; - serial1 = &uart3; - serial2 = &uart7; - }; - - chosen { - stdout-path = "serial0:115200n8"; - }; - - leds { - compatible = "gpio-leds"; - pinctrl-names = "default"; - pinctrl-0 = <&led_pins_bananapi>; - - green { - label = "bananapi:green:usr"; - gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>; - }; - }; - - reg_gmac_3v3: gmac-3v3 { - compatible = "regulator-fixed"; - pinctrl-names = "default"; - pinctrl-0 = <&gmac_power_pin_bananapi>; - regulator-name = "gmac-3v3"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - startup-delay-us = <100000>; - enable-active-high; - gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>; - }; -}; - -&ahci { - status = "okay"; -}; - -&codec { - status = "okay"; -}; - -&cpu0 { - cpu-supply = <®_dcdc2>; - operating-points = < - /* kHz uV */ - 960000 1400000 - 912000 1400000 - 864000 1350000 - 720000 1250000 - 528000 1150000 - 312000 1100000 - 144000 1050000 - >; -}; - -&ehci0 { - status = "okay"; -}; - -&ehci1 { - status = "okay"; -}; - -&gmac { - pinctrl-names = "default"; - pinctrl-0 = <&gmac_pins_rgmii_a>; - phy = <&phy1>; - phy-mode = "rgmii"; - phy-supply = <®_gmac_3v3>; - status = "okay"; - - phy1: ethernet-phy@1 { - reg = <1>; - }; -}; - -&i2c0 { - pinctrl-names = "default"; - pinctrl-0 = <&i2c0_pins_a>; - status = "okay"; - - axp209: pmic@34 { - reg = <0x34>; - interrupt-parent = <&nmi_intc>; - interrupts = <0 IRQ_TYPE_LEVEL_LOW>; - }; -}; - -&i2c2 { - pinctrl-names = "default"; - pinctrl-0 = <&i2c2_pins_a>; - status = "okay"; -}; - -&ir0 { - pinctrl-names = "default"; - pinctrl-0 = <&ir0_rx_pins_a>; - status = "okay"; -}; - -&mmc0 { - pinctrl-names = "default"; - pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_bananapi>; - vmmc-supply = <®_vcc3v3>; - bus-width = <4>; - cd-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */ - cd-inverted; - status = "okay"; -}; - -&ohci0 { - status = "okay"; -}; - -&ohci1 { - status = "okay"; -}; - -&otg_sram { - status = "okay"; -}; - -&pio { - usb0_id_detect_pin: usb0_id_detect_pin@0 { - pins = "PH4"; - function = "gpio_in"; - bias-pull-up; - }; - - mmc0_cd_pin_bananapi: mmc0_cd_pin@0 { - pins = "PH10"; - function = "gpio_in"; - bias-pull-up; - }; - - gmac_power_pin_bananapi: gmac_power_pin@0 { - pins = "PH23"; - function = "gpio_out"; - }; - - led_pins_bananapi: led_pins@0 { - pins = "PH24"; - function = "gpio_out"; - }; -}; - -#include "axp209.dtsi" - -®_dcdc2 { - regulator-always-on; - regulator-min-microvolt = <1000000>; - regulator-max-microvolt = <1400000>; - regulator-name = "vdd-cpu"; -}; - -®_dcdc3 { - regulator-always-on; - regulator-min-microvolt = <1000000>; - regulator-max-microvolt = <1400000>; - regulator-name = "vdd-int-dll"; -}; - -®_ldo1 { - regulator-name = "vdd-rtc"; -}; - -®_ldo2 { - regulator-always-on; - regulator-min-microvolt = <3000000>; - regulator-max-microvolt = <3000000>; - regulator-name = "avcc"; -}; - -®_usb0_vbus { - status = "okay"; -}; - -®_usb1_vbus { - status = "okay"; -}; - -®_usb2_vbus { - status = "okay"; -}; - -&spi0 { - pinctrl-names = "default"; - pinctrl-0 = <&spi0_pins_a>, - <&spi0_cs0_pins_a>, - <&spi0_cs1_pins_a>; - status = "okay"; -}; - -&uart0 { - pinctrl-names = "default"; - pinctrl-0 = <&uart0_pins_a>; - status = "okay"; -}; - -&uart3 { - pinctrl-names = "default"; - pinctrl-0 = <&uart3_pins_b>; - status = "okay"; -}; - -&uart7 { - pinctrl-names = "default"; - pinctrl-0 = <&uart7_pins_a>; - status = "okay"; -}; - -&usb_otg { - dr_mode = "otg"; - status = "okay"; -}; - -&usb_power_supply { - status = "okay"; -}; - -&usbphy { - pinctrl-names = "default"; - pinctrl-0 = <&usb0_id_detect_pin>; - usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ - usb0_vbus_power-supply = <&usb_power_supply>; - usb0_vbus-supply = <®_usb0_vbus>; - usb1_vbus-supply = <®_usb1_vbus>; - usb2_vbus-supply = <®_usb2_vbus>; - status = "okay"; -};