History

Merge tag 'sunxi-dt-for-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt

Allwinner device tree changes for 7.3 Some changes for old chips/devices and some for recent ones. - A10 PMU interrupt number fixed - A100/A133 gained LRADC - enabled overlay support for sun8i-h2-plus pi boards - A523 family gained consumer IR receiver - H728-based X96QPRO+ gained SPDIF audio output - PinePhone's mpu6050 mount orientation fixed - style fixes New board added: - Baijie Helper A133 - NetCube Systems OpenNMC (dobermann) * tag 'sunxi-dt-for-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: arm64: dts: allwinner: Correct white-space style ARM: dts: allwinner: Correct white-space style arm64: dts: allwinner: a523: Enable SPDIF on X96QPRO+ arm64: dts: allwinner: a523: Add SPDIF output PH pin mux option arm64: dts: allwinner: sun50i-a64-pinephone: Fix mpu6050 mount matrix arm64: dts: allwinner: a523: enable IR on the Avaota A1 arm64: dts: allwinner: a523: enable IR receiver on the X96Q Pro+ arm64: dts: allwinner: a523: add IR receiver nodes media: dt-bindings: allwinner,sun4i-a10-ir: add A523 compatible ARM: dts: allwinner: a10: Fix PMU interrupt ARM: dts: allwinner: enable overlay support for sun8i-h2-plus pi boards ARM: dts: allwinner: add support for NetCube Systems OpenNMC (dobermann) riscv: dts: allwinner: d1s-t113: Add uart4 pinctrl required by NetCube Systems OpenNMC dt-bindings: arm: sunxi: Add NetCube Systems OpenNMC (dobermann) ARM: dts: allwinner: sun8i-h3: Correct indentation arm64: dts: allwinner: A133: add support for Baijie Helper A133 board arm64: dts: allwinner: a100: Add LRADC node dt-bindings: input: sun4i-lradc-keys: Add A100/A133 compatible dt-bindings: arm: sunxi: Add Baijie HelperBoard A133 compatible dt-bindings: vendor-prefixes: Add Shenzhen Baijie Technology Co., Ltd.

Alexandre Belloni committed 3 months ago

Commit ff1d40d2 parents 52b1700 be1454827 files · +627 −20Browse files

Unified · Split

27 files
  1. Documentation/devicetree/bindings/arm/sunxi.yaml +7 −0
  2. Documentation/devicetree/bindings/input/allwinner,sun4i-a10-lradc-keys.yaml +1 −0
  3. Documentation/devicetree/bindings/media/allwinner,sun4i-a10-ir.yaml +5 −3
  4. Documentation/devicetree/bindings/vendor-prefixes.yaml +2 −0
  5. arch/arm/boot/dts/allwinner/Makefile +5 −0
  6. arch/arm/boot/dts/allwinner/sun4i-a10-gemei-g9.dts +1 −1
  7. arch/arm/boot/dts/allwinner/sun4i-a10-inet1.dts +2 −2
  8. arch/arm/boot/dts/allwinner/sun4i-a10.dtsi +1 −1
  9. arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-duo2.dts +2 −2
  10. arch/arm/boot/dts/allwinner/sun8i-t113s-netcube-dobermann.dts +149 −0
  11. arch/arm/boot/dts/allwinner/sun8i-t113s-netcube-nagami.dtsi +1 −1
  12. arch/arm64/boot/dts/allwinner/Makefile +1 −0
  13. arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi +10 −0
  14. arch/arm64/boot/dts/allwinner/sun50i-a133-helperboard-core.dtsi +197 −0
  15. arch/arm64/boot/dts/allwinner/sun50i-a133-helperboard.dts +148 −0
  16. arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +2 −2
  17. arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi +1 −1
  18. arch/arm64/boot/dts/allwinner/sun50i-h5-libretech-all-h5-cc.dts +1 −1
  19. arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts +1 −1
  20. arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus.dts +1 −1
  21. arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi +1 −1
  22. arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts +1 −1
  23. arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi +43 −0
  24. arch/arm64/boot/dts/allwinner/sun55i-h728-x96qpro+.dts +30 −0
  25. arch/arm64/boot/dts/allwinner/sun55i-t527-avaota-a1.dts +7 −1
  26. arch/arm64/boot/dts/allwinner/sun55i-t527-orangepi-4a.dts +1 −1
  27. arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi +6 −0
Documentation/devicetree/bindings/arm/sunxi.yaml+7−0
@@ -96,6 +96,12 @@ properties: · 95 unmodified lines
96 - const: allwinner,ba10-tvbox96 - const: allwinner,ba10-tvbox
97 - const: allwinner,sun4i-a1097 - const: allwinner,sun4i-a10
98 98
99 - description: Baijie A133 HelperBoard
100 items:
101 - const: baijie,helperboard-a133
102 - const: baijie,helperboard-a133-core
103 - const: allwinner,sun50i-a100
104
99 - description: BananaPi105 - description: BananaPi
100 items:106 items:
101 - const: lemaker,bananapi107 - const: lemaker,bananapi
@@ -598,6 +604,7 @@ properties: · 496 unmodified lines
598 - description: NetCube Systems Nagami SoM based boards604 - description: NetCube Systems Nagami SoM based boards
599 items:605 items:
600 - enum:606 - enum:
607 - netcube,dobermann
601 - netcube,nagami-basic-carrier608 - netcube,nagami-basic-carrier
602 - netcube,nagami-keypad-carrier609 - netcube,nagami-keypad-carrier
603 - const: netcube,nagami610 - const: netcube,nagami
Documentation/devicetree/bindings/input/allwinner,sun4i-a10-lradc-keys.yaml+1−0
@@ -23,6 +23,7 @@ properties: · 22 unmodified lines
23 - const: allwinner,sun50i-r329-lradc23 - const: allwinner,sun50i-r329-lradc
24 - items:24 - items:
25 - enum:25 - enum:
26 - allwinner,sun50i-a100-lradc
26 - allwinner,sun50i-h616-lradc27 - allwinner,sun50i-h616-lradc
27 - allwinner,sun20i-d1-lradc28 - allwinner,sun20i-d1-lradc
28 - const: allwinner,sun50i-r329-lradc29 - const: allwinner,sun50i-r329-lradc
Documentation/devicetree/bindings/media/allwinner,sun4i-a10-ir.yaml+5−3
@@ -16,9 +16,10 @@ allOf: · 15 unmodified lines
16properties:16properties:
17 compatible:17 compatible:
18 oneOf:18 oneOf:
19 - const: allwinner,sun4i-a10-ir19 - enum:
20 - const: allwinner,sun5i-a13-ir20 - allwinner,sun4i-a10-ir
21 - const: allwinner,sun6i-a31-ir21 - allwinner,sun5i-a13-ir
22 - allwinner,sun6i-a31-ir
22 - items:23 - items:
23 - enum:24 - enum:
24 - allwinner,suniv-f1c100s-ir25 - allwinner,suniv-f1c100s-ir
@@ -27,6 +28,7 @@ properties: · 2 unmodified lines
27 - allwinner,sun50i-a64-ir28 - allwinner,sun50i-a64-ir
28 - allwinner,sun50i-h6-ir29 - allwinner,sun50i-h6-ir
29 - allwinner,sun50i-h616-ir30 - allwinner,sun50i-h616-ir
31 - allwinner,sun55i-a523-ir
30 - const: allwinner,sun6i-a31-ir32 - const: allwinner,sun6i-a31-ir
31 33
32 reg:34 reg:
Documentation/devicetree/bindings/vendor-prefixes.yaml+2−0
@@ -231,6 +231,8 @@ patternProperties: · 230 unmodified lines
231 description: Azoteq (Pty) Ltd231 description: Azoteq (Pty) Ltd
232 "^azw,.*":232 "^azw,.*":
233 description: Shenzhen AZW Technology Co., Ltd.233 description: Shenzhen AZW Technology Co., Ltd.
234 "^baijie,.*":
235 description: Shenzhen Baijie Technology Co., Ltd.
234 "^baikal,.*":236 "^baikal,.*":
235 description: BAIKAL ELECTRONICS, JSC237 description: BAIKAL ELECTRONICS, JSC
236 "^bananapi,.*":238 "^bananapi,.*":
arch/arm/boot/dts/allwinner/Makefile+5−0
@@ -182,6 +182,9 @@ dtb-$(CONFIG_MACH_SUN7I) += \ · 181 unmodified lines
182 sun7i-a20-wits-pro-a20-dkt.dtb182 sun7i-a20-wits-pro-a20-dkt.dtb
183 183
184# Enables support for device-tree overlays for all pis184# Enables support for device-tree overlays for all pis
185DTC_FLAGS_sun8i-h2-plus-bananapi-m2-zero := -@
186DTC_FLAGS_sun8i-h2-plus-libretech-all-h3-cc := -@
187DTC_FLAGS_sun8i-h2-plus-orangepi-r1 := -@
185DTC_FLAGS_sun8i-h2-plus-orangepi-zero := -@188DTC_FLAGS_sun8i-h2-plus-orangepi-zero := -@
186DTC_FLAGS_sun8i-h3-orangepi-lite := -@189DTC_FLAGS_sun8i-h3-orangepi-lite := -@
187DTC_FLAGS_sun8i-h3-bananapi-m2-plus := -@190DTC_FLAGS_sun8i-h3-bananapi-m2-plus := -@
@@ -201,6 +204,7 @@ DTC_FLAGS_sun8i-h3-orangepi-pc := -@ · 13 unmodified lines
201DTC_FLAGS_sun8i-h3-bananapi-m2-plus-v1.2 := -@204DTC_FLAGS_sun8i-h3-bananapi-m2-plus-v1.2 := -@
202DTC_FLAGS_sun8i-h3-orangepi-pc-plus := -@205DTC_FLAGS_sun8i-h3-orangepi-pc-plus := -@
203DTC_FLAGS_sun8i-t113s-netcube-nagami-basic-carrier := -@206DTC_FLAGS_sun8i-t113s-netcube-nagami-basic-carrier := -@
207DTC_FLAGS_sun8i-t113s-netcube-dobermann := -@
204DTC_FLAGS_sun8i-v3s-netcube-kumquat := -@208DTC_FLAGS_sun8i-v3s-netcube-kumquat := -@
205dtb-$(CONFIG_MACH_SUN8I) += \209dtb-$(CONFIG_MACH_SUN8I) += \
206 sun8i-a23-evb.dtb \210 sun8i-a23-evb.dtb \
@@ -261,6 +265,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \ · 54 unmodified lines
261 sun8i-s3-lichee-zero-plus.dtb \265 sun8i-s3-lichee-zero-plus.dtb \
262 sun8i-s3-pinecube.dtb \266 sun8i-s3-pinecube.dtb \
263 sun8i-t113s-mangopi-mq-r-t113.dtb \267 sun8i-t113s-mangopi-mq-r-t113.dtb \
268 sun8i-t113s-netcube-dobermann.dtb \
264 sun8i-t113s-netcube-nagami-basic-carrier.dtb \269 sun8i-t113s-netcube-nagami-basic-carrier.dtb \
265 sun8i-t113s-netcube-nagami-keypad-carrier.dtb \270 sun8i-t113s-netcube-nagami-keypad-carrier.dtb \
266 sun8i-t3-cqa3t-bv3.dtb \271 sun8i-t3-cqa3t-bv3.dtb \
arch/arm/boot/dts/allwinner/sun4i-a10-gemei-g9.dts+1−1
@@ -179,7 +179,7 @@ · 178 unmodified lines
179};179};
180 180
181 181
182&uart0 {182&uart0 {
183 pinctrl-names = "default";183 pinctrl-names = "default";
184 pinctrl-0 = <&uart0_pb_pins>;184 pinctrl-0 = <&uart0_pb_pins>;
185 status = "okay";185 status = "okay";
arch/arm/boot/dts/allwinner/sun4i-a10-inet1.dts+2−2
@@ -78,7 +78,7 @@ · 77 unmodified lines
78 cpu-supply = <&reg_dcdc2>;78 cpu-supply = <&reg_dcdc2>;
79};79};
80 80
81&ehci0 {81&ehci0 {
82 status = "okay";82 status = "okay";
83};83};
84 84
@@ -157,7 +157,7 @@ · 72 unmodified lines
157 status = "okay";157 status = "okay";
158};158};
159 159
160&ohci0 {160&ohci0 {
161 status = "okay";161 status = "okay";
162};162};
163 163
arch/arm/boot/dts/allwinner/sun4i-a10.dtsi+1−1
@@ -185,7 +185,7 @@ · 184 unmodified lines
185 185
186 pmu {186 pmu {
187 compatible = "arm,cortex-a8-pmu";187 compatible = "arm,cortex-a8-pmu";
188 interrupts = <3>;188 interrupts = <66>;
189 };189 };
190 190
191 reserved-memory {191 reserved-memory {
arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-duo2.dts+2−2
@@ -73,7 +73,7 @@ · 72 unmodified lines
73 enable-active-high;73 enable-active-high;
74 gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */74 gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */
75 vin-supply = <&reg_vcc5v0>;75 vin-supply = <&reg_vcc5v0>;
76 };76 };
77 77
78 reg_vdd_sys: vdd-sys {78 reg_vdd_sys: vdd-sys {
79 compatible = "regulator-fixed";79 compatible = "regulator-fixed";
@@ -85,7 +85,7 @@ · 5 unmodified lines
85 enable-active-high;85 enable-active-high;
86 gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */86 gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
87 vin-supply = <&reg_vcc5v0>;87 vin-supply = <&reg_vcc5v0>;
88 };88 };
89 89
90 wifi_pwrseq: pwrseq {90 wifi_pwrseq: pwrseq {
91 compatible = "mmc-pwrseq-simple";91 compatible = "mmc-pwrseq-simple";
arch/arm/boot/dts/allwinner/sun8i-t113s-netcube-dobermann.dts+149−0
@@ -0,0 +1,149 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (C) 2026 Lukas Schmid <lukas.schmid@netcube.li>
4 */
5
6/dts-v1/;
7#include "sun8i-t113s-netcube-nagami.dtsi"
8
9#include <dt-bindings/leds/common.h>
10
11/ {
12 model = "NetCube Systems OpenNMC (dobermann)";
13 compatible = "netcube,dobermann", "netcube,nagami",
14 "allwinner,sun8i-t113s";
15
16 aliases {
17 serial2 = &uart4; // UART on SmartSlot
18 rtc0 = &ds3232;
19 rtc1 = &rtc; // not battery backed
20 };
21
22 leds {
23 compatible = "gpio-leds";
24
25 led_heartbeat_green: led-heartbeat-green {
26 gpios = <&pio 6 14 GPIO_ACTIVE_HIGH>; /* PG14 */
27 linux,default-trigger = "heartbeat";
28 color = <LED_COLOR_ID_GREEN>;
29 function = LED_FUNCTION_HEARTBEAT;
30 };
31 };
32};
33
34&ehci0 {
35 status = "okay";
36};
37
38&ehci1 {
39 status = "okay";
40};
41
42&i2c2 {
43 status = "okay";
44
45 tusb320: typec@60 {
46 compatible = "ti,tusb320";
47 reg = <0x60>;
48 interrupts-extended = <&pio 3 22 IRQ_TYPE_LEVEL_LOW>; /* PD22 */
49 };
50
51 ds3232: rtc@68 {
52 compatible = "dallas,ds3232";
53 reg = <0x68>;
54 };
55};
56
57/* microSD Card Slot on the board */
58&mmc0 {
59 vmmc-supply = <&reg_vcc3v3>;
60 disable-wp;
61 bus-width = <4>;
62 cd-gpios = <&pio 6 15 GPIO_ACTIVE_LOW>; /* PG15 */
63 status = "okay";
64};
65
66&ohci0 {
67 status = "okay";
68};
69
70&ohci1 {
71 status = "okay";
72};
73
74&pio {
75 gpio-line-names = "", "", "", "", // PA
76 "", "", "", "",
77 "", "", "", "",
78 "", "", "", "",
79 "", "", "", "",
80 "", "", "", "",
81 "", "", "", "",
82 "", "", "", "",
83 "", "", "SMART_TX", "SMART_RX", // PB
84 "EXT_IO3", "EXT_IO2", "CONSOLE_TX", "CONSOLE_RX",
85 "", "", "", "",
86 "", "", "", "",
87 "", "", "", "",
88 "", "", "", "",
89 "", "", "", "",
90 "", "", "", "",
91 "", "", "eMMC_CLK", "eMMC_CMD", // PC
92 "eMMC_D2", "eMMC_D1", "eMMC_D0", "eMMC_D3",
93 "", "", "", "",
94 "", "", "", "",
95 "", "", "", "",
96 "", "", "", "",
97 "", "", "", "",
98 "", "", "", "",
99 "", "", "", "", // PD
100 "", "", "", "",
101 "", "USB_SEC_EN", "EXT_SPI_nCS", "EXT_SPI_SCK",
102 "EXT_SPI_MOSI", "EXT_SPI_MISO", "EXT_IO5", "EXT_IO4",
103 "SMART_SEL", "", "", "",
104 "I2C2_SCL", "I2C2_SDA", "TUSB320_nINT", "",
105 "", "", "", "",
106 "", "", "", "",
107 "ETH_CRSDV", "ETH_RXD0", "ETH_RXD1", "ETH_TXCK", // PE
108 "ETH_TXD0", "ETH_TXD1", "ETH_TXEN", "",
109 "ETH_MDC", "ETH_MDIO", "I2C3_nINT", "",
110 "", "", "", "",
111 "", "", "", "",
112 "", "", "", "",
113 "", "", "", "",
114 "", "", "", "",
115 "uSD_D1", "uSD_D0", "uSD_CLK", "uSD_CMD", // PF
116 "uSD_D3", "uSD_D2", "TUSB320_ID", "",
117 "", "", "", "",
118 "", "", "", "",
119 "", "", "", "",
120 "", "", "", "",
121 "", "", "", "",
122 "", "", "", "",
123 "ESP_CLK", "ESP_CMD", "ESP_D0", "ESP_D1", // PG
124 "ESP_D2", "ESP_D3", "ESP_TXD", "ESP_RXD",
125 "ESP_nBOOT", "ESP_nRST", "I2C3_SCL", "I2C3_SDA",
126 "EXT_IO1", "EXT_IO0", "LED_HEARTBEAT", "SD_DETECT",
127 "", "", "", "",
128 "", "", "", "",
129 "", "", "", "",
130 "", "", "", "";
131};
132
133/* SmartSlot serial */
134&uart4 {
135 pinctrl-0 = <&uart4_pb_pins>;
136 pinctrl-names = "default";
137 status = "okay";
138};
139
140&usb_otg {
141 extcon = <&tusb320 0>;
142 dr_mode = "otg";
143 status = "okay";
144};
145
146&usbphy {
147 usb0_id_det-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
148 status = "okay";
149};
arch/arm/boot/dts/allwinner/sun8i-t113s-netcube-nagami.dtsi+1−1
@@ -42,7 +42,7 @@ · 41 unmodified lines
42 };42 };
43 43
44 /* USB0 MUX to switch connect to Card-Edge only after BootROM */44 /* USB0 MUX to switch connect to Card-Edge only after BootROM */
45 usb0_sec_mux: mux-controller{45 usb0_sec_mux: mux-controller {
46 compatible = "gpio-mux";46 compatible = "gpio-mux";
47 #mux-control-cells = <0>;47 #mux-control-cells = <0>;
48 mux-gpios = <&pio 3 9 GPIO_ACTIVE_HIGH>; /* PD9 */48 mux-gpios = <&pio 3 9 GPIO_ACTIVE_HIGH>; /* PD9 */
arch/arm64/boot/dts/allwinner/Makefile+1−0
@@ -24,6 +24,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb · 23 unmodified lines
24dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb24dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
25dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h64-remix-mini-pc.dtb25dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h64-remix-mini-pc.dtb
26dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb26dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb
27dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a133-helperboard.dtb
27dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a133-liontron-h-a133l.dtb28dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a133-liontron-h-a133l.dtb
28dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus.dtb29dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus.dtb
29dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus-v1.2.dtb30dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus-v1.2.dtb
arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi+10−0
@@ -466,6 +466,16 @@ · 465 unmodified lines
466 #thermal-sensor-cells = <1>;466 #thermal-sensor-cells = <1>;
467 };467 };
468 468
469 lradc: lradc@5070800 {
470 compatible = "allwinner,sun50i-a100-lradc",
471 "allwinner,sun50i-r329-lradc";
472 reg = <0x05070800 0x400>;
473 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
474 clocks = <&ccu CLK_BUS_LRADC>;
475 resets = <&ccu RST_BUS_LRADC>;
476 status = "disabled";
477 };
478
469 usb_otg: usb@5100000 {479 usb_otg: usb@5100000 {
470 compatible = "allwinner,sun50i-a100-musb",480 compatible = "allwinner,sun50i-a100-musb",
471 "allwinner,sun8i-a33-musb";481 "allwinner,sun8i-a33-musb";
arch/arm64/boot/dts/allwinner/sun50i-a133-helperboard-core.dtsi+197−0
@@ -0,0 +1,197 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2025 Arm Ltd.
4 * Copyright (c) 2026 Alexander Sverdlin <alexander.sverdlin@gmail.com>
5 */
6
7/dts-v1/;
8
9#include "sun50i-a100.dtsi"
10#include "sun50i-a100-cpu-opp.dtsi"
11
12/{
13 model = "Baijie A133 HelperBoard Core";
14 compatible = "baijie,helperboard-a133-core",
15 "allwinner,sun50i-a100";
16
17 aliases {
18 serial1 = &uart1; /* BT module */
19 };
20};
21
22&cpu0 {
23 cpu-supply = <&reg_dcdc2>;
24};
25
26&lradc {
27 vref-supply = <&reg_aldo1>;
28};
29
30&mmc2 {
31 vmmc-supply = <&reg_dcdc1>;
32 vqmmc-supply = <&reg_eldo1>;
33 cap-mmc-highspeed;
34 cap-mmc-hw-reset;
35 max-frequency = <100000000>;
36 non-removable;
37 bus-width = <8>;
38 mmc-ddr-1_8v;
39 mmc-hs200-1_8v;
40 status = "okay";
41};
42
43&pio {
44 vcc-pb-supply = <&reg_dcdc1>;
45 vcc-pc-supply = <&reg_eldo1>;
46 vcc-pd-supply = <&reg_dcdc1>;
47 vcc-pe-supply = <&reg_dldo2>;
48 vcc-pf-supply = <&reg_dcdc1>;
49 vcc-pg-supply = <&reg_dldo1>;
50 vcc-ph-supply = <&reg_dcdc1>;
51 /*
52 * PL0/PL1 are the I2C connection to PMIC, but it would create a
53 * circular dependency:
54 * vcc-pl-supply = <&reg_aldo3>;
55 */
56};
57
58&r_i2c0 {
59 status = "okay";
60
61 axp803: pmic@34 {
62 compatible = "x-powers,axp803";
63 reg = <0x34>;
64 interrupt-parent = <&r_intc>;
65 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
66 x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */
67 aldoin-supply = <&reg_vdd5v>;
68 dldoin-supply = <&reg_vdd5v>;
69 eldoin-supply = <&reg_vdd5v>;
70 fldoin-supply = <&reg_dcdc5>;
71 vin1-supply = <&reg_vdd5v>;
72 vin2-supply = <&reg_vdd5v>;
73 vin3-supply = <&reg_vdd5v>;
74 vin4-supply = <&reg_vdd5v>;
75 vin5-supply = <&reg_vdd5v>;
76 vin6-supply = <&reg_vdd5v>;
77 drivevbus-supply = <&reg_vdd5v>;
78 };
79};
80
81#include "axp803.dtsi"
82
83&ac_power_supply {
84 status = "okay";
85};
86
87&reg_aldo1 {
88 /* PLL + LRADC analog reference */
89 regulator-always-on;
90 regulator-min-microvolt = <1800000>;
91 regulator-max-microvolt = <1800000>;
92 regulator-name = "vcc-pll";
93};
94
95&reg_aldo2 {
96 /* LPDDR */
97 regulator-always-on;
98 regulator-min-microvolt = <1800000>;
99 regulator-max-microvolt = <1800000>;
100 regulator-name = "vdd18-lpddr";
101};
102
103&reg_aldo3 {
104 /*
105 * Port L, but linking it to &pio node would create a circular
106 * dependency because of PL0/PL1 I2C connection to PMIC
107 */
108 regulator-always-on;
109 regulator-min-microvolt = <1800000>;
110 regulator-max-microvolt = <1800000>;
111 regulator-name = "vcc-pl";
112};
113
114&reg_dcdc1 {
115 /* Besides Port D it also powers analog part of USB IP and SoC I/O */
116 regulator-always-on;
117 regulator-min-microvolt = <3300000>;
118 regulator-max-microvolt = <3300000>;
119 regulator-name = "vcc-3v3";
120};
121
122&reg_dcdc2 {
123 regulator-always-on;
124 regulator-min-microvolt = <810000>;
125 regulator-max-microvolt = <1200000>;
126 regulator-name = "vdd-cpu";
127};
128
129/* DCDC3 is polyphased with DCDC2 */
130
131&reg_dcdc4 {
132 /* Digital part of USB IP, "System" SoC power rail */
133 regulator-always-on;
134 regulator-min-microvolt = <950000>;
135 regulator-max-microvolt = <950000>;
136 regulator-name = "vdd-sys";
137};
138
139&reg_dcdc5 {
140 regulator-always-on;
141 regulator-min-microvolt = <1100000>;
142 regulator-max-microvolt = <1100000>;
143 regulator-name = "vcc-dram";
144};
145
146/* DCDC6 unused */
147&reg_dcdc6 {
148 status = "disabled";
149};
150
151&reg_dldo1 {
152 regulator-min-microvolt = <1800000>;
153 regulator-max-microvolt = <1800000>;
154 regulator-name = "vcc-pg";
155};
156
157&reg_dldo2 {
158 regulator-min-microvolt = <1800000>;
159 regulator-max-microvolt = <1800000>;
160 regulator-name = "vcc-pe";
161};
162
163&reg_dldo3 {
164 regulator-min-microvolt = <2800000>;
165 regulator-max-microvolt = <2800000>;
166 regulator-name = "avdd-csi";
167};
168
169&reg_dldo4 {
170 regulator-min-microvolt = <2800000>;
171 regulator-max-microvolt = <2800000>;
172 regulator-name = "afvcc-csi";
173};
174
175&reg_eldo1 {
176 regulator-min-microvolt = <1800000>;
177 regulator-max-microvolt = <1800000>;
178 regulator-name = "vcc-pc";
179};
180
181&reg_eldo2 {
182 regulator-min-microvolt = <1200000>;
183 regulator-max-microvolt = <1200000>;
184 regulator-name = "dvdd-csi";
185};
186
187/* ELDO3 unused */
188
189&reg_fldo1 {
190 /* CPUS power rail */
191 regulator-always-on;
192 regulator-min-microvolt = <900000>;
193 regulator-max-microvolt = <900000>;
194 regulator-name = "vdd-cpus";
195};
196
197/* reg_drivevbus unused */
arch/arm64/boot/dts/allwinner/sun50i-a133-helperboard.dts+148−0
@@ -0,0 +1,148 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2025 Arm Ltd.
4 * Copyright (c) 2026 Alexander Sverdlin <alexander.sverdlin@gmail.com>
5 */
6
7/dts-v1/;
8
9#include "sun50i-a133-helperboard-core.dtsi"
10
11#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/input/linux-event-codes.h>
13#include <dt-bindings/leds/common.h>
14
15/{
16 model = "Baijie HelperBoard A133";
17 compatible = "baijie,helperboard-a133",
18 "baijie,helperboard-a133-core",
19 "allwinner,sun50i-a100";
20
21 aliases {
22 serial0 = &uart0;
23 };
24
25 chosen {
26 stdout-path = "serial0:115200n8";
27 };
28
29 leds {
30 compatible = "gpio-leds";
31
32 led {
33 function = LED_FUNCTION_INDICATOR;
34 color = <LED_COLOR_ID_GREEN>;
35 gpios = <&pio 7 13 GPIO_ACTIVE_LOW>; /* PH13 */
36 };
37 };
38
39 reg_vdd5v: vdd5v {
40 /* board wide 5V supply from a 12V->5V regulator */
41 compatible = "regulator-fixed";
42 regulator-name = "vdd-5v";
43 regulator-min-microvolt = <5000000>;
44 regulator-max-microvolt = <5000000>;
45 regulator-always-on;
46 };
47};
48
49&ehci1 {
50 status = "okay";
51};
52
53&emac0 {
54 pinctrl-names = "default";
55 pinctrl-0 = <&rgmii0_pins>;
56 phy-handle = <&rgmii_phy>;
57 phy-mode = "rgmii-id";
58 allwinner,rx-delay-ps = <200>;
59 allwinner,tx-delay-ps = <200>;
60 status = "okay";
61};
62
63&lradc {
64 wakeup-source;
65 status = "okay";
66
67 button-115 {
68 label = "K1";
69 linux,code = <KEY_1>;
70 channel = <0>;
71 voltage = <114607>;
72 };
73
74 button-235 {
75 label = "K2";
76 linux,code = <KEY_2>;
77 channel = <0>;
78 voltage = <234783>;
79 };
80
81 button-360 {
82 label = "K3";
83 linux,code = <KEY_3>;
84 channel = <0>;
85 voltage = <360000>;
86 };
87
88 button-476 {
89 label = "K4";
90 linux,code = <KEY_4>;
91 channel = <0>;
92 voltage = <476471>;
93 };
94
95 button-592 {
96 label = "K5";
97 linux,code = <KEY_5>;
98 channel = <0>;
99 voltage = <591946>;
100 };
101};
102
103&mdio0 {
104 reset-gpios = <&pio 7 11 GPIO_ACTIVE_LOW>; /* PH11 */
105 reset-delay-us = <10000>;
106 reset-post-delay-us = <150000>;
107
108 rgmii_phy: ethernet-phy@1 {
109 compatible = "ethernet-phy-ieee802.3-c22";
110 reg = <1>;
111 };
112};
113
114&mmc0 {
115 vmmc-supply = <&reg_dcdc1>;
116 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
117 bus-width = <4>;
118 disable-wp;
119 status = "okay";
120};
121
122&ohci1 {
123 status = "okay";
124};
125
126&rgmii0_pins {
127 drive-strength = <30>;
128};
129
130&uart0 {
131 pinctrl-names = "default";
132 pinctrl-0 = <&uart0_pb_pins>;
133 status = "okay";
134};
135
136&usb_otg {
137 /*
138 * Connected to a downstream port of an onboard hub, therefore only
139 * "peripheral" mode will work here.
140 */
141 dr_mode = "peripheral";
142 status = "okay";
143};
144
145&usbphy {
146 usb1_vbus-supply = <&reg_vdd5v>;
147 status = "okay";
148};
arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi+2−2
@@ -230,8 +230,8 @@ · 229 unmodified lines
230 interrupts = <7 5 IRQ_TYPE_EDGE_RISING>; /* PH5 */230 interrupts = <7 5 IRQ_TYPE_EDGE_RISING>; /* PH5 */
231 vdd-supply = <&reg_dldo1>;231 vdd-supply = <&reg_dldo1>;
232 vddio-supply = <&reg_dldo1>;232 vddio-supply = <&reg_dldo1>;
233 mount-matrix = "0", "1", "0",233 mount-matrix = "0", "-1", "0",
234 "-1", "0", "0",234 "1", "0", "0",
235 "0", "0", "1";235 "0", "0", "1";
236 };236 };
237};237};
arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi+1−1
@@ -49,7 +49,7 @@ · 48 unmodified lines
49 };49 };
50};50};
51 51
52&spi0 {52&spi0 {
53 status = "okay";53 status = "okay";
54 54
55 flash@0 {55 flash@0 {
arch/arm64/boot/dts/allwinner/sun50i-h5-libretech-all-h5-cc.dts+1−1
@@ -48,7 +48,7 @@ · 47 unmodified lines
48 };48 };
49};49};
50 50
51&spi0 {51&spi0 {
52 status = "okay";52 status = "okay";
53 53
54 flash@0 {54 flash@0 {
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts+1−1
@@ -191,7 +191,7 @@ · 190 unmodified lines
191 };191 };
192};192};
193 193
194&spi0 {194&spi0 {
195 status = "okay";195 status = "okay";
196 196
197 flash@0 {197 flash@0 {
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus.dts+1−1
@@ -103,7 +103,7 @@ · 102 unmodified lines
103 };103 };
104};104};
105 105
106&spi0 {106&spi0 {
107 status = "okay";107 status = "okay";
108 108
109 flash@0 {109 flash@0 {
arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi+1−1
@@ -99,7 +99,7 @@ · 98 unmodified lines
99 status = "okay";99 status = "okay";
100};100};
101 101
102&spi0 {102&spi0 {
103 status = "okay";103 status = "okay";
104 pinctrl-names = "default";104 pinctrl-names = "default";
105 pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>;105 pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>;
arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts+1−1
@@ -149,7 +149,7 @@ · 148 unmodified lines
149 };149 };
150};150};
151 151
152&spi0 {152&spi0 {
153 status = "okay";153 status = "okay";
154 pinctrl-names = "default";154 pinctrl-names = "default";
155 pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>;155 pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>;
arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi+43−0
@@ -155,6 +155,13 @@ · 154 unmodified lines
155 bias-disable;155 bias-disable;
156 };156 };
157 157
158 /omit-if-no-ref/
159 ir_rx_pin: ir-rx-pi-pin {
160 pins = "PI8";
161 allwinner,pinmux = <3>;
162 function = "cir_rx";
163 };
164
158 /omit-if-no-ref/165 /omit-if-no-ref/
159 ledc_ph_pin: ledc-ph-pin {166 ledc_ph_pin: ledc-ph-pin {
160 pins = "PH19";167 pins = "PH19";
@@ -216,6 +223,13 @@ · 55 unmodified lines
216 allwinner,pinmux = <2>;223 allwinner,pinmux = <2>;
217 };224 };
218 225
226 /omit-if-no-ref/
227 spdif_out_ph_pin: spdif-ph-pin {
228 pins = "PH7";
229 function = "spdif";
230 allwinner,pinmux = <4>;
231 };
232
219 /omit-if-no-ref/233 /omit-if-no-ref/
220 spdif_out_pi_pin: spdif-pi-pin {234 spdif_out_pi_pin: spdif-pi-pin {
221 pins = "PI10";235 pins = "PI10";
@@ -327,6 +341,17 @@ · 105 unmodified lines
327 #reset-cells = <1>;341 #reset-cells = <1>;
328 };342 };
329 343
344 ir: ir@2005000 {
345 compatible = "allwinner,sun55i-a523-ir",
346 "allwinner,sun6i-a31-ir";
347 reg = <0x02005000 0x400>;
348 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
349 clocks = <&ccu CLK_BUS_IR_RX>, <&ccu CLK_IR_RX>;
350 clock-names = "apb", "ir";
351 resets = <&ccu RST_BUS_IR_RX>;
352 status = "disabled";
353 };
354
330 ledc: led-controller@2008000 {355 ledc: led-controller@2008000 {
331 compatible = "allwinner,sun55i-a523-ledc",356 compatible = "allwinner,sun55i-a523-ledc",
332 "allwinner,sun50i-a100-ledc";357 "allwinner,sun50i-a100-ledc";
@@ -927,6 +952,24 @@ · 594 unmodified lines
927 allwinner,pinmux = <2>;952 allwinner,pinmux = <2>;
928 function = "r_i2c0";953 function = "r_i2c0";
929 };954 };
955
956 /omit-if-no-ref/
957 r_ir_rx_pin: r-ir-rx-pl-pin {
958 pins = "PL11";
959 allwinner,pinmux = <2>;
960 function = "s_cir_rx";
961 };
962 };
963
964 r_ir: ir@7040000 {
965 compatible = "allwinner,sun55i-a523-ir",
966 "allwinner,sun6i-a31-ir";
967 reg = <0x07040000 0x400>;
968 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
969 clocks = <&r_ccu CLK_BUS_R_IR_RX>, <&r_ccu CLK_R_IR_RX>;
970 clock-names = "apb", "ir";
971 resets = <&r_ccu RST_BUS_R_IR_RX>;
972 status = "disabled";
930 };973 };
931 974
932 pck600: power-controller@7060000 {975 pck600: power-controller@7060000 {
arch/arm64/boot/dts/allwinner/sun55i-h728-x96qpro+.dts+30−0
@@ -44,6 +44,24 @@ · 43 unmodified lines
44 vin-supply = <&reg_vcc5v>;44 vin-supply = <&reg_vcc5v>;
45 regulator-always-on;45 regulator-always-on;
46 };46 };
47
48 sound-spdif {
49 compatible = "simple-audio-card";
50 simple-audio-card,name = "spdif-out";
51
52 simple-audio-card,cpu {
53 sound-dai = <&spdif>;
54 };
55
56 simple-audio-card,codec {
57 sound-dai = <&spdif_out>;
58 };
59 };
60
61 spdif_out: spdif-out {
62 compatible = "linux,spdif-dit";
63 #sound-dai-cells = <0>;
64 };
47};65};
48 66
49&ehci0 {67&ehci0 {
@@ -266,6 +284,12 @@ · 216 unmodified lines
266 };284 };
267};285};
268 286
287&r_ir {
288 pinctrl-names = "default";
289 pinctrl-0 = <&r_ir_rx_pin>;
290 status = "okay";
291};
292
269&r_pio {293&r_pio {
270/*294/*
271 * Specifying the supply would create a circular dependency.295 * Specifying the supply would create a circular dependency.
@@ -275,6 +299,12 @@ · 3 unmodified lines
275 vcc-pm-supply = <&reg_aldo3>;299 vcc-pm-supply = <&reg_aldo3>;
276};300};
277 301
302&spdif {
303 pinctrl-names = "default";
304 pinctrl-0 = <&spdif_out_ph_pin>;
305 status = "okay";
306};
307
278&uart0 {308&uart0 {
279 pinctrl-names = "default";309 pinctrl-names = "default";
280 pinctrl-0 = <&uart0_pb_pins>;310 pinctrl-0 = <&uart0_pb_pins>;
arch/arm64/boot/dts/allwinner/sun55i-t527-avaota-a1.dts+7−1
@@ -100,6 +100,12 @@ · 99 unmodified lines
100 status = "okay";100 status = "okay";
101};101};
102 102
103&ir {
104 pinctrl-names = "default";
105 pinctrl-0 = <&ir_rx_pin>;
106 status = "okay";
107};
108
103&ledc {109&ledc {
104 pinctrl-names = "default";110 pinctrl-names = "default";
105 pinctrl-0 = <&ledc_ph_pin>;111 pinctrl-0 = <&ledc_ph_pin>;
@@ -403,7 +409,7 @@ · 297 unmodified lines
403 assigned-clock-rates = <32768>;409 assigned-clock-rates = <32768>;
404};410};
405 411
406&spi0 {412&spi0 {
407 pinctrl-names = "default";413 pinctrl-names = "default";
408 pinctrl-0 = <&spi0_pj_pins>, <&spi0_cs0_pj_pin>,414 pinctrl-0 = <&spi0_pj_pins>, <&spi0_cs0_pj_pin>,
409 <&spi0_hold_pj_pin>, <&spi0_wp_pj_pin>;415 <&spi0_hold_pj_pin>, <&spi0_wp_pj_pin>;
arch/arm64/boot/dts/allwinner/sun55i-t527-orangepi-4a.dts+1−1
@@ -400,7 +400,7 @@ · 399 unmodified lines
400 assigned-clock-rates = <32768>;400 assigned-clock-rates = <32768>;
401};401};
402 402
403&spi0 {403&spi0 {
404 pinctrl-names = "default";404 pinctrl-names = "default";
405 pinctrl-0 = <&spi0_pc_pins>, <&spi0_cs0_pc_pin>;405 pinctrl-0 = <&spi0_pc_pins>, <&spi0_cs0_pc_pin>;
406 status = "okay";406 status = "okay";
arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi+6−0
@@ -191,6 +191,12 @@ · 190 unmodified lines
191 pins = "PB6", "PB7";191 pins = "PB6", "PB7";
192 function = "uart3";192 function = "uart3";
193 };193 };
194
195 /omit-if-no-ref/
196 uart4_pb_pins: uart4-pb-pins {
197 pins = "PB2", "PB3";
198 function = "uart4";
199 };
194 };200 };
195 201
196 ccu: clock-controller@2001000 {202 ccu: clock-controller@2001000 {