On 03/01/2021 18:36, Jernej Skrabec wrote: > From: Andre Heider <a.hei...@gmail.com>
Hi, > dts file is taken from Linux 5.11-rc1 tag. > > The Bluetooth controller of this device ships with a default address, > use the new CONFIG_FIXUP_BDADDR option to fix it up. > > Signed-off-by: Andre Heider <a.hei...@gmail.com> > Acked-by: Maxime Ripard <mrip...@kernel.org> > [Updated OrangePi 3 DT, rebase and config update] > Signed-off-by: Jernej Skrabec <jernej.skra...@siol.net> As already mentioned, this CONFIG_PSCI_RESET removal should go. The rest looks alright, the .dts is identical to the Linux version. With that removed: Reviewed-by: Andre Przywara <andre.przyw...@arm.com> Thanks, Andre > --- > arch/arm/dts/Makefile | 1 + > arch/arm/dts/sun50i-h6-orangepi-3.dts | 345 ++++++++++++++++++++++++++ > board/sunxi/MAINTAINERS | 5 + > configs/orangepi_3_defconfig | 13 + > 4 files changed, 364 insertions(+) > create mode 100644 arch/arm/dts/sun50i-h6-orangepi-3.dts > create mode 100644 configs/orangepi_3_defconfig > > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile > index e00aed1ec207..607571d04b25 100644 > --- a/arch/arm/dts/Makefile > +++ b/arch/arm/dts/Makefile > @@ -605,6 +605,7 @@ dtb-$(CONFIG_MACH_SUN50I_H5) += \ > sun50i-h5-orangepi-zero-plus2.dtb > dtb-$(CONFIG_MACH_SUN50I_H6) += \ > sun50i-h6-beelink-gs1.dtb \ > + sun50i-h6-orangepi-3.dtb \ > sun50i-h6-orangepi-lite2.dtb \ > sun50i-h6-orangepi-one-plus.dtb \ > sun50i-h6-pine-h64.dtb \ > diff --git a/arch/arm/dts/sun50i-h6-orangepi-3.dts > b/arch/arm/dts/sun50i-h6-orangepi-3.dts > new file mode 100644 > index 000000000000..15c9dd8c4479 > --- /dev/null > +++ b/arch/arm/dts/sun50i-h6-orangepi-3.dts > @@ -0,0 +1,345 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +// Copyright (C) 2019 Ondřej Jirman <meg...@megous.com> > + > +/dts-v1/; > + > +#include "sun50i-h6.dtsi" > +#include "sun50i-h6-cpu-opp.dtsi" > + > +#include <dt-bindings/gpio/gpio.h> > + > +/ { > + model = "OrangePi 3"; > + compatible = "xunlong,orangepi-3", "allwinner,sun50i-h6"; > + > + aliases { > + serial0 = &uart0; > + serial1 = &uart1; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > + > + connector { > + compatible = "hdmi-connector"; > + ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */ > + type = "a"; > + > + port { > + hdmi_con_in: endpoint { > + remote-endpoint = <&hdmi_out_con>; > + }; > + }; > + }; > + > + ext_osc32k: ext_osc32k_clk { > + #clock-cells = <0>; > + compatible = "fixed-clock"; > + clock-frequency = <32768>; > + clock-output-names = "ext_osc32k"; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + power { > + label = "orangepi:red:power"; > + gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ > + default-state = "on"; > + }; > + > + status { > + label = "orangepi:green:status"; > + gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */ > + }; > + }; > + > + reg_vcc5v: vcc5v { > + /* board wide 5V supply directly from the DC jack */ > + compatible = "regulator-fixed"; > + regulator-name = "vcc-5v"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + regulator-always-on; > + }; > + > + reg_vcc33_wifi: vcc33-wifi { > + /* Always on 3.3V regulator for WiFi and BT */ > + compatible = "regulator-fixed"; > + regulator-name = "vcc33-wifi"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-always-on; > + vin-supply = <®_vcc5v>; > + }; > + > + reg_vcc_wifi_io: vcc-wifi-io { > + /* Always on 1.8V/300mA regulator for WiFi and BT IO */ > + compatible = "regulator-fixed"; > + regulator-name = "vcc-wifi-io"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-always-on; > + vin-supply = <®_vcc33_wifi>; > + }; > + > + wifi_pwrseq: wifi-pwrseq { > + compatible = "mmc-pwrseq-simple"; > + clocks = <&rtc 1>; > + clock-names = "ext_clock"; > + reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PM3 */ > + post-power-on-delay-ms = <200>; > + }; > +}; > + > +&cpu0 { > + cpu-supply = <®_dcdca>; > +}; > + > +&de { > + status = "okay"; > +}; > + > +&dwc3 { > + status = "okay"; > +}; > + > +&ehci0 { > + status = "okay"; > +}; > + > +&ehci3 { > + status = "okay"; > +}; > + > +&gpu { > + mali-supply = <®_dcdcc>; > + status = "okay"; > +}; > + > +&hdmi { > + status = "okay"; > +}; > + > +&hdmi_out { > + hdmi_out_con: endpoint { > + remote-endpoint = <&hdmi_con_in>; > + }; > +}; > + > +&mmc0 { > + vmmc-supply = <®_cldo1>; > + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ > + bus-width = <4>; > + status = "okay"; > +}; > + > +&mmc1 { > + vmmc-supply = <®_vcc33_wifi>; > + vqmmc-supply = <®_vcc_wifi_io>; > + mmc-pwrseq = <&wifi_pwrseq>; > + bus-width = <4>; > + non-removable; > + status = "okay"; > + > + brcm: sdio-wifi@1 { > + reg = <1>; > + compatible = "brcm,bcm4329-fmac"; > + interrupt-parent = <&r_pio>; > + interrupts = <1 0 IRQ_TYPE_LEVEL_LOW>; /* PM0 */ > + interrupt-names = "host-wake"; > + }; > +}; > + > +&mmc2 { > + vmmc-supply = <®_cldo1>; > + vqmmc-supply = <®_bldo2>; > + cap-mmc-hw-reset; > + non-removable; > + bus-width = <8>; > + status = "okay"; > +}; > + > +&ohci0 { > + status = "okay"; > +}; > + > +&ohci3 { > + status = "okay"; > +}; > + > +&pio { > + vcc-pc-supply = <®_bldo2>; > + vcc-pd-supply = <®_cldo1>; > + vcc-pg-supply = <®_vcc_wifi_io>; > +}; > + > +&r_i2c { > + status = "okay"; > + > + axp805: pmic@36 { > + compatible = "x-powers,axp805", "x-powers,axp806"; > + reg = <0x36>; > + interrupt-parent = <&r_intc>; > + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; > + interrupt-controller; > + #interrupt-cells = <1>; > + x-powers,self-working-mode; > + vina-supply = <®_vcc5v>; > + vinb-supply = <®_vcc5v>; > + vinc-supply = <®_vcc5v>; > + vind-supply = <®_vcc5v>; > + vine-supply = <®_vcc5v>; > + aldoin-supply = <®_vcc5v>; > + bldoin-supply = <®_vcc5v>; > + cldoin-supply = <®_vcc5v>; > + > + regulators { > + reg_aldo1: aldo1 { > + regulator-always-on; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-name = "vcc-pl-led-ir"; > + }; > + > + reg_aldo2: aldo2 { > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-name = "vcc33-audio-tv-ephy-mac"; > + }; > + > + /* ALDO3 is shorted to CLDO1 */ > + reg_aldo3: aldo3 { > + regulator-always-on; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-name = > "vcc33-io-pd-emmc-sd-usb-uart-1"; > + }; > + > + reg_bldo1: bldo1 { > + regulator-always-on; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-name = "vcc18-dram-bias-pll"; > + }; > + > + reg_bldo2: bldo2 { > + regulator-always-on; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-name = "vcc-efuse-pcie-hdmi-pc"; > + }; > + > + bldo3 { > + /* unused */ > + }; > + > + bldo4 { > + /* unused */ > + }; > + > + reg_cldo1: cldo1 { > + regulator-always-on; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-name = > "vcc33-io-pd-emmc-sd-usb-uart-2"; > + }; > + > + cldo2 { > + /* unused */ > + }; > + > + cldo3 { > + /* unused */ > + }; > + > + reg_dcdca: dcdca { > + regulator-always-on; > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <1160000>; > + regulator-ramp-delay = <2500>; > + regulator-name = "vdd-cpu"; > + }; > + > + reg_dcdcc: dcdcc { > + regulator-enable-ramp-delay = <32000>; > + regulator-min-microvolt = <810000>; > + regulator-max-microvolt = <1080000>; > + regulator-ramp-delay = <2500>; > + regulator-name = "vdd-gpu"; > + }; > + > + reg_dcdcd: dcdcd { > + regulator-always-on; > + regulator-min-microvolt = <960000>; > + regulator-max-microvolt = <960000>; > + regulator-name = "vdd-sys"; > + }; > + > + reg_dcdce: dcdce { > + regulator-always-on; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + regulator-name = "vcc-dram"; > + }; > + > + sw { > + /* unused */ > + }; > + }; > + }; > +}; > + > +&r_ir { > + status = "okay"; > +}; > + > +&rtc { > + clocks = <&ext_osc32k>; > +}; > + > +&uart0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart0_ph_pins>; > + status = "okay"; > +}; > + > +/* There's the BT part of the AP6256 connected to that UART */ > +&uart1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; > + uart-has-rtscts; > + status = "okay"; > + > + bluetooth { > + compatible = "brcm,bcm4345c5"; > + clocks = <&rtc 1>; > + clock-names = "lpo"; > + device-wakeup-gpios = <&r_pio 1 2 GPIO_ACTIVE_HIGH>; /* PM2 */ > + host-wakeup-gpios = <&r_pio 1 1 GPIO_ACTIVE_HIGH>; /* PM1 */ > + shutdown-gpios = <&r_pio 1 4 GPIO_ACTIVE_HIGH>; /* PM4 */ > + max-speed = <1500000>; > + }; > +}; > + > +&usb2otg { > + /* > + * This board doesn't have a controllable VBUS even though it > + * does have an ID pin. Using it as anything but a USB host is > + * unsafe. > + */ > + dr_mode = "host"; > + status = "okay"; > +}; > + > +&usb2phy { > + usb0_id_det-gpios = <&pio 2 15 GPIO_ACTIVE_HIGH>; /* PC15 */ > + usb0_vbus-supply = <®_vcc5v>; > + usb3_vbus-supply = <®_vcc5v>; > + status = "okay"; > +}; > + > +&usb3phy { > + status = "okay"; > +}; > diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS > index 1b37a9899edd..95b4df83e0a9 100644 > --- a/board/sunxi/MAINTAINERS > +++ b/board/sunxi/MAINTAINERS > @@ -385,6 +385,11 @@ M: Icenowy Zheng <icen...@aosc.io> > S: Maintained > F: configs/teres_i_defconfig > > +ORANGEPI 3 BOARD > +M: Andre Heider <a.hei...@gmail.com> > +S: Maintained > +F: configs/orangepi_3_defconfig > + > ORANGEPI LITE2 BOARD > M: Jagan Teki <ja...@amarulasolutions.com> > S: Maintained > diff --git a/configs/orangepi_3_defconfig b/configs/orangepi_3_defconfig > new file mode 100644 > index 000000000000..6a4a11739213 > --- /dev/null > +++ b/configs/orangepi_3_defconfig > @@ -0,0 +1,13 @@ > +CONFIG_ARM=y > +CONFIG_ARCH_SUNXI=y > +CONFIG_SPL=y > +CONFIG_MACH_SUN50I_H6=y > +CONFIG_SUNXI_DRAM_H6_LPDDR3=y > +CONFIG_MMC0_CD_PIN="PF6" > +CONFIG_MMC_SUNXI_SLOT_EXTRA=2 > +CONFIG_FIXUP_BDADDR="brcm,bcm4345c5" > +# CONFIG_PSCI_RESET is not set > +CONFIG_DEFAULT_DEVICE_TREE="sun50i-h6-orangepi-3" > +# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set > +CONFIG_USB_EHCI_HCD=y > +CONFIG_USB_OHCI_HCD=y > -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-sunxi/68bdda65-23d2-8bd8-8138-6dc72f1925ec%40arm.com.