[PATCH 07/12] ARM: dts: sun8i: A83T: Sync from Linux v5.18-rc1

Andre Przywara andre.przywara at arm.com
Fri May 20 15:48:49 CEST 2022


On Wed, 27 Apr 2022 15:31:26 -0500
Samuel Holland <samuel at sholland.org> 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 <samuel at sholland.org>

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 <andre.przywara at arm.com>

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 = <&reg_dcdc2>;
> +};
> +
> +&cpu100 {
> +	cpu-supply = <&reg_dcdc3>;
> +};
> +
>  &ehci0 {
>  	status = "okay";
>  };
> @@ -146,6 +154,10 @@
>  
>  #include "axp81x.dtsi"
>  
> +&ac_power_supply {
> +	status = "okay";
> +};
> +
>  &reg_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 = <&reg_dcdc2>;
> +};
> +
> +&cpu100 {
> +	cpu-supply = <&reg_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";
> +};
> +
>  &reg_aldo1 {
>  	regulator-always-on;
>  	regulator-min-microvolt = <1800000>;
> @@ -301,8 +322,8 @@
>  
>  &reg_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 = <&reg_dldo1>;
> +		vddio-supply = <&reg_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 = <&reg_drivevbus>;
>  	usb1_vbus-supply = <&reg_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 = <&reg_dcdc2>;
> +};
> +
> +&cpu100 {
> +	cpu-supply = <&reg_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 at 1 {
>  		compatible = "ethernet-phy-ieee802.3-c22";
> @@ -239,6 +272,14 @@
>  
>  #include "axp81x.dtsi"
>  
> +&ac_power_supply {
> +	status = "okay";
> +};
> +
> +&battery_power_supply {
> +	status = "okay";
> +};
> +
>  &reg_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 = <&reg_dcdc1>;
> +		vddio-supply = <&reg_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 = <&reg_drivevbus>;
>  	usb1_vbus-supply = <&reg_usb1_vbus>;
>  	usb2_vbus-supply = <&reg_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 <dt-bindings/gpio/gpio.h>
>  #include <dt-bindings/pwm/pwm.h>
> +#include <dt-bindings/input/input.h>
>  
>  / {
>  	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 = <&reg_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 at 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 = <&reg_ldo_io0>;
> +		touchscreen-size-x = <1024>;
> +		touchscreen-size-y = <600>;
> +	};
> +};
> +
> +&i2c1 {
> +	clock-frequency = <400000>;
> +	status = "okay";
> +
> +	accelerometer at 18 {
> +		compatible = "bosch,bma250";
> +		reg = <0x18>;
> +		interrupt-parent = <&pio>;
> +		interrupts = <7 10 IRQ_TYPE_EDGE_RISING>; /* PH10 / EINT10 */
> +	};
> +};
> +
>  &mmc0 {
>  	vmmc-supply = <&reg_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 = <&reg_dldo1>;
>  	non-removable;
>  	wakeup-source;
> +	keep-power-in-suspend;
>  	status = "okay";
>  
>  	brcmf: wifi at 1 {
> @@ -199,6 +237,25 @@
>  	status = "okay";
>  };
>  
> +&r_lradc {
> +	vref-supply = <&reg_aldo2>;
> +	status = "okay";
> +
> +	button-210 {
> +		label = "Volume Up";
> +		linux,code = <KEY_VOLUMEUP>;
> +		channel = <0>;
> +		voltage = <210000>;
> +	};
> +
> +	button-410 {
> +		label = "Volume Down";
> +		linux,code = <KEY_VOLUMEDOWN>;
> +		channel = <0>;
> +		voltage = <410000>;
> +	};
> +};
> +
>  &r_rsb {
>  	status = "okay";
>  
> @@ -317,8 +374,8 @@
>  };
>  
>  &reg_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 at 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 = <&reg_vbat>;
> +		vddio-supply = <&reg_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 = <&reg_rtc_ldo>;
> +		vcc-supply = <&reg_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 = <&reg_drivevbus>;
> -	usb1_vbus_supply = <&reg_vmain>;
> -	usb2_vbus_supply = <&reg_vmain>;
> +	usb1_vbus-supply = <&reg_vmain>;
> +	usb2_vbus-supply = <&reg_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 <dt-bindings/reset/sun8i-a83t-ccu.h>
>  #include <dt-bindings/reset/sun8i-de2.h>
>  #include <dt-bindings/reset/sun8i-r-ccu.h>
> +#include <dt-bindings/thermal/thermal.h>
>  
>  / {
>  	interrupt-parent = <&gic>;
> @@ -61,79 +62,91 @@
>  		#size-cells = <0>;
>  
>  		cpu0: cpu at 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 at 1 {
> +		cpu1: cpu at 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 at 2 {
> +		cpu2: cpu at 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 at 3 {
> +		cpu3: cpu at 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 at 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 at 101 {
> +		cpu101: cpu at 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 at 102 {
> +		cpu102: cpu at 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 at 103 {
> +		cpu103: cpu at 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 at 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 at 1020000 {
> +			compatible = "allwinner,sun8i-a83t-de2-rotate";
> +			reg = <0x1020000 0x10000>;
> +			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
> +			clocks = <&display_clocks CLK_BUS_ROT>,
> +				 <&display_clocks CLK_ROT>;
> +			clock-names = "bus",
> +				      "mod";
> +			resets = <&display_clocks RST_ROT>;
> +		};
> +
>  		mixer0: mixer at 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 at 1 {
> +						reg = <1>;
> +						remote-endpoint = <&tcon1_in_mixer0>;
> +					};
>  				};
>  			};
>  		};
> @@ -356,9 +380,17 @@
>  				#size-cells = <0>;
>  
>  				mixer1_out: port at 1 {
> +					#address-cells = <1>;
> +					#size-cells = <0>;
>  					reg = <1>;
>  
> -					mixer1_out_tcon1: endpoint {
> +					mixer1_out_tcon0: endpoint at 0 {
> +						reg = <0>;
> +						remote-endpoint = <&tcon0_in_mixer1>;
> +					};
> +
> +					mixer1_out_tcon1: endpoint at 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 at 1 {
> +						reg = <1>;
> +						remote-endpoint = <&mixer1_out_tcon0>;
> +					};
>  				};
>  
>  				tcon0_out: port at 1 {
> -					#address-cells = <1>;
> -					#size-cells = <0>;
>  					reg = <1>;
>  				};
>  			};
> @@ -465,9 +501,17 @@
>  				#size-cells = <0>;
>  
>  				tcon1_in: port at 0 {
> +					#address-cells = <1>;
> +					#size-cells = <0>;
>  					reg = <0>;
>  
> -					tcon1_in_mixer1: endpoint {
> +					tcon1_in_mixer0: endpoint at 0 {
> +						reg = <0>;
> +						remote-endpoint = <&mixer0_out_tcon1>;
> +					};
> +
> +					tcon1_in_mixer1: endpoint at 1 {
> +						reg = <1>;
>  						remote-endpoint = <&mixer1_out_tcon1>;
>  					};
>  				};
> @@ -549,6 +593,31 @@
>  		sid: eeprom at 1c14000 {
>  			compatible = "allwinner,sun8i-a83t-sid";
>  			reg = <0x1c14000 0x400>;
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +
> +			ths_calibration: thermal-sensor-calibration at 34 {
> +				reg = <0x34 8>;
> +			};
> +		};
> +
> +		crypto: crypto at 1c15000 {
> +			compatible = "allwinner,sun8i-a83t-crypto";
> +			reg = <0x01c15000 0x1000>;
> +			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
> +			resets = <&ccu RST_BUS_SS>;
> +			clocks = <&ccu CLK_BUS_SS>, <&ccu CLK_SS>;
> +			clock-names = "bus", "mod";
> +		};
> +
> +		msgbox: mailbox at 1c17000 {
> +			compatible = "allwinner,sun8i-a83t-msgbox",
> +				     "allwinner,sun6i-a31-msgbox";
> +			reg = <0x01c17000 0x1000>;
> +			clocks = <&ccu CLK_BUS_MSGBOX>;
> +			resets = <&ccu RST_BUS_MSGBOX>;
> +			interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
> +			#mbox-cells = <1>;
>  		};
>  
>  		usb_otg: usb at 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 at 1c20c00 {
> -			compatible = "allwinner,sun4i-a10-timer";
> +			compatible = "allwinner,sun8i-a23-timer";
>  			reg = <0x01c20c00 0xa0>;
>  			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
>  				     <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
> @@ -852,6 +948,39 @@
>  			status = "disabled";
>  		};
>  
> +		uart2: serial at 1c28800 {
> +			compatible = "snps,dw-apb-uart";
> +			reg = <0x01c28800 0x400>;
> +			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
> +			reg-shift = <2>;
> +			reg-io-width = <4>;
> +			clocks = <&ccu CLK_BUS_UART2>;
> +			resets = <&ccu RST_BUS_UART2>;
> +			status = "disabled";
> +		};
> +
> +		uart3: serial at 1c28c00 {
> +			compatible = "snps,dw-apb-uart";
> +			reg = <0x01c28c00 0x400>;
> +			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
> +			reg-shift = <2>;
> +			reg-io-width = <4>;
> +			clocks = <&ccu CLK_BUS_UART3>;
> +			resets = <&ccu RST_BUS_UART3>;
> +			status = "disabled";
> +		};
> +
> +		uart4: serial at 1c29000 {
> +			compatible = "snps,dw-apb-uart";
> +			reg = <0x01c29000 0x400>;
> +			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
> +			reg-shift = <2>;
> +			reg-io-width = <4>;
> +			clocks = <&ccu CLK_BUS_UART4>;
> +			resets = <&ccu RST_BUS_UART4>;
> +			status = "disabled";
> +		};
> +
>  		i2c0: i2c at 1c2ac00 {
>  			compatible = "allwinner,sun8i-a83t-i2c",
>  				     "allwinner,sun6i-a31-i2c";
> @@ -898,12 +1027,10 @@
>  			reg = <0x01c30000 0x104>;
>  			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
>  			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 at 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 = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
>  		};
>  
> +		csi: camera at 1cb0000 {
> +			compatible = "allwinner,sun8i-a83t-csi";
> +			reg = <0x01cb0000 0x1000>;
> +			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
> +			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 at 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 at 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 = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
> +			reg = <0x01f02000 0x400>;
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&r_cir_pin>;
> +			status = "disabled";
> +		};
> +
> +		r_lradc: lradc at 1f03c00 {
> +			compatible = "allwinner,sun8i-a83t-r-lradc";
> +			reg = <0x01f03c00 0x100>;
> +			interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
> +			status = "disabled";
> +		};
> +
>  		r_pio: pinctrl at 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 at 1f04000 {
> +			compatible = "allwinner,sun8i-a83t-ths";
> +			reg = <0x01f04000 0x100>;
> +			interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
> +			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>;
> +		};
>  	};
>  };



More information about the U-Boot mailing list