Re: [PATCH 11/12] ARM: dts: sun50i: A64: Sync from Linux v5.18-rc1

Andre Przywara
2022-05-20T15:35:57Z

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 = <&reg_dldo1>;
> +};
> +
> +&hdmi {
> + hvcc-supply = <&reg_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.