Skip to contentSkip to conversation

kirkwood: device tree support

PATCH New Chris Packham 4 participants 18 messages May 8, 2018 – May 16, 2018 2 messages not in the archive Arm (32-bit)

lore
Share & tools
lore
#0 lore raw

cover kirkwood: device tree support

This is an initial series to bring in the device tree files for kirkwood boards from Linux. All the patches are fairly mechanical matching up the device trees based on the defconfig name (and some educated guesses in a few places).

Chris Packham (12):
ARM: add devicetree files for kirkwood SoC
ARM: kirkwood: Add device-tree for dns325
ARM: kirkwood: Add device-tree for dockstar
ARM: kirkwood: Add device-tree for goflexhome
ARM: kirkwood: Add device-tree for guruplug
ARM: kirkwood: Add device-tree for ib62x0
ARM: kirkwood: Add device-tree for iconnect
ARM: kirkwood: Add device-tree for nas220
ARM: kirkwood: Add device-tree for nsa310s
ARM: kirkwood: Add device-tree for openrd
ARM: kirkwood: Add device-tree for pogo_e02
ARM: kirkwood: Add device-tree for sheevaplug

 arch/arm/dts/kirkwood-6192.dtsi               |  88 ++++
 arch/arm/dts/kirkwood-6281.dtsi               |  90 ++++
 arch/arm/dts/kirkwood-98dx4122.dtsi           |  53 +++
 arch/arm/dts/kirkwood-blackarmor-nas220.dts   | 172 ++++++++
 arch/arm/dts/kirkwood-dns325.dts              |  63 +++
 arch/arm/dts/kirkwood-dnskw.dtsi              | 235 +++++++++++
 arch/arm/dts/kirkwood-dockstar.dts            | 110 +++++
 arch/arm/dts/kirkwood-goflexnet.dts           | 190 +++++++++
 .../arm/dts/kirkwood-guruplug-server-plus.dts | 133 ++++++
 arch/arm/dts/kirkwood-ib62x0.dts              | 146 +++++++
 arch/arm/dts/kirkwood-iconnect.dts            | 195 +++++++++
 arch/arm/dts/kirkwood-nsa310.dts              | 139 +++++++
 arch/arm/dts/kirkwood-nsa3x0-common.dtsi      | 158 +++++++
 arch/arm/dts/kirkwood-openrd-base.dts         |  39 ++
 arch/arm/dts/kirkwood-openrd-client.dts       |  73 ++++
 arch/arm/dts/kirkwood-openrd-ultimate.dts     |  55 +++
 arch/arm/dts/kirkwood-openrd.dtsi             | 122 ++++++
 arch/arm/dts/kirkwood-pogo_e02.dts            | 132 ++++++
 arch/arm/dts/kirkwood-sheevaplug-common.dtsi  | 104 +++++
 arch/arm/dts/kirkwood-sheevaplug.dts          |  42 ++
 arch/arm/dts/kirkwood.dtsi                    | 393 ++++++++++++++++++
 configs/dns325_defconfig                      |   3 +-
 configs/dockstar_defconfig                    |   3 +-
 configs/goflexhome_defconfig                  |   3 +-
 configs/guruplug_defconfig                    |   3 +-
 configs/ib62x0_defconfig                      |   3 +-
 configs/iconnect_defconfig                    |   3 +-
 configs/nas220_defconfig                      |   3 +-
 configs/nsa310s_defconfig                     |   3 +-
 configs/openrd_base_defconfig                 |   3 +-
 configs/openrd_client_defconfig               |   3 +-
 configs/openrd_ultimate_defconfig             |   3 +-
 configs/pogo_e02_defconfig                    |   3 +-
 configs/sheevaplug_defconfig                  |   3 +-
 34 files changed, 2758 insertions(+), 13 deletions(-)
 create mode 100644 arch/arm/dts/kirkwood-6192.dtsi
 create mode 100644 arch/arm/dts/kirkwood-6281.dtsi
 create mode 100644 arch/arm/dts/kirkwood-98dx4122.dtsi
 create mode 100644 arch/arm/dts/kirkwood-blackarmor-nas220.dts
 create mode 100644 arch/arm/dts/kirkwood-dns325.dts
 create mode 100644 arch/arm/dts/kirkwood-dnskw.dtsi
 create mode 100644 arch/arm/dts/kirkwood-dockstar.dts
 create mode 100644 arch/arm/dts/kirkwood-goflexnet.dts
 create mode 100644 arch/arm/dts/kirkwood-guruplug-server-plus.dts
 create mode 100644 arch/arm/dts/kirkwood-ib62x0.dts
 create mode 100644 arch/arm/dts/kirkwood-iconnect.dts
 create mode 100644 arch/arm/dts/kirkwood-nsa310.dts
 create mode 100644 arch/arm/dts/kirkwood-nsa3x0-common.dtsi
 create mode 100644 arch/arm/dts/kirkwood-openrd-base.dts
 create mode 100644 arch/arm/dts/kirkwood-openrd-client.dts
 create mode 100644 arch/arm/dts/kirkwood-openrd-ultimate.dts
 create mode 100644 arch/arm/dts/kirkwood-openrd.dtsi
 create mode 100644 arch/arm/dts/kirkwood-pogo_e02.dts
 create mode 100644 arch/arm/dts/kirkwood-sheevaplug-common.dtsi
 create mode 100644 arch/arm/dts/kirkwood-sheevaplug.dts
 create mode 100644 arch/arm/dts/kirkwood.dtsi
Signature · 1 line
2.17.0
#1 lore raw

PATCH 1/12 ARM: add devicetree files for kirkwood SoC

These files are taken verbatim from the Linux kernel 4.17

---

 arch/arm/dts/kirkwood-6192.dtsi     |  88 +++++++
 arch/arm/dts/kirkwood-6281.dtsi     |  90 +++++++
 arch/arm/dts/kirkwood-98dx4122.dtsi |  53 ++++
 arch/arm/dts/kirkwood.dtsi          | 393 ++++++++++++++++++++++++++++
 4 files changed, 624 insertions(+)
 create mode 100644 arch/arm/dts/kirkwood-6192.dtsi
 create mode 100644 arch/arm/dts/kirkwood-6281.dtsi
 create mode 100644 arch/arm/dts/kirkwood-98dx4122.dtsi
 create mode 100644 arch/arm/dts/kirkwood.dtsi
arch/arm/dts/kirkwood-6192.dtsi new file +88 -0
new file mode 100644
index 000000000000..396bcba08adb
@@ -0,0 +1,88 @@
+// SPDX-License-Identifier: GPL-2.0
+/ {
+	mbus at f1000000 {
+		pciec: pcie at 82000000 {
+			compatible = "marvell,kirkwood-pcie";
+			status = "disabled";
+			device_type = "pci";
+
+			#address-cells = <3>;
+			#size-cells = <2>;
+
+			bus-range = <0x00 0xff>;
+
+			ranges =
+			       <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000
+				0x82000000 0x1 0     MBUS_ID(0x04, 0xe8) 0       1 0 /* Port 0.0 MEM */
+				0x81000000 0x1 0     MBUS_ID(0x04, 0xe0) 0       1 0 /* Port 0.0 IO  */>;
+
+			pcie0: pcie at 1,0 {
+				device_type = "pci";
+				assigned-addresses = <0x82000800 0 0x00040000 0 0x2000>;
+				reg = <0x0800 0 0 0 0>;
+				#address-cells = <3>;
+				#size-cells = <2>;
+				#interrupt-cells = <1>;
+				ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
+					  0x81000000 0 0 0x81000000 0x1 0 1 0>;
+				bus-range = <0x00 0xff>;
+				interrupt-map-mask = <0 0 0 0>;
+				interrupt-map = <0 0 0 0 &intc 9>;
+				marvell,pcie-port = <0>;
+				marvell,pcie-lane = <0>;
+				clocks = <&gate_clk 2>;
+				status = "disabled";
+			};
+		};
+	};
+
+	ocp at f1000000 {
+		pinctrl: pin-controller at 10000 {
+			compatible = "marvell,88f6192-pinctrl";
+
+			pmx_sata0: pmx-sata0 {
+				marvell,pins = "mpp5", "mpp21", "mpp23";
+				marvell,function = "sata0";
+			};
+			pmx_sata1: pmx-sata1 {
+				marvell,pins = "mpp4", "mpp20", "mpp22";
+				marvell,function = "sata1";
+			};
+			pmx_sdio: pmx-sdio {
+				marvell,pins = "mpp12", "mpp13", "mpp14",
+					       "mpp15", "mpp16", "mpp17";
+				marvell,function = "sdio";
+			};
+		};
+
+		rtc: rtc at 10300 {
+			compatible = "marvell,kirkwood-rtc", "marvell,orion-rtc";
+			reg = <0x10300 0x20>;
+			interrupts = <53>;
+			clocks = <&gate_clk 7>;
+		};
+
+		sata: sata at 80000 {
+			compatible = "marvell,orion-sata";
+			reg = <0x80000 0x5000>;
+			interrupts = <21>;
+			clocks = <&gate_clk 14>, <&gate_clk 15>;
+			clock-names = "0", "1";
+			phys = <&sata_phy0>, <&sata_phy1>;
+			phy-names = "port0", "port1";
+			status = "disabled";
+		};
+
+		sdio: mvsdio at 90000 {
+			compatible = "marvell,orion-sdio";
+			reg = <0x90000 0x200>;
+			interrupts = <28>;
+			clocks = <&gate_clk 4>;
+			bus-width = <4>;
+			cap-sdio-irq;
+			cap-sd-highspeed;
+			cap-mmc-highspeed;
+			status = "disabled";
+		};
+	};
+};
arch/arm/dts/kirkwood-6281.dtsi new file +90 -0

90 lines not on this page · raw message

arch/arm/dts/kirkwood-98dx4122.dtsi new file +53 -0

53 lines not on this page · raw message

arch/arm/dts/kirkwood.dtsi new file +393 -0

393 lines not on this page · raw message

Signature · 1 line
2.17.0
#2 lore raw

PATCH 2/12 ARM: kirkwood: Add device-tree for dns325

In reply to Chris Packham

Import the dts files from Linux 4.17 and enable CONFIG_OF_CONTROL.

---

 arch/arm/dts/kirkwood-dns325.dts |  63 +++++++++
 arch/arm/dts/kirkwood-dnskw.dtsi | 235 +++++++++++++++++++++++++++++++
 configs/dns325_defconfig         |   3 +-
 3 files changed, 300 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/kirkwood-dns325.dts
 create mode 100644 arch/arm/dts/kirkwood-dnskw.dtsi
arch/arm/dts/kirkwood-dns325.dts new file +63 -0
new file mode 100644
index 000000000000..94d9c06cbbf5
@@ -0,0 +1,63 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "kirkwood-dnskw.dtsi"
+
+/ {
+	model = "D-Link DNS-325 NAS (Rev A1)";
+	compatible = "dlink,dns-325-a1", "dlink,dns-325", "dlink,dns-kirkwood", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x10000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 earlyprintk";
+		stdout-path = &uart0;
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		pinctrl-0 = <&pmx_led_power &pmx_led_red_usb_325
+			     &pmx_led_red_left_hdd &pmx_led_red_right_hdd
+			     &pmx_led_white_usb>;
+		pinctrl-names = "default";
+
+		white-power {
+			label = "dns325:white:power";
+			gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
+			default-state = "keep";
+		};
+		white-usb {
+			label = "dns325:white:usb";
+			gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; /* GPIO 43 */
+		};
+		red-l_hdd {
+			label = "dns325:red:l_hdd";
+			gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
+		};
+		red-r_hdd {
+			label = "dns325:red:r_hdd";
+			gpios = <&gpio0 27 GPIO_ACTIVE_LOW>;
+		};
+		red-usb {
+			label = "dns325:red:usb";
+			gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	ocp at f1000000 {
+		i2c at 11000 {
+			status = "okay";
+
+			lm75: lm75 at 48 {
+				compatible = "national,lm75";
+				reg = <0x48>;
+			};
+		};
+		serial at 12000 {
+			status = "okay";
+		};
+	};
+};
arch/arm/dts/kirkwood-dnskw.dtsi new file +235 -0

235 lines not on this page · raw message

configs/dns325_defconfig +2 -1
index c46e2b447463..e010c4a42910 100644
@@ -3,6 +3,7 @@ CONFIG_KIRKWOOD=y
 CONFIG_SYS_TEXT_BASE=0x600000
 CONFIG_TARGET_DNS325=y
 CONFIG_IDENT_STRING="\nD-Link DNS-325"
+CONFIG_DEFAULT_DEVICE_TREE="kirkwood-dns325"
 CONFIG_BOOTDELAY=3
 CONFIG_CONSOLE_MUX=y
 # CONFIG_DISPLAY_BOARDINFO is not set
@@ -23,6 +24,7 @@ CONFIG_MTDIDS_DEFAULT="nand0=orion_nand"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=orion_nand:896k(u-boot),128k(u-boot-env),5m(kernel),-(rootfs)"
 CONFIG_CMD_UBI=y
 CONFIG_ISO_PARTITION=y
+CONFIG_OF_CONTROL=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_MVSATA_IDE=y
 # CONFIG_MMC is not set
@@ -30,4 +32,3 @@ CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
-CONFIG_OF_LIBFDT=y
Signature · 1 line
2.17.0
#3 lore raw

PATCH 3/12 ARM: kirkwood: Add device-tree for dockstar

In reply to Chris Packham

Import the dts files from Linux 4.17 and enable CONFIG_OF_CONTROL.

---

 arch/arm/dts/kirkwood-dockstar.dts | 110 +++++++++++++++++++++++++++++
 configs/dockstar_defconfig         |   3 +-
 2 files changed, 112 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/kirkwood-dockstar.dts
arch/arm/dts/kirkwood-dockstar.dts new file +110 -0
new file mode 100644
index 000000000000..6a3f1bf6d9f1
@@ -0,0 +1,110 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+
+/ {
+	model = "Seagate FreeAgent Dockstar";
+	compatible = "seagate,dockstar", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/sda1 rootdelay=10";
+		stdout-path = &uart0;
+	};
+
+	ocp at f1000000 {
+		pinctrl: pin-controller at 10000 {
+			pmx_usb_power_enable: pmx-usb-power-enable {
+				marvell,pins = "mpp29";
+				marvell,function = "gpio";
+			};
+			pmx_led_green: pmx-led-green {
+				marvell,pins = "mpp46";
+				marvell,function = "gpio";
+			};
+			pmx_led_orange: pmx-led-orange {
+				marvell,pins = "mpp47";
+				marvell,function = "gpio";
+			};
+		};
+		serial at 12000 {
+			status = "ok";
+		};
+	};
+	gpio-leds {
+		compatible = "gpio-leds";
+		pinctrl-0 = <&pmx_led_green &pmx_led_orange>;
+		pinctrl-names = "default";
+
+		health {
+			label = "status:green:health";
+			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
+			default-state = "keep";
+		};
+		fault {
+			label = "status:orange:fault";
+			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+		};
+	};
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = <&pmx_usb_power_enable>;
+		pinctrl-names = "default";
+
+		usb_power: regulator at 1 {
+			compatible = "regulator-fixed";
+			reg = <1>;
+			regulator-name = "USB Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 29 0>;
+		};
+	};
+};
+
+&nand {
+	status = "okay";
+
+	partition at 0 {
+		label = "u-boot";
+		reg = <0x0000000 0x100000>;
+		read-only;
+	};
+
+	partition at 100000 {
+		label = "uImage";
+		reg = <0x0100000 0x400000>;
+	};
+
+	partition at 500000 {
+		label = "data";
+		reg = <0x0500000 0xfb00000>;
+	};
+};
+
+&mdio {
+	status = "okay";
+
+	ethphy0: ethernet-phy at 0 {
+		compatible = "marvell,88e1116";
+		reg = <0>;
+	};
+};
+
+&eth0 {
+	status = "okay";
+	ethernet0-port at 0 {
+		phy-handle = <&ethphy0>;
+	};
+};
configs/dockstar_defconfig +2 -1
index 88d6f596b27a..7ad184f2eb20 100644
@@ -3,6 +3,7 @@ CONFIG_KIRKWOOD=y
 CONFIG_SYS_TEXT_BASE=0x600000
 CONFIG_TARGET_DOCKSTAR=y
 CONFIG_IDENT_STRING="\nSeagate FreeAgent DockStar"
+CONFIG_DEFAULT_DEVICE_TREE="kirkwood-dockstar"
 CONFIG_BOOTDELAY=3
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_SYS_PROMPT="DockStar> "
@@ -19,10 +20,10 @@ CONFIG_CMD_JFFS2=y
 CONFIG_MTDPARTS_DEFAULT="mtdparts=orion_nand:1m(uboot),-(root)"
 CONFIG_CMD_UBI=y
 CONFIG_ISO_PARTITION=y
+CONFIG_OF_CONTROL=y
 CONFIG_ENV_IS_IN_NAND=y
 # CONFIG_MMC is not set
 CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
-CONFIG_OF_LIBFDT=y
Signature · 1 line
2.17.0
#4 lore raw

PATCH 4/12 ARM: kirkwood: Add device-tree for goflexhome

In reply to Chris Packham

Import the dts files from Linux 4.17 and enable CONFIG_OF_CONTROL.

---

 arch/arm/dts/kirkwood-goflexnet.dts | 190 ++++++++++++++++++++++++++++
 configs/goflexhome_defconfig        |   3 +-
 2 files changed, 192 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/kirkwood-goflexnet.dts
arch/arm/dts/kirkwood-goflexnet.dts new file +190 -0
new file mode 100644
index 000000000000..02d87e0a1061
@@ -0,0 +1,190 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+
+/ {
+	model = "Seagate GoFlex Net";
+	compatible = "seagate,goflexnet", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/sda1 rootdelay=10";
+		stdout-path = &uart0;
+	};
+
+	ocp at f1000000 {
+		pinctrl: pin-controller at 10000 {
+			pmx_usb_power_enable: pmx-usb-power-enable {
+				marvell,pins = "mpp29";
+				marvell,function = "gpio";
+			};
+			pmx_led_right_cap_0: pmx-led_right_cap_0 {
+				marvell,pins = "mpp38";
+				marvell,function = "gpio";
+			};
+			pmx_led_right_cap_1: pmx-led_right_cap_1 {
+				marvell,pins = "mpp39";
+				marvell,function = "gpio";
+			};
+			pmx_led_right_cap_2: pmx-led_right_cap_2 {
+				marvell,pins = "mpp40";
+				marvell,function = "gpio";
+			};
+			pmx_led_right_cap_3: pmx-led_right_cap_3 {
+				marvell,pins = "mpp41";
+				marvell,function = "gpio";
+			};
+			pmx_led_left_cap_0: pmx-led_left_cap_0 {
+				marvell,pins = "mpp42";
+				marvell,function = "gpio";
+			};
+			pmx_led_left_cap_1: pmx-led_left_cap_1 {
+				marvell,pins = "mpp43";
+				marvell,function = "gpio";
+			};
+			pmx_led_left_cap_2: pmx-led_left_cap_2 {
+				marvell,pins = "mpp44";
+				marvell,function = "gpio";
+			};
+			pmx_led_left_cap_3: pmx-led_left_cap_3 {
+				marvell,pins = "mpp45";
+				marvell,function = "gpio";
+			};
+			pmx_led_green: pmx-led_green {
+				marvell,pins = "mpp46";
+				marvell,function = "gpio";
+			};
+			pmx_led_orange: pmx-led_orange {
+				marvell,pins = "mpp47";
+				marvell,function = "gpio";
+			};
+		};
+		serial at 12000 {
+			status = "ok";
+		};
+
+		sata at 80000 {
+			status = "okay";
+			nr-ports = <2>;
+		};
+
+	};
+	gpio-leds {
+		compatible = "gpio-leds";
+		pinctrl-0 = < &pmx_led_orange
+			      &pmx_led_left_cap_0 &pmx_led_left_cap_1
+			      &pmx_led_left_cap_2 &pmx_led_left_cap_3
+			      &pmx_led_right_cap_0 &pmx_led_right_cap_1
+			      &pmx_led_right_cap_2 &pmx_led_right_cap_3
+			    >;
+		pinctrl-names = "default";
+
+		health {
+			label = "status:green:health";
+			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
+			default-state = "keep";
+		};
+		fault {
+			label = "status:orange:fault";
+			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+		};
+		left0 {
+			label = "status:white:left0";
+			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+		};
+		left1 {
+			label = "status:white:left1";
+			gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
+		};
+		left2 {
+			label = "status:white:left2";
+			gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
+		};
+		left3 {
+			label = "status:white:left3";
+			gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
+		};
+		right0 {
+			label = "status:white:right0";
+			gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+		};
+		right1 {
+			label = "status:white:right1";
+			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+		};
+		right2 {
+			label = "status:white:right2";
+			gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+		};
+		right3 {
+			label = "status:white:right3";
+			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+		};
+	};
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = <&pmx_usb_power_enable>;
+		pinctrl-names = "default";
+
+		usb_power: regulator at 1 {
+			compatible = "regulator-fixed";
+			reg = <1>;
+			regulator-name = "USB Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
+		};
+	};
+};
+
+&nand {
+	chip-delay = <40>;
+	status = "okay";
+
+	partition at 0 {
+		label = "u-boot";
+		reg = <0x0000000 0x100000>;
+		read-only;
+	};
+
+	partition at 100000 {
+		label = "uImage";
+		reg = <0x0100000 0x400000>;
+	};
+
+	partition at 500000 {
+		label = "pogoplug";
+		reg = <0x0500000 0x2000000>;
+	};
+
+	partition at 2500000 {
+		label = "root";
+		reg = <0x02500000 0xd800000>;
+	};
+};
+
+&mdio {
+	status = "okay";
+
+	ethphy0: ethernet-phy at 0 {
+		reg = <0>;
+	};
+};
+
+&eth0 {
+	status = "okay";
+	ethernet0-port at 0 {
+		phy-handle = <&ethphy0>;
+	};
+};
configs/goflexhome_defconfig +2 -1
index d87d308ac097..7f85c4fa17bb 100644
@@ -3,6 +3,7 @@ CONFIG_KIRKWOOD=y
 CONFIG_SYS_TEXT_BASE=0x600000
 CONFIG_TARGET_GOFLEXHOME=y
 CONFIG_IDENT_STRING="\nSeagate GoFlex Home"
+CONFIG_DEFAULT_DEVICE_TREE="kirkwood-goflexnet"
 CONFIG_BOOTDELAY=3
 CONFIG_CONSOLE_MUX=y
 # CONFIG_DISPLAY_BOARDINFO is not set
@@ -24,6 +25,7 @@ CONFIG_MTDIDS_DEFAULT="nand0=orion_nand"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=orion_nand:1m(uboot),6M(uImage),-(root)"
 CONFIG_CMD_UBI=y
 CONFIG_ISO_PARTITION=y
+CONFIG_OF_CONTROL=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_MVSATA_IDE=y
 # CONFIG_MMC is not set
@@ -31,4 +33,3 @@ CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
-CONFIG_OF_LIBFDT=y
Signature · 1 line
2.17.0
#5 lore raw

PATCH 5/12 ARM: kirkwood: Add device-tree for guruplug

In reply to Chris Packham

Import the dts files from Linux 4.17 and enable CONFIG_OF_CONTROL.

---

 .../arm/dts/kirkwood-guruplug-server-plus.dts | 133 ++++++++++++++++++
 configs/guruplug_defconfig                    |   3 +-
 2 files changed, 135 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/kirkwood-guruplug-server-plus.dts
arch/arm/dts/kirkwood-guruplug-server-plus.dts new file +133 -0
new file mode 100644
index 000000000000..ff1260ee3fe8
@@ -0,0 +1,133 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+
+/ {
+	model = "Globalscale Technologies Guruplug Server Plus";
+	compatible = "globalscale,guruplug-server-plus", "globalscale,guruplug", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x20000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 earlyprintk";
+		stdout-path = &uart0;
+	};
+
+	ocp at f1000000 {
+		pinctrl: pin-controller at 10000 {
+			pmx_led_health_r: pmx-led-health-r {
+				marvell,pins = "mpp46";
+				marvell,function = "gpio";
+			};
+			pmx_led_health_g: pmx-led-health-g {
+				marvell,pins = "mpp47";
+				marvell,function = "gpio";
+			};
+			pmx_led_wmode_r: pmx-led-wmode-r {
+				marvell,pins = "mpp48";
+				marvell,function = "gpio";
+			};
+			pmx_led_wmode_g: pmx-led-wmode-g {
+				marvell,pins = "mpp49";
+				marvell,function = "gpio";
+			};
+		};
+		serial at 12000 {
+			status = "ok";
+		};
+
+		sata at 80000 {
+			status = "okay";
+			nr-ports = <1>;
+		};
+
+		/* AzureWave AW-GH381 WiFi/BT */
+		mvsdio at 90000 {
+			status = "okay";
+			non-removable;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		pinctrl-0 = < &pmx_led_health_r &pmx_led_health_g
+			      &pmx_led_wmode_r &pmx_led_wmode_g >;
+		pinctrl-names = "default";
+
+		health-r {
+			label = "guruplug:red:health";
+			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
+		};
+		health-g {
+			label = "guruplug:green:health";
+			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+		};
+		wmode-r {
+			label = "guruplug:red:wmode";
+			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
+		};
+		wmode-g {
+			label = "guruplug:green:wmode";
+			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+&nand {
+	status = "okay";
+
+	partition at 0 {
+		label = "u-boot";
+		reg = <0x00000000 0x00100000>;
+		read-only;
+	};
+
+	partition at 100000 {
+		label = "uImage";
+		reg = <0x00100000 0x00400000>;
+	};
+
+	partition at 500000 {
+		label = "data";
+		reg = <0x00500000 0x1fb00000>;
+	};
+};
+
+&mdio {
+	status = "okay";
+
+	ethphy0: ethernet-phy at 0 {
+		/* Marvell 88E1121R */
+		compatible = "ethernet-phy-id0141.0cb0",
+		             "ethernet-phy-ieee802.3-c22";
+		reg = <0>;
+	};
+
+	ethphy1: ethernet-phy at 1 {
+		/* Marvell 88E1121R */
+		compatible = "ethernet-phy-id0141.0cb0",
+		             "ethernet-phy-ieee802.3-c22";
+		reg = <1>;
+	};
+};
+
+&eth0 {
+	status = "okay";
+	ethernet0-port at 0 {
+		phy-handle = <&ethphy0>;
+		phy-connection-type = "rgmii-id";
+	};
+};
+
+&eth1 {
+	status = "okay";
+	ethernet1-port at 0 {
+		phy-handle = <&ethphy1>;
+		phy-connection-type = "rgmii-id";
+	};
+};
configs/guruplug_defconfig +2 -1
index c4889910687f..66c34fcc34bc 100644
@@ -3,6 +3,7 @@ CONFIG_KIRKWOOD=y
 CONFIG_SYS_TEXT_BASE=0x600000
 CONFIG_TARGET_GURUPLUG=y
 CONFIG_IDENT_STRING="\nMarvell-GuruPlug"
+CONFIG_DEFAULT_DEVICE_TREE="kirkwood-guruplug-server-plus"
 CONFIG_BOOTDELAY=3
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_HUSH_PARSER=y
@@ -24,6 +25,7 @@ CONFIG_MTDIDS_DEFAULT="nand0=orion_nand"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=orion_nand:896K(uboot),128K(uboot_env),- at 1M(root)"
 CONFIG_CMD_UBI=y
 CONFIG_ISO_PARTITION=y
+CONFIG_OF_CONTROL=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_MVSATA_IDE=y
 # CONFIG_MMC is not set
@@ -32,4 +34,3 @@ CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_LZMA=y
-CONFIG_OF_LIBFDT=y
Signature · 1 line
2.17.0
#6 lore raw

PATCH 6/12 ARM: kirkwood: Add device-tree for ib62x0

In reply to Chris Packham

Import the dts files from Linux 4.17 and enable CONFIG_OF_CONTROL.

---

 arch/arm/dts/kirkwood-ib62x0.dts | 146 +++++++++++++++++++++++++++++++
 configs/ib62x0_defconfig         |   3 +-
 2 files changed, 148 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/kirkwood-ib62x0.dts
arch/arm/dts/kirkwood-ib62x0.dts new file +146 -0
new file mode 100644
index 000000000000..962a910a6f5c
@@ -0,0 +1,146 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+
+/ {
+	model = "RaidSonic ICY BOX IB-NAS62x0 (Rev B)";
+	compatible = "raidsonic,ib-nas6210-b", "raidsonic,ib-nas6220-b", "raidsonic,ib-nas6210", "raidsonic,ib-nas6220", "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x10000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 earlyprintk";
+		stdout-path = &uart0;
+	};
+
+	ocp at f1000000 {
+		pinctrl: pin-controller at 10000 {
+			pmx_led_os_red: pmx-led-os-red {
+				marvell,pins = "mpp22";
+				marvell,function = "gpio";
+			};
+			pmx_power_off: pmx-power-off {
+				marvell,pins = "mpp24";
+				marvell,function = "gpio";
+			};
+			pmx_led_os_green: pmx-led-os-green {
+				marvell,pins = "mpp25";
+				marvell,function = "gpio";
+			};
+			pmx_led_usb_transfer: pmx-led-usb-transfer {
+				marvell,pins = "mpp27";
+				marvell,function = "gpio";
+			};
+			pmx_button_reset: pmx-button-reset {
+				marvell,pins = "mpp28";
+				marvell,function = "gpio";
+			};
+			pmx_button_usb_copy: pmx-button-usb-copy {
+				marvell,pins = "mpp29";
+				marvell,function = "gpio";
+			};
+		};
+
+		serial at 12000 {
+			status = "okay";
+		};
+
+		sata at 80000 {
+			status = "okay";
+			nr-ports = <2>;
+		};
+	};
+
+	gpio_keys {
+		compatible = "gpio-keys";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = <&pmx_button_reset &pmx_button_usb_copy>;
+		pinctrl-names = "default";
+
+		copy {
+			label = "USB Copy";
+			linux,code = <KEY_COPY>;
+			gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
+		};
+		reset {
+			label = "Reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		pinctrl-0 = <&pmx_led_os_red &pmx_led_os_green
+			     &pmx_led_usb_transfer>;
+		pinctrl-names = "default";
+
+		green-os {
+			label = "ib62x0:green:os";
+			gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		red-os {
+			label = "ib62x0:red:os";
+			gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
+		};
+		usb-copy {
+			label = "ib62x0:red:usb_copy";
+			gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	gpio_poweroff {
+		compatible = "gpio-poweroff";
+		pinctrl-0 = <&pmx_power_off>;
+		pinctrl-names = "default";
+		gpios = <&gpio0 24 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+&nand {
+	status = "okay";
+
+	partition at 0 {
+		label = "u-boot";
+		reg = <0x0000000 0xe0000>;
+	};
+
+	partition at e0000 {
+		label = "u-boot environment";
+		reg = <0xe0000 0x20000>;
+	};
+
+	partition at 100000 {
+		label = "uImage";
+		reg = <0x0100000 0x600000>;
+	};
+
+	partition at 700000 {
+		label = "root";
+		reg = <0x0700000 0xf900000>;
+	};
+
+};
+
+&mdio {
+	status = "okay";
+
+	ethphy0: ethernet-phy at 8 {
+		reg = <8>;
+	};
+};
+
+&eth0 {
+	status = "okay";
+
+	ethernet0-port at 0 {
+		phy-handle = <&ethphy0>;
+	};
+};
configs/ib62x0_defconfig +2 -1
index 9a067e36cc00..1dd6b419d1ea 100644
@@ -3,6 +3,7 @@ CONFIG_KIRKWOOD=y
 CONFIG_SYS_TEXT_BASE=0x600000
 CONFIG_TARGET_IB62X0=y
 CONFIG_IDENT_STRING=" RaidSonic ICY BOX IB-NAS62x0"
+CONFIG_DEFAULT_DEVICE_TREE="kirkwood-ib62x0"
 CONFIG_BOOTDELAY=3
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_HUSH_PARSER=y
@@ -22,6 +23,7 @@ CONFIG_CMD_JFFS2=y
 CONFIG_MTDPARTS_DEFAULT="mtdparts=orion_nand:0xe0000 at 0x0(uboot),0x20000 at 0xe0000(uboot_env),- at 0x100000(root)"
 CONFIG_CMD_UBI=y
 CONFIG_ISO_PARTITION=y
+CONFIG_OF_CONTROL=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_MVSATA_IDE=y
 # CONFIG_MMC is not set
@@ -30,4 +32,3 @@ CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_LZMA=y
-CONFIG_OF_LIBFDT=y
Signature · 1 line
2.17.0
#7 lore raw

PATCH 7/12 ARM: kirkwood: Add device-tree for iconnect

In reply to Chris Packham

Import the dts files from Linux 4.17 and enable CONFIG_OF_CONTROL.

---

 arch/arm/dts/kirkwood-iconnect.dts | 195 +++++++++++++++++++++++++++++
 configs/iconnect_defconfig         |   3 +-
 2 files changed, 197 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/kirkwood-iconnect.dts
arch/arm/dts/kirkwood-iconnect.dts new file +195 -0
new file mode 100644
index 000000000000..4a512d80912c
@@ -0,0 +1,195 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+
+/ {
+	model = "Iomega Iconnect";
+	compatible = "iom,iconnect-1.1", "iom,iconnect", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x10000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 earlyprintk";
+		stdout-path = &uart0;
+		linux,initrd-start = <0x4500040>;
+		linux,initrd-end   = <0x4800000>;
+	};
+
+	ocp at f1000000 {
+		pinctrl: pin-controller at 10000 {
+			pmx_button_reset: pmx-button-reset {
+				marvell,pins = "mpp12";
+				marvell,function = "gpio";
+			};
+			pmx_button_otb: pmx-button-otb {
+				marvell,pins = "mpp35";
+				marvell,function = "gpio";
+			};
+			pmx_led_level: pmx-led-level {
+				marvell,pins = "mpp41";
+				marvell,function = "gpio";
+			};
+			pmx_led_power_blue: pmx-led-power-blue {
+				marvell,pins = "mpp42";
+				marvell,function = "gpio";
+			};
+			pmx_led_power_red: pmx-power-red {
+				marvell,pins = "mpp43";
+				marvell,function = "gpio";
+			};
+			pmx_led_usb1: pmx-led-usb1 {
+				marvell,pins = "mpp44";
+				marvell,function = "gpio";
+			};
+			pmx_led_usb2: pmx-led-usb2 {
+				marvell,pins = "mpp45";
+				marvell,function = "gpio";
+			};
+			pmx_led_usb3: pmx-led-usb3 {
+				marvell,pins = "mpp46";
+				marvell,function = "gpio";
+			};
+			pmx_led_usb4: pmx-led-usb4 {
+				marvell,pins = "mpp47";
+				marvell,function = "gpio";
+			};
+			pmx_led_otb: pmx-led-otb {
+				marvell,pins = "mpp48";
+				marvell,function = "gpio";
+			};
+		};
+		i2c at 11000 {
+			status = "okay";
+
+			lm63: lm63 at 4c {
+				compatible = "national,lm63";
+				reg = <0x4c>;
+			};
+		};
+		serial at 12000 {
+			status = "ok";
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		pinctrl-0 = < &pmx_led_level &pmx_led_power_blue
+			      &pmx_led_power_red &pmx_led_usb1
+			      &pmx_led_usb2 &pmx_led_usb3
+			      &pmx_led_usb4 &pmx_led_otb >;
+		pinctrl-names = "default";
+
+		led-level {
+			label = "led_level";
+			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+			default-state = "on";
+		};
+		power-blue {
+			label = "power:blue";
+			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		power-red {
+			label = "power:red";
+			gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
+		};
+		usb1 {
+			label = "usb1:blue";
+			gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
+		};
+		usb2 {
+			label = "usb2:blue";
+			gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
+		};
+		usb3 {
+			label = "usb3:blue";
+			gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
+		};
+		usb4 {
+			label = "usb4:blue";
+			gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
+		};
+		otb {
+			label = "otb:blue";
+			gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	gpio_keys {
+		compatible = "gpio-keys";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = < &pmx_button_reset &pmx_button_otb >;
+		pinctrl-names = "default";
+
+		otb {
+			label = "OTB Button";
+			linux,code = <KEY_COPY>;
+			gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
+			debounce-interval = <100>;
+		};
+		reset {
+			label = "Reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
+			debounce-interval = <100>;
+		};
+	};
+};
+
+&nand {
+	status = "okay";
+
+	partition at 0 {
+		label = "uboot";
+		reg = <0x0000000 0xc0000>;
+	};
+
+	partition at a0000 {
+		label = "env";
+		reg = <0xa0000 0x20000>;
+	};
+
+	partition at 100000 {
+		label = "zImage";
+		reg = <0x100000 0x300000>;
+	};
+
+	partition at 540000 {
+		label = "initrd";
+		reg = <0x540000 0x300000>;
+	};
+
+	partition at 980000 {
+		label = "boot";
+		reg = <0x980000 0x1f400000>;
+	};
+};
+
+&mdio {
+	status = "okay";
+
+	ethphy0: ethernet-phy at 11 {
+		reg = <11>;
+	};
+};
+
+&eth0 {
+	status = "okay";
+	ethernet0-port at 0 {
+		phy-handle = <&ethphy0>;
+	};
+};
+
+&pciec {
+        status = "okay";
+};
+
+&pcie0 {
+	status = "okay";
+};
configs/iconnect_defconfig +2 -1
index 80b8ff999a55..236b91df45e6 100644
@@ -3,6 +3,7 @@ CONFIG_KIRKWOOD=y
 CONFIG_SYS_TEXT_BASE=0x600000
 CONFIG_TARGET_ICONNECT=y
 CONFIG_IDENT_STRING=" Iomega iConnect"
+CONFIG_DEFAULT_DEVICE_TREE="kirkwood-iconnect"
 CONFIG_BOOTDELAY=3
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_SYS_PROMPT="iconnect => "
@@ -18,6 +19,7 @@ CONFIG_CMD_JFFS2=y
 CONFIG_MTDPARTS_DEFAULT="mtdparts=orion_nand:0x80000 at 0x0(uboot),0x20000 at 0x80000(uboot_env),- at 0xa0000(rootfs)"
 CONFIG_CMD_UBI=y
 CONFIG_ISO_PARTITION=y
+CONFIG_OF_CONTROL=y
 CONFIG_ENV_IS_IN_NAND=y
 # CONFIG_MMC is not set
 CONFIG_SYS_NS16550=y
@@ -25,4 +27,3 @@ CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_LZMA=y
-CONFIG_OF_LIBFDT=y
Signature · 1 line
2.17.0
#8 lore raw

PATCH 8/12 ARM: kirkwood: Add device-tree for nas220

In reply to Chris Packham

Import the dts file from Linux 4.17 and enable CONFIG_OF_CONTROL.

---

 arch/arm/dts/kirkwood-blackarmor-nas220.dts | 172 ++++++++++++++++++++
 configs/nas220_defconfig                    |   3 +-
 2 files changed, 174 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/kirkwood-blackarmor-nas220.dts
arch/arm/dts/kirkwood-blackarmor-nas220.dts new file +172 -0
new file mode 100644
index 000000000000..07fbfca444d5
@@ -0,0 +1,172 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Device Tree file for Seagate Blackarmor NAS220
+ *
+ * Copyright (C) 2014 Evgeni Dobrev <[email protected]>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include "kirkwood.dtsi"
+#include "kirkwood-6192.dtsi"
+
+/ {
+	model = "Seagate Blackarmor NAS220";
+	compatible = "seagate,blackarmor-nas220","marvell,kirkwood-88f6192",
+		     "marvell,kirkwood";
+
+	memory { /* 128 MB */
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+		stdout-path = &uart0;
+	};
+
+	gpio_poweroff {
+		compatible = "gpio-poweroff";
+		gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
+	};
+
+	gpio_keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "Reset";
+			linux,code = <KEY_POWER>;
+			gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
+		};
+
+		button {
+			label = "Power";
+			linux,code = <KEY_SLEEP>;
+			gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		blue-power {
+			label = "nas220:blue:power";
+			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "default-on";
+		};
+	};
+
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = <&pmx_power_sata0 &pmx_power_sata1>;
+		pinctrl-names = "default";
+
+		sata0_power: regulator at 1 {
+			compatible = "regulator-fixed";
+			reg = <1>;
+			regulator-name = "SATA0 Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 24 GPIO_ACTIVE_LOW>;
+		};
+
+		sata1_power: regulator at 2 {
+			compatible = "regulator-fixed";
+			reg = <2>;
+			regulator-name = "SATA1 Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 28 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+/*
+ * Serial port routed to connector CN5
+ *
+ * pin 1 - TX (CPU's TX)
+ * pin 4 - RX (CPU's RX)
+ * pin 6 - GND
+ */
+&uart0 {
+	status = "okay";
+};
+
+&pinctrl {
+	pinctrl-0 = <&pmx_button_reset &pmx_button_power>;
+	pinctrl-names = "default";
+
+	pmx_act_sata0: pmx-act-sata0 {
+		marvell,pins = "mpp15";
+		marvell,function = "sata0";
+	};
+
+	pmx_act_sata1: pmx-act-sata1 {
+		marvell,pins = "mpp16";
+		marvell,function = "sata1";
+	};
+
+	pmx_power_sata0: pmx-power-sata0 {
+		marvell,pins = "mpp24";
+		marvell,function = "gpio";
+	};
+
+	pmx_power_sata1: pmx-power-sata1 {
+		marvell,pins = "mpp28";
+		marvell,function = "gpio";
+	};
+
+	pmx_button_reset: pmx-button-reset {
+		marvell,pins = "mpp29";
+		marvell,function = "gpio";
+	};
+
+	pmx_button_power: pmx-button-power {
+		marvell,pins = "mpp26";
+		marvell,function = "gpio";
+	};
+};
+
+&sata {
+	status = "okay";
+	nr-ports = <2>;
+};
+
+&i2c0 {
+	status = "okay";
+
+	adt7476: thermal at 2e {
+		compatible = "adi,adt7476";
+		reg = <0x2e>;
+	};
+};
+
+&nand {
+	status = "okay";
+};
+
+&mdio {
+	status = "okay";
+
+	ethphy0: ethernet-phy at 8 {
+		 reg = <8>;
+	};
+};
+
+&eth0 {
+	status = "okay";
+
+	ethernet0-port at 0 {
+		phy-handle = <&ethphy0>;
+	};
+};
configs/nas220_defconfig +2 -1
index 75ea85bad4c6..06918eee2334 100644
@@ -3,6 +3,7 @@ CONFIG_KIRKWOOD=y
 CONFIG_SYS_TEXT_BASE=0x600000
 CONFIG_TARGET_NAS220=y
 CONFIG_IDENT_STRING="\nNAS 220"
+CONFIG_DEFAULT_DEVICE_TREE="kirkwood-blackarmor-nas220"
 CONFIG_BOOTDELAY=3
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_HUSH_PARSER=y
@@ -24,6 +25,7 @@ CONFIG_CMD_UBI=y
 CONFIG_ISO_PARTITION=y
 CONFIG_EFI_PARTITION=y
 # CONFIG_PARTITION_UUIDS is not set
+CONFIG_OF_CONTROL=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_MVSATA_IDE=y
 # CONFIG_MMC is not set
@@ -31,4 +33,3 @@ CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
-CONFIG_OF_LIBFDT=y
Signature · 1 line
2.17.0
#9 lore raw

PATCH 9/12 ARM: kirkwood: Add device-tree for nsa310s

In reply to Chris Packham

Import the dts files from Linux 4.17 and enable CONFIG_OF_CONTROL.

---

 arch/arm/dts/kirkwood-nsa310.dts         | 139 ++++++++++++++++++++
 arch/arm/dts/kirkwood-nsa3x0-common.dtsi | 158 +++++++++++++++++++++++
 configs/nsa310s_defconfig                |   3 +-
 3 files changed, 299 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/kirkwood-nsa310.dts
 create mode 100644 arch/arm/dts/kirkwood-nsa3x0-common.dtsi
arch/arm/dts/kirkwood-nsa310.dts new file +139 -0
new file mode 100644
index 000000000000..9b861c2e76c5
@@ -0,0 +1,139 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "kirkwood-nsa3x0-common.dtsi"
+
+/ {
+	compatible = "zyxel,nsa310", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x10000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200";
+		stdout-path = &uart0;
+	};
+
+	ocp at f1000000 {
+		pinctrl: pin-controller at 10000 {
+			pinctrl-0 = <&pmx_unknown>;
+			pinctrl-names = "default";
+
+			pmx_led_esata_green: pmx-led-esata-green {
+				marvell,pins = "mpp12";
+				marvell,function = "gpio";
+			};
+
+			pmx_led_esata_red: pmx-led-esata-red {
+				marvell,pins = "mpp13";
+				marvell,function = "gpio";
+			};
+
+			pmx_led_usb_green: pmx-led-usb-green {
+				marvell,pins = "mpp15";
+				marvell,function = "gpio";
+			};
+
+			pmx_led_usb_red: pmx-led-usb-red {
+				marvell,pins = "mpp16";
+				marvell,function = "gpio";
+			};
+
+			pmx_led_sys_green: pmx-led-sys-green {
+				marvell,pins = "mpp28";
+				marvell,function = "gpio";
+			};
+
+			pmx_led_sys_red: pmx-led-sys-red {
+				marvell,pins = "mpp29";
+				marvell,function = "gpio";
+			};
+
+			pmx_led_hdd_green: pmx-led-hdd-green {
+				marvell,pins = "mpp41";
+				marvell,function = "gpio";
+			};
+
+			pmx_led_hdd_red: pmx-led-hdd-red {
+				marvell,pins = "mpp42";
+				marvell,function = "gpio";
+			};
+
+			pmx_unknown: pmx-unknown {
+				marvell,pins = "mpp44";
+				marvell,function = "gpio";
+			};
+
+		};
+
+		i2c at 11000 {
+			status = "okay";
+
+			adt7476: adt7476a at 2e {
+				compatible = "adi,adt7476";
+				reg = <0x2e>;
+			};
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		pinctrl-0 = <&pmx_led_esata_green &pmx_led_esata_red
+			     &pmx_led_usb_green &pmx_led_usb_red
+			     &pmx_led_sys_green &pmx_led_sys_red
+			     &pmx_led_copy_green &pmx_led_copy_red
+			     &pmx_led_hdd_green &pmx_led_hdd_red>;
+		pinctrl-names = "default";
+
+		green-sys {
+			label = "nsa310:green:sys";
+			gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
+		};
+		red-sys {
+			label = "nsa310:red:sys";
+			gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
+		};
+		green-hdd {
+			label = "nsa310:green:hdd";
+			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+		};
+		red-hdd {
+			label = "nsa310:red:hdd";
+			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+		};
+		green-esata {
+			label = "nsa310:green:esata";
+			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+		};
+		red-esata {
+			label = "nsa310:red:esata";
+			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+		};
+		green-usb {
+			label = "nsa310:green:usb";
+			gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
+		};
+		red-usb {
+			label = "nsa310:red:usb";
+			gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
+		};
+		green-copy {
+			label = "nsa310:green:copy";
+			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+		};
+		red-copy {
+			label = "nsa310:red:copy";
+			gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+		};
+	};
+};
+
+&pciec {
+        status = "okay";
+};
+
+&pcie0 {
+	status = "okay";
+};
arch/arm/dts/kirkwood-nsa3x0-common.dtsi new file +158 -0

158 lines not on this page · raw message

configs/nsa310s_defconfig +2 -1
index 2529687414fa..d3ea933d378b 100644
@@ -2,6 +2,7 @@ CONFIG_ARM=y
 CONFIG_KIRKWOOD=y
 CONFIG_SYS_TEXT_BASE=0x600000
 CONFIG_TARGET_NSA310S=y
+CONFIG_DEFAULT_DEVICE_TREE="kirkwood-nsa310"
 CONFIG_BOOTDELAY=3
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_HUSH_PARSER=y
@@ -21,6 +22,7 @@ CONFIG_CMD_JFFS2=y
 CONFIG_MTDPARTS_DEFAULT="mtdparts=orion_nand:0xe0000 at 0x0(uboot),0x20000 at 0xe0000(uboot_env),0x100000 at 0x100000(second_stage_uboot),- at 0x200000(root)"
 CONFIG_CMD_UBI=y
 CONFIG_ISO_PARTITION=y
+CONFIG_OF_CONTROL=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_MVSATA_IDE=y
 # CONFIG_MMC is not set
@@ -29,4 +31,3 @@ CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_LZMA=y
-CONFIG_OF_LIBFDT=y
Signature · 1 line
2.17.0
#10 lore raw

PATCH 9/12 ARM: kirkwood: Add device-tree for nsa310s

Hi Chris,

What we have in Linux mainline is Zyxel NSA310 (Marvell 88f6281). The Zyxel NSA310S (Marvell 88f6702) is actually a different box, which has not been mainlined yet.

By the way, there are 3 variations of the Zyxel NSA310 box. This box has some combination of: red USB Led, lm85 sensor, adt7476 sensor that make them slighly different. The mainlined NSA310 DTS is for the one with adt7476 sensor.

Regards
bodhi

Quoted 355 lines · Chris Packham

Import the dts files from Linux 4.17 and enable CONFIG_OF_CONTROL.

---

 arch/arm/dts/kirkwood-nsa310.dts         | 139 ++++++++++++++++++++
 arch/arm/dts/kirkwood-nsa3x0-common.dtsi | 158 +++++++++++++++++++++++
 configs/nsa310s_defconfig                |   3 +-
 3 files changed, 299 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/kirkwood-nsa310.dts
 create mode 100644 arch/arm/dts/kirkwood-nsa3x0-common.dtsi
arch/arm/dts/kirkwood- renamed from arch/arm/dts/kirkwood-nsa310.dts +0 -0

nsa310.dts
new file mode 100644
index 000000000000..9b861c2e76c5

arch/arm/dts/kirkwood-nsa310.dts new file +7 -0
@@ -0,0 +1,139 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "kirkwood-nsa3x0-common.dtsi"
+
+/ {
+       compatible = "zyxel,nsa310", "marvell,kirkwood-88f6281",

"marvell,kirkwood";

arch/arm/dts/kirkwood-nsa310.dts new file +132 -0
+
+       memory {
+               device_type = "memory";
+               reg = <0x00000000 0x10000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200";
+               stdout-path = &uart0;
+       };
+
+       ocp at f1000000 {
+               pinctrl: pin-controller at 10000 {
+                       pinctrl-0 = <&pmx_unknown>;
+                       pinctrl-names = "default";
+
+                       pmx_led_esata_green: pmx-led-esata-green {
+                               marvell,pins = "mpp12";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_esata_red: pmx-led-esata-red {
+                               marvell,pins = "mpp13";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_usb_green: pmx-led-usb-green {
+                               marvell,pins = "mpp15";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_usb_red: pmx-led-usb-red {
+                               marvell,pins = "mpp16";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_sys_green: pmx-led-sys-green {
+                               marvell,pins = "mpp28";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_sys_red: pmx-led-sys-red {
+                               marvell,pins = "mpp29";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_hdd_green: pmx-led-hdd-green {
+                               marvell,pins = "mpp41";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_hdd_red: pmx-led-hdd-red {
+                               marvell,pins = "mpp42";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_unknown: pmx-unknown {
+                               marvell,pins = "mpp44";
+                               marvell,function = "gpio";
+                       };
+
+               };
+
+               i2c at 11000 {
+                       status = "okay";
+
+                       adt7476: adt7476a at 2e {
+                               compatible = "adi,adt7476";
+                               reg = <0x2e>;
+                       };
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-0 = <&pmx_led_esata_green &pmx_led_esata_red
+                            &pmx_led_usb_green &pmx_led_usb_red
+                            &pmx_led_sys_green &pmx_led_sys_red
+                            &pmx_led_copy_green &pmx_led_copy_red
+                            &pmx_led_hdd_green &pmx_led_hdd_red>;
+               pinctrl-names = "default";
+
+               green-sys {
+                       label = "nsa310:green:sys";
+                       gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
+               };
+               red-sys {
+                       label = "nsa310:red:sys";
+                       gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
+               };
+               green-hdd {
+                       label = "nsa310:green:hdd";
+                       gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+               };
+               red-hdd {
+                       label = "nsa310:red:hdd";
+                       gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+               };
+               green-esata {
+                       label = "nsa310:green:esata";
+                       gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+               };
+               red-esata {
+                       label = "nsa310:red:esata";
+                       gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+               };
+               green-usb {
+                       label = "nsa310:green:usb";
+                       gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
+               };
+               red-usb {
+                       label = "nsa310:red:usb";
+                       gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
+               };
+               green-copy {
+                       label = "nsa310:green:copy";
+                       gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+               };
+               red-copy {
+                       label = "nsa310:red:copy";
+                       gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+&pciec {
+        status = "okay";
+};
+
+&pcie0 {
+       status = "okay";
+};
arch/arm/dts/kirkwood-nsa3x0-common.dtsi new file +158 -0
new file mode 100644
index 000000000000..2c4037b07282
@@ -0,0 +1,158 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+
+/ {
+       model = "ZyXEL NSA310";
+
+       ocp at f1000000 {
+               pinctrl: pin-controller at 10000 {
+
+                       pmx_usb_power: pmx-usb-power {
+                               marvell,pins = "mpp21";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_pwr_off: pmx-pwr-off {
+                               marvell,pins = "mpp48";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_btn_reset: pmx-btn-reset {
+                               marvell,pins = "mpp36";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_btn_copy: pmx-btn-copy {
+                               marvell,pins = "mpp37";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_btn_power: pmx-btn-power {
+                               marvell,pins = "mpp46";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_copy_green: pmx-led-copy-green {
+                               marvell,pins = "mpp39";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_copy_red: pmx-led-copy-red {
+                               marvell,pins = "mpp40";
+                               marvell,function = "gpio";
+                       };
+               };
+
+               serial at 12000 {
+                       status = "ok";
+               };
+
+               sata at 80000 {
+                       status = "okay";
+                       nr-ports = <2>;
+               };
+       };
+
+       gpio_poweroff {
+               compatible = "gpio-poweroff";
+               pinctrl-0 = <&pmx_pwr_off>;
+               pinctrl-names = "default";
+               gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-0 = <&pmx_btn_reset &pmx_btn_copy &pmx_btn_power>;
+               pinctrl-names = "default";
+
+               power {
+                       label = "Power Button";
+                       linux,code = <KEY_POWER>;
+                       gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
+               };
+               copy {
+                       label = "Copy Button";
+                       linux,code = <KEY_COPY>;
+                       gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+               };
+               reset {
+                       label = "Reset Button";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+
+       regulators {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-0 = <&pmx_usb_power>;
+               pinctrl-names = "default";
+
+               usb0_power: regulator at 1 {
+                       compatible = "regulator-fixed";
+                       reg = <1>;
+                       regulator-name = "USB Power";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+                       gpio = <&gpio0 21 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+&nand {
+       status = "okay";
+       chip-delay = <35>;
+
+       partition at 0 {
+               label = "uboot";
+               reg = <0x0000000 0x0100000>;
+               read-only;
+       };
+       partition at 100000 {
+               label = "uboot_env";
+               reg = <0x0100000 0x0080000>;
+       };
+       partition at 180000 {
+               label = "key_store";
+               reg = <0x0180000 0x0080000>;
+       };
+       partition at 200000 {
+               label = "info";
+               reg = <0x0200000 0x0080000>;
+       };
+       partition at 280000 {
+               label = "etc";
+               reg = <0x0280000 0x0a00000>;
+       };
+       partition at c80000 {
+               label = "kernel_1";
+               reg = <0x0c80000 0x0a00000>;
+       };
+       partition at 1680000 {
+               label = "rootfs1";
+               reg = <0x1680000 0x2fc0000>;
+       };
+       partition at 4640000 {
+               label = "kernel_2";
+               reg = <0x4640000 0x0a00000>;
+       };
+       partition at 5040000 {
+               label = "rootfs2";
+               reg = <0x5040000 0x2fc0000>;
+       };
+};
+
+&pciec {
+        status = "okay";
+};
+
+&pcie0 {
+       status = "okay";
+};
configs/nsa310s_defconfig +1 -0
index 2529687414fa..d3ea933d378b 100644
@@ -2,6 +2,7 @@ CONFIG_ARM=y
 CONFIG_KIRKWOOD=y
 CONFIG_SYS_TEXT_BASE=0x600000
 CONFIG_TARGET_NSA310S=y
+CONFIG_DEFAULT_DEVICE_TREE="kirkwood-nsa310"
 CONFIG_BOOTDELAY=3
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_HUSH_PARSER=y
@@ -21,6 +22,7 @@ CONFIG_CMD_JFFS2=y
 CONFIG_MTDPARTS_DEFAULT="mtdparts=orion_nand:0xe0000@

0x0(uboot),0x20000 at 0xe0000(uboot_env),0x100000 at 0x100000( second_stage_uboot),- at 0x200000(root)"
CONFIG_CMD_UBI=y
CONFIG_ISO_PARTITION=y

configs/nsa310s_defconfig +1 -2
+CONFIG_OF_CONTROL=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_MVSATA_IDE=y
 # CONFIG_MMC is not set
@@ -29,4 +31,3 @@ CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_LZMA=y
-CONFIG_OF_LIBFDT=y
--

2.17.0

#11 lore raw

PATCH 9/12 ARM: kirkwood: Add device-tree for nsa310s

Quoted 3 lines · bodhi bodhi

Hi Chris,

What we have in Linux mainline is Zyxel NSA310 (Marvell 88f6281). The

Zyxel NSA310S (Marvell 88f6702) is actually a different box, which has not been mainlined yet.

Quoted 1 line

By the way, there are 3 variations of the Zyxel NSA310 box. This box has

some combination of: red USB Led, lm85 sensor, adt7476 sensor that make them slighly different. The mainlined NSA310 DTS is for the one with adt7476 sensor.

Ah OK. I did see 2 boards in the kernel, this was one of the "educated guesses" which turns out not to to be a good guess. For now I'll just drop this conversion from the series.

Quoted 5 lines

Regards
bodhi

On Tue, May 8, 2018 at 3:34 AM, Chris Packham <[email protected]>

Quoted 5 lines · wrote:
Quoted 4 lines

Import the dts files from Linux 4.17 and enable CONFIG_OF_CONTROL.

---

Quoted 8 lines

Review

Quoted 8 lines
  arch/arm/dts/kirkwood-nsa310.dts         | 139 ++++++++++++++++++++
  arch/arm/dts/kirkwood-nsa3x0-common.dtsi | 158 +++++++++++++++++++++++
  configs/nsa310s_defconfig                |   3 +-
  3 files changed, 299 insertions(+), 1 deletion(-)

create mode 100644 arch/arm/dts/kirkwood-nsa310.dts create mode 100644 arch/arm/dts/kirkwood-nsa3x0-common.dtsi

(quoted diff) +0 -0

b/arch/arm/dts/kirkwood-nsa310.dts

Quoted 4 lines
Quoted 4 lines

new file mode 100644
index 000000000000..9b861c2e76c5

arch/arm/dts/kirkwood-nsa310.dts new file +0 -0
Quoted 8 lines

arch/arm/dts/kirkwood-nsa310.dts line 7

Quoted 8 lines
arch/arm/dts/kirkwood-nsa310.dts new file +7 -0
@@ -0,0 +1,139 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "kirkwood-nsa3x0-common.dtsi"
+
+/ {
+       compatible = "zyxel,nsa310", "marvell,kirkwood-88f6281",

"marvell,kirkwood";

Quoted 125 lines
Quoted 125 lines
arch/arm/dts/kirkwood-nsa310.dts new file +125 -0
+
+       memory {
+               device_type = "memory";
+               reg = <0x00000000 0x10000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200";
+               stdout-path = &uart0;
+       };
+
+       ocp at f1000000 {
+               pinctrl: pin-controller at 10000 {
+                       pinctrl-0 = <&pmx_unknown>;
+                       pinctrl-names = "default";
+
+                       pmx_led_esata_green: pmx-led-esata-green {
+                               marvell,pins = "mpp12";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_esata_red: pmx-led-esata-red {
+                               marvell,pins = "mpp13";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_usb_green: pmx-led-usb-green {
+                               marvell,pins = "mpp15";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_usb_red: pmx-led-usb-red {
+                               marvell,pins = "mpp16";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_sys_green: pmx-led-sys-green {
+                               marvell,pins = "mpp28";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_sys_red: pmx-led-sys-red {
+                               marvell,pins = "mpp29";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_hdd_green: pmx-led-hdd-green {
+                               marvell,pins = "mpp41";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_hdd_red: pmx-led-hdd-red {
+                               marvell,pins = "mpp42";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_unknown: pmx-unknown {
+                               marvell,pins = "mpp44";
+                               marvell,function = "gpio";
+                       };
+
+               };
+
+               i2c at 11000 {
+                       status = "okay";
+
+                       adt7476: adt7476a at 2e {
+                               compatible = "adi,adt7476";
+                               reg = <0x2e>;
+                       };
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-0 = <&pmx_led_esata_green &pmx_led_esata_red
+                            &pmx_led_usb_green &pmx_led_usb_red
+                            &pmx_led_sys_green &pmx_led_sys_red
+                            &pmx_led_copy_green &pmx_led_copy_red
+                            &pmx_led_hdd_green &pmx_led_hdd_red>;
+               pinctrl-names = "default";
+
+               green-sys {
+                       label = "nsa310:green:sys";
+                       gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
+               };
+               red-sys {
+                       label = "nsa310:red:sys";
+                       gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
+               };
+               green-hdd {
+                       label = "nsa310:green:hdd";
+                       gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+               };
+               red-hdd {
+                       label = "nsa310:red:hdd";
+                       gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+               };
+               green-esata {
+                       label = "nsa310:green:esata";
+                       gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+               };
+               red-esata {
+                       label = "nsa310:red:esata";
+                       gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+               };
+               green-usb {
+                       label = "nsa310:green:usb";
+                       gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
+               };
+               red-usb {
+                       label = "nsa310:red:usb";
+                       gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
+               };
+               green-copy {
+                       label = "nsa310:green:copy";
+                       gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+               };
+               red-copy {
+                       label = "nsa310:red:copy";
+                       gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
Quoted 8 lines

Review

Quoted 8 lines
arch/arm/dts/kirkwood-nsa310.dts new file +7 -0
+&pciec {
+        status = "okay";
+};
+
+&pcie0 {
+       status = "okay";
+};
(quoted diff) +0 -0

b/arch/arm/dts/kirkwood-nsa3x0-common.dtsi

Quoted 65 lines
Quoted 65 lines

new file mode 100644
index 000000000000..2c4037b07282

arch/arm/dts/kirkwood-nsa3x0-common.dtsi new file +60 -0
@@ -0,0 +1,158 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+
+/ {
+       model = "ZyXEL NSA310";
+
+       ocp at f1000000 {
+               pinctrl: pin-controller at 10000 {
+
+                       pmx_usb_power: pmx-usb-power {
+                               marvell,pins = "mpp21";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_pwr_off: pmx-pwr-off {
+                               marvell,pins = "mpp48";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_btn_reset: pmx-btn-reset {
+                               marvell,pins = "mpp36";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_btn_copy: pmx-btn-copy {
+                               marvell,pins = "mpp37";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_btn_power: pmx-btn-power {
+                               marvell,pins = "mpp46";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_copy_green: pmx-led-copy-green {
+                               marvell,pins = "mpp39";
+                               marvell,function = "gpio";
+                       };
+
+                       pmx_led_copy_red: pmx-led-copy-red {
+                               marvell,pins = "mpp40";
+                               marvell,function = "gpio";
+                       };
+               };
+
+               serial at 12000 {
+                       status = "ok";
+               };
+
+               sata at 80000 {
+                       status = "okay";
+                       nr-ports = <2>;
+               };
+       };
+
+       gpio_poweroff {
+               compatible = "gpio-poweroff";
+               pinctrl-0 = <&pmx_pwr_off>;
+               pinctrl-names = "default";
Quoted 8 lines

arch/arm/dts/kirkwood-nsa3x0-common.dtsi

Quoted 8 lines
arch/arm/dts/kirkwood-nsa3x0-common.dtsi new file +8 -0
+               gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-0 = <&pmx_btn_reset &pmx_btn_copy

&pmx_btn_power>;

Quoted 96 lines
Quoted 96 lines
arch/arm/dts/kirkwood-nsa3x0-common.dtsi new file +90 -0
+               pinctrl-names = "default";
+
+               power {
+                       label = "Power Button";
+                       linux,code = <KEY_POWER>;
+                       gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
+               };
+               copy {
+                       label = "Copy Button";
+                       linux,code = <KEY_COPY>;
+                       gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+               };
+               reset {
+                       label = "Reset Button";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+
+       regulators {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-0 = <&pmx_usb_power>;
+               pinctrl-names = "default";
+
+               usb0_power: regulator at 1 {
+                       compatible = "regulator-fixed";
+                       reg = <1>;
+                       regulator-name = "USB Power";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+                       gpio = <&gpio0 21 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+&nand {
+       status = "okay";
+       chip-delay = <35>;
+
+       partition at 0 {
+               label = "uboot";
+               reg = <0x0000000 0x0100000>;
+               read-only;
+       };
+       partition at 100000 {
+               label = "uboot_env";
+               reg = <0x0100000 0x0080000>;
+       };
+       partition at 180000 {
+               label = "key_store";
+               reg = <0x0180000 0x0080000>;
+       };
+       partition at 200000 {
+               label = "info";
+               reg = <0x0200000 0x0080000>;
+       };
+       partition at 280000 {
+               label = "etc";
+               reg = <0x0280000 0x0a00000>;
+       };
+       partition at c80000 {
+               label = "kernel_1";
+               reg = <0x0c80000 0x0a00000>;
+       };
+       partition at 1680000 {
+               label = "rootfs1";
+               reg = <0x1680000 0x2fc0000>;
+       };
+       partition at 4640000 {
+               label = "kernel_2";
+               reg = <0x4640000 0x0a00000>;
+       };
+       partition at 5040000 {
+               label = "rootfs2";
+               reg = <0x5040000 0x2fc0000>;
+       };
+};
+
+&pciec {
+        status = "okay";
+};
+
+&pcie0 {
+       status = "okay";
+};
configs/nsa310s_defconfig +0 -0
index 2529687414fa..d3ea933d378b 100644
@@ -2,6 +2,7 @@ CONFIG_ARM=y
  CONFIG_KIRKWOOD=y
Quoted 8 lines

configs/nsa310s_defconfig CONFIG_CMD_JFFS2=y · line 22

Quoted 8 lines
configs/nsa310s_defconfig +1 -0
  CONFIG_SYS_TEXT_BASE=0x600000
  CONFIG_TARGET_NSA310S=y
+CONFIG_DEFAULT_DEVICE_TREE="kirkwood-nsa310"
  CONFIG_BOOTDELAY=3
  # CONFIG_DISPLAY_BOARDINFO is not set
  CONFIG_HUSH_PARSER=y
@@ -21,6 +22,7 @@ CONFIG_CMD_JFFS2=y
  CONFIG_MTDPARTS_DEFAULT="mtdparts=orion_nand:0xe0000 at 0x0

(uboot),0x20000 at 0xe0000(uboot_env),0x100000 at 0x100000 (second_stage_uboot),- at 0x200000(root)"

Quoted 13 lines
Quoted 13 lines
configs/nsa310s_defconfig +1 -2
  CONFIG_CMD_UBI=y
  CONFIG_ISO_PARTITION=y
+CONFIG_OF_CONTROL=y
  CONFIG_ENV_IS_IN_NAND=y
  CONFIG_MVSATA_IDE=y
  # CONFIG_MMC is not set
@@ -29,4 +31,3 @@ CONFIG_USB=y
  CONFIG_USB_EHCI_HCD=y
  CONFIG_USB_STORAGE=y
  CONFIG_LZMA=y
-CONFIG_OF_LIBFDT=y
--

2.17.0

#12 lore raw

PATCH 9/12 ARM: kirkwood: Add device-tree for nsa310s

Hi Chris,

Quoted 9 lines · Chris Packham
Quoted 3 lines · bodhi bodhi

Hi Chris,

What we have in Linux mainline is Zyxel NSA310 (Marvell 88f6281). The

Zyxel NSA310S (Marvell 88f6702) is actually a different box, which has not been mainlined yet.

Quoted 1 line

By the way, there are 3 variations of the Zyxel NSA310 box. This box has

Quoted 8 lines

some combination of: red USB Led, lm85 sensor, adt7476 sensor that make them slighly different. The mainlined NSA310 DTS is for the one with adt7476 sensor.

Ah OK. I did see 2 boards in the kernel, this was one of the "educated guesses" which turns out not to to be a good guess. For now I'll just drop this conversion from the series.

Yes, that makes sense. Please do so. We can always get the correct version back into mainline, once we have Kirkwood "enabled" in a modern way.

What is your plan with this Kirkwood revival? Do you plan to send updates to enable DM for those boards and perhaps some drivers as well? How should I proceed with this DT patch-set?

Thanks,
Stefan

A message that is not in the archive (sent off-list or not yet received): CAFOYHZBbO1ojzif9tbpbk_xj7ySsU2P11ftbKKz3xLGrzXh_FA@mail.gmail.com

A message that is not in the archive (sent off-list or not yet received): [email protected]

#15 lore raw

PATCH 9/12 ARM: kirkwood: Add device-tree for nsa310s

(adding back list and cc, my bad replied from a mobile device)

Quoted 27 lines · Stefan Roese

Hi Chris,

Quoted 24 lines · Chris Packham

Hi Stefan,

On Wed, 16 May 2018, 12:09 AM Stefan Roese, <[email protected] <mailto:[email protected]>> wrote:

Hi Chris,

On 10.05.2018 02:51, Chris Packham wrote:
> On Thu, May 10, 2018 at 6:27 AM bodhi bodhi <[email protected]
<mailto:[email protected]>> wrote:
>
>> Hi Chris,
>
>> What we have in Linux mainline is Zyxel NSA310 (Marvell
88f6281). The
> Zyxel NSA310S (Marvell 88f6702) is actually a different box,
which has not
> been mainlined yet.
>
>> By the way, there are 3 variations of the Zyxel NSA310 box. This
box has
> some combination of: red USB Led, lm85 sensor, adt7476 sensor
that make
> them slighly different. The mainlined NSA310 DTS is for the one

with

Quoted 18 lines
Quoted 18 lines

> adt7476 sensor.
>
>
> Ah OK. I did see 2 boards in the kernel, this was one of the
"educated
> guesses" which turns out not to to be a good guess. For now I'll
just drop
> this conversion from the series.

Yes, that makes sense. Please do so. We can always get the correct version back into mainline, once we have Kirkwood "enabled" in a modern way.

What is your plan with this Kirkwood revival? Do you plan to send updates to enable DM for those boards and perhaps some drivers as well? How should I proceed with this DT patch-set?

Quoted 7 lines
Quoted 4 lines

I was about to ask you.

I was thinking about sending a v2 omitting nas310s, but if that's the only change you could just omit it at your end.

So for a start its good that I apply these patches, omitting the nas310s one?

Yes thanks. Aside from the commend from Bodhi I haven't seen any other feedback. Not sure if you wanted to wait a bit longer.

Quoted 9 lines
Quoted 7 lines

Then I've got another set lined up for the boards using spi flash which lays the groundwork for Jagan's spi changes. I may as well switch over the i2c configs since the driver already supports DM. I'll probably send those later this week.

If i get really enthusiastic i might give converting the mvgbe driver to DM a try but the hardware I have for testing is complicated.

Sounds like a plan. Thanks for working on this.

No problem I'm keen to see Kirkwood hang around.

#16 lore raw

PATCH 10/12 ARM: kirkwood: Add device-tree for openrd

In reply to Chris Packham

Import the dts files from Linux 4.17 and enable CONFIG_OF_CONTROL.

---

 arch/arm/dts/kirkwood-openrd-base.dts     |  39 +++++++
 arch/arm/dts/kirkwood-openrd-client.dts   |  73 +++++++++++++
 arch/arm/dts/kirkwood-openrd-ultimate.dts |  55 ++++++++++
 arch/arm/dts/kirkwood-openrd.dtsi         | 122 ++++++++++++++++++++++
 configs/openrd_base_defconfig             |   3 +-
 configs/openrd_client_defconfig           |   3 +-
 configs/openrd_ultimate_defconfig         |   3 +-
 7 files changed, 295 insertions(+), 3 deletions(-)
 create mode 100644 arch/arm/dts/kirkwood-openrd-base.dts
 create mode 100644 arch/arm/dts/kirkwood-openrd-client.dts
 create mode 100644 arch/arm/dts/kirkwood-openrd-ultimate.dts
 create mode 100644 arch/arm/dts/kirkwood-openrd.dtsi
arch/arm/dts/kirkwood-openrd-base.dts new file +39 -0
new file mode 100644
index 000000000000..094191ece3d7
@@ -0,0 +1,39 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Marvell OpenRD Base Board Description
+ *
+ * Andrew Lunn <[email protected]>
+ *
+ * This file contains the definitions that are specific to OpenRD
+ * base variant of the Marvell Kirkwood Development Board.
+ */
+
+/dts-v1/;
+
+#include "kirkwood-openrd.dtsi"
+
+/ {
+	model = "OpenRD Base";
+	compatible = "marvell,openrd-base", "marvell,openrd", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+	ocp at f1000000 {
+		serial at 12100 {
+			status = "okay";
+		};
+	};
+};
+
+&mdio {
+	status = "okay";
+
+	ethphy0: ethernet-phy at 8 {
+		reg = <8>;
+	};
+};
+
+&eth0 {
+	status = "okay";
+	ethernet0-port at 0 {
+		phy-handle = <&ethphy0>;
+	};
+};
arch/arm/dts/kirkwood-openrd-client.dts new file +73 -0

73 lines not on this page · raw message

arch/arm/dts/kirkwood-openrd-ultimate.dts new file +55 -0

55 lines not on this page · raw message

arch/arm/dts/kirkwood-openrd.dtsi new file +122 -0

122 lines not on this page · raw message

configs/openrd_base_defconfig +2 -1
index 75ebb22f2d3e..650ac5766e4e 100644
@@ -4,6 +4,7 @@ CONFIG_KIRKWOOD=y
 CONFIG_SYS_TEXT_BASE=0x600000
 CONFIG_TARGET_OPENRD=y
 CONFIG_IDENT_STRING="\nOpenRD-Base"
+CONFIG_DEFAULT_DEVICE_TREE="kirkwood-openrd-base"
 CONFIG_SYS_EXTRA_OPTIONS="BOARD_IS_OPENRD_BASE"
 CONFIG_BOOTDELAY=3
 CONFIG_LOGLEVEL=2
@@ -24,6 +25,7 @@ CONFIG_MTDIDS_DEFAULT="nand0=nand_mtd"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=nand_mtd:0x100000 at 0x000000(uboot),0x400000 at 0x100000(uImage),0x1fb00000 at 0x500000(rootfs)"
 CONFIG_CMD_UBI=y
 CONFIG_ISO_PARTITION=y
+CONFIG_OF_CONTROL=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_MVSATA_IDE=y
 # CONFIG_MMC_HW_PARTITIONING is not set
@@ -31,4 +33,3 @@ CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
-CONFIG_OF_LIBFDT=y
configs/openrd_client_defconfig +2 -1
index 533a4032488f..b139994f0a0c 100644
@@ -4,6 +4,7 @@ CONFIG_KIRKWOOD=y
 CONFIG_SYS_TEXT_BASE=0x600000
 CONFIG_TARGET_OPENRD=y
 CONFIG_IDENT_STRING="\nOpenRD-Client"
+CONFIG_DEFAULT_DEVICE_TREE="kirkwood-openrd-client"
 CONFIG_SYS_EXTRA_OPTIONS="BOARD_IS_OPENRD_CLIENT"
 CONFIG_BOOTDELAY=3
 CONFIG_LOGLEVEL=2
@@ -24,6 +25,7 @@ CONFIG_MTDIDS_DEFAULT="nand0=nand_mtd"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=nand_mtd:0x100000 at 0x000000(uboot),0x400000 at 0x100000(uImage),0x1fb00000 at 0x500000(rootfs)"
 CONFIG_CMD_UBI=y
 CONFIG_ISO_PARTITION=y
+CONFIG_OF_CONTROL=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_MVSATA_IDE=y
 # CONFIG_MMC_HW_PARTITIONING is not set
@@ -31,4 +33,3 @@ CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
-CONFIG_OF_LIBFDT=y
configs/openrd_ultimate_defconfig +2 -1
index db90072978f1..dfadcca9d9f6 100644
@@ -4,6 +4,7 @@ CONFIG_KIRKWOOD=y
 CONFIG_SYS_TEXT_BASE=0x600000
 CONFIG_TARGET_OPENRD=y
 CONFIG_IDENT_STRING="\nOpenRD-Ultimate"
+CONFIG_DEFAULT_DEVICE_TREE="kirkwood-openrd-ultimate"
 CONFIG_SYS_EXTRA_OPTIONS="BOARD_IS_OPENRD_ULTIMATE"
 CONFIG_BOOTDELAY=3
 CONFIG_LOGLEVEL=2
@@ -24,6 +25,7 @@ CONFIG_MTDIDS_DEFAULT="nand0=nand_mtd"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=nand_mtd:0x100000 at 0x000000(uboot),0x400000 at 0x100000(uImage),0x1fb00000 at 0x500000(rootfs)"
 CONFIG_CMD_UBI=y
 CONFIG_ISO_PARTITION=y
+CONFIG_OF_CONTROL=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_MVSATA_IDE=y
 # CONFIG_MMC_HW_PARTITIONING is not set
@@ -31,4 +33,3 @@ CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
-CONFIG_OF_LIBFDT=y
Signature · 1 line
2.17.0
#17 lore raw

PATCH 11/12 ARM: kirkwood: Add device-tree for pogo_e02

In reply to Chris Packham

Import the dts files from Linux 4.17 and enable CONFIG_OF_CONTROL.

---

 arch/arm/dts/kirkwood-pogo_e02.dts | 132 +++++++++++++++++++++++++++++
 configs/pogo_e02_defconfig         |   3 +-
 2 files changed, 134 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/kirkwood-pogo_e02.dts
arch/arm/dts/kirkwood-pogo_e02.dts new file +132 -0
new file mode 100644
index 000000000000..f9e95e55f36d
@@ -0,0 +1,132 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * kirkwood-pogo_e02.dts - Device tree file for Pogoplug E02
+ *
+ * Copyright (C) 2015 Christoph Junghans <[email protected]>
+ *
+ * based on information of dts files from
+ *  Arch Linux ARM by Oleg Rakhmanov <[email protected]>
+ *  OpenWrt by Felix Kaechele <[email protected]>
+ *
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+
+/ {
+	model = "Cloud Engines Pogoplug E02";
+	compatible = "cloudengines,pogoe02", "marvell,kirkwood-88f6281",
+		     "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x10000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+		stdout-path = &uart0;
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		health {
+			label = "pogo_e02:green:health";
+			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
+			default-state = "keep";
+		};
+		fault {
+			label = "pogo_e02:orange:fault";
+			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = <&pmx_usb_power_enable>;
+		pinctrl-names = "default";
+
+		usb_power: regulator at 1 {
+			compatible = "regulator-fixed";
+			reg = <1>;
+			regulator-name = "USB Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
+		};
+	};
+};
+
+&pinctrl {
+	pinctrl-0 = < &pmx_usb_power_enable &pmx_led_orange
+		      &pmx_led_green >;
+	pinctrl-names = "default";
+
+	pmx_usb_power_enable: pmx-usb-power-enable {
+		marvell,pins = "mpp29";
+		marvell,function = "gpio";
+	};
+
+	pmx_led_green: pmx-led-green {
+		marvell,pins = "mpp48";
+		marvell,function = "gpio";
+	};
+
+	pmx_led_orange: pmx-led-orange {
+		marvell,pins = "mpp49";
+		marvell,function = "gpio";
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
+
+&nand {
+	chip-delay = <40>;
+	status = "okay";
+
+	partition at 0 {
+		label = "u-boot";
+		reg = <0x0000000 0x100000>;
+		read-only;
+	};
+
+	partition at 100000 {
+		label = "uImage";
+		reg = <0x0100000 0x400000>;
+	};
+
+	partition at 500000 {
+		label = "pogoplug";
+		reg = <0x0500000 0x2000000>;
+	};
+
+	partition at 2500000 {
+		label = "root";
+		reg = <0x02500000 0x5b00000>;
+	};
+};
+
+&mdio {
+	status = "okay";
+
+	ethphy0: ethernet-phy at 0 {
+		reg = <0>;
+	};
+};
+
+&eth0 {
+	status = "okay";
+	ethernet0-port at 0 {
+		phy-handle = <&ethphy0>;
+	};
+};
configs/pogo_e02_defconfig +2 -1
index 8e01582b5565..94a3b1aedb76 100644
@@ -3,6 +3,7 @@ CONFIG_KIRKWOOD=y
 CONFIG_SYS_TEXT_BASE=0x600000
 CONFIG_TARGET_POGO_E02=y
 CONFIG_IDENT_STRING="\nPogo E02"
+CONFIG_DEFAULT_DEVICE_TREE="kirkwood-pogo_e02"
 CONFIG_BOOTDELAY=3
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_SYS_PROMPT="PogoE02> "
@@ -18,10 +19,10 @@ CONFIG_CMD_FAT=y
 CONFIG_CMD_JFFS2=y
 CONFIG_CMD_UBI=y
 CONFIG_ISO_PARTITION=y
+CONFIG_OF_CONTROL=y
 CONFIG_ENV_IS_IN_NAND=y
 # CONFIG_MMC is not set
 CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
-CONFIG_OF_LIBFDT=y
Signature · 1 line
2.17.0
#18 lore raw

PATCH 12/12 ARM: kirkwood: Add device-tree for sheevaplug

In reply to Chris Packham

Import the dts files from Linux 4.17 and enable device tree control in u-boot.

---

 arch/arm/dts/kirkwood-sheevaplug-common.dtsi | 104 +++++++++++++++++++
 arch/arm/dts/kirkwood-sheevaplug.dts         |  42 ++++++++
 configs/sheevaplug_defconfig                 |   3 +-
 3 files changed, 148 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/kirkwood-sheevaplug-common.dtsi
 create mode 100644 arch/arm/dts/kirkwood-sheevaplug.dts
arch/arm/dts/kirkwood-sheevaplug-common.dtsi new file +104 -0
new file mode 100644
index 000000000000..0a698d3b7393
@@ -0,0 +1,104 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * kirkwood-sheevaplug-common.dtsi - Common parts for Sheevaplugs
+ *
+ * Copyright (C) 2013 Simon Baatz <[email protected]>
+ */
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+
+/ {
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x20000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 earlyprintk";
+		stdout-path = &uart0;
+	};
+
+	ocp at f1000000 {
+		pinctrl: pin-controller at 10000 {
+
+			pmx_usb_power_enable: pmx-usb-power-enable {
+				marvell,pins = "mpp29";
+				marvell,function = "gpio";
+			};
+			pmx_led_red: pmx-led-red {
+				marvell,pins = "mpp46";
+				marvell,function = "gpio";
+			};
+			pmx_led_blue: pmx-led-blue {
+				marvell,pins = "mpp49";
+				marvell,function = "gpio";
+			};
+			pmx_sdio_cd: pmx-sdio-cd {
+				marvell,pins = "mpp44";
+				marvell,function = "gpio";
+			};
+			pmx_sdio_wp: pmx-sdio-wp {
+				marvell,pins = "mpp47";
+				marvell,function = "gpio";
+			};
+		};
+		serial at 12000 {
+			status = "okay";
+		};
+	};
+
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = <&pmx_usb_power_enable>;
+		pinctrl-names = "default";
+
+		usb_power: regulator at 1 {
+			compatible = "regulator-fixed";
+			reg = <1>;
+			regulator-name = "USB Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 29 0>;
+		};
+	};
+};
+
+&nand {
+	status = "okay";
+
+	partition at 0 {
+		label = "u-boot";
+		reg = <0x0000000 0x100000>;
+	};
+
+	partition at 100000 {
+		label = "uImage";
+		reg = <0x0100000 0x400000>;
+	};
+
+	partition at 500000 {
+		label = "root";
+		reg = <0x0500000 0x1fb00000>;
+	};
+};
+
+&mdio {
+	status = "okay";
+
+	ethphy0: ethernet-phy at 0 {
+		reg = <0>;
+	};
+};
+
+&eth0 {
+	status = "okay";
+	ethernet0-port at 0 {
+		phy-handle = <&ethphy0>;
+	};
+};
arch/arm/dts/kirkwood-sheevaplug.dts new file +42 -0

42 lines not on this page · raw message

configs/sheevaplug_defconfig +2 -1
index d921666ae846..1e4068bf9c36 100644
@@ -3,6 +3,7 @@ CONFIG_KIRKWOOD=y
 CONFIG_SYS_TEXT_BASE=0x600000
 CONFIG_TARGET_SHEEVAPLUG=y
 CONFIG_IDENT_STRING="\nMarvell-Sheevaplug"
+CONFIG_DEFAULT_DEVICE_TREE="kirkwood-sheevaplug"
 CONFIG_BOOTDELAY=3
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_HUSH_PARSER=y
@@ -25,6 +26,7 @@ CONFIG_MTDIDS_DEFAULT="nand0=orion_nand"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=orion_nand:512K(uboot),512K(env),4M(kernel),-(rootfs)"
 CONFIG_CMD_UBI=y
 CONFIG_ISO_PARTITION=y
+CONFIG_OF_CONTROL=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_MVSATA_IDE=y
 CONFIG_SYS_NS16550=y
@@ -32,4 +34,3 @@ CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_LZMA=y
-CONFIG_OF_LIBFDT=y
Signature · 1 line
2.17.0
#19 lore raw

cover kirkwood: device tree support

In reply to Chris Packham
Quoted 67 lines · Chris Packham

This is an initial series to bring in the device tree files for kirkwood boards from Linux. All the patches are fairly mechanical matching up the device trees based on the defconfig name (and some educated guesses in a few places).

Chris Packham (12):
ARM: add devicetree files for kirkwood SoC
ARM: kirkwood: Add device-tree for dns325
ARM: kirkwood: Add device-tree for dockstar
ARM: kirkwood: Add device-tree for goflexhome
ARM: kirkwood: Add device-tree for guruplug
ARM: kirkwood: Add device-tree for ib62x0
ARM: kirkwood: Add device-tree for iconnect
ARM: kirkwood: Add device-tree for nas220
ARM: kirkwood: Add device-tree for nsa310s
ARM: kirkwood: Add device-tree for openrd
ARM: kirkwood: Add device-tree for pogo_e02
ARM: kirkwood: Add device-tree for sheevaplug

  arch/arm/dts/kirkwood-6192.dtsi               |  88 ++++
  arch/arm/dts/kirkwood-6281.dtsi               |  90 ++++
  arch/arm/dts/kirkwood-98dx4122.dtsi           |  53 +++
  arch/arm/dts/kirkwood-blackarmor-nas220.dts   | 172 ++++++++
  arch/arm/dts/kirkwood-dns325.dts              |  63 +++
  arch/arm/dts/kirkwood-dnskw.dtsi              | 235 +++++++++++
  arch/arm/dts/kirkwood-dockstar.dts            | 110 +++++
  arch/arm/dts/kirkwood-goflexnet.dts           | 190 +++++++++
  .../arm/dts/kirkwood-guruplug-server-plus.dts | 133 ++++++
  arch/arm/dts/kirkwood-ib62x0.dts              | 146 +++++++
  arch/arm/dts/kirkwood-iconnect.dts            | 195 +++++++++
  arch/arm/dts/kirkwood-nsa310.dts              | 139 +++++++
  arch/arm/dts/kirkwood-nsa3x0-common.dtsi      | 158 +++++++
  arch/arm/dts/kirkwood-openrd-base.dts         |  39 ++
  arch/arm/dts/kirkwood-openrd-client.dts       |  73 ++++
  arch/arm/dts/kirkwood-openrd-ultimate.dts     |  55 +++
  arch/arm/dts/kirkwood-openrd.dtsi             | 122 ++++++
  arch/arm/dts/kirkwood-pogo_e02.dts            | 132 ++++++
  arch/arm/dts/kirkwood-sheevaplug-common.dtsi  | 104 +++++
  arch/arm/dts/kirkwood-sheevaplug.dts          |  42 ++
  arch/arm/dts/kirkwood.dtsi                    | 393 ++++++++++++++++++
  configs/dns325_defconfig                      |   3 +-
  configs/dockstar_defconfig                    |   3 +-
  configs/goflexhome_defconfig                  |   3 +-
  configs/guruplug_defconfig                    |   3 +-
  configs/ib62x0_defconfig                      |   3 +-
  configs/iconnect_defconfig                    |   3 +-
  configs/nas220_defconfig                      |   3 +-
  configs/nsa310s_defconfig                     |   3 +-
  configs/openrd_base_defconfig                 |   3 +-
  configs/openrd_client_defconfig               |   3 +-
  configs/openrd_ultimate_defconfig             |   3 +-
  configs/pogo_e02_defconfig                    |   3 +-
  configs/sheevaplug_defconfig                  |   3 +-
  34 files changed, 2758 insertions(+), 13 deletions(-)

create mode 100644 arch/arm/dts/kirkwood-6192.dtsi create mode 100644 arch/arm/dts/kirkwood-6281.dtsi create mode 100644 arch/arm/dts/kirkwood-98dx4122.dtsi create mode 100644 arch/arm/dts/kirkwood-blackarmor-nas220.dts create mode 100644 arch/arm/dts/kirkwood-dns325.dts create mode 100644 arch/arm/dts/kirkwood-dnskw.dtsi create mode 100644 arch/arm/dts/kirkwood-dockstar.dts create mode 100644 arch/arm/dts/kirkwood-goflexnet.dts create mode 100644 arch/arm/dts/kirkwood-guruplug-server-plus.dts create mode 100644 arch/arm/dts/kirkwood-ib62x0.dts create mode 100644 arch/arm/dts/kirkwood-iconnect.dts create mode 100644 arch/arm/dts/kirkwood-nsa310.dts create mode 100644 arch/arm/dts/kirkwood-nsa3x0-common.dtsi

Quoted 9 lines

create mode 100644 arch/arm/dts/kirkwood-openrd-base.dts create mode 100644 arch/arm/dts/kirkwood-openrd-client.dts create mode 100644 arch/arm/dts/kirkwood-openrd-ultimate.dts create mode 100644 arch/arm/dts/kirkwood-openrd.dtsi create mode 100644 arch/arm/dts/kirkwood-pogo_e02.dts create mode 100644 arch/arm/dts/kirkwood-sheevaplug-common.dtsi create mode 100644 arch/arm/dts/kirkwood-sheevaplug.dts create mode 100644 arch/arm/dts/kirkwood.dtsi

All patches with the exception of the nsa310s one applied to

u-boot-marvell/master

Thanks,
Stefan