mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 19:43:40 +02:00
Allwinner device tree changes for 6.16
Introduce Allwinner A523 / A527 / T527 SoC family w/ three new devices: - Radxa Cubie A5E - X96Q-Pro+ - Avaota-A1 Also enable EMAC0 ethernet MAC on A523 family for Cubie A5E & Avaota-A1. Note: the SoC has two different ethernet controllers. Changes to existing SoCs: - Enable GPU on H616 with all boards enabled - Set maximum MMC frequency for the A100 Changes to existing boards: - Add WiFi/BT header on PINE64 A64 boards - Add hp-det-gpios for Anbernic RG35XX - Add support for PHY LEDs on Bananapi (the original one) Add new devices for existing SoCs: - YuzukiHD Chameleon based on H6 - Liontron H-A133L based on A133 (compatible with A100) Tree wide cleanups: - Use preferred node names for cooling maps - Align wifi node name with bindings - Drop spurious 'clock-latency-ns' properties for H5 & H6 -----BEGIN PGP SIGNATURE----- iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAmgmm8kOHHdlbnNAY3Np ZS5vcmcACgkQOJpUIZwPJDCeKw//dU9nOV3IL027SSzBc/1acvGD7t+o3O9neNlt 4W02QAwTeANCCUM4OYIUCmNn71gFlcEOfVmLlJXAEFJCz6kPP8RSh+IL1LdSQydf NJMFnnvpVScwUjDSOPAowuqR91OQIHm7nWJvVzo022c8zsQE1iNv7Aeg66Swf0ai HRuwLveOjVRrVLe4mwwa5/LHTNSZLk1e5si441C86PHHf5+s3x4JnJzTMvYosZbM 3ekjGc6f9evx+7k7bAfQ9UrJ6avtoq5ars+Js+RFjMx0bW6dCLa1EvLa3V2JcEcR tSI7dwiqLyD2q9tulxVG5kFLTNPdXK+BI9tO96xCbkJ/j0V9ubNToq23ltyuzOVJ ha8n8e1kb1tOg7HR8B5eV1xN+ZSZL6NvvZoiyPPklML0hmT95Lwi0uVhfnNT0EC9 VjiBBBeP26U0y9005nAzblLUTeKv4pFaRHD7j+MVtDk6IsNwMxGo27KPrkpf6FMM UgbXSiurdQIXToUuQL+DuGFZZwnu1MN008ZUV/hqEfzWpeH/GQxN+YMbEuuvaKJk 3r0nDM9Wbnjdvs/qhrDZRwKccQOBLMwkZN8JKWyKAoe1mVoFZa9VyyKWuT5qXOee 5E5rwxwFne8BpkDyfmCyHXKVjeGGiVky11roO9/9IchjgJe9j+4hLaCvr8mhTvl2 p4tiVxQ= =4JrL -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmguSzAACgkQmmx57+YA GNnCIA//R7syl7Mu+cJ88VxKhrInFf5F5vngrtrh+o9w5Jk50BY87WX0qT16Zgt6 /jHLLYkjXiv0FA0PJQmeZQKxhYQnGqRqzAgBG41Db6ulbot8cHDNCwbc2J+HPvXe DibTOayckm23HJQyPXgTBhFC8GnjCOxzpt7mSP7+NlL2QcHGuNABP/Z0R8ra4Evr rw7GYpmCCuc0O7LdhnGzUpy+QT3SRedq0MPhj59mFn4VYQUCFRnHiYfPUjMjPw4m dfFAPE6PaZlgIfPLH0s5t8hwZCbOtLkuMUriZPw9iYLN+KXLHRrbprNlPqVH+LC3 VuCUXsokwjr/yeWJ9pzmuRi6kCg2MDooY1i0T2GHfoIr2Sb3cOc7lrjyczMp4ovn snk370g2qZ9jYOgCOUlNSpI76/OF04/MTOm/IF8yAuWtr2Qkqa7sqwf0dgP1gcQc FuDgRw/uh2dG51tPV8xYfFvNG0+rSJh7y7M2m76cNG6A/OmI1WJOoRT/WNqvqTxN y7iZY7aKnML8pDQgoRFeferR5oUfEx4yAIFTA2130U+KtVDiq8/+3pv5DCyGx9/6 dXs0T2LndrDV9DRaSQZ45spHP8sMSFbWbBX3qvQEj9Q8j2QdTSNu4hSi4/P3jQ0U W5azgGfeL2dH1m+RhJaqpZQTwZH1lVUfIcj2Dpdbk768xkD+UKM= =/9N8 -----END PGP SIGNATURE----- Merge tag 'sunxi-dt-for-6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt Allwinner device tree changes for 6.16 Introduce Allwinner A523 / A527 / T527 SoC family w/ three new devices: - Radxa Cubie A5E - X96Q-Pro+ - Avaota-A1 Also enable EMAC0 ethernet MAC on A523 family for Cubie A5E & Avaota-A1. Note: the SoC has two different ethernet controllers. Changes to existing SoCs: - Enable GPU on H616 with all boards enabled - Set maximum MMC frequency for the A100 Changes to existing boards: - Add WiFi/BT header on PINE64 A64 boards - Add hp-det-gpios for Anbernic RG35XX - Add support for PHY LEDs on Bananapi (the original one) Add new devices for existing SoCs: - YuzukiHD Chameleon based on H6 - Liontron H-A133L based on A133 (compatible with A100) Tree wide cleanups: - Use preferred node names for cooling maps - Align wifi node name with bindings - Drop spurious 'clock-latency-ns' properties for H5 & H6 * tag 'sunxi-dt-for-6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: (27 commits) arm64: dts: allwinner: a100: add Liontron H-A133L board support dt-bindings: arm: sunxi: Add Liontron H-A133L board name dt-bindings: vendor-prefixes: Add Liontron name ARM: dts: bananapi: add support for PHY LEDs arm64: dts: allwinner: a100: set maximum MMC frequency arm64: dts: allwinner: t527: add EMAC0 to Avaota-A1 board arm64: dts: allwinner: a527: add EMAC0 to Radxa A5E board arm64: dts: allwinner: a523: Add EMAC0 ethernet MAC dt-bindings: sram: sunxi-sram: Add A523 compatible arm64: dts: allwinner: a64: Add WiFi/BT header on SOPINE Baseboard arm64: dts: allwinner: a64: Add WiFi/BT header on PINE A64 arm64: dts: allwinner: correct the model name for Radxa Cubie A5E ARM: dts: allwinner: Align wifi node name with bindings arm64: dts: allwinner: Align wifi node name with bindings arm64: dts: allwinner: h616: enable Mali GPU for all boards arm64: dts: allwinner: h616: Add Mali GPU node arm64: dts: allwinner: h700: Add hp-det-gpios for Anbernic RG35XX arm64: dts: allwinner: h5/h6: Drop spurious 'clock-latency-ns' properties arm/arm64: dts: allwinner: Use preferred node names for cooling maps arm64: dts: allwinner: h616: add YuzukiHD Chameleon support ... Link: https://lore.kernel.org/r/aCaeZJ2t4S_xhgjp@wens.tw Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
commit
0feaf3c056
|
|
@ -492,6 +492,11 @@ properties:
|
|||
- const: lamobo,lamobo-r1
|
||||
- const: allwinner,sun7i-a20
|
||||
|
||||
- description: Liontron H-A133L
|
||||
items:
|
||||
- const: liontron,h-a133l
|
||||
- const: allwinner,sun50i-a100
|
||||
|
||||
- description: HAOYU Electronics Marsboard A10
|
||||
items:
|
||||
- const: haoyu,a10-marsboard
|
||||
|
|
@ -845,6 +850,11 @@ properties:
|
|||
- const: allwinner,r7-tv-dongle
|
||||
- const: allwinner,sun5i-a10s
|
||||
|
||||
- description: Radxa Cubie A5E
|
||||
items:
|
||||
- const: radxa,cubie-a5e
|
||||
- const: allwinner,sun55i-a527
|
||||
|
||||
- description: Remix Mini PC
|
||||
items:
|
||||
- const: jide,remix-mini-pc
|
||||
|
|
@ -966,6 +976,11 @@ properties:
|
|||
- const: hechuang,x96-mate
|
||||
- const: allwinner,sun50i-h616
|
||||
|
||||
- description: X96Q Pro+
|
||||
items:
|
||||
- const: amediatech,x96q-pro-plus
|
||||
- const: allwinner,sun55i-h728
|
||||
|
||||
- description: Xunlong OrangePi
|
||||
items:
|
||||
- const: xunlong,orangepi
|
||||
|
|
@ -1081,4 +1096,14 @@ properties:
|
|||
- const: xunlong,orangepi-zero3
|
||||
- const: allwinner,sun50i-h618
|
||||
|
||||
- description: YuzukiHD Avaota A1
|
||||
items:
|
||||
- const: yuzukihd,avaota-a1
|
||||
- const: allwinner,sun55i-t527
|
||||
|
||||
- description: YuzukiHD Chameleon
|
||||
items:
|
||||
- const: yuzukihd,chameleon
|
||||
- const: allwinner,sun50i-h618
|
||||
|
||||
additionalProperties: true
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ properties:
|
|||
- enum:
|
||||
- allwinner,sun50i-a100-system-control
|
||||
- allwinner,sun50i-h6-system-control
|
||||
- allwinner,sun55i-a523-system-control
|
||||
- const: allwinner,sun50i-a64-system-control
|
||||
|
||||
reg:
|
||||
|
|
|
|||
|
|
@ -864,6 +864,8 @@ patternProperties:
|
|||
description: Linux-specific binding
|
||||
"^linx,.*":
|
||||
description: Linx Technologies
|
||||
"^liontron,.*":
|
||||
description: Shenzhen Liontron Technology Co., Ltd
|
||||
"^liteon,.*":
|
||||
description: LITE-ON Technology Corp.
|
||||
"^litex,.*":
|
||||
|
|
@ -1755,6 +1757,8 @@ patternProperties:
|
|||
description: Y Soft Corporation a.s.
|
||||
"^yuridenki,.*":
|
||||
description: Yuridenki-Shokai Co. Ltd.
|
||||
"^yuzukihd,.*":
|
||||
description: YuzukiHD Open Source Hardware
|
||||
"^zarlink,.*":
|
||||
description: Zarlink Semiconductor
|
||||
"^zealz,.*":
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@
|
|||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
/ {
|
||||
model = "LeMaker Banana Pi";
|
||||
|
|
@ -169,6 +170,32 @@ &ir0 {
|
|||
&gmac_mdio {
|
||||
phy1: ethernet-phy@1 {
|
||||
reg = <1>;
|
||||
|
||||
leds {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
led@0 {
|
||||
reg = <0>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
linux,default-trigger = "netdev";
|
||||
};
|
||||
|
||||
led@1 {
|
||||
reg = <1>;
|
||||
color = <LED_COLOR_ID_AMBER>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
linux,default-trigger = "netdev";
|
||||
};
|
||||
|
||||
led@2 {
|
||||
reg = <2>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
linux,default-trigger = "netdev";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1225,7 +1225,7 @@ cpu0_very_hot: cpu-very-hot {
|
|||
};
|
||||
|
||||
cooling-maps {
|
||||
cpu-hot-limit {
|
||||
map0 {
|
||||
trip = <&cpu0_hot>;
|
||||
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
|
|
@ -1255,7 +1255,7 @@ cpu1_very_hot: cpu-very-hot {
|
|||
};
|
||||
|
||||
cooling-maps {
|
||||
cpu-hot-limit {
|
||||
map0 {
|
||||
trip = <&cpu1_hot>;
|
||||
cooling-device = <&cpu100 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu101 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ &mmc1 {
|
|||
non-removable;
|
||||
status = "okay";
|
||||
|
||||
brcmf: bcrmf@1 {
|
||||
brcmf: wifi@1 {
|
||||
reg = <1>;
|
||||
compatible = "brcm,bcm4329-fmac";
|
||||
interrupt-parent = <&pio>;
|
||||
|
|
|
|||
|
|
@ -262,7 +262,7 @@ cpu_very_hot_trip: cpu-very-hot {
|
|||
};
|
||||
|
||||
cooling-maps {
|
||||
cpu-hot-limit {
|
||||
map0 {
|
||||
trip = <&cpu_hot_trip>;
|
||||
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
|
|
|
|||
|
|
@ -146,7 +146,7 @@ cpu_very_hot_trip: cpu-very-hot {
|
|||
};
|
||||
|
||||
cooling-maps {
|
||||
cpu-hot-limit {
|
||||
map0 {
|
||||
trip = <&cpu_hot_trip>;
|
||||
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
|
|||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h64-remix-mini-pc.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a133-liontron-h-a133l.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus-v1.2.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-emlid-neutis-n5-devboard.dtb
|
||||
|
|
@ -48,7 +49,11 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-longanpi-3h.dtb
|
|||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-orangepi-zero2w.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-orangepi-zero3.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-transpeed-8k618-t.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-yuzukihd-chameleon.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h700-anbernic-rg35xx-2024.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h700-anbernic-rg35xx-h.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h700-anbernic-rg35xx-plus.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h700-anbernic-rg35xx-sp.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun55i-a527-cubie-a5e.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun55i-h728-x96qpro+.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun55i-t527-avaota-a1.dtb
|
||||
|
|
|
|||
|
|
@ -252,6 +252,7 @@ mmc0: mmc@4020000 {
|
|||
interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_pins>;
|
||||
max-frequency = <150000000>;
|
||||
status = "disabled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
|
@ -267,6 +268,7 @@ mmc1: mmc@4021000 {
|
|||
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc1_pins>;
|
||||
max-frequency = <150000000>;
|
||||
status = "disabled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
|
@ -282,6 +284,7 @@ mmc2: mmc@4022000 {
|
|||
interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc2_pins>;
|
||||
max-frequency = <150000000>;
|
||||
status = "disabled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
|
|
|||
211
arch/arm64/boot/dts/allwinner/sun50i-a133-liontron-h-a133l.dts
Normal file
211
arch/arm64/boot/dts/allwinner/sun50i-a133-liontron-h-a133l.dts
Normal file
|
|
@ -0,0 +1,211 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2025 Arm Ltd.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "sun50i-a100.dtsi"
|
||||
#include "sun50i-a100-cpu-opp.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
/{
|
||||
model = "Liontron H-A133L";
|
||||
compatible = "liontron,h-a133l", "allwinner,sun50i-a100";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led {
|
||||
function = LED_FUNCTION_POWER;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
gpios = <&pio 7 16 GPIO_ACTIVE_LOW>; /* PH16 */
|
||||
};
|
||||
};
|
||||
|
||||
reg_vcc5v: vcc5v {
|
||||
/* board wide 5V supply from a 12V->5V regulator */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc-5v";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
reg_usb1_vbus: regulator-usb1-vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb1-vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
vin-supply = <®_vcc5v>;
|
||||
enable-active-high;
|
||||
gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
|
||||
};
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
cpu-supply = <®_dcdc2>;
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
vmmc-supply = <®_dcdc1>;
|
||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
vmmc-supply = <®_dcdc1>;
|
||||
vqmmc-supply = <®_eldo1>;
|
||||
cap-mmc-hw-reset;
|
||||
non-removable;
|
||||
bus-width = <8>;
|
||||
mmc-ddr-1_8v;
|
||||
mmc-hs200-1_8v;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pio {
|
||||
vcc-pb-supply = <®_dcdc1>;
|
||||
vcc-pc-supply = <®_eldo1>;
|
||||
vcc-pf-supply = <®_dcdc1>;
|
||||
vcc-ph-supply = <®_dcdc1>;
|
||||
};
|
||||
|
||||
&r_i2c0 {
|
||||
status = "okay";
|
||||
|
||||
axp803: pmic@34 {
|
||||
compatible = "x-powers,axp803";
|
||||
reg = <0x34>;
|
||||
interrupt-parent = <&r_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
#include "axp803.dtsi"
|
||||
|
||||
&ac_power_supply {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
®_aldo1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-codec-avcc";
|
||||
};
|
||||
|
||||
®_aldo2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-dram-1";
|
||||
};
|
||||
|
||||
®_aldo3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-usb-pl";
|
||||
};
|
||||
|
||||
®_dcdc1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-io-usb-pd-emmc";
|
||||
};
|
||||
|
||||
®_dcdc2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <810000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-name = "vdd-cpux";
|
||||
};
|
||||
|
||||
®_dcdc3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <900000>;
|
||||
regulator-name = "vdd-usb-cpus";
|
||||
};
|
||||
|
||||
®_dcdc4 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <950000>;
|
||||
regulator-name = "vdd-sys";
|
||||
};
|
||||
|
||||
®_dcdc5 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vcc-dram";
|
||||
};
|
||||
|
||||
/* DCDC6 unused */
|
||||
/* DLDO3 unused */
|
||||
/* DLDO4 unused */
|
||||
|
||||
®_eldo1 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-pc-emmc";
|
||||
};
|
||||
|
||||
/* ELDO2 unused */
|
||||
/* ELDO3 unused */
|
||||
|
||||
®_fldo1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <900000>;
|
||||
regulator-name = "vdd-cpus-usb";
|
||||
};
|
||||
|
||||
/* reg_drivevbus unused */
|
||||
/* dc1sw unused */
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pb_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_otg {
|
||||
dr_mode = "host"; /* USB A type receptacle, always powered */
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
usb1_vbus-supply = <®_usb1_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
|
|
@ -124,6 +124,17 @@ &mmc0 {
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
/* On Wifi/BT connector */
|
||||
&mmc1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc1_pins>;
|
||||
vmmc-supply = <®_dldo4>;
|
||||
vqmmc-supply = <®_eldo1>;
|
||||
bus-width = <4>;
|
||||
non-removable;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
@ -286,6 +297,7 @@ &uart0 {
|
|||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
|
||||
uart-has-rtscts;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -103,6 +103,17 @@ ext_rgmii_phy: ethernet-phy@1 {
|
|||
};
|
||||
};
|
||||
|
||||
/* On Wifi/BT connector */
|
||||
&mmc1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc1_pins>;
|
||||
vmmc-supply = <®_dldo4>;
|
||||
vqmmc-supply = <®_eldo1>;
|
||||
bus-width = <4>;
|
||||
non-removable;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc2_pins>;
|
||||
|
|
@ -175,6 +186,14 @@ &uart0 {
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
/* On Wifi/BT connector, with RTS/CTS */
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
|
||||
uart-has-rtscts;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* On Pi-2 connector */
|
||||
&uart2 {
|
||||
pinctrl-names = "default";
|
||||
|
|
|
|||
|
|
@ -79,6 +79,11 @@ &ehci0 {
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
&gpu {
|
||||
mali-supply = <®_dcdc1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ir {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ cpu0: cpu@0 {
|
|||
reg = <0>;
|
||||
enable-method = "psci";
|
||||
clocks = <&ccu CLK_CPUX>;
|
||||
clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
|
|
@ -26,7 +25,6 @@ cpu1: cpu@1 {
|
|||
reg = <1>;
|
||||
enable-method = "psci";
|
||||
clocks = <&ccu CLK_CPUX>;
|
||||
clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
|
|
@ -36,7 +34,6 @@ cpu2: cpu@2 {
|
|||
reg = <2>;
|
||||
enable-method = "psci";
|
||||
clocks = <&ccu CLK_CPUX>;
|
||||
clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
|
|
@ -46,7 +43,6 @@ cpu3: cpu@3 {
|
|||
reg = <3>;
|
||||
enable-method = "psci";
|
||||
clocks = <&ccu CLK_CPUX>;
|
||||
clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
|
@ -207,7 +203,7 @@ cpu_very_hot_trip: cpu-very-hot {
|
|||
};
|
||||
|
||||
cooling-maps {
|
||||
cpu-hot-limit {
|
||||
map0 {
|
||||
trip = <&cpu_hot_trip>;
|
||||
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ &mmc1 {
|
|||
non-removable;
|
||||
status = "okay";
|
||||
|
||||
brcm: sdio-wifi@1 {
|
||||
brcm: wifi@1 {
|
||||
reg = <1>;
|
||||
compatible = "brcm,bcm4329-fmac";
|
||||
interrupt-parent = <&r_pio>;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ &mmc1 {
|
|||
non-removable;
|
||||
status = "okay";
|
||||
|
||||
brcm: sdio-wifi@1 {
|
||||
brcm: wifi@1 {
|
||||
reg = <1>;
|
||||
compatible = "brcm,bcm4329-fmac";
|
||||
interrupt-parent = <&r_pio>;
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@ cpu0: cpu@0 {
|
|||
reg = <0>;
|
||||
enable-method = "psci";
|
||||
clocks = <&ccu CLK_CPUX>;
|
||||
clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
#cooling-cells = <2>;
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
|
|
@ -44,7 +43,6 @@ cpu1: cpu@1 {
|
|||
reg = <1>;
|
||||
enable-method = "psci";
|
||||
clocks = <&ccu CLK_CPUX>;
|
||||
clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
#cooling-cells = <2>;
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
|
|
@ -61,7 +59,6 @@ cpu2: cpu@2 {
|
|||
reg = <2>;
|
||||
enable-method = "psci";
|
||||
clocks = <&ccu CLK_CPUX>;
|
||||
clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
#cooling-cells = <2>;
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
|
|
@ -78,7 +75,6 @@ cpu3: cpu@3 {
|
|||
reg = <3>;
|
||||
enable-method = "psci";
|
||||
clocks = <&ccu CLK_CPUX>;
|
||||
clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
#cooling-cells = <2>;
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
|
|
|
|||
|
|
@ -67,6 +67,11 @@ &cpu0 {
|
|||
cpu-supply = <®_dcdc2>;
|
||||
};
|
||||
|
||||
&gpu {
|
||||
mali-supply = <®_dcdc1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
vmmc-supply = <®_dldo1>;
|
||||
/* Card detection pin is not connected */
|
||||
|
|
|
|||
|
|
@ -77,6 +77,10 @@ &emac0 {
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
&gpu {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mdio0 {
|
||||
ext_rgmii_phy: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
|
|
|
|||
|
|
@ -24,6 +24,10 @@ &emac0 {
|
|||
phy-supply = <®_dcdce>;
|
||||
};
|
||||
|
||||
&gpu {
|
||||
mali-supply = <®_dcdcc>;
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
vmmc-supply = <®_dcdce>;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -50,6 +50,11 @@ &ehci2 {
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
&gpu {
|
||||
mali-supply = <®_dcdcc>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ir {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -150,6 +150,21 @@ soc {
|
|||
#size-cells = <1>;
|
||||
ranges = <0x0 0x0 0x0 0x40000000>;
|
||||
|
||||
gpu: gpu@1800000 {
|
||||
compatible = "allwinner,sun50i-h616-mali",
|
||||
"arm,mali-bifrost";
|
||||
reg = <0x1800000 0x40000>;
|
||||
interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "job", "mmu", "gpu";
|
||||
clocks = <&ccu CLK_GPU0>, <&ccu CLK_BUS_GPU>;
|
||||
clock-names = "core", "bus";
|
||||
power-domains = <&prcm_ppu 2>;
|
||||
resets = <&ccu RST_BUS_GPU>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
crypto: crypto@1904000 {
|
||||
compatible = "allwinner,sun50i-h616-crypto";
|
||||
reg = <0x01904000 0x800>;
|
||||
|
|
@ -874,6 +889,12 @@ r_ccu: clock@7010000 {
|
|||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
prcm_ppu: power-controller@7010250 {
|
||||
compatible = "allwinner,sun50i-h616-prcm-ppu";
|
||||
reg = <0x07010250 0x10>;
|
||||
#power-domain-cells = <1>;
|
||||
};
|
||||
|
||||
nmi_intc: interrupt-controller@7010320 {
|
||||
compatible = "allwinner,sun50i-h616-nmi",
|
||||
"allwinner,sun9i-a80-nmi";
|
||||
|
|
|
|||
|
|
@ -10,6 +10,11 @@ &cpu0 {
|
|||
cpu-supply = <®_dcdc2>;
|
||||
};
|
||||
|
||||
&gpu {
|
||||
mali-supply = <®_dcdc1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc2_pins>;
|
||||
|
|
|
|||
|
|
@ -69,6 +69,11 @@ &ehci1 {
|
|||
|
||||
/* USB 2 & 3 are on the FPC connector (or the exansion board) */
|
||||
|
||||
&gpu {
|
||||
mali-supply = <®_dcdc1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
|
||||
bus-width = <4>;
|
||||
|
|
|
|||
|
|
@ -27,6 +27,10 @@ &ext_rgmii_phy {
|
|||
motorcomm,clk-out-frequency-hz = <125000000>;
|
||||
};
|
||||
|
||||
&gpu {
|
||||
mali-supply = <®_dcdc1>;
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
/*
|
||||
* The schematic shows the card detect pin wired up to PF6, via an
|
||||
|
|
|
|||
|
|
@ -69,6 +69,11 @@ &ehci1 {
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
&gpu {
|
||||
mali-supply = <®_dcdc1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ir {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
|||
222
arch/arm64/boot/dts/allwinner/sun50i-h618-yuzukihd-chameleon.dts
Normal file
222
arch/arm64/boot/dts/allwinner/sun50i-h618-yuzukihd-chameleon.dts
Normal file
|
|
@ -0,0 +1,222 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
/*
|
||||
* Copyright (C) 2024 Arm Ltd.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "sun50i-h616.dtsi"
|
||||
#include "sun50i-h616-cpu-opp.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
/ {
|
||||
model = "Yuzuki Chameleon";
|
||||
compatible = "yuzukihd,chameleon", "allwinner,sun50i-h618";
|
||||
|
||||
aliases {
|
||||
ethernet1 = &sdio_wifi;
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
reg_vcc5v: vcc5v {
|
||||
/* board wide 5V supply directly from the USB-C socket */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc-5v";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
wifi_pwrseq: pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
clocks = <&rtc CLK_OSC32K_FANOUT>;
|
||||
clock-names = "ext_clock";
|
||||
pinctrl-0 = <&x32clk_fanout_pin>;
|
||||
pinctrl-names = "default";
|
||||
reset-gpios = <&pio 6 11 GPIO_ACTIVE_LOW>; /* PG11 */
|
||||
};
|
||||
};
|
||||
|
||||
&codec {
|
||||
allwinner,audio-routing = "Line Out", "LINEOUT";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
cpu-supply = <®_dcdc2>;
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
|
||||
disable-wp;
|
||||
vmmc-supply = <®_dldo1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc1 {
|
||||
bus-width = <4>;
|
||||
mmc-pwrseq = <&wifi_pwrseq>;
|
||||
non-removable;
|
||||
vmmc-supply = <®_dldo1>;
|
||||
vqmmc-supply = <®_dldo1>;
|
||||
status = "okay";
|
||||
|
||||
sdio_wifi: wifi@1 {
|
||||
reg = <1>;
|
||||
interrupt-parent = <&pio>;
|
||||
interrupts = <6 12 IRQ_TYPE_LEVEL_LOW>; /* PG12 */
|
||||
interrupt-names = "host-wake";
|
||||
};
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
bus-width = <8>;
|
||||
cap-mmc-hw-reset;
|
||||
mmc-ddr-3_3v;
|
||||
non-removable;
|
||||
vmmc-supply = <®_dldo1>;
|
||||
vqmmc-supply = <®_dldo1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pio {
|
||||
vcc-pc-supply = <®_dldo1>;
|
||||
vcc-pf-supply = <®_dldo1>; /* via VCC_IO */
|
||||
vcc-pg-supply = <®_dldo1>;
|
||||
vcc-ph-supply = <®_dldo1>; /* via VCC_IO */
|
||||
vcc-pi-supply = <®_dldo1>;
|
||||
};
|
||||
|
||||
&r_i2c {
|
||||
status = "okay";
|
||||
|
||||
axp313: pmic@36 {
|
||||
compatible = "x-powers,axp313a";
|
||||
reg = <0x36>;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&pio>;
|
||||
interrupts = <2 2 IRQ_TYPE_LEVEL_LOW>; /* PC2 */
|
||||
|
||||
vin1-supply = <®_vcc5v>;
|
||||
vin2-supply = <®_vcc5v>;
|
||||
vin3-supply = <®_vcc5v>;
|
||||
|
||||
regulators {
|
||||
/* Supplies VCC-PLL, so needs to be always on. */
|
||||
reg_aldo1: aldo1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc1v8";
|
||||
};
|
||||
|
||||
/* Supplies VCC-IO, so needs to be always on. */
|
||||
reg_dldo1: dldo1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc3v3";
|
||||
};
|
||||
|
||||
reg_dcdc1: dcdc1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <810000>;
|
||||
regulator-max-microvolt = <990000>;
|
||||
regulator-name = "vdd-gpu-sys";
|
||||
};
|
||||
|
||||
reg_dcdc2: dcdc2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <810000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-cpu";
|
||||
};
|
||||
|
||||
reg_dcdc3: dcdc3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1500000>;
|
||||
regulator-max-microvolt = <1500000>;
|
||||
regulator-name = "vdd-dram";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_ph_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Connected to the Bluetooth UART pins of the XR829 Wifi/BT chip. */
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
|
||||
uart-has-rtscts;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg {
|
||||
/*
|
||||
* PHY0 pins are connected to a USB-C socket, but a role switch
|
||||
* is not implemented: both CC pins are pulled to GND.
|
||||
* The VBUS pins power the device, so a fixed peripheral mode
|
||||
* is the best choice.
|
||||
* The board can be powered via GPIOs, in this case port0 *can*
|
||||
* act as a host (with a cable/adapter ignoring CC), as VBUS is
|
||||
* then provided by the GPIOs. Any user of this setup would
|
||||
* need to adjust the DT accordingly: dr_mode set to "host",
|
||||
* enabling OHCI0 and EHCI0.
|
||||
*/
|
||||
dr_mode = "peripheral";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
usb0_id_det-gpios = <&pio 6 18 GPIO_ACTIVE_HIGH>; /* PG18 */
|
||||
usb0_vbus-supply = <®_vcc5v>;
|
||||
usb1_vbus-supply = <®_vcc5v>;
|
||||
usb2_vbus-supply = <®_vcc5v>;
|
||||
usb3_vbus-supply = <®_vcc5v>;
|
||||
status = "okay";
|
||||
};
|
||||
|
|
@ -184,8 +184,11 @@ reg_vcc5v: regulator-vcc5v { /* USB-C power input */
|
|||
};
|
||||
|
||||
&codec {
|
||||
allwinner,audio-routing = "Line Out", "LINEOUT";
|
||||
/* Both speakers and headphone jack connected to 74HC4052D analog mux*/
|
||||
allwinner,audio-routing = "Speaker", "LINEOUT",
|
||||
"Headphone", "LINEOUT";
|
||||
allwinner,pa-gpios = <&pio 8 5 GPIO_ACTIVE_HIGH>; // PI5
|
||||
hp-det-gpios = <&pio 8 3 GPIO_ACTIVE_HIGH>; // PI3
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
|
@ -197,6 +200,11 @@ &ehci0 {
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
&gpu {
|
||||
mali-supply = <®_dcdc2>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
vmmc-supply = <®_cldo3>;
|
||||
disable-wp;
|
||||
|
|
|
|||
639
arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi
Normal file
639
arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi
Normal file
|
|
@ -0,0 +1,639 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
|
||||
// Copyright (C) 2023-2024 Arm Ltd.
|
||||
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/clock/sun6i-rtc.h>
|
||||
#include <dt-bindings/clock/sun55i-a523-ccu.h>
|
||||
#include <dt-bindings/clock/sun55i-a523-r-ccu.h>
|
||||
#include <dt-bindings/reset/sun55i-a523-ccu.h>
|
||||
#include <dt-bindings/reset/sun55i-a523-r-ccu.h>
|
||||
|
||||
/ {
|
||||
interrupt-parent = <&gic>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpu0: cpu@0 {
|
||||
compatible = "arm,cortex-a55";
|
||||
device_type = "cpu";
|
||||
reg = <0x000>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu1: cpu@100 {
|
||||
compatible = "arm,cortex-a55";
|
||||
device_type = "cpu";
|
||||
reg = <0x100>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu2: cpu@200 {
|
||||
compatible = "arm,cortex-a55";
|
||||
device_type = "cpu";
|
||||
reg = <0x200>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu3: cpu@300 {
|
||||
compatible = "arm,cortex-a55";
|
||||
device_type = "cpu";
|
||||
reg = <0x300>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu4: cpu@400 {
|
||||
compatible = "arm,cortex-a55";
|
||||
device_type = "cpu";
|
||||
reg = <0x400>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu5: cpu@500 {
|
||||
compatible = "arm,cortex-a55";
|
||||
device_type = "cpu";
|
||||
reg = <0x500>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu6: cpu@600 {
|
||||
compatible = "arm,cortex-a55";
|
||||
device_type = "cpu";
|
||||
reg = <0x600>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu7: cpu@700 {
|
||||
compatible = "arm,cortex-a55";
|
||||
device_type = "cpu";
|
||||
reg = <0x700>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
};
|
||||
|
||||
osc24M: osc24M-clk {
|
||||
#clock-cells = <0>;
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <24000000>;
|
||||
clock-output-names = "osc24M";
|
||||
};
|
||||
|
||||
pmu {
|
||||
compatible = "arm,cortex-a55-pmu";
|
||||
interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
psci {
|
||||
compatible = "arm,psci-0.2";
|
||||
method = "smc";
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv8-timer";
|
||||
arm,no-tick-in-suspend;
|
||||
interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
soc {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x0 0x0 0x40000000>;
|
||||
|
||||
pio: pinctrl@2000000 {
|
||||
compatible = "allwinner,sun55i-a523-pinctrl";
|
||||
reg = <0x2000000 0x800>;
|
||||
interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_APB1>, <&osc24M>, <&rtc CLK_OSC32K>;
|
||||
clock-names = "apb", "hosc", "losc";
|
||||
gpio-controller;
|
||||
#gpio-cells = <3>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <3>;
|
||||
|
||||
rgmii0_pins: rgmii0-pins {
|
||||
pins = "PH0", "PH1", "PH2", "PH3", "PH4",
|
||||
"PH5", "PH6", "PH7", "PH9", "PH10",
|
||||
"PH14", "PH15", "PH16", "PH17", "PH18";
|
||||
allwinner,pinmux = <5>;
|
||||
function = "emac0";
|
||||
drive-strength = <40>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
mmc0_pins: mmc0-pins {
|
||||
pins = "PF0" ,"PF1", "PF2", "PF3", "PF4", "PF5";
|
||||
allwinner,pinmux = <2>;
|
||||
function = "mmc0";
|
||||
drive-strength = <30>;
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
/omit-if-no-ref/
|
||||
mmc1_pins: mmc1-pins {
|
||||
pins = "PG0" ,"PG1", "PG2", "PG3", "PG4", "PG5";
|
||||
allwinner,pinmux = <2>;
|
||||
function = "mmc1";
|
||||
drive-strength = <30>;
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
mmc2_pins: mmc2-pins {
|
||||
pins = "PC0", "PC1" ,"PC5", "PC6", "PC8",
|
||||
"PC9", "PC10", "PC11", "PC13", "PC14",
|
||||
"PC15", "PC16";
|
||||
allwinner,pinmux = <3>;
|
||||
function = "mmc2";
|
||||
drive-strength = <30>;
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
uart0_pb_pins: uart0-pb-pins {
|
||||
pins = "PB9", "PB10";
|
||||
allwinner,pinmux = <2>;
|
||||
function = "uart0";
|
||||
};
|
||||
};
|
||||
|
||||
ccu: clock-controller@2001000 {
|
||||
compatible = "allwinner,sun55i-a523-ccu";
|
||||
reg = <0x02001000 0x1000>;
|
||||
clocks = <&osc24M>, <&rtc CLK_OSC32K>,
|
||||
<&rtc CLK_IOSC>, <&rtc CLK_OSC32K_FANOUT>;
|
||||
clock-names = "hosc", "losc",
|
||||
"iosc", "losc-fanout";
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
mmc0: mmc@4020000 {
|
||||
compatible = "allwinner,sun55i-a523-mmc",
|
||||
"allwinner,sun20i-d1-mmc";
|
||||
reg = <0x04020000 0x1000>;
|
||||
clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>;
|
||||
clock-names = "ahb", "mmc";
|
||||
resets = <&ccu RST_BUS_MMC0>;
|
||||
reset-names = "ahb";
|
||||
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_pins>;
|
||||
status = "disabled";
|
||||
|
||||
max-frequency = <150000000>;
|
||||
cap-sd-highspeed;
|
||||
cap-mmc-highspeed;
|
||||
cap-sdio-irq;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mmc1: mmc@4021000 {
|
||||
compatible = "allwinner,sun55i-a523-mmc",
|
||||
"allwinner,sun20i-d1-mmc";
|
||||
reg = <0x04021000 0x1000>;
|
||||
clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>;
|
||||
clock-names = "ahb", "mmc";
|
||||
resets = <&ccu RST_BUS_MMC1>;
|
||||
reset-names = "ahb";
|
||||
interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc1_pins>;
|
||||
status = "disabled";
|
||||
|
||||
max-frequency = <150000000>;
|
||||
cap-sd-highspeed;
|
||||
cap-mmc-highspeed;
|
||||
cap-sdio-irq;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mmc2: mmc@4022000 {
|
||||
compatible = "allwinner,sun55i-a523-mmc",
|
||||
"allwinner,sun20i-d1-mmc";
|
||||
reg = <0x04022000 0x1000>;
|
||||
clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
|
||||
clock-names = "ahb", "mmc";
|
||||
resets = <&ccu RST_BUS_MMC2>;
|
||||
reset-names = "ahb";
|
||||
interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc2_pins>;
|
||||
status = "disabled";
|
||||
|
||||
max-frequency = <150000000>;
|
||||
cap-sd-highspeed;
|
||||
cap-mmc-highspeed;
|
||||
cap-sdio-irq;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
wdt: watchdog@2050000 {
|
||||
compatible = "allwinner,sun55i-a523-wdt";
|
||||
reg = <0x2050000 0x20>;
|
||||
interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&osc24M>, <&rtc CLK_OSC32K>;
|
||||
clock-names = "hosc", "losc";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
uart0: serial@2500000 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x02500000 0x400>;
|
||||
interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
clocks = <&ccu CLK_BUS_UART0>;
|
||||
resets = <&ccu RST_BUS_UART0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart1: serial@2500400 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x02500400 0x400>;
|
||||
interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
clocks = <&ccu CLK_BUS_UART1>;
|
||||
resets = <&ccu RST_BUS_UART1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart2: serial@2500800 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x02500800 0x400>;
|
||||
interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
clocks = <&ccu CLK_BUS_UART2>;
|
||||
resets = <&ccu RST_BUS_UART2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart3: serial@2500c00 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x02500c00 0x400>;
|
||||
interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
clocks = <&ccu CLK_BUS_UART3>;
|
||||
resets = <&ccu RST_BUS_UART3>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart4: serial@2501000 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x02501000 0x400>;
|
||||
interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
clocks = <&ccu CLK_BUS_UART4>;
|
||||
resets = <&ccu RST_BUS_UART4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart5: serial@2501400 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x02501400 0x400>;
|
||||
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
clocks = <&ccu CLK_BUS_UART5>;
|
||||
resets = <&ccu RST_BUS_UART5>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart6: serial@2501800 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x02501800 0x400>;
|
||||
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
clocks = <&ccu CLK_BUS_UART6>;
|
||||
resets = <&ccu RST_BUS_UART6>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart7: serial@2501c00 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x02501c00 0x400>;
|
||||
interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
clocks = <&ccu CLK_BUS_UART7>;
|
||||
resets = <&ccu RST_BUS_UART7>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c0: i2c@2502000 {
|
||||
compatible = "allwinner,sun55i-a523-i2c",
|
||||
"allwinner,sun8i-v536-i2c",
|
||||
"allwinner,sun6i-a31-i2c";
|
||||
reg = <0x2502000 0x400>;
|
||||
interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_I2C0>;
|
||||
resets = <&ccu RST_BUS_I2C0>;
|
||||
status = "disabled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c1: i2c@2502400 {
|
||||
compatible = "allwinner,sun55i-a523-i2c",
|
||||
"allwinner,sun8i-v536-i2c",
|
||||
"allwinner,sun6i-a31-i2c";
|
||||
reg = <0x2502400 0x400>;
|
||||
interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_I2C1>;
|
||||
resets = <&ccu RST_BUS_I2C1>;
|
||||
status = "disabled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c2: i2c@2502800 {
|
||||
compatible = "allwinner,sun55i-a523-i2c",
|
||||
"allwinner,sun8i-v536-i2c",
|
||||
"allwinner,sun6i-a31-i2c";
|
||||
reg = <0x2502800 0x400>;
|
||||
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_I2C2>;
|
||||
resets = <&ccu RST_BUS_I2C2>;
|
||||
status = "disabled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c3: i2c@2502c00 {
|
||||
compatible = "allwinner,sun55i-a523-i2c",
|
||||
"allwinner,sun8i-v536-i2c",
|
||||
"allwinner,sun6i-a31-i2c";
|
||||
reg = <0x2502c00 0x400>;
|
||||
interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_I2C3>;
|
||||
resets = <&ccu RST_BUS_I2C3>;
|
||||
status = "disabled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c4: i2c@2503000 {
|
||||
compatible = "allwinner,sun55i-a523-i2c",
|
||||
"allwinner,sun8i-v536-i2c",
|
||||
"allwinner,sun6i-a31-i2c";
|
||||
reg = <0x2503000 0x400>;
|
||||
interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_I2C4>;
|
||||
resets = <&ccu RST_BUS_I2C4>;
|
||||
status = "disabled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c5: i2c@2503400 {
|
||||
compatible = "allwinner,sun55i-a523-i2c",
|
||||
"allwinner,sun8i-v536-i2c",
|
||||
"allwinner,sun6i-a31-i2c";
|
||||
reg = <0x2503400 0x400>;
|
||||
interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_I2C5>;
|
||||
resets = <&ccu RST_BUS_I2C5>;
|
||||
status = "disabled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
syscon: syscon@3000000 {
|
||||
compatible = "allwinner,sun55i-a523-system-control",
|
||||
"allwinner,sun50i-a64-system-control";
|
||||
reg = <0x03000000 0x1000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
};
|
||||
|
||||
gic: interrupt-controller@3400000 {
|
||||
compatible = "arm,gic-v3";
|
||||
#address-cells = <1>;
|
||||
#interrupt-cells = <3>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
interrupt-controller;
|
||||
reg = <0x3400000 0x10000>,
|
||||
<0x3460000 0x100000>;
|
||||
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dma-noncoherent;
|
||||
|
||||
its: msi-controller@3440000 {
|
||||
compatible = "arm,gic-v3-its";
|
||||
reg = <0x3440000 0x20000>;
|
||||
msi-controller;
|
||||
#msi-cells = <1>;
|
||||
dma-noncoherent;
|
||||
};
|
||||
};
|
||||
|
||||
usb_otg: usb@4100000 {
|
||||
compatible = "allwinner,sun55i-a523-musb",
|
||||
"allwinner,sun8i-a33-musb";
|
||||
reg = <0x4100000 0x400>;
|
||||
interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "mc";
|
||||
clocks = <&ccu CLK_BUS_OTG>;
|
||||
resets = <&ccu RST_BUS_OTG>;
|
||||
extcon = <&usbphy 0>;
|
||||
phys = <&usbphy 0>;
|
||||
phy-names = "usb";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usbphy: phy@4100400 {
|
||||
compatible = "allwinner,sun55i-a523-usb-phy",
|
||||
"allwinner,sun20i-d1-usb-phy";
|
||||
reg = <0x4100400 0x100>,
|
||||
<0x4101800 0x100>,
|
||||
<0x4200800 0x100>;
|
||||
reg-names = "phy_ctrl",
|
||||
"pmu0",
|
||||
"pmu1";
|
||||
clocks = <&osc24M>,
|
||||
<&osc24M>;
|
||||
clock-names = "usb0_phy",
|
||||
"usb1_phy";
|
||||
resets = <&ccu RST_USB_PHY0>,
|
||||
<&ccu RST_USB_PHY1>;
|
||||
reset-names = "usb0_reset",
|
||||
"usb1_reset";
|
||||
status = "disabled";
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
ehci0: usb@4101000 {
|
||||
compatible = "allwinner,sun55i-a523-ehci",
|
||||
"generic-ehci";
|
||||
reg = <0x4101000 0x100>;
|
||||
interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_OHCI0>,
|
||||
<&ccu CLK_BUS_EHCI0>,
|
||||
<&ccu CLK_USB_OHCI0>;
|
||||
resets = <&ccu RST_BUS_OHCI0>,
|
||||
<&ccu RST_BUS_EHCI0>;
|
||||
phys = <&usbphy 0>;
|
||||
phy-names = "usb";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ohci0: usb@4101400 {
|
||||
compatible = "allwinner,sun55i-a523-ohci",
|
||||
"generic-ohci";
|
||||
reg = <0x4101400 0x100>;
|
||||
interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_OHCI0>,
|
||||
<&ccu CLK_USB_OHCI0>;
|
||||
resets = <&ccu RST_BUS_OHCI0>;
|
||||
phys = <&usbphy 0>;
|
||||
phy-names = "usb";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ehci1: usb@4200000 {
|
||||
compatible = "allwinner,sun55i-a523-ehci",
|
||||
"generic-ehci";
|
||||
reg = <0x4200000 0x100>;
|
||||
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_OHCI1>,
|
||||
<&ccu CLK_BUS_EHCI1>,
|
||||
<&ccu CLK_USB_OHCI1>;
|
||||
resets = <&ccu RST_BUS_OHCI1>,
|
||||
<&ccu RST_BUS_EHCI1>;
|
||||
phys = <&usbphy 1>;
|
||||
phy-names = "usb";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ohci1: usb@4200400 {
|
||||
compatible = "allwinner,sun55i-a523-ohci",
|
||||
"generic-ohci";
|
||||
reg = <0x4200400 0x100>;
|
||||
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_OHCI1>,
|
||||
<&ccu CLK_USB_OHCI1>;
|
||||
resets = <&ccu RST_BUS_OHCI1>;
|
||||
phys = <&usbphy 1>;
|
||||
phy-names = "usb";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
emac0: ethernet@4500000 {
|
||||
compatible = "allwinner,sun55i-a523-emac0",
|
||||
"allwinner,sun50i-a64-emac";
|
||||
reg = <0x04500000 0x10000>;
|
||||
clocks = <&ccu CLK_BUS_EMAC0>;
|
||||
clock-names = "stmmaceth";
|
||||
resets = <&ccu RST_BUS_EMAC0>;
|
||||
reset-names = "stmmaceth";
|
||||
interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "macirq";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&rgmii0_pins>;
|
||||
syscon = <&syscon>;
|
||||
status = "disabled";
|
||||
|
||||
mdio0: mdio {
|
||||
compatible = "snps,dwmac-mdio";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
r_ccu: clock-controller@7010000 {
|
||||
compatible = "allwinner,sun55i-a523-r-ccu";
|
||||
reg = <0x7010000 0x250>;
|
||||
clocks = <&osc24M>,
|
||||
<&rtc CLK_OSC32K>,
|
||||
<&rtc CLK_IOSC>,
|
||||
<&ccu CLK_PLL_PERIPH0_200M>,
|
||||
<&ccu CLK_PLL_AUDIO0_4X>;
|
||||
clock-names = "hosc",
|
||||
"losc",
|
||||
"iosc",
|
||||
"pll-periph",
|
||||
"pll-audio";
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
nmi_intc: interrupt-controller@7010320 {
|
||||
compatible = "allwinner,sun55i-a523-nmi";
|
||||
reg = <0x07010320 0xc>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
r_pio: pinctrl@7022000 {
|
||||
compatible = "allwinner,sun55i-a523-r-pinctrl";
|
||||
reg = <0x7022000 0x800>;
|
||||
interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&r_ccu CLK_R_APB0>,
|
||||
<&osc24M>,
|
||||
<&rtc CLK_OSC32K>;
|
||||
clock-names = "apb", "hosc", "losc";
|
||||
gpio-controller;
|
||||
#gpio-cells = <3>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <3>;
|
||||
|
||||
r_i2c_pins: r-i2c-pins {
|
||||
pins = "PL0" ,"PL1";
|
||||
allwinner,pinmux = <2>;
|
||||
function = "r_i2c0";
|
||||
};
|
||||
};
|
||||
|
||||
r_i2c0: i2c@7081400 {
|
||||
compatible = "allwinner,sun55i-a523-i2c",
|
||||
"allwinner,sun8i-v536-i2c",
|
||||
"allwinner,sun6i-a31-i2c";
|
||||
reg = <0x07081400 0x400>;
|
||||
interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&r_ccu CLK_BUS_R_I2C0>;
|
||||
resets = <&r_ccu RST_BUS_R_I2C0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&r_i2c_pins>;
|
||||
status = "disabled";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
rtc: rtc@7090000 {
|
||||
compatible = "allwinner,sun55i-a523-rtc",
|
||||
"allwinner,sun50i-r329-rtc";
|
||||
reg = <0x7090000 0x400>;
|
||||
interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&r_ccu CLK_BUS_R_RTC>,
|
||||
<&osc24M>,
|
||||
<&r_ccu CLK_R_AHB>;
|
||||
clock-names = "bus", "hosc", "ahb";
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
318
arch/arm64/boot/dts/allwinner/sun55i-a527-cubie-a5e.dts
Normal file
318
arch/arm64/boot/dts/allwinner/sun55i-a527-cubie-a5e.dts
Normal file
|
|
@ -0,0 +1,318 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
|
||||
// Copyright (C) 2025 Arm Ltd.
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "sun55i-a523.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
model = "Radxa Cubie A5E";
|
||||
compatible = "radxa,cubie-a5e", "allwinner,sun55i-a527";
|
||||
|
||||
aliases {
|
||||
ethernet0 = &emac0;
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
ext_osc32k: ext-osc32k-clk {
|
||||
#clock-cells = <0>;
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <32768>;
|
||||
clock-output-names = "ext_osc32k";
|
||||
};
|
||||
|
||||
reg_vcc5v: vcc5v {
|
||||
/* board wide 5V supply from the USB-C connector */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc-5v";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
reg_usb_vbus: vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb-vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
vin-supply = <®_vcc5v>;
|
||||
gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
|
||||
enable-active-high;
|
||||
};
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&emac0 {
|
||||
phy-mode = "rgmii-id";
|
||||
phy-handle = <&ext_rgmii_phy>;
|
||||
phy-supply = <®_cldo3>;
|
||||
|
||||
allwinner,tx-delay-ps = <300>;
|
||||
allwinner,rx-delay-ps = <400>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mdio0 {
|
||||
ext_rgmii_phy: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
vmmc-supply = <®_cldo3>;
|
||||
cd-gpios = <&pio 5 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PF6 */
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pio {
|
||||
vcc-pb-supply = <®_cldo3>; /* via VCC-IO */
|
||||
vcc-pc-supply = <®_cldo1>;
|
||||
vcc-pd-supply = <®_cldo3>;
|
||||
vcc-pe-supply = <®_aldo2>;
|
||||
vcc-pf-supply = <®_cldo3>; /* actually switchable */
|
||||
vcc-pg-supply = <®_bldo1>;
|
||||
vcc-ph-supply = <®_cldo3>; /* via VCC-IO */
|
||||
vcc-pi-supply = <®_cldo3>;
|
||||
vcc-pj-supply = <®_cldo4>;
|
||||
vcc-pk-supply = <®_cldo1>;
|
||||
};
|
||||
|
||||
&r_i2c0 {
|
||||
status = "okay";
|
||||
|
||||
axp717: pmic@34 {
|
||||
compatible = "x-powers,axp717";
|
||||
reg = <0x34>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-parent = <&nmi_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
vin1-supply = <®_vcc5v>;
|
||||
vin2-supply = <®_vcc5v>;
|
||||
vin3-supply = <®_vcc5v>;
|
||||
vin4-supply = <®_vcc5v>;
|
||||
aldoin-supply = <®_vcc5v>;
|
||||
bldoin-supply = <®_vcc5v>;
|
||||
cldoin-supply = <®_vcc5v>;
|
||||
|
||||
regulators {
|
||||
/* Supplies the "little" cluster (1.4 GHz cores) */
|
||||
reg_dcdc1: dcdc1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <1160000>;
|
||||
regulator-name = "vdd-cpul";
|
||||
};
|
||||
|
||||
reg_dcdc2: dcdc2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <920000>;
|
||||
regulator-max-microvolt = <920000>;
|
||||
regulator-name = "vdd-gpu-sys";
|
||||
};
|
||||
|
||||
reg_dcdc3: dcdc3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-dram";
|
||||
};
|
||||
|
||||
reg_aldo1: aldo1 {
|
||||
/* not connected */
|
||||
};
|
||||
|
||||
reg_aldo2: aldo2 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-pe";
|
||||
};
|
||||
|
||||
reg_aldo3: aldo3 {
|
||||
/* supplies the I2C pins for this PMIC */
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-pl-usb";
|
||||
};
|
||||
|
||||
reg_aldo4: aldo4 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-pll-dxco-avcc";
|
||||
};
|
||||
|
||||
reg_bldo1: bldo1 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-pg-iowifi";
|
||||
};
|
||||
|
||||
reg_bldo2: bldo2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-pm-lpddr4";
|
||||
};
|
||||
|
||||
reg_bldo3: bldo3 {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-mipi-cam";
|
||||
};
|
||||
|
||||
reg_bldo4: bldo4 {
|
||||
/* not connected */
|
||||
};
|
||||
|
||||
reg_cldo1: cldo1 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-pc-and-their-dog";
|
||||
};
|
||||
|
||||
reg_cldo2: cldo2 {
|
||||
/* not connected */
|
||||
};
|
||||
|
||||
reg_cldo3: cldo3 {
|
||||
/* IO, USB-2, 3V3, card, NAND, sensor, PI */
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-io-mmc-spi-ana";
|
||||
};
|
||||
|
||||
reg_cldo4: cldo4 {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-pj-phy";
|
||||
};
|
||||
|
||||
reg_cpusldo: cpusldo {
|
||||
/* supplies the management core */
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <900000>;
|
||||
regulator-name = "vdd-cpus";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
axp323: pmic@36 {
|
||||
compatible = "x-powers,axp323";
|
||||
reg = <0x36>;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&nmi_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
status = "okay";
|
||||
|
||||
vin1-supply = <®_vcc5v>;
|
||||
vin2-supply = <®_vcc5v>;
|
||||
vin3-supply = <®_vcc5v>;
|
||||
|
||||
regulators {
|
||||
aldo1 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-mipi-dsi";
|
||||
};
|
||||
|
||||
dldo1 {
|
||||
/* not connected */
|
||||
};
|
||||
|
||||
/* Supplies the "big" cluster (1.8 GHz cores) */
|
||||
reg_dcdc1_323: dcdc1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <1160000>;
|
||||
regulator-name = "vdd-cpub";
|
||||
};
|
||||
|
||||
/* DCDC2 is polyphased with DCDC1 */
|
||||
|
||||
/* RISC-V management core supply */
|
||||
reg_dcdc3_323: dcdc3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <900000>;
|
||||
regulator-name = "vdd-dnr";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&r_pio {
|
||||
/*
|
||||
* Specifying the supply would create a circular dependency.
|
||||
*
|
||||
* vcc-pl-supply = <®_aldo3>;
|
||||
*/
|
||||
vcc-pm-supply = <®_aldo3>;
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pb_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_otg {
|
||||
/*
|
||||
* The USB-C port is the primary power supply, so in this configuration
|
||||
* relies on the other end of the USB cable to supply the VBUS power.
|
||||
* So use this port in peripheral mode.
|
||||
* It is possible to supply the board with the 5V pins on the GPIO
|
||||
* header, and since the DCIN_5V line is hardwired to the USB-C VBUS
|
||||
* pins, the port turns into a host port, unconditionally supplying
|
||||
* power. The dr_mode property should be changed to "host" here, if
|
||||
* users choose this setup.
|
||||
*/
|
||||
dr_mode = "peripheral";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/*
|
||||
* The schematic describes USB0_ID (PL10), measuring VBUS_5V, which looks to
|
||||
* be always on. Also there is USB-VBUSDET (PL2), which is measuring the same
|
||||
* VBUS_5V. There is also DCIN_DET, which measures DCIN_5V, so the power
|
||||
* input rail.
|
||||
* None of them seem to make any sense in relation to detecting USB devices
|
||||
* or whether there is power provided via any USB pins: they would always
|
||||
* report high, otherwise the system wouldn't be running.
|
||||
* The AXP717C provides proper USB-C CC pin functionality, but the PMIC is
|
||||
* not connected to those pins of the USB-C connector.
|
||||
*/
|
||||
&usbphy {
|
||||
usb0_vbus-supply = <®_vcc5v>;
|
||||
usb1_vbus-supply = <®_usb_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
287
arch/arm64/boot/dts/allwinner/sun55i-h728-x96qpro+.dts
Normal file
287
arch/arm64/boot/dts/allwinner/sun55i-h728-x96qpro+.dts
Normal file
|
|
@ -0,0 +1,287 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
|
||||
// Copyright (C) 2024 Arm Ltd.
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "sun55i-a523.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
model = "X96Q Pro+";
|
||||
compatible = "amediatech,x96q-pro-plus", "allwinner,sun55i-h728";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
ext_osc32k: ext-osc32k-clk {
|
||||
#clock-cells = <0>;
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <32768>;
|
||||
clock-output-names = "ext_osc32k";
|
||||
};
|
||||
|
||||
reg_vcc5v: vcc5v {
|
||||
/* board wide 5V supply from the barrel plug */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc-5v";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
reg_vcc3v3: vcc3v3 {
|
||||
/* 3.3V dummy supply for the SD card */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc-3v3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
vin-supply = <®_vcc5v>;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
vmmc-supply = <®_vcc3v3>;
|
||||
cd-gpios = <&pio 5 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PF6 */
|
||||
bus-width = <4>;
|
||||
disable-wp;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
vmmc-supply = <®_cldo3>;
|
||||
vqmmc-supply = <®_cldo1>;
|
||||
bus-width = <8>;
|
||||
non-removable;
|
||||
cap-mmc-hw-reset;
|
||||
mmc-ddr-1_8v;
|
||||
mmc-hs200-1_8v;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pio {
|
||||
vcc-pb-supply = <®_cldo3>; /* via VCC-IO */
|
||||
vcc-pc-supply = <®_cldo1>;
|
||||
vcc-pd-supply = <®_dcdc4>;
|
||||
vcc-pe-supply = <®_dcdc4>;
|
||||
vcc-pf-supply = <®_cldo3>; /* actually switchable */
|
||||
vcc-pg-supply = <®_bldo1>;
|
||||
vcc-ph-supply = <®_cldo3>; /* via VCC-IO */
|
||||
vcc-pi-supply = <®_dcdc4>;
|
||||
vcc-pj-supply = <®_dcdc4>;
|
||||
vcc-pk-supply = <®_bldo3>;
|
||||
};
|
||||
|
||||
&r_i2c0 {
|
||||
status = "okay";
|
||||
|
||||
axp717: pmic@34 {
|
||||
compatible = "x-powers,axp717";
|
||||
reg = <0x34>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-parent = <&nmi_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
vin1-supply = <®_vcc5v>;
|
||||
vin2-supply = <®_vcc5v>;
|
||||
vin3-supply = <®_vcc5v>;
|
||||
vin4-supply = <®_vcc5v>;
|
||||
aldoin-supply = <®_vcc5v>;
|
||||
bldoin-supply = <®_vcc5v>;
|
||||
cldoin-supply = <®_vcc5v>;
|
||||
|
||||
regulators {
|
||||
/* Supplies the "little" cluster (1.0(?) GHz cores) */
|
||||
reg_dcdc1: dcdc1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <1160000>;
|
||||
regulator-name = "vdd-cpul";
|
||||
};
|
||||
|
||||
reg_dcdc2: dcdc2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <920000>;
|
||||
regulator-max-microvolt = <920000>;
|
||||
regulator-name = "vdd-gpu-sys";
|
||||
};
|
||||
|
||||
reg_dcdc3: dcdc3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1360000>;
|
||||
regulator-max-microvolt = <1360000>;
|
||||
regulator-name = "vdd-dram";
|
||||
};
|
||||
|
||||
reg_dcdc4: dcdc4 {
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
regulator-name = "vdd-dcdc4";
|
||||
};
|
||||
|
||||
reg_aldo1: aldo1 {
|
||||
/* not connected */
|
||||
};
|
||||
|
||||
reg_aldo2: aldo2 {
|
||||
/* not connected */
|
||||
};
|
||||
|
||||
reg_aldo3: aldo3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-aldo3";
|
||||
};
|
||||
|
||||
reg_aldo4: aldo4 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-pll-dxco-avcc";
|
||||
};
|
||||
|
||||
reg_bldo1: bldo1 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-pg-wifi-lvds";
|
||||
};
|
||||
|
||||
reg_bldo2: bldo2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-dram-1v8";
|
||||
};
|
||||
|
||||
reg_bldo3: bldo3 {
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
regulator-name = "vcc-bldo3";
|
||||
};
|
||||
|
||||
reg_bldo4: bldo4 {
|
||||
/* not connected */
|
||||
};
|
||||
|
||||
reg_cldo1: cldo1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-codec-sd";
|
||||
};
|
||||
|
||||
reg_cldo2: cldo2 {
|
||||
};
|
||||
|
||||
reg_cldo3: cldo3 {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-codec-eth-sd";
|
||||
};
|
||||
|
||||
reg_cldo4: cldo4 {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-eth-phy";
|
||||
};
|
||||
|
||||
reg_cpusldo: cpusldo {
|
||||
/* supplies the management core */
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <900000>;
|
||||
regulator-name = "vdd-cpus";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
axp323: pmic@36 {
|
||||
compatible = "x-powers,axp323";
|
||||
reg = <0x36>;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&nmi_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
status = "okay";
|
||||
|
||||
vin1-supply = <®_vcc5v>;
|
||||
vin2-supply = <®_vcc5v>;
|
||||
vin3-supply = <®_vcc5v>;
|
||||
|
||||
regulators {
|
||||
aldo1 {
|
||||
/* not connected */
|
||||
};
|
||||
|
||||
dldo1 {
|
||||
/* not connected */
|
||||
};
|
||||
|
||||
/* Supplies the "big" cluster (1.8 GHz cores) */
|
||||
reg_dcdc1_323: dcdc1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <1160000>;
|
||||
regulator-name = "vdd-cpub";
|
||||
};
|
||||
|
||||
/* DCDC2 is polyphased with DCDC1 */
|
||||
|
||||
reg_dcdc3_323: dcdc3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1050000>;
|
||||
regulator-max-microvolt = <1050000>;
|
||||
regulator-name = "vdd-dcdc3";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&r_pio {
|
||||
/*
|
||||
* Specifying the supply would create a circular dependency.
|
||||
*
|
||||
* vcc-pl-supply = <®_aldo3>;
|
||||
*/
|
||||
vcc-pm-supply = <®_aldo3>;
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pb_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_otg {
|
||||
/* USB0 is a USB-A receptacle, always powered, so force host mode. */
|
||||
dr_mode = "host";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
status = "okay";
|
||||
};
|
||||
327
arch/arm64/boot/dts/allwinner/sun55i-t527-avaota-a1.dts
Normal file
327
arch/arm64/boot/dts/allwinner/sun55i-t527-avaota-a1.dts
Normal file
|
|
@ -0,0 +1,327 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
|
||||
// Copyright (C) 2024 Arm Ltd.
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "sun55i-a523.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
model = "Avaota A1";
|
||||
compatible = "yuzukihd,avaota-a1", "allwinner,sun55i-t527";
|
||||
|
||||
aliases {
|
||||
ethernet0 = &emac0;
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
ext_osc32k: ext-osc32k-clk {
|
||||
#clock-cells = <0>;
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <32768>;
|
||||
clock-output-names = "ext_osc32k";
|
||||
};
|
||||
|
||||
reg_vcc12v: vcc12v {
|
||||
/* DC input jack */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc-12v";
|
||||
regulator-min-microvolt = <12000000>;
|
||||
regulator-max-microvolt = <12000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
reg_vcc5v: vcc5v {
|
||||
/* board wide 5V supply from the 12V->5V regulator */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc-5v";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
vin-supply = <®_vcc12v>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
reg_usb_vbus: vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb-vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
vin-supply = <®_vcc5v>;
|
||||
gpio = <&pio 8 12 GPIO_ACTIVE_HIGH>; /* PI12 */
|
||||
enable-active-high;
|
||||
};
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&emac0 {
|
||||
phy-mode = "rgmii-id";
|
||||
phy-handle = <&ext_rgmii_phy>;
|
||||
phy-supply = <®_dcdc4>;
|
||||
|
||||
allwinner,tx-delay-ps = <100>;
|
||||
allwinner,rx-delay-ps = <300>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mdio0 {
|
||||
ext_rgmii_phy: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
vmmc-supply = <®_cldo3>;
|
||||
cd-gpios = <&pio 5 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PF6 */
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
bus-width = <8>;
|
||||
cap-mmc-hw-reset;
|
||||
mmc-ddr-1_8v;
|
||||
mmc-hs200-1_8v;
|
||||
non-removable;
|
||||
vmmc-supply = <®_cldo3>;
|
||||
vqmmc-supply = <®_cldo1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pio {
|
||||
vcc-pb-supply = <®_cldo3>; /* via VCC-IO */
|
||||
vcc-pc-supply = <®_cldo1>;
|
||||
vcc-pd-supply = <®_dcdc4>;
|
||||
vcc-pe-supply = <®_dcdc4>;
|
||||
vcc-pf-supply = <®_cldo3>; /* actually switchable */
|
||||
vcc-pg-supply = <®_bldo1>;
|
||||
vcc-ph-supply = <®_cldo3>; /* via VCC-IO */
|
||||
vcc-pi-supply = <®_dcdc4>;
|
||||
vcc-pj-supply = <®_dcdc4>;
|
||||
vcc-pk-supply = <®_bldo3>;
|
||||
};
|
||||
|
||||
&r_i2c0 {
|
||||
status = "okay";
|
||||
|
||||
axp717: pmic@35 {
|
||||
compatible = "x-powers,axp717";
|
||||
reg = <0x35>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-parent = <&nmi_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
vin1-supply = <®_vcc5v>;
|
||||
vin2-supply = <®_vcc5v>;
|
||||
vin3-supply = <®_vcc5v>;
|
||||
vin4-supply = <®_vcc5v>;
|
||||
aldoin-supply = <®_vcc5v>;
|
||||
bldoin-supply = <®_vcc5v>;
|
||||
cldoin-supply = <®_vcc5v>;
|
||||
|
||||
regulators {
|
||||
/* Supplies the "little" cluster (1.4 GHz cores) */
|
||||
reg_dcdc1: dcdc1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <1160000>;
|
||||
regulator-name = "vdd-cpul";
|
||||
};
|
||||
|
||||
reg_dcdc2: dcdc2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <920000>;
|
||||
regulator-max-microvolt = <920000>;
|
||||
regulator-name = "vdd-gpu-sys";
|
||||
};
|
||||
|
||||
reg_dcdc3: dcdc3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1160000>;
|
||||
regulator-max-microvolt = <1160000>;
|
||||
regulator-name = "vdd-dram";
|
||||
};
|
||||
|
||||
reg_dcdc4: dcdc4 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vdd-io";
|
||||
};
|
||||
|
||||
reg_aldo1: aldo1 {
|
||||
/* not connected */
|
||||
};
|
||||
|
||||
reg_aldo2: aldo2 {
|
||||
/* not connected */
|
||||
};
|
||||
|
||||
reg_aldo3: aldo3 {
|
||||
/* supplies the I2C pins for this PMIC */
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-pl-pm";
|
||||
};
|
||||
|
||||
reg_aldo4: aldo4 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-pll-dxco-avcc";
|
||||
};
|
||||
|
||||
reg_bldo1: bldo1 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-pg-wifi-lvds";
|
||||
};
|
||||
|
||||
reg_bldo2: bldo2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-dram-1v8";
|
||||
};
|
||||
|
||||
reg_bldo3: bldo3 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-cvp-pk-vid1v8";
|
||||
};
|
||||
|
||||
reg_bldo4: bldo4 {
|
||||
/* not connected */
|
||||
};
|
||||
|
||||
reg_cldo1: cldo1 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-pc";
|
||||
};
|
||||
|
||||
reg_cldo2: cldo2 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-efuse";
|
||||
};
|
||||
|
||||
reg_cldo3: cldo3 {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-io-mmc-spi-ana";
|
||||
};
|
||||
|
||||
reg_cldo4: cldo4 {
|
||||
/* not connected */
|
||||
};
|
||||
|
||||
reg_cpusldo: cpusldo {
|
||||
/* supplies the management core */
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <900000>;
|
||||
regulator-name = "vdd-cpus";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
axp323: pmic@36 {
|
||||
compatible = "x-powers,axp323";
|
||||
reg = <0x36>;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&nmi_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
status = "okay";
|
||||
|
||||
vin1-supply = <®_vcc5v>;
|
||||
vin2-supply = <®_vcc5v>;
|
||||
vin3-supply = <®_vcc5v>;
|
||||
|
||||
regulators {
|
||||
aldo1 {
|
||||
/* not connected */
|
||||
};
|
||||
|
||||
dldo1 {
|
||||
/* not connected */
|
||||
};
|
||||
|
||||
/* Supplies the "big" cluster (1.8 GHz cores) */
|
||||
reg_dcdc1_323: dcdc1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <1160000>;
|
||||
regulator-name = "vdd-cpub";
|
||||
};
|
||||
|
||||
/* DCDC2 is polyphased with DCDC1 */
|
||||
|
||||
/* Some RISC-V management core related voltage */
|
||||
reg_dcdc3_323: dcdc3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <900000>;
|
||||
regulator-name = "vdd-dnr";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&r_pio {
|
||||
/*
|
||||
* Specifying the supply would create a circular dependency.
|
||||
*
|
||||
* vcc-pl-supply = <®_aldo3>;
|
||||
*/
|
||||
vcc-pm-supply = <®_aldo3>;
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pb_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_otg {
|
||||
/*
|
||||
* The CC pins of the USB-C port have two pull-down resistors
|
||||
* connected to GND, which fixes this port to a peripheral role.
|
||||
* There is a regulator, controlled by a GPIO, to provide VBUS power
|
||||
* to the port, and a VBUSDET GPIO, to detect externally provided
|
||||
* power, but without the CC pins there is no real way to do a
|
||||
* runtime role detection.
|
||||
*/
|
||||
dr_mode = "peripheral";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
usb0_vbus-supply = <®_usb_vbus>;
|
||||
usb0_vbus_det-gpios = <&pio 8 13 GPIO_ACTIVE_HIGH>; /* PI13 */
|
||||
status = "okay";
|
||||
};
|
||||
Loading…
Reference in New Issue
Block a user