Skip to contentSkip to conversation

arm: mvebu: add Synology DS213j and DS414 .dts files

PATCH Superseded Arnaud Ebalard 3 participants 17 messages Nov 17, 2014 – Nov 18, 2014

Subsystems (2)

v3 of 6 Superseded Latest is v6 →

lore
Share & tools
lore
#0 lore raw

v3 cover arm: mvebu: add Synology DS213j and DS414 .dts files

Hi,

This series adds .dts files for Synology DS213j (armada 370 2-bay NAS) and DS414 (armada XP 4-bay NAS) devices. It is based on comments received on a v0 submission of DS213j .dts file [1] and Andrew's comments on a v1 ( for both DS213j and DS414 .dts files) [2] and Andrew/Sebastian' comments on v2 regarding pinctrl improvements [3].

Cheers,

a+

[1]: http://thread.gmane.org/gmane.linux.drivers.devicetree/95401
[2]: http://thread.gmane.org/gmane.linux.drivers.devicetree/98830
[3]: http://thread.gmane.org/gmane.linux.drivers.devicetree/98892

Changes since v2:

- Added various patches to improve/refactor Armada 370/XP pinctrl nodes/properties and use sensible defaults when possible.
- changed gpio-fan,speed-map to better match max rotation speed (1900 RPM) for DS213j

Changes since v1:

- Added a patch to fix Seiko Instruments, Inc. prefix from "ssi" to "sii" for s35390 RTC chip in kirkwood-synology.dtsi as reported by Andrew
- Fixed DS414 and DS213j .dts files which had the same issue due to a blind copy-and-paste.
- Added a patch for armada-xp-lenovo-ix4-300d.dts to use uart alias for stdout-path, as suggested by Andrew.
- removed pinctrl properties for ethernet interface wrongly referencing a RGMII pin configuration: the PHY is connected using SGMII.
- moved some DS213j pinctrl entries (spi0, uart0) in armada-370.dtsi
- same thing for DS414 pinctrl entries (ge0/1, spi0) moved to armada-xp-mv78230.dtsi
- changed pinctrl nodes and labels to match naming convention found in .dtsi: pmx_*: pmx- changed to *_pin: -pin.
- same thing for DS414
- added a comment in the .dts file about DS414 being susceptible at boot when an USB/serial converter is connected to the UART pins.

Changes since v0:

- Added a comment at the beginning of DS213j and DS414j .dts file regarding the need for a recent Marvell bootloader. Arnd suggested to do a specific .dtb file for new and old bootloaders but I think if we follow this path for DS414 and DS213j, we will probably have to do it for all Armada-based synology NAS and possibly for other Armada 370/XP based devices. Opting for recent bootloaders config and having a comment is easier. It is likely that a user already has a recent bootloader. Otherwise, upgrade is a one click process anyway. If a user thinks it is easier to have two different .dts files in the kernel, she will still be able to push a patch.
- Added a comment in the .dts file about the bootloader screwing the kernel if the environment is saved.
- Kept GPL licence for .dts file
- Fixed bad naming of node and alias (_ vs -)
- Added micron vendor prefix for n25q064 flash
- Disabled SoC RTC; a Seiko S-35390A is used as main RTC
- Added comments about the purpose of each serial port
- Added stdout-path = &uart0; to help barebox. A specific patch is included in the series to provide labels for uart serial nodes
- Added patch for DS414 .dts file

Arnaud Ebalard (12):
of: add "micron" vendor prefix for Micron
arm: mvebu: fix vendor prefix typo in kirkwood-synology.dtsi
arm: mvebu: add uartX labels for Armada SoC serial nodes
arm: mvebu: use recently introduced uart label for stdout-path
arm: mvebu: remove duplications in pinctrl nodes for Armada 370/XP
arm: mvebu: define and use common Armada 370 SPI pinctrl settings
arm: mvebu: define and use common Armada 370 UART pinctrl settings
arm: mvebu: define and use common Armada XP UART2/3 pinctrl settings
arm: mvebu: define and use ge0/1 rgmii pinctrl settings for armada XP
arm: mvebu: define and use common Armada XP SPI pinctrl setting
arm: mvebu: add .dts file for Synology DS213j
arm: mvebu: add .dts file for Synology DS414

 .../devicetree/bindings/vendor-prefixes.txt        |   1 +
 arch/arm/boot/dts/Makefile                         |   6 +-
 arch/arm/boot/dts/armada-370-db.dts                |   2 +
 arch/arm/boot/dts/armada-370-synology-ds213j.dts   | 321 ++++++++++++++++++++
 arch/arm/boot/dts/armada-370-xp.dtsi               |   9 +-
 arch/arm/boot/dts/armada-370.dtsi                  |  58 +++-
 arch/arm/boot/dts/armada-xp-axpwifiap.dts          |  25 +-
 arch/arm/boot/dts/armada-xp-db.dts                 |   4 +
 arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts    |   6 +-
 arch/arm/boot/dts/armada-xp-mv78230.dtsi           |   7 -
 arch/arm/boot/dts/armada-xp-mv78260.dtsi           |   7 -
 arch/arm/boot/dts/armada-xp-mv78460.dtsi           |   7 -
 arch/arm/boot/dts/armada-xp-netgear-rn2120.dts     |   4 +
 arch/arm/boot/dts/armada-xp-synology-ds414.dts     | 330 +++++++++++++++++++++
 arch/arm/boot/dts/armada-xp.dtsi                   |  52 +++-
 arch/arm/boot/dts/kirkwood-synology.dtsi           |   2 +-
 16 files changed, 788 insertions(+), 53 deletions(-)
 create mode 100644 arch/arm/boot/dts/armada-370-synology-ds213j.dts
 create mode 100644 arch/arm/boot/dts/armada-xp-synology-ds414.dts
Signature · 1 line
2.1.1
#1 lore raw

PATCH v3 1/12 of: add "micron" vendor prefix for Micron

Micron vendor prefix is not listed yet in vendor-prefixes.txt file. Even if the expected vendor prefix should be the NASDAQ symbol ("mu" in that case), it seems reasonable to use "micron" here because it is what is already found at various locations (e.g. under arch/arm/boot/dts/ for instance).

---
 Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/vendor-prefixes.txt +1 -0
index 723999d73744..55a3a7f19063 100644
@@ -96,6 +96,7 @@ mitsubishi	Mitsubishi Electric Corporation
 mosaixtech	Mosaix Technologies, Inc.
 moxa	Moxa
 mpl	MPL AG
+micron	Micron Technology, Inc.
 mundoreader	Mundo Reader S.L.
 murata	Murata Manufacturing Co., Ltd.
 mxicy	Macronix International Co., Ltd.
Signature · 1 line
2.1.1
#2 lore raw

PATCH v3 1/12 of: add "micron" vendor prefix for Micron

Quoted 6 lines · Arnaud Ebalard

Micron vendor prefix is not listed yet in vendor-prefixes.txt file. Even if the expected vendor prefix should be the NASDAQ symbol ("mu" in that case), it seems reasonable to use "micron" here because it is what is already found at various locations (e.g. under arch/arm/boot/dts/ for instance).

Already have the same patch queued up.

Rob

Quoted 26 lines
---
 Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/vendor-prefixes.txt +1 -1
index 723999d73744..55a3a7f19063 100644
@@ -96,6 +96,7 @@ mitsubishi    Mitsubishi Electric Corporation
 mosaixtech     Mosaix Technologies, Inc.
 moxa   Moxa
 mpl    MPL AG
+micron Micron Technology, Inc.
 mundoreader    Mundo Reader S.L.
 murata Murata Manufacturing Co., Ltd.
 mxicy  Macronix International Co., Ltd.
--

2.1.1

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

#3 lore raw

PATCH v3 1/12 of: add "micron" vendor prefix for Micron

Hi,

Quoted 9 lines · Rob Herring
Quoted 6 lines · Arnaud Ebalard

Micron vendor prefix is not listed yet in vendor-prefixes.txt file. Even if the expected vendor prefix should be the NASDAQ symbol ("mu" in that case), it seems reasonable to use "micron" here because it is what is already found at various locations (e.g. under arch/arm/boot/dts/ for instance).

Already have the same patch queued up.

Perfect, I'll drop mine.

Cheers,

a+

#4 lore raw

PATCH v3 2/12 arm: mvebu: fix vendor prefix typo in kirkwood-synology.dtsi

In reply to Arnaud Ebalard

As reported by Andrew, the vendor prefix for Seiko Instruments, Inc. S-35390A I2C RTC chip in kirkwood-synology.dtsi has a typo (ssi instead of sii). This patches fixes it.

---
 arch/arm/boot/dts/kirkwood-synology.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/boot/dts/kirkwood-synology.dtsi +1 -1
index 811e0971fc58..8be5b2e4626e 100644
@@ -266,7 +266,7 @@
 
 			s35390a: s35390a at 30 {
 				status = "disabled";
-				compatible = "ssi,s35390a";
+				compatible = "sii,s35390a";
 				reg = <0x30>;
 			};
 		};
Signature · 1 line
2.1.1
#5 lore raw

PATCH v3 3/12 arm: mvebu: add uartX labels for Armada SoC serial nodes

In reply to Arnaud Ebalard

This patch adds uartX labels for Armada SoC serial nodes. This is a preliminary work to be able to easily reference the serial lines in Device Tree files. One expected use is when providing stdout-path property for barebox.

---
 arch/arm/boot/dts/armada-370-xp.dtsi | 5 +++--
 arch/arm/boot/dts/armada-xp.dtsi     | 5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)
arch/arm/boot/dts/armada-370-xp.dtsi +3 -2
index 83286ec9702c..2be9723bcdf3 100644
@@ -151,7 +151,7 @@
 				status = "disabled";
 			};
 
-			serial at 12000 {
+			uart0: serial at 12000 {
 				compatible = "snps,dw-apb-uart";
 				reg = <0x12000 0x100>;
 				reg-shift = <2>;
@@ -160,7 +160,8 @@
 				clocks = <&coreclk 0>;
 				status = "disabled";
 			};
-			serial at 12100 {
+
+			uart1: serial at 12100 {
 				compatible = "snps,dw-apb-uart";
 				reg = <0x12100 0x100>;
 				reg-shift = <2>;
arch/arm/boot/dts/armada-xp.dtsi +3 -2
index bff9f6c18db1..a68f5b837536 100644
@@ -52,7 +52,7 @@
 				reg = <0x11100 0x100>;
 			};
 
-			serial at 12200 {
+			uart2: serial at 12200 {
 				compatible = "snps,dw-apb-uart";
 				reg = <0x12200 0x100>;
 				reg-shift = <2>;
@@ -61,7 +61,8 @@
 				clocks = <&coreclk 0>;
 				status = "disabled";
 			};
-			serial at 12300 {
+
+			uart3: serial at 12300 {
 				compatible = "snps,dw-apb-uart";
 				reg = <0x12300 0x100>;
 				reg-shift = <2>;
Signature · 1 line
2.1.1
#6 lore raw

PATCH v3 4/12 arm: mvebu: use recently introduced uart label for stdout-path

In reply to Arnaud Ebalard

Now that labels for uartX are available in Marvell Armada .dtsi files, this patch replaces the "/soc/internal-regs/serial at 12000" found in armada-xp-lenovo-ix4-300d.dts file for stdout-path property by the more concise &uart0.

---
 arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts +1 -1
index 469cf7137595..cccf54784c4c 100644
@@ -22,7 +22,7 @@
 
 	chosen {
 		bootargs = "console=ttyS0,115200 earlyprintk";
-		stdout-path = "/soc/internal-regs/serial at 12000";
+		stdout-path = &uart0;
 	};
 
 	memory {
Signature · 1 line
2.1.1
#7 lore raw

PATCH v3 5/12 arm: mvebu: remove duplications in pinctrl nodes for Armada 370/XP

In reply to Arnaud Ebalard

As suggested by Sebastian and Andrew, it is possible to refactor and remove duplications in pinctrl nodes for Armada 370/XP in the following way:

1) define a pinctrl node in armada-370-xp.dtsi w/ only the reg property defined (same for all 370/XP SoCs)
2) remove now redundant reg properties in armada-370.dtsi and armada-xp-mv*.dtsi files
3) move identical and redundant SDIO pins definitions found in armada-xp-mv*.dtsi to a newly created pinctrl node in armada-xp.dtsi

---
 arch/arm/boot/dts/armada-370-xp.dtsi     | 4 ++++
 arch/arm/boot/dts/armada-370.dtsi        | 1 -
 arch/arm/boot/dts/armada-xp-mv78230.dtsi | 7 -------
 arch/arm/boot/dts/armada-xp-mv78260.dtsi | 7 -------
 arch/arm/boot/dts/armada-xp-mv78460.dtsi | 7 -------
 arch/arm/boot/dts/armada-xp.dtsi         | 8 ++++++++
 6 files changed, 12 insertions(+), 22 deletions(-)
arch/arm/boot/dts/armada-370-xp.dtsi +4 -0
index 2be9723bcdf3..02df61a6a11b 100644
@@ -103,6 +103,10 @@
 			#size-cells = <1>;
 			ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
 
+			pinctrl {
+				reg = <0x18000 0x38>;
+			};
+
 			rtc at 10300 {
 				compatible = "marvell,orion-rtc";
 				reg = <0x10300 0x20>;
arch/arm/boot/dts/armada-370.dtsi +0 -1
index 6b3c23b1e138..2040da11462b 100644
@@ -113,7 +113,6 @@
 
 			pinctrl {
 				compatible = "marvell,mv88f6710-pinctrl";
-				reg = <0x18000 0x38>;
 
 				sdio_pins1: sdio-pins1 {
 					marvell,pins = "mpp9",  "mpp11", "mpp12",
arch/arm/boot/dts/armada-xp-mv78230.dtsi +0 -7
index 2592e1c13560..b5933aa9ab50 100644
@@ -169,13 +169,6 @@
 		internal-regs {
 			pinctrl {
 				compatible = "marvell,mv78230-pinctrl";
-				reg = <0x18000 0x38>;
-
-				sdio_pins: sdio-pins {
-					marvell,pins = "mpp30", "mpp31", "mpp32",
-						       "mpp33", "mpp34", "mpp35";
-					marvell,function = "sd0";
-				};
 			};
 
 			gpio0: gpio at 18100 {
arch/arm/boot/dts/armada-xp-mv78260.dtsi +0 -7
index 480e237a870f..5954b362180c 100644
@@ -253,13 +253,6 @@
 		internal-regs {
 			pinctrl {
 				compatible = "marvell,mv78260-pinctrl";
-				reg = <0x18000 0x38>;
-
-				sdio_pins: sdio-pins {
-					marvell,pins = "mpp30", "mpp31", "mpp32",
-						       "mpp33", "mpp34", "mpp35";
-					marvell,function = "sd0";
-				};
 			};
 
 			gpio0: gpio at 18100 {
arch/arm/boot/dts/armada-xp-mv78460.dtsi +0 -7
index 2c7b1fef4703..735924d62e12 100644
@@ -291,13 +291,6 @@
 		internal-regs {
 			pinctrl {
 				compatible = "marvell,mv78460-pinctrl";
-				reg = <0x18000 0x38>;
-
-				sdio_pins: sdio-pins {
-					marvell,pins = "mpp30", "mpp31", "mpp32",
-						       "mpp33", "mpp34", "mpp35";
-					marvell,function = "sd0";
-				};
 			};
 
 			gpio0: gpio at 18100 {
arch/arm/boot/dts/armada-xp.dtsi +8 -0
index a68f5b837536..83bf32344a60 100644
@@ -42,6 +42,14 @@
 				wt-override;
 			};
 
+			pinctrl {
+				sdio_pins: sdio-pins {
+					marvell,pins = "mpp30", "mpp31", "mpp32",
+						       "mpp33", "mpp34", "mpp35";
+					marvell,function = "sd0";
+				};
+			};
+
 			i2c0: i2c at 11000 {
 				compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
 				reg = <0x11000 0x100>;
Signature · 1 line
2.1.1
#8 lore raw

PATCH v3 6/12 arm: mvebu: define and use common Armada 370 SPI pinctrl settings

In reply to Arnaud Ebalard

This patch defines common Armada 370 pinctrl settings for spi0 and spi1 interfaces:

spi0: MPP33-36 as default, MPP32,63-65 as available alternate config
spi1: MPP49-52 as default

Currently, the Armada 370 DB .dts file has no explicit pinctrl info for the spi0 interface used to access the flash on the board. The patch fixes that by also adding explicit pinctrl info (MPP32,63-65) for this SPI interface.

Note: this patch has the potential to break out-of-tree users w/o specific pinctrl settings for their spi interfaces if the default above does not match their config.

---
 arch/arm/boot/dts/armada-370-db.dts |  2 ++
 arch/arm/boot/dts/armada-370.dtsi   | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+)
arch/arm/boot/dts/armada-370-db.dts +2 -0
index a495e5821ab8..c73fe9a91e59 100644
@@ -135,6 +135,8 @@
 			};
 
 			spi0: spi at 10600 {
+				pinctrl-0 = <&spi0_pins2>;
+				pinctrl-names = "default";
 				status = "okay";
 
 				spi-flash at 0 {
arch/arm/boot/dts/armada-370.dtsi +32 -0
index 2040da11462b..901806f35f40 100644
@@ -114,6 +114,24 @@
 			pinctrl {
 				compatible = "marvell,mv88f6710-pinctrl";
 
+				spi0_pins1: spi0-pins1 {
+					marvell,pins = "mpp33", "mpp34",
+						       "mpp35", "mpp36";
+					marvell,function = "spi0";
+				};
+
+				spi0_pins2: spi0_pins2 {
+					marvell,pins = "mpp32", "mpp63",
+						       "mpp64", "mpp65";
+					marvell,function = "spi0";
+				};
+
+				spi1_pins: spi1-pins {
+					marvell,pins = "mpp49", "mpp50",
+						       "mpp51", "mpp52";
+					marvell,function = "spi1";
+				};
+
 				sdio_pins1: sdio-pins1 {
 					marvell,pins = "mpp9",  "mpp11", "mpp12",
 							"mpp13", "mpp14", "mpp15";
@@ -256,6 +274,20 @@
 				status = "disabled";
 			};
 
+			/*
+			 * Default SPI pinctrl setting, can be overwritten on
+			 * board level if a different configuration is used.
+			 */
+			spi0: spi at 10600 {
+				pinctrl-0 = <&spi0_pins1>;
+				pinctrl-names = "default";
+			};
+
+			spi1: spi at 10680 {
+				pinctrl-0 = <&spi1_pins>;
+				pinctrl-names = "default";
+			};
+
 			usb at 50000 {
 				clocks = <&coreclk 0>;
 			};
Signature · 1 line
2.1.1
#9 lore raw

PATCH v3 7/12 arm: mvebu: define and use common Armada 370 UART pinctrl settings

In reply to Arnaud Ebalard

This patch defines common Armada 370 pinctrl settings for uart0 and uart1 interfaces:

uart0: MPP0-1 as default
uart1: MPP41-42 as default

Note: this patch has the potential to break out-of-tree users w/o specific pinctrl settings for their uart interfaces if the default above does not match their config.

---
 arch/arm/boot/dts/armada-370.dtsi | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
arch/arm/boot/dts/armada-370.dtsi +25 -0
index 901806f35f40..84ab0f23b857 100644
@@ -126,6 +126,16 @@
 					marvell,function = "spi0";
 				};
 
+				uart0_pins: uart0-pins {
+					marvell,pins = "mpp0", "mpp1";
+					marvell,function = "uart0";
+				};
+
+				uart1_pins: uart1-pins {
+					marvell,pins = "mpp41", "mpp42";
+					marvell,function = "uart1";
+				};
+
 				spi1_pins: spi1-pins {
 					marvell,pins = "mpp49", "mpp50",
 						       "mpp51", "mpp52";
@@ -288,6 +298,21 @@
 				pinctrl-names = "default";
 			};
 
+			/*
+			 * Default UART pinctrl setting without RTS/CTS, can
+			 * be overwritten on board level if a different
+			 * configuration is used.
+			 */
+			uart0: serial at 12000 {
+				pinctrl-0 = <&uart0_pins>;
+				pinctrl-names = "default";
+			};
+
+			uart1: serial at 12100 {
+				pinctrl-0 = <&uart1_pins>;
+				pinctrl-names = "default";
+			};
+
 			usb at 50000 {
 				clocks = <&coreclk 0>;
 			};
Signature · 1 line
2.1.1
#10 lore raw

PATCH v3 8/12 arm: mvebu: define and use common Armada XP UART2/3 pinctrl settings

In reply to Arnaud Ebalard

This patch defines common Armada XP pinctrl settings for uart2 and uart3 interfaces (uart0 and uart1 rx/tx do not rely on MPP):

uart2: MPP42-43 as default
uart3: MPP44-45 as default

---
 arch/arm/boot/dts/armada-xp.dtsi | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
arch/arm/boot/dts/armada-xp.dtsi +14 -0
index 83bf32344a60..c7449f652fb5 100644
@@ -48,6 +48,16 @@
 						       "mpp33", "mpp34", "mpp35";
 					marvell,function = "sd0";
 				};
+
+				uart2_pins: uart2-pins {
+					marvell,pins = "mpp42", "mpp43";
+					marvell,function = "uart2";
+				};
+
+				uart3_pins: uart3-pins {
+					marvell,pins = "mpp44", "mpp45";
+					marvell,function = "uart3";
+				};
 			};
 
 			i2c0: i2c at 11000 {
@@ -62,6 +72,8 @@
 
 			uart2: serial at 12200 {
 				compatible = "snps,dw-apb-uart";
+				pinctrl-0 = <&uart2_pins>;
+				pinctrl-names = "default";
 				reg = <0x12200 0x100>;
 				reg-shift = <2>;
 				interrupts = <43>;
@@ -72,6 +84,8 @@
 
 			uart3: serial at 12300 {
 				compatible = "snps,dw-apb-uart";
+				pinctrl-0 = <&uart3_pins>;
+				pinctrl-names = "default";
 				reg = <0x12300 0x100>;
 				reg-shift = <2>;
 				interrupts = <44>;
Signature · 1 line
2.1.1
#11 lore raw

PATCH v3 9/12 arm: mvebu: define and use ge0/1 rgmii pinctrl settings for armada XP

In reply to Arnaud Ebalard

Armada XP AXWiFiAP has local definitions for ge0/1 rgmii pinctrl settings which can be be used by other boards. This patch moves those definitions to armada-xp.dtsi file and then reference those pinctrl entries in all current .dts files using ge0/1 interface in rgmii-id mode for their PHY.

---
 arch/arm/boot/dts/armada-xp-axpwifiap.dts       | 18 ++----------------
 arch/arm/boot/dts/armada-xp-db.dts              |  4 ++++
 arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts |  4 ++++
 arch/arm/boot/dts/armada-xp-netgear-rn2120.dts  |  4 ++++
 arch/arm/boot/dts/armada-xp.dtsi                | 14 ++++++++++++++
 5 files changed, 28 insertions(+), 16 deletions(-)
arch/arm/boot/dts/armada-xp-axpwifiap.dts +2 -16
index a55a97a70505..7a6e50632a1f 100644
@@ -64,20 +64,6 @@
 				pinctrl-0 = <&pmx_phy_int>;
 				pinctrl-names = "default";
 
-				pmx_ge0: pmx-ge0 {
-					marvell,pins = "mpp0", "mpp1", "mpp2", "mpp3",
-						       "mpp4", "mpp5", "mpp6", "mpp7",
-						       "mpp8", "mpp9", "mpp10", "mpp11";
-					marvell,function = "ge0";
-				};
-
-				pmx_ge1: pmx-ge1 {
-					marvell,pins = "mpp12", "mpp13", "mpp14", "mpp15",
-						       "mpp16", "mpp17", "mpp18", "mpp19",
-						       "mpp20", "mpp21", "mpp22", "mpp23";
-					marvell,function = "ge1";
-				};
-
 				pmx_keys: pmx-keys {
 					marvell,pins = "mpp33";
 					marvell,function = "gpio";
@@ -118,14 +104,14 @@
 			};
 
 			ethernet at 70000 {
-				pinctrl-0 = <&pmx_ge0>;
+				pinctrl-0 = <&ge0_rgmii_pins>;
 				pinctrl-names = "default";
 				status = "okay";
 				phy = <&phy0>;
 				phy-mode = "rgmii-id";
 			};
 			ethernet at 74000 {
-				pinctrl-0 = <&pmx_ge1>;
+				pinctrl-0 = <&ge1_rgmii_pins>;
 				pinctrl-names = "default";
 				status = "okay";
 				phy = <&phy1>;
arch/arm/boot/dts/armada-xp-db.dts +4 -0
index 42ddb2864365..bc28691161f4 100644
@@ -142,11 +142,15 @@
 			};
 
 			ethernet at 70000 {
+				pinctrl-0 = <&ge0_rgmii_pins>;
+				pinctrl-names = "default";
 				status = "okay";
 				phy = <&phy0>;
 				phy-mode = "rgmii-id";
 			};
 			ethernet at 74000 {
+				pinctrl-0 = <&ge1_rgmii_pins>;
+				pinctrl-names = "default";
 				status = "okay";
 				phy = <&phy1>;
 				phy-mode = "rgmii-id";
arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts +4 -0
index cccf54784c4c..8560047ce426 100644
@@ -97,12 +97,16 @@
 			};
 
 			ethernet at 70000 {
+				pinctrl-0 = <&ge0_rgmii_pins>;
+				pinctrl-names = "default";
 				status = "okay";
 				phy = <&phy0>;
 				phy-mode = "rgmii-id";
 			};
 
 			ethernet at 74000 {
+				pinctrl-0 = <&ge1_rgmii_pins>;
+				pinctrl-names = "default";
 				status = "okay";
 				phy = <&phy1>;
 				phy-mode = "rgmii-id";
arch/arm/boot/dts/armada-xp-netgear-rn2120.dts +4 -0
index 7d8f32873e82..d61caf829b8b 100644
@@ -152,12 +152,16 @@
 			};
 
 			ethernet at 70000 {
+				pinctrl-0 = <&ge0_rgmii_pins>;
+				pinctrl-names = "default";
 				status = "okay";
 				phy = <&phy0>;
 				phy-mode = "rgmii-id";
 			};
 
 			ethernet at 74000 {
+				pinctrl-0 = <&ge1_rgmii_pins>;
+				pinctrl-names = "default";
 				status = "okay";
 				phy = <&phy1>;
 				phy-mode = "rgmii-id";
arch/arm/boot/dts/armada-xp.dtsi +14 -0
index c7449f652fb5..4f685f7ec273 100644
@@ -58,6 +58,20 @@
 					marvell,pins = "mpp44", "mpp45";
 					marvell,function = "uart3";
 				};
+
+				ge0_rgmii_pins: ge0-rgmii-pins {
+					marvell,pins = "mpp0", "mpp1", "mpp2", "mpp3",
+						       "mpp4", "mpp5", "mpp6", "mpp7",
+						       "mpp8", "mpp9", "mpp10", "mpp11";
+					marvell,function = "ge0";
+				};
+
+				ge1_rgmii_pins: ge1-rgmii-pins {
+					marvell,pins = "mpp12", "mpp13", "mpp14", "mpp15",
+						       "mpp16", "mpp17", "mpp18", "mpp19",
+						       "mpp20", "mpp21", "mpp22", "mpp23";
+					marvell,function = "ge1";
+				};
 			};
 
 			i2c0: i2c at 11000 {
Signature · 1 line
2.1.1
#12 lore raw

PATCH v3 10/12 arm: mvebu: define and use common Armada XP SPI pinctrl setting

In reply to Arnaud Ebalard

This patch defines common Armada XP pinctrl settings in armada-xp.dtsi for the supported SPI interface (MPP36-39) and use it as default for Armada XP spi interface.

Note: this patch has the potential to break out-of-tree users w/o specific pinctrl settings for their spi interfaces if the default above does not match their config (i.e. if they do not use CS0).

---
 arch/arm/boot/dts/armada-xp-axpwifiap.dts |  7 -------
 arch/arm/boot/dts/armada-xp.dtsi          | 11 +++++++++++
 2 files changed, 11 insertions(+), 7 deletions(-)
arch/arm/boot/dts/armada-xp-axpwifiap.dts +0 -7
index 7a6e50632a1f..804496edac9a 100644
@@ -69,11 +69,6 @@
 					marvell,function = "gpio";
 				};
 
-				pmx_spi: pmx-spi {
-					marvell,pins = "mpp36", "mpp37", "mpp38", "mpp39";
-					marvell,function = "spi";
-				};
-
 				pmx_phy_int: pmx-phy-int {
 					marvell,pins = "mpp32";
 					marvell,function = "gpio";
@@ -120,8 +115,6 @@
 
 			spi0: spi at 10600 {
 				status = "okay";
-				pinctrl-0 = <&pmx_spi>;
-				pinctrl-names = "default";
 
 				spi-flash at 0 {
 					#address-cells = <1>;
arch/arm/boot/dts/armada-xp.dtsi +11 -0
index 4f685f7ec273..51454de322b1 100644
@@ -72,6 +72,17 @@
 						       "mpp20", "mpp21", "mpp22", "mpp23";
 					marvell,function = "ge1";
 				};
+
+				spi0_pins: spi0-pins {
+					marvell,pins = "mpp36", "mpp37",
+						       "mpp38", "mpp39";
+					marvell,function = "spi";
+				};
+			};
+
+			spi0: spi at 10600 {
+				pinctrl-0 = <&spi0_pins>;
+				pinctrl-names = "default";
 			};
 
 			i2c0: i2c at 11000 {
Signature · 1 line
2.1.1
#13 lore raw

PATCH v3 11/12 arm: mvebu: add .dts file for Synology DS213j

In reply to Arnaud Ebalard

Synology DS213j is a 2-bay NAS powered by a Marvell Armada 370 (88F6710 @1.2Ghz). It is very similar on many aspects to previous 2-bay synology models based on Marvell kirkwood SoC. Here is a short summary of the device:

- 512MB RAM
- boot on SPI flash (64Mbit Micron N25Q064)
- 1 GbE interface (Armada MAC connected to a Marvell 88E1512 PHY via SGMII)
- 2 rear USB 2.0 ports (directly handled by the Armada 370)
- 2 internal SATA ports handled by the Armada 370: 2 GPIO for presence, 2 for powering them
- two front amber LED (disk1, disk2) controlled by the SoC
- Seiko S-35390A I2C RTC chip
- UART0 providing serial console
- UART1 used for poweroff (connected to a TI MSP430F2111)
- Fan handled via 4 GPIO (3 for speed, 1 for alarm)

---
 arch/arm/boot/dts/Makefile                       |   3 +-
 arch/arm/boot/dts/armada-370-synology-ds213j.dts | 321 +++++++++++++++++++++++
 2 files changed, 323 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/armada-370-synology-ds213j.dts
arch/arm/boot/dts/Makefile +2 -1
index 38c89cafa1ab..95387b59ebb2 100644
@@ -495,7 +495,8 @@ dtb-$(CONFIG_MACH_ARMADA_370) += \
 	armada-370-mirabox.dtb \
 	armada-370-netgear-rn102.dtb \
 	armada-370-netgear-rn104.dtb \
-	armada-370-rd.dtb
+	armada-370-rd.dtb \
+	armada-370-synology-ds213j.dtb
 dtb-$(CONFIG_MACH_ARMADA_375) += \
 	armada-375-db.dtb
 dtb-$(CONFIG_MACH_ARMADA_38X) += \
arch/arm/boot/dts/armada-370-synology-ds213j.dts new file +321 -0

321 lines not on this page · raw message

Signature · 1 line
2.1.1
#14 lore raw

PATCH v3 12/12 arm: mvebu: add .dts file for Synology DS414

In reply to Arnaud Ebalard

Synology DS414 is a 4-bay NAS powered by a Marvell Armada XP (mv78230 dual-core @1.33Ghz). It is very similar on many aspects to previous 4-bay synology models based on Marvell kirkwood SoC. Here is a short summary of the device:

- 1GB RAM
- Boot on SPI flash (64Mbit Micron N25Q064)
- 2 GbE interfaces (Armada MAC connected to two Marvell 88E1512 PHY via RGMII)
- 1 front USB 2.0 ports (directly handled by the Armada 370)
- 2 rear USB 3.0 ports (handled by an EtronTech EJ168A XHCI controller on the PCIe bus)
- 4 internal SATA ports handled by a Marvell 88SX7042 SATA-II controller on the PCIe bus)
- Seiko S-35390A I2C RTC chip
- UART0 providing serial console
- UART1 used for poweroff (connected to a Microchip PIC16F883)

Additional note: the front LEDs the and the two fans are not directly connected to the SoC and under its control. The former are presumably driven by the SATA controller, the latter by the PIC.

---
 arch/arm/boot/dts/Makefile                     |   3 +-
 arch/arm/boot/dts/armada-xp-synology-ds414.dts | 330 +++++++++++++++++++++++++
 2 files changed, 332 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/armada-xp-synology-ds414.dts
arch/arm/boot/dts/Makefile +2 -1
index 95387b59ebb2..c181ee8055ac 100644
@@ -509,7 +509,8 @@ dtb-$(CONFIG_MACH_ARMADA_XP) += \
 	armada-xp-lenovo-ix4-300d.dtb \
 	armada-xp-matrix.dtb \
 	armada-xp-netgear-rn2120.dtb \
-	armada-xp-openblocks-ax3-4.dtb
+	armada-xp-openblocks-ax3-4.dtb \
+	armada-xp-synology-ds414.dtb
 dtb-$(CONFIG_MACH_DOVE) += dove-cm-a510.dtb \
 	dove-cubox.dtb \
 	dove-cubox-es.dtb \
arch/arm/boot/dts/armada-xp-synology-ds414.dts new file +330 -0

330 lines not on this page · raw message

Signature · 1 line
2.1.1
#15 lore raw

v3 cover arm: mvebu: add Synology DS213j and DS414 .dts files

In reply to Arnaud Ebalard
Quoted 10 lines · Arnaud Ebalard

This series adds .dts files for Synology DS213j (armada 370 2-bay NAS) and DS414 (armada XP 4-bay NAS) devices. It is based on comments received on a v0 submission of DS213j .dts file [1] and Andrew's comments on a v1 ( for both DS213j and DS414 .dts files) [2] and Andrew/Sebastian' comments on v2 regarding pinctrl improvements [3].

Cheers,

a+

Quoted 8 lines

[1]: http://thread.gmane.org/gmane.linux.drivers.devicetree/95401
[2]: http://thread.gmane.org/gmane.linux.drivers.devicetree/98830
[3]: http://thread.gmane.org/gmane.linux.drivers.devicetree/98892

Changes since v2:

- Added various patches to improve/refactor Armada 370/XP pinctrl nodes/properties and use sensible defaults when possible.

Arnaud,

sorry I didn't remember earlier, but there has been a similar patch set that already deals with Armada-XP pinctrl and ethernet settings [1].

[1]
https://lkml.kernel.org/g/1411157684-6991-1-git-send-email-sebastian.hesselbarth at gmail.com

It has already been merged by Jason into mvebu/dt for v3.19, so it seems you'll have to rebase your patches on top of it. AFAIKS, you can drop pinctrl node consolidation for the SoCs (XP at least) and RGMII consolidation. The other changes you did for common 370/XP dtsi, UART, and SPI are valuable and you should keep them.

If I find some time, I'll have a closer look at both patch sets. Sorry again for not remembering earlier!

Sebastian

Quoted 80 lines

- changed gpio-fan,speed-map to better match max rotation speed (1900 RPM) for DS213j

Changes since v1:

- Added a patch to fix Seiko Instruments, Inc. prefix from "ssi" to "sii" for s35390 RTC chip in kirkwood-synology.dtsi as reported by Andrew
- Fixed DS414 and DS213j .dts files which had the same issue due to a blind copy-and-paste.
- Added a patch for armada-xp-lenovo-ix4-300d.dts to use uart alias for stdout-path, as suggested by Andrew.
- removed pinctrl properties for ethernet interface wrongly referencing a RGMII pin configuration: the PHY is connected using SGMII.
- moved some DS213j pinctrl entries (spi0, uart0) in armada-370.dtsi
- same thing for DS414 pinctrl entries (ge0/1, spi0) moved to armada-xp-mv78230.dtsi
- changed pinctrl nodes and labels to match naming convention found in .dtsi: pmx_*: pmx- changed to *_pin: -pin.
- same thing for DS414
- added a comment in the .dts file about DS414 being susceptible at boot when an USB/serial converter is connected to the UART pins.

Changes since v0:

- Added a comment at the beginning of DS213j and DS414j .dts file regarding the need for a recent Marvell bootloader. Arnd suggested to do a specific .dtb file for new and old bootloaders but I think if we follow this path for DS414 and DS213j, we will probably have to do it for all Armada-based synology NAS and possibly for other Armada 370/XP based devices. Opting for recent bootloaders config and having a comment is easier. It is likely that a user already has a recent bootloader. Otherwise, upgrade is a one click process anyway. If a user thinks it is easier to have two different .dts files in the kernel, she will still be able to push a patch.
- Added a comment in the .dts file about the bootloader screwing the kernel if the environment is saved.
- Kept GPL licence for .dts file
- Fixed bad naming of node and alias (_ vs -)
- Added micron vendor prefix for n25q064 flash
- Disabled SoC RTC; a Seiko S-35390A is used as main RTC
- Added comments about the purpose of each serial port
- Added stdout-path = &uart0; to help barebox. A specific patch is included in the series to provide labels for uart serial nodes
- Added patch for DS414 .dts file

Arnaud Ebalard (12):
of: add "micron" vendor prefix for Micron
arm: mvebu: fix vendor prefix typo in kirkwood-synology.dtsi
arm: mvebu: add uartX labels for Armada SoC serial nodes
arm: mvebu: use recently introduced uart label for stdout-path
arm: mvebu: remove duplications in pinctrl nodes for Armada 370/XP
arm: mvebu: define and use common Armada 370 SPI pinctrl settings
arm: mvebu: define and use common Armada 370 UART pinctrl settings
arm: mvebu: define and use common Armada XP UART2/3 pinctrl settings
arm: mvebu: define and use ge0/1 rgmii pinctrl settings for armada XP
arm: mvebu: define and use common Armada XP SPI pinctrl setting
arm: mvebu: add .dts file for Synology DS213j
arm: mvebu: add .dts file for Synology DS414

  .../devicetree/bindings/vendor-prefixes.txt        |   1 +
  arch/arm/boot/dts/Makefile                         |   6 +-
  arch/arm/boot/dts/armada-370-db.dts                |   2 +
  arch/arm/boot/dts/armada-370-synology-ds213j.dts   | 321 ++++++++++++++++++++
  arch/arm/boot/dts/armada-370-xp.dtsi               |   9 +-
  arch/arm/boot/dts/armada-370.dtsi                  |  58 +++-
  arch/arm/boot/dts/armada-xp-axpwifiap.dts          |  25 +-
  arch/arm/boot/dts/armada-xp-db.dts                 |   4 +
  arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts    |   6 +-
  arch/arm/boot/dts/armada-xp-mv78230.dtsi           |   7 -
  arch/arm/boot/dts/armada-xp-mv78260.dtsi           |   7 -
  arch/arm/boot/dts/armada-xp-mv78460.dtsi           |   7 -
  arch/arm/boot/dts/armada-xp-netgear-rn2120.dts     |   4 +
  arch/arm/boot/dts/armada-xp-synology-ds414.dts     | 330 +++++++++++++++++++++
  arch/arm/boot/dts/armada-xp.dtsi                   |  52 +++-
  arch/arm/boot/dts/kirkwood-synology.dtsi           |   2 +-
  16 files changed, 788 insertions(+), 53 deletions(-)

create mode 100644 arch/arm/boot/dts/armada-370-synology-ds213j.dts create mode 100644 arch/arm/boot/dts/armada-xp-synology-ds414.dts

#16 lore raw

v3 cover arm: mvebu: add Synology DS213j and DS414 .dts files

Hi Sebastian,

Quoted 26 lines · Sebastian Hesselbarth
Quoted 10 lines · Arnaud Ebalard

This series adds .dts files for Synology DS213j (armada 370 2-bay NAS) and DS414 (armada XP 4-bay NAS) devices. It is based on comments received on a v0 submission of DS213j .dts file [1] and Andrew's comments on a v1 ( for both DS213j and DS414 .dts files) [2] and Andrew/Sebastian' comments on v2 regarding pinctrl improvements [3].

Cheers,

a+

Quoted 8 lines

[1]: http://thread.gmane.org/gmane.linux.drivers.devicetree/95401
[2]: http://thread.gmane.org/gmane.linux.drivers.devicetree/98830
[3]: http://thread.gmane.org/gmane.linux.drivers.devicetree/98892

Changes since v2:

- Added various patches to improve/refactor Armada 370/XP pinctrl nodes/properties and use sensible defaults when possible.

Arnaud,

sorry I didn't remember earlier, but there has been a similar patch set that already deals with Armada-XP pinctrl and ethernet settings [1].

Quoted 8 lines

[1]
https://lkml.kernel.org/g/1411157684-6991-1-git-send-email-sebastian.hesselbarth at gmail.com

It has already been merged by Jason into mvebu/dt for v3.19, so it seems you'll have to rebase your patches on top of it. AFAIKS, you can drop pinctrl node consolidation for the SoCs (XP at least) and RGMII consolidation. The other changes you did for common 370/XP dtsi, UART, and SPI are valuable and you should keep them.

I'll rebase the whole series and send a v4.

Quoted 2 lines

If I find some time, I'll have a closer look at both patch sets. Sorry again for not remembering earlier!

no problem.

Cheers,

a+