123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305 |
- From 322bf103204b8f786547acbeed85569254e7088f Mon Sep 17 00:00:00 2001
- From: Andre Przywara <[email protected]>
- Date: Fri, 4 Aug 2023 18:08:54 +0100
- Subject: [PATCH] arm64: dts: allwinner: h616: Split Orange Pi Zero 2 DT
- The Orange Pi Zero 2 got a successor (Zero 3), which shares quite some
- DT nodes with the Zero 2, but comes with a different PMIC.
- Move the common parts (except the PMIC) into a new shared file, and
- include that from the existing board .dts file.
- No functional change, the generated DTB is the same, except for some
- phandle numbering differences.
- Signed-off-by: Andre Przywara <[email protected]>
- Acked-by: Jernej Skrabec <[email protected]>
- Link: https://lore.kernel.org/r/[email protected]
- Signed-off-by: Jernej Skrabec <[email protected]>
- ---
- .../allwinner/sun50i-h616-orangepi-zero.dtsi | 134 ++++++++++++++++++
- .../allwinner/sun50i-h616-orangepi-zero2.dts | 119 +---------------
- 2 files changed, 135 insertions(+), 118 deletions(-)
- create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
- --- /dev/null
- +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
- @@ -0,0 +1,134 @@
- +// SPDX-License-Identifier: (GPL-2.0+ or MIT)
- +/*
- + * Copyright (C) 2020 Arm Ltd.
- + *
- + * DT nodes common between Orange Pi Zero 2 and Orange Pi Zero 3.
- + * Excludes PMIC nodes and properties, since they are different between the two.
- + */
- +
- +#include "sun50i-h616.dtsi"
- +
- +#include <dt-bindings/gpio/gpio.h>
- +#include <dt-bindings/interrupt-controller/arm-gic.h>
- +#include <dt-bindings/leds/common.h>
- +
- +/ {
- + aliases {
- + ethernet0 = &emac0;
- + serial0 = &uart0;
- + };
- +
- + chosen {
- + stdout-path = "serial0:115200n8";
- + };
- +
- + leds {
- + compatible = "gpio-leds";
- +
- + led-0 {
- + function = LED_FUNCTION_POWER;
- + color = <LED_COLOR_ID_RED>;
- + gpios = <&pio 2 12 GPIO_ACTIVE_HIGH>; /* PC12 */
- + default-state = "on";
- + };
- +
- + led-1 {
- + function = LED_FUNCTION_STATUS;
- + color = <LED_COLOR_ID_GREEN>;
- + gpios = <&pio 2 13 GPIO_ACTIVE_HIGH>; /* PC13 */
- + };
- + };
- +
- + reg_vcc5v: vcc5v {
- + /* board wide 5V supply directly from the USB-C socket */
- + compatible = "regulator-fixed";
- + regulator-name = "vcc-5v";
- + regulator-min-microvolt = <5000000>;
- + regulator-max-microvolt = <5000000>;
- + regulator-always-on;
- + };
- +
- + reg_usb1_vbus: regulator-usb1-vbus {
- + compatible = "regulator-fixed";
- + regulator-name = "usb1-vbus";
- + regulator-min-microvolt = <5000000>;
- + regulator-max-microvolt = <5000000>;
- + vin-supply = <®_vcc5v>;
- + enable-active-high;
- + gpio = <&pio 2 16 GPIO_ACTIVE_HIGH>; /* PC16 */
- + };
- +};
- +
- +&ehci1 {
- + status = "okay";
- +};
- +
- +/* USB 2 & 3 are on headers only. */
- +
- +&emac0 {
- + pinctrl-names = "default";
- + pinctrl-0 = <&ext_rgmii_pins>;
- + phy-mode = "rgmii";
- + phy-handle = <&ext_rgmii_phy>;
- + allwinner,rx-delay-ps = <3100>;
- + allwinner,tx-delay-ps = <700>;
- + status = "okay";
- +};
- +
- +&mdio0 {
- + ext_rgmii_phy: ethernet-phy@1 {
- + compatible = "ethernet-phy-ieee802.3-c22";
- + reg = <1>;
- + };
- +};
- +
- +&mmc0 {
- + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
- + bus-width = <4>;
- + status = "okay";
- +};
- +
- +&ohci1 {
- + status = "okay";
- +};
- +
- +&spi0 {
- + status = "okay";
- + pinctrl-names = "default";
- + pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>;
- +
- + flash@0 {
- + #address-cells = <1>;
- + #size-cells = <1>;
- + compatible = "jedec,spi-nor";
- + reg = <0>;
- + spi-max-frequency = <40000000>;
- + };
- +};
- +
- +&uart0 {
- + pinctrl-names = "default";
- + pinctrl-0 = <&uart0_ph_pins>;
- + status = "okay";
- +};
- +
- +&usbotg {
- + /*
- + * PHY0 pins are connected to a USB-C socket, but a role switch
- + * is not implemented: both CC pins are pulled to GND.
- + * The VBUS pins power the device, so a fixed peripheral mode
- + * is the best choice.
- + * The board can be powered via GPIOs, in this case port0 *can*
- + * act as a host (with a cable/adapter ignoring CC), as VBUS is
- + * then provided by the GPIOs. Any user of this setup would
- + * need to adjust the DT accordingly: dr_mode set to "host",
- + * enabling OHCI0 and EHCI0.
- + */
- + dr_mode = "peripheral";
- + status = "okay";
- +};
- +
- +&usbphy {
- + usb1_vbus-supply = <®_usb1_vbus>;
- + status = "okay";
- +};
- --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
- +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
- @@ -5,95 +5,19 @@
-
- /dts-v1/;
-
- -#include "sun50i-h616.dtsi"
- -
- -#include <dt-bindings/gpio/gpio.h>
- -#include <dt-bindings/interrupt-controller/arm-gic.h>
- -#include <dt-bindings/leds/common.h>
- +#include "sun50i-h616-orangepi-zero.dtsi"
-
- / {
- model = "OrangePi Zero2";
- compatible = "xunlong,orangepi-zero2", "allwinner,sun50i-h616";
- -
- - aliases {
- - ethernet0 = &emac0;
- - serial0 = &uart0;
- - };
- -
- - chosen {
- - stdout-path = "serial0:115200n8";
- - };
- -
- - leds {
- - compatible = "gpio-leds";
- -
- - led-0 {
- - function = LED_FUNCTION_POWER;
- - color = <LED_COLOR_ID_RED>;
- - gpios = <&pio 2 12 GPIO_ACTIVE_HIGH>; /* PC12 */
- - default-state = "on";
- - };
- -
- - led-1 {
- - function = LED_FUNCTION_STATUS;
- - color = <LED_COLOR_ID_GREEN>;
- - gpios = <&pio 2 13 GPIO_ACTIVE_HIGH>; /* PC13 */
- - };
- - };
- -
- - reg_vcc5v: vcc5v {
- - /* board wide 5V supply directly from the USB-C socket */
- - compatible = "regulator-fixed";
- - regulator-name = "vcc-5v";
- - regulator-min-microvolt = <5000000>;
- - regulator-max-microvolt = <5000000>;
- - regulator-always-on;
- - };
- -
- - reg_usb1_vbus: regulator-usb1-vbus {
- - compatible = "regulator-fixed";
- - regulator-name = "usb1-vbus";
- - regulator-min-microvolt = <5000000>;
- - regulator-max-microvolt = <5000000>;
- - vin-supply = <®_vcc5v>;
- - enable-active-high;
- - gpio = <&pio 2 16 GPIO_ACTIVE_HIGH>; /* PC16 */
- - };
- -};
- -
- -&ehci1 {
- - status = "okay";
- };
-
- -/* USB 2 & 3 are on headers only. */
- -
- &emac0 {
- - pinctrl-names = "default";
- - pinctrl-0 = <&ext_rgmii_pins>;
- - phy-mode = "rgmii";
- - phy-handle = <&ext_rgmii_phy>;
- phy-supply = <®_dcdce>;
- - allwinner,rx-delay-ps = <3100>;
- - allwinner,tx-delay-ps = <700>;
- - status = "okay";
- -};
- -
- -&mdio0 {
- - ext_rgmii_phy: ethernet-phy@1 {
- - compatible = "ethernet-phy-ieee802.3-c22";
- - reg = <1>;
- - };
- };
-
- &mmc0 {
- vmmc-supply = <®_dcdce>;
- - cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
- - bus-width = <4>;
- - status = "okay";
- -};
- -
- -&ohci1 {
- - status = "okay";
- };
-
- &r_rsb {
- @@ -211,44 +135,3 @@
- vcc-ph-supply = <®_aldo1>;
- vcc-pi-supply = <®_aldo1>;
- };
- -
- -&spi0 {
- - status = "okay";
- - pinctrl-names = "default";
- - pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>;
- -
- - flash@0 {
- - #address-cells = <1>;
- - #size-cells = <1>;
- - compatible = "jedec,spi-nor";
- - reg = <0>;
- - spi-max-frequency = <40000000>;
- - };
- -};
- -
- -&uart0 {
- - pinctrl-names = "default";
- - pinctrl-0 = <&uart0_ph_pins>;
- - status = "okay";
- -};
- -
- -&usbotg {
- - /*
- - * PHY0 pins are connected to a USB-C socket, but a role switch
- - * is not implemented: both CC pins are pulled to GND.
- - * The VBUS pins power the device, so a fixed peripheral mode
- - * is the best choice.
- - * The board can be powered via GPIOs, in this case port0 *can*
- - * act as a host (with a cable/adapter ignoring CC), as VBUS is
- - * then provided by the GPIOs. Any user of this setup would
- - * need to adjust the DT accordingly: dr_mode set to "host",
- - * enabling OHCI0 and EHCI0.
- - */
- - dr_mode = "peripheral";
- - status = "okay";
- -};
- -
- -&usbphy {
- - usb1_vbus-supply = <®_usb1_vbus>;
- - status = "okay";
- -};
|