ARM: dts: sun50i: A64: Sync from Linux v5.18-rc1
authorSamuel Holland <samuel@sholland.org>
Wed, 27 Apr 2022 20:31:30 +0000 (15:31 -0500)
committerAndre Przywara <andre.przywara@arm.com>
Sun, 22 May 2022 23:37:51 +0000 (00:37 +0100)
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>
arch/arm/dts/axp803.dtsi
arch/arm/dts/sun50i-a64-cpu-opp.dtsi
arch/arm/dts/sun50i-a64-orangepi-win.dts
arch/arm/dts/sun50i-a64-pinebook.dts
arch/arm/dts/sun50i-a64-pinephone.dtsi
arch/arm/dts/sun50i-a64-pinetab.dts
arch/arm/dts/sun50i-a64-teres-i.dts
arch/arm/dts/sun50i-a64.dtsi

index 10e9186..578ef36 100644 (file)
@@ -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";
                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";
                };
        };
 
-       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";
index 578c374..e39db51 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 / {
-       cpu0_opp_table: opp_table0 {
+       cpu0_opp_table: opp-table-cpu {
                compatible = "operating-points-v2";
                opp-shared;
 
index 70e3174..8eee805 100644 (file)
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                compatible = "mxicy,mx25l1606e", "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <80000000>;
index 7ae1654..68b6ab4 100644 (file)
@@ -15,6 +15,7 @@
 / {
        model = "Pinebook";
        compatible = "pine64,pinebook", "allwinner,sun50i-a64";
+       chassis-type = "laptop";
 
        aliases {
                serial0 = &uart0;
index 9f69d48..b25e791 100644 (file)
@@ -12,6 +12,8 @@
 #include <dt-bindings/pwm/pwm.h>
 
 / {
+       chassis-type = "handset";
+
        aliases {
                ethernet0 = &rtl8723cs;
                serial0 = &uart0;
                /* 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";
 };
 
 
 &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",
                        "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 {
index 422a850..0b2258e 100644 (file)
@@ -16,6 +16,7 @@
 / {
        model = "PineTab, Development Sample";
        compatible = "pine64,pinetab", "allwinner,sun50i-a64";
+       chassis-type = "tablet";
 
        aliases {
                serial0 = &uart0;
                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>;
        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>;
index f0a16f3..6668431 100644 (file)
@@ -14,6 +14,7 @@
 / {
        model = "Olimex A64 Teres-I";
        compatible = "olimex,a64-teres-i", "allwinner,sun50i-a64";
+       chassis-type = "laptop";
 
        aliases {
                serial0 = &uart0;
                        #size-cells = <0>;
 
                        port@0 {
+                               reg = <0>;
+
                                anx6345_in: endpoint {
                                        remote-endpoint = <&tcon0_out_anx6345>;
                                };
                reg = <0x3a3>;
                interrupt-parent = <&r_intc>;
                interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
-               wakeup-source;
        };
 };
 
index 57786fc..555bc92 100644 (file)
                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";
        };
 
        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",
                                "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>;
+                       };
                };
        };
 
                        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";
                        };
                };
 
+               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",
                };
 
                codec: codec@1c22e00 {
-                       #sound-dai-cells = <0>;
+                       #sound-dai-cells = <1>;
                        compatible = "allwinner,sun50i-a64-codec",
                                     "allwinner,sun8i-a33-codec";
                        reg = <0x01c22e00 0x600>;
                        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 {
 
                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>;
                        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>;
                        #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>;
-               };
        };
 };