Allwinner device tree changes for 6.20

Not many changes this cycle.
 
 - The A523 family of SoCs gained support for SPI controllers.
 - Some cleanup of old ARM device tree files to fix DT binding validation
   errors.
 - D1 and A100 SoCs gained support for their LED controller. This was
   from a couple years ago. The driver made it in, but the DT patches
   were missed.
 - D1 and T113 SoCs gained support for the internal thermal sensor.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAmlyYQwQHHdlbnNAa2Vy
 bmVsLm9yZwAKCRA4mlQhnA8kMFqoD/kBtqBUjxCfaFQRfAwn7COEaAaSzA+aITsH
 V4x8YKgnuO2UohU/hc2H4K1VjWbOWTSmmolcpx/X4zg2ZrlpLOSsKlrPHOefrkEv
 VwtDDCkg6V/uaKzvAD23CoEwmCBCidu1giErSXsdPx8eh4LNcX+7iTgGdkQWV1dg
 w8YfOs8b6RLuajg2SRgsMIBMTrcIEwE9gwoRZZLTDbXWtT7QlfkxQcXvu22dhJHp
 m7zSowBLqNvA7sT0bq1ue1q58EEMWRTF7Tx55ssNp6j5O1peYQLc3if/5j5371RQ
 M0MCLZidzmGd/WXHwstWr8WpYuVjrjApRPmE5xE6vMFVTPwWb7192FJE2zHahLu4
 gsdSp8D80Ktma3PM2w6iKFMNHsDtUb2ec1ZuXEMVEadoqwFKDw+4611PW8vZZaPm
 BpFut9ZyKq9mx+5of471MQlc3eUZMgKKZqrX29k8Ycm3hoKl2iix9h46/082x5s+
 APuFgfztNDNe6B4Zb18UgM+q7oo1Aa8tOBdguVoK4wlN0HLDCX9WCMdm6zqTLgAz
 CmThLzhILlaxrdEIg2HkuoviYH3sDgqljIZl0t4PwcYCJgjlg4fidVuak6Lqul9x
 hXcc2sOR+Yh3hfPinjlR1Nq3bLElHvaGOLySC1vWFahZSuqspkjyZBLlmubTpvUA
 IMwo4kdZrQ==
 =cdhO
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAml6SpYACgkQmmx57+YA
 GNkBKQ//fWsWf/YMInaMA1vMorES5pEsYrZ8Tyagfbeziekqrr+XZOMHWhwc5HjS
 OOSSvJsxCpL2ox1WwvCUAOwPXGAaSCmnfQyGPn90vmj9G+McyqIiAOwO8EXZnOUw
 6pFZztTEJrShQOBYROdNtxnRvimOslWQZCnCGODCa7iRkovKLDPO8dOt6BXCnVNt
 LHu3sXp50BFw2qIEUdnpVo7cGPaWC/yOUuoRqJrF2YBzn0sddye7I8ZF2TamVREx
 EpVoRgnxvkvDe7w4WPEqaz0qujbZWsSvaQfcd2/D+pSIiI/wjhqdkV3u+QBiP5qZ
 UmfrzliXn8Rb+1UG2Ftx/jQ+0hZ6I4i/vEUnQTulgKv6nakId5w5gL8Vhyh+TY57
 ZardyEuoQgAdhW0uoUJyQkV+Q9VZ0vurAxlDPDkcCIrpaWQeDuWl1p6EOAmtK8+N
 ADPzYAuoE4uNfnYIHbYodfXbILR5wFk8XZ5sL95Kku6YbpYkzRsSHDSdRYTzm8ox
 ST74jNrl2TyrJ5iRIDPhxw+IeYFAXP9PVsvPVICTOi+ssQApM1yjBysPNZJpnC/1
 om9Cf7DPFMhSDu+S1EyKgaym2uUB92ooMz7qS7wYOpJdoCk+b5KRIgxLUeU9JGAV
 K50/oNs3BfGLS3B1yxCPraeUR086jJU4BVuk/OwXN9N60IRG8S4=
 =X0CG
 -----END PGP SIGNATURE-----

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

Allwinner device tree changes for 6.20

Not many changes this cycle.

- The A523 family of SoCs gained support for SPI controllers.
- Some cleanup of old ARM device tree files to fix DT binding validation
  errors.
- D1 and A100 SoCs gained support for their LED controller. This was
  from a couple years ago. The driver made it in, but the DT patches
  were missed.
- D1 and T113 SoCs gained support for the internal thermal sensor.

* tag 'sunxi-dt-for-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  riscv: dts: allwinner: d1: Add CPU thermal sensor and zone
  ARM: dts: allwinner: Replace status "failed" with "fail"
  riscv: dts: allwinner: d1: Add RGB LEDs to boards
  riscv: dts: allwinner: d1: Add LED controller node
  arm64: dts: allwinner: a100: Add LED controller node
  ARM: dts: allwinner: sun5i-a13-utoo-p66: delete "power-gpios" property
  arm64: dts: allwinner: t527: orangepi-4a: Enable SPI-NOR flash
  arm64: dts: allwinner: sun55i: Add SPI controllers

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2026-01-28 18:42:44 +01:00
commit d69af478d2
14 changed files with 254 additions and 4 deletions

View file

@ -112,7 +112,7 @@
&i2c1 {
/* pull-ups and devices require AXP209 LDO3 */
status = "failed";
status = "fail";
};
&i2c2 {

View file

@ -96,7 +96,7 @@
&i2c1 {
/* pull-ups and devices require AXP209 LDO3 */
status = "failed";
status = "fail";
};
&i2c2 {

View file

@ -102,6 +102,7 @@
/* The P66 uses a different EINT then the reference design */
interrupts = <6 9 IRQ_TYPE_EDGE_FALLING>; /* EINT9 (PG9) */
/* The icn8318 binding expects wake-gpios instead of power-gpios */
/delete-property/ power-gpios;
wake-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
touchscreen-size-x = <800>;
touchscreen-size-y = <480>;

View file

@ -170,7 +170,7 @@
&i2c0 {
/* pull-ups and devices require AXP221 DLDO3 */
status = "failed";
status = "fail";
};
&i2c1 {

View file

@ -90,7 +90,7 @@
&i2c0 {
/* pull-ups and device VDDIO use AXP221 DLDO3 */
status = "failed";
status = "fail";
};
&i2c1 {

View file

@ -4,6 +4,7 @@
#define SOC_PERIPHERAL_IRQ(nr) GIC_SPI nr
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/thermal/thermal.h>
#include <riscv/allwinner/sunxi-d1s-t113.dtsi>
#include <riscv/allwinner/sunxi-d1-t113.dtsi>
@ -20,6 +21,7 @@
reg = <0>;
clocks = <&ccu CLK_CPUX>;
clock-names = "cpu";
#cooling-cells = <2>;
};
cpu1: cpu@1 {
@ -28,6 +30,7 @@
reg = <1>;
clocks = <&ccu CLK_CPUX>;
clock-names = "cpu";
#cooling-cells = <2>;
};
};
@ -56,4 +59,34 @@
<GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&cpu0>, <&cpu1>;
};
thermal-zones {
cpu-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&ths>;
cooling-maps {
map0 {
trip = <&cpu_alert>;
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
trips {
cpu_alert: cpu-alert {
temperature = <85000>;
hysteresis = <2000>;
type = "passive";
};
cpu-crit {
temperature = <100000>;
hysteresis = <0>;
type = "critical";
};
};
};
};
};

View file

@ -420,6 +420,20 @@
#size-cells = <0>;
};
ledc: led-controller@5018000 {
compatible = "allwinner,sun50i-a100-ledc";
reg = <0x5018000 0x400>;
interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_LEDC>, <&ccu CLK_LEDC>;
clock-names = "bus", "mod";
resets = <&ccu RST_BUS_LEDC>;
dmas = <&dma 42>;
dma-names = "tx";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
emac0: ethernet@5020000 {
compatible = "allwinner,sun50i-a100-emac",
"allwinner,sun50i-a64-emac";

View file

@ -214,6 +214,43 @@
allwinner,pinmux = <2>;
};
/omit-if-no-ref/
spi0_pc_pins: spi0-pc-pins {
pins = "PC2", "PC4", "PC12";
function = "spi0";
allwinner,pinmux = <4>;
};
/omit-if-no-ref/
spi0_cs0_pc_pin: spi0-cs0-pc-pin {
pins = "PC3";
function = "spi0";
allwinner,pinmux = <4>;
};
/omit-if-no-ref/
spi0_cs1_pc_pin: spi0-cs1-pc-pin {
pins = "PC7";
function = "spi0";
allwinner,pinmux = <4>;
};
/omit-if-no-ref/
spi0_hold_pc_pin: spi0-hold-pc-pin {
/* conflicts with eMMC D7 */
pins = "PC16";
function = "spi0";
allwinner,pinmux = <4>;
};
/omit-if-no-ref/
spi0_wp_pc_pin: spi0-wp-pc-pin {
/* conflicts with eMMC D2 */
pins = "PC15";
function = "spi0";
allwinner,pinmux = <4>;
};
uart0_pb_pins: uart0-pb-pins {
pins = "PB9", "PB10";
allwinner,pinmux = <2>;
@ -563,6 +600,49 @@
#size-cells = <0>;
};
spi0: spi@4025000 {
compatible = "allwinner,sun55i-a523-spi";
reg = <0x04025000 0x1000>;
interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
clock-names = "ahb", "mod";
dmas = <&dma 22>, <&dma 22>;
dma-names = "rx", "tx";
resets = <&ccu RST_BUS_SPI0>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
spi1: spi@4026000 {
compatible = "allwinner,sun55i-a523-spi-dbi",
"allwinner,sun55i-a523-spi";
reg = <0x04026000 0x1000>;
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
clock-names = "ahb", "mod";
dmas = <&dma 23>, <&dma 23>;
dma-names = "rx", "tx";
resets = <&ccu RST_BUS_SPI1>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
spi2: spi@4027000 {
compatible = "allwinner,sun55i-a523-spi";
reg = <0x04027000 0x1000>;
interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_SPI2>, <&ccu CLK_SPI2>;
clock-names = "ahb", "mod";
dmas = <&dma 24>, <&dma 24>;
dma-names = "rx", "tx";
resets = <&ccu RST_BUS_SPI2>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
usb_otg: usb@4100000 {
compatible = "allwinner,sun55i-a523-musb",
"allwinner,sun8i-a33-musb";
@ -815,6 +895,20 @@
#clock-cells = <1>;
};
r_spi0: spi@7092000 {
compatible = "allwinner,sun55i-a523-spi";
reg = <0x07092000 0x1000>;
interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&r_ccu CLK_BUS_R_SPI>, <&r_ccu CLK_R_SPI>;
clock-names = "ahb", "mod";
dmas = <&dma 53>, <&dma 53>;
dma-names = "rx", "tx";
resets = <&r_ccu RST_BUS_R_SPI>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
mcu_ccu: clock-controller@7102000 {
compatible = "allwinner,sun55i-a523-mcu-ccu";
reg = <0x7102000 0x200>;

View file

@ -400,6 +400,21 @@
assigned-clock-rates = <32768>;
};
&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0_pc_pins>, <&spi0_cs0_pc_pin>;
status = "okay";
flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <20000000>;
vcc-supply = <&reg_cldo1>;
};
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pb_pins>;

View file

@ -59,6 +59,18 @@
status = "okay";
};
&ledc {
pinctrl-0 = <&ledc_pc0_pin>;
pinctrl-names = "default";
status = "okay";
multi-led@0 {
reg = <0x0>;
color = <LED_COLOR_ID_RGB>;
function = LED_FUNCTION_STATUS;
};
};
&mmc1 {
bus-width = <4>;
mmc-pwrseq = <&wifi_pwrseq>;

View file

@ -22,6 +22,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
/dts-v1/;
@ -121,6 +122,18 @@
};
};
&ledc {
pinctrl-0 = <&ledc_pc0_pin>;
pinctrl-names = "default";
status = "okay";
multi-led@0 {
reg = <0x0>;
color = <LED_COLOR_ID_RGB>;
function = LED_FUNCTION_STATUS;
};
};
&mdio {
ext_rgmii_phy: ethernet-phy@1 {
compatible = "ethernet-phy-ieee802.3-c22";

View file

@ -58,6 +58,12 @@
function = "i2c2";
};
/omit-if-no-ref/
ledc_pc0_pin: ledc-pc0-pin {
pins = "PC0";
function = "ledc";
};
/omit-if-no-ref/
uart0_pb8_pins: uart0-pb8-pins {
pins = "PB8", "PB9";

View file

@ -1,6 +1,8 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
// Copyright (C) 2021-2022 Samuel Holland <samuel@sholland.org>
#include <dt-bindings/thermal/thermal.h>
#define SOC_PERIPHERAL_IRQ(nr) (nr + 16)
#include "sunxi-d1s-t113.dtsi"
@ -115,4 +117,33 @@
<0x00000000 0x0000000e 0xffffffff 0xffffffff 0x00010000>,
<0x00000000 0x0000000f 0xffffffff 0xffffffff 0x00020000>;
};
thermal-zones {
cpu-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&ths>;
cooling-maps {
map0 {
trip = <&cpu_alert>;
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
trips {
cpu_alert: cpu-alert {
temperature = <85000>;
hysteresis = <2000>;
type = "passive";
};
cpu-crit {
temperature = <100000>;
hysteresis = <0>;
type = "critical";
};
};
};
};
};

View file

@ -204,6 +204,21 @@
#reset-cells = <1>;
};
ledc: led-controller@2008000 {
compatible = "allwinner,sun20i-d1-ledc",
"allwinner,sun50i-a100-ledc";
reg = <0x2008000 0x400>;
interrupts = <SOC_PERIPHERAL_IRQ(20) IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_LEDC>, <&ccu CLK_LEDC>;
clock-names = "bus", "mod";
resets = <&ccu RST_BUS_LEDC>;
dmas = <&dma 42>;
dma-names = "tx";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
gpadc: adc@2009000 {
compatible = "allwinner,sun20i-d1-gpadc";
reg = <0x2009000 0x400>;
@ -214,6 +229,18 @@
#io-channel-cells = <1>;
};
ths: thermal-sensor@2009400 {
compatible = "allwinner,sun20i-d1-ths";
reg = <0x2009400 0x400>;
interrupts = <SOC_PERIPHERAL_IRQ(58) IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_THS>;
clock-names = "bus";
resets = <&ccu RST_BUS_THS>;
nvmem-cells = <&ths_calibration>;
nvmem-cell-names = "calibration";
#thermal-sensor-cells = <0>;
};
dmic: dmic@2031000 {
compatible = "allwinner,sun20i-d1-dmic",
"allwinner,sun50i-h6-dmic";
@ -474,6 +501,10 @@
reg = <0x3006000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
ths_calibration: thermal-sensor-calibration@14 {
reg = <0x14 0x8>;
};
};
crypto: crypto@3040000 {