
On Wed, 27 Apr 2022 15:31:30 -0500 Samuel Holland samuel@sholland.org wrote:
Copy the devicetree source for the A64 SoC and all existing boards from the Linux v5.18-rc1 tag.
To maintain ABI compatibility with existing LTS kernels, one change moving some IP blocks to the r_intc interrupt controller is excluded. This effectively reverts Linux commits 189bef235dd3 and 73088dfee635.
This update should not impact any existing U-Boot functionality.
Signed-off-by: Samuel Holland samuel@sholland.org
Compared against the files in the kernel tree, apart from the r_intc change they are identical. Change-wise I cannot find any compatibility breaking change.
Reviewed-by: Andre Przywara andre.przywara@arm.com
Cheers, Andre
arch/arm/dts/axp803.dtsi | 10 +-- arch/arm/dts/sun50i-a64-cpu-opp.dtsi | 2 +- arch/arm/dts/sun50i-a64-orangepi-win.dts | 2 +- arch/arm/dts/sun50i-a64-pinebook.dts | 1 + arch/arm/dts/sun50i-a64-pinephone.dtsi | 27 +++++++ arch/arm/dts/sun50i-a64-pinetab.dts | 29 +++++++- arch/arm/dts/sun50i-a64-teres-i.dts | 4 +- arch/arm/dts/sun50i-a64.dtsi | 93 ++++++++++++++++++------ 8 files changed, 137 insertions(+), 31 deletions(-)
diff --git a/arch/arm/dts/axp803.dtsi b/arch/arm/dts/axp803.dtsi index 10e9186a76..578ef368e2 100644 --- a/arch/arm/dts/axp803.dtsi +++ b/arch/arm/dts/axp803.dtsi @@ -10,7 +10,7 @@ interrupt-controller; #interrupt-cells = <1>;
ac_power_supply: ac-power-supply {
ac_power_supply: ac-power { compatible = "x-powers,axp803-ac-power-supply", "x-powers,axp813-ac-power-supply"; status = "disabled";
@@ -26,18 +26,18 @@ gpio-controller; #gpio-cells = <2>;
gpio0_ldo: gpio0-ldo {
gpio0_ldo: gpio0-ldo-pin { pins = "GPIO0"; function = "ldo"; };
gpio1_ldo: gpio1-ldo {
gpio1_ldo: gpio1-ldo-pin { pins = "GPIO1"; function = "ldo"; }; };
battery_power_supply: battery-power-supply {
battery_power_supply: battery-power { compatible = "x-powers,axp803-battery-power-supply", "x-powers,axp813-battery-power-supply"; status = "disabled";
@@ -147,7 +147,7 @@ }; };
usb_power_supply: usb-power-supply {
usb_power_supply: usb-power { compatible = "x-powers,axp803-usb-power-supply", "x-powers,axp813-usb-power-supply"; status = "disabled";
diff --git a/arch/arm/dts/sun50i-a64-cpu-opp.dtsi b/arch/arm/dts/sun50i-a64-cpu-opp.dtsi index 578c37490d..e39db51eb4 100644 --- a/arch/arm/dts/sun50i-a64-cpu-opp.dtsi +++ b/arch/arm/dts/sun50i-a64-cpu-opp.dtsi @@ -4,7 +4,7 @@ */
/ {
cpu0_opp_table: opp_table0 {
cpu0_opp_table: opp-table-cpu { compatible = "operating-points-v2"; opp-shared;
diff --git a/arch/arm/dts/sun50i-a64-orangepi-win.dts b/arch/arm/dts/sun50i-a64-orangepi-win.dts index 70e31743f0..8eee8051ac 100644 --- a/arch/arm/dts/sun50i-a64-orangepi-win.dts +++ b/arch/arm/dts/sun50i-a64-orangepi-win.dts @@ -343,7 +343,7 @@ &spi0 { status = "okay";
spi-flash@0 {
flash@0 { compatible = "mxicy,mx25l1606e", "jedec,spi-nor"; reg = <0>; spi-max-frequency = <80000000>;
diff --git a/arch/arm/dts/sun50i-a64-pinebook.dts b/arch/arm/dts/sun50i-a64-pinebook.dts index 7ae16541d1..68b6ab4707 100644 --- a/arch/arm/dts/sun50i-a64-pinebook.dts +++ b/arch/arm/dts/sun50i-a64-pinebook.dts @@ -15,6 +15,7 @@ / { model = "Pinebook"; compatible = "pine64,pinebook", "allwinner,sun50i-a64";
chassis-type = "laptop"; aliases { serial0 = &uart0;
diff --git a/arch/arm/dts/sun50i-a64-pinephone.dtsi b/arch/arm/dts/sun50i-a64-pinephone.dtsi index 9f69d489a8..b25e7913f5 100644 --- a/arch/arm/dts/sun50i-a64-pinephone.dtsi +++ b/arch/arm/dts/sun50i-a64-pinephone.dtsi @@ -12,6 +12,8 @@ #include <dt-bindings/pwm/pwm.h>
/ {
chassis-type = "handset";
aliases { ethernet0 = &rtl8723cs; serial0 = &uart0;
@@ -25,6 +27,11 @@ /* Backlight configuration differs per PinePhone revision. */ };
bt_sco_codec: bt-sco-codec {
#sound-dai-cells = <1>;
compatible = "linux,bt-sco";
};
chosen { stdout-path = "serial0:115200n8"; };
@@ -91,6 +98,8 @@ };
&codec {
pinctrl-names = "default";
pinctrl-0 = <&aif3_pins>; status = "okay";
};
@@ -426,6 +435,7 @@
&sound { status = "okay";
simple-audio-card,name = "PinePhone"; simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>; simple-audio-card,widgets = "Microphone", "Headset Microphone", "Microphone", "Internal Microphone",
@@ -447,6 +457,23 @@ "MIC1", "Internal Microphone", "Headset Microphone", "HBIAS", "MIC2", "Headset Microphone";
simple-audio-card,dai-link@2 {
format = "dsp_a";
frame-master = <&link2_codec>;
bitclock-master = <&link2_codec>;
bitclock-inversion;
link2_cpu: cpu {
sound-dai = <&bt_sco_codec 0>;
};
link2_codec: codec {
sound-dai = <&codec 2>;
dai-tdm-slot-num = <1>;
dai-tdm-slot-width = <32>;
};
};
};
&uart0 { diff --git a/arch/arm/dts/sun50i-a64-pinetab.dts b/arch/arm/dts/sun50i-a64-pinetab.dts index 422a8507f6..0b2258ef88 100644 --- a/arch/arm/dts/sun50i-a64-pinetab.dts +++ b/arch/arm/dts/sun50i-a64-pinetab.dts @@ -16,6 +16,7 @@ / { model = "PineTab, Development Sample"; compatible = "pine64,pinetab", "allwinner,sun50i-a64";
chassis-type = "tablet"; aliases { serial0 = &uart0;
@@ -35,6 +36,17 @@ stdout-path = "serial0:115200n8"; };
hdmi-connector {
compatible = "hdmi-connector";
type = "c";
port {
hdmi_con_in: endpoint {
remote-endpoint = <&hdmi_out_con>;
};
};
};
i2c-csi { compatible = "i2c-gpio"; sda-gpios = <&pio 4 13 GPIO_ACTIVE_HIGH>; /* PE13 */
@@ -77,7 +89,7 @@ sound-name-prefix = "Speaker Amp"; };
vdd_bl: regulator@0 {
vdd_bl: regulator { compatible = "regulator-fixed"; regulator-name = "bl-3v3"; regulator-min-microvolt = <3300000>;
@@ -410,6 +422,21 @@ regulator-name = "vcc-rtc"; };
+&simplefb_hdmi {
vcc-hdmi-supply = <®_dldo1>;
+};
+&hdmi {
hvcc-supply = <®_dldo1>;
status = "okay";
+};
+&hdmi_out {
hdmi_out_con: endpoint {
remote-endpoint = <&hdmi_con_in>;
};
+};
&sound { status = "okay"; simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>; diff --git a/arch/arm/dts/sun50i-a64-teres-i.dts b/arch/arm/dts/sun50i-a64-teres-i.dts index f0a16f355e..6668431dcb 100644 --- a/arch/arm/dts/sun50i-a64-teres-i.dts +++ b/arch/arm/dts/sun50i-a64-teres-i.dts @@ -14,6 +14,7 @@ / { model = "Olimex A64 Teres-I"; compatible = "olimex,a64-teres-i", "allwinner,sun50i-a64";
chassis-type = "laptop"; aliases { serial0 = &uart0;
@@ -139,6 +140,8 @@ #size-cells = <0>;
port@0 {
reg = <0>;
anx6345_in: endpoint { remote-endpoint = <&tcon0_out_anx6345>; };
@@ -206,7 +209,6 @@ reg = <0x3a3>; interrupt-parent = <&r_intc>; interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
wakeup-source; };
};
diff --git a/arch/arm/dts/sun50i-a64.dtsi b/arch/arm/dts/sun50i-a64.dtsi index 57786fc120..555bc92a6f 100644 --- a/arch/arm/dts/sun50i-a64.dtsi +++ b/arch/arm/dts/sun50i-a64.dtsi @@ -102,6 +102,22 @@ status = "disabled"; };
gpu_opp_table: opp-table-gpu {
compatible = "operating-points-v2";
opp-120000000 {
opp-hz = /bits/ 64 <120000000>;
};
opp-312000000 {
opp-hz = /bits/ 64 <312000000>;
};
opp-432000000 {
opp-hz = /bits/ 64 <432000000>;
};
};
osc24M: osc24M_clk { #clock-cells = <0>; compatible = "fixed-clock";
@@ -131,12 +147,10 @@ };
sound: sound {
#address-cells = <1>;
#size-cells = <0>; compatible = "simple-audio-card"; simple-audio-card,name = "sun50i-a64-audio";
simple-audio-card,format = "i2s";
simple-audio-card,frame-master = <&cpudai>;
simple-audio-card,bitclock-master = <&cpudai>;
simple-audio-card,mclk-fs = <128>; simple-audio-card,aux-devs = <&codec_analog>; simple-audio-card,routing = "Left DAC", "DACL",
@@ -145,12 +159,19 @@ "ADCR", "Right ADC"; status = "disabled";
cpudai: simple-audio-card,cpu {
sound-dai = <&dai>;
};
simple-audio-card,dai-link@0 {
format = "i2s";
frame-master = <&link0_cpu>;
bitclock-master = <&link0_cpu>;
mclk-fs = <128>;
link0_cpu: cpu {
sound-dai = <&dai>;
};
link_codec: simple-audio-card,codec {
sound-dai = <&codec>;
link0_codec: codec {
sound-dai = <&codec 0>;
}; }; };
@@ -658,6 +679,18 @@ interrupt-controller; #interrupt-cells = <3>;
/omit-if-no-ref/
aif2_pins: aif2-pins {
pins = "PB4", "PB5", "PB6", "PB7";
function = "aif2";
};
/omit-if-no-ref/
aif3_pins: aif3-pins {
pins = "PG10", "PG11", "PG12", "PG13";
function = "aif3";
};
csi_pins: csi-pins { pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11";
@@ -798,6 +831,23 @@ }; };
timer@1c20c00 {
compatible = "allwinner,sun50i-a64-timer",
"allwinner,sun8i-a23-timer";
reg = <0x01c20c00 0xa0>;
interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&osc24M>;
};
wdt0: watchdog@1c20ca0 {
compatible = "allwinner,sun50i-a64-wdt",
"allwinner,sun6i-a31-wdt";
reg = <0x01c20ca0 0x20>;
interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&osc24M>;
};
spdif: spdif@1c21000 { #sound-dai-cells = <0>; compatible = "allwinner,sun50i-a64-spdif",
@@ -878,7 +928,7 @@ };
codec: codec@1c22e00 {
#sound-dai-cells = <0>;
#sound-dai-cells = <1>; compatible = "allwinner,sun50i-a64-codec", "allwinner,sun8i-a33-codec"; reg = <0x01c22e00 0x600>;
@@ -1067,6 +1117,7 @@ clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>; clock-names = "bus", "core"; resets = <&ccu RST_BUS_GPU>;
operating-points-v2 = <&gpu_opp_table>; }; gic: interrupt-controller@1c81000 {
@@ -1093,8 +1144,14 @@
mbus: dram-controller@1c62000 { compatible = "allwinner,sun50i-a64-mbus";
reg = <0x01c62000 0x1000>;
clocks = <&ccu 112>;
reg = <0x01c62000 0x1000>,
<0x01c63000 0x1000>;
reg-names = "mbus", "dram";
clocks = <&ccu CLK_MBUS>,
<&ccu CLK_DRAM>,
<&ccu CLK_BUS_DRAM>;
clock-names = "mbus", "dram", "bus";
interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; #address-cells = <1>; #size-cells = <1>; dma-ranges = <0x00000000 0x40000000 0xc0000000>;
@@ -1167,8 +1224,8 @@ reg-io-width = <1>; interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
<&ccu CLK_HDMI>;
clock-names = "iahb", "isfr", "tmds";
<&ccu CLK_HDMI>, <&rtc 0>;
clock-names = "iahb", "isfr", "tmds", "cec"; resets = <&ccu RST_BUS_HDMI1>; reset-names = "ctrl"; phys = <&hdmi_phy>;
@@ -1321,13 +1378,5 @@ #address-cells = <1>; #size-cells = <0>; };
wdt0: watchdog@1c20ca0 {
compatible = "allwinner,sun50i-a64-wdt",
"allwinner,sun6i-a31-wdt";
reg = <0x01c20ca0 0x20>;
interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&osc24M>;
}; };
};
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.