On Wed, 27 Apr 2022 15:31:23 -0500 Samuel Holland <sam...@sholland.org> wrote:
> Copy the devicetree source for the A20 SoC and all existing boards > verbatim from the Linux v5.18-rc1 tag. > > This commit also adds the following new board devicetrees: > - sun7i-a20-haoyu-marsboard.dts > - sun7i-a20-linutronix-testbox-v2.dts > - sun7i-a20-olinuxino-lime-emmc.dts > > This update includes changes to the USB PHY detection GPIO properties > which are needed to convert that driver to use the DM GPIO framework. This looks alright: compared the files to the Linux tree, also skimmed over the changes, they look harmless. Boot tested on BananaPi M1: Ethernet and USB work. There is one thing, though: the move of the PHY child node into an MDIO subnode also affects the U-Boot-only sun7i-a20-m5.dts. As this DT gets build with every A20 build, there is now a dtc warning with every A20 board: =============== arch/arm/dts/sun7i-a20-m5.dtb: Warning (reg_format): /soc/ethernet@1c50000/ethernet-phy@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1) arch/arm/dts/sun7i-a20-m5.dtb: Warning (avoid_default_addr_size): /soc/ethernet@1c50000/ethernet-phy@1: Relying on default #address-cells value arch/arm/dts/sun7i-a20-m5.dtb: Warning (avoid_default_addr_size): /soc/ethernet@1c50000/ethernet-phy@1: Relying on default #size-cells value =============== Below simple patch fixes that and lets buildman pass (on the whole series): =============== diff --git a/arch/arm/dts/sun7i-a20-m5.dts b/arch/arm/dts/sun7i-a20-m5.dts index 6de52c7c314..cfbc50d9e55 100644 --- a/arch/arm/dts/sun7i-a20-m5.dts +++ b/arch/arm/dts/sun7i-a20-m5.dts @@ -39,7 +39,9 @@ phy = <&phy1>; phy-mode = "mii"; status = "okay"; +}; +&gmac_mdio { phy1: ethernet-phy@1 { reg = <1>; }; =============== In case there is nothing else, I will just apply this when merging. With that fixed: > Signed-off-by: Samuel Holland <sam...@sholland.org> Reviewed-by: Andre Przywara <andre.przyw...@arm.com> Cheers, Andre > --- > > arch/arm/dts/Makefile | 3 + > arch/arm/dts/sun7i-a20-bananapi-m1-plus.dts | 16 +- > arch/arm/dts/sun7i-a20-bananapi.dts | 41 ++- > arch/arm/dts/sun7i-a20-bananapro.dts | 16 +- > arch/arm/dts/sun7i-a20-cubieboard2.dts | 28 +- > arch/arm/dts/sun7i-a20-cubietruck.dts | 20 +- > arch/arm/dts/sun7i-a20-haoyu-marsboard.dts | 182 +++++++++++++ > arch/arm/dts/sun7i-a20-hummingbird.dts | 21 +- > arch/arm/dts/sun7i-a20-i12-tvbox.dts | 16 +- > arch/arm/dts/sun7i-a20-icnova-swac.dts | 15 +- > arch/arm/dts/sun7i-a20-itead-ibox.dts | 8 +- > arch/arm/dts/sun7i-a20-lamobo-r1.dts | 16 +- > .../dts/sun7i-a20-linutronix-testbox-v2.dts | 47 ++++ > arch/arm/dts/sun7i-a20-m3.dts | 14 +- > arch/arm/dts/sun7i-a20-olimex-som-evb.dts | 14 +- > arch/arm/dts/sun7i-a20-olimex-som204-evb.dts | 30 ++- > .../arm/dts/sun7i-a20-olinuxino-lime-emmc.dts | 32 +++ > arch/arm/dts/sun7i-a20-olinuxino-lime.dts | 32 +-- > arch/arm/dts/sun7i-a20-olinuxino-lime2.dts | 46 ++-- > arch/arm/dts/sun7i-a20-olinuxino-micro.dts | 32 +-- > arch/arm/dts/sun7i-a20-orangepi-mini.dts | 28 +- > arch/arm/dts/sun7i-a20-orangepi.dts | 26 +- > arch/arm/dts/sun7i-a20-pcduino3-nano.dts | 32 +-- > arch/arm/dts/sun7i-a20-pcduino3.dts | 28 +- > arch/arm/dts/sun7i-a20-wexler-tab7200.dts | 13 +- > arch/arm/dts/sun7i-a20-wits-pro-a20-dkt.dts | 24 +- > arch/arm/dts/sun7i-a20.dtsi | 254 ++++++++++++++++-- > 27 files changed, 707 insertions(+), 327 deletions(-) > create mode 100644 arch/arm/dts/sun7i-a20-haoyu-marsboard.dts > create mode 100644 arch/arm/dts/sun7i-a20-linutronix-testbox-v2.dts > create mode 100644 arch/arm/dts/sun7i-a20-olinuxino-lime-emmc.dts > > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile > index 48ede8888e..7120d6a3aa 100644 > --- a/arch/arm/dts/Makefile > +++ b/arch/arm/dts/Makefile > @@ -583,11 +583,13 @@ dtb-$(CONFIG_MACH_SUN7I) += \ > sun7i-a20-bananapro.dtb \ > sun7i-a20-cubieboard2.dtb \ > sun7i-a20-cubietruck.dtb \ > + sun7i-a20-haoyu-marsboard.dtb \ > sun7i-a20-hummingbird.dtb \ > sun7i-a20-i12-tvbox.dtb \ > sun7i-a20-icnova-swac.dtb \ > sun7i-a20-itead-ibox.dtb \ > sun7i-a20-lamobo-r1.dtb \ > + sun7i-a20-linutronix-testbox-v2.dtb \ > sun7i-a20-m3.dtb \ > sun7i-a20-m5.dtb \ > sun7i-a20-mk808c.dtb \ > @@ -595,6 +597,7 @@ dtb-$(CONFIG_MACH_SUN7I) += \ > sun7i-a20-olimex-som204-evb.dtb \ > sun7i-a20-olimex-som204-evb-emmc.dtb \ > sun7i-a20-olinuxino-lime.dtb \ > + sun7i-a20-olinuxino-lime-emmc.dtb \ > sun7i-a20-olinuxino-lime2.dtb \ > sun7i-a20-olinuxino-lime2-emmc.dtb \ > sun7i-a20-olinuxino-micro.dtb \ > diff --git a/arch/arm/dts/sun7i-a20-bananapi-m1-plus.dts > b/arch/arm/dts/sun7i-a20-bananapi-m1-plus.dts > index 4dbcad1343..caa935ca4f 100644 > --- a/arch/arm/dts/sun7i-a20-bananapi-m1-plus.dts > +++ b/arch/arm/dts/sun7i-a20-bananapi-m1-plus.dts > @@ -74,12 +74,12 @@ > leds { > compatible = "gpio-leds"; > > - green { > + led-0 { > label = "bananapi-m1-plus:green:usr"; > gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>; > }; > > - pwr { > + led-1 { > label = "bananapi-m1-plus:pwr:usr"; > gpios = <&pio 7 25 GPIO_ACTIVE_HIGH>; > default-state = "on"; > @@ -129,14 +129,10 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_rgmii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "rgmii-id"; > phy-supply = <®_gmac_3v3>; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &hdmi { > @@ -171,6 +167,12 @@ > status = "okay"; > }; > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v3>; > bus-width = <4>; > diff --git a/arch/arm/dts/sun7i-a20-bananapi.dts > b/arch/arm/dts/sun7i-a20-bananapi.dts > index 33040c43bc..46ecf9db23 100644 > --- a/arch/arm/dts/sun7i-a20-bananapi.dts > +++ b/arch/arm/dts/sun7i-a20-bananapi.dts > @@ -77,7 +77,7 @@ > leds { > compatible = "gpio-leds"; > > - green { > + led { > label = "bananapi:green:usr"; > gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>; > }; > @@ -104,16 +104,15 @@ > > &cpu0 { > cpu-supply = <®_dcdc2>; > - operating-points = < > + operating-points = > /* kHz uV */ > - 960000 1400000 > - 912000 1400000 > - 864000 1350000 > - 720000 1250000 > - 528000 1150000 > - 312000 1100000 > - 144000 1050000 > - >; > + <960000 1400000>, > + <912000 1400000>, > + <864000 1350000>, > + <720000 1250000>, > + <528000 1150000>, > + <312000 1100000>, > + <144000 1050000>; > }; > > &de { > @@ -131,14 +130,10 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_rgmii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "rgmii-id"; > phy-supply = <®_gmac_3v3>; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &hdmi { > @@ -171,6 +166,12 @@ > status = "okay"; > }; > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v3>; > bus-width = <4>; > @@ -246,12 +247,6 @@ > "SPI-MISO", "SPI-CE1", "", > "IO-6", "IO-3", "IO-2", "IO-0", "", "", "", "", > "", "", "", "", "", "", "", ""; > - > - usb0_id_detect_pin: usb0-id-detect-pin { > - pins = "PH4"; > - function = "gpio_in"; > - bias-pull-up; > - }; > }; > > #include "axp209.dtsi" > @@ -329,9 +324,7 @@ > }; > > &usbphy { > - pinctrl-names = "default"; > - pinctrl-0 = <&usb0_id_detect_pin>; > - usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ > + usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* > PH4 */ > usb0_vbus_power-supply = <&usb_power_supply>; > usb0_vbus-supply = <®_usb0_vbus>; > usb1_vbus-supply = <®_usb1_vbus>; > diff --git a/arch/arm/dts/sun7i-a20-bananapro.dts > b/arch/arm/dts/sun7i-a20-bananapro.dts > index 8a75545e22..e22f0e8bb1 100644 > --- a/arch/arm/dts/sun7i-a20-bananapro.dts > +++ b/arch/arm/dts/sun7i-a20-bananapro.dts > @@ -63,12 +63,12 @@ > leds { > compatible = "gpio-leds"; > > - blue { > + led-0 { > label = "bananapro:blue:usr"; > gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>; > }; > > - green { > + led-1 { > label = "bananapro:green:usr"; > gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>; > }; > @@ -109,14 +109,10 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_rgmii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "rgmii-id"; > phy-supply = <®_gmac_3v3>; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &i2c0 { > @@ -143,6 +139,12 @@ > status = "okay"; > }; > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v3>; > bus-width = <4>; > diff --git a/arch/arm/dts/sun7i-a20-cubieboard2.dts > b/arch/arm/dts/sun7i-a20-cubieboard2.dts > index 200685b0b1..e35e6990c4 100644 > --- a/arch/arm/dts/sun7i-a20-cubieboard2.dts > +++ b/arch/arm/dts/sun7i-a20-cubieboard2.dts > @@ -75,12 +75,12 @@ > leds { > compatible = "gpio-leds"; > > - blue { > + led-0 { > label = "cubieboard2:blue:usr"; > gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>; > }; > > - green { > + led-1 { > label = "cubieboard2:green:usr"; > gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>; > }; > @@ -115,13 +115,9 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_mii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "mii"; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &hdmi { > @@ -161,6 +157,12 @@ > status = "okay"; > }; > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + }; > +}; > + > &ohci0 { > status = "okay"; > }; > @@ -173,14 +175,6 @@ > status = "okay"; > }; > > -&pio { > - usb0_id_detect_pin: usb0-id-detect-pin { > - pins = "PH4"; > - function = "gpio_in"; > - bias-pull-up; > - }; > -}; > - > ®_ahci_5v { > status = "okay"; > }; > @@ -236,9 +230,7 @@ > }; > > &usbphy { > - pinctrl-names = "default"; > - pinctrl-0 = <&usb0_id_detect_pin>; > - usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ > + usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* > PH4 */ > usb1_vbus-supply = <®_usb1_vbus>; > usb2_vbus-supply = <®_usb2_vbus>; > status = "okay"; > diff --git a/arch/arm/dts/sun7i-a20-cubietruck.dts > b/arch/arm/dts/sun7i-a20-cubietruck.dts > index 46a9f4669e..52160e3683 100644 > --- a/arch/arm/dts/sun7i-a20-cubietruck.dts > +++ b/arch/arm/dts/sun7i-a20-cubietruck.dts > @@ -75,22 +75,22 @@ > leds { > compatible = "gpio-leds"; > > - blue { > + led-0 { > label = "cubietruck:blue:usr"; > gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>; > }; > > - orange { > + led-1 { > label = "cubietruck:orange:usr"; > gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>; > }; > > - white { > + led-2 { > label = "cubietruck:white:usr"; > gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; > }; > > - green { > + led-3 { > label = "cubietruck:green:usr"; > gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; > }; > @@ -150,13 +150,9 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_rgmii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "rgmii-id"; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &hdmi { > @@ -194,6 +190,12 @@ > status = "okay"; > }; > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v3>; > bus-width = <4>; > diff --git a/arch/arm/dts/sun7i-a20-haoyu-marsboard.dts > b/arch/arm/dts/sun7i-a20-haoyu-marsboard.dts > new file mode 100644 > index 0000000000..097e479c27 > --- /dev/null > +++ b/arch/arm/dts/sun7i-a20-haoyu-marsboard.dts > @@ -0,0 +1,182 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright 2021 Conley Lee > + * Conley Lee <conley...@foxmail.com> > + */ > + > +/dts-v1/; > +#include "sun7i-a20.dtsi" > +#include "sunxi-common-regulators.dtsi" > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/interrupt-controller/irq.h> > + > +/ { > + model = "HAOYU Electronics Marsboard A20"; > + compatible = "haoyu,a20-marsboard", "allwinner,sun7i-a20"; > + > + aliases { > + serial0 = &uart0; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > + > + hdmi-connector { > + compatible = "hdmi-connector"; > + type = "a"; > + > + port { > + hdmi_con_in: endpoint { > + remote-endpoint = <&hdmi_out_con>; > + }; > + }; > + }; > +}; > + > +&ahci { > + target-supply = <®_ahci_5v>; > + status = "okay"; > +}; > + > +&codec { > + status = "okay"; > +}; > + > +&cpu0 { > + cpu-supply = <®_dcdc2>; > +}; > + > +&de { > + status = "okay"; > +}; > + > +&ehci0 { > + status = "okay"; > +}; > + > +&ehci1 { > + status = "okay"; > +}; > + > +&gmac { > + pinctrl-names = "default"; > + pinctrl-0 = <&gmac_mii_pins>, <&gmac_txerr>; > + phy-handle = <&phy0>; > + phy-mode = "mii"; > + status = "okay"; > +}; > + > +&hdmi { > + status = "okay"; > +}; > + > +&hdmi_out { > + hdmi_out_con: endpoint { > + remote-endpoint = <&hdmi_con_in>; > + }; > +}; > + > +&i2c0 { > + status = "okay"; > + > + axp209: pmic@34 { > + reg = <0x34>; > + interrupt-parent = <&nmi_intc>; > + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; > + }; > +}; > + > +&mmc0 { > + vmmc-supply = <®_vcc3v3>; > + bus-width = <4>; > + cd-gpios = <&pio 7 10 GPIO_ACTIVE_LOW>; /* PH10 */ > + status = "okay"; > +}; > + > +&gmac_mdio { > + phy0: ethernet-phy@0 { > + reg = <0>; > + }; > +}; > + > +&ohci0 { > + status = "okay"; > +}; > + > +&ohci1 { > + status = "okay"; > +}; > + > +&otg_sram { > + status = "okay"; > +}; > + > +&pio { > + gmac_txerr: gmac-txerr-pin { > + pins = "PA17"; > + function = "gmac"; > + }; > +}; > + > +®_ahci_5v { > + status = "okay"; > +}; > + > +#include "axp209.dtsi" > + > +&ac_power_supply { > + status = "okay"; > +}; > + > +®_dcdc2 { > + regulator-always-on; > + regulator-min-microvolt = <1000000>; > + regulator-max-microvolt = <1450000>; > + regulator-name = "vdd-cpu"; > +}; > + > +®_dcdc3 { > + regulator-always-on; > + regulator-min-microvolt = <1000000>; > + regulator-max-microvolt = <1400000>; > + regulator-name = "vdd-int-dll"; > +}; > + > +®_ldo1 { > + regulator-name = "vdd-rtc"; > +}; > + > +®_ldo2 { > + regulator-always-on; > + regulator-min-microvolt = <3000000>; > + regulator-max-microvolt = <3000000>; > + regulator-name = "avcc"; > +}; > + > +®_usb1_vbus { > + status = "okay"; > +}; > + > +®_usb2_vbus { > + status = "okay"; > +}; > + > +&uart0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart0_pb_pins>; > + status = "okay"; > +}; > + > +&usb_otg { > + dr_mode = "otg"; > + status = "okay"; > +}; > + > +&usbphy { > + usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* > PH4 */ > + usb1_vbus-supply = <®_usb1_vbus>; > + usb2_vbus-supply = <®_usb2_vbus>; > + status = "okay"; > +}; > diff --git a/arch/arm/dts/sun7i-a20-hummingbird.dts > b/arch/arm/dts/sun7i-a20-hummingbird.dts > index fd0153f656..3def2a3305 100644 > --- a/arch/arm/dts/sun7i-a20-hummingbird.dts > +++ b/arch/arm/dts/sun7i-a20-hummingbird.dts > @@ -100,19 +100,10 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_rgmii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "rgmii"; > phy-supply = <®_gmac_vdd>; > - /* phy reset config */ > - snps,reset-gpio = <&pio 0 17 GPIO_ACTIVE_HIGH>; /* PA17 */ > - snps,reset-active-low; > - /* wait 1s after reset, otherwise fail to read phy id */ > - snps,reset-delays-us = <0 10000 1000000>; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &i2c0 { > @@ -146,6 +137,16 @@ > status = "okay"; > }; > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + reset-gpios = <&pio 0 17 GPIO_ACTIVE_LOW>; /* PA17 */ > + reset-assert-us = <10000>; > + /* wait 1s after reset, otherwise fail to read phy id */ > + reset-deassert-us = <1000000>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v0>; > bus-width = <4>; > diff --git a/arch/arm/dts/sun7i-a20-i12-tvbox.dts > b/arch/arm/dts/sun7i-a20-i12-tvbox.dts > index 5f1c4f573d..b21ddd0ec1 100644 > --- a/arch/arm/dts/sun7i-a20-i12-tvbox.dts > +++ b/arch/arm/dts/sun7i-a20-i12-tvbox.dts > @@ -62,12 +62,12 @@ > leds { > compatible = "gpio-leds"; > > - red { > + led-0 { > label = "i12_tvbox:red:usr"; > gpios = <&pio 7 9 GPIO_ACTIVE_LOW>; > }; > > - blue { > + led-1 { > label = "i12_tvbox:blue:usr"; > gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>; > }; > @@ -115,14 +115,10 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_mii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "mii"; > phy-supply = <®_gmac_3v3>; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &i2c0 { > @@ -145,6 +141,12 @@ > status = "okay"; > }; > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v3>; > bus-width = <4>; > diff --git a/arch/arm/dts/sun7i-a20-icnova-swac.dts > b/arch/arm/dts/sun7i-a20-icnova-swac.dts > index 949494730a..413505f45a 100644 > --- a/arch/arm/dts/sun7i-a20-icnova-swac.dts > +++ b/arch/arm/dts/sun7i-a20-icnova-swac.dts > @@ -49,7 +49,8 @@ > > / { > model = "ICnova-A20 SWAC"; > - compatible = "swac,icnova-a20-swac", "incircuit,icnova-a20", > "allwinner,sun7i-a20"; > + compatible = "incircuit,icnova-a20-swac", "incircuit,icnova-a20", > + "allwinner,sun7i-a20"; > > aliases { > serial0 = &uart0; > @@ -75,13 +76,9 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_mii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "mii"; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &i2c0 { > @@ -98,6 +95,12 @@ > status = "okay"; > }; > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v3>; > bus-width = <4>; > diff --git a/arch/arm/dts/sun7i-a20-itead-ibox.dts > b/arch/arm/dts/sun7i-a20-itead-ibox.dts > index b90a7607d0..8ff83016ff 100644 > --- a/arch/arm/dts/sun7i-a20-itead-ibox.dts > +++ b/arch/arm/dts/sun7i-a20-itead-ibox.dts > @@ -53,13 +53,13 @@ > pinctrl-names = "default"; > pinctrl-0 = <&led_pins_itead_core>; > > - green { > + led-0 { > label = "itead_core:green:usr"; > gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>; > default-state = "on"; > }; > > - blue { > + led-1 { > label = "itead_core:blue:usr"; > gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>; > default-state = "on"; > @@ -97,10 +97,12 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_mii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "mii"; > status = "okay"; > +}; > > +&gmac_mdio { > phy1: ethernet-phy@1 { > reg = <1>; > }; > diff --git a/arch/arm/dts/sun7i-a20-lamobo-r1.dts > b/arch/arm/dts/sun7i-a20-lamobo-r1.dts > index f91e1bee44..97518afe46 100644 > --- a/arch/arm/dts/sun7i-a20-lamobo-r1.dts > +++ b/arch/arm/dts/sun7i-a20-lamobo-r1.dts > @@ -75,7 +75,7 @@ > leds { > compatible = "gpio-leds"; > > - green { > + led { > label = "lamobo_r1:green:usr"; > gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>; > }; > @@ -123,8 +123,6 @@ > phy-mode = "rgmii"; > phy-supply = <®_gmac_3v3>; > status = "okay"; > - /delete-property/#address-cells; > - /delete-property/#size-cells; > > fixed-link { > speed = <1000>; > @@ -229,14 +227,6 @@ > status = "okay"; > }; > > -&pio { > - usb0_id_detect_pin: usb0-id-detect-pin { > - pins = "PH4"; > - function = "gpio_in"; > - bias-pull-up; > - }; > -}; > - > #include "axp209.dtsi" > > &ac_power_supply { > @@ -322,9 +312,7 @@ > }; > > &usbphy { > - pinctrl-names = "default"; > - pinctrl-0 = <&usb0_id_detect_pin>; > - usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ > + usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* > PH4 */ > usb0_vbus_power-supply = <&usb_power_supply>; > usb0_vbus-supply = <®_usb0_vbus>; > usb2_vbus-supply = <®_usb2_vbus>; > diff --git a/arch/arm/dts/sun7i-a20-linutronix-testbox-v2.dts > b/arch/arm/dts/sun7i-a20-linutronix-testbox-v2.dts > new file mode 100644 > index 0000000000..da5a2eea4c > --- /dev/null > +++ b/arch/arm/dts/sun7i-a20-linutronix-testbox-v2.dts > @@ -0,0 +1,47 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later > +/* > + * Copyright 2020 Linutronix GmbH > + * Author: Benedikt Spranger <b.spran...@linutronix.de> > + */ > + > +/dts-v1/; > +#include "sun7i-a20-lamobo-r1.dts" > + > +/ { > + model = "Lamobo R1"; > + compatible = "linutronix,testbox-v2", "lamobo,lamobo-r1", > "allwinner,sun7i-a20"; > + > + leds { > + led-opto1 { > + label = "lamobo_r1:opto:powerswitch"; > + gpios = <&pio 7 3 GPIO_ACTIVE_HIGH>; > + }; > + > + led-opto2 { > + label = "lamobo_r1:opto:relay"; > + gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; > + }; > + }; > +}; > + > +&i2c2 { > + clock-frequency = <100000>; > + status = "okay"; > + > + eeprom: eeprom@50 { > + compatible = "atmel,24c08"; > + reg = <0x50>; > + status = "okay"; > + }; > + > + atecc508a@60 { > + compatible = "atmel,atecc508a"; > + reg = <0x60>; > + }; > +}; > + > +&can0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&can_ph_pins>; > + status = "okay"; > +}; > diff --git a/arch/arm/dts/sun7i-a20-m3.dts b/arch/arm/dts/sun7i-a20-m3.dts > index b8a1aaaf39..f161d52388 100644 > --- a/arch/arm/dts/sun7i-a20-m3.dts > +++ b/arch/arm/dts/sun7i-a20-m3.dts > @@ -64,7 +64,7 @@ > leds { > compatible = "gpio-leds"; > > - blue { > + led { > label = "m3:blue:usr"; > gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>; > }; > @@ -82,13 +82,9 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_mii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "mii"; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &i2c0 { > @@ -111,6 +107,12 @@ > status = "okay"; > }; > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v3>; > bus-width = <4>; > diff --git a/arch/arm/dts/sun7i-a20-olimex-som-evb.dts > b/arch/arm/dts/sun7i-a20-olimex-som-evb.dts > index f0e6a96e57..f05ee32bc9 100644 > --- a/arch/arm/dts/sun7i-a20-olimex-som-evb.dts > +++ b/arch/arm/dts/sun7i-a20-olimex-som-evb.dts > @@ -75,7 +75,7 @@ > leds { > compatible = "gpio-leds"; > > - green { > + led { > label = "a20-olimex-som-evb:green:usr"; > gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; > default-state = "on"; > @@ -111,13 +111,9 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_rgmii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "rgmii"; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &hdmi { > @@ -202,6 +198,12 @@ > }; > }; > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v3>; > bus-width = <4>; > diff --git a/arch/arm/dts/sun7i-a20-olimex-som204-evb.dts > b/arch/arm/dts/sun7i-a20-olimex-som204-evb.dts > index 823aabce04..54af6c1807 100644 > --- a/arch/arm/dts/sun7i-a20-olimex-som204-evb.dts > +++ b/arch/arm/dts/sun7i-a20-olimex-som204-evb.dts > @@ -46,19 +46,19 @@ > leds { > compatible = "gpio-leds"; > > - stat { > + led-0 { > label = "a20-som204-evb:green:stat"; > gpios = <&pio 8 0 GPIO_ACTIVE_HIGH>; > default-state = "on"; > }; > > - led1 { > + led-1 { > label = "a20-som204-evb:green:led1"; > gpios = <&pio 8 10 GPIO_ACTIVE_HIGH>; > default-state = "on"; > }; > > - led2 { > + led-2 { > label = "a20-som204-evb:yellow:led2"; > gpios = <&pio 8 11 GPIO_ACTIVE_HIGH>; > default-state = "on"; > @@ -105,18 +105,10 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_rgmii_pins>; > - phy = <&phy3>; > + phy-handle = <&phy3>; > phy-mode = "rgmii"; > phy-supply = <®_vcc3v3>; > - > - snps,reset-gpio = <&pio 0 17 GPIO_ACTIVE_HIGH>; > - snps,reset-active-low; > - snps,reset-delays-us = <0 10000 1000000>; > status = "okay"; > - > - phy3: ethernet-phy@3 { > - reg = <3>; > - }; > }; > > &hdmi { > @@ -161,6 +153,16 @@ > status = "okay"; > }; > > +&gmac_mdio { > + phy3: ethernet-phy@3 { > + reg = <3>; > + reset-gpios = <&pio 0 17 GPIO_ACTIVE_LOW>; /* PA17 */ > + reset-assert-us = <10000>; > + /* wait 1s after reset, otherwise fail to read phy id */ > + reset-deassert-us = <1000000>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v3>; > bus-width = <4>; > @@ -314,8 +316,8 @@ > }; > > &usbphy { > - usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ > - usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */ > + usb0_id_det-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ > + usb0_vbus_det-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */ > usb0_vbus_power-supply = <&usb_power_supply>; > usb0_vbus-supply = <®_usb0_vbus>; > usb1_vbus-supply = <®_usb1_vbus>; > diff --git a/arch/arm/dts/sun7i-a20-olinuxino-lime-emmc.dts > b/arch/arm/dts/sun7i-a20-olinuxino-lime-emmc.dts > new file mode 100644 > index 0000000000..033cab3443 > --- /dev/null > +++ b/arch/arm/dts/sun7i-a20-olinuxino-lime-emmc.dts > @@ -0,0 +1,32 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (C) 2020 Olimex Ltd. > + * Author: Stefan Mavrodiev <ste...@olimex.com> > + */ > + > +#include "sun7i-a20-olinuxino-lime.dts" > + > +/ { > + model = "Olimex A20-OLinuXino-LIME-eMMC"; > + compatible = "olimex,a20-olinuxino-lime-emmc", "allwinner,sun7i-a20"; > + > + mmc2_pwrseq: pwrseq { > + compatible = "mmc-pwrseq-emmc"; > + reset-gpios = <&pio 2 16 GPIO_ACTIVE_LOW>; > + }; > +}; > + > +&mmc2 { > + vmmc-supply = <®_vcc3v3>; > + vqmmc-supply = <®_vcc3v3>; > + bus-width = <4>; > + non-removable; > + mmc-pwrseq = <&mmc2_pwrseq>; > + status = "okay"; > + > + emmc: emmc@0 { > + reg = <0>; > + compatible = "mmc-card"; > + broken-hpi; > + }; > +}; > diff --git a/arch/arm/dts/sun7i-a20-olinuxino-lime.dts > b/arch/arm/dts/sun7i-a20-olinuxino-lime.dts > index 5e411194bf..92938d0222 100644 > --- a/arch/arm/dts/sun7i-a20-olinuxino-lime.dts > +++ b/arch/arm/dts/sun7i-a20-olinuxino-lime.dts > @@ -78,7 +78,7 @@ > pinctrl-names = "default"; > pinctrl-0 = <&led_pins_olinuxinolime>; > > - green { > + led { > label = "a20-olinuxino-lime:green:usr"; > gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; > default-state = "on"; > @@ -106,13 +106,9 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_mii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "mii"; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &hdmi { > @@ -149,6 +145,12 @@ > }; > }; > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v3>; > bus-width = <4>; > @@ -174,18 +176,6 @@ > function = "gpio_out"; > drive-strength = <20>; > }; > - > - usb0_id_detect_pin: usb0-id-detect-pin { > - pins = "PH4"; > - function = "gpio_in"; > - bias-pull-up; > - }; > - > - usb0_vbus_detect_pin: usb0-vbus-detect-pin { > - pins = "PH5"; > - function = "gpio_in"; > - bias-pull-down; > - }; > }; > > ®_ahci_5v { > @@ -217,10 +207,8 @@ > }; > > &usbphy { > - pinctrl-names = "default"; > - pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>; > - usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ > - usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */ > + usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* > PH4 */ > + usb0_vbus_det-gpios = <&pio 7 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; > /* PH5 */ > usb0_vbus-supply = <®_usb0_vbus>; > usb1_vbus-supply = <®_usb1_vbus>; > usb2_vbus-supply = <®_usb2_vbus>; > diff --git a/arch/arm/dts/sun7i-a20-olinuxino-lime2.dts > b/arch/arm/dts/sun7i-a20-olinuxino-lime2.dts > index 996201665b..ecb91fb899 100644 > --- a/arch/arm/dts/sun7i-a20-olinuxino-lime2.dts > +++ b/arch/arm/dts/sun7i-a20-olinuxino-lime2.dts > @@ -75,7 +75,7 @@ > pinctrl-names = "default"; > pinctrl-0 = <&led_pins_olinuxinolime>; > > - green { > + led { > label = "a20-olinuxino-lime2:green:usr"; > gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; > default-state = "on"; > @@ -111,13 +111,9 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_rgmii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "rgmii-id"; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &hdmi { > @@ -154,6 +150,12 @@ > vref-supply = <®_vcc3v0>; > }; > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v3>; > bus-width = <4>; > @@ -174,23 +176,17 @@ > }; > > &pio { > + vcc-pa-supply = <®_vcc3v3>; > + vcc-pc-supply = <®_vcc3v3>; > + vcc-pe-supply = <®_ldo3>; > + vcc-pf-supply = <®_vcc3v3>; > + vcc-pg-supply = <®_ldo4>; > + > led_pins_olinuxinolime: led-pins { > pins = "PH2"; > function = "gpio_out"; > drive-strength = <20>; > }; > - > - usb0_id_detect_pin: usb0-id-detect-pin { > - pins = "PH4"; > - function = "gpio_in"; > - bias-pull-up; > - }; > - > - usb0_vbus_detect_pin: usb0-vbus-detect-pin { > - pins = "PH5"; > - function = "gpio_in"; > - bias-pull-down; > - }; > }; > > ®_ahci_5v { > @@ -200,6 +196,14 @@ > > #include "axp209.dtsi" > > +&ac_power_supply { > + status = "okay"; > +}; > + > +&battery_power_supply { > + status = "okay"; > +}; > + > ®_dcdc2 { > regulator-always-on; > regulator-min-microvolt = <1000000>; > @@ -267,10 +271,8 @@ > }; > > &usbphy { > - pinctrl-names = "default"; > - pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>; > - usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ > - usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */ > + usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* > PH4 */ > + usb0_vbus_det-gpios = <&pio 7 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; > /* PH5 */ > usb0_vbus-supply = <®_usb0_vbus>; > usb1_vbus-supply = <®_usb1_vbus>; > usb2_vbus-supply = <®_usb2_vbus>; > diff --git a/arch/arm/dts/sun7i-a20-olinuxino-micro.dts > b/arch/arm/dts/sun7i-a20-olinuxino-micro.dts > index 840ae1194a..a1b89b2a29 100644 > --- a/arch/arm/dts/sun7i-a20-olinuxino-micro.dts > +++ b/arch/arm/dts/sun7i-a20-olinuxino-micro.dts > @@ -82,7 +82,7 @@ > pinctrl-names = "default"; > pinctrl-0 = <&led_pins_olinuxino>; > > - green { > + led { > label = "a20-olinuxino-micro:green:usr"; > gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; > default-state = "on"; > @@ -118,13 +118,9 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_mii_pins>, <&gmac_txerr>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "mii"; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &hdmi { > @@ -215,6 +211,12 @@ > }; > }; > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v3>; > bus-width = <4>; > @@ -252,18 +254,6 @@ > function = "gpio_out"; > drive-strength = <20>; > }; > - > - usb0_id_detect_pin: usb0-id-detect-pin { > - pins = "PH4"; > - function = "gpio_in"; > - bias-pull-up; > - }; > - > - usb0_vbus_detect_pin: usb0-vbus-detect-pin { > - pins = "PH5"; > - function = "gpio_in"; > - bias-pull-down; > - }; > }; > > #include "axp209.dtsi" > @@ -355,10 +345,8 @@ > }; > > &usbphy { > - pinctrl-names = "default"; > - pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>; > - usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ > - usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */ > + usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* > PH4 */ > + usb0_vbus_det-gpios = <&pio 7 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; > /* PH5 */ > usb0_vbus-supply = <®_usb0_vbus>; > usb1_vbus-supply = <®_usb1_vbus>; > usb2_vbus-supply = <®_usb2_vbus>; > diff --git a/arch/arm/dts/sun7i-a20-orangepi-mini.dts > b/arch/arm/dts/sun7i-a20-orangepi-mini.dts > index 15881081ca..84efa01e7c 100644 > --- a/arch/arm/dts/sun7i-a20-orangepi-mini.dts > +++ b/arch/arm/dts/sun7i-a20-orangepi-mini.dts > @@ -75,12 +75,12 @@ > leds { > compatible = "gpio-leds"; > > - green { > + led-0 { > label = "orangepi:green:usr"; > gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>; /* PH24 */ > }; > > - blue { > + led-1 { > label = "orangepi:blue:usr"; > gpios = <&pio 7 25 GPIO_ACTIVE_HIGH>; /* PH25 */ > }; > @@ -120,14 +120,10 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_rgmii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "rgmii"; > phy-supply = <®_gmac_3v3>; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &hdmi { > @@ -158,6 +154,12 @@ > status = "okay"; > }; > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v3>; > bus-width = <4>; > @@ -176,14 +178,6 @@ > status = "okay"; > }; > > -&pio { > - usb0_id_detect_pin: usb0-id-detect-pin { > - pins = "PH4"; > - function = "gpio_in"; > - bias-pull-up; > - }; > -}; > - > ®_dcdc2 { > regulator-always-on; > regulator-min-microvolt = <1000000>; > @@ -239,9 +233,7 @@ > }; > > &usbphy { > - pinctrl-names = "default"; > - pinctrl-0 = <&usb0_id_detect_pin>; > - usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ > + usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* > PH4 */ > usb0_vbus_power-supply = <&usb_power_supply>; > usb0_vbus-supply = <®_usb0_vbus>; > usb1_vbus-supply = <®_usb1_vbus>; > diff --git a/arch/arm/dts/sun7i-a20-orangepi.dts > b/arch/arm/dts/sun7i-a20-orangepi.dts > index d64de2e73a..5d77f1d981 100644 > --- a/arch/arm/dts/sun7i-a20-orangepi.dts > +++ b/arch/arm/dts/sun7i-a20-orangepi.dts > @@ -64,7 +64,7 @@ > leds { > compatible = "gpio-leds"; > > - green { > + led { > label = "orangepi:green:usr"; > gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>; /* PH24 */ > }; > @@ -96,14 +96,10 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_rgmii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "rgmii"; > phy-supply = <®_gmac_3v3>; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &i2c0 { > @@ -124,6 +120,12 @@ > status = "okay"; > }; > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v3>; > bus-width = <4>; > @@ -135,14 +137,6 @@ > status = "okay"; > }; > > -&pio { > - usb0_id_detect_pin: usb0-id-detect-pin { > - pins = "PH4"; > - function = "gpio_in"; > - bias-pull-up; > - }; > -}; > - > ®_dcdc2 { > regulator-always-on; > regulator-min-microvolt = <1000000>; > @@ -198,9 +192,7 @@ > }; > > &usbphy { > - pinctrl-names = "default"; > - pinctrl-0 = <&usb0_id_detect_pin>; > - usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ > + usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* > PH4 */ > usb0_vbus_power-supply = <&usb_power_supply>; > usb0_vbus-supply = <®_usb0_vbus>; > usb1_vbus-supply = <®_usb1_vbus>; > diff --git a/arch/arm/dts/sun7i-a20-pcduino3-nano.dts > b/arch/arm/dts/sun7i-a20-pcduino3-nano.dts > index 205eaae44a..e40ecb48d7 100644 > --- a/arch/arm/dts/sun7i-a20-pcduino3-nano.dts > +++ b/arch/arm/dts/sun7i-a20-pcduino3-nano.dts > @@ -1,5 +1,5 @@ > /* > - * Copyright 2015 Adam Sampson <a...@offog.org> > + * Copyright 2015-2020 Adam Sampson <a...@offog.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 > @@ -72,14 +72,12 @@ > leds { > compatible = "gpio-leds"; > > - /* Marked "LED3" on the PCB. */ > - usr1 { > + led-3 { > label = "pcduino3-nano:green:usr1"; > gpios = <&pio 7 16 GPIO_ACTIVE_LOW>; /* PH16 */ > }; > > - /* Marked "LED4" on the PCB. */ > - usr2 { > + led-4 { > label = "pcduino3-nano:green:usr2"; > gpios = <&pio 7 15 GPIO_ACTIVE_LOW>; /* PH15 */ > }; > @@ -114,13 +112,9 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_rgmii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "rgmii-id"; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &hdmi { > @@ -149,6 +143,12 @@ > status = "okay"; > }; > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v3>; > bus-width = <4>; > @@ -168,14 +168,6 @@ > status = "okay"; > }; > > -&pio { > - usb0_id_detect_pin: usb0-id-detect-pin { > - pins = "PH4"; > - function = "gpio_in"; > - bias-pull-up; > - }; > -}; > - > ®_ahci_5v { > gpio = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */ > status = "okay"; > @@ -226,9 +218,7 @@ > }; > > &usbphy { > - pinctrl-names = "default"; > - pinctrl-0 = <&usb0_id_detect_pin>; > - usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ > + usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* > PH4 */ > usb1_vbus-supply = <®_usb1_vbus>; > usb2_vbus-supply = <®_usb1_vbus>; > status = "okay"; > diff --git a/arch/arm/dts/sun7i-a20-pcduino3.dts > b/arch/arm/dts/sun7i-a20-pcduino3.dts > index a72ed4318d..4f8d55d3ba 100644 > --- a/arch/arm/dts/sun7i-a20-pcduino3.dts > +++ b/arch/arm/dts/sun7i-a20-pcduino3.dts > @@ -64,12 +64,12 @@ > leds { > compatible = "gpio-leds"; > > - tx { > + led-0 { > label = "pcduino3:green:tx"; > gpios = <&pio 7 15 GPIO_ACTIVE_LOW>; > }; > > - rx { > + led-1 { > label = "pcduino3:green:rx"; > gpios = <&pio 7 16 GPIO_ACTIVE_LOW>; > }; > @@ -122,13 +122,9 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_mii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "mii"; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &i2c0 { > @@ -149,6 +145,12 @@ > status = "okay"; > }; > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v3>; > bus-width = <4>; > @@ -168,14 +170,6 @@ > status = "okay"; > }; > > -&pio { > - usb0_id_detect_pin: usb0-id-detect-pin { > - pins = "PH4"; > - function = "gpio_in"; > - bias-pull-up; > - }; > -}; > - > ®_ahci_5v { > gpio = <&pio 7 2 GPIO_ACTIVE_HIGH>; > status = "okay"; > @@ -226,9 +220,7 @@ > }; > > &usbphy { > - pinctrl-names = "default"; > - pinctrl-0 = <&usb0_id_detect_pin>; > - usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ > + usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* > PH4 */ > usb1_vbus-supply = <®_usb1_vbus>; > usb2_vbus-supply = <®_usb2_vbus>; > status = "okay"; > diff --git a/arch/arm/dts/sun7i-a20-wexler-tab7200.dts > b/arch/arm/dts/sun7i-a20-wexler-tab7200.dts > index ffade253d1..fef02fcbbd 100644 > --- a/arch/arm/dts/sun7i-a20-wexler-tab7200.dts > +++ b/arch/arm/dts/sun7i-a20-wexler-tab7200.dts > @@ -64,6 +64,7 @@ > brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>; > default-brightness-level = <8>; > enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ > + power-supply = <®_vcc3v3>; > }; > > chosen { > @@ -156,14 +157,6 @@ > status = "okay"; > }; > > -&pio { > - usb0_id_detect_pin: usb0-id-detect-pin { > - pins = "PH4"; > - function = "gpio_in"; > - bias-pull-up; > - }; > -}; > - > &pwm { > pinctrl-names = "default"; > pinctrl-0 = <&pwm0_pin>; > @@ -223,9 +216,7 @@ > }; > > &usbphy { > - pinctrl-names = "default"; > - pinctrl-0 = <&usb0_id_detect_pin>; > - usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ > + usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* > PH4 */ > usb0_vbus_power-supply = <&usb_power_supply>; > usb0_vbus-supply = <®_usb0_vbus>; > usb1_vbus-supply = <®_usb1_vbus>; > diff --git a/arch/arm/dts/sun7i-a20-wits-pro-a20-dkt.dts > b/arch/arm/dts/sun7i-a20-wits-pro-a20-dkt.dts > index c27e56091f..3bfae98f3c 100644 > --- a/arch/arm/dts/sun7i-a20-wits-pro-a20-dkt.dts > +++ b/arch/arm/dts/sun7i-a20-wits-pro-a20-dkt.dts > @@ -81,13 +81,9 @@ > &gmac { > pinctrl-names = "default"; > pinctrl-0 = <&gmac_rgmii_pins>; > - phy = <&phy1>; > + phy-handle = <&phy1>; > phy-mode = "rgmii"; > status = "okay"; > - > - phy1: ethernet-phy@1 { > - reg = <1>; > - }; > }; > > &i2c0 { > @@ -110,6 +106,12 @@ > > #include "axp209.dtsi" > > +&gmac_mdio { > + phy1: ethernet-phy@1 { > + reg = <1>; > + }; > +}; > + > &mmc0 { > vmmc-supply = <®_vcc3v3>; > bus-width = <4>; > @@ -145,14 +147,6 @@ > status = "okay"; > }; > > -&pio { > - usb0_id_detect_pin: usb0-id-detect-pin { > - pins = "PH4"; > - function = "gpio_in"; > - bias-pull-up; > - }; > -}; > - > ®_dcdc2 { > regulator-always-on; > regulator-min-microvolt = <1000000>; > @@ -206,9 +200,7 @@ > }; > > &usbphy { > - pinctrl-names = "default"; > - pinctrl-0 = <&usb0_id_detect_pin>; > - usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ > + usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* > PH4 */ > usb0_vbus_power-supply = <&usb_power_supply>; > usb0_vbus-supply = <®_usb0_vbus>; > usb1_vbus-supply = <®_usb1_vbus>; > diff --git a/arch/arm/dts/sun7i-a20.dtsi b/arch/arm/dts/sun7i-a20.dtsi > index 641a8fa6d4..5574299685 100644 > --- a/arch/arm/dts/sun7i-a20.dtsi > +++ b/arch/arm/dts/sun7i-a20.dtsi > @@ -47,6 +47,7 @@ > #include <dt-bindings/dma/sun4i-a10.h> > #include <dt-bindings/clock/sun7i-a20-ccu.h> > #include <dt-bindings/reset/sun4i-a10-ccu.h> > +#include <dt-bindings/pinctrl/sun4i-a10.h> > > / { > interrupt-parent = <&gic>; > @@ -105,16 +106,15 @@ > reg = <0>; > clocks = <&ccu CLK_CPU>; > clock-latency = <244144>; /* 8 32k periods */ > - operating-points = < > + operating-points = > /* kHz uV */ > - 960000 1400000 > - 912000 1400000 > - 864000 1300000 > - 720000 1200000 > - 528000 1100000 > - 312000 1000000 > - 144000 1000000 > - >; > + <960000 1400000>, > + <912000 1400000>, > + <864000 1300000>, > + <720000 1200000>, > + <528000 1100000>, > + <312000 1000000>, > + <144000 1000000>; > #cooling-cells = <2>; > }; > > @@ -124,22 +124,21 @@ > reg = <1>; > clocks = <&ccu CLK_CPU>; > clock-latency = <244144>; /* 8 32k periods */ > - operating-points = < > + operating-points = > /* kHz uV */ > - 960000 1400000 > - 912000 1400000 > - 864000 1300000 > - 720000 1200000 > - 528000 1100000 > - 312000 1000000 > - 144000 1000000 > - >; > + <960000 1400000>, > + <912000 1400000>, > + <864000 1300000>, > + <720000 1200000>, > + <528000 1100000>, > + <312000 1000000>, > + <144000 1000000>; > #cooling-cells = <2>; > }; > }; > > thermal-zones { > - cpu_thermal { > + cpu-thermal { > /* milliseconds */ > polling-delay-passive = <250>; > polling-delay = <1000>; > @@ -180,7 +179,7 @@ > default-pool { > compatible = "shared-dma-pool"; > size = <0x6000000>; > - alloc-ranges = <0x4a000000 0x6000000>; > + alloc-ranges = <0x40000000 0x10000000>; > reusable; > linux,cma-default; > }; > @@ -333,7 +332,7 @@ > #dma-cells = <2>; > }; > > - nfc: nand@1c03000 { > + nfc: nand-controller@1c03000 { > compatible = "allwinner,sun4i-a10-nand"; > reg = <0x01c03000 0x1000>; > interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; > @@ -376,6 +375,16 @@ > num-cs = <1>; > }; > > + csi0: csi@1c09000 { > + compatible = "allwinner,sun7i-a20-csi0"; > + reg = <0x01c09000 0x1000>; > + interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&ccu CLK_AHB_CSI0>, <&ccu CLK_CSI_SCLK>, > <&ccu CLK_DRAM_CSI0>; > + clock-names = "bus", "isp", "ram"; > + resets = <&ccu RST_CSI0>; > + status = "disabled"; > + }; > + > emac: ethernet@1c0b000 { > compatible = "allwinner,sun4i-a10-emac"; > reg = <0x01c0b000 0x1000>; > @@ -394,11 +403,12 @@ > }; > > tcon0: lcd-controller@1c0c000 { > - compatible = "allwinner,sun7i-a20-tcon"; > + compatible = "allwinner,sun7i-a20-tcon0", > + "allwinner,sun7i-a20-tcon"; > reg = <0x01c0c000 0x1000>; > interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; > - resets = <&ccu RST_TCON0>; > - reset-names = "lcd"; > + resets = <&ccu RST_TCON0>, <&ccu RST_LVDS>; > + reset-names = "lcd", "lvds"; > clocks = <&ccu CLK_AHB_LCD0>, > <&ccu CLK_TCON0_CH0>, > <&ccu CLK_TCON0_CH1>; > @@ -406,6 +416,7 @@ > "tcon-ch0", > "tcon-ch1"; > clock-output-names = "tcon0-pixel-clock"; > + #clock-cells = <0>; > dmas = <&dma SUN4I_DMA_DEDICATED 14>; > > ports { > @@ -443,7 +454,8 @@ > }; > > tcon1: lcd-controller@1c0d000 { > - compatible = "allwinner,sun7i-a20-tcon"; > + compatible = "allwinner,sun7i-a20-tcon1", > + "allwinner,sun7i-a20-tcon"; > reg = <0x01c0d000 0x1000>; > interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; > resets = <&ccu RST_TCON1>; > @@ -455,6 +467,7 @@ > "tcon-ch0", > "tcon-ch1"; > clock-output-names = "tcon1-pixel-clock"; > + #clock-cells = <0>; > dmas = <&dma SUN4I_DMA_DEDICATED 15>; > > ports { > @@ -586,13 +599,14 @@ > phy-names = "usb"; > extcon = <&usbphy 0>; > allwinner,sram = <&otg_sram 1>; > + dr_mode = "otg"; > status = "disabled"; > }; > > usbphy: phy@1c13400 { > #phy-cells = <1>; > compatible = "allwinner,sun7i-a20-usb-phy"; > - reg = <0x01c13400 0x10 0x01c14800 0x4 0x01c1c800 0x4>; > + reg = <0x01c13400 0x10>, <0x01c14800 0x4>, <0x01c1c800 > 0x4>; > reg-names = "phy_ctrl", "pmu1", "pmu2"; > clocks = <&ccu CLK_USB_PHY>; > clock-names = "usb_phy"; > @@ -716,6 +730,17 @@ > status = "disabled"; > }; > > + csi1: csi@1c1d000 { > + compatible = "allwinner,sun7i-a20-csi1", > + "allwinner,sun4i-a10-csi1"; > + reg = <0x01c1d000 0x1000>; > + interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&ccu CLK_AHB_CSI1>, <&ccu CLK_DRAM_CSI1>; > + clock-names = "bus", "ram"; > + resets = <&ccu RST_CSI1>; > + status = "disabled"; > + }; > + > spi3: spi@1c1f000 { > compatible = "allwinner,sun4i-a10-spi"; > reg = <0x01c1f000 0x1000>; > @@ -751,21 +776,70 @@ > #interrupt-cells = <3>; > #gpio-cells = <3>; > > + /omit-if-no-ref/ > + can_pa_pins: can-pa-pins { > + pins = "PA16", "PA17"; > + function = "can"; > + }; > + > + /omit-if-no-ref/ > can_ph_pins: can-ph-pins { > pins = "PH20", "PH21"; > function = "can"; > }; > > + /omit-if-no-ref/ > clk_out_a_pin: clk-out-a-pin { > pins = "PI12"; > function = "clk_out_a"; > }; > > + /omit-if-no-ref/ > clk_out_b_pin: clk-out-b-pin { > pins = "PI13"; > function = "clk_out_b"; > }; > > + /omit-if-no-ref/ > + csi0_8bits_pins: csi-8bits-pins { > + pins = "PE0", "PE2", "PE3", "PE4", "PE5", > + "PE6", "PE7", "PE8", "PE9", "PE10", > + "PE11"; > + function = "csi0"; > + }; > + > + /omit-if-no-ref/ > + csi0_clk_pin: csi-clk-pin { > + pins = "PE1"; > + function = "csi0"; > + }; > + > + /omit-if-no-ref/ > + csi1_8bits_pg_pins: csi1-8bits-pg-pins { > + pins = "PG0", "PG2", "PG3", "PG4", "PG5", > + "PG6", "PG7", "PG8", "PG9", "PG10", > + "PG11"; > + function = "csi1"; > + }; > + > + /omit-if-no-ref/ > + csi1_24bits_ph_pins: csi1-24bits-ph-pins { > + pins = "PH0", "PH1", "PH2", "PH3", "PH4", > + "PH5", "PH6", "PH7", "PH8", "PH9", > + "PH10", "PH11", "PH12", "PH13", "PH14", > + "PH15", "PH16", "PH17", "PH18", "PH19", > + "PH20", "PH21", "PH22", "PH23", "PH24", > + "PH25", "PH26", "PH27"; > + function = "csi1"; > + }; > + > + /omit-if-no-ref/ > + csi1_clk_pg_pin: csi1-clk-pg-pin { > + pins = "PG1"; > + function = "csi1"; > + }; > + > + /omit-if-no-ref/ > emac_pa_pins: emac-pa-pins { > pins = "PA0", "PA1", "PA2", > "PA3", "PA4", "PA5", "PA6", > @@ -775,6 +849,17 @@ > function = "emac"; > }; > > + /omit-if-no-ref/ > + emac_ph_pins: emac-ph-pins { > + pins = "PH8", "PH9", "PH10", "PH11", > + "PH14", "PH15", "PH16", "PH17", > + "PH18", "PH19", "PH20", "PH21", > + "PH22", "PH23", "PH24", "PH25", > + "PH26"; > + function = "emac"; > + }; > + > + /omit-if-no-ref/ > gmac_mii_pins: gmac-mii-pins { > pins = "PA0", "PA1", "PA2", > "PA3", "PA4", "PA5", "PA6", > @@ -784,6 +869,7 @@ > function = "gmac"; > }; > > + /omit-if-no-ref/ > gmac_rgmii_pins: gmac-rgmii-pins { > pins = "PA0", "PA1", "PA2", > "PA3", "PA4", "PA5", "PA6", > @@ -798,46 +884,69 @@ > drive-strength = <40>; > }; > > + /omit-if-no-ref/ > i2c0_pins: i2c0-pins { > pins = "PB0", "PB1"; > function = "i2c0"; > }; > > + /omit-if-no-ref/ > i2c1_pins: i2c1-pins { > pins = "PB18", "PB19"; > function = "i2c1"; > }; > > + /omit-if-no-ref/ > i2c2_pins: i2c2-pins { > pins = "PB20", "PB21"; > function = "i2c2"; > }; > > + /omit-if-no-ref/ > i2c3_pins: i2c3-pins { > pins = "PI0", "PI1"; > function = "i2c3"; > }; > > + /omit-if-no-ref/ > ir0_rx_pin: ir0-rx-pin { > pins = "PB4"; > function = "ir0"; > }; > > + /omit-if-no-ref/ > ir0_tx_pin: ir0-tx-pin { > pins = "PB3"; > function = "ir0"; > }; > > + /omit-if-no-ref/ > ir1_rx_pin: ir1-rx-pin { > pins = "PB23"; > function = "ir1"; > }; > > + /omit-if-no-ref/ > ir1_tx_pin: ir1-tx-pin { > pins = "PB22"; > function = "ir1"; > }; > > + /omit-if-no-ref/ > + lcd_lvds0_pins: lcd-lvds0-pins { > + pins = "PD0", "PD1", "PD2", "PD3", "PD4", > + "PD5", "PD6", "PD7", "PD8", "PD9"; > + function = "lvds0"; > + }; > + > + /omit-if-no-ref/ > + lcd_lvds1_pins: lcd-lvds1-pins { > + pins = "PD10", "PD11", "PD12", "PD13", "PD14", > + "PD15", "PD16", "PD17", "PD18", "PD19"; > + function = "lvds1"; > + }; > + > + /omit-if-no-ref/ > mmc0_pins: mmc0-pins { > pins = "PF0", "PF1", "PF2", > "PF3", "PF4", "PF5"; > @@ -846,6 +955,7 @@ > bias-pull-up; > }; > > + /omit-if-no-ref/ > mmc2_pins: mmc2-pins { > pins = "PC6", "PC7", "PC8", > "PC9", "PC10", "PC11"; > @@ -854,6 +964,7 @@ > bias-pull-up; > }; > > + /omit-if-no-ref/ > mmc3_pins: mmc3-pins { > pins = "PI4", "PI5", "PI6", > "PI7", "PI8", "PI9"; > @@ -862,127 +973,206 @@ > bias-pull-up; > }; > > + /omit-if-no-ref/ > ps2_0_pins: ps2-0-pins { > pins = "PI20", "PI21"; > function = "ps2"; > }; > > + /omit-if-no-ref/ > ps2_1_ph_pins: ps2-1-ph-pins { > pins = "PH12", "PH13"; > function = "ps2"; > }; > > + /omit-if-no-ref/ > pwm0_pin: pwm0-pin { > pins = "PB2"; > function = "pwm"; > }; > > + /omit-if-no-ref/ > pwm1_pin: pwm1-pin { > pins = "PI3"; > function = "pwm"; > }; > > + /omit-if-no-ref/ > spdif_tx_pin: spdif-tx-pin { > pins = "PB13"; > function = "spdif"; > bias-pull-up; > }; > > + /omit-if-no-ref/ > spi0_pi_pins: spi0-pi-pins { > pins = "PI11", "PI12", "PI13"; > function = "spi0"; > }; > > + /omit-if-no-ref/ > spi0_cs0_pi_pin: spi0-cs0-pi-pin { > pins = "PI10"; > function = "spi0"; > }; > > + /omit-if-no-ref/ > spi0_cs1_pi_pin: spi0-cs1-pi-pin { > pins = "PI14"; > function = "spi0"; > }; > > + /omit-if-no-ref/ > spi1_pi_pins: spi1-pi-pins { > pins = "PI17", "PI18", "PI19"; > function = "spi1"; > }; > > + /omit-if-no-ref/ > spi1_cs0_pi_pin: spi1-cs0-pi-pin { > pins = "PI16"; > function = "spi1"; > }; > > + /omit-if-no-ref/ > spi2_pb_pins: spi2-pb-pins { > pins = "PB15", "PB16", "PB17"; > function = "spi2"; > }; > > + /omit-if-no-ref/ > spi2_cs0_pb_pin: spi2-cs0-pb-pin { > pins = "PB14"; > function = "spi2"; > }; > > + /omit-if-no-ref/ > spi2_pc_pins: spi2-pc-pins { > pins = "PC20", "PC21", "PC22"; > function = "spi2"; > }; > > + /omit-if-no-ref/ > spi2_cs0_pc_pin: spi2-cs0-pc-pin { > pins = "PC19"; > function = "spi2"; > }; > > + /omit-if-no-ref/ > uart0_pb_pins: uart0-pb-pins { > pins = "PB22", "PB23"; > function = "uart0"; > }; > > + /omit-if-no-ref/ > + uart0_pf_pins: uart0-pf-pins { > + pins = "PF2", "PF4"; > + function = "uart0"; > + }; > + > + /omit-if-no-ref/ > + uart1_pa_pins: uart1-pa-pins { > + pins = "PA10", "PA11"; > + function = "uart1"; > + }; > + > + /omit-if-no-ref/ > + uart1_cts_rts_pa_pins: uart1-cts-rts-pa-pins { > + pins = "PA12", "PA13"; > + function = "uart1"; > + }; > + > + /omit-if-no-ref/ > + uart2_pa_pins: uart2-pa-pins { > + pins = "PA2", "PA3"; > + function = "uart2"; > + }; > + > + /omit-if-no-ref/ > + uart2_cts_rts_pa_pins: uart2-cts-rts-pa-pins { > + pins = "PA0", "PA1"; > + function = "uart2"; > + }; > + > + /omit-if-no-ref/ > uart2_pi_pins: uart2-pi-pins { > pins = "PI18", "PI19"; > function = "uart2"; > }; > > + /omit-if-no-ref/ > uart2_cts_rts_pi_pins: uart2-cts-rts-pi-pins { > pins = "PI16", "PI17"; > function = "uart2"; > }; > > + /omit-if-no-ref/ > uart3_pg_pins: uart3-pg-pins { > pins = "PG6", "PG7"; > function = "uart3"; > }; > > + /omit-if-no-ref/ > uart3_cts_rts_pg_pins: uart3-cts-rts-pg-pins { > pins = "PG8", "PG9"; > function = "uart3"; > }; > > + /omit-if-no-ref/ > uart3_ph_pins: uart3-ph-pins { > pins = "PH0", "PH1"; > function = "uart3"; > }; > > + /omit-if-no-ref/ > + uart3_cts_rts_ph_pins: uart3-cts-rts-ph-pins { > + pins = "PH2", "PH3"; > + function = "uart3"; > + }; > + > + /omit-if-no-ref/ > uart4_pg_pins: uart4-pg-pins { > pins = "PG10", "PG11"; > function = "uart4"; > }; > > + /omit-if-no-ref/ > uart4_ph_pins: uart4-ph-pins { > pins = "PH4", "PH5"; > function = "uart4"; > }; > > + /omit-if-no-ref/ > + uart5_ph_pins: uart5-ph-pins { > + pins = "PH6", "PH7"; > + function = "uart5"; > + }; > + > + /omit-if-no-ref/ > uart5_pi_pins: uart5-pi-pins { > pins = "PI10", "PI11"; > function = "uart5"; > }; > > + /omit-if-no-ref/ > + uart6_pa_pins: uart6-pa-pins { > + pins = "PA12", "PA13"; > + function = "uart6"; > + }; > + > + /omit-if-no-ref/ > uart6_pi_pins: uart6-pi-pins { > pins = "PI12", "PI13"; > function = "uart6"; > }; > > + /omit-if-no-ref/ > + uart7_pa_pins: uart7-pa-pins { > + pins = "PA14", "PA15"; > + function = "uart7"; > + }; > + > + /omit-if-no-ref/ > uart7_pi_pins: uart7-pi-pins { > pins = "PI20", "PI21"; > function = "uart7"; > @@ -1004,6 +1194,8 @@ > wdt: watchdog@1c20c90 { > compatible = "allwinner,sun4i-a10-wdt"; > reg = <0x01c20c90 0x10>; > + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&osc24M>; > }; > > rtc: rtc@1c20d00 { > @@ -1326,8 +1518,12 @@ > snps,fixed-burst; > snps,force_sf_dma_mode; > status = "disabled"; > - #address-cells = <1>; > - #size-cells = <0>; > + > + gmac_mdio: mdio { > + compatible = "snps,dwmac-mdio"; > + #address-cells = <1>; > + #size-cells = <0>; > + }; > }; > > hstimer@1c60000 { > @@ -1341,7 +1537,7 @@ > }; > > gic: interrupt-controller@1c81000 { > - compatible = "arm,gic-400", "arm,cortex-a7-gic", > "arm,cortex-a15-gic"; > + compatible = "arm,gic-400"; > reg = <0x01c81000 0x1000>, > <0x01c82000 0x2000>, > <0x01c84000 0x2000>,