Message ID | 20200416163624.1057207-1-exqdzn@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | sunxi: add support for Banana Pi P2 Zero board | expand |
On Thu, Apr 16, 2020 at 10:06 PM Mizan R <exqdzn at gmail.com> wrote: > commit details? > Signed-off-by: Mizan R <exqdzn at gmail.com> > --- > arch/arm/dts/Makefile | 1 + > .../dts/sun8i-h2-plus-bananapi-p2-zero.dts | 181 ++++++++++++++++++ > configs/Sinovoip_BPI_P2_Zero_defconfig | 20 ++ > 3 files changed, 202 insertions(+) > create mode 100644 arch/arm/dts/sun8i-h2-plus-bananapi-p2-zero.dts > create mode 100644 configs/Sinovoip_BPI_P2_Zero_defconfig > > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile > index 62da168ef8..7a43f64b0a 100644 > --- a/arch/arm/dts/Makefile > +++ b/arch/arm/dts/Makefile > @@ -487,6 +487,7 @@ dtb-$(CONFIG_MACH_SUN8I_A83T) += \ > sun8i-a83t-tbs-a711.dtb > dtb-$(CONFIG_MACH_SUN8I_H3) += \ > sun8i-h2-plus-bananapi-m2-zero.dtb \ > + sun8i-h2-plus-bananapi-p2-zero.dtb \ Please add the Linux sha1 for this dts file. > 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-p2-zero.dts b/arch/arm/dts/sun8i-h2-plus-bananapi-p2-zero.dts > new file mode 100644 > index 0000000000..d28dc8952b > --- /dev/null > +++ b/arch/arm/dts/sun8i-h2-plus-bananapi-p2-zero.dts > @@ -0,0 +1,181 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (C) 2020 Mizan R <exqdzn at gmail.com> > + * > + * Based on sun8i-h2-plus-bananapi-m2-zero.dts, which is: > + * Copyright (C) 2017 Icenowy Zheng <icenowy at aosc.io> > + */ > + > +/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-P2-Zero"; > + compatible = "sinovoip,bpi-p2-zero", "allwinner,sun8i-h2-plus"; > + > + aliases { > + serial0 = &uart0; > + serial1 = &uart1; > + ethernet0 = &emac; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > + > + connector { > + compatible = "hdmi-connector"; > + type = "a"; > + > + port { > + hdmi_con_in: endpoint { > + remote-endpoint = <&hdmi_out_con>; > + }; > + }; > + }; > + > + leds { > + compatible = "gpio-leds"; > + pinctrl-names = "default"; > + > + pwr_led { > + label = "bananapi-p2-zero:red:pwr"; > + linux,default-trigger = "heartbeat"; > + 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>; > + }; > + }; > + > + reg_vdd_cpux: vdd-cpux-regulator { > + compatible = "regulator-gpio"; > + regulator-name = "vdd-cpux"; > + regulator-type = "voltage"; > + regulator-boot-on; > + regulator-always-on; > + regulator-min-microvolt = <1100000>; > + regulator-max-microvolt = <1300000>; > + regulator-ramp-delay = <50>; /* 4ms */ > + > + gpios = <&r_pio 0 1 GPIO_ACTIVE_HIGH>; /* PL1 */ > + enable-active-high; > + gpios-states = <0x1>; > + states = <1100000 0x0 > + 1300000 0x1>; > + }; > + > + wifi_pwrseq: wifi_pwrseq { > + compatible = "mmc-pwrseq-simple"; > + pinctrl-names = "default"; > + reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */ > + }; > +}; > + > +&cpu0 { > + cpu-supply = <®_vdd_cpux>; > +}; > + > +&de { > + status = "okay"; > +}; > + > +&ehci0 { > + status = "okay"; > +}; > + > +&emac { > + phy-handle = <&int_mii_phy>; > + phy-mode = "mii"; > + allwinner,leds-active-low; > + status = "okay"; > +}; > + > +&hdmi { > + status = "okay"; > +}; > + > +&hdmi_out { > + hdmi_out_con: endpoint { > + remote-endpoint = <&hdmi_con_in>; > + }; > +}; > + > +&mmc0 { > + vmmc-supply = <®_vcc3v3>; > + bus-width = <4>; > + cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */ > + status = "okay"; > +}; > + > +&mmc1 { > + vmmc-supply = <®_vcc3v3>; > + vqmmc-supply = <®_vcc3v3>; > + mmc-pwrseq = <&wifi_pwrseq>; > + bus-width = <4>; > + non-removable; > + status = "okay"; > + > + brcmf: wifi at 1 { > + reg = <1>; > + compatible = "brcm,bcm4329-fmac"; > + interrupt-parent = <&pio>; > + interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */ > + interrupt-names = "host-wake"; > + }; > +}; > + > +&mmc2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&mmc2_8bit_pins>; > + vmmc-supply = <®_vcc3v3>; > + vqmmc-supply = <®_vcc3v3>; > + bus-width = <8>; > + non-removable; > + status = "okay"; > +}; > + > +&ohci0 { > + status = "okay"; > +}; > + > +&uart0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart0_pa_pins>; > + 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/configs/Sinovoip_BPI_P2_Zero_defconfig b/configs/Sinovoip_BPI_P2_Zero_defconfig > new file mode 100644 > index 0000000000..cb5b79f254 > --- /dev/null > +++ b/configs/Sinovoip_BPI_P2_Zero_defconfig > @@ -0,0 +1,20 @@ > +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_NR_DRAM_BANKS=1 > +CONFIG_MMC_SUNXI_SLOT_EXTRA=2 > +CONFIG_MMC0_CD_PIN="" > +# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set > +CONFIG_CONSOLE_MUX=y > +# CONFIG_CMD_FLASH is not set > +# CONFIG_SPL_DOS_PARTITION is not set > +# CONFIG_SPL_ISO_PARTITION is not set > +# CONFIG_SPL_EFI_PARTITION is not set > +CONFIG_DEFAULT_DEVICE_TREE="sun8i-h2-plus-bananapi-p2-zero" > +CONFIG_SUN8I_EMAC=y > +CONFIG_USB_EHCI_HCD=y > +CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y > \ No newline at end of file Some of defconfigs are moved into respective kconfig files, so please check with existing h3 or h2 board deconfig. Jagan.
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 62da168ef8..7a43f64b0a 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -487,6 +487,7 @@ dtb-$(CONFIG_MACH_SUN8I_A83T) += \ sun8i-a83t-tbs-a711.dtb dtb-$(CONFIG_MACH_SUN8I_H3) += \ sun8i-h2-plus-bananapi-m2-zero.dtb \ + sun8i-h2-plus-bananapi-p2-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-p2-zero.dts b/arch/arm/dts/sun8i-h2-plus-bananapi-p2-zero.dts new file mode 100644 index 0000000000..d28dc8952b --- /dev/null +++ b/arch/arm/dts/sun8i-h2-plus-bananapi-p2-zero.dts @@ -0,0 +1,181 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2020 Mizan R <exqdzn at gmail.com> + * + * Based on sun8i-h2-plus-bananapi-m2-zero.dts, which is: + * Copyright (C) 2017 Icenowy Zheng <icenowy at aosc.io> + */ + +/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-P2-Zero"; + compatible = "sinovoip,bpi-p2-zero", "allwinner,sun8i-h2-plus"; + + aliases { + serial0 = &uart0; + serial1 = &uart1; + ethernet0 = &emac; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + connector { + compatible = "hdmi-connector"; + type = "a"; + + port { + hdmi_con_in: endpoint { + remote-endpoint = <&hdmi_out_con>; + }; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + + pwr_led { + label = "bananapi-p2-zero:red:pwr"; + linux,default-trigger = "heartbeat"; + 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>; + }; + }; + + reg_vdd_cpux: vdd-cpux-regulator { + compatible = "regulator-gpio"; + regulator-name = "vdd-cpux"; + regulator-type = "voltage"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1300000>; + regulator-ramp-delay = <50>; /* 4ms */ + + gpios = <&r_pio 0 1 GPIO_ACTIVE_HIGH>; /* PL1 */ + enable-active-high; + gpios-states = <0x1>; + states = <1100000 0x0 + 1300000 0x1>; + }; + + wifi_pwrseq: wifi_pwrseq { + compatible = "mmc-pwrseq-simple"; + pinctrl-names = "default"; + reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */ + }; +}; + +&cpu0 { + cpu-supply = <®_vdd_cpux>; +}; + +&de { + status = "okay"; +}; + +&ehci0 { + status = "okay"; +}; + +&emac { + phy-handle = <&int_mii_phy>; + phy-mode = "mii"; + allwinner,leds-active-low; + status = "okay"; +}; + +&hdmi { + status = "okay"; +}; + +&hdmi_out { + hdmi_out_con: endpoint { + remote-endpoint = <&hdmi_con_in>; + }; +}; + +&mmc0 { + vmmc-supply = <®_vcc3v3>; + bus-width = <4>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */ + status = "okay"; +}; + +&mmc1 { + vmmc-supply = <®_vcc3v3>; + vqmmc-supply = <®_vcc3v3>; + mmc-pwrseq = <&wifi_pwrseq>; + bus-width = <4>; + non-removable; + status = "okay"; + + brcmf: wifi at 1 { + reg = <1>; + compatible = "brcm,bcm4329-fmac"; + interrupt-parent = <&pio>; + interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */ + interrupt-names = "host-wake"; + }; +}; + +&mmc2 { + pinctrl-names = "default"; + pinctrl-0 = <&mmc2_8bit_pins>; + vmmc-supply = <®_vcc3v3>; + vqmmc-supply = <®_vcc3v3>; + bus-width = <8>; + non-removable; + status = "okay"; +}; + +&ohci0 { + status = "okay"; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_pa_pins>; + 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/configs/Sinovoip_BPI_P2_Zero_defconfig b/configs/Sinovoip_BPI_P2_Zero_defconfig new file mode 100644 index 0000000000..cb5b79f254 --- /dev/null +++ b/configs/Sinovoip_BPI_P2_Zero_defconfig @@ -0,0 +1,20 @@ +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_NR_DRAM_BANKS=1 +CONFIG_MMC_SUNXI_SLOT_EXTRA=2 +CONFIG_MMC0_CD_PIN="" +# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set +CONFIG_CONSOLE_MUX=y +# CONFIG_CMD_FLASH is not set +# CONFIG_SPL_DOS_PARTITION is not set +# CONFIG_SPL_ISO_PARTITION is not set +# CONFIG_SPL_EFI_PARTITION is not set +CONFIG_DEFAULT_DEVICE_TREE="sun8i-h2-plus-bananapi-p2-zero" +CONFIG_SUN8I_EMAC=y +CONFIG_USB_EHCI_HCD=y +CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y \ No newline at end of file
Signed-off-by: Mizan R <exqdzn at gmail.com> --- arch/arm/dts/Makefile | 1 + .../dts/sun8i-h2-plus-bananapi-p2-zero.dts | 181 ++++++++++++++++++ configs/Sinovoip_BPI_P2_Zero_defconfig | 20 ++ 3 files changed, 202 insertions(+) create mode 100644 arch/arm/dts/sun8i-h2-plus-bananapi-p2-zero.dts create mode 100644 configs/Sinovoip_BPI_P2_Zero_defconfig