On Wed, 27 Apr 2022 15:31:26 -0500
Samuel Holland <sam...@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 <sam...@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.przyw...@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@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@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@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@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@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@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 = <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@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 = <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@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@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 = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
>                                    <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
> @@ -852,6 +948,39 @@
>                       status = "disabled";
>               };
>  
> +             uart2: serial@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@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@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@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@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@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@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 = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
> +                     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 = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
> +                     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 = <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>;
> +             };
>       };
>  };

Reply via email to