On Mon, Mar 20, 2023 at 1:53 AM Andre Przywara <andre.przywara@xxxxxxx> wrote: > > The MangoPi MQ-R-T113 is a small SBC with the Allwinner T113-s3 SoC. > The SoC features two Arm Cortex-A7 cores and 128 MB of co-packaged DDR3 > DRAM. The board adds mostly connectors and the required regulators, plus > a Realtek RTL8189FTV WiFi chip. > Power comes in via a USB-C connector wired as a peripheral, and there is > a second USB-C connector usable as a host port. > > Add a .dtsi file describing most of the board's peripherals, and include > that from the actual board .dts file. This allows to re-use the .dtsi > for the MQ-R-F113 RISC-V variant of that board. > > Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx> > --- > arch/arm/boot/dts/Makefile | 1 + > .../dts/sun8i-t113s-mangopi-mq-r-t113.dts | 35 +++++ > .../boot/dts/sunxi-d1s-t113-mangopi-mq-r.dtsi | 126 ++++++++++++++++++ > 3 files changed, 162 insertions(+) > create mode 100644 arch/arm/boot/dts/sun8i-t113s-mangopi-mq-r-t113.dts > create mode 100644 arch/arm/boot/dts/sunxi-d1s-t113-mangopi-mq-r.dtsi > > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > index efe4152e5846d..3367e24146da8 100644 > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > @@ -1397,6 +1397,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \ > sun8i-s3-elimo-initium.dtb \ > sun8i-s3-lichee-zero-plus.dtb \ > sun8i-s3-pinecube.dtb \ > + sun8i-t113s-mangopi-mq-r-t113.dtb \ > sun8i-t3-cqa3t-bv3.dtb \ > sun8i-v3-sl631-imx179.dtb \ > sun8i-v3s-licheepi-zero.dtb \ > diff --git a/arch/arm/boot/dts/sun8i-t113s-mangopi-mq-r-t113.dts b/arch/arm/boot/dts/sun8i-t113s-mangopi-mq-r-t113.dts > new file mode 100644 > index 0000000000000..94e24b5926dd7 > --- /dev/null > +++ b/arch/arm/boot/dts/sun8i-t113s-mangopi-mq-r-t113.dts > @@ -0,0 +1,35 @@ > +// SPDX-License-Identifier: (GPL-2.0+ or MIT) > +// Copyright (C) 2022 Arm Ltd. > + > +#include <dt-bindings/interrupt-controller/irq.h> > + > +/dts-v1/; > + > +#include "sun8i-t113s.dtsi" > +#include "sunxi-d1s-t113-mangopi-mq-r.dtsi" > + > +/ { > + model = "MangoPi MQ-R-T113"; > + compatible = "widora,mangopi-mq-r-t113", "allwinner,sun8i-t113s"; > + > + aliases { > + ethernet0 = &rtl8189ftv; > + }; > +}; > + > +&cpu0 { > + cpu-supply = <®_vcc_core>; > +}; > + > +&cpu1 { > + cpu-supply = <®_vcc_core>; > +}; Tested on MQ-R-T113 Mangopi on top of 6.3-rc3 and on booted system I have only one CPU available: root@t113:~# cat /proc/cpuinfo processor : 0 model name : ARMv7 Processor rev 5 (v7l) BogoMIPS : 48.00 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 5 Hardware : Generic DT based system Revision : 0000 Serial : 9340600081169098 bootlog shows: [ 0.003515] /cpus/cpu@0 missing clock-frequency property [ 0.003601] /cpus/cpu@1 missing clock-frequency property [ 0.003640] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 > + > +&mmc1 { > + rtl8189ftv: wifi@1 { > + reg = <1>; > + interrupt-parent = <&pio>; > + interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 = WL_WAKE_AP */ > + interrupt-names = "host-wake"; > + }; > +}; > diff --git a/arch/arm/boot/dts/sunxi-d1s-t113-mangopi-mq-r.dtsi b/arch/arm/boot/dts/sunxi-d1s-t113-mangopi-mq-r.dtsi > new file mode 100644 > index 0000000000000..e9bc749488bb2 > --- /dev/null > +++ b/arch/arm/boot/dts/sunxi-d1s-t113-mangopi-mq-r.dtsi > @@ -0,0 +1,126 @@ > +// SPDX-License-Identifier: (GPL-2.0+ or MIT) > +// Copyright (C) 2022 Arm Ltd. > +/* > + * Common peripherals and configurations for MangoPi MQ-R boards. > + */ > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/leds/common.h> > + > +/ { > + aliases { > + serial3 = &uart3; > + }; > + > + chosen { > + stdout-path = "serial3:115200n8"; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + led-0 { > + color = <LED_COLOR_ID_BLUE>; > + function = LED_FUNCTION_STATUS; > + gpios = <&pio 3 22 GPIO_ACTIVE_LOW>; /* PD22 */ > + }; > + }; > + > + /* board wide 5V supply directly from the USB-C socket */ > + reg_vcc5v: regulator-5v { > + compatible = "regulator-fixed"; > + regulator-name = "vcc-5v"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + regulator-always-on; > + }; > + > + /* SY8008 DC/DC regulator on the board */ > + reg_3v3: regulator-3v3 { > + compatible = "regulator-fixed"; > + regulator-name = "vcc-3v3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + vin-supply = <®_vcc5v>; > + }; > + > + /* SY8008 DC/DC regulator on the board, also supplying VDD-SYS */ > + reg_vcc_core: regulator-core { > + compatible = "regulator-fixed"; > + regulator-name = "vcc-core"; > + regulator-min-microvolt = <880000>; > + regulator-max-microvolt = <880000>; > + vin-supply = <®_vcc5v>; > + }; > + > + /* XC6206 LDO on the board */ > + reg_avdd2v8: regulator-avdd { > + compatible = "regulator-fixed"; > + regulator-name = "avdd2v8"; > + regulator-min-microvolt = <2800000>; > + regulator-max-microvolt = <2800000>; > + vin-supply = <®_3v3>; > + }; > + > + wifi_pwrseq: wifi-pwrseq { > + compatible = "mmc-pwrseq-simple"; > + reset-gpios = <&pio 6 12 GPIO_ACTIVE_LOW>; /* PG12 */ > + }; > +}; > + > +&dcxo { > + clock-frequency = <24000000>; > +}; > + > +&ehci1 { > + status = "okay"; > +}; > + > +&mmc0 { > + pinctrl-0 = <&mmc0_pins>; > + pinctrl-names = "default"; > + vmmc-supply = <®_3v3>; > + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; > + disable-wp; > + bus-width = <4>; > + status = "okay"; > +}; > + > +&mmc1 { > + pinctrl-0 = <&mmc1_pins>; > + pinctrl-names = "default"; > + vmmc-supply = <®_3v3>; > + non-removable; > + bus-width = <4>; > + mmc-pwrseq = <&wifi_pwrseq>; > + status = "okay"; > +}; > + > +&ohci1 { > + status = "okay"; > +}; > + > +&pio { > + vcc-pb-supply = <®_3v3>; > + vcc-pd-supply = <®_3v3>; > + vcc-pe-supply = <®_avdd2v8>; > + vcc-pf-supply = <®_3v3>; > + vcc-pg-supply = <®_3v3>; > +}; > + > +&uart3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart3_pb_pins>; > + status = "okay"; > +}; > + > +/* The USB-C socket has its CC pins pulled to GND, so is hardwired as a UFP. */ > +&usb_otg { > + dr_mode = "peripheral"; > + status = "okay"; > +}; > + > +&usbphy { > + usb1_vbus-supply = <®_vcc5v>; > + status = "okay"; > +}; > -- > 2.35.7 > BR, marek