From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7834CC433F5 for ; Fri, 20 May 2022 15:35:30 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B4BA083EC8; Fri, 20 May 2022 17:35:28 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id D8CC483E9A; Fri, 20 May 2022 17:35:15 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by phobos.denx.de (Postfix) with ESMTP id B96AD83DC7 for ; Fri, 20 May 2022 17:35:00 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=andre.przywara@arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C48B61477; Fri, 20 May 2022 08:34:59 -0700 (PDT) Received: from donnerap.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2240C3F73D; Fri, 20 May 2022 08:34:59 -0700 (PDT) Date: Fri, 20 May 2022 14:48:49 +0100 From: Andre Przywara To: Samuel Holland Cc: u-boot@lists.denx.de, Jagan Teki , Tom Rini Subject: Re: [PATCH 07/12] ARM: dts: sun8i: A83T: Sync from Linux v5.18-rc1 Message-ID: <20220520144849.14e47b5d@donnerap.cambridge.arm.com> In-Reply-To: <20220427203132.47271-8-samuel@sholland.org> References: <20220427203132.47271-1-samuel@sholland.org> <20220427203132.47271-8-samuel@sholland.org> Organization: ARM X-Mailer: Claws Mail 3.18.0 (GTK+ 2.24.32; aarch64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean On Wed, 27 Apr 2022 15:31:26 -0500 Samuel Holland wrote: Hi, > Copy the devicetree source for the A83T 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 994e5818392c and 9fdef3c3d8c2. > > As with the other SoCs, updates of note include adding detection GPIO > properties in the USB PHY nodes. > > Signed-off-by: Samuel Holland Compared the files against the kernel tree, apart from the r_intc change they are identical. Change-wise there is a different timer compatible string, requiring Linux v5.4 at least. This should not be fatal, since we have the arch timer, though. Reviewed-by: Andre Przywara Cheers, Andre > --- > > arch/arm/dts/axp81x.dtsi | 15 +- > .../dts/sun8i-a83t-allwinner-h8homlet-v2.dts | 12 + > arch/arm/dts/sun8i-a83t-bananapi-m3.dts | 55 +++- > arch/arm/dts/sun8i-a83t-cubietruck-plus.dts | 77 ++++- > arch/arm/dts/sun8i-a83t-tbs-a711.dts | 101 +++++- > arch/arm/dts/sun8i-a83t.dtsi | 311 ++++++++++++++++-- > 6 files changed, 515 insertions(+), 56 deletions(-) > > diff --git a/arch/arm/dts/axp81x.dtsi b/arch/arm/dts/axp81x.dtsi > index 043c717dce..b93387b0c1 100644 > --- a/arch/arm/dts/axp81x.dtsi > +++ b/arch/arm/dts/axp81x.dtsi > @@ -48,6 +48,11 @@ > interrupt-controller; > #interrupt-cells = <1>; > > + ac_power_supply: ac-power { > + compatible = "x-powers,axp813-ac-power-supply"; > + status = "disabled"; > + }; > + > axp_adc: adc { > compatible = "x-powers,axp813-adc"; > #io-channel-cells = <1>; > @@ -58,18 +63,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,axp813-battery-power-supply"; > status = "disabled"; > }; > @@ -166,4 +171,8 @@ > status = "disabled"; > }; > }; > + > + usb_power_supply: usb-power { > + compatible = "x-powers,axp813-usb-power-supply"; > + }; > }; > diff --git a/arch/arm/dts/sun8i-a83t-allwinner-h8homlet-v2.dts b/arch/arm/dts/sun8i-a83t-allwinner-h8homlet-v2.dts > index 36ecebaff3..9c006fc188 100644 > --- a/arch/arm/dts/sun8i-a83t-allwinner-h8homlet-v2.dts > +++ b/arch/arm/dts/sun8i-a83t-allwinner-h8homlet-v2.dts > @@ -79,6 +79,14 @@ > }; > }; > > +&cpu0 { > + cpu-supply = <®_dcdc2>; > +}; > + > +&cpu100 { > + cpu-supply = <®_dcdc3>; > +}; > + > &ehci0 { > status = "okay"; > }; > @@ -146,6 +154,10 @@ > > #include "axp81x.dtsi" > > +&ac_power_supply { > + status = "okay"; > +}; > + > ®_aldo1 { > regulator-always-on; > regulator-min-microvolt = <1800000>; > diff --git a/arch/arm/dts/sun8i-a83t-bananapi-m3.dts b/arch/arm/dts/sun8i-a83t-bananapi-m3.dts > index 2beafe3a31..b60016a442 100644 > --- a/arch/arm/dts/sun8i-a83t-bananapi-m3.dts > +++ b/arch/arm/dts/sun8i-a83t-bananapi-m3.dts > @@ -74,12 +74,12 @@ > leds { > compatible = "gpio-leds"; > > - blue { > + led-0 { > label = "bananapi-m3:blue:usr"; > gpios = <&axp_gpio 1 GPIO_ACTIVE_HIGH>; > }; > > - green { > + led-1 { > label = "bananapi-m3:green:usr"; > gpios = <&axp_gpio 0 GPIO_ACTIVE_HIGH>; > }; > @@ -107,6 +107,14 @@ > }; > }; > > +&cpu0 { > + cpu-supply = <®_dcdc2>; > +}; > + > +&cpu100 { > + cpu-supply = <®_dcdc3>; > +}; > + > &de { > status = "okay"; > }; > @@ -183,6 +191,11 @@ > status = "okay"; > }; > > +&r_cir { > + clock-frequency = <3000000>; > + status = "okay"; > +}; > + > &r_rsb { > status = "okay"; > > @@ -224,6 +237,14 @@ > > #include "axp81x.dtsi" > > +&ac_power_supply { > + status = "okay"; > +}; > + > +&battery_power_supply { > + status = "okay"; > +}; > + > ®_aldo1 { > regulator-always-on; > regulator-min-microvolt = <1800000>; > @@ -301,8 +322,8 @@ > > ®_dldo3 { > regulator-always-on; > - regulator-min-microvolt = <2500000>; > - regulator-max-microvolt = <2500000>; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > regulator-name = "vcc-pd"; > }; > > @@ -350,11 +371,37 @@ > status = "okay"; > }; > > +&uart1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; > + uart-has-rtscts; > + status = "okay"; > + > + bluetooth { > + compatible = "brcm,bcm43438-bt"; > + clocks = <&ac100_rtc 1>; > + clock-names = "lpo"; > + vbat-supply = <®_dldo1>; > + vddio-supply = <®_dldo1>; > + device-wakeup-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ > + host-wakeup-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */ > + shutdown-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ > + }; > +}; > + > &usb_otg { > + dr_mode = "otg"; > + status = "okay"; > +}; > + > +&usb_power_supply { > status = "okay"; > }; > > &usbphy { > + usb0_id_det-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */ > + usb0_vbus_power-supply = <&usb_power_supply>; > + usb0_vbus-supply = <®_drivevbus>; > usb1_vbus-supply = <®_usb1_vbus>; > status = "okay"; > }; > diff --git a/arch/arm/dts/sun8i-a83t-cubietruck-plus.dts b/arch/arm/dts/sun8i-a83t-cubietruck-plus.dts > index ecd9ff38a8..e26af7cf10 100644 > --- a/arch/arm/dts/sun8i-a83t-cubietruck-plus.dts > +++ b/arch/arm/dts/sun8i-a83t-cubietruck-plus.dts > @@ -60,25 +60,36 @@ > stdout-path = "serial0:115200n8"; > }; > > + hdmi-connector { > + compatible = "hdmi-connector"; > + type = "a"; > + > + port { > + hdmi_con_in: endpoint { > + remote-endpoint = <&hdmi_out_con>; > + }; > + }; > + }; > + > leds { > compatible = "gpio-leds"; > > - blue { > + led-0 { > label = "cubietruck-plus:blue:usr"; > gpios = <&pio 3 25 GPIO_ACTIVE_HIGH>; /* PD25 */ > }; > > - orange { > + led-1 { > label = "cubietruck-plus:orange:usr"; > gpios = <&pio 3 26 GPIO_ACTIVE_HIGH>; /* PD26 */ > }; > > - white { > + led-2 { > label = "cubietruck-plus:white:usr"; > gpios = <&pio 3 27 GPIO_ACTIVE_HIGH>; /* PD27 */ > }; > > - green { > + led-3 { > label = "cubietruck-plus:green:usr"; > gpios = <&pio 4 4 GPIO_ACTIVE_HIGH>; /* PE4 */ > }; > @@ -90,7 +101,7 @@ > initial-mode = <1>; /* initialize in HUB mode */ > disabled-ports = <1>; > intn-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */ > - reset-gpios = <&pio 4 16 GPIO_ACTIVE_HIGH>; /* PE16 */ > + reset-gpios = <&pio 4 16 GPIO_ACTIVE_LOW>; /* PE16 */ > connect-gpios = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */ > refclk-frequency = <19200000>; > }; > @@ -145,6 +156,18 @@ > }; > }; > > +&cpu0 { > + cpu-supply = <®_dcdc2>; > +}; > + > +&cpu100 { > + cpu-supply = <®_dcdc3>; > +}; > + > +&de { > + status = "okay"; > +}; > + > &ehci0 { > /* GL830 USB-to-SATA bridge here */ > status = "okay"; > @@ -164,6 +187,16 @@ > status = "okay"; > }; > > +&hdmi { > + status = "okay"; > +}; > + > +&hdmi_out { > + hdmi_out_con: endpoint { > + remote-endpoint = <&hdmi_con_in>; > + }; > +}; > + > &mdio { > rgmii_phy: ethernet-phy@1 { > compatible = "ethernet-phy-ieee802.3-c22"; > @@ -239,6 +272,14 @@ > > #include "axp81x.dtsi" > > +&ac_power_supply { > + status = "okay"; > +}; > + > +&battery_power_supply { > + status = "okay"; > +}; > + > ®_aldo1 { > regulator-always-on; > regulator-min-microvolt = <1800000>; > @@ -386,11 +427,37 @@ > status = "okay"; > }; > > +&uart1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; > + uart-has-rtscts; > + status = "okay"; > + > + bluetooth { > + compatible = "brcm,bcm4330-bt"; > + clocks = <&ac100_rtc 1>; > + clock-names = "lpo"; > + vbat-supply = <®_dcdc1>; > + vddio-supply = <®_sw>; > + device-wakeup-gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */ > + host-wakeup-gpios = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */ > + shutdown-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ > + }; > +}; > + > &usb_otg { > + dr_mode = "otg"; > + status = "okay"; > +}; > + > +&usb_power_supply { > status = "okay"; > }; > > &usbphy { > + usb0_id_det-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */ > + usb0_vbus_power-supply = <&usb_power_supply>; > + usb0_vbus-supply = <®_drivevbus>; > usb1_vbus-supply = <®_usb1_vbus>; > usb2_vbus-supply = <®_usb2_vbus>; > status = "okay"; > diff --git a/arch/arm/dts/sun8i-a83t-tbs-a711.dts b/arch/arm/dts/sun8i-a83t-tbs-a711.dts > index 1537ce148c..13ae10f60d 100644 > --- a/arch/arm/dts/sun8i-a83t-tbs-a711.dts > +++ b/arch/arm/dts/sun8i-a83t-tbs-a711.dts > @@ -46,6 +46,7 @@ > > #include > #include > +#include > > / { > model = "TBS A711 Tablet"; > @@ -64,7 +65,7 @@ > compatible = "pwm-backlight"; > pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>; > enable-gpios = <&pio 3 29 GPIO_ACTIVE_HIGH>; > - > + power-supply = <®_sw>; > brightness-levels = <0 1 2 4 8 16 32 64 128 255>; > default-brightness-level = <9>; > }; > @@ -98,6 +99,13 @@ > }; > }; > > + reg_gps: reg-gps { > + compatible = "regulator-fixed"; > + regulator-name = "gps"; > + regulator-min-microvolt = <3000000>; > + regulator-max-microvolt = <3000000>; > + }; > + > reg_vbat: reg-vbat { > compatible = "regulator-fixed"; > regulator-name = "vbat"; > @@ -156,10 +164,39 @@ > status = "okay"; > }; > > +&i2c0 { > + clock-frequency = <400000>; > + status = "okay"; > + > + touchscreen@38 { > + compatible = "edt,edt-ft5206"; > + reg = <0x38>; > + interrupt-parent = <&r_pio>; > + interrupts = <0 7 IRQ_TYPE_EDGE_FALLING>; /* PL7 */ > + reset-gpios = <&pio 3 5 GPIO_ACTIVE_LOW>; /* PD5 */ > + vcc-supply = <®_ldo_io0>; > + touchscreen-size-x = <1024>; > + touchscreen-size-y = <600>; > + }; > +}; > + > +&i2c1 { > + clock-frequency = <400000>; > + status = "okay"; > + > + accelerometer@18 { > + compatible = "bosch,bma250"; > + reg = <0x18>; > + interrupt-parent = <&pio>; > + interrupts = <7 10 IRQ_TYPE_EDGE_RISING>; /* PH10 / EINT10 */ > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_dcdc1>; > pinctrl-names = "default"; > pinctrl-0 = <&mmc0_pins>; > + bus-width = <4>; > cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; > status = "okay"; > }; > @@ -171,6 +208,7 @@ > vqmmc-supply = <®_dldo1>; > non-removable; > wakeup-source; > + keep-power-in-suspend; > status = "okay"; > > brcmf: wifi@1 { > @@ -199,6 +237,25 @@ > status = "okay"; > }; > > +&r_lradc { > + vref-supply = <®_aldo2>; > + status = "okay"; > + > + button-210 { > + label = "Volume Up"; > + linux,code = ; > + channel = <0>; > + voltage = <210000>; > + }; > + > + button-410 { > + label = "Volume Down"; > + linux,code = ; > + channel = <0>; > + voltage = <410000>; > + }; > +}; > + > &r_rsb { > status = "okay"; > > @@ -317,8 +374,8 @@ > }; > > ®_dldo3 { > - regulator-min-microvolt = <2800000>; > - regulator-max-microvolt = <2800000>; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > regulator-name = "vdd-csi"; > }; > > @@ -390,8 +447,7 @@ > }; > > &tcon0_out { > - tcon0_out_lcd: endpoint@0 { > - reg = <0>; > + tcon0_out_lcd: endpoint { > remote-endpoint = <&panel_input>; > }; > }; > @@ -406,18 +462,45 @@ > &uart1 { > pinctrl-names = "default"; > pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; > + uart-has-rtscts; > status = "okay"; > + > + bluetooth { > + compatible = "brcm,bcm20702a1"; > + clocks = <&ac100_rtc 1>; > + clock-names = "lpo"; > + vbat-supply = <®_vbat>; > + vddio-supply = <®_dldo1>; > + device-wakeup-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */ > + host-wakeup-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */ > + shutdown-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ > + max-speed = <1500000>; > + }; > +}; > + > +&uart2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart2_pb_pins>; > + status = "okay"; > + > + gnss { > + compatible = "u-blox,neo-6m"; > + > + v-bckp-supply = <®_rtc_ldo>; > + vcc-supply = <®_gps>; > + current-speed = <9600>; > + }; > }; > > &usb_otg { > - dr_mode = "otg"; > status = "okay"; > }; > > &usbphy { > - usb0_id_det-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */ > + usb0_id_det-gpios = <&pio 7 11 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH11 */ > + usb0_vbus_power-supply = <&usb_power_supply>; > usb0_vbus-supply = <®_drivevbus>; > - usb1_vbus_supply = <®_vmain>; > - usb2_vbus_supply = <®_vmain>; > + usb1_vbus-supply = <®_vmain>; > + usb2_vbus-supply = <®_vmain>; > status = "okay"; > }; > diff --git a/arch/arm/dts/sun8i-a83t.dtsi b/arch/arm/dts/sun8i-a83t.dtsi > index 2be23d6009..9c07660080 100644 > --- a/arch/arm/dts/sun8i-a83t.dtsi > +++ b/arch/arm/dts/sun8i-a83t.dtsi > @@ -50,6 +50,7 @@ > #include > #include > #include > +#include > > / { > interrupt-parent = <&gic>; > @@ -61,79 +62,91 @@ > #size-cells = <0>; > > cpu0: cpu@0 { > - clocks = <&ccu CLK_C0CPUX>; > - clock-names = "cpu"; > compatible = "arm,cortex-a7"; > device_type = "cpu"; > + clocks = <&ccu CLK_C0CPUX>; > operating-points-v2 = <&cpu0_opp_table>; > cci-control-port = <&cci_control0>; > enable-method = "allwinner,sun8i-a83t-smp"; > reg = <0>; > + #cooling-cells = <2>; > }; > > - cpu@1 { > + cpu1: cpu@1 { > compatible = "arm,cortex-a7"; > device_type = "cpu"; > + clocks = <&ccu CLK_C0CPUX>; > operating-points-v2 = <&cpu0_opp_table>; > cci-control-port = <&cci_control0>; > enable-method = "allwinner,sun8i-a83t-smp"; > reg = <1>; > + #cooling-cells = <2>; > }; > > - cpu@2 { > + cpu2: cpu@2 { > compatible = "arm,cortex-a7"; > device_type = "cpu"; > + clocks = <&ccu CLK_C0CPUX>; > operating-points-v2 = <&cpu0_opp_table>; > cci-control-port = <&cci_control0>; > enable-method = "allwinner,sun8i-a83t-smp"; > reg = <2>; > + #cooling-cells = <2>; > }; > > - cpu@3 { > + cpu3: cpu@3 { > compatible = "arm,cortex-a7"; > device_type = "cpu"; > + clocks = <&ccu CLK_C0CPUX>; > operating-points-v2 = <&cpu0_opp_table>; > cci-control-port = <&cci_control0>; > enable-method = "allwinner,sun8i-a83t-smp"; > reg = <3>; > + #cooling-cells = <2>; > }; > > cpu100: cpu@100 { > - clocks = <&ccu CLK_C1CPUX>; > - clock-names = "cpu"; > compatible = "arm,cortex-a7"; > device_type = "cpu"; > + clocks = <&ccu CLK_C1CPUX>; > operating-points-v2 = <&cpu1_opp_table>; > cci-control-port = <&cci_control1>; > enable-method = "allwinner,sun8i-a83t-smp"; > reg = <0x100>; > + #cooling-cells = <2>; > }; > > - cpu@101 { > + cpu101: cpu@101 { > compatible = "arm,cortex-a7"; > device_type = "cpu"; > + clocks = <&ccu CLK_C1CPUX>; > operating-points-v2 = <&cpu1_opp_table>; > cci-control-port = <&cci_control1>; > enable-method = "allwinner,sun8i-a83t-smp"; > reg = <0x101>; > + #cooling-cells = <2>; > }; > > - cpu@102 { > + cpu102: cpu@102 { > compatible = "arm,cortex-a7"; > device_type = "cpu"; > + clocks = <&ccu CLK_C1CPUX>; > operating-points-v2 = <&cpu1_opp_table>; > cci-control-port = <&cci_control1>; > enable-method = "allwinner,sun8i-a83t-smp"; > reg = <0x102>; > + #cooling-cells = <2>; > }; > > - cpu@103 { > + cpu103: cpu@103 { > compatible = "arm,cortex-a7"; > device_type = "cpu"; > + clocks = <&ccu CLK_C1CPUX>; > operating-points-v2 = <&cpu1_opp_table>; > cci-control-port = <&cci_control1>; > enable-method = "allwinner,sun8i-a83t-smp"; > reg = <0x103>; > + #cooling-cells = <2>; > }; > }; > > @@ -187,12 +200,7 @@ > status = "disabled"; > }; > > - memory { > - reg = <0x40000000 0x80000000>; > - device_type = "memory"; > - }; > - > - cpu0_opp_table: opp_table0 { > + cpu0_opp_table: opp-table-cluster0 { > compatible = "operating-points-v2"; > opp-shared; > > @@ -245,7 +253,7 @@ > }; > }; > > - cpu1_opp_table: opp_table1 { > + cpu1_opp_table: opp-table-cluster1 { > compatible = "operating-points-v2"; > opp-shared; > > @@ -306,16 +314,27 @@ > > display_clocks: clock@1000000 { > compatible = "allwinner,sun8i-a83t-de2-clk"; > - reg = <0x01000000 0x100000>; > - clocks = <&ccu CLK_PLL_DE>, > - <&ccu CLK_BUS_DE>; > - clock-names = "mod", > - "bus"; > + reg = <0x01000000 0x10000>; > + clocks = <&ccu CLK_BUS_DE>, > + <&ccu CLK_PLL_DE>; > + clock-names = "bus", > + "mod"; > resets = <&ccu RST_BUS_DE>; > #clock-cells = <1>; > #reset-cells = <1>; > }; > > + rotate: rotate@1020000 { > + compatible = "allwinner,sun8i-a83t-de2-rotate"; > + reg = <0x1020000 0x10000>; > + interrupts = ; > + clocks = <&display_clocks CLK_BUS_ROT>, > + <&display_clocks CLK_ROT>; > + clock-names = "bus", > + "mod"; > + resets = <&display_clocks RST_ROT>; > + }; > + > mixer0: mixer@1100000 { > compatible = "allwinner,sun8i-a83t-de2-mixer-0"; > reg = <0x01100000 0x100000>; > @@ -338,6 +357,11 @@ > reg = <0>; > remote-endpoint = <&tcon0_in_mixer0>; > }; > + > + mixer0_out_tcon1: endpoint@1 { > + reg = <1>; > + remote-endpoint = <&tcon1_in_mixer0>; > + }; > }; > }; > }; > @@ -356,9 +380,17 @@ > #size-cells = <0>; > > mixer1_out: port@1 { > + #address-cells = <1>; > + #size-cells = <0>; > reg = <1>; > > - mixer1_out_tcon1: endpoint { > + mixer1_out_tcon0: endpoint@0 { > + reg = <0>; > + remote-endpoint = <&tcon0_in_mixer1>; > + }; > + > + mixer1_out_tcon1: endpoint@1 { > + reg = <1>; > remote-endpoint = <&tcon1_in_mixer1>; > }; > }; > @@ -425,6 +457,7 @@ > clocks = <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>; > clock-names = "ahb", "tcon-ch0"; > clock-output-names = "tcon-pixel-clock"; > + #clock-cells = <0>; > resets = <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>; > reset-names = "lcd", "lvds"; > > @@ -441,11 +474,14 @@ > reg = <0>; > remote-endpoint = <&mixer0_out_tcon0>; > }; > + > + tcon0_in_mixer1: endpoint@1 { > + reg = <1>; > + remote-endpoint = <&mixer1_out_tcon0>; > + }; > }; > > tcon0_out: port@1 { > - #address-cells = <1>; > - #size-cells = <0>; > reg = <1>; > }; > }; > @@ -465,9 +501,17 @@ > #size-cells = <0>; > > tcon1_in: port@0 { > + #address-cells = <1>; > + #size-cells = <0>; > reg = <0>; > > - tcon1_in_mixer1: endpoint { > + tcon1_in_mixer0: endpoint@0 { > + reg = <0>; > + remote-endpoint = <&mixer0_out_tcon1>; > + }; > + > + tcon1_in_mixer1: endpoint@1 { > + reg = <1>; > remote-endpoint = <&mixer1_out_tcon1>; > }; > }; > @@ -549,6 +593,31 @@ > sid: eeprom@1c14000 { > compatible = "allwinner,sun8i-a83t-sid"; > reg = <0x1c14000 0x400>; > + #address-cells = <1>; > + #size-cells = <1>; > + > + ths_calibration: thermal-sensor-calibration@34 { > + reg = <0x34 8>; > + }; > + }; > + > + crypto: crypto@1c15000 { > + compatible = "allwinner,sun8i-a83t-crypto"; > + reg = <0x01c15000 0x1000>; > + interrupts = ; > + resets = <&ccu RST_BUS_SS>; > + clocks = <&ccu CLK_BUS_SS>, <&ccu CLK_SS>; > + clock-names = "bus", "mod"; > + }; > + > + msgbox: mailbox@1c17000 { > + compatible = "allwinner,sun8i-a83t-msgbox", > + "allwinner,sun6i-a31-msgbox"; > + reg = <0x01c17000 0x1000>; > + clocks = <&ccu CLK_BUS_MSGBOX>; > + resets = <&ccu RST_BUS_MSGBOX>; > + interrupts = ; > + #mbox-cells = <1>; > }; > > usb_otg: usb@1c19000 { > @@ -562,6 +631,7 @@ > phys = <&usbphy 0>; > phy-names = "usb"; > extcon = <&usbphy 0>; > + dr_mode = "otg"; > status = "disabled"; > }; > > @@ -649,6 +719,20 @@ > #interrupt-cells = <3>; > #gpio-cells = <3>; > > + /omit-if-no-ref/ > + csi_8bit_parallel_pins: csi-8bit-parallel-pins { > + pins = "PE0", "PE2", "PE3", "PE6", "PE7", > + "PE8", "PE9", "PE10", "PE11", > + "PE12", "PE13"; > + function = "csi"; > + }; > + > + /omit-if-no-ref/ > + csi_mclk_pin: csi-mclk-pin { > + pins = "PE1"; > + function = "csi"; > + }; > + > emac_rgmii_pins: emac-rgmii-pins { > pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", > "PD11", "PD12", "PD13", "PD14", "PD18", > @@ -676,6 +760,12 @@ > function = "i2c1"; > }; > > + /omit-if-no-ref/ > + i2c2_pe_pins: i2c2-pe-pins { > + pins = "PE14", "PE15"; > + function = "i2c2"; > + }; > + > i2c2_ph_pins: i2c2-ph-pins { > pins = "PH4", "PH5"; > function = "i2c2"; > @@ -747,10 +837,16 @@ > pins = "PG8", "PG9"; > function = "uart1"; > }; > + > + /omit-if-no-ref/ > + uart2_pb_pins: uart2-pb-pins { > + pins = "PB0", "PB1"; > + function = "uart2"; > + }; > }; > > timer@1c20c00 { > - compatible = "allwinner,sun4i-a10-timer"; > + compatible = "allwinner,sun8i-a23-timer"; > reg = <0x01c20c00 0xa0>; > interrupts = , > ; > @@ -852,6 +948,39 @@ > status = "disabled"; > }; > > + uart2: serial@1c28800 { > + compatible = "snps,dw-apb-uart"; > + reg = <0x01c28800 0x400>; > + interrupts = ; > + reg-shift = <2>; > + reg-io-width = <4>; > + clocks = <&ccu CLK_BUS_UART2>; > + resets = <&ccu RST_BUS_UART2>; > + status = "disabled"; > + }; > + > + uart3: serial@1c28c00 { > + compatible = "snps,dw-apb-uart"; > + reg = <0x01c28c00 0x400>; > + interrupts = ; > + reg-shift = <2>; > + reg-io-width = <4>; > + clocks = <&ccu CLK_BUS_UART3>; > + resets = <&ccu RST_BUS_UART3>; > + status = "disabled"; > + }; > + > + uart4: serial@1c29000 { > + compatible = "snps,dw-apb-uart"; > + reg = <0x01c29000 0x400>; > + interrupts = ; > + reg-shift = <2>; > + reg-io-width = <4>; > + clocks = <&ccu CLK_BUS_UART4>; > + resets = <&ccu RST_BUS_UART4>; > + status = "disabled"; > + }; > + > i2c0: i2c@1c2ac00 { > compatible = "allwinner,sun8i-a83t-i2c", > "allwinner,sun6i-a31-i2c"; > @@ -898,12 +1027,10 @@ > reg = <0x01c30000 0x104>; > interrupts = ; > interrupt-names = "macirq"; > - resets = <&ccu 13>; > - reset-names = "stmmaceth"; > - clocks = <&ccu 27>; > + clocks = <&ccu CLK_BUS_EMAC>; > clock-names = "stmmaceth"; > - #address-cells = <1>; > - #size-cells = <0>; > + resets = <&ccu RST_BUS_EMAC>; > + reset-names = "stmmaceth"; > status = "disabled"; > > mdio: mdio { > @@ -914,7 +1041,7 @@ > }; > > gic: interrupt-controller@1c81000 { > - compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; > + compatible = "arm,gic-400"; > reg = <0x01c81000 0x1000>, > <0x01c82000 0x2000>, > <0x01c84000 0x2000>, > @@ -924,6 +1051,18 @@ > interrupts = ; > }; > > + csi: camera@1cb0000 { > + compatible = "allwinner,sun8i-a83t-csi"; > + reg = <0x01cb0000 0x1000>; > + interrupts = ; > + clocks = <&ccu CLK_BUS_CSI>, > + <&ccu CLK_CSI_SCLK>, > + <&ccu CLK_DRAM_CSI>; > + clock-names = "bus", "mod", "ram"; > + resets = <&ccu RST_BUS_CSI>; > + status = "disabled"; > + }; > + > hdmi: hdmi@1ee0000 { > compatible = "allwinner,sun8i-a83t-dw-hdmi"; > reg = <0x01ee0000 0x10000>; > @@ -935,7 +1074,7 @@ > resets = <&ccu RST_BUS_HDMI1>; > reset-names = "ctrl"; > phys = <&hdmi_phy>; > - phy-names = "hdmi-phy"; > + phy-names = "phy"; > pinctrl-names = "default"; > pinctrl-0 = <&hdmi_pins>; > status = "disabled"; > @@ -981,7 +1120,7 @@ > compatible = "allwinner,sun8i-a83t-r-ccu"; > reg = <0x01f01400 0x400>; > clocks = <&osc24M>, <&osc16Md512>, <&osc16M>, > - <&ccu 6>; > + <&ccu CLK_PLL_PERIPH>; > clock-names = "hosc", "losc", "iosc", "pll-periph"; > #clock-cells = <1>; > #reset-cells = <1>; > @@ -992,6 +1131,26 @@ > reg = <0x1f01c00 0x400>; > }; > > + r_cir: ir@1f02000 { > + compatible = "allwinner,sun8i-a83t-ir", > + "allwinner,sun6i-a31-ir"; > + clocks = <&r_ccu CLK_APB0_IR>, <&r_ccu CLK_IR>; > + clock-names = "apb", "ir"; > + resets = <&r_ccu RST_APB0_IR>; > + interrupts = ; > + reg = <0x01f02000 0x400>; > + pinctrl-names = "default"; > + pinctrl-0 = <&r_cir_pin>; > + status = "disabled"; > + }; > + > + r_lradc: lradc@1f03c00 { > + compatible = "allwinner,sun8i-a83t-r-lradc"; > + reg = <0x01f03c00 0x100>; > + interrupts = ; > + status = "disabled"; > + }; > + > r_pio: pinctrl@1f02c00 { > compatible = "allwinner,sun8i-a83t-r-pinctrl"; > reg = <0x01f02c00 0x400>; > @@ -1004,6 +1163,11 @@ > interrupt-controller; > #interrupt-cells = <3>; > > + r_cir_pin: r-cir-pin { > + pins = "PL12"; > + function = "s_cir_rx"; > + }; > + > r_rsb_pins: r-rsb-pins { > pins = "PL0", "PL1"; > function = "s_rsb"; > @@ -1026,5 +1190,82 @@ > #address-cells = <1>; > #size-cells = <0>; > }; > + > + ths: thermal-sensor@1f04000 { > + compatible = "allwinner,sun8i-a83t-ths"; > + reg = <0x01f04000 0x100>; > + interrupts = ; > + nvmem-cells = <&ths_calibration>; > + nvmem-cell-names = "calibration"; > + #thermal-sensor-cells = <1>; > + }; > + }; > + > + thermal-zones { > + cpu0_thermal: cpu0-thermal { > + polling-delay-passive = <0>; > + polling-delay = <0>; > + thermal-sensors = <&ths 0>; > + > + trips { > + cpu0_hot: cpu-hot { > + temperature = <80000>; > + hysteresis = <2000>; > + type = "passive"; > + }; > + > + cpu0_very_hot: cpu-very-hot { > + temperature = <100000>; > + hysteresis = <0>; > + type = "critical"; > + }; > + }; > + > + cooling-maps { > + cpu-hot-limit { > + trip = <&cpu0_hot>; > + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > + <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; > + }; > + }; > + }; > + > + cpu1_thermal: cpu1-thermal { > + polling-delay-passive = <0>; > + polling-delay = <0>; > + thermal-sensors = <&ths 1>; > + > + trips { > + cpu1_hot: cpu-hot { > + temperature = <80000>; > + hysteresis = <2000>; > + type = "passive"; > + }; > + > + cpu1_very_hot: cpu-very-hot { > + temperature = <100000>; > + hysteresis = <0>; > + type = "critical"; > + }; > + }; > + > + cooling-maps { > + cpu-hot-limit { > + trip = <&cpu1_hot>; > + cooling-device = <&cpu100 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > + <&cpu101 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > + <&cpu102 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > + <&cpu103 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; > + }; > + }; > + }; > + > + gpu_thermal: gpu-thermal { > + polling-delay-passive = <0>; > + polling-delay = <0>; > + thermal-sensors = <&ths 2>; > + }; > }; > };