From 2626267ec5e1640a7aaaeb5379a5e65f7bc1a432 Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 6 May 2024 14:00:47 +0000 Subject: [PATCH] precompiled stuff --- ...s => sun20i-d1-mangopi-mq-pro.generic.dts} | 74 +- device-tree/sun20i-d1.dtsi | 68 +- precompiled-trees/README.md | 29 + .../6.8.0-31-allwinner-nezha.dtb | Bin 0 -> 25689 bytes .../6.8.0-31-allwinner-nezha.dts | 1374 +++++++++++++++++ .../6.8.0-31-allwinner-nezha.gpio | 32 + .../generic/6.8.0-31-generic.dtb | Bin 0 -> 22618 bytes .../generic/6.8.0-31-generic.dts | 231 +++ .../generic/6.8.0-31-generic.gpio | 32 + .../serial/6.8.0-31-mqpro-serial.dtb | Bin 0 -> 23018 bytes .../serial/6.8.0-31-mqpro-serial.dts | 1297 ++++++++++++++++ .../serial/6.8.0-31-mqpro-serial.gpio | 32 + precompiled-trees/spi/6.8.0-31-mqpro-spi.dtb | Bin 0 -> 22930 bytes precompiled-trees/spi/6.8.0-31-mqpro-spi.dts | 1290 ++++++++++++++++ precompiled-trees/spi/6.8.0-31-mqpro-spi.gpio | 32 + .../sunxi/6.8.0-31-mqpro-sunxi.dtb | Bin 0 -> 22002 bytes .../sunxi/6.8.0-31-mqpro-sunxi.dts | 1232 +++++++++++++++ .../sunxi/6.8.0-31-mqpro-sunxi.gpio | 32 + 18 files changed, 5745 insertions(+), 10 deletions(-) rename device-tree/{sun20i-d1-mangopi-mq-pro.dts => sun20i-d1-mangopi-mq-pro.generic.dts} (72%) create mode 100644 precompiled-trees/README.md create mode 100755 precompiled-trees/allwinner-nezha/6.8.0-31-allwinner-nezha.dtb create mode 100644 precompiled-trees/allwinner-nezha/6.8.0-31-allwinner-nezha.dts create mode 100644 precompiled-trees/allwinner-nezha/6.8.0-31-allwinner-nezha.gpio create mode 100644 precompiled-trees/generic/6.8.0-31-generic.dtb create mode 100644 precompiled-trees/generic/6.8.0-31-generic.dts create mode 100644 precompiled-trees/generic/6.8.0-31-generic.gpio create mode 100644 precompiled-trees/serial/6.8.0-31-mqpro-serial.dtb create mode 100644 precompiled-trees/serial/6.8.0-31-mqpro-serial.dts create mode 100644 precompiled-trees/serial/6.8.0-31-mqpro-serial.gpio create mode 100644 precompiled-trees/spi/6.8.0-31-mqpro-spi.dtb create mode 100644 precompiled-trees/spi/6.8.0-31-mqpro-spi.dts create mode 100644 precompiled-trees/spi/6.8.0-31-mqpro-spi.gpio create mode 100644 precompiled-trees/sunxi/6.8.0-31-mqpro-sunxi.dtb create mode 100644 precompiled-trees/sunxi/6.8.0-31-mqpro-sunxi.dts create mode 100644 precompiled-trees/sunxi/6.8.0-31-mqpro-sunxi.gpio diff --git a/device-tree/sun20i-d1-mangopi-mq-pro.dts b/device-tree/sun20i-d1-mangopi-mq-pro.generic.dts similarity index 72% rename from device-tree/sun20i-d1-mangopi-mq-pro.dts rename to device-tree/sun20i-d1-mangopi-mq-pro.generic.dts index a7149ba..c62d121 100644 --- a/device-tree/sun20i-d1-mangopi-mq-pro.dts +++ b/device-tree/sun20i-d1-mangopi-mq-pro.generic.dts @@ -5,6 +5,7 @@ #include #include +#include #include "sun20i-d1.dtsi" #include "sun20i-d1-common-regulators.dtsi" @@ -16,7 +17,6 @@ aliases { ethernet0 = &rtl8723ds; mmc0 = &mmc0; - serial0 = &uart0; }; chosen { @@ -34,14 +34,14 @@ }; }; - leds { - compatible = "pwm-leds"; - led { + leds { + compatible = "gpio-leds"; + + led-0 { color = ; function = LED_FUNCTION_STATUS; - max-brightness = <255>; - pwms = <&pwm 2 50000 0>; + gpios = <&pio 3 18 GPIO_ACTIVE_HIGH>; /* PD18 */ }; }; @@ -138,6 +138,36 @@ vcc-pe-supply = <®_avdd2v8>; }; +&spi1 { + pinctrl-0 = <&spi1_pd_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&i2c0 { + pinctrl-0 = <&i2c0_pg12_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +/*&i2c1 { + pinctrl-0 = <&i2c1_pb4_pins>; + pinctrl-names = "default"; + status = "okay"; +};*/ + +/*&i2c2 { + pinctrl-0 = <&i2c2_pc0_pins>; + pinctrl-names = "default"; + status = "okay"; +};*/ + +&i2c3 { + pinctrl-0 = <&i2c3_pe16_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + &uart0 { pinctrl-0 = <&uart0_pb8_pins>; pinctrl-names = "default"; @@ -158,6 +188,38 @@ }; }; +&uart2 { + pinctrl-0 = <&uart2_pc0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +/*&uart3 { + uart-has-rtscts; + pinctrl-0 = <&uart3_pd10_pins>, <&uart3_pd13_rts_cts_pins>; + pinctrl-names = "default"; + status = "okay"; +};*/ + +&uart4 { + pinctrl-0 = <&uart4_pb2_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +/*&uart5 { + pinctrl-0 = <&uart5_pb4_pins>; + pinctrl-names = "default"; + status = "okay"; +};*/ + +&pwm { + //pinctrl-0 = <&pwm0_pb12_pin>, <&pwm2_pd18_pin>; + pinctrl-0 = <&pwm0_pb12_pin>; + pinctrl-names = "default"; + status = "okay"; +}; + &usb_otg { dr_mode = "peripheral"; status = "okay"; diff --git a/device-tree/sun20i-d1.dtsi b/device-tree/sun20i-d1.dtsi index e218c9d..026a073 100644 --- a/device-tree/sun20i-d1.dtsi +++ b/device-tree/sun20i-d1.dtsi @@ -132,17 +132,29 @@ }; /omit-if-no-ref/ - i2c0_pb10_pins: i2c0-pb10-pins { - pins = "PB10", "PB11"; + i2c0_pg12_pins: i2c0-pg12-pins { + pins = "PG12", "PG13"; function = "i2c0"; }; /omit-if-no-ref/ - i2c2_pb0_pins: i2c2-pb0-pins { - pins = "PB0", "PB1"; + i2c1_pb4_pins: i2c1-pb4-pins { + pins = "PB4", "PB5"; + function = "i2c1"; + }; + + /omit-if-no-ref/ + i2c2_pc0_pins: i2c2-pc0-pins { + pins = "PC0", "PC1"; function = "i2c2"; }; + /omit-if-no-ref/ + i2c3_pe16_pins: i2c3-pe16-pins { + pins = "PE16", "PE17"; + function = "i2c3"; + }; + /omit-if-no-ref/ lcd_rgb666_pins: lcd-rgb666-pins { pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", @@ -191,6 +203,18 @@ function = "emac"; }; + /omit-if-no-ref/ + pwm0_pb5_pin: pwm0-pb5-pin { + pins = "PB5"; + function = "pwm0"; + }; + + /omit-if-no-ref/ + pwm0_pb12_pin: pwm0-pb12-pin { + pins = "PB12"; + function = "pwm0"; + }; + /omit-if-no-ref/ pwm0_pd16_pin: pwm0-pd16-pin { pins = "PD16"; @@ -250,6 +274,42 @@ pins = "PG8", "PG9"; function = "uart1"; }; + + /omit-if-no-ref/ + uart2_pb0_pins: uart2-pb0-pins { + pins = "PB0", "PB1"; + function = "uart2"; + }; + + /omit-if-no-ref/ + uart2_pc0_pins: uart2-pc0-pins { + pins = "PC0", "PC1"; + function = "uart2"; + }; + + /omit-if-no-ref/ + uart3_pd10_pins: uart3-pd10-pins { + pins = "PD10", "PD11"; + function = "uart3"; + }; + + /omit-if-no-ref/ + uart3_pd13_rts_cts_pins: uart3-pd13-rts-cts-pins { + pins = "PD13", "PD14"; + function = "uart3"; + }; + + /omit-if-no-ref/ + uart4_pb2_pins: uart4-pb2-pins { + pins = "PB2", "PB3"; + function = "uart4"; + }; + + /omit-if-no-ref/ + uart5_pb4_pins: uart5-pb4-pins { + pins = "PB4", "PB5"; + function = "uart5"; + }; }; pwm: pwm@2000c00 { diff --git a/precompiled-trees/README.md b/precompiled-trees/README.md new file mode 100644 index 0000000..6638486 --- /dev/null +++ b/precompiled-trees/README.md @@ -0,0 +1,29 @@ +# Precompiled device trees: +Each folder contains a `.dtb` file, which is the compiled device tree itself, plus a `.dts` with the original source and a `.gpio` file showing the GPIO pin mappings. + +## Generic +[./generic](The generic device tree I will use in my project, suitable for many occasions) +* Has 2x UART (plus the console uart), 2x I2C. 1xSPI +* 12 unassigned GPIO pins + +## Serial +[./serial](Four UART interfaces *and* Four I2C interfaces) +* Has 4x UART (plus the console uart), 4x I2C +* UART3 has RTC/CTS pins available too +* 10 unassigned GPIO pins + +## SPI +[./spi](SPI plus Serial interfaces) +* Has 3x UART (plus the console uart), 3x I2C. 1xSPI +* 8 unassigned GPIO pins + +## SunXI +[./sunxi](Vanilla, unpopulated, upstream) +* Has the console uart, nothing more +* *26 unassigned GPIO pins!* + +## AllWinner Nezha +[./allwinner-nezha](DO NOT USE) +* Included for completeness, this is the default device tree you get with the Ubuntu image. +* Has the console uart, 1x I2C. 1xSPI +* 15 unassigned GPIO pins, 3 pre-assigned to pinctl diff --git a/precompiled-trees/allwinner-nezha/6.8.0-31-allwinner-nezha.dtb b/precompiled-trees/allwinner-nezha/6.8.0-31-allwinner-nezha.dtb new file mode 100755 index 0000000000000000000000000000000000000000..7ab70006a82ee9a884066e89c16ade755d8261b7 GIT binary patch literal 25689 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 literal 0 HcmV?d00001 diff --git a/precompiled-trees/allwinner-nezha/6.8.0-31-allwinner-nezha.dts b/precompiled-trees/allwinner-nezha/6.8.0-31-allwinner-nezha.dts new file mode 100644 index 0000000..6ebcff3 --- /dev/null +++ b/precompiled-trees/allwinner-nezha/6.8.0-31-allwinner-nezha.dts @@ -0,0 +1,1374 @@ +/dts-v1/; + +/ { + #address-cells = <0x01>; + model = "Allwinner D1 Nezha"; + #size-cells = <0x01>; + compatible = "allwinner,d1-nezha\0allwinner,sun20i-d1"; + + connector { + type = "a"; + compatible = "hdmi-connector"; + + port { + + endpoint { + remote-endpoint = <0x40>; + phandle = <0x35>; + }; + }; + }; + + vdd-cpu { + regulator-max-microvolt = <0x11b340>; + regulator-min-microvolt = <0xc5c10>; + regulator-name = "vdd-cpu"; + compatible = "pwm-regulator"; + phandle = <0x3c>; + pwms = <0x41 0x00 0xc350 0x00>; + pwm-supply = <0x18>; + }; + + wifi-pwrseq { + reset-gpios = <0x0e 0x06 0x0c 0x01>; + compatible = "mmc-pwrseq-simple"; + phandle = <0x12>; + }; + + thermal-zones { + + cpu-thermal { + polling-delay = <0x00>; + polling-delay-passive = <0x00>; + thermal-sensors = <0x3d>; + + trips { + + cpu-crit { + temperature = <0x1adb0>; + hysteresis = <0x00>; + type = "critical"; + }; + + cpu-target { + temperature = <0x14c08>; + hysteresis = <0xbb8>; + type = "passive"; + phandle = <0x3e>; + }; + }; + + cooling-maps { + + map0 { + trip = <0x3e>; + cooling-device = <0x3f 0xffffffff 0xffffffff>; + }; + }; + }; + }; + + soc { + #address-cells = <0x01>; + dma-noncoherent; + #size-cells = <0x01>; + interrupt-parent = <0x03>; + compatible = "simple-bus"; + ranges; + + watchdog@20500a0 { + clock-names = "hosc\0losc"; + interrupts = <0x4f 0x04>; + clocks = <0x05 0x06 0x00>; + compatible = "allwinner,sun20i-d1-wdt-reset\0allwinner,sun20i-d1-wdt"; + status = "reserved"; + reg = <0x20500a0 0x20>; + }; + + serial@2501000 { + reg-io-width = <0x04>; + resets = <0x04 0x16>; + interrupts = <0x16 0x04>; + clocks = <0x04 0x42>; + dma-names = "tx\0rx"; + compatible = "snps,dw-apb-uart"; + status = "disabled"; + reg = <0x2501000 0x400>; + dmas = <0x09 0x12 0x09 0x12>; + reg-shift = <0x02>; + }; + + hdmi@5500000 { + reg-io-width = <0x01>; + phy-names = "phy"; + clock-names = "iahb\0isfr\0cec"; + hvcc-supply = <0x33>; + resets = <0x04 0x31>; + interrupts = <0x6d 0x04>; + clocks = <0x04 0x6d 0x04 0x6a 0x04 0x6c>; + compatible = "allwinner,sun20i-d1-dw-hdmi"; + status = "okay"; + phys = <0x32>; + reg = <0x5500000 0x10000>; + reset-names = "ctrl"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint { + remote-endpoint = <0x34>; + phandle = <0x29>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x35>; + phandle = <0x40>; + }; + }; + }; + }; + + syscon@3000000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "allwinner,sun20i-d1-system-control"; + ranges; + reg = <0x3000000 0x1000>; + phandle = <0x19>; + + regulators@3000150 { + compatible = "allwinner,sun20i-d1-system-ldos"; + reg = <0x3000150 0x04>; + + ldob { + }; + + ldoa { + regulator-max-microvolt = <0x1b7740>; + regulator-always-on; + ldo-in-supply = <0x07>; + regulator-min-microvolt = <0x1b7740>; + phandle = <0x33>; + }; + }; + }; + + mmc@4022000 { + mmc-ddr-3_3v; + #address-cells = <0x01>; + clock-names = "ahb\0mmc"; + no-sdio; + resets = <0x04 0x11>; + interrupts = <0x3a 0x04>; + clocks = <0x04 0x3d 0x04 0x3a>; + #size-cells = <0x00>; + no-sd; + mmc-ddr-1_8v; + compatible = "allwinner,sun20i-d1-emmc\0allwinner,sun50i-a100-emmc"; + status = "disabled"; + reg = <0x4022000 0x1000>; + max-frequency = <0x8f0d180>; + cap-mmc-highspeed; + reset-names = "ahb"; + }; + + i2c@2502000 { + #address-cells = <0x01>; + resets = <0x04 0x18>; + interrupts = <0x19 0x04>; + clocks = <0x04 0x44>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c"; + status = "disabled"; + reg = <0x2502000 0x400>; + dmas = <0x09 0x2b 0x09 0x2b>; + }; + + mixer@5100000 { + clock-names = "bus\0mod"; + resets = <0x1c 0x00>; + clocks = <0x1c 0x00 0x1c 0x06>; + compatible = "allwinner,sun20i-d1-de2-mixer-0"; + reg = <0x5100000 0x100000>; + phandle = <0x01>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x1d>; + phandle = <0x22>; + }; + }; + }; + }; + + crypto@3040000 { + clock-names = "bus\0mod\0ram\0trng"; + resets = <0x04 0x04>; + interrupts = <0x44 0x04>; + clocks = <0x04 0x22 0x04 0x21 0x04 0x32 0x06 0x02>; + compatible = "allwinner,sun20i-d1-crypto"; + reg = <0x3040000 0x800>; + }; + + can@2504000 { + pinctrl-names = "default"; + pinctrl-0 = <0x0f>; + resets = <0x04 0x42>; + interrupts = <0x25 0x04>; + clocks = <0x04 0x91>; + compatible = "allwinner,sun20i-d1-can"; + status = "disabled"; + reg = <0x2504000 0x400>; + }; + + usb@4101400 { + phy-names = "usb"; + resets = <0x04 0x2a>; + interrupts = <0x2f 0x04>; + clocks = <0x04 0x63 0x04 0x61>; + compatible = "allwinner,sun20i-d1-ohci\0generic-ohci"; + status = "okay"; + phys = <0x16 0x00>; + reg = <0x4101400 0x100>; + }; + + dmic@2031000 { + clock-names = "bus\0mod"; + resets = <0x04 0x26>; + interrupts = <0x28 0x04>; + clocks = <0x04 0x5d 0x04 0x5c>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-dmic\0allwinner,sun50i-h6-dmic"; + status = "disabled"; + reg = <0x2031000 0x400>; + dmas = <0x09 0x08>; + }; + + serial@2500400 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x0b 0x0c>; + resets = <0x04 0x13>; + interrupts = <0x13 0x04>; + clocks = <0x04 0x3f>; + uart-has-rtscts; + dma-names = "tx\0rx"; + compatible = "snps,dw-apb-uart"; + status = "okay"; + reg = <0x2500400 0x400>; + dmas = <0x09 0x0f 0x09 0x0f>; + reg-shift = <0x02>; + }; + + dsi@5450000 { + phy-names = "dphy"; + clock-names = "bus\0mod"; + resets = <0x04 0x33>; + interrupts = <0x6c 0x04>; + clocks = <0x04 0x6f 0x1f 0x02>; + compatible = "allwinner,sun20i-d1-mipi-dsi\0allwinner,sun50i-a100-mipi-dsi"; + status = "disabled"; + phys = <0x20>; + reg = <0x5450000 0x1000>; + + port { + + endpoint { + remote-endpoint = <0x21>; + phandle = <0x2c>; + }; + }; + }; + + spi@4025000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x14>; + clock-names = "ahb\0mod"; + resets = <0x04 0x1c>; + interrupts = <0x1f 0x04>; + clocks = <0x04 0x4a 0x04 0x48>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-spi\0allwinner,sun50i-r329-spi"; + status = "okay"; + reg = <0x4025000 0x1000>; + dmas = <0x09 0x16 0x09 0x16>; + + flash@0 { + compatible = "spi-nand"; + reg = <0x00>; + + partitions { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "fixed-partitions"; + + partition@100000 { + label = "uboot"; + reg = <0x100000 0x300000>; + }; + + partition@0 { + label = "boot0"; + reg = <0x00 0x100000>; + }; + + partition@500000 { + label = "sys"; + reg = <0x500000 0xfb00000>; + }; + + partition@400000 { + label = "secure_storage"; + reg = <0x400000 0x100000>; + }; + }; + }; + }; + + watchdog@1700400 { + clock-names = "hosc\0losc"; + interrupts = <0x8a 0x04>; + clocks = <0x05 0x06 0x00>; + compatible = "allwinner,sun20i-d1-wdt"; + status = "reserved"; + reg = <0x1700400 0x20>; + }; + + dram-controller@3102000 { + dma-ranges = <0x00 0x40000000 0x80000000>; + #address-cells = <0x01>; + clock-names = "mbus\0dram\0bus"; + reg-names = "mbus\0dram"; + interrupts = <0x3b 0x04>; + clocks = <0x04 0x1a 0x04 0x2f 0x04 0x37>; + #interconnect-cells = <0x01>; + #size-cells = <0x01>; + compatible = "allwinner,sun20i-d1-mbus"; + reg = <0x3102000 0x1000 0x3103000 0x1000>; + }; + + i2s@2032000 { + clock-names = "apb\0mod"; + resets = <0x04 0x22>; + interrupts = <0x2a 0x04>; + clocks = <0x04 0x56 0x04 0x52>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-i2s\0allwinner,sun50i-r329-i2s"; + status = "disabled"; + reg = <0x2032000 0x1000>; + dmas = <0x09 0x03 0x09 0x03>; + }; + + interrupt-controller@10000000 { + #address-cells = <0x00>; + interrupts-extended = <0x31 0x0b 0x31 0x09>; + compatible = "allwinner,sun20i-d1-plic\0thead,c900-plic"; + #interrupt-cells = <0x02>; + reg = <0x10000000 0x4000000>; + phandle = <0x03>; + riscv,ndev = <0xaf>; + interrupt-controller; + }; + + clock-controller@7010000 { + #reset-cells = <0x01>; + clock-names = "hosc\0losc\0iosc\0pll-periph"; + clocks = <0x05 0x06 0x00 0x06 0x02 0x04 0x06>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-r-ccu"; + reg = <0x7010000 0x400>; + phandle = <0x30>; + }; + + clock-controller@2001000 { + #reset-cells = <0x01>; + clock-names = "hosc\0losc\0iosc"; + clocks = <0x05 0x06 0x00 0x06 0x02>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-ccu"; + reg = <0x2001000 0x1000>; + phandle = <0x04>; + }; + + ethernet@4500000 { + syscon = <0x19>; + pinctrl-names = "default"; + phy-supply = <0x07>; + phy-mode = "rgmii-id"; + pinctrl-0 = <0x1a>; + clock-names = "stmmaceth"; + local-mac-address = [a2 15 3e 60 a7 ed]; + resets = <0x04 0x1e>; + interrupts = <0x3e 0x04>; + clocks = <0x04 0x4d>; + compatible = "allwinner,sun20i-d1-emac\0allwinner,sun50i-a64-emac"; + status = "okay"; + interrupt-names = "macirq"; + reg = <0x4500000 0x10000>; + phy-handle = <0x1b>; + reset-names = "stmmaceth"; + + mdio { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,dwmac-mdio"; + + ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x01>; + phandle = <0x1b>; + }; + }; + }; + + serial@2500c00 { + reg-io-width = <0x04>; + resets = <0x04 0x15>; + interrupts = <0x15 0x04>; + clocks = <0x04 0x41>; + dma-names = "tx\0rx"; + compatible = "snps,dw-apb-uart"; + status = "disabled"; + reg = <0x2500c00 0x400>; + dmas = <0x09 0x11 0x09 0x11>; + reg-shift = <0x02>; + }; + + pwm@2000c00 { + pinctrl-names = "default"; + pinctrl-0 = <0x08>; + clock-names = "bus\0hosc\0apb0"; + resets = <0x04 0x0d>; + clocks = <0x04 0x2d 0x05 0x04 0x18>; + #pwm-cells = <0x03>; + compatible = "allwinner,sun20i-d1-pwm"; + status = "okay"; + reg = <0x2000c00 0x400>; + phandle = <0x41>; + }; + + temperature-sensor@2009400 { + vref-supply = <0x38>; + nvmem-cells = <0x37>; + clock-names = "bus\0mod"; + resets = <0x04 0x21>; + interrupts = <0x4a 0x04>; + clocks = <0x04 0x51 0x05>; + #thermal-sensor-cells = <0x00>; + compatible = "allwinner,sun20i-d1-ths"; + nvmem-cell-names = "calibration"; + reg = <0x2009400 0x400>; + phandle = <0x3d>; + }; + + usb@4200400 { + phy-names = "usb"; + resets = <0x04 0x2b>; + interrupts = <0x32 0x04>; + clocks = <0x04 0x64 0x04 0x62>; + compatible = "allwinner,sun20i-d1-ohci\0generic-ohci"; + status = "okay"; + phys = <0x16 0x01>; + reg = <0x4200400 0x100>; + }; + + power-controller@7001000 { + resets = <0x30 0x02>; + clocks = <0x30 0x04>; + #power-domain-cells = <0x01>; + compatible = "allwinner,sun20i-d1-ppu"; + reg = <0x7001000 0x1000>; + }; + + usb@4101000 { + phy-names = "usb"; + resets = <0x04 0x2a 0x04 0x2c>; + interrupts = <0x2e 0x04>; + clocks = <0x04 0x63 0x04 0x65 0x04 0x61>; + compatible = "allwinner,sun20i-d1-ehci\0generic-ehci"; + status = "okay"; + phys = <0x16 0x00>; + reg = <0x4101000 0x100>; + }; + + serial@2500000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x0a>; + resets = <0x04 0x12>; + interrupts = <0x12 0x04>; + clocks = <0x04 0x3e>; + dma-names = "tx\0rx"; + compatible = "snps,dw-apb-uart"; + status = "okay"; + reg = <0x2500000 0x400>; + dmas = <0x09 0x0e 0x09 0x0e>; + reg-shift = <0x02>; + }; + + efuse@3006000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "allwinner,sun20i-d1-sid"; + reg = <0x3006000 0x1000>; + + bg-trim@28 { + bits = <0x10 0x08>; + reg = <0x28 0x04>; + phandle = <0x3a>; + }; + + ths-calib@14 { + reg = <0x14 0x04>; + phandle = <0x37>; + }; + }; + + mmc@4021000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x13>; + clock-names = "ahb\0mmc"; + cap-sd-highspeed; + vqmmc-supply = <0x07>; + no-mmc; + bus-width = <0x04>; + non-removable; + resets = <0x04 0x10>; + interrupts = <0x39 0x04>; + clocks = <0x04 0x3c 0x04 0x39>; + #size-cells = <0x00>; + vmmc-supply = <0x07>; + compatible = "allwinner,sun20i-d1-mmc"; + status = "okay"; + mmc-pwrseq = <0x12>; + reg = <0x4021000 0x1000>; + max-frequency = <0x8f0d180>; + reset-names = "ahb"; + + wifi@1 { + interrupts = <0x06 0x0a 0x08>; + interrupt-parent = <0x0e>; + interrupt-names = "host-wake"; + reg = <0x01>; + }; + }; + + clock-controller@5000000 { + #reset-cells = <0x01>; + clock-names = "bus\0mod"; + resets = <0x04 0x01>; + clocks = <0x04 0x1c 0x04 0x1b>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-de2-clk\0allwinner,sun50i-h5-de2-clk"; + reg = <0x5000000 0x10000>; + phandle = <0x1c>; + }; + + lcd-controller@5470000 { + clock-names = "ahb\0tcon-ch1"; + resets = <0x04 0x35>; + interrupts = <0x6b 0x04>; + clocks = <0x04 0x73 0x1f 0x00>; + compatible = "allwinner,sun20i-d1-tcon-tv"; + reg = <0x5470000 0x1000>; + reset-names = "lcd"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x2e>; + reg = <0x01>; + phandle = <0x27>; + }; + + endpoint@0 { + remote-endpoint = <0x2d>; + reg = <0x00>; + phandle = <0x24>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x2f>; + phandle = <0x28>; + }; + }; + }; + }; + + i2s@2034000 { + clock-names = "apb\0mod"; + resets = <0x04 0x24>; + interrupts = <0x2c 0x04>; + clocks = <0x04 0x58 0x04 0x54>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-i2s\0allwinner,sun50i-r329-i2s"; + status = "disabled"; + reg = <0x2034000 0x1000>; + dmas = <0x09 0x05 0x09 0x05>; + }; + + usb@4200000 { + phy-names = "usb"; + resets = <0x04 0x2b 0x04 0x2d>; + interrupts = <0x31 0x04>; + clocks = <0x04 0x64 0x04 0x66 0x04 0x62>; + compatible = "allwinner,sun20i-d1-ehci\0generic-ehci"; + status = "okay"; + phys = <0x16 0x01>; + reg = <0x4200000 0x100>; + }; + + rtc@7090000 { + clock-names = "bus\0hosc\0ahb"; + interrupts = <0xa0 0x04>; + clocks = <0x30 0x07 0x05 0x30 0x00>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-rtc\0allwinner,sun50i-r329-rtc"; + reg = <0x7090000 0x400>; + phandle = <0x06>; + }; + + i2c@2502800 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x0d>; + resets = <0x04 0x1a>; + interrupts = <0x1b 0x04>; + clocks = <0x04 0x46>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c"; + status = "okay"; + reg = <0x2502800 0x400>; + dmas = <0x09 0x2d 0x09 0x2d>; + + gpio@38 { + gpio-controller; + gpio-line-names = "pin13 [gpio8]\0pin16 [gpio10]\0pin18 [gpio11]\0pin26 [gpio17]\0pin22 [gpio14]\0pin28 [gpio19]\0pin37 [gpio23]\0pin11 [gpio6]"; + interrupts = <0x01 0x02 0x08>; + interrupt-parent = <0x0e>; + compatible = "nxp,pcf8574a"; + #interrupt-cells = <0x02>; + reg = <0x38>; + #gpio-cells = <0x02>; + interrupt-controller; + }; + }; + + timer@2050000 { + interrupts = <0x4b 0x04 0x4c 0x04>; + clocks = <0x05>; + compatible = "allwinner,sun20i-d1-timer\0allwinner,sun8i-a23-timer"; + reg = <0x2050000 0xa0>; + }; + + pinctrl@2000000 { + clock-names = "apb\0hosc\0losc"; + gpio-controller; + gpio-line-names = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0pin5 [gpio2/twi2-sck]\0pin3 [gpio1/twi2-sda]\0\0pin38 [gpio24/i2s2-din]\0pin40 [gpio25/i2s2-dout]\0pin12 [gpio7/i2s-clk]\0pin35 [gpio22/i2s2-lrck]\0\0pin8 [gpio4/uart0-txd]\0pin10 [gpio5/uart0-rxd]\0\0\0pin15 [gpio9]\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0pin31 [gpio21]\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0pin24 [gpio16/spi1-ce0]\0pin23 [gpio15/spi1-clk]\0pin19 [gpio12/spi1-mosi]\0pin21 [gpio13/spi1-miso]\0pin27 [gpio18/spi1-hold]\0pin29 [gpio20/spi1-wp]\0\0\0\0\0\0\0pin7 [gpio3/pwm]"; + interrupts = <0x55 0x04 0x57 0x04 0x59 0x04 0x5b 0x04 0x5d 0x04 0x5f 0x04>; + clocks = <0x04 0x18 0x05 0x06 0x00>; + compatible = "allwinner,sun20i-d1-pinctrl"; + #interrupt-cells = <0x03>; + vcc-pb-supply = <0x07>; + vcc-pc-supply = <0x07>; + reg = <0x2000000 0x800>; + phandle = <0x0e>; + vcc-pd-supply = <0x07>; + #gpio-cells = <0x03>; + vcc-pe-supply = <0x07>; + vcc-pf-supply = <0x07>; + vcc-pg-supply = <0x07>; + interrupt-controller; + + rgmii-pe-pins { + function = "emac"; + pins = "PE0\0PE1\0PE2\0PE3\0PE4\0PE5\0PE6\0PE7\0PE8\0PE9\0PE11\0PE12\0PE13\0PE14\0PE15"; + phandle = <0x1a>; + }; + + uart1-pg8-rts-cts-pins { + function = "uart1"; + pins = "PG8\0PG9"; + phandle = <0x0c>; + }; + + can1-pins { + function = "can1"; + pins = "PB4\0PB5"; + phandle = <0x10>; + }; + + ledc-pc0-pin { + function = "ledc"; + pins = "PC0"; + phandle = <0x36>; + }; + + can0-pins { + function = "can0"; + pins = "PB2\0PB3"; + phandle = <0x0f>; + }; + + mmc1-pins { + function = "mmc1"; + pins = "PG0\0PG1\0PG2\0PG3\0PG4\0PG5"; + phandle = <0x13>; + }; + + mmc0-pins { + function = "mmc0"; + pins = "PF0\0PF1\0PF2\0PF3\0PF4\0PF5"; + phandle = <0x11>; + }; + + uart1-pg6-pins { + function = "uart1"; + pins = "PG6\0PG7"; + phandle = <0x0b>; + }; + + uart0-pb8-pins { + function = "uart0"; + pins = "PB8\0PB9"; + phandle = <0x0a>; + }; + + spi1-pd-pins { + function = "spi1"; + pins = "PD10\0PD11\0PD12\0PD13\0PD14\0PD15"; + phandle = <0x15>; + }; + + spi0-pins { + function = "spi0"; + pins = "PC2\0PC3\0PC4\0PC5\0PC6\0PC7"; + phandle = <0x14>; + }; + + pwm0-pd16-pin { + function = "pwm0"; + pins = "PD16"; + phandle = <0x08>; + }; + + i2c2-pb0-pins { + function = "i2c2"; + pins = "PB0\0PB1"; + phandle = <0x0d>; + }; + }; + + usb@4100000 { + phy-names = "usb"; + resets = <0x04 0x2e>; + interrupts = <0x2d 0x04>; + clocks = <0x04 0x67>; + extcon = <0x16 0x00>; + compatible = "allwinner,sun20i-d1-musb\0allwinner,sun8i-a33-musb"; + status = "okay"; + interrupt-names = "mc"; + phys = <0x16 0x00>; + reg = <0x4100000 0x400>; + dr_mode = "otg"; + }; + + phy@5451000 { + clock-names = "bus\0mod"; + resets = <0x04 0x33>; + interrupts = <0x6c 0x04>; + clocks = <0x04 0x6f 0x04 0x6e>; + #phy-cells = <0x00>; + compatible = "allwinner,sun20i-d1-mipi-dphy\0allwinner,sun50i-a100-mipi-dphy"; + reg = <0x5451000 0x1000>; + phandle = <0x20>; + }; + + phy@4100400 { + usb1_vbus-supply = <0x18>; + clock-names = "usb0_phy\0usb1_phy"; + reg-names = "phy_ctrl\0pmu0\0pmu1"; + resets = <0x04 0x28 0x04 0x29>; + clocks = <0x05 0x05>; + #phy-cells = <0x01>; + usb0_vbus_det-gpios = <0x0e 0x03 0x14 0x00>; + compatible = "allwinner,sun20i-d1-usb-phy"; + status = "okay"; + usb0_vbus-supply = <0x17>; + reg = <0x4100400 0x100 0x4101800 0x100 0x4200800 0x100>; + phandle = <0x16>; + reset-names = "usb0_reset\0usb1_reset"; + usb0_id_det-gpios = <0x0e 0x03 0x15 0x00>; + }; + + mmc@4020000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x11>; + clock-names = "ahb\0mmc"; + cap-sd-highspeed; + vqmmc-supply = <0x07>; + no-mmc; + bus-width = <0x04>; + resets = <0x04 0x0f>; + interrupts = <0x38 0x04>; + clocks = <0x04 0x3b 0x04 0x38>; + #size-cells = <0x00>; + vmmc-supply = <0x07>; + compatible = "allwinner,sun20i-d1-mmc"; + status = "okay"; + disable-wp; + reg = <0x4020000 0x1000>; + max-frequency = <0x8f0d180>; + reset-names = "ahb"; + cd-gpios = <0x0e 0x05 0x06 0x00>; + }; + + watchdog@6011000 { + clock-names = "hosc\0losc"; + interrupts = <0x93 0x04>; + clocks = <0x05 0x06 0x00>; + compatible = "allwinner,sun20i-d1-wdt"; + reg = <0x6011000 0x20>; + }; + + dma-controller@3002000 { + clock-names = "bus\0mbus"; + resets = <0x04 0x06>; + interrupts = <0x42 0x04>; + clocks = <0x04 0x25 0x04 0x30>; + dma-requests = <0x30>; + compatible = "allwinner,sun20i-d1-dma"; + reg = <0x3002000 0x1000>; + phandle = <0x09>; + dma-channels = <0x10>; + #dma-cells = <0x01>; + }; + + tcon-top@5460000 { + clock-output-names = "tcon-top-tv0\0tcon-top-dsi"; + clock-names = "bus\0tcon-tv0\0tve0\0dsi"; + resets = <0x04 0x30>; + clocks = <0x04 0x69 0x04 0x72 0x04 0x74 0x04 0x70>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-tcon-top"; + reg = <0x5460000 0x1000>; + phandle = <0x1f>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint { + remote-endpoint = <0x22>; + phandle = <0x1d>; + }; + }; + + port@5 { + reg = <0x05>; + + endpoint { + remote-endpoint = <0x29>; + phandle = <0x34>; + }; + }; + + port@3 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x03>; + + endpoint@2 { + remote-endpoint = <0x27>; + reg = <0x02>; + phandle = <0x2e>; + }; + + endpoint@0 { + remote-endpoint = <0x26>; + reg = <0x00>; + phandle = <0x2b>; + }; + }; + + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@2 { + remote-endpoint = <0x24>; + reg = <0x02>; + phandle = <0x2d>; + }; + + endpoint@0 { + remote-endpoint = <0x23>; + reg = <0x00>; + phandle = <0x2a>; + }; + }; + + port@4 { + reg = <0x04>; + + endpoint { + remote-endpoint = <0x28>; + phandle = <0x2f>; + }; + }; + + port@2 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x02>; + + endpoint@1 { + remote-endpoint = <0x25>; + reg = <0x01>; + phandle = <0x1e>; + }; + }; + }; + }; + + serial@2501400 { + reg-io-width = <0x04>; + resets = <0x04 0x17>; + interrupts = <0x17 0x04>; + clocks = <0x04 0x43>; + dma-names = "tx\0rx"; + compatible = "snps,dw-apb-uart"; + status = "disabled"; + reg = <0x2501400 0x400>; + dmas = <0x09 0x13 0x09 0x13>; + reg-shift = <0x02>; + }; + + spi@4026000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x15>; + clock-names = "ahb\0mod"; + resets = <0x04 0x1d>; + interrupts = <0x20 0x04>; + clocks = <0x04 0x4b 0x04 0x49>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-spi-dbi\0allwinner,sun50i-r329-spi-dbi\0allwinner,sun50i-r329-spi"; + status = "okay"; + reg = <0x4026000 0x1000>; + dmas = <0x09 0x17 0x09 0x17>; + }; + + keys@2009800 { + vref-supply = <0x38>; + resets = <0x04 0x2f>; + interrupts = <0x4d 0x04>; + clocks = <0x04 0x68>; + compatible = "allwinner,sun20i-d1-lradc\0allwinner,sun50i-r329-lradc"; + status = "okay"; + reg = <0x2009800 0x400>; + + button-160 { + label = "OK"; + channel = <0x00>; + linux,code = <0x160>; + voltage = <0x27100>; + }; + }; + + phy@5510000 { + clock-names = "bus\0mod"; + resets = <0x04 0x32>; + clocks = <0x04 0x6d 0x04 0x6a>; + #phy-cells = <0x00>; + compatible = "allwinner,sun20i-d1-hdmi-phy"; + status = "okay"; + reg = <0x5510000 0x10000>; + phandle = <0x32>; + reset-names = "phy"; + }; + + adc@2009000 { + resets = <0x04 0x20>; + interrupts = <0x49 0x04>; + clocks = <0x04 0x50>; + #io-channel-cells = <0x01>; + compatible = "allwinner,sun20i-d1-gpadc"; + status = "disabled"; + reg = <0x2009000 0x400>; + }; + + i2c@2502400 { + #address-cells = <0x01>; + resets = <0x04 0x19>; + interrupts = <0x1a 0x04>; + clocks = <0x04 0x45>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c"; + status = "disabled"; + reg = <0x2502400 0x400>; + dmas = <0x09 0x2c 0x09 0x2c>; + }; + + i2s@2033000 { + clock-names = "apb\0mod"; + resets = <0x04 0x23>; + interrupts = <0x2b 0x04>; + clocks = <0x04 0x57 0x04 0x53>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-i2s\0allwinner,sun50i-r329-i2s"; + status = "disabled"; + reg = <0x2033000 0x1000>; + dmas = <0x09 0x04 0x09 0x04>; + }; + + lcd-controller@5461000 { + clock-output-names = "tcon-pixel-clock"; + phy-names = "lvds0"; + clock-names = "ahb\0tcon-ch0"; + resets = <0x04 0x34 0x04 0x36>; + interrupts = <0x6a 0x04>; + clocks = <0x04 0x71 0x04 0x70>; + #clock-cells = <0x00>; + compatible = "allwinner,sun20i-d1-tcon-lcd"; + phys = <0x20>; + reg = <0x5461000 0x1000>; + reset-names = "lcd\0lvds"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x2b>; + reg = <0x01>; + phandle = <0x26>; + }; + + endpoint@0 { + remote-endpoint = <0x2a>; + reg = <0x00>; + phandle = <0x23>; + }; + }; + + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x2c>; + reg = <0x01>; + phandle = <0x21>; + }; + }; + }; + }; + + can@2504400 { + pinctrl-names = "default"; + pinctrl-0 = <0x10>; + resets = <0x04 0x43>; + interrupts = <0x26 0x04>; + clocks = <0x04 0x92>; + compatible = "allwinner,sun20i-d1-can"; + status = "disabled"; + reg = <0x2504400 0x400>; + }; + + mixer@5200000 { + clock-names = "bus\0mod"; + resets = <0x1c 0x01>; + clocks = <0x1c 0x01 0x1c 0x07>; + compatible = "allwinner,sun20i-d1-de2-mixer-1"; + reg = <0x5200000 0x100000>; + phandle = <0x02>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x1e>; + phandle = <0x25>; + }; + }; + }; + }; + + audio-codec@2030000 { + #address-cells = <0x01>; + clock-names = "bus\0adc\0dac\0hosc\0losc"; + resets = <0x04 0x27>; + widgets = "Microphone\0Headset Microphone\0Headphone\0Headphone Jack"; + interrupts = <0x29 0x04>; + clocks = <0x04 0x60 0x04 0x5f 0x04 0x5e 0x05 0x06 0x00>; + #size-cells = <0x01>; + routing = "Headphone Jack\0HPOUTL\0Headphone Jack\0HPOUTR\0LINEINL\0HPOUTL\0LINEINR\0HPOUTR\0MICIN3\0Headset Microphone\0Headset Microphone\0HBIAS"; + avcc-supply = <0x38>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-codec\0simple-mfd\0syscon"; + status = "okay"; + reg = <0x2030000 0x1000>; + dmas = <0x09 0x07 0x09 0x07>; + hpvcc-supply = <0x39>; + + regulators@2030348 { + nvmem-cells = <0x3a>; + compatible = "allwinner,sun20i-d1-analog-ldos"; + nvmem-cell-names = "bg_trim"; + reg = <0x2030348 0x04>; + + hpldo { + regulator-max-microvolt = <0x1b7740>; + regulator-min-microvolt = <0x1b7740>; + phandle = <0x39>; + hpldoin-supply = <0x07>; + }; + + aldo { + regulator-max-microvolt = <0x1b7740>; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + phandle = <0x38>; + vdd33-supply = <0x07>; + }; + }; + }; + + serial@2500800 { + reg-io-width = <0x04>; + resets = <0x04 0x14>; + interrupts = <0x14 0x04>; + clocks = <0x04 0x40>; + dma-names = "tx\0rx"; + compatible = "snps,dw-apb-uart"; + status = "disabled"; + reg = <0x2500800 0x400>; + dmas = <0x09 0x10 0x09 0x10>; + reg-shift = <0x02>; + }; + + led-controller@2008000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x36>; + clock-names = "bus\0mod"; + resets = <0x04 0x3b>; + interrupts = <0x24 0x04>; + clocks = <0x04 0x7b 0x04 0x7a>; + #size-cells = <0x00>; + dma-names = "tx"; + compatible = "allwinner,sun20i-d1-ledc\0allwinner,sun50i-a100-ledc"; + status = "okay"; + reg = <0x2008000 0x400>; + dmas = <0x09 0x2a>; + + multi-led@0 { + function = "status"; + color = <0x09>; + reg = <0x00>; + }; + }; + + i2c@2502c00 { + #address-cells = <0x01>; + resets = <0x04 0x1b>; + interrupts = <0x1c 0x04>; + clocks = <0x04 0x47>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c"; + status = "disabled"; + reg = <0x2502c00 0x400>; + dmas = <0x09 0x2e 0x09 0x2e>; + }; + }; + + usbvbus { + regulator-max-microvolt = <0x4c4b40>; + gpio = <0x0e 0x03 0x13 0x00>; + enable-active-high; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "usbvbus"; + compatible = "regulator-fixed"; + phandle = <0x17>; + vin-supply = <0x18>; + }; + + opp-table-cpu { + compatible = "operating-points-v2"; + phandle = <0x3b>; + + opp-1080000000 { + opp-microvolt = <0xdbba0 0xdbba0 0x10c8e0>; + opp-hz = <0x00 0x3c14dc00>; + }; + + opp-408000000 { + opp-microvolt = <0xdbba0 0xdbba0 0x10c8e0>; + opp-hz = <0x00 0x18519600>; + }; + }; + + aliases { + ethernet0 = "/soc/ethernet@4500000"; + spi0 = "/soc/spi@4025000"; + ethernet1 = "/soc/mmc@4021000/wifi@1"; + serial0 = "/soc/serial@2500000"; + }; + + display-engine { + allwinner,pipelines = <0x01 0x02>; + compatible = "allwinner,sun20i-d1-display-engine"; + status = "okay"; + }; + + chosen { + linux,uefi-mmap-size = <0x690>; + u-boot,version = "2024.01-rc1"; + bootargs = "BOOT_IMAGE=/boot/vmlinuz-6.8.0-31-generic root=LABEL=cloudimg-rootfs ro efi=debug earlycon"; + boot-hartid = <0x00>; + linux,uefi-mmap-start = <0x00 0x7a3c9068>; + linux,uefi-mmap-desc-size = <0x28>; + linux,uefi-mmap-desc-ver = <0x01>; + linux,uefi-secure-boot = <0x02>; + linux,uefi-system-table = <0x00 0x7ff59d38>; + stdout-path = "serial0:115200n8"; + }; + + vcc-3v3 { + regulator-max-microvolt = <0x325aa0>; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc-3v3"; + compatible = "regulator-fixed"; + phandle = <0x07>; + vin-supply = <0x18>; + }; + + vcc { + regulator-max-microvolt = <0x4c4b40>; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc"; + compatible = "regulator-fixed"; + phandle = <0x18>; + }; + + pmu { + riscv,event-to-mhpmcounters = <0x03 0x03 0x08 0x04 0x04 0x10 0x05 0x05 0x200 0x06 0x06 0x100 0x10000 0x10000 0x4000 0x10001 0x10001 0x8000 0x10002 0x10002 0x10000 0x10003 0x10003 0x20000 0x10019 0x10019 0x40 0x10021 0x10021 0x20>; + riscv,raw-event-to-mhpmcounters = <0x00 0x01 0xffffffff 0xffffffff 0x08 0x00 0x02 0xffffffff 0xffffffff 0x10 0x00 0x03 0xffffffff 0xffffffff 0x20 0x00 0x04 0xffffffff 0xffffffff 0x40 0x00 0x05 0xffffffff 0xffffffff 0x80 0x00 0x06 0xffffffff 0xffffffff 0x100 0x00 0x07 0xffffffff 0xffffffff 0x200 0x00 0x0b 0xffffffff 0xffffffff 0x2000 0x00 0x0c 0xffffffff 0xffffffff 0x4000 0x00 0x0d 0xffffffff 0xffffffff 0x8000 0x00 0x0e 0xffffffff 0xffffffff 0x10000 0x00 0x0f 0xffffffff 0xffffffff 0x20000>; + compatible = "riscv,pmu"; + riscv,event-to-mhpmevent = <0x03 0x00 0x01 0x04 0x00 0x02 0x05 0x00 0x07 0x06 0x00 0x06 0x10000 0x00 0x0c 0x10001 0x00 0x0d 0x10002 0x00 0x0e 0x10003 0x00 0x0f 0x10019 0x00 0x04 0x10021 0x00 0x03>; + }; + + dcxo-clk { + clock-output-names = "dcxo"; + #clock-cells = <0x00>; + clock-frequency = <0x16e3600>; + compatible = "fixed-clock"; + phandle = <0x05>; + }; + + cpus { + #address-cells = <0x01>; + #size-cells = <0x00>; + timebase-frequency = <0x16e3600>; + + cpu@0 { + cpu-supply = <0x3c>; + clocks = <0x04 0x84>; + d-cache-block-size = <0x40>; + device_type = "cpu"; + compatible = "thead,c906\0riscv"; + mmu-type = "riscv,sv39"; + d-cache-size = <0x8000>; + riscv,isa-base = "rv64i"; + i-cache-size = <0x8000>; + riscv,isa-extensions = "i\0m\0a\0f\0d\0c\0zicntr\0zicsr\0zifencei\0zihpm"; + reg = <0x00>; + phandle = <0x3f>; + d-cache-sets = <0x100>; + i-cache-block-size = <0x40>; + operating-points-v2 = <0x3b>; + i-cache-sets = <0x80>; + riscv,isa = "rv64imafdc"; + #cooling-cells = <0x02>; + + interrupt-controller { + compatible = "riscv,cpu-intc"; + #interrupt-cells = <0x01>; + phandle = <0x31>; + interrupt-controller; + }; + }; + }; + + reserved-memory { + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges; + + mmode_resv0@40040000 { + reg = <0x40040000 0x20000>; + phandle = <0x43>; + no-map; + }; + + mmode_resv1@40000000 { + reg = <0x40000000 0x40000>; + phandle = <0x42>; + no-map; + }; + }; +}; diff --git a/precompiled-trees/allwinner-nezha/6.8.0-31-allwinner-nezha.gpio b/precompiled-trees/allwinner-nezha/6.8.0-31-allwinner-nezha.gpio new file mode 100644 index 0000000..0907cd8 --- /dev/null +++ b/precompiled-trees/allwinner-nezha/6.8.0-31-allwinner-nezha.gpio @@ -0,0 +1,32 @@ + + MangoPI MQ Pro GPIO header (dtb name: Allwinner D1 Nezha) + +Gpio Header: + func des pin pin des func + 3v3 1 --o o-- 2 5v + free (205) PG13 3 --o o-- 4 5v + gpio (2000000.pinctrl:204) PG12 5 --o o-- 6 gnd + free (39) PB7 7 --o o-- 8 PB8 uart0 (2500000.serial:40) + gnd 9 --o o-- 10 PB9 uart0 (2500000.serial:41) + gpio (2000000.pinctrl:117) PD21 11 --o o-- 12 PB5 free (37) + free (118) PD22 13 --o o-- 14 gnd + i2c2 (2502800.i2c:32) PB0 15 --o o-- 16 PB1 i2c2 (2502800.i2c:33) + 3v3 17 --o o-- 18 PD14 spi1 (4026000.spi:110) + spi1 (4026000.spi:108) PD12 19 --o o-- 20 gnd + spi1 (4026000.spi:109) PD13 21 --o o-- 22 PC1 free (65) + spi1 (4026000.spi:107) PD11 23 --o o-- 24 PD10 spi1 (4026000.spi:106) + gnd 25 --o o-- 26 PD15 spi1 (4026000.spi:111) + free (145) PE17 27 --o o-- 28 PE16 free (144) + free (42) PB10 29 --o o-- 30 gnd + free (43) PB11 31 --o o-- 32 PC0 ledc (2008000.led-controller:64) + free (44) PB12 33 --o o-- 34 gnd + free (38) PB6 35 --o o-- 36 PB2 free (34) + free (113) PD17 37 --o o-- 38 PB3 free (35) + gnd 39 --o o-- 40 PB4 free (36) + +Other gpio outputs of interest: +-- PD18: Blue Status Led - free (114) + +Notes: +- I2C pins 3,5,27 and 28 (PG13, PG12, PE17 and PE16) have 10K pullup resistors to 3v3 +- The Status LED (PD18) is common with the LED_PWM pin on the DSI/LVDS output diff --git a/precompiled-trees/generic/6.8.0-31-generic.dtb b/precompiled-trees/generic/6.8.0-31-generic.dtb new file mode 100644 index 0000000000000000000000000000000000000000..356084fe4c1c20cdd85a42adde1bf15e5bec674a GIT binary patch literal 22618 zcmd5^U5q5xRj!)pv6DEC*NzDZc3{S{cGk|8w`XQ|cGoeav)&&&V=H45lGyyLd%A08 zitV3rcTdlb;bD=YAmsspLL{W*!G1vkDORK?QX(Od2TO(rBqIboMM8*&MaU9D1l|bW zckVg2Zg*Gr&e&^6Nw@3%oO|v$-#Pc(TR&ZI-~B)DMA27XilXRT6uodA=MzZxA{|4* zvGC8RuSs_FC)VOT&K1qG&dT>7Z)N5mc&^^r>279=&pp4m+3QLV(msZ?w4XJ*z52;E zN%Aadzmnu2skd7DS*MfsPWJaYtJN%Nu1L2iZsdD?m-XYFj63VBvhkU>@hKl=;K9DN zs>_p>x-JcN(|Yq{<9u~J>Sg`L&^3ErpG6;58Sjmt{R7B<0f}RM70GD6G$zkB+G;`j zf$QSwzZOL|(Co|KK)x1~{}lNfLHTA%qNj3m!-Iw_48K!AW1trStmt{>%WZiQi+EoQ|Mu*_yO%p{VBr& z>P~g9)nN-cIA+}KH&#zSmo!?}q>gkSMq1j=uBS~@cN@~6Iz*wJfmgil`un~ZD}F{w zUhjx{eh^8ke?YfB`#mMVa^>V(Bew2ayV3(Nl;?AGyfxP*Ro#TGD zfoh@Wd|2vd?YxyHTN**g2S@yU{4h^@{RPg31>63nXhRMaL7D!~a=c$3G6goFZI>^rohK>Io?K`(>0?-B&~~oj65-A1MBFEj5oxR^M?oPk&kcg!ug^W zf8=02=;Bkow4e5dsrif8FV8xSL9bO?t;)d;q<;{pR92-oI+2%*oaoXQI*Yu&hDyr& zWj(*B=U>vzD=N_ucoab(I4KUa)IxiP;m&V_T)<^@^M zS%kaEUA85hMImz>pv3;|RZVNpH|k8c5zbNUwY$ z=aor0OZfg=$QN@Vbhd)uQ-Jp=={+K+8Zngf=RBjdjtOM`418ukRS5dY;#N!W|>2`guH9)n~Q+74M{*FqoU|Apm z4)U3*ccZaqG^+P8l$oR-{b+o>;<`nA$rtNqxNc>(c&Y5NccRXw%eRpa$}(qJ7JIe0 zL-V^-YH`lAV1JssbZtYw#^~k78C-7E0YM^7=*Rx5-wkAGLaP(I9@k3JQF&X-eg}EV z$Gw^Im}%S36m)ZchCJ3ixkh4Nq`5Z+*O7C)WNpWOx4s1_rPkGpa43g30cSY`r$O4z z(_VeB*GrRr+Ua+D#Ol25S~%8Jdk=Q|WTd*#&;J<32|PZpm81*({CSiQ>*q_LWq&ZA z`vK0>LHW(Si7jNd1s$?(2i2bL?^(cM{r(Mk+C$6YFWe&w4%gCyzGx0NK^+g$ts|BD zNv~e!D804S^GQqE$U=Ciulxy$6WBbbl^lz7<}16%Yn`9#r?hT{t>;Wf(JAY;+j~%o z^H-H3Pp z`%j*K3yD6-xWt3puxE4glooH+8)f@WjN|R}DeVVe^YfP1&z!$JlPA~jH+t72ox)N_ z`FMnw-7{LAHyZLlex7S6# zcam1KJ2tQ9=buI&j;-U$9K27<)cwt^ovXOiY@;fQ>)^l)4wLio=z;xOP`*4?Chp^V zW$GoqvYUH`hvj#zgdcGsKTC15or&{}t#8~~l;T7B$+cm3J&^|Va{2-f#KL)sFXp1m zs1rXtp_Qy7f%ze?gJ}2PKr;GS>;5AJo%b=0%f3kBTgXazM!fL;BsgcQ;w-!jw7yfZ z0PQ3c68+dBhw4Er7EwWUy>7ggeGJKbD#U`GoydKLHSM6|k!CVZyu`*5Ew;XSm$sC@33M51@`yv-2%7DTp1j7J$Dv&cs|%#OAv z9^ZF}?Mm)(N!%*CkB2*ZSsl0W1ZSrW$K<-V)bHf|lg<4EaWvt51JvKyR_vT3ldFH-~ z^GA_voQZ4M0FUr`=8$+$b*3ZXL3!9oW%77@wy5)XnCu}Q_kfOg@O%_JNd8CK2X+u_ z?njyX!!ms0t=3*T=ynIYAW$08F7?uSYmi<$*&DRZon2jP_LHs9S0L;B>!8D)n6`>& zQyv_HZQsM$+Nc8$Yx@!M)}73wiWRyvsDfChFK4J##Pd) z9^QAMuh@!bwjI@XdB4iWndQ5B%SmVti3dZD#V)Sj?8k9t*nj0+ z#4dAf;SU`T70c<5Wq3Rl$Z2?(?}m6Vo)Hg=Yi09cs{Qf&f(uu8?ePqFm0pK|c69Z{ z?qGOkZ9SQ2SjV|)W^`-Isq#DIHuV!$(b zlwmN%CqV6D4f|2BFn*#eF`e?MY?D4?7^=gN?tRAaxQc2r35ML~Qht@wuYs3}I*+00 z6Jp4HJ~8B(JjyUE^CQx7Tpo-#OKdt7+q1F88ODw z>!(z8^uEGWUHe%R-GrCw`Z9_f-t%WZ9FMV*y_^GXcs(Ik7J-p5688?P$>J?4X{9;^gg5{(?&r zgdX#xE7Y`(;oFL;G>?qlnK5U-z@lfLD&XgtvrHrR71LfgoE|u&x8D|Oy3B~l@%=uE_fHDc3Pki z>+Kfgzl5;mfFHD!pQdswjk6@9$VhCJdYIU;%)IH>S+tMbDUe*f{abi|1VoWkIEa6 zgL@Oof}`?7{Fq#a!T*y=KaPLApKWI~&J52l+CZKdDSvq%(XK@?|HRkn4~$LVCv=Pf zZ{fb-Ala{9OHqk~vm~5rwpfxc<9lh`NjWJ-Uaa-+LP!((u|LP%sLUR`Y8y_K|0?ne9Fqyh0@iTJb1gshZr-85dtHoQ zyzNScV26w~r|hs=jDfWL=B z-{OA5dIb?sJGM&*X6!T;Ju|Au*os6soL~F@CSVRXZ&&g;YT%bW{Dc4dPLU<)fIj zwL}`&-Npf~0x2Q1I*CubMm1a^Q{^qU)EbRn54e9anS037zaB5@7Pt=4_jxGY0?T0? z##uN{k(H(lL#&SrkK?7MEXVuy`u4fR#(eica0%|8aE_GvBgRNTZ{tul=ub7{sB(-& zoEI4ysfNgl`(l*`(dQ~(wvO`lUX?#ZyeBdDDVR@^sN;R;e-mR>uW~SCRwRQK$CEy0 zSe-x}2YXc8Fo!Fbq_2BmCB0o16s~_6KE!Yx?c_xnSpFQ&i$z(kONhJR2FAoK+%r6a zwo=^E-9{Ger1&dO)<~oPN;eMm2ZnSa4sA9TAEF-+T*^amZ9msQp2S?{c&;OnCdB12 zZR1S_wqcxG`b}9(8__lJk*T_NLtUkS(Y*}Rm6uTyx}HL%=}Iuhbu}HKhqpa-ygj;c zXHcwTQ+2zg9Ty?dq;B+f(=D`PQ;E0r%n3Yh$4_gU-SZ0VNDxU6-ZSTaVMFM7TWq*U zbtY`ccxrlvHZ(m=ztD!%Z`_7Q(kta3g*xe=b~<L51BxMT^ zl?nd3iIS*lbuu^ktk-nC6WO=WG3&j;u14p5_&Ke^9yPw%AGARVsfE;Ny-(X32HMJ{ z5?YM8@B+FnDbKPw8@KVAp<^%nX$yN6jq9qK*mhrmPh zZR5Xgz1o>#x8Qg$qJ654(kBr}3SB5Ylk0D~a2y^y-+`p`Q*|+VrCWFreU_0ZE9>Zo z?`S^GyZE013R-3xj{pmAU!k3H?G>k;X5Pi$8C`c9XW?a(k0XWSa_yxoVTu*QBC@(Z zi=ev&hO#+OU89W!_9(}YIuRSpze8bY7%+xT!;pCWUtsvK%FOX-JFe3qe$2o#^WAdLzyj_&Coi;wx#NA(_$`7+Pwzek_n4kg2r*Ty`o%sh3o@;$7; z;eAs7aBuBn{UxR{hFUv)^f;3F=&U$xeL()6Ww8CU#Uut|@fn+2HSX{VIjINRRR+<+ z_H)MLw9*J4u1&LffcjQ?$ns!gj^8U38SI+JWMHfv#gend%Pl;p!|lW}3HZ^TMDD0q z+I;}i_KM=g@d|i>^X)klhsK){cV(q0qNLi@rXO~F#g<)qC5kUkkZ(t z4m{ZJUbMNmlVc;;Dn5Fk?cnR<4J|;v#F2fmj#VyE+}5z!N0|rfA=Ahjcn8-&(&)fS zgvlyc|^Hff;GvkH$qK^-^o|~KpArH4Rp2S*i-M3>3T*vN#}g^3X60{s}oZVx!Gr+JrHivC??jIo`$po@!?% z?lnyH2fTjHE?{N0$6jy~B}NU8gS@L~dkFZ9_(vP<<{#mGBi56av5sf%A&KWlP`sJ( zfo;~`?nRBXfl3@~15fWK^dHtCu2(L}eOVN6u+HMt*`Rz}ceC23?7j4b9Q3>gaJ&3% zmYul1sH|cqhEQ*xcWHZjCTF(ivpVBxXLp_8ZVRAUWSF{c(dc%wTxne_cpjy~_6!QP zMum2ze)NM`d;TDnRxTaFM)YqUA$GJg^(+1tvR+;BE3>1e@0DH`jDNr7j+p91i%2H_ zkCFcdlKJt6k*B^`C*}DqPD1-3>N@tn50Pu)-qYFeuf5V2*9qnF^%DJezLzK3xKpsF zIMSE%c3d9F;xNG(>$Hs#$|wKR&s!~geT0uxK%{hFJbv9V_ieOs)DU;RlOg)`294U; z>UmpSNJG1p;tkr#t4?{2$`&~kcj!rk1$G&izC>HRrj?|-ABnnC7T!Z)59WEW{chTX zZ@-9L^hFSDE74QtqQ|c6yID0lmTBt7coh6fbLsF8NLw0vOBzv^fs}i;dCy-SEz4MoXt!~awIR1Gw;T)d$yg!18*lZc*R(&& zm!pyL!k?pUv1pg^iJy#*&kWT2?#o=17qMXB`={_xsZ+sAGpCA|I7o9ZX#O&!DNOEo zHsDYx?`$}oNdKn$FHH4`m6bENXV~Fd!b4=hRevXK;D6n&j$_<|v?MWhw2^J>bGd;Z z9I_s{?96Kz#(VY!KB7O@1M;yH;}a9ym+>GS{d{RB$KUyj2GY1Yz@FE_+e*(qm}7HU ze}L~!I8LmC@63M(=Z`7feK_;*oQugD^co;4TzBf2)ZaIG+rFY{U z`>TH%8E>Rq>hB(Jx^j~5_xkB8U?DowCQER4txnv>7})ADS@;L!X+y3T@aKtm&vnMe z_~3HA*~Bwxylk4bTK#CbpS_xD9)I^vTT!Fi&hcpveAgu6zdyGy1C#Au`pRC~X&gk& zbeJ{LtAm3)jSzMsSt9%H6q4ax*2XSA^~P`ZLFiZ02+&Fu{>s@e3T(+HiLFYAeSyUI z!bajo=hq@n;tMR%vVFhKsl>12_4o3;br9vd^-dFtlr0F+a!@N+6gO4#EKl)8JcJ&d zGHxf(-5cb4gQQb$qh(ol2hugiw;A~bJphPL8jh3_`%A1uNBB~9r`u_C@f?z6Phb{tqDrhltg=r?F1rem z9P0zV++=`BsWDP&j+F4x8V9XVZjY39tR!El+TO!Q?)Zfmc>@A?;VVt*XlUowAMwg^ z3aOAP5p;u}P(gvaGi>v9eUZ7yn=MAMRkC3(^#U%-w^p=ax!>LEG?Qi>p5-i0ZB(({ zJSY?^Ydh=UK}Mt39d_~crl7ulJ*YUq*{CcD|rZa+`cX4D2EMZoBE z6Ta1mt(mb@OJVKm+7O%|u=~Zc>dqeA3LszS-4jHNgFb%@hu&32MK~|2oUh0WK11rG0_#U{ z#KDMRyE{nn$y9xWxf^&>F+CFu2NIy=zTb-MFmNg&8x0E++KUENDpEyIY9bUNu)vWT N-4^yH&L9rg{{_Cvg#!Qp literal 0 HcmV?d00001 diff --git a/precompiled-trees/generic/6.8.0-31-generic.dts b/precompiled-trees/generic/6.8.0-31-generic.dts new file mode 100644 index 0000000..c62d121 --- /dev/null +++ b/precompiled-trees/generic/6.8.0-31-generic.dts @@ -0,0 +1,231 @@ +// SPDX-License-Identifier: (GPL-2.0+ or MIT) +// Copyright (C) 2022 Samuel Holland + +/dts-v1/; + +#include +#include +#include + +#include "sun20i-d1.dtsi" +#include "sun20i-d1-common-regulators.dtsi" + +/ { + model = "MangoPi MQ Pro"; + compatible = "widora,mangopi-mq-pro", "allwinner,sun20i-d1"; + + aliases { + ethernet0 = &rtl8723ds; + mmc0 = &mmc0; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + hdmi_connector: connector { + compatible = "hdmi-connector"; + type = "c"; + + port { + hdmi_connector_in: endpoint { + remote-endpoint = <&hdmi_out_connector>; + }; + }; + }; + + + leds { + compatible = "gpio-leds"; + + led-0 { + color = ; + function = LED_FUNCTION_STATUS; + gpios = <&pio 3 18 GPIO_ACTIVE_HIGH>; /* PD18 */ + }; + }; + + reg_avdd2v8: avdd2v8 { + compatible = "regulator-fixed"; + regulator-name = "avdd2v8"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + vin-supply = <®_vcc_3v3>; + }; + + reg_dvdd: dvdd { + compatible = "regulator-fixed"; + regulator-name = "dvdd"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + vin-supply = <®_vcc_3v3>; + }; + + reg_vdd_cpu: vdd-cpu { + compatible = "regulator-fixed"; + regulator-name = "vdd-cpu"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + vin-supply = <®_vcc>; + }; + + wifi_pwrseq: wifi-pwrseq { + compatible = "mmc-pwrseq-simple"; + reset-gpios = <&pio 6 17 GPIO_ACTIVE_LOW>; /* PG17 */ + }; +}; + +&cpu0 { + cpu-supply = <®_vdd_cpu>; +}; + +&de { + status = "okay"; +}; + +&ehci1 { + status = "okay"; +}; + +&hdmi { + status = "okay"; +}; + +&hdmi_out { + hdmi_out_connector: endpoint { + remote-endpoint = <&hdmi_connector_in>; + }; +}; + +&hdmi_phy { + status = "okay"; +}; + +&mmc0 { + bus-width = <4>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */ + disable-wp; + vmmc-supply = <®_vcc_3v3>; + vqmmc-supply = <®_vcc_3v3>; + pinctrl-0 = <&mmc0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&mmc1 { + bus-width = <4>; + mmc-pwrseq = <&wifi_pwrseq>; + non-removable; + vmmc-supply = <®_vcc_3v3>; + vqmmc-supply = <®_vcc_3v3>; + pinctrl-0 = <&mmc1_pins>; + pinctrl-names = "default"; + status = "okay"; + + rtl8723ds: wifi@1 { + reg = <1>; + interrupt-parent = <&pio>; + interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 */ + interrupt-names = "host-wake"; + }; +}; + +&ohci1 { + status = "okay"; +}; + +&pio { + vcc-pe-supply = <®_avdd2v8>; +}; + +&spi1 { + pinctrl-0 = <&spi1_pd_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&i2c0 { + pinctrl-0 = <&i2c0_pg12_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +/*&i2c1 { + pinctrl-0 = <&i2c1_pb4_pins>; + pinctrl-names = "default"; + status = "okay"; +};*/ + +/*&i2c2 { + pinctrl-0 = <&i2c2_pc0_pins>; + pinctrl-names = "default"; + status = "okay"; +};*/ + +&i2c3 { + pinctrl-0 = <&i2c3_pe16_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&uart0 { + pinctrl-0 = <&uart0_pb8_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&uart1 { + uart-has-rtscts; + pinctrl-0 = <&uart1_pg6_pins>, <&uart1_pg8_rts_cts_pins>; + pinctrl-names = "default"; + status = "okay"; + + bluetooth { + compatible = "realtek,rtl8723ds-bt"; + device-wake-gpios = <&pio 6 18 GPIO_ACTIVE_HIGH>; /* PG18 */ + enable-gpios = <&pio 6 15 GPIO_ACTIVE_HIGH>; /* PG15 */ + host-wake-gpios = <&pio 6 14 GPIO_ACTIVE_HIGH>; /* PG14 */ + }; +}; + +&uart2 { + pinctrl-0 = <&uart2_pc0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +/*&uart3 { + uart-has-rtscts; + pinctrl-0 = <&uart3_pd10_pins>, <&uart3_pd13_rts_cts_pins>; + pinctrl-names = "default"; + status = "okay"; +};*/ + +&uart4 { + pinctrl-0 = <&uart4_pb2_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +/*&uart5 { + pinctrl-0 = <&uart5_pb4_pins>; + pinctrl-names = "default"; + status = "okay"; +};*/ + +&pwm { + //pinctrl-0 = <&pwm0_pb12_pin>, <&pwm2_pd18_pin>; + pinctrl-0 = <&pwm0_pb12_pin>; + pinctrl-names = "default"; + status = "okay"; +}; + +&usb_otg { + dr_mode = "peripheral"; + status = "okay"; +}; + +&usbphy { + usb0_vbus-supply = <®_vcc>; + status = "okay"; +}; diff --git a/precompiled-trees/generic/6.8.0-31-generic.gpio b/precompiled-trees/generic/6.8.0-31-generic.gpio new file mode 100644 index 0000000..b316625 --- /dev/null +++ b/precompiled-trees/generic/6.8.0-31-generic.gpio @@ -0,0 +1,32 @@ + + MangoPI MQ Pro GPIO header (dtb name: MangoPi MQ Pro) + +Gpio Header: + func des pin pin des func + 3v3 1 --o o-- 2 5v + i2c0 (2502000.i2c:205) PG13 3 --o o-- 4 5v + i2c0 (2502000.i2c:204) PG12 5 --o o-- 6 gnd + free (39) PB7 7 --o o-- 8 PB8 uart0 (2500000.serial:40) + gnd 9 --o o-- 10 PB9 uart0 (2500000.serial:41) + free (117) PD21 11 --o o-- 12 PB5 free (37) + free (118) PD22 13 --o o-- 14 gnd + free (32) PB0 15 --o o-- 16 PB1 free (33) + 3v3 17 --o o-- 18 PD14 spi1 (4026000.spi:110) + spi1 (4026000.spi:108) PD12 19 --o o-- 20 gnd + spi1 (4026000.spi:109) PD13 21 --o o-- 22 PC1 uart2 (2500800.serial:65) + spi1 (4026000.spi:107) PD11 23 --o o-- 24 PD10 spi1 (4026000.spi:106) + gnd 25 --o o-- 26 PD15 spi1 (4026000.spi:111) + i2c3 (2502c00.i2c:145) PE17 27 --o o-- 28 PE16 i2c3 (2502c00.i2c:144) + free (42) PB10 29 --o o-- 30 gnd + free (43) PB11 31 --o o-- 32 PC0 uart2 (2500800.serial:64) + free (44) PB12 33 --o o-- 34 gnd + free (38) PB6 35 --o o-- 36 PB2 uart4 (2501000.serial:34) + free (113) PD17 37 --o o-- 38 PB3 uart4 (2501000.serial:35) + gnd 39 --o o-- 40 PB4 free (36) + +Other gpio outputs of interest: +-- PD18: Blue Status Led - gpio (2000000.pinctrl:114) + +Notes: +- I2C pins 3,5,27 and 28 (PG13, PG12, PE17 and PE16) have 10K pullup resistors to 3v3 +- The Status LED (PD18) is common with the LED_PWM pin on the DSI/LVDS output diff --git a/precompiled-trees/serial/6.8.0-31-mqpro-serial.dtb b/precompiled-trees/serial/6.8.0-31-mqpro-serial.dtb new file mode 100644 index 0000000000000000000000000000000000000000..73e7da5c32d0d276f628734f458e0f18d082952e GIT binary patch literal 23018 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 + model = "MangoPi MQ Pro"; + #size-cells = <0x01>; + compatible = "widora,mangopi-mq-pro\0allwinner,sun20i-d1"; + + connector { + type = "c"; + compatible = "hdmi-connector"; + + port { + + endpoint { + remote-endpoint = <0x3f>; + phandle = <0x3c>; + }; + }; + }; + + avdd2v8 { + regulator-max-microvolt = <0x2ab980>; + regulator-min-microvolt = <0x2ab980>; + regulator-name = "avdd2v8"; + compatible = "regulator-fixed"; + phandle = <0x0c>; + vin-supply = <0x0b>; + }; + + vdd-cpu { + regulator-max-microvolt = <0x10c8e0>; + regulator-min-microvolt = <0x10c8e0>; + regulator-name = "vdd-cpu"; + compatible = "regulator-fixed"; + phandle = <0x02>; + vin-supply = <0x22>; + }; + + wifi-pwrseq { + reset-gpios = <0x15 0x06 0x11 0x01>; + compatible = "mmc-pwrseq-simple"; + phandle = <0x1f>; + }; + + thermal-zones { + + cpu-thermal { + polling-delay = <0x00>; + polling-delay-passive = <0x00>; + thermal-sensors = <0x05>; + + trips { + + cpu-crit { + temperature = <0x1adb0>; + hysteresis = <0x00>; + type = "critical"; + }; + + cpu-target { + temperature = <0x14c08>; + hysteresis = <0xbb8>; + type = "passive"; + phandle = <0x06>; + }; + }; + + cooling-maps { + + map0 { + trip = <0x06>; + cooling-device = <0x07 0xffffffff 0xffffffff>; + }; + }; + }; + }; + + soc { + #address-cells = <0x01>; + dma-noncoherent; + #size-cells = <0x01>; + interrupt-parent = <0x08>; + compatible = "simple-bus"; + ranges; + + watchdog@20500a0 { + clock-names = "hosc\0losc"; + interrupts = <0x4f 0x04>; + clocks = <0x09 0x0a 0x00>; + compatible = "allwinner,sun20i-d1-wdt-reset\0allwinner,sun20i-d1-wdt"; + status = "reserved"; + reg = <0x20500a0 0x20>; + }; + + serial@2501000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x19>; + resets = <0x01 0x16>; + interrupts = <0x16 0x04>; + clocks = <0x01 0x42>; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "okay"; + reg = <0x2501000 0x400>; + dmas = <0x0d 0x12 0x0d 0x12>; + reg-shift = <0x02>; + }; + + hdmi@5500000 { + reg-io-width = <0x01>; + phy-names = "phy"; + clock-names = "iahb\0isfr\0cec"; + hvcc-supply = <0x3a>; + resets = <0x01 0x31>; + interrupts = <0x6d 0x04>; + clocks = <0x01 0x6d 0x01 0x6a 0x01 0x6c>; + compatible = "allwinner,sun20i-d1-dw-hdmi"; + status = "okay"; + phys = <0x39>; + reg = <0x5500000 0x10000>; + reset-names = "ctrl"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint { + remote-endpoint = <0x3b>; + phandle = <0x32>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x3c>; + phandle = <0x3f>; + }; + }; + }; + }; + + syscon@3000000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "allwinner,sun20i-d1-system-control"; + ranges; + reg = <0x3000000 0x1000>; + phandle = <0x23>; + + regulators@3000150 { + compatible = "allwinner,sun20i-d1-system-ldos"; + reg = <0x3000150 0x04>; + + ldob { + }; + + ldoa { + regulator-max-microvolt = <0x1b7740>; + regulator-always-on; + ldo-in-supply = <0x0b>; + regulator-min-microvolt = <0x1b7740>; + phandle = <0x3a>; + }; + }; + }; + + mmc@4022000 { + mmc-ddr-3_3v; + #address-cells = <0x01>; + clock-names = "ahb\0mmc"; + no-sdio; + resets = <0x01 0x11>; + interrupts = <0x3a 0x04>; + clocks = <0x01 0x3d 0x01 0x3a>; + #size-cells = <0x00>; + no-sd; + mmc-ddr-1_8v; + compatible = "allwinner,sun20i-d1-emmc\0allwinner,sun50i-a100-emmc"; + status = "disabled"; + reg = <0x4022000 0x1000>; + max-frequency = <0x8f0d180>; + cap-mmc-highspeed; + reset-names = "ahb"; + }; + + i2c@2502000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x1a>; + resets = <0x01 0x18>; + interrupts = <0x19 0x04>; + clocks = <0x01 0x44>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c"; + status = "okay"; + reg = <0x2502000 0x400>; + dmas = <0x0d 0x2b 0x0d 0x2b>; + }; + + mixer@5100000 { + iommus = <0x25 0x02>; + clock-names = "bus\0mod"; + resets = <0x24 0x00>; + clocks = <0x24 0x00 0x24 0x06>; + compatible = "allwinner,sun20i-d1-de2-mixer-0"; + reg = <0x5100000 0x100000>; + phandle = <0x03>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x26>; + phandle = <0x2b>; + }; + }; + }; + }; + + crypto@3040000 { + clock-names = "bus\0mod\0ram\0trng"; + resets = <0x01 0x04>; + interrupts = <0x44 0x04>; + clocks = <0x01 0x22 0x01 0x21 0x01 0x32 0x0a 0x02>; + compatible = "allwinner,sun20i-d1-crypto"; + reg = <0x3040000 0x800>; + }; + + usb@4101400 { + phy-names = "usb"; + resets = <0x01 0x2a>; + interrupts = <0x2f 0x04>; + clocks = <0x01 0x63 0x01 0x61>; + compatible = "allwinner,sun20i-d1-ohci\0generic-ohci"; + status = "disabled"; + phys = <0x21 0x00>; + reg = <0x4101400 0x100>; + }; + + dmic@2031000 { + clock-names = "bus\0mod"; + resets = <0x01 0x26>; + interrupts = <0x28 0x04>; + clocks = <0x01 0x5d 0x01 0x5c>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-dmic\0allwinner,sun50i-h6-dmic"; + status = "disabled"; + reg = <0x2031000 0x400>; + dmas = <0x0d 0x08>; + }; + + serial@2500400 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x13 0x14>; + resets = <0x01 0x13>; + interrupts = <0x13 0x04>; + clocks = <0x01 0x3f>; + uart-has-rtscts; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "okay"; + reg = <0x2500400 0x400>; + dmas = <0x0d 0x0f 0x0d 0x0f>; + reg-shift = <0x02>; + + bluetooth { + device-wake-gpios = <0x15 0x06 0x12 0x00>; + host-wake-gpios = <0x15 0x06 0x0e 0x00>; + compatible = "realtek,rtl8723ds-bt"; + enable-gpios = <0x15 0x06 0x0f 0x00>; + }; + }; + + dsi@5450000 { + #address-cells = <0x01>; + phy-names = "dphy"; + clock-names = "bus\0mod"; + resets = <0x01 0x33>; + interrupts = <0x6c 0x04>; + clocks = <0x01 0x6f 0x28 0x02>; + #size-cells = <0x00>; + compatible = "allwinner,sun20i-d1-mipi-dsi\0allwinner,sun50i-a100-mipi-dsi"; + status = "disabled"; + phys = <0x29>; + reg = <0x5450000 0x1000>; + + port { + + endpoint { + remote-endpoint = <0x2a>; + phandle = <0x35>; + }; + }; + }; + + spi@4025000 { + #address-cells = <0x01>; + num-cs = <0x01>; + clock-names = "ahb\0mod"; + resets = <0x01 0x1c>; + interrupts = <0x1f 0x04>; + clocks = <0x01 0x4a 0x01 0x48>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-spi\0allwinner,sun50i-r329-spi"; + status = "disabled"; + reg = <0x4025000 0x1000>; + dmas = <0x0d 0x16 0x0d 0x16>; + }; + + watchdog@1700400 { + clock-names = "hosc\0losc"; + interrupts = <0x8a 0x04>; + clocks = <0x09 0x0a 0x00>; + compatible = "allwinner,sun20i-d1-wdt"; + status = "reserved"; + reg = <0x1700400 0x20>; + }; + + dram-controller@3102000 { + dma-ranges = <0x00 0x40000000 0x80000000>; + #address-cells = <0x01>; + clock-names = "mbus\0dram\0bus"; + reg-names = "mbus\0dram"; + interrupts = <0x3b 0x04>; + clocks = <0x01 0x1a 0x01 0x2f 0x01 0x37>; + #interconnect-cells = <0x01>; + #size-cells = <0x01>; + compatible = "allwinner,sun20i-d1-mbus"; + reg = <0x3102000 0x1000 0x3103000 0x1000>; + }; + + i2s@2032000 { + clock-names = "apb\0mod"; + resets = <0x01 0x22>; + interrupts = <0x2a 0x04>; + clocks = <0x01 0x56 0x01 0x52>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-i2s\0allwinner,sun50i-r329-i2s"; + status = "disabled"; + reg = <0x2032000 0x1000>; + dmas = <0x0d 0x03 0x0d 0x03>; + }; + + interrupt-controller@10000000 { + #address-cells = <0x00>; + interrupts-extended = <0x3e 0x0b 0x3e 0x09>; + compatible = "allwinner,sun20i-d1-plic\0thead,c900-plic"; + #interrupt-cells = <0x02>; + reg = <0x10000000 0x4000000>; + phandle = <0x08>; + riscv,ndev = <0xb0>; + interrupt-controller; + }; + + clock-controller@7010000 { + #reset-cells = <0x01>; + clock-names = "hosc\0losc\0iosc\0pll-periph"; + clocks = <0x09 0x0a 0x00 0x0a 0x02 0x01 0x06>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-r-ccu"; + reg = <0x7010000 0x400>; + phandle = <0x3d>; + }; + + clock-controller@2001000 { + #reset-cells = <0x01>; + clock-names = "hosc\0losc\0iosc"; + clocks = <0x09 0x0a 0x00 0x0a 0x02>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-ccu"; + reg = <0x2001000 0x1000>; + phandle = <0x01>; + }; + + ethernet@4500000 { + syscon = <0x23>; + clock-names = "stmmaceth"; + resets = <0x01 0x1e>; + interrupts = <0x3e 0x04>; + clocks = <0x01 0x4d>; + compatible = "allwinner,sun20i-d1-emac\0allwinner,sun50i-a64-emac"; + status = "disabled"; + interrupt-names = "macirq"; + reg = <0x4500000 0x10000>; + reset-names = "stmmaceth"; + + mdio { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,dwmac-mdio"; + }; + }; + + serial@2500c00 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x17 0x18>; + resets = <0x01 0x15>; + interrupts = <0x15 0x04>; + clocks = <0x01 0x41>; + uart-has-rtscts; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "okay"; + reg = <0x2500c00 0x400>; + dmas = <0x0d 0x11 0x0d 0x11>; + reg-shift = <0x02>; + }; + + pwm@2000c00 { + clock-names = "bus\0mod"; + resets = <0x01 0x0d>; + interrupts = <0x22 0x04>; + clocks = <0x01 0x2d 0x09>; + #pwm-cells = <0x03>; + compatible = "allwinner,sun20i-d1-pwm"; + status = "disabled"; + reg = <0x2000c00 0x400>; + }; + + temperature-sensor@2009400 { + vref-supply = <0x0f>; + nvmem-cells = <0x0e>; + clock-names = "bus\0mod"; + resets = <0x01 0x21>; + interrupts = <0x4a 0x04>; + clocks = <0x01 0x51 0x09>; + #thermal-sensor-cells = <0x00>; + compatible = "allwinner,sun20i-d1-ths"; + nvmem-cell-names = "calibration"; + reg = <0x2009400 0x400>; + phandle = <0x05>; + }; + + usb@4200400 { + phy-names = "usb"; + resets = <0x01 0x2b>; + interrupts = <0x32 0x04>; + clocks = <0x01 0x64 0x01 0x62>; + compatible = "allwinner,sun20i-d1-ohci\0generic-ohci"; + status = "okay"; + phys = <0x21 0x01>; + reg = <0x4200400 0x100>; + }; + + usb@4101000 { + phy-names = "usb"; + resets = <0x01 0x2a 0x01 0x2c>; + interrupts = <0x2e 0x04>; + clocks = <0x01 0x63 0x01 0x65 0x01 0x61>; + compatible = "allwinner,sun20i-d1-ehci\0generic-ehci"; + status = "disabled"; + phys = <0x21 0x00>; + reg = <0x4101000 0x100>; + }; + + serial@2500000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x12>; + resets = <0x01 0x12>; + interrupts = <0x12 0x04>; + clocks = <0x01 0x3e>; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "okay"; + reg = <0x2500000 0x400>; + dmas = <0x0d 0x0e 0x0d 0x0e>; + reg-shift = <0x02>; + }; + + efuse@3006000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "allwinner,sun20i-d1-sid"; + reg = <0x3006000 0x1000>; + + bg-trim@28 { + bits = <0x10 0x08>; + reg = <0x28 0x04>; + phandle = <0x11>; + }; + + ths-calib@14 { + reg = <0x14 0x04>; + phandle = <0x0e>; + }; + }; + + mmc@4021000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x20>; + clock-names = "ahb\0mmc"; + cap-sd-highspeed; + vqmmc-supply = <0x0b>; + no-mmc; + bus-width = <0x04>; + non-removable; + resets = <0x01 0x10>; + interrupts = <0x39 0x04>; + clocks = <0x01 0x3c 0x01 0x39>; + #size-cells = <0x00>; + vmmc-supply = <0x0b>; + compatible = "allwinner,sun20i-d1-mmc"; + status = "okay"; + mmc-pwrseq = <0x1f>; + reg = <0x4021000 0x1000>; + max-frequency = <0x8f0d180>; + reset-names = "ahb"; + + wifi@1 { + local-mac-address = [be 91 45 a8 23 7f]; + interrupts = <0x06 0x0a 0x08>; + interrupt-parent = <0x15>; + interrupt-names = "host-wake"; + reg = <0x01>; + }; + }; + + clock-controller@5000000 { + #reset-cells = <0x01>; + clock-names = "bus\0mod"; + resets = <0x01 0x01>; + clocks = <0x01 0x1c 0x01 0x1b>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-de2-clk\0allwinner,sun50i-h5-de2-clk"; + reg = <0x5000000 0x10000>; + phandle = <0x24>; + }; + + iommu@2010000 { + interrupts = <0x50 0x04>; + clocks = <0x01 0x2e>; + #iommu-cells = <0x01>; + compatible = "allwinner,sun20i-d1-iommu"; + reg = <0x2010000 0x10000>; + phandle = <0x25>; + }; + + lcd-controller@5470000 { + clock-names = "ahb\0tcon-ch1"; + resets = <0x01 0x35>; + interrupts = <0x6b 0x04>; + clocks = <0x01 0x73 0x28 0x00>; + compatible = "allwinner,sun20i-d1-tcon-tv"; + reg = <0x5470000 0x1000>; + reset-names = "lcd"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x37>; + reg = <0x01>; + phandle = <0x30>; + }; + + endpoint@0 { + remote-endpoint = <0x36>; + reg = <0x00>; + phandle = <0x2d>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x38>; + phandle = <0x31>; + }; + }; + }; + }; + + i2s@2034000 { + clock-names = "apb\0mod"; + resets = <0x01 0x24>; + interrupts = <0x2c 0x04>; + clocks = <0x01 0x58 0x01 0x54>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-i2s\0allwinner,sun50i-r329-i2s"; + status = "disabled"; + reg = <0x2034000 0x1000>; + dmas = <0x0d 0x05 0x0d 0x05>; + }; + + usb@4200000 { + phy-names = "usb"; + resets = <0x01 0x2b 0x01 0x2d>; + interrupts = <0x31 0x04>; + clocks = <0x01 0x64 0x01 0x66 0x01 0x62>; + compatible = "allwinner,sun20i-d1-ehci\0generic-ehci"; + status = "okay"; + phys = <0x21 0x01>; + reg = <0x4200000 0x100>; + }; + + rtc@7090000 { + clock-names = "bus\0hosc\0ahb"; + interrupts = <0xa0 0x04>; + clocks = <0x3d 0x07 0x09 0x3d 0x00>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-rtc\0allwinner,sun50i-r329-rtc"; + reg = <0x7090000 0x400>; + phandle = <0x0a>; + }; + + i2c@2502800 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x1c>; + resets = <0x01 0x1a>; + interrupts = <0x1b 0x04>; + clocks = <0x01 0x46>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c"; + status = "okay"; + reg = <0x2502800 0x400>; + dmas = <0x0d 0x2d 0x0d 0x2d>; + }; + + timer@2050000 { + interrupts = <0x4b 0x04 0x4c 0x04>; + clocks = <0x09>; + compatible = "allwinner,sun20i-d1-timer\0allwinner,sun8i-a23-timer"; + reg = <0x2050000 0xa0>; + }; + + pinctrl@2000000 { + clock-names = "apb\0hosc\0losc"; + gpio-controller; + interrupts = <0x55 0x04 0x57 0x04 0x59 0x04 0x5b 0x04 0x5d 0x04 0x5f 0x04>; + clocks = <0x01 0x18 0x09 0x0a 0x00>; + compatible = "allwinner,sun20i-d1-pinctrl"; + #interrupt-cells = <0x03>; + vcc-pb-supply = <0x0b>; + vcc-pc-supply = <0x0b>; + reg = <0x2000000 0x800>; + phandle = <0x15>; + vcc-pd-supply = <0x0b>; + #gpio-cells = <0x03>; + vcc-pe-supply = <0x0c>; + vcc-pf-supply = <0x0b>; + vcc-pg-supply = <0x0b>; + interrupt-controller; + + i2c1-pb4-pins { + function = "i2c1"; + pins = "PB4\0PB5"; + phandle = <0x1b>; + }; + + i2c2-pc0-pins { + function = "i2c2"; + pins = "PC0\0PC1"; + phandle = <0x1c>; + }; + + uart3-pd10-pins { + function = "uart3"; + pins = "PD10\0PD11"; + phandle = <0x17>; + }; + + uart1-pg8-rts-cts-pins { + function = "uart1"; + pins = "PG8\0PG9"; + phandle = <0x14>; + }; + + uart3-pd13-rts-cts-pins { + function = "uart3"; + pins = "PD13\0PD14"; + phandle = <0x18>; + }; + + i2c3-pe16-pins { + function = "i2c3"; + pins = "PE16\0PE17"; + phandle = <0x1d>; + }; + + uart2-pb0-pins { + function = "uart2"; + pins = "PB0\0PB1"; + phandle = <0x16>; + }; + + mmc1-pins { + function = "mmc1"; + pins = "PG0\0PG1\0PG2\0PG3\0PG4\0PG5"; + phandle = <0x20>; + }; + + uart4-pb2-pins { + function = "uart4"; + pins = "PB2\0PB3"; + phandle = <0x19>; + }; + + mmc0-pins { + function = "mmc0"; + pins = "PF0\0PF1\0PF2\0PF3\0PF4\0PF5"; + phandle = <0x1e>; + }; + + uart1-pg6-pins { + function = "uart1"; + pins = "PG6\0PG7"; + phandle = <0x13>; + }; + + uart0-pb8-pins { + function = "uart0"; + pins = "PB8\0PB9"; + phandle = <0x12>; + }; + + i2c0-pg12-pins { + function = "i2c0"; + pins = "PG12\0PG13"; + phandle = <0x1a>; + }; + }; + + usb@4100000 { + phy-names = "usb"; + resets = <0x01 0x2e>; + interrupts = <0x2d 0x04>; + clocks = <0x01 0x67>; + extcon = <0x21 0x00>; + compatible = "allwinner,sun20i-d1-musb\0allwinner,sun8i-a33-musb"; + status = "okay"; + interrupt-names = "mc"; + phys = <0x21 0x00>; + reg = <0x4100000 0x400>; + dr_mode = "peripheral"; + }; + + phy@5451000 { + clock-names = "bus\0mod"; + resets = <0x01 0x33>; + interrupts = <0x6c 0x04>; + clocks = <0x01 0x6f 0x01 0x6e>; + #phy-cells = <0x00>; + compatible = "allwinner,sun20i-d1-mipi-dphy\0allwinner,sun50i-a100-mipi-dphy"; + reg = <0x5451000 0x1000>; + phandle = <0x29>; + }; + + phy@4100400 { + clock-names = "usb0_phy\0usb1_phy"; + reg-names = "phy_ctrl\0pmu0\0pmu1"; + resets = <0x01 0x28 0x01 0x29>; + clocks = <0x09 0x09>; + #phy-cells = <0x01>; + compatible = "allwinner,sun20i-d1-usb-phy"; + status = "okay"; + usb0_vbus-supply = <0x22>; + reg = <0x4100400 0x100 0x4101800 0x100 0x4200800 0x100>; + phandle = <0x21>; + reset-names = "usb0_reset\0usb1_reset"; + }; + + mmc@4020000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x1e>; + clock-names = "ahb\0mmc"; + cap-sd-highspeed; + vqmmc-supply = <0x0b>; + no-mmc; + bus-width = <0x04>; + resets = <0x01 0x0f>; + interrupts = <0x38 0x04>; + clocks = <0x01 0x3b 0x01 0x38>; + #size-cells = <0x00>; + vmmc-supply = <0x0b>; + compatible = "allwinner,sun20i-d1-mmc"; + status = "okay"; + disable-wp; + reg = <0x4020000 0x1000>; + max-frequency = <0x8f0d180>; + reset-names = "ahb"; + cd-gpios = <0x15 0x05 0x06 0x00>; + }; + + watchdog@6011000 { + clock-names = "hosc\0losc"; + interrupts = <0x93 0x04>; + clocks = <0x09 0x0a 0x00>; + compatible = "allwinner,sun20i-d1-wdt"; + reg = <0x6011000 0x20>; + }; + + dma-controller@3002000 { + clock-names = "bus\0mbus"; + resets = <0x01 0x06>; + interrupts = <0x42 0x04>; + clocks = <0x01 0x25 0x01 0x30>; + dma-requests = <0x30>; + compatible = "allwinner,sun20i-d1-dma"; + reg = <0x3002000 0x1000>; + phandle = <0x0d>; + dma-channels = <0x10>; + #dma-cells = <0x01>; + }; + + tcon-top@5460000 { + clock-output-names = "tcon-top-tv0\0tcon-top-dsi"; + clock-names = "bus\0tcon-tv0\0tve0\0dsi"; + resets = <0x01 0x30>; + clocks = <0x01 0x69 0x01 0x72 0x01 0x74 0x01 0x70>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-tcon-top"; + reg = <0x5460000 0x1000>; + phandle = <0x28>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x2b>; + reg = <0x00>; + phandle = <0x26>; + }; + }; + + port@5 { + reg = <0x05>; + + endpoint { + remote-endpoint = <0x32>; + phandle = <0x3b>; + }; + }; + + port@3 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x03>; + + endpoint@2 { + remote-endpoint = <0x30>; + reg = <0x02>; + phandle = <0x37>; + }; + + endpoint@0 { + remote-endpoint = <0x2f>; + reg = <0x00>; + phandle = <0x34>; + }; + }; + + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@2 { + remote-endpoint = <0x2d>; + reg = <0x02>; + phandle = <0x36>; + }; + + endpoint@0 { + remote-endpoint = <0x2c>; + reg = <0x00>; + phandle = <0x33>; + }; + }; + + port@4 { + reg = <0x04>; + + endpoint { + remote-endpoint = <0x31>; + phandle = <0x38>; + }; + }; + + port@2 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x02>; + + endpoint@1 { + remote-endpoint = <0x2e>; + reg = <0x01>; + phandle = <0x27>; + }; + }; + }; + }; + + serial@2501400 { + reg-io-width = <0x04>; + resets = <0x01 0x17>; + interrupts = <0x17 0x04>; + clocks = <0x01 0x43>; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "disabled"; + reg = <0x2501400 0x400>; + dmas = <0x0d 0x13 0x0d 0x13>; + reg-shift = <0x02>; + }; + + spi@4026000 { + #address-cells = <0x01>; + num-cs = <0x01>; + clock-names = "ahb\0mod"; + resets = <0x01 0x1d>; + interrupts = <0x20 0x04>; + clocks = <0x01 0x4b 0x01 0x49>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-spi-dbi\0allwinner,sun50i-r329-spi-dbi\0allwinner,sun50i-r329-spi"; + status = "disabled"; + reg = <0x4026000 0x1000>; + dmas = <0x0d 0x17 0x0d 0x17>; + }; + + keys@2009800 { + vref-supply = <0x0f>; + resets = <0x01 0x2f>; + interrupts = <0x4d 0x04>; + clocks = <0x01 0x68>; + compatible = "allwinner,sun20i-d1-lradc\0allwinner,sun50i-r329-lradc"; + status = "disabled"; + reg = <0x2009800 0x400>; + }; + + phy@5510000 { + clock-names = "bus\0mod"; + resets = <0x01 0x32>; + clocks = <0x01 0x6d 0x01 0x6a>; + #phy-cells = <0x00>; + compatible = "allwinner,sun20i-d1-hdmi-phy"; + status = "okay"; + reg = <0x5510000 0x10000>; + phandle = <0x39>; + reset-names = "phy"; + }; + + i2c@2502400 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x1b>; + resets = <0x01 0x19>; + interrupts = <0x1a 0x04>; + clocks = <0x01 0x45>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c"; + status = "okay"; + reg = <0x2502400 0x400>; + dmas = <0x0d 0x2c 0x0d 0x2c>; + }; + + i2s@2033000 { + clock-names = "apb\0mod"; + resets = <0x01 0x23>; + interrupts = <0x2b 0x04>; + clocks = <0x01 0x57 0x01 0x53>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-i2s\0allwinner,sun50i-r329-i2s"; + status = "disabled"; + reg = <0x2033000 0x1000>; + dmas = <0x0d 0x04 0x0d 0x04>; + }; + + lcd-controller@5461000 { + clock-output-names = "tcon-pixel-clock"; + phy-names = "lvds0"; + clock-names = "ahb\0tcon-ch0"; + resets = <0x01 0x34 0x01 0x36>; + interrupts = <0x6a 0x04>; + clocks = <0x01 0x71 0x01 0x70>; + #clock-cells = <0x00>; + compatible = "allwinner,sun20i-d1-tcon-lcd"; + phys = <0x29>; + reg = <0x5461000 0x1000>; + reset-names = "lcd\0lvds"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x34>; + reg = <0x01>; + phandle = <0x2f>; + }; + + endpoint@0 { + remote-endpoint = <0x33>; + reg = <0x00>; + phandle = <0x2c>; + }; + }; + + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x35>; + reg = <0x01>; + phandle = <0x2a>; + }; + }; + }; + }; + + mixer@5200000 { + iommus = <0x25 0x02>; + clock-names = "bus\0mod"; + resets = <0x24 0x01>; + clocks = <0x24 0x01 0x24 0x07>; + compatible = "allwinner,sun20i-d1-de2-mixer-1"; + reg = <0x5200000 0x100000>; + phandle = <0x04>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x27>; + phandle = <0x2e>; + }; + }; + }; + }; + + audio-codec@2030000 { + #address-cells = <0x01>; + clock-names = "bus\0adc\0dac\0hosc\0losc"; + resets = <0x01 0x27>; + interrupts = <0x29 0x04>; + clocks = <0x01 0x60 0x01 0x5f 0x01 0x5e 0x09 0x0a 0x00>; + #size-cells = <0x01>; + avcc-supply = <0x0f>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-codec\0simple-mfd\0syscon"; + reg = <0x2030000 0x1000>; + dmas = <0x0d 0x07 0x0d 0x07>; + hpvcc-supply = <0x10>; + + regulators@2030348 { + nvmem-cells = <0x11>; + compatible = "allwinner,sun20i-d1-analog-ldos"; + nvmem-cell-names = "bg_trim"; + reg = <0x2030348 0x04>; + + hpldo { + regulator-max-microvolt = <0x1b7740>; + regulator-min-microvolt = <0x1b7740>; + phandle = <0x10>; + hpldoin-supply = <0x0b>; + }; + + aldo { + regulator-max-microvolt = <0x1b7740>; + regulator-min-microvolt = <0x1b7740>; + phandle = <0x0f>; + vdd33-supply = <0x0b>; + }; + }; + }; + + serial@2500800 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x16>; + resets = <0x01 0x14>; + interrupts = <0x14 0x04>; + clocks = <0x01 0x40>; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "okay"; + reg = <0x2500800 0x400>; + dmas = <0x0d 0x10 0x0d 0x10>; + reg-shift = <0x02>; + }; + + spdif@2036000 { + clock-names = "apb\0rx\0tx"; + resets = <0x01 0x25>; + interrupts = <0x27 0x04>; + clocks = <0x01 0x5b 0x01 0x5a 0x01 0x59>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-spdif"; + status = "disabled"; + reg = <0x2036000 0x400>; + dmas = <0x0d 0x02 0x0d 0x02>; + }; + + led-controller@2008000 { + #address-cells = <0x01>; + clock-names = "bus\0mod"; + resets = <0x01 0x3b>; + interrupts = <0x24 0x04>; + clocks = <0x01 0x7b 0x01 0x7a>; + #size-cells = <0x00>; + dma-names = "tx"; + compatible = "allwinner,sun20i-d1-ledc\0allwinner,sun50i-a100-ledc"; + status = "disabled"; + reg = <0x2008000 0x400>; + dmas = <0x0d 0x2a>; + }; + + i2c@2502c00 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x1d>; + resets = <0x01 0x1b>; + interrupts = <0x1c 0x04>; + clocks = <0x01 0x47>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c"; + status = "okay"; + reg = <0x2502c00 0x400>; + dmas = <0x0d 0x2e 0x0d 0x2e>; + }; + }; + + leds { + compatible = "gpio-leds"; + + led-0 { + function = "status"; + color = <0x03>; + gpios = <0x15 0x03 0x12 0x00>; + }; + }; + + dvdd { + regulator-max-microvolt = <0x124f80>; + regulator-min-microvolt = <0x124f80>; + regulator-name = "dvdd"; + compatible = "regulator-fixed"; + vin-supply = <0x0b>; + }; + + aliases { + ethernet0 = "/soc/mmc@4021000/wifi@1"; + serial3 = "/soc/serial@2501000"; + serial1 = "/soc/serial@2500800"; + serial4 = "/soc/serial@2501400"; + mmc0 = "/soc/mmc@4020000"; + serial2 = "/soc/serial@2500c00"; + serial0 = "/soc/serial@2500000"; + }; + + display-engine { + allwinner,pipelines = <0x03 0x04>; + compatible = "allwinner,sun20i-d1-display-engine"; + status = "okay"; + }; + + chosen { + linux,uefi-mmap-size = <0x690>; + u-boot,version = "2024.01-rc1"; + bootargs = "BOOT_IMAGE=/boot/vmlinuz-6.8.0-31-generic root=LABEL=cloudimg-rootfs ro efi=debug earlycon"; + boot-hartid = <0x00>; + linux,uefi-mmap-start = <0x00 0x7a3c9068>; + linux,uefi-mmap-desc-size = <0x28>; + linux,uefi-mmap-desc-ver = <0x01>; + linux,uefi-secure-boot = <0x02>; + linux,uefi-system-table = <0x00 0x7ff59d38>; + stdout-path = "serial0:115200n8"; + }; + + vcc-3v3 { + regulator-max-microvolt = <0x325aa0>; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc-3v3"; + compatible = "regulator-fixed"; + phandle = <0x0b>; + vin-supply = <0x22>; + }; + + vcc { + regulator-max-microvolt = <0x4c4b40>; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc"; + compatible = "regulator-fixed"; + phandle = <0x22>; + }; + + osc24M-clk { + clock-output-names = "osc24M"; + #clock-cells = <0x00>; + clock-frequency = <0x16e3600>; + compatible = "fixed-clock"; + phandle = <0x09>; + }; + + cpus { + #address-cells = <0x01>; + #size-cells = <0x00>; + timebase-frequency = <0x16e3600>; + + cpu@0 { + cpu-supply = <0x02>; + clocks = <0x01 0x84>; + d-cache-block-size = <0x40>; + clock-frequency = <0x16e3600>; + device_type = "cpu"; + compatible = "thead,c906\0riscv"; + mmu-type = "riscv,sv39"; + d-cache-size = <0x8000>; + i-cache-size = <0x8000>; + reg = <0x00>; + phandle = <0x07>; + d-cache-sets = <0x100>; + i-cache-block-size = <0x40>; + i-cache-sets = <0x80>; + riscv,isa = "rv64imafdc"; + #cooling-cells = <0x02>; + + interrupt-controller { + #address-cells = <0x00>; + compatible = "riscv,cpu-intc"; + #interrupt-cells = <0x01>; + phandle = <0x3e>; + interrupt-controller; + }; + }; + }; + + reserved-memory { + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges; + + mmode_resv0@40040000 { + reg = <0x40040000 0x20000>; + phandle = <0x41>; + no-map; + }; + + mmode_resv1@40000000 { + reg = <0x40000000 0x40000>; + phandle = <0x40>; + no-map; + }; + }; +}; diff --git a/precompiled-trees/serial/6.8.0-31-mqpro-serial.gpio b/precompiled-trees/serial/6.8.0-31-mqpro-serial.gpio new file mode 100644 index 0000000..88e7faf --- /dev/null +++ b/precompiled-trees/serial/6.8.0-31-mqpro-serial.gpio @@ -0,0 +1,32 @@ + + MangoPI MQ Pro GPIO header (dtb name: MangoPi MQ Pro) + +Gpio Header: + func des pin pin des func + 3v3 1 --o o-- 2 5v + i2c0 (2502000.i2c:205) PG13 3 --o o-- 4 5v + i2c0 (2502000.i2c:204) PG12 5 --o o-- 6 gnd + free (39) PB7 7 --o o-- 8 PB8 uart0 (2500000.serial:40) + gnd 9 --o o-- 10 PB9 uart0 (2500000.serial:41) + free (117) PD21 11 --o o-- 12 PB5 i2c1 (2502400.i2c:37) + free (118) PD22 13 --o o-- 14 gnd + uart2 (2500800.serial:32) PB0 15 --o o-- 16 PB1 uart2 (2500800.serial:33) + 3v3 17 --o o-- 18 PD14 uart3 (2500c00.serial:110) + free (108) PD12 19 --o o-- 20 gnd + uart3 (2500c00.serial:109) PD13 21 --o o-- 22 PC1 i2c2 (2502800.i2c:65) + uart3 (2500c00.serial:107) PD11 23 --o o-- 24 PD10 uart3 (2500c00.serial:106) + gnd 25 --o o-- 26 PD15 free (111) + i2c3 (2502c00.i2c:145) PE17 27 --o o-- 28 PE16 i2c3 (2502c00.i2c:144) + free (42) PB10 29 --o o-- 30 gnd + free (43) PB11 31 --o o-- 32 PC0 i2c2 (2502800.i2c:64) + free (44) PB12 33 --o o-- 34 gnd + free (38) PB6 35 --o o-- 36 PB2 uart4 (2501000.serial:34) + free (113) PD17 37 --o o-- 38 PB3 uart4 (2501000.serial:35) + gnd 39 --o o-- 40 PB4 i2c1 (2502400.i2c:36) + +Other gpio outputs of interest: +-- PD18: Blue Status Led - gpio (2000000.pinctrl:114) + +Notes: +- I2C pins 3,5,27 and 28 (PG13, PG12, PE17 and PE16) have 10K pullup resistors to 3v3 +- The Status LED (PD18) is common with the LED_PWM pin on the DSI/LVDS output diff --git a/precompiled-trees/spi/6.8.0-31-mqpro-spi.dtb b/precompiled-trees/spi/6.8.0-31-mqpro-spi.dtb new file mode 100644 index 0000000000000000000000000000000000000000..d78ad6ad43bc9f589689784a148ba480649368f5 GIT binary patch literal 22930 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 idS21As_C+(E1Iri@oHen!U6; + model = "MangoPi MQ Pro"; + #size-cells = <0x01>; + compatible = "widora,mangopi-mq-pro\0allwinner,sun20i-d1"; + + connector { + type = "c"; + compatible = "hdmi-connector"; + + port { + + endpoint { + remote-endpoint = <0x3e>; + phandle = <0x3b>; + }; + }; + }; + + avdd2v8 { + regulator-max-microvolt = <0x2ab980>; + regulator-min-microvolt = <0x2ab980>; + regulator-name = "avdd2v8"; + compatible = "regulator-fixed"; + phandle = <0x0c>; + vin-supply = <0x0b>; + }; + + vdd-cpu { + regulator-max-microvolt = <0x10c8e0>; + regulator-min-microvolt = <0x10c8e0>; + regulator-name = "vdd-cpu"; + compatible = "regulator-fixed"; + phandle = <0x02>; + vin-supply = <0x21>; + }; + + wifi-pwrseq { + reset-gpios = <0x15 0x06 0x11 0x01>; + compatible = "mmc-pwrseq-simple"; + phandle = <0x1d>; + }; + + thermal-zones { + + cpu-thermal { + polling-delay = <0x00>; + polling-delay-passive = <0x00>; + thermal-sensors = <0x05>; + + trips { + + cpu-crit { + temperature = <0x1adb0>; + hysteresis = <0x00>; + type = "critical"; + }; + + cpu-target { + temperature = <0x14c08>; + hysteresis = <0xbb8>; + type = "passive"; + phandle = <0x06>; + }; + }; + + cooling-maps { + + map0 { + trip = <0x06>; + cooling-device = <0x07 0xffffffff 0xffffffff>; + }; + }; + }; + }; + + soc { + #address-cells = <0x01>; + dma-noncoherent; + #size-cells = <0x01>; + interrupt-parent = <0x08>; + compatible = "simple-bus"; + ranges; + + watchdog@20500a0 { + clock-names = "hosc\0losc"; + interrupts = <0x4f 0x04>; + clocks = <0x09 0x0a 0x00>; + compatible = "allwinner,sun20i-d1-wdt-reset\0allwinner,sun20i-d1-wdt"; + status = "reserved"; + reg = <0x20500a0 0x20>; + }; + + serial@2501000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x17>; + resets = <0x01 0x16>; + interrupts = <0x16 0x04>; + clocks = <0x01 0x42>; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "okay"; + reg = <0x2501000 0x400>; + dmas = <0x0d 0x12 0x0d 0x12>; + reg-shift = <0x02>; + }; + + hdmi@5500000 { + reg-io-width = <0x01>; + phy-names = "phy"; + clock-names = "iahb\0isfr\0cec"; + hvcc-supply = <0x39>; + resets = <0x01 0x31>; + interrupts = <0x6d 0x04>; + clocks = <0x01 0x6d 0x01 0x6a 0x01 0x6c>; + compatible = "allwinner,sun20i-d1-dw-hdmi"; + status = "okay"; + phys = <0x38>; + reg = <0x5500000 0x10000>; + reset-names = "ctrl"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint { + remote-endpoint = <0x3a>; + phandle = <0x31>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x3b>; + phandle = <0x3e>; + }; + }; + }; + }; + + syscon@3000000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "allwinner,sun20i-d1-system-control"; + ranges; + reg = <0x3000000 0x1000>; + phandle = <0x22>; + + regulators@3000150 { + compatible = "allwinner,sun20i-d1-system-ldos"; + reg = <0x3000150 0x04>; + + ldob { + }; + + ldoa { + regulator-max-microvolt = <0x1b7740>; + regulator-always-on; + ldo-in-supply = <0x0b>; + regulator-min-microvolt = <0x1b7740>; + phandle = <0x39>; + }; + }; + }; + + mmc@4022000 { + mmc-ddr-3_3v; + #address-cells = <0x01>; + clock-names = "ahb\0mmc"; + no-sdio; + resets = <0x01 0x11>; + interrupts = <0x3a 0x04>; + clocks = <0x01 0x3d 0x01 0x3a>; + #size-cells = <0x00>; + no-sd; + mmc-ddr-1_8v; + compatible = "allwinner,sun20i-d1-emmc\0allwinner,sun50i-a100-emmc"; + status = "disabled"; + reg = <0x4022000 0x1000>; + max-frequency = <0x8f0d180>; + cap-mmc-highspeed; + reset-names = "ahb"; + }; + + i2c@2502000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x19>; + resets = <0x01 0x18>; + interrupts = <0x19 0x04>; + clocks = <0x01 0x44>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c"; + status = "okay"; + reg = <0x2502000 0x400>; + dmas = <0x0d 0x2b 0x0d 0x2b>; + }; + + mixer@5100000 { + iommus = <0x24 0x02>; + clock-names = "bus\0mod"; + resets = <0x23 0x00>; + clocks = <0x23 0x00 0x23 0x06>; + compatible = "allwinner,sun20i-d1-de2-mixer-0"; + reg = <0x5100000 0x100000>; + phandle = <0x03>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x25>; + phandle = <0x2a>; + }; + }; + }; + }; + + crypto@3040000 { + clock-names = "bus\0mod\0ram\0trng"; + resets = <0x01 0x04>; + interrupts = <0x44 0x04>; + clocks = <0x01 0x22 0x01 0x21 0x01 0x32 0x0a 0x02>; + compatible = "allwinner,sun20i-d1-crypto"; + reg = <0x3040000 0x800>; + }; + + usb@4101400 { + phy-names = "usb"; + resets = <0x01 0x2a>; + interrupts = <0x2f 0x04>; + clocks = <0x01 0x63 0x01 0x61>; + compatible = "allwinner,sun20i-d1-ohci\0generic-ohci"; + status = "disabled"; + phys = <0x20 0x00>; + reg = <0x4101400 0x100>; + }; + + dmic@2031000 { + clock-names = "bus\0mod"; + resets = <0x01 0x26>; + interrupts = <0x28 0x04>; + clocks = <0x01 0x5d 0x01 0x5c>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-dmic\0allwinner,sun50i-h6-dmic"; + status = "disabled"; + reg = <0x2031000 0x400>; + dmas = <0x0d 0x08>; + }; + + serial@2500400 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x13 0x14>; + resets = <0x01 0x13>; + interrupts = <0x13 0x04>; + clocks = <0x01 0x3f>; + uart-has-rtscts; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "okay"; + reg = <0x2500400 0x400>; + dmas = <0x0d 0x0f 0x0d 0x0f>; + reg-shift = <0x02>; + + bluetooth { + device-wake-gpios = <0x15 0x06 0x12 0x00>; + host-wake-gpios = <0x15 0x06 0x0e 0x00>; + compatible = "realtek,rtl8723ds-bt"; + enable-gpios = <0x15 0x06 0x0f 0x00>; + }; + }; + + dsi@5450000 { + #address-cells = <0x01>; + phy-names = "dphy"; + clock-names = "bus\0mod"; + resets = <0x01 0x33>; + interrupts = <0x6c 0x04>; + clocks = <0x01 0x6f 0x27 0x02>; + #size-cells = <0x00>; + compatible = "allwinner,sun20i-d1-mipi-dsi\0allwinner,sun50i-a100-mipi-dsi"; + status = "disabled"; + phys = <0x28>; + reg = <0x5450000 0x1000>; + + port { + + endpoint { + remote-endpoint = <0x29>; + phandle = <0x34>; + }; + }; + }; + + spi@4025000 { + #address-cells = <0x01>; + num-cs = <0x01>; + clock-names = "ahb\0mod"; + resets = <0x01 0x1c>; + interrupts = <0x1f 0x04>; + clocks = <0x01 0x4a 0x01 0x48>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-spi\0allwinner,sun50i-r329-spi"; + status = "disabled"; + reg = <0x4025000 0x1000>; + dmas = <0x0d 0x16 0x0d 0x16>; + }; + + watchdog@1700400 { + clock-names = "hosc\0losc"; + interrupts = <0x8a 0x04>; + clocks = <0x09 0x0a 0x00>; + compatible = "allwinner,sun20i-d1-wdt"; + status = "reserved"; + reg = <0x1700400 0x20>; + }; + + dram-controller@3102000 { + dma-ranges = <0x00 0x40000000 0x80000000>; + #address-cells = <0x01>; + clock-names = "mbus\0dram\0bus"; + reg-names = "mbus\0dram"; + interrupts = <0x3b 0x04>; + clocks = <0x01 0x1a 0x01 0x2f 0x01 0x37>; + #interconnect-cells = <0x01>; + #size-cells = <0x01>; + compatible = "allwinner,sun20i-d1-mbus"; + reg = <0x3102000 0x1000 0x3103000 0x1000>; + }; + + i2s@2032000 { + clock-names = "apb\0mod"; + resets = <0x01 0x22>; + interrupts = <0x2a 0x04>; + clocks = <0x01 0x56 0x01 0x52>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-i2s\0allwinner,sun50i-r329-i2s"; + status = "disabled"; + reg = <0x2032000 0x1000>; + dmas = <0x0d 0x03 0x0d 0x03>; + }; + + interrupt-controller@10000000 { + #address-cells = <0x00>; + interrupts-extended = <0x3d 0x0b 0x3d 0x09>; + compatible = "allwinner,sun20i-d1-plic\0thead,c900-plic"; + #interrupt-cells = <0x02>; + reg = <0x10000000 0x4000000>; + phandle = <0x08>; + riscv,ndev = <0xb0>; + interrupt-controller; + }; + + clock-controller@7010000 { + #reset-cells = <0x01>; + clock-names = "hosc\0losc\0iosc\0pll-periph"; + clocks = <0x09 0x0a 0x00 0x0a 0x02 0x01 0x06>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-r-ccu"; + reg = <0x7010000 0x400>; + phandle = <0x3c>; + }; + + clock-controller@2001000 { + #reset-cells = <0x01>; + clock-names = "hosc\0losc\0iosc"; + clocks = <0x09 0x0a 0x00 0x0a 0x02>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-ccu"; + reg = <0x2001000 0x1000>; + phandle = <0x01>; + }; + + ethernet@4500000 { + syscon = <0x22>; + clock-names = "stmmaceth"; + resets = <0x01 0x1e>; + interrupts = <0x3e 0x04>; + clocks = <0x01 0x4d>; + compatible = "allwinner,sun20i-d1-emac\0allwinner,sun50i-a64-emac"; + status = "disabled"; + interrupt-names = "macirq"; + reg = <0x4500000 0x10000>; + reset-names = "stmmaceth"; + + mdio { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,dwmac-mdio"; + }; + }; + + serial@2500c00 { + reg-io-width = <0x04>; + resets = <0x01 0x15>; + interrupts = <0x15 0x04>; + clocks = <0x01 0x41>; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "disabled"; + reg = <0x2500c00 0x400>; + dmas = <0x0d 0x11 0x0d 0x11>; + reg-shift = <0x02>; + }; + + pwm@2000c00 { + clock-names = "bus\0mod"; + resets = <0x01 0x0d>; + interrupts = <0x22 0x04>; + clocks = <0x01 0x2d 0x09>; + #pwm-cells = <0x03>; + compatible = "allwinner,sun20i-d1-pwm"; + status = "disabled"; + reg = <0x2000c00 0x400>; + }; + + temperature-sensor@2009400 { + vref-supply = <0x0f>; + nvmem-cells = <0x0e>; + clock-names = "bus\0mod"; + resets = <0x01 0x21>; + interrupts = <0x4a 0x04>; + clocks = <0x01 0x51 0x09>; + #thermal-sensor-cells = <0x00>; + compatible = "allwinner,sun20i-d1-ths"; + nvmem-cell-names = "calibration"; + reg = <0x2009400 0x400>; + phandle = <0x05>; + }; + + usb@4200400 { + phy-names = "usb"; + resets = <0x01 0x2b>; + interrupts = <0x32 0x04>; + clocks = <0x01 0x64 0x01 0x62>; + compatible = "allwinner,sun20i-d1-ohci\0generic-ohci"; + status = "okay"; + phys = <0x20 0x01>; + reg = <0x4200400 0x100>; + }; + + usb@4101000 { + phy-names = "usb"; + resets = <0x01 0x2a 0x01 0x2c>; + interrupts = <0x2e 0x04>; + clocks = <0x01 0x63 0x01 0x65 0x01 0x61>; + compatible = "allwinner,sun20i-d1-ehci\0generic-ehci"; + status = "disabled"; + phys = <0x20 0x00>; + reg = <0x4101000 0x100>; + }; + + serial@2500000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x12>; + resets = <0x01 0x12>; + interrupts = <0x12 0x04>; + clocks = <0x01 0x3e>; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "okay"; + reg = <0x2500000 0x400>; + dmas = <0x0d 0x0e 0x0d 0x0e>; + reg-shift = <0x02>; + }; + + efuse@3006000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "allwinner,sun20i-d1-sid"; + reg = <0x3006000 0x1000>; + + bg-trim@28 { + bits = <0x10 0x08>; + reg = <0x28 0x04>; + phandle = <0x11>; + }; + + ths-calib@14 { + reg = <0x14 0x04>; + phandle = <0x0e>; + }; + }; + + mmc@4021000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x1e>; + clock-names = "ahb\0mmc"; + cap-sd-highspeed; + vqmmc-supply = <0x0b>; + no-mmc; + bus-width = <0x04>; + non-removable; + resets = <0x01 0x10>; + interrupts = <0x39 0x04>; + clocks = <0x01 0x3c 0x01 0x39>; + #size-cells = <0x00>; + vmmc-supply = <0x0b>; + compatible = "allwinner,sun20i-d1-mmc"; + status = "okay"; + mmc-pwrseq = <0x1d>; + reg = <0x4021000 0x1000>; + max-frequency = <0x8f0d180>; + reset-names = "ahb"; + + wifi@1 { + local-mac-address = [aa f9 2a 2c ac db]; + interrupts = <0x06 0x0a 0x08>; + interrupt-parent = <0x15>; + interrupt-names = "host-wake"; + reg = <0x01>; + }; + }; + + clock-controller@5000000 { + #reset-cells = <0x01>; + clock-names = "bus\0mod"; + resets = <0x01 0x01>; + clocks = <0x01 0x1c 0x01 0x1b>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-de2-clk\0allwinner,sun50i-h5-de2-clk"; + reg = <0x5000000 0x10000>; + phandle = <0x23>; + }; + + iommu@2010000 { + interrupts = <0x50 0x04>; + clocks = <0x01 0x2e>; + #iommu-cells = <0x01>; + compatible = "allwinner,sun20i-d1-iommu"; + reg = <0x2010000 0x10000>; + phandle = <0x24>; + }; + + lcd-controller@5470000 { + clock-names = "ahb\0tcon-ch1"; + resets = <0x01 0x35>; + interrupts = <0x6b 0x04>; + clocks = <0x01 0x73 0x27 0x00>; + compatible = "allwinner,sun20i-d1-tcon-tv"; + reg = <0x5470000 0x1000>; + reset-names = "lcd"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x36>; + reg = <0x01>; + phandle = <0x2f>; + }; + + endpoint@0 { + remote-endpoint = <0x35>; + reg = <0x00>; + phandle = <0x2c>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x37>; + phandle = <0x30>; + }; + }; + }; + }; + + i2s@2034000 { + clock-names = "apb\0mod"; + resets = <0x01 0x24>; + interrupts = <0x2c 0x04>; + clocks = <0x01 0x58 0x01 0x54>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-i2s\0allwinner,sun50i-r329-i2s"; + status = "disabled"; + reg = <0x2034000 0x1000>; + dmas = <0x0d 0x05 0x0d 0x05>; + }; + + usb@4200000 { + phy-names = "usb"; + resets = <0x01 0x2b 0x01 0x2d>; + interrupts = <0x31 0x04>; + clocks = <0x01 0x64 0x01 0x66 0x01 0x62>; + compatible = "allwinner,sun20i-d1-ehci\0generic-ehci"; + status = "okay"; + phys = <0x20 0x01>; + reg = <0x4200000 0x100>; + }; + + rtc@7090000 { + clock-names = "bus\0hosc\0ahb"; + interrupts = <0xa0 0x04>; + clocks = <0x3c 0x07 0x09 0x3c 0x00>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-rtc\0allwinner,sun50i-r329-rtc"; + reg = <0x7090000 0x400>; + phandle = <0x0a>; + }; + + i2c@2502800 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x1a>; + resets = <0x01 0x1a>; + interrupts = <0x1b 0x04>; + clocks = <0x01 0x46>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c"; + status = "okay"; + reg = <0x2502800 0x400>; + dmas = <0x0d 0x2d 0x0d 0x2d>; + }; + + timer@2050000 { + interrupts = <0x4b 0x04 0x4c 0x04>; + clocks = <0x09>; + compatible = "allwinner,sun20i-d1-timer\0allwinner,sun8i-a23-timer"; + reg = <0x2050000 0xa0>; + }; + + pinctrl@2000000 { + clock-names = "apb\0hosc\0losc"; + gpio-controller; + interrupts = <0x55 0x04 0x57 0x04 0x59 0x04 0x5b 0x04 0x5d 0x04 0x5f 0x04>; + clocks = <0x01 0x18 0x09 0x0a 0x00>; + compatible = "allwinner,sun20i-d1-pinctrl"; + #interrupt-cells = <0x03>; + vcc-pb-supply = <0x0b>; + vcc-pc-supply = <0x0b>; + reg = <0x2000000 0x800>; + phandle = <0x15>; + vcc-pd-supply = <0x0b>; + #gpio-cells = <0x03>; + vcc-pe-supply = <0x0c>; + vcc-pf-supply = <0x0b>; + vcc-pg-supply = <0x0b>; + interrupt-controller; + + i2c2-pc0-pins { + function = "i2c2"; + pins = "PC0\0PC1"; + phandle = <0x1a>; + }; + + uart1-pg8-rts-cts-pins { + function = "uart1"; + pins = "PG8\0PG9"; + phandle = <0x14>; + }; + + i2c3-pe16-pins { + function = "i2c3"; + pins = "PE16\0PE17"; + phandle = <0x1b>; + }; + + uart2-pb0-pins { + function = "uart2"; + pins = "PB0\0PB1"; + phandle = <0x16>; + }; + + mmc1-pins { + function = "mmc1"; + pins = "PG0\0PG1\0PG2\0PG3\0PG4\0PG5"; + phandle = <0x1e>; + }; + + uart5-pb4-pins { + function = "uart5"; + pins = "PB4\0PB5"; + phandle = <0x18>; + }; + + uart4-pb2-pins { + function = "uart4"; + pins = "PB2\0PB3"; + phandle = <0x17>; + }; + + mmc0-pins { + function = "mmc0"; + pins = "PF0\0PF1\0PF2\0PF3\0PF4\0PF5"; + phandle = <0x1c>; + }; + + uart1-pg6-pins { + function = "uart1"; + pins = "PG6\0PG7"; + phandle = <0x13>; + }; + + uart0-pb8-pins { + function = "uart0"; + pins = "PB8\0PB9"; + phandle = <0x12>; + }; + + spi1-pd-pins { + function = "spi1"; + pins = "PD10\0PD11\0PD12\0PD13\0PD14\0PD15"; + phandle = <0x1f>; + }; + + i2c0-pg12-pins { + function = "i2c0"; + pins = "PG12\0PG13"; + phandle = <0x19>; + }; + }; + + usb@4100000 { + phy-names = "usb"; + resets = <0x01 0x2e>; + interrupts = <0x2d 0x04>; + clocks = <0x01 0x67>; + extcon = <0x20 0x00>; + compatible = "allwinner,sun20i-d1-musb\0allwinner,sun8i-a33-musb"; + status = "okay"; + interrupt-names = "mc"; + phys = <0x20 0x00>; + reg = <0x4100000 0x400>; + dr_mode = "peripheral"; + }; + + phy@5451000 { + clock-names = "bus\0mod"; + resets = <0x01 0x33>; + interrupts = <0x6c 0x04>; + clocks = <0x01 0x6f 0x01 0x6e>; + #phy-cells = <0x00>; + compatible = "allwinner,sun20i-d1-mipi-dphy\0allwinner,sun50i-a100-mipi-dphy"; + reg = <0x5451000 0x1000>; + phandle = <0x28>; + }; + + phy@4100400 { + clock-names = "usb0_phy\0usb1_phy"; + reg-names = "phy_ctrl\0pmu0\0pmu1"; + resets = <0x01 0x28 0x01 0x29>; + clocks = <0x09 0x09>; + #phy-cells = <0x01>; + compatible = "allwinner,sun20i-d1-usb-phy"; + status = "okay"; + usb0_vbus-supply = <0x21>; + reg = <0x4100400 0x100 0x4101800 0x100 0x4200800 0x100>; + phandle = <0x20>; + reset-names = "usb0_reset\0usb1_reset"; + }; + + mmc@4020000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x1c>; + clock-names = "ahb\0mmc"; + cap-sd-highspeed; + vqmmc-supply = <0x0b>; + no-mmc; + bus-width = <0x04>; + resets = <0x01 0x0f>; + interrupts = <0x38 0x04>; + clocks = <0x01 0x3b 0x01 0x38>; + #size-cells = <0x00>; + vmmc-supply = <0x0b>; + compatible = "allwinner,sun20i-d1-mmc"; + status = "okay"; + disable-wp; + reg = <0x4020000 0x1000>; + max-frequency = <0x8f0d180>; + reset-names = "ahb"; + cd-gpios = <0x15 0x05 0x06 0x00>; + }; + + watchdog@6011000 { + clock-names = "hosc\0losc"; + interrupts = <0x93 0x04>; + clocks = <0x09 0x0a 0x00>; + compatible = "allwinner,sun20i-d1-wdt"; + reg = <0x6011000 0x20>; + }; + + dma-controller@3002000 { + clock-names = "bus\0mbus"; + resets = <0x01 0x06>; + interrupts = <0x42 0x04>; + clocks = <0x01 0x25 0x01 0x30>; + dma-requests = <0x30>; + compatible = "allwinner,sun20i-d1-dma"; + reg = <0x3002000 0x1000>; + phandle = <0x0d>; + dma-channels = <0x10>; + #dma-cells = <0x01>; + }; + + tcon-top@5460000 { + clock-output-names = "tcon-top-tv0\0tcon-top-dsi"; + clock-names = "bus\0tcon-tv0\0tve0\0dsi"; + resets = <0x01 0x30>; + clocks = <0x01 0x69 0x01 0x72 0x01 0x74 0x01 0x70>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-tcon-top"; + reg = <0x5460000 0x1000>; + phandle = <0x27>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x2a>; + reg = <0x00>; + phandle = <0x25>; + }; + }; + + port@5 { + reg = <0x05>; + + endpoint { + remote-endpoint = <0x31>; + phandle = <0x3a>; + }; + }; + + port@3 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x03>; + + endpoint@2 { + remote-endpoint = <0x2f>; + reg = <0x02>; + phandle = <0x36>; + }; + + endpoint@0 { + remote-endpoint = <0x2e>; + reg = <0x00>; + phandle = <0x33>; + }; + }; + + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@2 { + remote-endpoint = <0x2c>; + reg = <0x02>; + phandle = <0x35>; + }; + + endpoint@0 { + remote-endpoint = <0x2b>; + reg = <0x00>; + phandle = <0x32>; + }; + }; + + port@4 { + reg = <0x04>; + + endpoint { + remote-endpoint = <0x30>; + phandle = <0x37>; + }; + }; + + port@2 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x02>; + + endpoint@1 { + remote-endpoint = <0x2d>; + reg = <0x01>; + phandle = <0x26>; + }; + }; + }; + }; + + serial@2501400 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x18>; + resets = <0x01 0x17>; + interrupts = <0x17 0x04>; + clocks = <0x01 0x43>; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "okay"; + reg = <0x2501400 0x400>; + dmas = <0x0d 0x13 0x0d 0x13>; + reg-shift = <0x02>; + }; + + spi@4026000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x01>; + pinctrl-0 = <0x1f>; + clock-names = "ahb\0mod"; + resets = <0x01 0x1d>; + interrupts = <0x20 0x04>; + clocks = <0x01 0x4b 0x01 0x49>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-spi-dbi\0allwinner,sun50i-r329-spi-dbi\0allwinner,sun50i-r329-spi"; + status = "okay"; + reg = <0x4026000 0x1000>; + dmas = <0x0d 0x17 0x0d 0x17>; + }; + + keys@2009800 { + vref-supply = <0x0f>; + resets = <0x01 0x2f>; + interrupts = <0x4d 0x04>; + clocks = <0x01 0x68>; + compatible = "allwinner,sun20i-d1-lradc\0allwinner,sun50i-r329-lradc"; + status = "disabled"; + reg = <0x2009800 0x400>; + }; + + phy@5510000 { + clock-names = "bus\0mod"; + resets = <0x01 0x32>; + clocks = <0x01 0x6d 0x01 0x6a>; + #phy-cells = <0x00>; + compatible = "allwinner,sun20i-d1-hdmi-phy"; + status = "okay"; + reg = <0x5510000 0x10000>; + phandle = <0x38>; + reset-names = "phy"; + }; + + i2c@2502400 { + #address-cells = <0x01>; + resets = <0x01 0x19>; + interrupts = <0x1a 0x04>; + clocks = <0x01 0x45>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c"; + status = "disabled"; + reg = <0x2502400 0x400>; + dmas = <0x0d 0x2c 0x0d 0x2c>; + }; + + i2s@2033000 { + clock-names = "apb\0mod"; + resets = <0x01 0x23>; + interrupts = <0x2b 0x04>; + clocks = <0x01 0x57 0x01 0x53>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-i2s\0allwinner,sun50i-r329-i2s"; + status = "disabled"; + reg = <0x2033000 0x1000>; + dmas = <0x0d 0x04 0x0d 0x04>; + }; + + lcd-controller@5461000 { + clock-output-names = "tcon-pixel-clock"; + phy-names = "lvds0"; + clock-names = "ahb\0tcon-ch0"; + resets = <0x01 0x34 0x01 0x36>; + interrupts = <0x6a 0x04>; + clocks = <0x01 0x71 0x01 0x70>; + #clock-cells = <0x00>; + compatible = "allwinner,sun20i-d1-tcon-lcd"; + phys = <0x28>; + reg = <0x5461000 0x1000>; + reset-names = "lcd\0lvds"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x33>; + reg = <0x01>; + phandle = <0x2e>; + }; + + endpoint@0 { + remote-endpoint = <0x32>; + reg = <0x00>; + phandle = <0x2b>; + }; + }; + + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x34>; + reg = <0x01>; + phandle = <0x29>; + }; + }; + }; + }; + + mixer@5200000 { + iommus = <0x24 0x02>; + clock-names = "bus\0mod"; + resets = <0x23 0x01>; + clocks = <0x23 0x01 0x23 0x07>; + compatible = "allwinner,sun20i-d1-de2-mixer-1"; + reg = <0x5200000 0x100000>; + phandle = <0x04>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x26>; + phandle = <0x2d>; + }; + }; + }; + }; + + audio-codec@2030000 { + #address-cells = <0x01>; + clock-names = "bus\0adc\0dac\0hosc\0losc"; + resets = <0x01 0x27>; + interrupts = <0x29 0x04>; + clocks = <0x01 0x60 0x01 0x5f 0x01 0x5e 0x09 0x0a 0x00>; + #size-cells = <0x01>; + avcc-supply = <0x0f>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-codec\0simple-mfd\0syscon"; + reg = <0x2030000 0x1000>; + dmas = <0x0d 0x07 0x0d 0x07>; + hpvcc-supply = <0x10>; + + regulators@2030348 { + nvmem-cells = <0x11>; + compatible = "allwinner,sun20i-d1-analog-ldos"; + nvmem-cell-names = "bg_trim"; + reg = <0x2030348 0x04>; + + hpldo { + regulator-max-microvolt = <0x1b7740>; + regulator-min-microvolt = <0x1b7740>; + phandle = <0x10>; + hpldoin-supply = <0x0b>; + }; + + aldo { + regulator-max-microvolt = <0x1b7740>; + regulator-min-microvolt = <0x1b7740>; + phandle = <0x0f>; + vdd33-supply = <0x0b>; + }; + }; + }; + + serial@2500800 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x16>; + resets = <0x01 0x14>; + interrupts = <0x14 0x04>; + clocks = <0x01 0x40>; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "okay"; + reg = <0x2500800 0x400>; + dmas = <0x0d 0x10 0x0d 0x10>; + reg-shift = <0x02>; + }; + + spdif@2036000 { + clock-names = "apb\0rx\0tx"; + resets = <0x01 0x25>; + interrupts = <0x27 0x04>; + clocks = <0x01 0x5b 0x01 0x5a 0x01 0x59>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-spdif"; + status = "disabled"; + reg = <0x2036000 0x400>; + dmas = <0x0d 0x02 0x0d 0x02>; + }; + + led-controller@2008000 { + #address-cells = <0x01>; + clock-names = "bus\0mod"; + resets = <0x01 0x3b>; + interrupts = <0x24 0x04>; + clocks = <0x01 0x7b 0x01 0x7a>; + #size-cells = <0x00>; + dma-names = "tx"; + compatible = "allwinner,sun20i-d1-ledc\0allwinner,sun50i-a100-ledc"; + status = "disabled"; + reg = <0x2008000 0x400>; + dmas = <0x0d 0x2a>; + }; + + i2c@2502c00 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x1b>; + resets = <0x01 0x1b>; + interrupts = <0x1c 0x04>; + clocks = <0x01 0x47>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c"; + status = "okay"; + reg = <0x2502c00 0x400>; + dmas = <0x0d 0x2e 0x0d 0x2e>; + }; + }; + + leds { + compatible = "gpio-leds"; + + led-0 { + function = "status"; + color = <0x03>; + gpios = <0x15 0x03 0x12 0x00>; + }; + }; + + dvdd { + regulator-max-microvolt = <0x124f80>; + regulator-min-microvolt = <0x124f80>; + regulator-name = "dvdd"; + compatible = "regulator-fixed"; + vin-supply = <0x0b>; + }; + + aliases { + ethernet0 = "/soc/mmc@4021000/wifi@1"; + serial3 = "/soc/serial@2501000"; + serial1 = "/soc/serial@2500800"; + serial4 = "/soc/serial@2501400"; + mmc0 = "/soc/mmc@4020000"; + serial2 = "/soc/serial@2500c00"; + serial0 = "/soc/serial@2500000"; + }; + + display-engine { + allwinner,pipelines = <0x03 0x04>; + compatible = "allwinner,sun20i-d1-display-engine"; + status = "okay"; + }; + + chosen { + linux,uefi-mmap-size = <0x690>; + u-boot,version = "2024.01-rc1"; + bootargs = "BOOT_IMAGE=/boot/vmlinuz-6.8.0-31-generic root=LABEL=cloudimg-rootfs ro efi=debug earlycon"; + boot-hartid = <0x00>; + linux,uefi-mmap-start = <0x00 0x7a3c9068>; + linux,uefi-mmap-desc-size = <0x28>; + linux,uefi-mmap-desc-ver = <0x01>; + linux,uefi-secure-boot = <0x02>; + linux,uefi-system-table = <0x00 0x7ff59d38>; + stdout-path = "serial0:115200n8"; + }; + + vcc-3v3 { + regulator-max-microvolt = <0x325aa0>; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc-3v3"; + compatible = "regulator-fixed"; + phandle = <0x0b>; + vin-supply = <0x21>; + }; + + vcc { + regulator-max-microvolt = <0x4c4b40>; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc"; + compatible = "regulator-fixed"; + phandle = <0x21>; + }; + + osc24M-clk { + clock-output-names = "osc24M"; + #clock-cells = <0x00>; + clock-frequency = <0x16e3600>; + compatible = "fixed-clock"; + phandle = <0x09>; + }; + + cpus { + #address-cells = <0x01>; + #size-cells = <0x00>; + timebase-frequency = <0x16e3600>; + + cpu@0 { + cpu-supply = <0x02>; + clocks = <0x01 0x84>; + d-cache-block-size = <0x40>; + clock-frequency = <0x16e3600>; + device_type = "cpu"; + compatible = "thead,c906\0riscv"; + mmu-type = "riscv,sv39"; + d-cache-size = <0x8000>; + i-cache-size = <0x8000>; + reg = <0x00>; + phandle = <0x07>; + d-cache-sets = <0x100>; + i-cache-block-size = <0x40>; + i-cache-sets = <0x80>; + riscv,isa = "rv64imafdc"; + #cooling-cells = <0x02>; + + interrupt-controller { + #address-cells = <0x00>; + compatible = "riscv,cpu-intc"; + #interrupt-cells = <0x01>; + phandle = <0x3d>; + interrupt-controller; + }; + }; + }; + + reserved-memory { + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges; + + mmode_resv0@40040000 { + reg = <0x40040000 0x20000>; + phandle = <0x40>; + no-map; + }; + + mmode_resv1@40000000 { + reg = <0x40000000 0x40000>; + phandle = <0x3f>; + no-map; + }; + }; +}; diff --git a/precompiled-trees/spi/6.8.0-31-mqpro-spi.gpio b/precompiled-trees/spi/6.8.0-31-mqpro-spi.gpio new file mode 100644 index 0000000..bb25250 --- /dev/null +++ b/precompiled-trees/spi/6.8.0-31-mqpro-spi.gpio @@ -0,0 +1,32 @@ + + MangoPI MQ Pro GPIO header (dtb name: MangoPi MQ Pro) + +Gpio Header: + func des pin pin des func + 3v3 1 --o o-- 2 5v + i2c0 (2502000.i2c:205) PG13 3 --o o-- 4 5v + i2c0 (2502000.i2c:204) PG12 5 --o o-- 6 gnd + free (39) PB7 7 --o o-- 8 PB8 uart0 (2500000.serial:40) + gnd 9 --o o-- 10 PB9 uart0 (2500000.serial:41) + free (117) PD21 11 --o o-- 12 PB5 uart5 (2501400.serial:37) + free (118) PD22 13 --o o-- 14 gnd + uart2 (2500800.serial:32) PB0 15 --o o-- 16 PB1 uart2 (2500800.serial:33) + 3v3 17 --o o-- 18 PD14 spi1 (4026000.spi:110) + spi1 (4026000.spi:108) PD12 19 --o o-- 20 gnd + spi1 (4026000.spi:109) PD13 21 --o o-- 22 PC1 i2c2 (2502800.i2c:65) + spi1 (4026000.spi:107) PD11 23 --o o-- 24 PD10 spi1 (4026000.spi:106) + gnd 25 --o o-- 26 PD15 spi1 (4026000.spi:111) + i2c3 (2502c00.i2c:145) PE17 27 --o o-- 28 PE16 i2c3 (2502c00.i2c:144) + free (42) PB10 29 --o o-- 30 gnd + free (43) PB11 31 --o o-- 32 PC0 i2c2 (2502800.i2c:64) + free (44) PB12 33 --o o-- 34 gnd + free (38) PB6 35 --o o-- 36 PB2 uart4 (2501000.serial:34) + free (113) PD17 37 --o o-- 38 PB3 uart4 (2501000.serial:35) + gnd 39 --o o-- 40 PB4 uart5 (2501400.serial:36) + +Other gpio outputs of interest: +-- PD18: Blue Status Led - gpio (2000000.pinctrl:114) + +Notes: +- I2C pins 3,5,27 and 28 (PG13, PG12, PE17 and PE16) have 10K pullup resistors to 3v3 +- The Status LED (PD18) is common with the LED_PWM pin on the DSI/LVDS output diff --git a/precompiled-trees/sunxi/6.8.0-31-mqpro-sunxi.dtb b/precompiled-trees/sunxi/6.8.0-31-mqpro-sunxi.dtb new file mode 100644 index 0000000000000000000000000000000000000000..54134a301ec7caffe20415ba50ab566f4b1ad990 GIT binary patch literal 22002 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 + model = "MangoPi MQ Pro"; + #size-cells = <0x01>; + compatible = "widora,mangopi-mq-pro\0allwinner,sun20i-d1"; + + connector { + type = "c"; + compatible = "hdmi-connector"; + + port { + + endpoint { + remote-endpoint = <0x37>; + phandle = <0x34>; + }; + }; + }; + + avdd2v8 { + regulator-max-microvolt = <0x2ab980>; + regulator-min-microvolt = <0x2ab980>; + regulator-name = "avdd2v8"; + compatible = "regulator-fixed"; + phandle = <0x0c>; + vin-supply = <0x0b>; + }; + + vdd-cpu { + regulator-max-microvolt = <0x10c8e0>; + regulator-min-microvolt = <0x10c8e0>; + regulator-name = "vdd-cpu"; + compatible = "regulator-fixed"; + phandle = <0x02>; + vin-supply = <0x1a>; + }; + + wifi-pwrseq { + reset-gpios = <0x15 0x06 0x11 0x01>; + compatible = "mmc-pwrseq-simple"; + phandle = <0x17>; + }; + + thermal-zones { + + cpu-thermal { + polling-delay = <0x00>; + polling-delay-passive = <0x00>; + thermal-sensors = <0x05>; + + trips { + + cpu-crit { + temperature = <0x1adb0>; + hysteresis = <0x00>; + type = "critical"; + }; + + cpu-target { + temperature = <0x14c08>; + hysteresis = <0xbb8>; + type = "passive"; + phandle = <0x06>; + }; + }; + + cooling-maps { + + map0 { + trip = <0x06>; + cooling-device = <0x07 0xffffffff 0xffffffff>; + }; + }; + }; + }; + + soc { + #address-cells = <0x01>; + dma-noncoherent; + #size-cells = <0x01>; + interrupt-parent = <0x08>; + compatible = "simple-bus"; + ranges; + + watchdog@20500a0 { + clock-names = "hosc\0losc"; + interrupts = <0x4f 0x04>; + clocks = <0x09 0x0a 0x00>; + compatible = "allwinner,sun20i-d1-wdt-reset\0allwinner,sun20i-d1-wdt"; + status = "reserved"; + reg = <0x20500a0 0x20>; + }; + + serial@2501000 { + reg-io-width = <0x04>; + resets = <0x01 0x16>; + interrupts = <0x16 0x04>; + clocks = <0x01 0x42>; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "disabled"; + reg = <0x2501000 0x400>; + dmas = <0x0d 0x12 0x0d 0x12>; + reg-shift = <0x02>; + }; + + hdmi@5500000 { + reg-io-width = <0x01>; + phy-names = "phy"; + clock-names = "iahb\0isfr\0cec"; + hvcc-supply = <0x32>; + resets = <0x01 0x31>; + interrupts = <0x6d 0x04>; + clocks = <0x01 0x6d 0x01 0x6a 0x01 0x6c>; + compatible = "allwinner,sun20i-d1-dw-hdmi"; + status = "okay"; + phys = <0x31>; + reg = <0x5500000 0x10000>; + reset-names = "ctrl"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint { + remote-endpoint = <0x33>; + phandle = <0x2a>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x34>; + phandle = <0x37>; + }; + }; + }; + }; + + syscon@3000000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "allwinner,sun20i-d1-system-control"; + ranges; + reg = <0x3000000 0x1000>; + phandle = <0x1b>; + + regulators@3000150 { + compatible = "allwinner,sun20i-d1-system-ldos"; + reg = <0x3000150 0x04>; + + ldob { + }; + + ldoa { + regulator-max-microvolt = <0x1b7740>; + regulator-always-on; + ldo-in-supply = <0x0b>; + regulator-min-microvolt = <0x1b7740>; + phandle = <0x32>; + }; + }; + }; + + mmc@4022000 { + mmc-ddr-3_3v; + #address-cells = <0x01>; + clock-names = "ahb\0mmc"; + no-sdio; + resets = <0x01 0x11>; + interrupts = <0x3a 0x04>; + clocks = <0x01 0x3d 0x01 0x3a>; + #size-cells = <0x00>; + no-sd; + mmc-ddr-1_8v; + compatible = "allwinner,sun20i-d1-emmc\0allwinner,sun50i-a100-emmc"; + status = "disabled"; + reg = <0x4022000 0x1000>; + max-frequency = <0x8f0d180>; + cap-mmc-highspeed; + reset-names = "ahb"; + }; + + i2c@2502000 { + #address-cells = <0x01>; + resets = <0x01 0x18>; + interrupts = <0x19 0x04>; + clocks = <0x01 0x44>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c"; + status = "disabled"; + reg = <0x2502000 0x400>; + dmas = <0x0d 0x2b 0x0d 0x2b>; + }; + + mixer@5100000 { + iommus = <0x1d 0x02>; + clock-names = "bus\0mod"; + resets = <0x1c 0x00>; + clocks = <0x1c 0x00 0x1c 0x06>; + compatible = "allwinner,sun20i-d1-de2-mixer-0"; + reg = <0x5100000 0x100000>; + phandle = <0x03>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x1e>; + phandle = <0x23>; + }; + }; + }; + }; + + crypto@3040000 { + clock-names = "bus\0mod\0ram\0trng"; + resets = <0x01 0x04>; + interrupts = <0x44 0x04>; + clocks = <0x01 0x22 0x01 0x21 0x01 0x32 0x0a 0x02>; + compatible = "allwinner,sun20i-d1-crypto"; + reg = <0x3040000 0x800>; + }; + + usb@4101400 { + phy-names = "usb"; + resets = <0x01 0x2a>; + interrupts = <0x2f 0x04>; + clocks = <0x01 0x63 0x01 0x61>; + compatible = "allwinner,sun20i-d1-ohci\0generic-ohci"; + status = "disabled"; + phys = <0x19 0x00>; + reg = <0x4101400 0x100>; + }; + + dmic@2031000 { + clock-names = "bus\0mod"; + resets = <0x01 0x26>; + interrupts = <0x28 0x04>; + clocks = <0x01 0x5d 0x01 0x5c>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-dmic\0allwinner,sun50i-h6-dmic"; + status = "disabled"; + reg = <0x2031000 0x400>; + dmas = <0x0d 0x08>; + }; + + serial@2500400 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x13 0x14>; + resets = <0x01 0x13>; + interrupts = <0x13 0x04>; + clocks = <0x01 0x3f>; + uart-has-rtscts; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "okay"; + reg = <0x2500400 0x400>; + dmas = <0x0d 0x0f 0x0d 0x0f>; + reg-shift = <0x02>; + + bluetooth { + device-wake-gpios = <0x15 0x06 0x12 0x00>; + host-wake-gpios = <0x15 0x06 0x0e 0x00>; + compatible = "realtek,rtl8723ds-bt"; + enable-gpios = <0x15 0x06 0x0f 0x00>; + }; + }; + + dsi@5450000 { + #address-cells = <0x01>; + phy-names = "dphy"; + clock-names = "bus\0mod"; + resets = <0x01 0x33>; + interrupts = <0x6c 0x04>; + clocks = <0x01 0x6f 0x20 0x02>; + #size-cells = <0x00>; + compatible = "allwinner,sun20i-d1-mipi-dsi\0allwinner,sun50i-a100-mipi-dsi"; + status = "disabled"; + phys = <0x21>; + reg = <0x5450000 0x1000>; + + port { + + endpoint { + remote-endpoint = <0x22>; + phandle = <0x2d>; + }; + }; + }; + + spi@4025000 { + #address-cells = <0x01>; + num-cs = <0x01>; + clock-names = "ahb\0mod"; + resets = <0x01 0x1c>; + interrupts = <0x1f 0x04>; + clocks = <0x01 0x4a 0x01 0x48>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-spi\0allwinner,sun50i-r329-spi"; + status = "disabled"; + reg = <0x4025000 0x1000>; + dmas = <0x0d 0x16 0x0d 0x16>; + }; + + watchdog@1700400 { + clock-names = "hosc\0losc"; + interrupts = <0x8a 0x04>; + clocks = <0x09 0x0a 0x00>; + compatible = "allwinner,sun20i-d1-wdt"; + status = "reserved"; + reg = <0x1700400 0x20>; + }; + + dram-controller@3102000 { + dma-ranges = <0x00 0x40000000 0x80000000>; + #address-cells = <0x01>; + clock-names = "mbus\0dram\0bus"; + reg-names = "mbus\0dram"; + interrupts = <0x3b 0x04>; + clocks = <0x01 0x1a 0x01 0x2f 0x01 0x37>; + #interconnect-cells = <0x01>; + #size-cells = <0x01>; + compatible = "allwinner,sun20i-d1-mbus"; + reg = <0x3102000 0x1000 0x3103000 0x1000>; + }; + + i2s@2032000 { + clock-names = "apb\0mod"; + resets = <0x01 0x22>; + interrupts = <0x2a 0x04>; + clocks = <0x01 0x56 0x01 0x52>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-i2s\0allwinner,sun50i-r329-i2s"; + status = "disabled"; + reg = <0x2032000 0x1000>; + dmas = <0x0d 0x03 0x0d 0x03>; + }; + + interrupt-controller@10000000 { + #address-cells = <0x00>; + interrupts-extended = <0x36 0x0b 0x36 0x09>; + compatible = "allwinner,sun20i-d1-plic\0thead,c900-plic"; + #interrupt-cells = <0x02>; + reg = <0x10000000 0x4000000>; + phandle = <0x08>; + riscv,ndev = <0xb0>; + interrupt-controller; + }; + + clock-controller@7010000 { + #reset-cells = <0x01>; + clock-names = "hosc\0losc\0iosc\0pll-periph"; + clocks = <0x09 0x0a 0x00 0x0a 0x02 0x01 0x06>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-r-ccu"; + reg = <0x7010000 0x400>; + phandle = <0x35>; + }; + + clock-controller@2001000 { + #reset-cells = <0x01>; + clock-names = "hosc\0losc\0iosc"; + clocks = <0x09 0x0a 0x00 0x0a 0x02>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-ccu"; + reg = <0x2001000 0x1000>; + phandle = <0x01>; + }; + + ethernet@4500000 { + syscon = <0x1b>; + clock-names = "stmmaceth"; + resets = <0x01 0x1e>; + interrupts = <0x3e 0x04>; + clocks = <0x01 0x4d>; + compatible = "allwinner,sun20i-d1-emac\0allwinner,sun50i-a64-emac"; + status = "disabled"; + interrupt-names = "macirq"; + reg = <0x4500000 0x10000>; + reset-names = "stmmaceth"; + + mdio { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,dwmac-mdio"; + }; + }; + + serial@2500c00 { + reg-io-width = <0x04>; + resets = <0x01 0x15>; + interrupts = <0x15 0x04>; + clocks = <0x01 0x41>; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "disabled"; + reg = <0x2500c00 0x400>; + dmas = <0x0d 0x11 0x0d 0x11>; + reg-shift = <0x02>; + }; + + pwm@2000c00 { + clock-names = "bus\0mod"; + resets = <0x01 0x0d>; + interrupts = <0x22 0x04>; + clocks = <0x01 0x2d 0x09>; + #pwm-cells = <0x03>; + compatible = "allwinner,sun20i-d1-pwm"; + status = "disabled"; + reg = <0x2000c00 0x400>; + phandle = <0x38>; + }; + + temperature-sensor@2009400 { + vref-supply = <0x0f>; + nvmem-cells = <0x0e>; + clock-names = "bus\0mod"; + resets = <0x01 0x21>; + interrupts = <0x4a 0x04>; + clocks = <0x01 0x51 0x09>; + #thermal-sensor-cells = <0x00>; + compatible = "allwinner,sun20i-d1-ths"; + nvmem-cell-names = "calibration"; + reg = <0x2009400 0x400>; + phandle = <0x05>; + }; + + usb@4200400 { + phy-names = "usb"; + resets = <0x01 0x2b>; + interrupts = <0x32 0x04>; + clocks = <0x01 0x64 0x01 0x62>; + compatible = "allwinner,sun20i-d1-ohci\0generic-ohci"; + status = "okay"; + phys = <0x19 0x01>; + reg = <0x4200400 0x100>; + }; + + usb@4101000 { + phy-names = "usb"; + resets = <0x01 0x2a 0x01 0x2c>; + interrupts = <0x2e 0x04>; + clocks = <0x01 0x63 0x01 0x65 0x01 0x61>; + compatible = "allwinner,sun20i-d1-ehci\0generic-ehci"; + status = "disabled"; + phys = <0x19 0x00>; + reg = <0x4101000 0x100>; + }; + + serial@2500000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x12>; + resets = <0x01 0x12>; + interrupts = <0x12 0x04>; + clocks = <0x01 0x3e>; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "okay"; + reg = <0x2500000 0x400>; + dmas = <0x0d 0x0e 0x0d 0x0e>; + reg-shift = <0x02>; + }; + + efuse@3006000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "allwinner,sun20i-d1-sid"; + reg = <0x3006000 0x1000>; + + bg-trim@28 { + bits = <0x10 0x08>; + reg = <0x28 0x04>; + phandle = <0x11>; + }; + + ths-calib@14 { + reg = <0x14 0x04>; + phandle = <0x0e>; + }; + }; + + mmc@4021000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x18>; + clock-names = "ahb\0mmc"; + cap-sd-highspeed; + vqmmc-supply = <0x0b>; + no-mmc; + bus-width = <0x04>; + non-removable; + resets = <0x01 0x10>; + interrupts = <0x39 0x04>; + clocks = <0x01 0x3c 0x01 0x39>; + #size-cells = <0x00>; + vmmc-supply = <0x0b>; + compatible = "allwinner,sun20i-d1-mmc"; + status = "okay"; + mmc-pwrseq = <0x17>; + reg = <0x4021000 0x1000>; + max-frequency = <0x8f0d180>; + reset-names = "ahb"; + + wifi@1 { + local-mac-address = [4a c8 c7 88 cf 11]; + interrupts = <0x06 0x0a 0x08>; + interrupt-parent = <0x15>; + interrupt-names = "host-wake"; + reg = <0x01>; + }; + }; + + clock-controller@5000000 { + #reset-cells = <0x01>; + clock-names = "bus\0mod"; + resets = <0x01 0x01>; + clocks = <0x01 0x1c 0x01 0x1b>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-de2-clk\0allwinner,sun50i-h5-de2-clk"; + reg = <0x5000000 0x10000>; + phandle = <0x1c>; + }; + + iommu@2010000 { + interrupts = <0x50 0x04>; + clocks = <0x01 0x2e>; + #iommu-cells = <0x01>; + compatible = "allwinner,sun20i-d1-iommu"; + reg = <0x2010000 0x10000>; + phandle = <0x1d>; + }; + + lcd-controller@5470000 { + clock-names = "ahb\0tcon-ch1"; + resets = <0x01 0x35>; + interrupts = <0x6b 0x04>; + clocks = <0x01 0x73 0x20 0x00>; + compatible = "allwinner,sun20i-d1-tcon-tv"; + reg = <0x5470000 0x1000>; + reset-names = "lcd"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x2f>; + reg = <0x01>; + phandle = <0x28>; + }; + + endpoint@0 { + remote-endpoint = <0x2e>; + reg = <0x00>; + phandle = <0x25>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x30>; + phandle = <0x29>; + }; + }; + }; + }; + + i2s@2034000 { + clock-names = "apb\0mod"; + resets = <0x01 0x24>; + interrupts = <0x2c 0x04>; + clocks = <0x01 0x58 0x01 0x54>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-i2s\0allwinner,sun50i-r329-i2s"; + status = "disabled"; + reg = <0x2034000 0x1000>; + dmas = <0x0d 0x05 0x0d 0x05>; + }; + + usb@4200000 { + phy-names = "usb"; + resets = <0x01 0x2b 0x01 0x2d>; + interrupts = <0x31 0x04>; + clocks = <0x01 0x64 0x01 0x66 0x01 0x62>; + compatible = "allwinner,sun20i-d1-ehci\0generic-ehci"; + status = "okay"; + phys = <0x19 0x01>; + reg = <0x4200000 0x100>; + }; + + rtc@7090000 { + clock-names = "bus\0hosc\0ahb"; + interrupts = <0xa0 0x04>; + clocks = <0x35 0x07 0x09 0x35 0x00>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-rtc\0allwinner,sun50i-r329-rtc"; + reg = <0x7090000 0x400>; + phandle = <0x0a>; + }; + + i2c@2502800 { + #address-cells = <0x01>; + resets = <0x01 0x1a>; + interrupts = <0x1b 0x04>; + clocks = <0x01 0x46>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c"; + status = "disabled"; + reg = <0x2502800 0x400>; + dmas = <0x0d 0x2d 0x0d 0x2d>; + }; + + timer@2050000 { + interrupts = <0x4b 0x04 0x4c 0x04>; + clocks = <0x09>; + compatible = "allwinner,sun20i-d1-timer\0allwinner,sun8i-a23-timer"; + reg = <0x2050000 0xa0>; + }; + + pinctrl@2000000 { + clock-names = "apb\0hosc\0losc"; + gpio-controller; + interrupts = <0x55 0x04 0x57 0x04 0x59 0x04 0x5b 0x04 0x5d 0x04 0x5f 0x04>; + clocks = <0x01 0x18 0x09 0x0a 0x00>; + compatible = "allwinner,sun20i-d1-pinctrl"; + #interrupt-cells = <0x03>; + vcc-pb-supply = <0x0b>; + vcc-pc-supply = <0x0b>; + reg = <0x2000000 0x800>; + phandle = <0x15>; + vcc-pd-supply = <0x0b>; + #gpio-cells = <0x03>; + vcc-pe-supply = <0x0c>; + vcc-pf-supply = <0x0b>; + vcc-pg-supply = <0x0b>; + interrupt-controller; + + uart1-pg8-rts-cts-pins { + function = "uart1"; + pins = "PG8\0PG9"; + phandle = <0x14>; + }; + + mmc1-pins { + function = "mmc1"; + pins = "PG0\0PG1\0PG2\0PG3\0PG4\0PG5"; + phandle = <0x18>; + }; + + mmc0-pins { + function = "mmc0"; + pins = "PF0\0PF1\0PF2\0PF3\0PF4\0PF5"; + phandle = <0x16>; + }; + + uart1-pg6-pins { + function = "uart1"; + pins = "PG6\0PG7"; + phandle = <0x13>; + }; + + uart0-pb8-pins { + function = "uart0"; + pins = "PB8\0PB9"; + phandle = <0x12>; + }; + }; + + usb@4100000 { + phy-names = "usb"; + resets = <0x01 0x2e>; + interrupts = <0x2d 0x04>; + clocks = <0x01 0x67>; + extcon = <0x19 0x00>; + compatible = "allwinner,sun20i-d1-musb\0allwinner,sun8i-a33-musb"; + status = "okay"; + interrupt-names = "mc"; + phys = <0x19 0x00>; + reg = <0x4100000 0x400>; + dr_mode = "peripheral"; + }; + + phy@5451000 { + clock-names = "bus\0mod"; + resets = <0x01 0x33>; + interrupts = <0x6c 0x04>; + clocks = <0x01 0x6f 0x01 0x6e>; + #phy-cells = <0x00>; + compatible = "allwinner,sun20i-d1-mipi-dphy\0allwinner,sun50i-a100-mipi-dphy"; + reg = <0x5451000 0x1000>; + phandle = <0x21>; + }; + + phy@4100400 { + clock-names = "usb0_phy\0usb1_phy"; + reg-names = "phy_ctrl\0pmu0\0pmu1"; + resets = <0x01 0x28 0x01 0x29>; + clocks = <0x09 0x09>; + #phy-cells = <0x01>; + compatible = "allwinner,sun20i-d1-usb-phy"; + status = "okay"; + usb0_vbus-supply = <0x1a>; + reg = <0x4100400 0x100 0x4101800 0x100 0x4200800 0x100>; + phandle = <0x19>; + reset-names = "usb0_reset\0usb1_reset"; + }; + + mmc@4020000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x16>; + clock-names = "ahb\0mmc"; + cap-sd-highspeed; + vqmmc-supply = <0x0b>; + no-mmc; + bus-width = <0x04>; + resets = <0x01 0x0f>; + interrupts = <0x38 0x04>; + clocks = <0x01 0x3b 0x01 0x38>; + #size-cells = <0x00>; + vmmc-supply = <0x0b>; + compatible = "allwinner,sun20i-d1-mmc"; + status = "okay"; + disable-wp; + reg = <0x4020000 0x1000>; + max-frequency = <0x8f0d180>; + reset-names = "ahb"; + cd-gpios = <0x15 0x05 0x06 0x00>; + }; + + watchdog@6011000 { + clock-names = "hosc\0losc"; + interrupts = <0x93 0x04>; + clocks = <0x09 0x0a 0x00>; + compatible = "allwinner,sun20i-d1-wdt"; + reg = <0x6011000 0x20>; + }; + + dma-controller@3002000 { + clock-names = "bus\0mbus"; + resets = <0x01 0x06>; + interrupts = <0x42 0x04>; + clocks = <0x01 0x25 0x01 0x30>; + dma-requests = <0x30>; + compatible = "allwinner,sun20i-d1-dma"; + reg = <0x3002000 0x1000>; + phandle = <0x0d>; + dma-channels = <0x10>; + #dma-cells = <0x01>; + }; + + tcon-top@5460000 { + clock-output-names = "tcon-top-tv0\0tcon-top-dsi"; + clock-names = "bus\0tcon-tv0\0tve0\0dsi"; + resets = <0x01 0x30>; + clocks = <0x01 0x69 0x01 0x72 0x01 0x74 0x01 0x70>; + #clock-cells = <0x01>; + compatible = "allwinner,sun20i-d1-tcon-top"; + reg = <0x5460000 0x1000>; + phandle = <0x20>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x23>; + reg = <0x00>; + phandle = <0x1e>; + }; + }; + + port@5 { + reg = <0x05>; + + endpoint { + remote-endpoint = <0x2a>; + phandle = <0x33>; + }; + }; + + port@3 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x03>; + + endpoint@2 { + remote-endpoint = <0x28>; + reg = <0x02>; + phandle = <0x2f>; + }; + + endpoint@0 { + remote-endpoint = <0x27>; + reg = <0x00>; + phandle = <0x2c>; + }; + }; + + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@2 { + remote-endpoint = <0x25>; + reg = <0x02>; + phandle = <0x2e>; + }; + + endpoint@0 { + remote-endpoint = <0x24>; + reg = <0x00>; + phandle = <0x2b>; + }; + }; + + port@4 { + reg = <0x04>; + + endpoint { + remote-endpoint = <0x29>; + phandle = <0x30>; + }; + }; + + port@2 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x02>; + + endpoint@1 { + remote-endpoint = <0x26>; + reg = <0x01>; + phandle = <0x1f>; + }; + }; + }; + }; + + serial@2501400 { + reg-io-width = <0x04>; + resets = <0x01 0x17>; + interrupts = <0x17 0x04>; + clocks = <0x01 0x43>; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "disabled"; + reg = <0x2501400 0x400>; + dmas = <0x0d 0x13 0x0d 0x13>; + reg-shift = <0x02>; + }; + + spi@4026000 { + #address-cells = <0x01>; + num-cs = <0x01>; + clock-names = "ahb\0mod"; + resets = <0x01 0x1d>; + interrupts = <0x20 0x04>; + clocks = <0x01 0x4b 0x01 0x49>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-spi-dbi\0allwinner,sun50i-r329-spi-dbi\0allwinner,sun50i-r329-spi"; + status = "disabled"; + reg = <0x4026000 0x1000>; + dmas = <0x0d 0x17 0x0d 0x17>; + }; + + keys@2009800 { + vref-supply = <0x0f>; + resets = <0x01 0x2f>; + interrupts = <0x4d 0x04>; + clocks = <0x01 0x68>; + compatible = "allwinner,sun20i-d1-lradc\0allwinner,sun50i-r329-lradc"; + status = "disabled"; + reg = <0x2009800 0x400>; + }; + + phy@5510000 { + clock-names = "bus\0mod"; + resets = <0x01 0x32>; + clocks = <0x01 0x6d 0x01 0x6a>; + #phy-cells = <0x00>; + compatible = "allwinner,sun20i-d1-hdmi-phy"; + status = "okay"; + reg = <0x5510000 0x10000>; + phandle = <0x31>; + reset-names = "phy"; + }; + + i2c@2502400 { + #address-cells = <0x01>; + resets = <0x01 0x19>; + interrupts = <0x1a 0x04>; + clocks = <0x01 0x45>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c"; + status = "disabled"; + reg = <0x2502400 0x400>; + dmas = <0x0d 0x2c 0x0d 0x2c>; + }; + + i2s@2033000 { + clock-names = "apb\0mod"; + resets = <0x01 0x23>; + interrupts = <0x2b 0x04>; + clocks = <0x01 0x57 0x01 0x53>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-i2s\0allwinner,sun50i-r329-i2s"; + status = "disabled"; + reg = <0x2033000 0x1000>; + dmas = <0x0d 0x04 0x0d 0x04>; + }; + + lcd-controller@5461000 { + clock-output-names = "tcon-pixel-clock"; + phy-names = "lvds0"; + clock-names = "ahb\0tcon-ch0"; + resets = <0x01 0x34 0x01 0x36>; + interrupts = <0x6a 0x04>; + clocks = <0x01 0x71 0x01 0x70>; + #clock-cells = <0x00>; + compatible = "allwinner,sun20i-d1-tcon-lcd"; + phys = <0x21>; + reg = <0x5461000 0x1000>; + reset-names = "lcd\0lvds"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x2c>; + reg = <0x01>; + phandle = <0x27>; + }; + + endpoint@0 { + remote-endpoint = <0x2b>; + reg = <0x00>; + phandle = <0x24>; + }; + }; + + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x2d>; + reg = <0x01>; + phandle = <0x22>; + }; + }; + }; + }; + + mixer@5200000 { + iommus = <0x1d 0x02>; + clock-names = "bus\0mod"; + resets = <0x1c 0x01>; + clocks = <0x1c 0x01 0x1c 0x07>; + compatible = "allwinner,sun20i-d1-de2-mixer-1"; + reg = <0x5200000 0x100000>; + phandle = <0x04>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x1f>; + phandle = <0x26>; + }; + }; + }; + }; + + audio-codec@2030000 { + #address-cells = <0x01>; + clock-names = "bus\0adc\0dac\0hosc\0losc"; + resets = <0x01 0x27>; + interrupts = <0x29 0x04>; + clocks = <0x01 0x60 0x01 0x5f 0x01 0x5e 0x09 0x0a 0x00>; + #size-cells = <0x01>; + avcc-supply = <0x0f>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-codec\0simple-mfd\0syscon"; + reg = <0x2030000 0x1000>; + dmas = <0x0d 0x07 0x0d 0x07>; + hpvcc-supply = <0x10>; + + regulators@2030348 { + nvmem-cells = <0x11>; + compatible = "allwinner,sun20i-d1-analog-ldos"; + nvmem-cell-names = "bg_trim"; + reg = <0x2030348 0x04>; + + hpldo { + regulator-max-microvolt = <0x1b7740>; + regulator-min-microvolt = <0x1b7740>; + phandle = <0x10>; + hpldoin-supply = <0x0b>; + }; + + aldo { + regulator-max-microvolt = <0x1b7740>; + regulator-min-microvolt = <0x1b7740>; + phandle = <0x0f>; + vdd33-supply = <0x0b>; + }; + }; + }; + + serial@2500800 { + reg-io-width = <0x04>; + resets = <0x01 0x14>; + interrupts = <0x14 0x04>; + clocks = <0x01 0x40>; + dma-names = "rx\0tx"; + compatible = "snps,dw-apb-uart"; + status = "disabled"; + reg = <0x2500800 0x400>; + dmas = <0x0d 0x10 0x0d 0x10>; + reg-shift = <0x02>; + }; + + spdif@2036000 { + clock-names = "apb\0rx\0tx"; + resets = <0x01 0x25>; + interrupts = <0x27 0x04>; + clocks = <0x01 0x5b 0x01 0x5a 0x01 0x59>; + dma-names = "rx\0tx"; + #sound-dai-cells = <0x00>; + compatible = "allwinner,sun20i-d1-spdif"; + status = "disabled"; + reg = <0x2036000 0x400>; + dmas = <0x0d 0x02 0x0d 0x02>; + }; + + led-controller@2008000 { + #address-cells = <0x01>; + clock-names = "bus\0mod"; + resets = <0x01 0x3b>; + interrupts = <0x24 0x04>; + clocks = <0x01 0x7b 0x01 0x7a>; + #size-cells = <0x00>; + dma-names = "tx"; + compatible = "allwinner,sun20i-d1-ledc\0allwinner,sun50i-a100-ledc"; + status = "disabled"; + reg = <0x2008000 0x400>; + dmas = <0x0d 0x2a>; + }; + + i2c@2502c00 { + #address-cells = <0x01>; + resets = <0x01 0x1b>; + interrupts = <0x1c 0x04>; + clocks = <0x01 0x47>; + #size-cells = <0x00>; + dma-names = "rx\0tx"; + compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c"; + status = "disabled"; + reg = <0x2502c00 0x400>; + dmas = <0x0d 0x2e 0x0d 0x2e>; + }; + }; + + leds { + compatible = "pwm-leds"; + + led { + function = "status"; + color = <0x03>; + max-brightness = <0xff>; + pwms = <0x38 0x02 0xc350 0x00>; + }; + }; + + dvdd { + regulator-max-microvolt = <0x124f80>; + regulator-min-microvolt = <0x124f80>; + regulator-name = "dvdd"; + compatible = "regulator-fixed"; + vin-supply = <0x0b>; + }; + + aliases { + ethernet0 = "/soc/mmc@4021000/wifi@1"; + mmc0 = "/soc/mmc@4020000"; + serial0 = "/soc/serial@2500000"; + }; + + display-engine { + allwinner,pipelines = <0x03 0x04>; + compatible = "allwinner,sun20i-d1-display-engine"; + status = "okay"; + }; + + chosen { + linux,uefi-mmap-size = <0x690>; + u-boot,version = "2024.01-rc1"; + bootargs = "BOOT_IMAGE=/boot/vmlinuz-6.8.0-31-generic root=LABEL=cloudimg-rootfs ro efi=debug earlycon"; + boot-hartid = <0x00>; + linux,uefi-mmap-start = <0x00 0x7a3c9068>; + linux,uefi-mmap-desc-size = <0x28>; + linux,uefi-mmap-desc-ver = <0x01>; + linux,uefi-secure-boot = <0x02>; + linux,uefi-system-table = <0x00 0x7ff59d38>; + stdout-path = "serial0:115200n8"; + }; + + vcc-3v3 { + regulator-max-microvolt = <0x325aa0>; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc-3v3"; + compatible = "regulator-fixed"; + phandle = <0x0b>; + vin-supply = <0x1a>; + }; + + vcc { + regulator-max-microvolt = <0x4c4b40>; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc"; + compatible = "regulator-fixed"; + phandle = <0x1a>; + }; + + osc24M-clk { + clock-output-names = "osc24M"; + #clock-cells = <0x00>; + clock-frequency = <0x16e3600>; + compatible = "fixed-clock"; + phandle = <0x09>; + }; + + cpus { + #address-cells = <0x01>; + #size-cells = <0x00>; + timebase-frequency = <0x16e3600>; + + cpu@0 { + cpu-supply = <0x02>; + clocks = <0x01 0x84>; + d-cache-block-size = <0x40>; + clock-frequency = <0x16e3600>; + device_type = "cpu"; + compatible = "thead,c906\0riscv"; + mmu-type = "riscv,sv39"; + d-cache-size = <0x8000>; + i-cache-size = <0x8000>; + reg = <0x00>; + phandle = <0x07>; + d-cache-sets = <0x100>; + i-cache-block-size = <0x40>; + i-cache-sets = <0x80>; + riscv,isa = "rv64imafdc"; + #cooling-cells = <0x02>; + + interrupt-controller { + #address-cells = <0x00>; + compatible = "riscv,cpu-intc"; + #interrupt-cells = <0x01>; + phandle = <0x36>; + interrupt-controller; + }; + }; + }; + + reserved-memory { + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges; + + mmode_resv0@40040000 { + reg = <0x40040000 0x20000>; + phandle = <0x3a>; + no-map; + }; + + mmode_resv1@40000000 { + reg = <0x40000000 0x40000>; + phandle = <0x39>; + no-map; + }; + }; +}; diff --git a/precompiled-trees/sunxi/6.8.0-31-mqpro-sunxi.gpio b/precompiled-trees/sunxi/6.8.0-31-mqpro-sunxi.gpio new file mode 100644 index 0000000..38827bf --- /dev/null +++ b/precompiled-trees/sunxi/6.8.0-31-mqpro-sunxi.gpio @@ -0,0 +1,32 @@ + + MangoPI MQ Pro GPIO header (dtb name: MangoPi MQ Pro) + +Gpio Header: + func des pin pin des func + 3v3 1 --o o-- 2 5v + free (205) PG13 3 --o o-- 4 5v + free (204) PG12 5 --o o-- 6 gnd + free (39) PB7 7 --o o-- 8 PB8 uart0 (2500000.serial:40) + gnd 9 --o o-- 10 PB9 uart0 (2500000.serial:41) + free (117) PD21 11 --o o-- 12 PB5 free (37) + free (118) PD22 13 --o o-- 14 gnd + free (32) PB0 15 --o o-- 16 PB1 free (33) + 3v3 17 --o o-- 18 PD14 free (110) + free (108) PD12 19 --o o-- 20 gnd + free (109) PD13 21 --o o-- 22 PC1 free (65) + free (107) PD11 23 --o o-- 24 PD10 free (106) + gnd 25 --o o-- 26 PD15 free (111) + free (145) PE17 27 --o o-- 28 PE16 free (144) + free (42) PB10 29 --o o-- 30 gnd + free (43) PB11 31 --o o-- 32 PC0 free (64) + free (44) PB12 33 --o o-- 34 gnd + free (38) PB6 35 --o o-- 36 PB2 free (34) + free (113) PD17 37 --o o-- 38 PB3 free (35) + gnd 39 --o o-- 40 PB4 free (36) + +Other gpio outputs of interest: +-- PD18: Blue Status Led - free (114) + +Notes: +- I2C pins 3,5,27 and 28 (PG13, PG12, PE17 and PE16) have 10K pullup resistors to 3v3 +- The Status LED (PD18) is common with the LED_PWM pin on the DSI/LVDS output