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.
Unified · Split
| @@ -96,6 +96,12 @@ properties: · 95 unmodified lines | ||
| 96 | 96 | - const: allwinner,ba10-tvbox |
| 97 | 97 | - 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 | 105 | - description: BananaPi |
| 100 | 106 | items: |
| 101 | 107 | - const: lemaker,bananapi |
| @@ -598,6 +604,7 @@ properties: · 496 unmodified lines | ||
| 598 | 604 | - description: NetCube Systems Nagami SoM based boards |
| 599 | 605 | items: |
| 600 | 606 | - enum: |
| 607 | + - netcube,dobermann | |
| 601 | 608 | - netcube,nagami-basic-carrier |
| 602 | 609 | - netcube,nagami-keypad-carrier |
| 603 | 610 | - const: netcube,nagami |
| @@ -23,6 +23,7 @@ properties: · 22 unmodified lines | ||
| 23 | 23 | - const: allwinner,sun50i-r329-lradc |
| 24 | 24 | - items: |
| 25 | 25 | - enum: |
| 26 | + - allwinner,sun50i-a100-lradc | |
| 26 | 27 | - allwinner,sun50i-h616-lradc |
| 27 | 28 | - allwinner,sun20i-d1-lradc |
| 28 | 29 | - const: allwinner,sun50i-r329-lradc |
| @@ -16,9 +16,10 @@ allOf: · 15 unmodified lines | ||
| 16 | 16 | properties: |
| 17 | 17 | compatible: |
| 18 | 18 | oneOf: |
| 19 | − - const: allwinner,sun4i-a10-ir | |
| 20 | − - const: allwinner,sun5i-a13-ir | |
| 21 | − - const: allwinner,sun6i-a31-ir | |
| 19 | + - enum: | |
| 20 | + - allwinner,sun4i-a10-ir | |
| 21 | + - allwinner,sun5i-a13-ir | |
| 22 | + - allwinner,sun6i-a31-ir | |
| 22 | 23 | - items: |
| 23 | 24 | - enum: |
| 24 | 25 | - allwinner,suniv-f1c100s-ir |
| @@ -27,6 +28,7 @@ properties: · 2 unmodified lines | ||
| 27 | 28 | - allwinner,sun50i-a64-ir |
| 28 | 29 | - allwinner,sun50i-h6-ir |
| 29 | 30 | - allwinner,sun50i-h616-ir |
| 31 | + - allwinner,sun55i-a523-ir | |
| 30 | 32 | - const: allwinner,sun6i-a31-ir |
| 31 | 33 | |
| 32 | 34 | reg: |
| @@ -231,6 +231,8 @@ patternProperties: · 230 unmodified lines | ||
| 231 | 231 | description: Azoteq (Pty) Ltd |
| 232 | 232 | "^azw,.*": |
| 233 | 233 | description: Shenzhen AZW Technology Co., Ltd. |
| 234 | + "^baijie,.*": | |
| 235 | + description: Shenzhen Baijie Technology Co., Ltd. | |
| 234 | 236 | "^baikal,.*": |
| 235 | 237 | description: BAIKAL ELECTRONICS, JSC |
| 236 | 238 | "^bananapi,.*": |
| @@ -182,6 +182,9 @@ dtb-$(CONFIG_MACH_SUN7I) += \ · 181 unmodified lines | ||
| 182 | 182 | sun7i-a20-wits-pro-a20-dkt.dtb |
| 183 | 183 | |
| 184 | 184 | # Enables support for device-tree overlays for all pis |
| 185 | +DTC_FLAGS_sun8i-h2-plus-bananapi-m2-zero := -@ | |
| 186 | +DTC_FLAGS_sun8i-h2-plus-libretech-all-h3-cc := -@ | |
| 187 | +DTC_FLAGS_sun8i-h2-plus-orangepi-r1 := -@ | |
| 185 | 188 | DTC_FLAGS_sun8i-h2-plus-orangepi-zero := -@ |
| 186 | 189 | DTC_FLAGS_sun8i-h3-orangepi-lite := -@ |
| 187 | 190 | DTC_FLAGS_sun8i-h3-bananapi-m2-plus := -@ |
| @@ -201,6 +204,7 @@ DTC_FLAGS_sun8i-h3-orangepi-pc := -@ · 13 unmodified lines | ||
| 201 | 204 | DTC_FLAGS_sun8i-h3-bananapi-m2-plus-v1.2 := -@ |
| 202 | 205 | DTC_FLAGS_sun8i-h3-orangepi-pc-plus := -@ |
| 203 | 206 | DTC_FLAGS_sun8i-t113s-netcube-nagami-basic-carrier := -@ |
| 207 | +DTC_FLAGS_sun8i-t113s-netcube-dobermann := -@ | |
| 204 | 208 | DTC_FLAGS_sun8i-v3s-netcube-kumquat := -@ |
| 205 | 209 | dtb-$(CONFIG_MACH_SUN8I) += \ |
| 206 | 210 | sun8i-a23-evb.dtb \ |
| @@ -261,6 +265,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \ · 54 unmodified lines | ||
| 261 | 265 | sun8i-s3-lichee-zero-plus.dtb \ |
| 262 | 266 | sun8i-s3-pinecube.dtb \ |
| 263 | 267 | sun8i-t113s-mangopi-mq-r-t113.dtb \ |
| 268 | + sun8i-t113s-netcube-dobermann.dtb \ | |
| 264 | 269 | sun8i-t113s-netcube-nagami-basic-carrier.dtb \ |
| 265 | 270 | sun8i-t113s-netcube-nagami-keypad-carrier.dtb \ |
| 266 | 271 | sun8i-t3-cqa3t-bv3.dtb \ |
| @@ -179,7 +179,7 @@ · 178 unmodified lines | ||
| 179 | 179 | }; |
| 180 | 180 | |
| 181 | 181 | |
| 182 | −&uart0 { | |
| 182 | +&uart0 { | |
| 183 | 183 | pinctrl-names = "default"; |
| 184 | 184 | pinctrl-0 = <&uart0_pb_pins>; |
| 185 | 185 | status = "okay"; |
| @@ -78,7 +78,7 @@ · 77 unmodified lines | ||
| 78 | 78 | cpu-supply = <®_dcdc2>; |
| 79 | 79 | }; |
| 80 | 80 | |
| 81 | −&ehci0 { | |
| 81 | +&ehci0 { | |
| 82 | 82 | status = "okay"; |
| 83 | 83 | }; |
| 84 | 84 | |
| @@ -157,7 +157,7 @@ · 72 unmodified lines | ||
| 157 | 157 | status = "okay"; |
| 158 | 158 | }; |
| 159 | 159 | |
| 160 | −&ohci0 { | |
| 160 | +&ohci0 { | |
| 161 | 161 | status = "okay"; |
| 162 | 162 | }; |
| 163 | 163 | |
| @@ -185,7 +185,7 @@ · 184 unmodified lines | ||
| 185 | 185 | |
| 186 | 186 | pmu { |
| 187 | 187 | compatible = "arm,cortex-a8-pmu"; |
| 188 | − interrupts = <3>; | |
| 188 | + interrupts = <66>; | |
| 189 | 189 | }; |
| 190 | 190 | |
| 191 | 191 | reserved-memory { |
| @@ -73,7 +73,7 @@ · 72 unmodified lines | ||
| 73 | 73 | enable-active-high; |
| 74 | 74 | gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */ |
| 75 | 75 | vin-supply = <®_vcc5v0>; |
| 76 | − }; | |
| 76 | + }; | |
| 77 | 77 | |
| 78 | 78 | reg_vdd_sys: vdd-sys { |
| 79 | 79 | compatible = "regulator-fixed"; |
| @@ -85,7 +85,7 @@ · 5 unmodified lines | ||
| 85 | 85 | enable-active-high; |
| 86 | 86 | gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */ |
| 87 | 87 | vin-supply = <®_vcc5v0>; |
| 88 | − }; | |
| 88 | + }; | |
| 89 | 89 | |
| 90 | 90 | wifi_pwrseq: pwrseq { |
| 91 | 91 | compatible = "mmc-pwrseq-simple"; |
| @@ -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 = <®_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 | +}; | |
| @@ -42,7 +42,7 @@ · 41 unmodified lines | ||
| 42 | 42 | }; |
| 43 | 43 | |
| 44 | 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 | 46 | compatible = "gpio-mux"; |
| 47 | 47 | #mux-control-cells = <0>; |
| 48 | 48 | mux-gpios = <&pio 3 9 GPIO_ACTIVE_HIGH>; /* PD9 */ |
| @@ -24,6 +24,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb · 23 unmodified lines | ||
| 24 | 24 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb |
| 25 | 25 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h64-remix-mini-pc.dtb |
| 26 | 26 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb |
| 27 | +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a133-helperboard.dtb | |
| 27 | 28 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a133-liontron-h-a133l.dtb |
| 28 | 29 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus.dtb |
| 29 | 30 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus-v1.2.dtb |
| @@ -466,6 +466,16 @@ · 465 unmodified lines | ||
| 466 | 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 | 479 | usb_otg: usb@5100000 { |
| 470 | 480 | compatible = "allwinner,sun50i-a100-musb", |
| 471 | 481 | "allwinner,sun8i-a33-musb"; |
| @@ -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 = <®_dcdc2>; | |
| 24 | +}; | |
| 25 | + | |
| 26 | +&lradc { | |
| 27 | + vref-supply = <®_aldo1>; | |
| 28 | +}; | |
| 29 | + | |
| 30 | +&mmc2 { | |
| 31 | + vmmc-supply = <®_dcdc1>; | |
| 32 | + vqmmc-supply = <®_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 = <®_dcdc1>; | |
| 45 | + vcc-pc-supply = <®_eldo1>; | |
| 46 | + vcc-pd-supply = <®_dcdc1>; | |
| 47 | + vcc-pe-supply = <®_dldo2>; | |
| 48 | + vcc-pf-supply = <®_dcdc1>; | |
| 49 | + vcc-pg-supply = <®_dldo1>; | |
| 50 | + vcc-ph-supply = <®_dcdc1>; | |
| 51 | + /* | |
| 52 | + * PL0/PL1 are the I2C connection to PMIC, but it would create a | |
| 53 | + * circular dependency: | |
| 54 | + * vcc-pl-supply = <®_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 = <®_vdd5v>; | |
| 68 | + dldoin-supply = <®_vdd5v>; | |
| 69 | + eldoin-supply = <®_vdd5v>; | |
| 70 | + fldoin-supply = <®_dcdc5>; | |
| 71 | + vin1-supply = <®_vdd5v>; | |
| 72 | + vin2-supply = <®_vdd5v>; | |
| 73 | + vin3-supply = <®_vdd5v>; | |
| 74 | + vin4-supply = <®_vdd5v>; | |
| 75 | + vin5-supply = <®_vdd5v>; | |
| 76 | + vin6-supply = <®_vdd5v>; | |
| 77 | + drivevbus-supply = <®_vdd5v>; | |
| 78 | + }; | |
| 79 | +}; | |
| 80 | + | |
| 81 | +#include "axp803.dtsi" | |
| 82 | + | |
| 83 | +&ac_power_supply { | |
| 84 | + status = "okay"; | |
| 85 | +}; | |
| 86 | + | |
| 87 | +®_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 | +®_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 | +®_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 | +®_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 | +®_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 | +®_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 | +®_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 | +®_dcdc6 { | |
| 148 | + status = "disabled"; | |
| 149 | +}; | |
| 150 | + | |
| 151 | +®_dldo1 { | |
| 152 | + regulator-min-microvolt = <1800000>; | |
| 153 | + regulator-max-microvolt = <1800000>; | |
| 154 | + regulator-name = "vcc-pg"; | |
| 155 | +}; | |
| 156 | + | |
| 157 | +®_dldo2 { | |
| 158 | + regulator-min-microvolt = <1800000>; | |
| 159 | + regulator-max-microvolt = <1800000>; | |
| 160 | + regulator-name = "vcc-pe"; | |
| 161 | +}; | |
| 162 | + | |
| 163 | +®_dldo3 { | |
| 164 | + regulator-min-microvolt = <2800000>; | |
| 165 | + regulator-max-microvolt = <2800000>; | |
| 166 | + regulator-name = "avdd-csi"; | |
| 167 | +}; | |
| 168 | + | |
| 169 | +®_dldo4 { | |
| 170 | + regulator-min-microvolt = <2800000>; | |
| 171 | + regulator-max-microvolt = <2800000>; | |
| 172 | + regulator-name = "afvcc-csi"; | |
| 173 | +}; | |
| 174 | + | |
| 175 | +®_eldo1 { | |
| 176 | + regulator-min-microvolt = <1800000>; | |
| 177 | + regulator-max-microvolt = <1800000>; | |
| 178 | + regulator-name = "vcc-pc"; | |
| 179 | +}; | |
| 180 | + | |
| 181 | +®_eldo2 { | |
| 182 | + regulator-min-microvolt = <1200000>; | |
| 183 | + regulator-max-microvolt = <1200000>; | |
| 184 | + regulator-name = "dvdd-csi"; | |
| 185 | +}; | |
| 186 | + | |
| 187 | +/* ELDO3 unused */ | |
| 188 | + | |
| 189 | +®_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 */ | |
| @@ -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 = <®_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 = <®_vdd5v>; | |
| 147 | + status = "okay"; | |
| 148 | +}; | |
| @@ -230,8 +230,8 @@ · 229 unmodified lines | ||
| 230 | 230 | interrupts = <7 5 IRQ_TYPE_EDGE_RISING>; /* PH5 */ |
| 231 | 231 | vdd-supply = <®_dldo1>; |
| 232 | 232 | vddio-supply = <®_dldo1>; |
| 233 | − mount-matrix = "0", "1", "0", | |
| 234 | − "-1", "0", "0", | |
| 233 | + mount-matrix = "0", "-1", "0", | |
| 234 | + "1", "0", "0", | |
| 235 | 235 | "0", "0", "1"; |
| 236 | 236 | }; |
| 237 | 237 | }; |
| @@ -49,7 +49,7 @@ · 48 unmodified lines | ||
| 49 | 49 | }; |
| 50 | 50 | }; |
| 51 | 51 | |
| 52 | −&spi0 { | |
| 52 | +&spi0 { | |
| 53 | 53 | status = "okay"; |
| 54 | 54 | |
| 55 | 55 | flash@0 { |
| @@ -48,7 +48,7 @@ · 47 unmodified lines | ||
| 48 | 48 | }; |
| 49 | 49 | }; |
| 50 | 50 | |
| 51 | −&spi0 { | |
| 51 | +&spi0 { | |
| 52 | 52 | status = "okay"; |
| 53 | 53 | |
| 54 | 54 | flash@0 { |
| @@ -191,7 +191,7 @@ · 190 unmodified lines | ||
| 191 | 191 | }; |
| 192 | 192 | }; |
| 193 | 193 | |
| 194 | −&spi0 { | |
| 194 | +&spi0 { | |
| 195 | 195 | status = "okay"; |
| 196 | 196 | |
| 197 | 197 | flash@0 { |
| @@ -103,7 +103,7 @@ · 102 unmodified lines | ||
| 103 | 103 | }; |
| 104 | 104 | }; |
| 105 | 105 | |
| 106 | −&spi0 { | |
| 106 | +&spi0 { | |
| 107 | 107 | status = "okay"; |
| 108 | 108 | |
| 109 | 109 | flash@0 { |
| @@ -99,7 +99,7 @@ · 98 unmodified lines | ||
| 99 | 99 | status = "okay"; |
| 100 | 100 | }; |
| 101 | 101 | |
| 102 | −&spi0 { | |
| 102 | +&spi0 { | |
| 103 | 103 | status = "okay"; |
| 104 | 104 | pinctrl-names = "default"; |
| 105 | 105 | pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>; |
| @@ -149,7 +149,7 @@ · 148 unmodified lines | ||
| 149 | 149 | }; |
| 150 | 150 | }; |
| 151 | 151 | |
| 152 | −&spi0 { | |
| 152 | +&spi0 { | |
| 153 | 153 | status = "okay"; |
| 154 | 154 | pinctrl-names = "default"; |
| 155 | 155 | pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>; |
| @@ -155,6 +155,13 @@ · 154 unmodified lines | ||
| 155 | 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 | 165 | /omit-if-no-ref/ |
| 159 | 166 | ledc_ph_pin: ledc-ph-pin { |
| 160 | 167 | pins = "PH19"; |
| @@ -216,6 +223,13 @@ · 55 unmodified lines | ||
| 216 | 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 | 233 | /omit-if-no-ref/ |
| 220 | 234 | spdif_out_pi_pin: spdif-pi-pin { |
| 221 | 235 | pins = "PI10"; |
| @@ -327,6 +341,17 @@ · 105 unmodified lines | ||
| 327 | 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 | 355 | ledc: led-controller@2008000 { |
| 331 | 356 | compatible = "allwinner,sun55i-a523-ledc", |
| 332 | 357 | "allwinner,sun50i-a100-ledc"; |
| @@ -927,6 +952,24 @@ · 594 unmodified lines | ||
| 927 | 952 | allwinner,pinmux = <2>; |
| 928 | 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 | 975 | pck600: power-controller@7060000 { |
| @@ -44,6 +44,24 @@ · 43 unmodified lines | ||
| 44 | 44 | vin-supply = <®_vcc5v>; |
| 45 | 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 | 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 | 293 | &r_pio { |
| 270 | 294 | /* |
| 271 | 295 | * Specifying the supply would create a circular dependency. |
| @@ -275,6 +299,12 @@ · 3 unmodified lines | ||
| 275 | 299 | vcc-pm-supply = <®_aldo3>; |
| 276 | 300 | }; |
| 277 | 301 | |
| 302 | +&spdif { | |
| 303 | + pinctrl-names = "default"; | |
| 304 | + pinctrl-0 = <&spdif_out_ph_pin>; | |
| 305 | + status = "okay"; | |
| 306 | +}; | |
| 307 | + | |
| 278 | 308 | &uart0 { |
| 279 | 309 | pinctrl-names = "default"; |
| 280 | 310 | pinctrl-0 = <&uart0_pb_pins>; |
| @@ -100,6 +100,12 @@ · 99 unmodified lines | ||
| 100 | 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 | 109 | &ledc { |
| 104 | 110 | pinctrl-names = "default"; |
| 105 | 111 | pinctrl-0 = <&ledc_ph_pin>; |
| @@ -403,7 +409,7 @@ · 297 unmodified lines | ||
| 403 | 409 | assigned-clock-rates = <32768>; |
| 404 | 410 | }; |
| 405 | 411 | |
| 406 | −&spi0 { | |
| 412 | +&spi0 { | |
| 407 | 413 | pinctrl-names = "default"; |
| 408 | 414 | pinctrl-0 = <&spi0_pj_pins>, <&spi0_cs0_pj_pin>, |
| 409 | 415 | <&spi0_hold_pj_pin>, <&spi0_wp_pj_pin>; |
| @@ -400,7 +400,7 @@ · 399 unmodified lines | ||
| 400 | 400 | assigned-clock-rates = <32768>; |
| 401 | 401 | }; |
| 402 | 402 | |
| 403 | −&spi0 { | |
| 403 | +&spi0 { | |
| 404 | 404 | pinctrl-names = "default"; |
| 405 | 405 | pinctrl-0 = <&spi0_pc_pins>, <&spi0_cs0_pc_pin>; |
| 406 | 406 | status = "okay"; |
| @@ -191,6 +191,12 @@ · 190 unmodified lines | ||
| 191 | 191 | pins = "PB6", "PB7"; |
| 192 | 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 | 202 | ccu: clock-controller@2001000 { |