On Wed, 27 Apr 2022 15:31:28 -0500
Samuel Holland <sam...@sholland.org> wrote:

> Copy the devicetree source for the V3(s)/S3 SoCs and all existing boards
> verbatim from the Linux v5.18-rc1 tag.
> 
> This commit also adds the following new board devicetrees:
>  - sun8i-s3-elimo-initium.dts
>  - sun8i-v3-sl631-imx179.dts
> 
> This update should not impact any existing U-Boot functionality.
> 
> Signed-off-by: Samuel Holland <sam...@sholland.org>

The files are identical to those in the kernel tree, and the changes
look fine, from a compatibility point of view.

Reviewed-by: Andre Przywara <andre.przyw...@arm.com>

Cheers,
Andre

> ---
> 
>  arch/arm/dts/Makefile                         |   2 +
>  arch/arm/dts/sun8i-s3-elimo-impetus.dtsi      |  44 ++++++
>  arch/arm/dts/sun8i-s3-elimo-initium.dts       |  29 ++++
>  arch/arm/dts/sun8i-s3-pinecube.dts            |  13 +-
>  arch/arm/dts/sun8i-v3-sl631-imx179.dts        |  12 ++
>  arch/arm/dts/sun8i-v3-sl631.dtsi              | 138 ++++++++++++++++++
>  arch/arm/dts/sun8i-v3.dtsi                    |  36 +++++
>  arch/arm/dts/sun8i-v3s-licheepi-zero-dock.dts |  17 ++-
>  arch/arm/dts/sun8i-v3s.dtsi                   |  93 ++++++++++--
>  9 files changed, 358 insertions(+), 26 deletions(-)
>  create mode 100644 arch/arm/dts/sun8i-s3-elimo-impetus.dtsi
>  create mode 100644 arch/arm/dts/sun8i-s3-elimo-initium.dts
>  create mode 100644 arch/arm/dts/sun8i-v3-sl631-imx179.dts
>  create mode 100644 arch/arm/dts/sun8i-v3-sl631.dtsi
> 
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index bbd69d3a67..059ac7fad8 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -670,7 +670,9 @@ dtb-$(CONFIG_MACH_SUN8I_R40) += \
>       sun8i-r40-bananapi-m2-ultra.dtb \
>       sun8i-v40-bananapi-m2-berry.dtb
>  dtb-$(CONFIG_MACH_SUN8I_V3S) += \
> +     sun8i-s3-elimo-initium.dtb \
>       sun8i-s3-pinecube.dtb \
> +     sun8i-v3-sl631-imx179.dtb \
>       sun8i-v3s-licheepi-zero.dtb
>  dtb-$(CONFIG_MACH_SUN50I_H5) += \
>       sun50i-h5-bananapi-m2-plus.dtb \
> diff --git a/arch/arm/dts/sun8i-s3-elimo-impetus.dtsi 
> b/arch/arm/dts/sun8i-s3-elimo-impetus.dtsi
> new file mode 100644
> index 0000000000..052b010a56
> --- /dev/null
> +++ b/arch/arm/dts/sun8i-s3-elimo-impetus.dtsi
> @@ -0,0 +1,44 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (C) 2020 Matteo Scordino <mat...@elimo.io>
> + */
> +
> +/dts-v1/;
> +#include "sun8i-v3.dtsi"
> +#include "sunxi-common-regulators.dtsi"
> +
> +/ {
> +     model = "Elimo Impetus SoM";
> +     compatible = "elimo,impetus", "sochip,s3", "allwinner,sun8i-v3";
> +
> +     aliases {
> +             serial0 = &uart0;
> +     };
> +
> +     chosen {
> +             stdout-path = "serial0:115200n8";
> +     };
> +};
> +
> +&mmc0 {
> +     broken-cd;
> +     bus-width = <4>;
> +     vmmc-supply = <&reg_vcc3v3>;
> +     status = "okay";
> +};
> +
> +&uart0 {
> +     pinctrl-0 = <&uart0_pb_pins>;
> +     pinctrl-names = "default";
> +     status = "okay";
> +};
> +
> +&usb_otg {
> +     dr_mode = "otg";
> +     status = "okay";
> +};
> +
> +&usbphy {
> +     usb0_id_det-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
> +     status = "okay";
> +};
> diff --git a/arch/arm/dts/sun8i-s3-elimo-initium.dts 
> b/arch/arm/dts/sun8i-s3-elimo-initium.dts
> new file mode 100644
> index 0000000000..039677c2cc
> --- /dev/null
> +++ b/arch/arm/dts/sun8i-s3-elimo-initium.dts
> @@ -0,0 +1,29 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (C) 2020 Matteo Scordino <mat...@elimo.io>
> + */
> +
> +/dts-v1/;
> +#include "sun8i-s3-elimo-impetus.dtsi"
> +
> +/ {
> +     model = "Elimo Initium";
> +     compatible = "elimo,initium", "elimo,impetus", "sochip,s3",
> +                  "allwinner,sun8i-v3";
> +
> +     aliases {
> +             serial1 = &uart1;
> +     };
> +};
> +
> +&uart1 {
> +     pinctrl-0 = <&uart1_pg_pins>;
> +     pinctrl-names = "default";
> +     status = "okay";
> +};
> +
> +&emac {
> +     phy-handle = <&int_mii_phy>;
> +     phy-mode = "mii";
> +     status = "okay";
> +};
> diff --git a/arch/arm/dts/sun8i-s3-pinecube.dts 
> b/arch/arm/dts/sun8i-s3-pinecube.dts
> index 9bab6b7f40..20966e954e 100644
> --- a/arch/arm/dts/sun8i-s3-pinecube.dts
> +++ b/arch/arm/dts/sun8i-s3-pinecube.dts
> @@ -10,7 +10,7 @@
>  
>  / {
>       model = "PineCube IP Camera";
> -     compatible = "pine64,pinecube", "allwinner,sun8i-s3";
> +     compatible = "pine64,pinecube", "sochip,s3", "allwinner,sun8i-v3";
>  
>       aliases {
>               serial0 = &uart2;
> @@ -64,9 +64,6 @@
>       status = "okay";
>  
>       port {
> -             #address-cells = <1>;
> -             #size-cells = <0>;
> -
>               csi1_ep: endpoint {
>                       remote-endpoint = <&ov5640_ep>;
>                       bus-width = <8>;
> @@ -88,13 +85,9 @@
>       status = "okay";
>  
>       axp209: pmic@34 {
> -             compatible = "x-powers,axp203",
> -                          "x-powers,axp209";
>               reg = <0x34>;
> -             interrupt-parent = <&gic>;
> -             interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
> -             interrupt-controller;
> -             #interrupt-cells = <1>;
> +             interrupt-parent = <&nmi_intc>;
> +             interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
>       };
>  };
>  
> diff --git a/arch/arm/dts/sun8i-v3-sl631-imx179.dts 
> b/arch/arm/dts/sun8i-v3-sl631-imx179.dts
> new file mode 100644
> index 0000000000..117aeece4e
> --- /dev/null
> +++ b/arch/arm/dts/sun8i-v3-sl631-imx179.dts
> @@ -0,0 +1,12 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR X11)
> +/*
> + * Copyright 2020 Paul Kocialkowski <cont...@paulk.fr>
> + */
> +
> +#include "sun8i-v3-sl631.dtsi"
> +
> +/ {
> +     model = "SL631 Action Camera with IMX179";
> +     compatible = "allwinner,sl631-imx179", "allwinner,sl631",
> +                  "allwinner,sun8i-v3";
> +};
> diff --git a/arch/arm/dts/sun8i-v3-sl631.dtsi 
> b/arch/arm/dts/sun8i-v3-sl631.dtsi
> new file mode 100644
> index 0000000000..6f93f8c49f
> --- /dev/null
> +++ b/arch/arm/dts/sun8i-v3-sl631.dtsi
> @@ -0,0 +1,138 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR X11)
> +/*
> + * Copyright 2020 Paul Kocialkowski <cont...@paulk.fr>
> + */
> +
> +/dts-v1/;
> +
> +#include "sun8i-v3.dtsi"
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +
> +/ {
> +     model = "SL631 Action Camera";
> +     compatible = "allwinner,sl631", "allwinner,sun8i-v3";
> +
> +     aliases {
> +             serial0 = &uart1;
> +     };
> +
> +     chosen {
> +             stdout-path = "serial0:115200n8";
> +     };
> +};
> +
> +&i2c0 {
> +     status = "okay";
> +
> +     axp209: pmic@34 {
> +             reg = <0x34>;
> +             interrupt-parent = <&nmi_intc>;
> +             interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
> +     };
> +};
> +
> +&i2c1 {
> +     pinctrl-names = "default";
> +     pinctrl-0 = <&i2c1_pb_pins>;
> +     status = "okay";
> +};
> +
> +&lradc {
> +     vref-supply = <&reg_ldo2>;
> +     status = "okay";
> +
> +     button-174 {
> +             label = "Down";
> +             linux,code = <KEY_DOWN>;
> +             channel = <0>;
> +             voltage = <174603>;
> +     };
> +
> +     button-384 {
> +             label = "Up";
> +             linux,code = <KEY_UP>;
> +             channel = <0>;
> +             voltage = <384126>;
> +     };
> +
> +     button-593 {
> +             label = "OK";
> +             linux,code = <KEY_OK>;
> +             channel = <0>;
> +             voltage = <593650>;
> +     };
> +};
> +
> +&mmc0 {
> +     cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
> +     bus-width = <4>;
> +     vmmc-supply = <&reg_dcdc3>;
> +     status = "okay";
> +};
> +
> +&pio {
> +     vcc-pd-supply = <&reg_dcdc3>;
> +     vcc-pe-supply = <&reg_dcdc3>;
> +};
> +
> +#include "axp209.dtsi"
> +
> +&ac_power_supply {
> +     status = "okay";
> +};
> +
> +&battery_power_supply {
> +     status = "okay";
> +};
> +
> +&reg_dcdc2 {
> +     regulator-always-on;
> +     regulator-min-microvolt = <1250000>;
> +     regulator-max-microvolt = <1250000>;
> +     regulator-name = "vdd-sys-cpu";
> +};
> +
> +&reg_dcdc3 {
> +     regulator-always-on;
> +     regulator-min-microvolt = <3300000>;
> +     regulator-max-microvolt = <3300000>;
> +     regulator-name = "vdd-3v3";
> +};
> +
> +&reg_ldo1 {
> +     regulator-name = "vdd-rtc";
> +};
> +
> +&reg_ldo2 {
> +     regulator-always-on;
> +     regulator-min-microvolt = <3000000>;
> +     regulator-max-microvolt = <3000000>;
> +     regulator-name = "avcc";
> +};
> +
> +&spi0 {
> +     status = "okay";
> +
> +     flash@0 {
> +             reg = <0>;
> +             compatible = "jedec,spi-nor";
> +             spi-max-frequency = <50000000>;
> +     };
> +};
> +
> +&uart1 {
> +     pinctrl-0 = <&uart1_pg_pins>;
> +     pinctrl-names = "default";
> +     status = "okay";
> +};
> +
> +&usb_otg {
> +     dr_mode = "peripheral";
> +     status = "okay";
> +};
> +
> +&usbphy {
> +     status = "okay";
> +};
> diff --git a/arch/arm/dts/sun8i-v3.dtsi b/arch/arm/dts/sun8i-v3.dtsi
> index ca4672ed2e..186c30cbe6 100644
> --- a/arch/arm/dts/sun8i-v3.dtsi
> +++ b/arch/arm/dts/sun8i-v3.dtsi
> @@ -1,14 +1,40 @@
>  // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>  /*
>   * Copyright (C) 2019 Icenowy Zheng <icen...@aosc.io>
> + * Copyright (C) 2021 Tobias Schramm <t.schr...@manjaro.org>
>   */
>  
>  #include "sun8i-v3s.dtsi"
>  
> +/ {
> +     soc {
> +             i2s0: i2s@1c22000 {
> +                     #sound-dai-cells = <0>;
> +                     compatible = "allwinner,sun8i-v3-i2s",
> +                                  "allwinner,sun8i-h3-i2s";
> +                     reg = <0x01c22000 0x400>;
> +                     interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
> +                     clocks = <&ccu CLK_BUS_I2S0>, <&ccu CLK_I2S0>;
> +                     clock-names = "apb", "mod";
> +                     dmas = <&dma 3>, <&dma 3>;
> +                     dma-names = "rx", "tx";
> +                     pinctrl-names = "default";
> +                     pinctrl-0 = <&i2s0_pins>;
> +                     resets = <&ccu RST_BUS_I2S0>;
> +                     status = "disabled";
> +             };
> +     };
> +};
> +
>  &ccu {
>       compatible = "allwinner,sun8i-v3-ccu";
>  };
>  
> +&codec_analog {
> +     compatible = "allwinner,sun8i-v3-codec-analog",
> +                  "allwinner,sun8i-h3-codec-analog";
> +};
> +
>  &emac {
>       /delete-property/ phy-handle;
>       /delete-property/ phy-mode;
> @@ -24,4 +50,14 @@
>  
>  &pio {
>       compatible = "allwinner,sun8i-v3-pinctrl";
> +
> +     i2s0_pins: i2s0-pins {
> +             pins = "PG10", "PG11", "PG12", "PG13";
> +             function = "i2s";
> +     };
> +
> +     uart1_pg_pins: uart1-pg-pins {
> +             pins = "PG6", "PG7";
> +             function = "uart1";
> +     };
>  };
> diff --git a/arch/arm/dts/sun8i-v3s-licheepi-zero-dock.dts 
> b/arch/arm/dts/sun8i-v3s-licheepi-zero-dock.dts
> index db5cd0b857..752ad05c8f 100644
> --- a/arch/arm/dts/sun8i-v3s-licheepi-zero-dock.dts
> +++ b/arch/arm/dts/sun8i-v3s-licheepi-zero-dock.dts
> @@ -49,16 +49,18 @@
>       compatible = "licheepi,licheepi-zero-dock", "licheepi,licheepi-zero",
>                    "allwinner,sun8i-v3s";
>  
> +     aliases {
> +             ethernet0 = &emac;
> +     };
> +
>       leds {
>               /* The LEDs use PG0~2 pins, which conflict with MMC1 */
>               status = "disabled";
>       };
>  };
>  
> -&mmc1 {
> -     broken-cd;
> -     bus-width = <4>;
> -     vmmc-supply = <&reg_vcc3v3>;
> +&emac {
> +     allwinner,leds-active-low;
>       status = "okay";
>  };
>  
> @@ -94,3 +96,10 @@
>               voltage = <800000>;
>       };
>  };
> +
> +&mmc1 {
> +     broken-cd;
> +     bus-width = <4>;
> +     vmmc-supply = <&reg_vcc3v3>;
> +     status = "okay";
> +};
> diff --git a/arch/arm/dts/sun8i-v3s.dtsi b/arch/arm/dts/sun8i-v3s.dtsi
> index 0c73416769..084323d5c6 100644
> --- a/arch/arm/dts/sun8i-v3s.dtsi
> +++ b/arch/arm/dts/sun8i-v3s.dtsi
> @@ -1,5 +1,6 @@
>  /*
>   * Copyright (C) 2016 Icenowy Zheng <icen...@aosc.xyz>
> + * Copyright (C) 2021 Tobias Schramm <t.schr...@manjaro.org>
>   *
>   * This file is dual-licensed: you can use it either under the terms
>   * of the GPL or the X11 license, at your option. Note that this dual
> @@ -157,12 +158,30 @@
>               syscon: system-control@1c00000 {
>                       compatible = "allwinner,sun8i-v3s-system-control",
>                                    "allwinner,sun8i-h3-system-control";
> -                     reg = <0x01c00000 0x1000>;
> +                     reg = <0x01c00000 0xd0>;
>                       #address-cells = <1>;
>                       #size-cells = <1>;
>                       ranges;
>               };
>  
> +             nmi_intc: interrupt-controller@1c000d0 {
> +                     compatible = "allwinner,sun8i-v3s-nmi",
> +                                  "allwinner,sun9i-a80-nmi";
> +                     interrupt-controller;
> +                     #interrupt-cells = <2>;
> +                     reg = <0x01c000d0 0x0c>;
> +                     interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
> +             };
> +
> +             dma: dma-controller@1c02000 {
> +                     compatible = "allwinner,sun8i-v3s-dma";
> +                     reg = <0x01c02000 0x1000>;
> +                     interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
> +                     clocks = <&ccu CLK_BUS_DMA>;
> +                     resets = <&ccu RST_BUS_DMA>;
> +                     #dma-cells = <1>;
> +             };
> +
>               tcon0: lcd-controller@1c0c000 {
>                       compatible = "allwinner,sun8i-v3s-tcon";
>                       reg = <0x01c0c000 0x1000>;
> @@ -266,6 +285,8 @@
>                       interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
>                       clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>;
>                       clock-names = "ahb", "mod";
> +                     dmas = <&dma 16>, <&dma 16>;
> +                     dma-names = "rx", "tx";
>                       resets = <&ccu RST_BUS_CE>;
>                       reset-names = "ahb";
>               };
> @@ -328,6 +349,12 @@
>                       interrupt-controller;
>                       #interrupt-cells = <3>;
>  
> +                     /omit-if-no-ref/
> +                     csi0_mclk_pin: csi0-mclk-pin {
> +                             pins = "PE20";
> +                             function = "csi_mipi";
> +                     };
> +
>                       /omit-if-no-ref/
>                       csi1_8bit_pins: csi1-8bit-pins {
>                               pins = "PE0", "PE2", "PE3", "PE8", "PE9",
> @@ -347,6 +374,12 @@
>                               function = "i2c0";
>                       };
>  
> +                     /omit-if-no-ref/
> +                     i2c1_pb_pins: i2c1-pb-pins {
> +                             pins = "PB8", "PB9";
> +                             function = "i2c1";
> +                     };
> +
>                       /omit-if-no-ref/
>                       i2c1_pe_pins: i2c1-pe-pins {
>                               pins = "PE21", "PE22";
> @@ -401,6 +434,15 @@
>                       clocks = <&osc24M>;
>               };
>  
> +             pwm: pwm@1c21400 {
> +                     compatible = "allwinner,sun8i-v3s-pwm",
> +                                  "allwinner,sun7i-a20-pwm";
> +                     reg = <0x01c21400 0xc>;
> +                     clocks = <&osc24M>;
> +                     #pwm-cells = <3>;
> +                     status = "disabled";
> +             };
> +
>               lradc: lradc@1c22800 {
>                       compatible = "allwinner,sun4i-a10-lradc-keys";
>                       reg = <0x01c22800 0x400>;
> @@ -408,6 +450,25 @@
>                       status = "disabled";
>               };
>  
> +             codec: codec@1c22c00 {
> +                     #sound-dai-cells = <0>;
> +                     compatible = "allwinner,sun8i-v3s-codec";
> +                     reg = <0x01c22c00 0x400>;
> +                     interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
> +                     clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
> +                     clock-names = "apb", "codec";
> +                     resets = <&ccu RST_BUS_CODEC>;
> +                     dmas = <&dma 15>, <&dma 15>;
> +                     dma-names = "rx", "tx";
> +                     allwinner,codec-analog-controls = <&codec_analog>;
> +                     status = "disabled";
> +             };
> +
> +             codec_analog: codec-analog@1c23000 {
> +                     compatible = "allwinner,sun8i-v3s-codec-analog";
> +                     reg = <0x01c23000 0x4>;
> +             };
> +
>               uart0: serial@1c28000 {
>                       compatible = "snps,dw-apb-uart";
>                       reg = <0x01c28000 0x400>;
> @@ -415,6 +476,8 @@
>                       reg-shift = <2>;
>                       reg-io-width = <4>;
>                       clocks = <&ccu CLK_BUS_UART0>;
> +                     dmas = <&dma 6>, <&dma 6>;
> +                     dma-names = "rx", "tx";
>                       resets = <&ccu RST_BUS_UART0>;
>                       status = "disabled";
>               };
> @@ -426,6 +489,8 @@
>                       reg-shift = <2>;
>                       reg-io-width = <4>;
>                       clocks = <&ccu CLK_BUS_UART1>;
> +                     dmas = <&dma 7>, <&dma 7>;
> +                     dma-names = "rx", "tx";
>                       resets = <&ccu RST_BUS_UART1>;
>                       status = "disabled";
>               };
> @@ -437,6 +502,8 @@
>                       reg-shift = <2>;
>                       reg-io-width = <4>;
>                       clocks = <&ccu CLK_BUS_UART2>;
> +                     dmas = <&dma 8>, <&dma 8>;
> +                     dma-names = "rx", "tx";
>                       resets = <&ccu RST_BUS_UART2>;
>                       pinctrl-0 = <&uart2_pins>;
>                       pinctrl-names = "default";
> @@ -516,6 +583,8 @@
>                       interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
>                       clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
>                       clock-names = "ahb", "mod";
> +                     dmas = <&dma 23>, <&dma 23>;
> +                     dma-names = "rx", "tx";
>                       pinctrl-names = "default";
>                       pinctrl-0 = <&spi0_pins>;
>                       resets = <&ccu RST_BUS_SPI0>;
> @@ -524,6 +593,17 @@
>                       #size-cells = <0>;
>               };
>  
> +             gic: interrupt-controller@1c81000 {
> +                     compatible = "arm,gic-400";
> +                     reg = <0x01c81000 0x1000>,
> +                           <0x01c82000 0x2000>,
> +                           <0x01c84000 0x2000>,
> +                           <0x01c86000 0x2000>;
> +                     interrupt-controller;
> +                     #interrupt-cells = <3>;
> +                     interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | 
> IRQ_TYPE_LEVEL_HIGH)>;
> +             };
> +
>               csi1: camera@1cb4000 {
>                       compatible = "allwinner,sun8i-v3s-csi";
>                       reg = <0x01cb4000 0x3000>;
> @@ -535,16 +615,5 @@
>                       resets = <&ccu RST_BUS_CSI>;
>                       status = "disabled";
>               };
> -
> -             gic: interrupt-controller@1c81000 {
> -                     compatible = "arm,gic-400";
> -                     reg = <0x01c81000 0x1000>,
> -                           <0x01c82000 0x1000>,
> -                           <0x01c84000 0x2000>,
> -                           <0x01c86000 0x2000>;
> -                     interrupt-controller;
> -                     #interrupt-cells = <3>;
> -                     interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | 
> IRQ_TYPE_LEVEL_HIGH)>;
> -             };
>       };
>  };

Reply via email to