
On Wed, 27 Apr 2022 15:31:23 -0500 Samuel Holland samuel@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 samuel@sholland.org
Reviewed-by: Andre Przywara andre.przywara@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 conleylee@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.spranger@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 stefan@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 ats@offog.org
- Copyright 2015-2020 Adam Sampson ats@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>,