diff --git a/.gitignore b/.gitignore index 06e0cac..6fb016a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # specific to this repo -device-tree/*/*.dts* +build-trees/*.dt* +build-trees/*/*.dt* source/* # Byte-compiled / optimized / DLL files diff --git a/README.md b/README.md index a1f762d..624d950 100644 --- a/README.md +++ b/README.md @@ -1,66 +1,73 @@ # MangoPI MQ Pro Device Trees for Bluetooth and GPIO ### The MQ pro is a single core allwinner D1 64bit 1Ghz, 1Gb risc-v based Pi-Zero-alike. -This is a guide for enabling bluetooth and using the MangoPi MQ pro's IO capabilities when running Ubuntu 24.04. +----------------------------- -`24.04` is a LTS+ release from Ubuntu, and should provide 5+ years of updates. As such it makes a very good choice for an unattended headless device. +# WORK IN PROGRESS + +# Currently being re-written for the 24.04.1 release. +## There are also major changes to how the device tree is handled + +`24.04.1` is a LTS+ release from Ubuntu, and should provide 5+ years of updates. As such it makes a good choice for an unattended headless device. + +Unfortunately there is no Official Ubuntu image for the MQ Pro, but you can use the image for the Lichee RV dock. This has the same SOC as the MQ-Pro, and boots properly. + +Once the Lichee image is booted you can swap the device tree it uses for the MQ-Pro one. +- Vanilla device trees for all current Risc-v platforms are provided as part of the firmware package for each kernel. +- This means that the mqpro device tree *is* available, but is not the default installed by `flash-kernel` for the image file we use. + - You can reconfigure `flash-kernel` with a different default device tree name in config + - This is future proof, each new kernel deliveres a new device tree that will be installed as the kernel is upgraded. +- The idea of compiling your own DT is depreciated in favor of the vanilla mqpro devicetree and using gpiod and pinctl to setup devices. + +----------------------------- + +This is a guide for enabling bluetooth and using the MangoPi MQ pro's IO capabilities when running Ubuntu 24.04.1 ## Installing Ubuntu -There is *no* specific image provided by Ubuntu for the MQ PRO, but they *do* provide an image for the 'AllWinner Nezha' which installs and boots on the MQ Pro with almost everything working. +There is *no* specific image provided by Ubuntu for the MQ PRO, but they *do* provide an image for the 'Sipeed Lichee RV' which installs and boots on the MQ Pro with almost everything working. -Please refer to the Ubuntu documentation and forums if struggling with this. - I had issues getting a successful first boot with a cheap SD card, using a brand-name (Kingston) high speed card solved all the issues. - I am also using a high wear resistance card since I want this to run for years in a hard-to-reach location. +The HDMI console with a USB kbd and mouse works well, install `gpm` to get a working mouse in it. Once i had bluetooth working I was able to attach and use a bluetooth kbd+mouse. + +- EXPAND!!!, + notes about hdmi console, usb ethernet adapters, presetup wifi etc. + ### steps: -- Download the 'AllWinner Nezha' Ubuntu image (compatible with the MQ pro) from: https://ubuntu.com/download/risc-v -- Follow the instructions linked there to create a SD/TF card image and boot the MQ Pro using it. -- WAIT! - - First boot is super-slow, it may take 10+ mins before you see anything on the HDMI console. - - If you have a USB-Serial adapter you can follow the boot via the serial console (`UART0` on the GPIO connector) -- Eventually you can log in (`ubuntu`,`ubuntu`) and will be guided through changing password etc. -- TODO: Wifi Setup -- Run `apt update` then `apt upgrade` and install whatever else you need. - -The only thing **not working** out of the box is **Bluetooth**; this requires a Device Tree modification to fix. See below. - -The HDMI console with a USB kbd and mouse works well, install `gpm` to get a working mouse in it. Once i had bluetooth working I was able to attach and use a bluetooth kbd+mouse with no issues. - -#### Note: -I experimentally installed XFCE, it took 1+ hrs to log in and get a totally unusable desktop, the GPU support is obviously not there yet. Fortunately I have no plans to use a desktop and so it got de-installed asap. +--- See the raw log at the end of this doc. + # My Motivation: My MQ PRO is connected to a Waveshare LORA hat, I want to make it work but the default Nezha device tree conflicts with some of the pins my HAT uses. So I decided to 'fix' this be putting a better device tree on it. -![My Hardware](waveshare_SX1268_LoRa_HAT/overview.jpg) +![My Hardware](reference/waveshare_SX1268_LoRa_HAT/overview.jpg) # Device Trees +In the install steps above we reconfigure the system to use the correct MangoPI MQ pro device tree instead of the Sipeed Lichee RV one. + A device tree is a file that defines the structure of the peripherals attached to, and provided by, the GPIO and internal busses on a SBC. It is used in several places during initial boot to discover storage, console and other devices as needed. Once the linux kernel starts it is used to provision devices such as UART, network, gpu and other hardware. The device tree itself is a source file that is compiled into a binary to be loaded during boot. In this guide we only replace the device tree used by the kernel when Linux is started in the final stages of boot up. -We do not need to modify the device tree used by U-Boot, or the kernel init processes, they still use the default (Nezha) device tree they were compiled against. Because this part of the boot process already works correctly we can avoid the complexity of recompiling anything. - -My pre-compiled device-trees for the MQ PRO are [here](./precompiled-trees), along with install notes. -- I may modify this in the future as I learn how to handle kernel upgrades properly, my current install method is probably sub-optimal. But it should work. +We do not need to modify the device tree used by U-Boot, or the kernel init processes, they still use the default (Sipeed Lichee RV) device tree they were compiled against. Because this part of the boot process already works correctly we can avoid the complexity of recompiling anything. ## Roll Your Own Device Tree -Hopefully you can find what you want in the precompiled trees, or use the vanilla tree and dynamically create your devices on it via `pinctl`. +Hopefully you can do what you need with the default tree, and dynamically create your devices on it via `pinctl`. -But if not; my somewhat limited notes on compiling the tree, plus a script that handles running the C preprocessor on them (needed to get a working binary) are in the [device-tree](./device-tree) folder. +But if not; my somewhat limited notes on compiling the tree, plus a script that handles running the C preprocessor on them (needed to get a working binary) are in the [build-trees](./build-trees) folder. # Using the new tree ## Enabling Bluetooth -You need one of the new device trees provided here; these correctly map UART1 onto the BT controller (with RTS/CTS). - -Once that is in place you still need the correct firmware for the bluetooth adapter, a copy of this is in the [bluetooth firmware](./bt-fw) folder. -* Copy the two firmware (`.bin`) files to `/usr/lib/firmware/` on the MQ PRO and reboot. +After changing to the correct device tree you also need the correct firmware for the bluetooth adapter, a copy of this is in the [files/rtl_bt/](./files/rtl_bt) folder. +* Copy the two firmware (`.bin`) files to `/usr/lib/firmware/rtl_bt/` on the MQ PRO and reboot. +* Install *Bluez* (`sudo apt install bluez`) and then you can use `bluetoothctl` to configure and connect ## Status LED -The onboard (blue) status LED can now be controlled via the sys tree: +The onboard (blue) status LED can be controlled via the sys tree: `sudo sh -c "echo 1 > /sys/devices/platform/leds/leds/blue\:status/brightness"` to turn on @@ -70,6 +77,8 @@ You can make it flash as wifi traffic is seen with: `sudo sh -c "echo phy0rx > /sys/devices/platform/leds/leds/blue\:status/trigger"` +You can make this permanent by, as root, copying `tools/mqpro-status-led.service` to `/etc/systemd/system/`, running `systemctl daemon-reload` then `systemctl enable --now mqpro-status-led.service`. + ## Using GPIO Providing a full GPIO how-to is beyond the scope of this document, I use GPIOd to do this. But have also used direct pinctl control via the `/sys/class/gpio` tree. @@ -146,3 +155,92 @@ Online: * https://mangopi.org/mangopi_mqpro * https://linux-sunxi.org/MangoPi_MQ-Pro * https://github.com/boosterl/awesome-mango-pi-mq-pro + + + +# RAW INSTALL LOG +## THIS WILL BE FOLDED INTO THE "STEPS" SECTION ABOVE. + +```console +wget https://cdimage.ubuntu.com/releases/noble/release/ubuntu-24.04.1-preinstalled-server-riscv64+licheerv.img.xz + +xzcat ubuntu-24.04.1-preinstalled-server-riscv64+licheerv.img.xz | sudo dd bs=8M conv=fsync status=progress of=/dev/mmcblk0 + +sudo mount /dev/mmcblk1p1 /mnt + +sudo vi /mnt/etc/cloud/cloud.cfg.d/55_net.cfg +------ new file comments, contents ------- +network: + version: 2 + wifis: + wlan0: + optional: true + access-points: + "SSID": + password: "PASSWORD" + dhcp4: true +----------------- +sudo umount /mnt + +Insert card to MQ Pro and BOOT +- serial adapter useful to follow progress +- hdmi console after several minutes, appears to freeze but recovers when prompt reached +- should come up on network if wifi configured or using a usb ethernet adapter +- login on console or via ssh as ubuntu:ubuntu and follow instructions to change password + +swap to mqpro dtb: + +ubuntu@ubuntu:~$ sudo vi /etc/flash-kernel/db +---- Append this after the comments ----- +Machine: MangoPI MQ pro +Kernel-Flavors: any +DTB-Id: allwinner/sun20i-d1-mangopi-mq-pro.dtb +Boot-Script-Path: /boot/boot.scr +U-Boot-Script-Name: bootscr.uboot-generic +Required-Packages: u-boot-tools +---------------- +ubuntu@ubuntu:~$ sudo vi /etc/flash-kernel/machine +--- change to read (one line) --- +MangoPI MQ pro +--- +ubuntu@ubuntu:~$ sudo flash-kernel +Using DTB: allwinner/sun20i-d1-mangopi-mq-pro.dtb +Installing /lib/firmware/6.8.0-41-generic/device-tree/allwinner/sun20i-d1-mangopi-mq-pro.dtb into /boot/dtbs/6.8.0-41-generic/allwinner/sun20i-d1-mangopi-mq-pro.dtb +Taking backup of sun20i-d1-mangopi-mq-pro.dtb. +Installing new sun20i-d1-mangopi-mq-pro.dtb. +System running in EFI mode, skipping. + +Reboot again to check the dt is correct before going further.. +... rebooting takes some time on this board +ubuntu@ubuntu:~$ sudo reboot +wait.. +ssh into the machine as ubuntu: +sudo cat /proc/device-tree/model +- should return 'MangoPi MQ Pro' + +-- now update +sudo su - +screen +apt update +.. let this run, slow on this machine, especially the first run +.. will eventually tell you that a lot of packages (149 as of this guide) need updating +apt update +.. You may see packages 'deferred due to phasing', this is quite normal, an artifact of Ubuntu's build system, and can safely be ignored. +.. This may be a good time to have lunch. + +When this completes reboot again, or finish the BT setup below first, since it also needs a reboot. + +# BT and Status LED +git clone https://github.com/easytarget/MQ-Pro-IO.git +# copy Bluetooth firmware to correct folder +sudo cp MQ-Pro-IO/files/rtl_bt/* /usr/lib/firmware/rtl_bt/ +- install bluez, use bluetoothctl to connect and pair,etc +apt install bluez +- this will be applied at next reboot + + +# set up a service for the activity light +sudo cp MQ-Pro-IO/files/mqpro-status-led.service /etc/systemd/system/ +sudo systemctl daemon-reload +sudo systemctl enable --now mqpro-status-led.service +``` diff --git a/precompiled-trees/README.md b/alt-trees/README.md similarity index 100% rename from precompiled-trees/README.md rename to alt-trees/README.md diff --git a/precompiled-trees/common/6.8.0-31-common.gpio b/alt-trees/general/README.md similarity index 100% rename from precompiled-trees/common/6.8.0-31-common.gpio rename to alt-trees/general/README.md diff --git a/precompiled-trees/common/6.8.0-31-common.dts b/alt-trees/general/general.dts similarity index 100% rename from precompiled-trees/common/6.8.0-31-common.dts rename to alt-trees/general/general.dts diff --git a/precompiled-trees/serial/6.8.0-31-mqpro-serial.gpio b/alt-trees/serial/README.md similarity index 100% rename from precompiled-trees/serial/6.8.0-31-mqpro-serial.gpio rename to alt-trees/serial/README.md diff --git a/precompiled-trees/serial/6.8.0-31-mqpro-serial.dts b/alt-trees/serial/serial.dts similarity index 100% rename from precompiled-trees/serial/6.8.0-31-mqpro-serial.dts rename to alt-trees/serial/serial.dts diff --git a/precompiled-trees/spi/6.8.0-31-mqpro-spi.gpio b/alt-trees/spi/README.md similarity index 100% rename from precompiled-trees/spi/6.8.0-31-mqpro-spi.gpio rename to alt-trees/spi/README.md diff --git a/precompiled-trees/spi/6.8.0-31-mqpro-spi.dts b/alt-trees/spi/spi.dts similarity index 100% rename from precompiled-trees/spi/6.8.0-31-mqpro-spi.dts rename to alt-trees/spi/spi.dts diff --git a/precompiled-trees/sunxi/6.8.0-31-mqpro-sunxi.gpio b/alt-trees/sun20i-d1-mangopi-mq-pro/README.md similarity index 100% rename from precompiled-trees/sunxi/6.8.0-31-mqpro-sunxi.gpio rename to alt-trees/sun20i-d1-mangopi-mq-pro/README.md diff --git a/precompiled-trees/allwinner-nezha/6.8.0-31-allwinner-nezha.gpio b/alt-trees/sun20i-d1-nezha/README.md similarity index 100% rename from precompiled-trees/allwinner-nezha/6.8.0-31-allwinner-nezha.gpio rename to alt-trees/sun20i-d1-nezha/README.md diff --git a/device-tree/README.md b/build-trees/README.md similarity index 91% rename from device-tree/README.md rename to build-trees/README.md index 4c42f29..f1b47b1 100644 --- a/device-tree/README.md +++ b/build-trees/README.md @@ -4,6 +4,9 @@ ## Ignore this: (until I properly update, some of this needs moving to source/README.md) ```console +# Install build-essentials (lots of packages, will take some time) +apt install build-essentials + # Enable source repos: # As root edit the file: /etc/apt/sources.list.d/ubuntu.sources # There should be two repo definitions, for both find the lines that say: @@ -12,13 +15,16 @@ Types: deb Types: deb deb-src # Save and exit editor. -# run +# As root, run apt update # you should see a load of new (source) repos being updated. # - adding all these source repos slows apt down, # not much that can be done about this on such a slow machine. # Now we can install the linux sources +# This can be done as a normal user +# note that the command used here `apt source` will download the sources to the current working folder, not a fixed location. + cd source apt source linux-riscv # Go for a coffee.. ignore the 'git clone' suggestion. @@ -26,6 +32,8 @@ apt source linux-riscv # directory. # It will use ~1.6Gb of space.. so be prepared.. +# If you re-run the command in this folder it will only update as needed, but is still somewhat slow since it verifies the existing downloads when updating. + ``` # Rebuild dts tree for MQ pro.. diff --git a/build-trees/make_dtb.sh b/build-trees/make_dtb.sh new file mode 100755 index 0000000..964d9b1 --- /dev/null +++ b/build-trees/make_dtb.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# Takes a list of dts files for the specified architecture and emits appropriate compiled dtb files for use in customised deviceTree setups. +# + +dtc=/usr/bin/dtc +revision=`/usr/bin/uname -r` +# alt=../alt-trees -- disabled auto building of all alt trees, better to do individually + +echo "Compiling against headers for $revision" + +if [ -d "$revision" ]; then + echo "Cleaning and Using existing build directory" + rm "$revision/*.dts $revision/*.dtsi $revision/*.dtb" +else + echo "Creating new build directory: $revision" + mkdir "$revision" +fi + +#echo "Copying custom dts sources to build root" +#for dts in `ls -d $alt/*/*.dts`; do +# echo "$dts" +# cp $dts . +#done + +echo "Precompiling all includes in build root into $revision build directory" +for file in `ls *.dtsi`; do + echo "Processing $file to $revision/${file##*/}" + cpp -I/usr/src/linux-headers-$revision/include/ -nostdinc -undef -x assembler-with-cpp $file > $revision/${file##*/} +done + +echo "Precompiling all sources in build root into $revision build directory" +for file in `ls *.dts`; do + echo "Processing $file to $revision/${file##*/}" + cpp -I/usr/src/linux-headers-$revision/include/ -nostdinc -undef -x assembler-with-cpp $file > $revision/${file##*/} +done + +echo "Compiling all device tree sources in $revision build directory" +cd $revision +for file in `ls *.dts`; do + out=${file/.dts/.dtb} + echo "Compiling: $revision/$file > $revision/$revision-$out" + $dtc $file > $revision-$out +done diff --git a/device-tree/sun20i-common-regulators.dtsi b/build-trees/sun20i-common-regulators.dtsi similarity index 100% rename from device-tree/sun20i-common-regulators.dtsi rename to build-trees/sun20i-common-regulators.dtsi diff --git a/device-tree/sun20i-d1-mangopi-mq-pro.dts b/build-trees/sun20i-d1-mangopi-mq-pro.dts similarity index 100% rename from device-tree/sun20i-d1-mangopi-mq-pro.dts rename to build-trees/sun20i-d1-mangopi-mq-pro.dts diff --git a/device-tree/sun20i-d1.dtsi b/build-trees/sun20i-d1.dtsi similarity index 100% rename from device-tree/sun20i-d1.dtsi rename to build-trees/sun20i-d1.dtsi diff --git a/device-tree/sun20i-d1s.dtsi b/build-trees/sun20i-d1s.dtsi similarity index 100% rename from device-tree/sun20i-d1s.dtsi rename to build-trees/sun20i-d1s.dtsi diff --git a/device-tree/sunxi-d1-t113.dtsi b/build-trees/sunxi-d1-t113.dtsi similarity index 100% rename from device-tree/sunxi-d1-t113.dtsi rename to build-trees/sunxi-d1-t113.dtsi diff --git a/device-tree/sunxi-d1s-t113.dtsi b/build-trees/sunxi-d1s-t113.dtsi similarity index 100% rename from device-tree/sunxi-d1s-t113.dtsi rename to build-trees/sunxi-d1s-t113.dtsi diff --git a/device-tree/6.8.0-41-generic/sun20i-d1-mangopi-mq-pro.dtb b/device-tree/6.8.0-41-generic/sun20i-d1-mangopi-mq-pro.dtb deleted file mode 100644 index a883504..0000000 Binary files a/device-tree/6.8.0-41-generic/sun20i-d1-mangopi-mq-pro.dtb and /dev/null differ diff --git a/device-tree/make_dtb.sh b/device-tree/make_dtb.sh deleted file mode 100755 index d11a6af..0000000 --- a/device-tree/make_dtb.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -# Takes a list of dts files for the specified architecture and emits appropriate compiled dtb files for use in customised deviceTree setups. -# - -dtc=/usr/bin/dtc -revision=`/usr/bin/uname -r` - -echo "Compiling against headers for $revision" - -if [ -d "$revision" ]; then - echo "Using existing build directory" -else - echo "Creating new build directory" - mkdir "$revision" -fi - -for file in `ls {*.dts,*.dtsi}`; do - echo "Processing $file to $revision/${file##*/}" - cpp -I/usr/src/linux-headers-$revision/include/ -nostdinc -undef -x assembler-with-cpp $file > $revision/${file##*/} -done - -cd $revision -for file in `ls *.dts`; do - out=${file/.dts/.dtb} - echo "Compiling: $revision/$file > $revision/$out" - $dtc $file > $out -done diff --git a/files/55_net.cfg b/files/55_net.cfg new file mode 100644 index 0000000..08ee28f --- /dev/null +++ b/files/55_net.cfg @@ -0,0 +1,12 @@ +# Netplan compatible config goes here +# see https://netplan.readthedocs.io/en/stable/examples/ +# Basic example for wifi below +network: + version: 2 + wifis: + wlan0: + optional: true + access-points: + "SSID": + password: "PASSWORD" + dhcp4: true diff --git a/files/README.md b/files/README.md new file mode 100644 index 0000000..7ba759a --- /dev/null +++ b/files/README.md @@ -0,0 +1,10 @@ +# Setup files for MQ Pro on ubuntu +1 `55_net.cfg` + Place in `/etc/cloud/cloud.cfg.d/` on the SD card and edit before first boot to preconfigure a wifi network. + see comments in file +1 `rtl_bt/*` + Bluetooth firmware files, place in `/usr/lib/firmware/rtl_bt/`. + Also install `bluez` to use via `bluetoothctl` + Requires a reboot +1 `mqpro-status-led.service` + Place in `/etc/systemd/system/`, run `sudo systemctl daemon-reload` then `sudo systemctl enable --now mqpro-status-led.service` diff --git a/tools/mqpro-status-led.service b/files/mqpro-status-led.service similarity index 100% rename from tools/mqpro-status-led.service rename to files/mqpro-status-led.service diff --git a/bt-fw/rtl8723ds_config.bin b/files/rtl_bt/rtl8723ds_config.bin similarity index 100% rename from bt-fw/rtl8723ds_config.bin rename to files/rtl_bt/rtl8723ds_config.bin diff --git a/bt-fw/rtl8723ds_fw.bin b/files/rtl_bt/rtl8723ds_fw.bin similarity index 100% rename from bt-fw/rtl8723ds_fw.bin rename to files/rtl_bt/rtl8723ds_fw.bin 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 deleted file mode 100755 index 7ab7000..0000000 Binary files a/precompiled-trees/allwinner-nezha/6.8.0-31-allwinner-nezha.dtb and /dev/null differ 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 deleted file mode 100644 index 6ebcff3..0000000 --- a/precompiled-trees/allwinner-nezha/6.8.0-31-allwinner-nezha.dts +++ /dev/null @@ -1,1374 +0,0 @@ -/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/README.md b/precompiled-trees/allwinner-nezha/README.md deleted file mode 120000 index 086ee1e..0000000 --- a/precompiled-trees/allwinner-nezha/README.md +++ /dev/null @@ -1 +0,0 @@ -6.8.0-31-allwinner-nezha.gpio \ No newline at end of file diff --git a/precompiled-trees/common/6.8.0-31-common.dtb b/precompiled-trees/common/6.8.0-31-common.dtb deleted file mode 100644 index 356084f..0000000 Binary files a/precompiled-trees/common/6.8.0-31-common.dtb and /dev/null differ diff --git a/precompiled-trees/common/README.md b/precompiled-trees/common/README.md deleted file mode 120000 index 6d77533..0000000 --- a/precompiled-trees/common/README.md +++ /dev/null @@ -1 +0,0 @@ -6.8.0-31-common.gpio \ No newline at end of file diff --git a/precompiled-trees/serial/6.8.0-31-mqpro-serial.dtb b/precompiled-trees/serial/6.8.0-31-mqpro-serial.dtb deleted file mode 100644 index 73e7da5..0000000 Binary files a/precompiled-trees/serial/6.8.0-31-mqpro-serial.dtb and /dev/null differ diff --git a/precompiled-trees/serial/README.md b/precompiled-trees/serial/README.md deleted file mode 120000 index 3ea9161..0000000 --- a/precompiled-trees/serial/README.md +++ /dev/null @@ -1 +0,0 @@ -6.8.0-31-mqpro-serial.gpio \ No newline at end of file diff --git a/precompiled-trees/spi/6.8.0-31-mqpro-spi.dtb b/precompiled-trees/spi/6.8.0-31-mqpro-spi.dtb deleted file mode 100644 index d78ad6a..0000000 Binary files a/precompiled-trees/spi/6.8.0-31-mqpro-spi.dtb and /dev/null differ diff --git a/precompiled-trees/spi/README.md b/precompiled-trees/spi/README.md deleted file mode 120000 index 348e1d8..0000000 --- a/precompiled-trees/spi/README.md +++ /dev/null @@ -1 +0,0 @@ -6.8.0-31-mqpro-spi.gpio \ No newline at end of file diff --git a/precompiled-trees/sunxi/6.8.0-31-mqpro-sunxi.dtb b/precompiled-trees/sunxi/6.8.0-31-mqpro-sunxi.dtb deleted file mode 100644 index 54134a3..0000000 Binary files a/precompiled-trees/sunxi/6.8.0-31-mqpro-sunxi.dtb and /dev/null differ diff --git a/precompiled-trees/sunxi/6.8.0-31-mqpro-sunxi.dts b/precompiled-trees/sunxi/6.8.0-31-mqpro-sunxi.dts deleted file mode 100644 index 18d93e1..0000000 --- a/precompiled-trees/sunxi/6.8.0-31-mqpro-sunxi.dts +++ /dev/null @@ -1,1232 +0,0 @@ -/dts-v1/; - -/ { - #address-cells = <0x01>; - 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/README.md b/precompiled-trees/sunxi/README.md deleted file mode 120000 index 560b4f6..0000000 --- a/precompiled-trees/sunxi/README.md +++ /dev/null @@ -1 +0,0 @@ -6.8.0-31-mqpro-sunxi.gpio \ No newline at end of file diff --git a/waveshare_SX1268_LoRa_HAT/E22-900T22D_UserManual_EN_v1.3.pdf b/reference/waveshare_SX1268_LoRa_HAT/E22-900T22D_UserManual_EN_v1.3.pdf similarity index 100% rename from waveshare_SX1268_LoRa_HAT/E22-900T22D_UserManual_EN_v1.3.pdf rename to reference/waveshare_SX1268_LoRa_HAT/E22-900T22D_UserManual_EN_v1.3.pdf diff --git a/waveshare_SX1268_LoRa_HAT/README.md b/reference/waveshare_SX1268_LoRa_HAT/README.md similarity index 100% rename from waveshare_SX1268_LoRa_HAT/README.md rename to reference/waveshare_SX1268_LoRa_HAT/README.md diff --git a/waveshare_SX1268_LoRa_HAT/SX1268_LoRa_HAT_SchDoc.pdf b/reference/waveshare_SX1268_LoRa_HAT/SX1268_LoRa_HAT_SchDoc.pdf similarity index 100% rename from waveshare_SX1268_LoRa_HAT/SX1268_LoRa_HAT_SchDoc.pdf rename to reference/waveshare_SX1268_LoRa_HAT/SX1268_LoRa_HAT_SchDoc.pdf diff --git a/waveshare_SX1268_LoRa_HAT/SX126X_LoRa_HAT_CODE.zip b/reference/waveshare_SX1268_LoRa_HAT/SX126X_LoRa_HAT_CODE.zip similarity index 100% rename from waveshare_SX1268_LoRa_HAT/SX126X_LoRa_HAT_CODE.zip rename to reference/waveshare_SX1268_LoRa_HAT/SX126X_LoRa_HAT_CODE.zip diff --git a/waveshare_SX1268_LoRa_HAT/overview.jpg b/reference/waveshare_SX1268_LoRa_HAT/overview.jpg similarity index 100% rename from waveshare_SX1268_LoRa_HAT/overview.jpg rename to reference/waveshare_SX1268_LoRa_HAT/overview.jpg diff --git a/source/README.md b/source/README.md index 62357fa..7cfa200 100644 --- a/source/README.md +++ b/source/README.md @@ -1,2 +1 @@ -# Download the sources here if desired - +## Download the sources here, see [build-tree README](../build-tree/README.md).