* [PATCH] arm64: dts: marvell: Add device tree for uDPU board
@ 2019-01-11 17:20 ` Vladimir Vid
0 siblings, 0 replies; 24+ messages in thread
From: Vladimir Vid @ 2019-01-11 17:20 UTC (permalink / raw)
To: devicetree
Cc: Luis Torres, Paul Arola, Vladimir Vid, Scott Roberts,
Luka Perkov, linux-arm-kernel
This adds initial support for micro-DPU (uDPU) board which is based on
Armada-3720 SoC. micro-DPU is the single-port FTTdp distribution point
unit made by Methode Electronics which offers complete modularity with
replaceable SFP modules both for uplink and downlink (G.hn over
twisted-pair, G.hn over coax, 1G and 2.5G Ethernet over Cat-5e cable).
On-board features:
- 512 MiB DDR3
- 2 x 2.5G SFP via HSGMII SERDES interface to the A3720 SoC
- USB 2.0 Type-C connector
- 4GB eMMC
- ETSI TS 101548 reverse powering via twisted pair (RJ45) or coax (F Type)
Cc: Luka Perkov <luka.perkov@sartura.hr>
Cc: Luis Torres <luis.torres@methode.com>
Cc: Scott Roberts <scott.roberts@telus.com>
Cc: Paul Arola <paul.arola@telus.com>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>
---
MAINTAINERS | 5 +
arch/arm64/boot/dts/marvell/Makefile | 1 +
.../boot/dts/marvell/armada-3720-uDPU.dts | 178 ++++++++++++++++++
3 files changed, 184 insertions(+)
create mode 100644 arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
diff --git a/MAINTAINERS b/MAINTAINERS
index 32d444476a90..0790f9a02db8 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9849,6 +9849,11 @@ F: drivers/media/platform/meson/ao-cec.c
F: Documentation/devicetree/bindings/media/meson-ao-cec.txt
T: git git://linuxtv.org/media_tree.git
+METHODE UDPU SUPPORT
+M: Vladimir Vid <vladimir.vid@sartura.hr>
+S: Maintained
+F: arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
+
MICROBLAZE ARCHITECTURE
M: Michal Simek <monstr@monstr.eu>
W: http://www.monstr.eu/fdt/
diff --git a/arch/arm64/boot/dts/marvell/Makefile b/arch/arm64/boot/dts/marvell/Makefile
index 2eff1f927471..caed4334f27d 100644
--- a/arch/arm64/boot/dts/marvell/Makefile
+++ b/arch/arm64/boot/dts/marvell/Makefile
@@ -2,6 +2,7 @@
# Mvebu SoC Family
dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin.dtb
+dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-uDPU.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-clearfog-gt-8k.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
new file mode 100644
index 000000000000..eae30322a037
--- /dev/null
+++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
@@ -0,0 +1,178 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device tree for the uDPU board.
+ * Based on Marvell Armada 3720 development board (DB-88F3720-DDR3)
+ * Copyright (C) 2016 Marvell
+ * Copyright (C) 2018 Methode
+ * Copyright (C) 2018 Telus
+ *
+ * Vladimir Vid <vladimir.vid@sartura.hr>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "armada-372x.dtsi"
+
+/ {
+ model = "Methode uDPU Board";
+ compatible = "marvell,armada-3720-db", "marvell,armada3720",
+ "marvell,armada3710";
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
+ };
+
+ leds {
+ pinctrl-names = "default";
+ compatible = "gpio-leds";
+
+ led@487 {
+ gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
+ default-state = "off";
+ };
+
+ led@488 {
+ gpios = <&gpionb 12 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ led@489 {
+ gpios = <&gpionb 13 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ led@490 {
+ gpios = <&gpionb 14 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ led@491 {
+ gpios = <&gpionb 15 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ led@492 {
+ gpios = <&gpionb 16 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+ };
+
+ sfp_eth0: sfp-eth0 {
+ compatible = "sff,sfp";
+ i2c-bus = <&i2c0>;
+ los-gpio = <&gpiosb 2 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpio = <&gpiosb 3 GPIO_ACTIVE_LOW>;
+ tx-disable-gpio = <&gpiosb 4 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpio = <&gpiosb 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ sfp_eth1: sfp-eth1 {
+ compatible = "sff,sfp";
+ i2c-bus = <&i2c1>;
+ los-gpio = <&gpiosb 7 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpio = <&gpiosb 8 GPIO_ACTIVE_LOW>;
+ tx-disable-gpio = <&gpiosb 9 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpio = <&gpiosb 10 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&sdhci0 {
+ non-removable;
+ bus-width = <8>;
+ mmc-ddr-1_8v;
+ mmc-hs400-1_8v;
+ marvell,pad-type = "fixed-1-8v";
+ status = "okay";
+};
+
+&sdhci1 {
+ marvell,xenon-phy-type = "emmc 5.0 phy";
+ cd-gpios = <&gpiosb 2 GPIO_ACTIVE_LOW>;
+ bus-width = <4>;
+ marvell,pad-type = "fixed-1-8v";
+ status = "okay";
+ non-removable;
+ no-sd;
+ no-sdio;
+};
+
+&mdio {
+ status = "okay";
+ phy0: ethernet-phy@0 {
+ reg = <0>;
+ };
+ phy1: ethernet-phy@1 {
+ reg = <1>;
+ };
+};
+
+&spi0 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_quad_pins>;
+
+ m25p80@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ spi-max-frequency = <54000000>;
+
+ /* bootloader is located on the SPI */
+ partition@0 {
+ label = "uboot";
+ reg = <0 0x400000>;
+ };
+ };
+};
+
+&usb3 {
+ status = "okay";
+ usb-phy = <&usb3_phy>;
+};
+
+&i2c0 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_pins>;
+
+ eeprom@50 {
+ compatible = "atmel,24c04";
+ reg = <0x50>;
+ };
+};
+
+&i2c1 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c2_pins>;
+
+ eeprom@50 {
+ compatible = "atmel,24c04";
+ reg = <0x50>;
+ };
+};
+
+ð0 {
+ phy-mode = "sgmii";
+ status = "okay";
+ managed = "in-band-status";
+ sfp = <&sfp_eth0>;
+};
+
+ð1 {
+ phy-mode = "sgmii";
+ status = "okay";
+ managed = "in-band-status";
+ sfp = <&sfp_eth1>;
+};
+
+&uart0 {
+ status = "okay";
+};
--
2.19.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH] arm64: dts: marvell: Add device tree for uDPU board
2019-01-11 17:20 ` Vladimir Vid
@ 2019-01-11 17:41 ` Andrew Lunn
-1 siblings, 0 replies; 24+ messages in thread
From: Andrew Lunn @ 2019-01-11 17:41 UTC (permalink / raw)
To: Vladimir Vid
Cc: devicetree, Luka Perkov, Paul Arola, Luis Torres, Scott Roberts,
linux-arm-kernel
> diff --git a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
> new file mode 100644
> index 000000000000..eae30322a037
> --- /dev/null
> +++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
> @@ -0,0 +1,178 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Device tree for the uDPU board.
> + * Based on Marvell Armada 3720 development board (DB-88F3720-DDR3)
> + * Copyright (C) 2016 Marvell
> + * Copyright (C) 2018 Methode
> + * Copyright (C) 2018 Telus
> + *
> + * Vladimir Vid <vladimir.vid@sartura.hr>
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include "armada-372x.dtsi"
> +
> +/ {
> + model = "Methode uDPU Board";
> + compatible = "marvell,armada-3720-db", "marvell,armada3720",
> + "marvell,armada3710";
> +
Hi Vladimir
There should be a compatible string here for the board. It looks like
you will also need to add Methode as a vendor to
Documentation/devicetree/bindings/vendor-prefixes.txt.
> + leds {
> + pinctrl-names = "default";
> + compatible = "gpio-leds";
> +
> + led@487 {
> + gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
> + default-state = "off";
It is normal to have a name here, indicating what the LED is for, its
colour, etc.
> +&mdio {
> + status = "okay";
> + phy0: ethernet-phy@0 {
> + reg = <0>;
> + };
> + phy1: ethernet-phy@1 {
> + reg = <1>;
> + };
> +};
These don't appear to be used anywhere.
Andrew
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] arm64: dts: marvell: Add device tree for uDPU board
@ 2019-01-11 17:41 ` Andrew Lunn
0 siblings, 0 replies; 24+ messages in thread
From: Andrew Lunn @ 2019-01-11 17:41 UTC (permalink / raw)
To: Vladimir Vid
Cc: devicetree, Luka Perkov, Paul Arola, Luis Torres, Scott Roberts,
linux-arm-kernel
> diff --git a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
> new file mode 100644
> index 000000000000..eae30322a037
> --- /dev/null
> +++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
> @@ -0,0 +1,178 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Device tree for the uDPU board.
> + * Based on Marvell Armada 3720 development board (DB-88F3720-DDR3)
> + * Copyright (C) 2016 Marvell
> + * Copyright (C) 2018 Methode
> + * Copyright (C) 2018 Telus
> + *
> + * Vladimir Vid <vladimir.vid@sartura.hr>
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include "armada-372x.dtsi"
> +
> +/ {
> + model = "Methode uDPU Board";
> + compatible = "marvell,armada-3720-db", "marvell,armada3720",
> + "marvell,armada3710";
> +
Hi Vladimir
There should be a compatible string here for the board. It looks like
you will also need to add Methode as a vendor to
Documentation/devicetree/bindings/vendor-prefixes.txt.
> + leds {
> + pinctrl-names = "default";
> + compatible = "gpio-leds";
> +
> + led@487 {
> + gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
> + default-state = "off";
It is normal to have a name here, indicating what the LED is for, its
colour, etc.
> +&mdio {
> + status = "okay";
> + phy0: ethernet-phy@0 {
> + reg = <0>;
> + };
> + phy1: ethernet-phy@1 {
> + reg = <1>;
> + };
> +};
These don't appear to be used anywhere.
Andrew
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] arm64: dts: marvell: Add device tree for uDPU board
2019-01-11 17:20 ` Vladimir Vid
@ 2019-01-11 17:44 ` Andrew Lunn
-1 siblings, 0 replies; 24+ messages in thread
From: Andrew Lunn @ 2019-01-11 17:44 UTC (permalink / raw)
To: Vladimir Vid
Cc: devicetree, Luka Perkov, Paul Arola, Luis Torres, Scott Roberts,
linux-arm-kernel
> + sfp_eth0: sfp-eth0 {
> + compatible = "sff,sfp";
> + i2c-bus = <&i2c0>;
> + los-gpio = <&gpiosb 2 GPIO_ACTIVE_HIGH>;
> + mod-def0-gpio = <&gpiosb 3 GPIO_ACTIVE_LOW>;
> + tx-disable-gpio = <&gpiosb 4 GPIO_ACTIVE_HIGH>;
> + tx-fault-gpio = <&gpiosb 5 GPIO_ACTIVE_HIGH>;
> + };
> +
> + sfp_eth1: sfp-eth1 {
> + compatible = "sff,sfp";
> + i2c-bus = <&i2c1>;
> + los-gpio = <&gpiosb 7 GPIO_ACTIVE_HIGH>;
> + mod-def0-gpio = <&gpiosb 8 GPIO_ACTIVE_LOW>;
> + tx-disable-gpio = <&gpiosb 9 GPIO_ACTIVE_HIGH>;
> + tx-fault-gpio = <&gpiosb 10 GPIO_ACTIVE_HIGH>;
> + };
> +};
> +&i2c0 {
> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c1_pins>;
> +
> + eeprom@50 {
> + compatible = "atmel,24c04";
> + reg = <0x50>;
> + };
> +};
> +
> +&i2c1 {
> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c2_pins>;
> +
> + eeprom@50 {
> + compatible = "atmel,24c04";
> + reg = <0x50>;
> + };
> +};
The SFP driver will export the 'eeprom' via ethtool --module-info.
Please don't add a standard EEPROM.
Andrew
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] arm64: dts: marvell: Add device tree for uDPU board
@ 2019-01-11 17:44 ` Andrew Lunn
0 siblings, 0 replies; 24+ messages in thread
From: Andrew Lunn @ 2019-01-11 17:44 UTC (permalink / raw)
To: Vladimir Vid
Cc: devicetree, Luka Perkov, Paul Arola, Luis Torres, Scott Roberts,
linux-arm-kernel
> + sfp_eth0: sfp-eth0 {
> + compatible = "sff,sfp";
> + i2c-bus = <&i2c0>;
> + los-gpio = <&gpiosb 2 GPIO_ACTIVE_HIGH>;
> + mod-def0-gpio = <&gpiosb 3 GPIO_ACTIVE_LOW>;
> + tx-disable-gpio = <&gpiosb 4 GPIO_ACTIVE_HIGH>;
> + tx-fault-gpio = <&gpiosb 5 GPIO_ACTIVE_HIGH>;
> + };
> +
> + sfp_eth1: sfp-eth1 {
> + compatible = "sff,sfp";
> + i2c-bus = <&i2c1>;
> + los-gpio = <&gpiosb 7 GPIO_ACTIVE_HIGH>;
> + mod-def0-gpio = <&gpiosb 8 GPIO_ACTIVE_LOW>;
> + tx-disable-gpio = <&gpiosb 9 GPIO_ACTIVE_HIGH>;
> + tx-fault-gpio = <&gpiosb 10 GPIO_ACTIVE_HIGH>;
> + };
> +};
> +&i2c0 {
> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c1_pins>;
> +
> + eeprom@50 {
> + compatible = "atmel,24c04";
> + reg = <0x50>;
> + };
> +};
> +
> +&i2c1 {
> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c2_pins>;
> +
> + eeprom@50 {
> + compatible = "atmel,24c04";
> + reg = <0x50>;
> + };
> +};
The SFP driver will export the 'eeprom' via ethtool --module-info.
Please don't add a standard EEPROM.
Andrew
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v2 1/2] arm64: dts: marvell: Add device tree for uDPU board
2019-01-11 17:20 ` Vladimir Vid
@ 2019-01-15 12:11 ` Vladimir Vid
-1 siblings, 0 replies; 24+ messages in thread
From: Vladimir Vid @ 2019-01-15 12:11 UTC (permalink / raw)
To: devicetree
Cc: Andrew Lunn, Luis Torres, Paul Arola, Vladimir Vid,
Scott Roberts, Luka Perkov, linux-arm-kernel
This adds initial support for micro-DPU (uDPU) board which is based on
Armada-3720 SoC. micro-DPU is the single-port FTTdp distribution point
unit made by Methode Electronics which offers complete modularity with
replaceable SFP modules both for uplink and downlink (G.hn over
twisted-pair, G.hn over coax, 1G and 2.5G Ethernet over Cat-5e cable).
On-board features:
- 512 MiB DDR3
- 2 x 2.5G SFP via HSGMII SERDES interface to the A3720 SoC
- USB 2.0 Type-C connector
- 4GB eMMC
- ETSI TS 101548 reverse powering via twisted pair (RJ45) or coax (F Type)
Cc: Luka Perkov <luka.perkov@sartura.hr>
Cc: Luis Torres <luis.torres@methode.com>
Cc: Scott Roberts <scott.roberts@telus.com>
Cc: Paul Arola <paul.arola@telus.com>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>
Cc: Andrew Lunn <andrew@lunn.ch>
---
v2:
- add compatible string for the uDPU board
- add names and labels for the LEDs
- remove unused mdio node
- remove eeprom nodes
---
MAINTAINERS | 5 +
arch/arm64/boot/dts/marvell/Makefile | 1 +
.../boot/dts/marvell/armada-3720-uDPU.dts | 164 ++++++++++++++++++
3 files changed, 170 insertions(+)
create mode 100644 arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
diff --git a/MAINTAINERS b/MAINTAINERS
index 4d04cebb4a71..4ba06bfc1a1e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9852,6 +9852,11 @@ F: drivers/media/platform/meson/ao-cec.c
F: Documentation/devicetree/bindings/media/meson-ao-cec.txt
T: git git://linuxtv.org/media_tree.git
+METHODE UDPU SUPPORT
+M: Vladimir Vid <vladimir.vid@sartura.hr>
+S: Maintained
+F: arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
+
MICROBLAZE ARCHITECTURE
M: Michal Simek <monstr@monstr.eu>
W: http://www.monstr.eu/fdt/
diff --git a/arch/arm64/boot/dts/marvell/Makefile b/arch/arm64/boot/dts/marvell/Makefile
index 2eff1f927471..caed4334f27d 100644
--- a/arch/arm64/boot/dts/marvell/Makefile
+++ b/arch/arm64/boot/dts/marvell/Makefile
@@ -2,6 +2,7 @@
# Mvebu SoC Family
dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin.dtb
+dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-uDPU.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-clearfog-gt-8k.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
new file mode 100644
index 000000000000..fbdc6b0afb6f
--- /dev/null
+++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
@@ -0,0 +1,164 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device tree for the uDPU board.
+ * Based on Marvell Armada 3720 development board (DB-88F3720-DDR3)
+ * Copyright (C) 2016 Marvell
+ * Copyright (C) 2018 Methode
+ * Copyright (C) 2018 Telus
+ *
+ * Vladimir Vid <vladimir.vid@sartura.hr>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "armada-372x.dtsi"
+
+/ {
+ model = "Methode uDPU Board";
+ compatible = "marvell,armada-3720-db", "marvell,armada3720",
+ "marvell,armada3710", "methode,udpu";
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
+ };
+
+ leds {
+ pinctrl-names = "default";
+ compatible = "gpio-leds";
+
+ power@487 {
+ label = "power:green:led1";
+ gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
+ default-state = "off";
+ };
+
+ power@488 {
+ label = "power:red:led1";
+ gpios = <&gpionb 12 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ network@489 {
+ label = "network:green:led2";
+ gpios = <&gpionb 13 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ network@490 {
+ label = "network:red:led2";
+ gpios = <&gpionb 14 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ alarm@491 {
+ label = "alarm:green:led3";
+ gpios = <&gpionb 15 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ alarm@492 {
+ label = "alarm:red:led3";
+ gpios = <&gpionb 16 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+ };
+
+ sfp_eth0: sfp-eth0 {
+ compatible = "sff,sfp";
+ i2c-bus = <&i2c0>;
+ los-gpio = <&gpiosb 2 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpio = <&gpiosb 3 GPIO_ACTIVE_LOW>;
+ tx-disable-gpio = <&gpiosb 4 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpio = <&gpiosb 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ sfp_eth1: sfp-eth1 {
+ compatible = "sff,sfp";
+ i2c-bus = <&i2c1>;
+ los-gpio = <&gpiosb 7 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpio = <&gpiosb 8 GPIO_ACTIVE_LOW>;
+ tx-disable-gpio = <&gpiosb 9 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpio = <&gpiosb 10 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&sdhci0 {
+ non-removable;
+ bus-width = <8>;
+ mmc-ddr-1_8v;
+ mmc-hs400-1_8v;
+ marvell,pad-type = "fixed-1-8v";
+ status = "okay";
+};
+
+&sdhci1 {
+ marvell,xenon-phy-type = "emmc 5.0 phy";
+ cd-gpios = <&gpiosb 2 GPIO_ACTIVE_LOW>;
+ bus-width = <4>;
+ marvell,pad-type = "fixed-1-8v";
+ status = "okay";
+ non-removable;
+ no-sd;
+ no-sdio;
+};
+
+&spi0 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_quad_pins>;
+
+ m25p80@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ spi-max-frequency = <54000000>;
+
+ /* bootloader is located on the SPI */
+ partition@0 {
+ label = "uboot";
+ reg = <0 0x400000>;
+ };
+ };
+};
+
+&usb3 {
+ status = "okay";
+ usb-phy = <&usb3_phy>;
+};
+
+&i2c0 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_pins>;
+};
+
+&i2c1 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c2_pins>;
+};
+
+ð0 {
+ phy-mode = "sgmii";
+ status = "okay";
+ managed = "in-band-status";
+ sfp = <&sfp_eth0>;
+};
+
+ð1 {
+ phy-mode = "sgmii";
+ status = "okay";
+ managed = "in-band-status";
+ sfp = <&sfp_eth1>;
+};
+
+&uart0 {
+ status = "okay";
+};
--
2.19.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v2 1/2] arm64: dts: marvell: Add device tree for uDPU board
@ 2019-01-15 12:11 ` Vladimir Vid
0 siblings, 0 replies; 24+ messages in thread
From: Vladimir Vid @ 2019-01-15 12:11 UTC (permalink / raw)
To: devicetree
Cc: Andrew Lunn, Luis Torres, Paul Arola, Vladimir Vid,
Scott Roberts, Luka Perkov, linux-arm-kernel
This adds initial support for micro-DPU (uDPU) board which is based on
Armada-3720 SoC. micro-DPU is the single-port FTTdp distribution point
unit made by Methode Electronics which offers complete modularity with
replaceable SFP modules both for uplink and downlink (G.hn over
twisted-pair, G.hn over coax, 1G and 2.5G Ethernet over Cat-5e cable).
On-board features:
- 512 MiB DDR3
- 2 x 2.5G SFP via HSGMII SERDES interface to the A3720 SoC
- USB 2.0 Type-C connector
- 4GB eMMC
- ETSI TS 101548 reverse powering via twisted pair (RJ45) or coax (F Type)
Cc: Luka Perkov <luka.perkov@sartura.hr>
Cc: Luis Torres <luis.torres@methode.com>
Cc: Scott Roberts <scott.roberts@telus.com>
Cc: Paul Arola <paul.arola@telus.com>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>
Cc: Andrew Lunn <andrew@lunn.ch>
---
v2:
- add compatible string for the uDPU board
- add names and labels for the LEDs
- remove unused mdio node
- remove eeprom nodes
---
MAINTAINERS | 5 +
arch/arm64/boot/dts/marvell/Makefile | 1 +
.../boot/dts/marvell/armada-3720-uDPU.dts | 164 ++++++++++++++++++
3 files changed, 170 insertions(+)
create mode 100644 arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
diff --git a/MAINTAINERS b/MAINTAINERS
index 4d04cebb4a71..4ba06bfc1a1e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9852,6 +9852,11 @@ F: drivers/media/platform/meson/ao-cec.c
F: Documentation/devicetree/bindings/media/meson-ao-cec.txt
T: git git://linuxtv.org/media_tree.git
+METHODE UDPU SUPPORT
+M: Vladimir Vid <vladimir.vid@sartura.hr>
+S: Maintained
+F: arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
+
MICROBLAZE ARCHITECTURE
M: Michal Simek <monstr@monstr.eu>
W: http://www.monstr.eu/fdt/
diff --git a/arch/arm64/boot/dts/marvell/Makefile b/arch/arm64/boot/dts/marvell/Makefile
index 2eff1f927471..caed4334f27d 100644
--- a/arch/arm64/boot/dts/marvell/Makefile
+++ b/arch/arm64/boot/dts/marvell/Makefile
@@ -2,6 +2,7 @@
# Mvebu SoC Family
dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin.dtb
+dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-uDPU.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-clearfog-gt-8k.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
new file mode 100644
index 000000000000..fbdc6b0afb6f
--- /dev/null
+++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
@@ -0,0 +1,164 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device tree for the uDPU board.
+ * Based on Marvell Armada 3720 development board (DB-88F3720-DDR3)
+ * Copyright (C) 2016 Marvell
+ * Copyright (C) 2018 Methode
+ * Copyright (C) 2018 Telus
+ *
+ * Vladimir Vid <vladimir.vid@sartura.hr>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "armada-372x.dtsi"
+
+/ {
+ model = "Methode uDPU Board";
+ compatible = "marvell,armada-3720-db", "marvell,armada3720",
+ "marvell,armada3710", "methode,udpu";
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
+ };
+
+ leds {
+ pinctrl-names = "default";
+ compatible = "gpio-leds";
+
+ power@487 {
+ label = "power:green:led1";
+ gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
+ default-state = "off";
+ };
+
+ power@488 {
+ label = "power:red:led1";
+ gpios = <&gpionb 12 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ network@489 {
+ label = "network:green:led2";
+ gpios = <&gpionb 13 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ network@490 {
+ label = "network:red:led2";
+ gpios = <&gpionb 14 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ alarm@491 {
+ label = "alarm:green:led3";
+ gpios = <&gpionb 15 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ alarm@492 {
+ label = "alarm:red:led3";
+ gpios = <&gpionb 16 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+ };
+
+ sfp_eth0: sfp-eth0 {
+ compatible = "sff,sfp";
+ i2c-bus = <&i2c0>;
+ los-gpio = <&gpiosb 2 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpio = <&gpiosb 3 GPIO_ACTIVE_LOW>;
+ tx-disable-gpio = <&gpiosb 4 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpio = <&gpiosb 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ sfp_eth1: sfp-eth1 {
+ compatible = "sff,sfp";
+ i2c-bus = <&i2c1>;
+ los-gpio = <&gpiosb 7 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpio = <&gpiosb 8 GPIO_ACTIVE_LOW>;
+ tx-disable-gpio = <&gpiosb 9 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpio = <&gpiosb 10 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&sdhci0 {
+ non-removable;
+ bus-width = <8>;
+ mmc-ddr-1_8v;
+ mmc-hs400-1_8v;
+ marvell,pad-type = "fixed-1-8v";
+ status = "okay";
+};
+
+&sdhci1 {
+ marvell,xenon-phy-type = "emmc 5.0 phy";
+ cd-gpios = <&gpiosb 2 GPIO_ACTIVE_LOW>;
+ bus-width = <4>;
+ marvell,pad-type = "fixed-1-8v";
+ status = "okay";
+ non-removable;
+ no-sd;
+ no-sdio;
+};
+
+&spi0 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_quad_pins>;
+
+ m25p80@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ spi-max-frequency = <54000000>;
+
+ /* bootloader is located on the SPI */
+ partition@0 {
+ label = "uboot";
+ reg = <0 0x400000>;
+ };
+ };
+};
+
+&usb3 {
+ status = "okay";
+ usb-phy = <&usb3_phy>;
+};
+
+&i2c0 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_pins>;
+};
+
+&i2c1 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c2_pins>;
+};
+
+ð0 {
+ phy-mode = "sgmii";
+ status = "okay";
+ managed = "in-band-status";
+ sfp = <&sfp_eth0>;
+};
+
+ð1 {
+ phy-mode = "sgmii";
+ status = "okay";
+ managed = "in-band-status";
+ sfp = <&sfp_eth1>;
+};
+
+&uart0 {
+ status = "okay";
+};
--
2.19.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v2 1/2] arm64: dts: marvell: Add device tree for uDPU board
2019-01-15 12:11 ` Vladimir Vid
@ 2019-01-15 13:42 ` Andrew Lunn
-1 siblings, 0 replies; 24+ messages in thread
From: Andrew Lunn @ 2019-01-15 13:42 UTC (permalink / raw)
To: Vladimir Vid
Cc: devicetree, Luis Torres, Paul Arola, Scott Roberts, Luka Perkov,
linux-arm-kernel
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Device tree for the uDPU board.
> + * Based on Marvell Armada 3720 development board (DB-88F3720-DDR3)
> + * Copyright (C) 2016 Marvell
> + * Copyright (C) 2018 Methode
> + * Copyright (C) 2018 Telus
2019?
> + *
> + * Vladimir Vid <vladimir.vid@sartura.hr>
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include "armada-372x.dtsi"
> +
> +/ {
> + model = "Methode uDPU Board";
> + compatible = "marvell,armada-3720-db", "marvell,armada3720",
> + "marvell,armada3710", "methode,udpu";
Compatible strings are sorted as most specific to most generic. So
"methode,udpu" should be first. "marvell,armada-3720-db" can probably
be dropped.
Andrew
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 1/2] arm64: dts: marvell: Add device tree for uDPU board
@ 2019-01-15 13:42 ` Andrew Lunn
0 siblings, 0 replies; 24+ messages in thread
From: Andrew Lunn @ 2019-01-15 13:42 UTC (permalink / raw)
To: Vladimir Vid
Cc: devicetree, Luis Torres, Paul Arola, Scott Roberts, Luka Perkov,
linux-arm-kernel
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Device tree for the uDPU board.
> + * Based on Marvell Armada 3720 development board (DB-88F3720-DDR3)
> + * Copyright (C) 2016 Marvell
> + * Copyright (C) 2018 Methode
> + * Copyright (C) 2018 Telus
2019?
> + *
> + * Vladimir Vid <vladimir.vid@sartura.hr>
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include "armada-372x.dtsi"
> +
> +/ {
> + model = "Methode uDPU Board";
> + compatible = "marvell,armada-3720-db", "marvell,armada3720",
> + "marvell,armada3710", "methode,udpu";
Compatible strings are sorted as most specific to most generic. So
"methode,udpu" should be first. "marvell,armada-3720-db" can probably
be dropped.
Andrew
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v2 2/2] dt-bindings: add Methode Electronics vendor prefix
2019-01-11 17:20 ` Vladimir Vid
` (3 preceding siblings ...)
(?)
@ 2019-01-15 12:11 ` Vladimir Vid
2019-01-15 13:45 ` Andrew Lunn
2019-01-16 21:39 ` Rob Herring
-1 siblings, 2 replies; 24+ messages in thread
From: Vladimir Vid @ 2019-01-15 12:11 UTC (permalink / raw)
To: devicetree; +Cc: Vladimir Vid, Andrew Lunn
Methode Electronics, Inc. is an international
engineering company headquartered in Chicago, IL.
Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>
Cc: Andrew Lunn <andrew@lunn.ch>
---
Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 389508584f48..cfd4413f2723 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -237,6 +237,7 @@ melfas MELFAS Inc.
mellanox Mellanox Technologies
memsic MEMSIC Inc.
merrii Merrii Technology Co., Ltd.
+methode Methode Electronics, Inc.
micrel Micrel Inc.
microchip Microchip Technology Inc.
microcrystal Micro Crystal AG
--
2.19.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v2 2/2] dt-bindings: add Methode Electronics vendor prefix
2019-01-15 12:11 ` [PATCH v2 2/2] dt-bindings: add Methode Electronics vendor prefix Vladimir Vid
@ 2019-01-15 13:45 ` Andrew Lunn
2019-01-16 21:39 ` Rob Herring
1 sibling, 0 replies; 24+ messages in thread
From: Andrew Lunn @ 2019-01-15 13:45 UTC (permalink / raw)
To: Vladimir Vid; +Cc: devicetree
On Tue, Jan 15, 2019 at 01:11:15PM +0100, Vladimir Vid wrote:
> Methode Electronics, Inc. is an international
> engineering company headquartered in Chicago, IL.
>
> Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>
> Cc: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Andrew
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 2/2] dt-bindings: add Methode Electronics vendor prefix
2019-01-15 12:11 ` [PATCH v2 2/2] dt-bindings: add Methode Electronics vendor prefix Vladimir Vid
2019-01-15 13:45 ` Andrew Lunn
@ 2019-01-16 21:39 ` Rob Herring
1 sibling, 0 replies; 24+ messages in thread
From: Rob Herring @ 2019-01-16 21:39 UTC (permalink / raw)
To: Vladimir Vid; +Cc: devicetree, Andrew Lunn
On Tue, 15 Jan 2019 13:11:15 +0100, Vladimir Vid wrote:
> Methode Electronics, Inc. is an international
> engineering company headquartered in Chicago, IL.
>
> Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>
> Cc: Andrew Lunn <andrew@lunn.ch>
> ---
> Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
> 1 file changed, 1 insertion(+)
>
Reviewed-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v3] arm64: dts: marvell: Add device tree for uDPU board
2019-01-11 17:20 ` Vladimir Vid
@ 2019-01-15 14:44 ` Vladimir Vid
-1 siblings, 0 replies; 24+ messages in thread
From: Vladimir Vid @ 2019-01-15 14:44 UTC (permalink / raw)
To: devicetree
Cc: Andrew Lunn, Luis Torres, Paul Arola, Vladimir Vid,
Scott Roberts, Luka Perkov, linux-arm-kernel
This adds initial support for micro-DPU (uDPU) board which is based on
Armada-3720 SoC. micro-DPU is the single-port FTTdp distribution point
unit made by Methode Electronics which offers complete modularity with
replaceable SFP modules both for uplink and downlink (G.hn over
twisted-pair, G.hn over coax, 1G and 2.5G Ethernet over Cat-5e cable).
On-board features:
- 512 MiB DDR3
- 2 x 2.5G SFP via HSGMII SERDES interface to the A3720 SoC
- USB 2.0 Type-C connector
- 4GB eMMC
- ETSI TS 101548 reverse powering via twisted pair (RJ45) or coax (F Type)
Cc: Luka Perkov <luka.perkov@sartura.hr>
Cc: Luis Torres <luis.torres@methode.com>
Cc: Scott Roberts <scott.roberts@telus.com>
Cc: Paul Arola <paul.arola@telus.com>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>
Cc: Andrew Lunn <andrew@lunn.ch>
---
v3 changes:
- update copyright year for Methode and Telus
- fix Methode copyright (use Methode Electornics instead of Methode)
- sort compatible string by relevance, remove armada-3720-db and
armada3710 to keep it generic
---
MAINTAINERS | 5 +
arch/arm64/boot/dts/marvell/Makefile | 1 +
.../boot/dts/marvell/armada-3720-uDPU.dts | 163 ++++++++++++++++++
3 files changed, 169 insertions(+)
create mode 100644 arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
diff --git a/MAINTAINERS b/MAINTAINERS
index 4d04cebb4a71..4ba06bfc1a1e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9852,6 +9852,11 @@ F: drivers/media/platform/meson/ao-cec.c
F: Documentation/devicetree/bindings/media/meson-ao-cec.txt
T: git git://linuxtv.org/media_tree.git
+METHODE UDPU SUPPORT
+M: Vladimir Vid <vladimir.vid@sartura.hr>
+S: Maintained
+F: arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
+
MICROBLAZE ARCHITECTURE
M: Michal Simek <monstr@monstr.eu>
W: http://www.monstr.eu/fdt/
diff --git a/arch/arm64/boot/dts/marvell/Makefile b/arch/arm64/boot/dts/marvell/Makefile
index 2eff1f927471..caed4334f27d 100644
--- a/arch/arm64/boot/dts/marvell/Makefile
+++ b/arch/arm64/boot/dts/marvell/Makefile
@@ -2,6 +2,7 @@
# Mvebu SoC Family
dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin.dtb
+dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-uDPU.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-clearfog-gt-8k.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
new file mode 100644
index 000000000000..c1f77f3ca174
--- /dev/null
+++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
@@ -0,0 +1,163 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device tree for the uDPU board.
+ * Based on Marvell Armada 3720 development board (DB-88F3720-DDR3)
+ * Copyright (C) 2016 Marvell
+ * Copyright (C) 2019 Methode Electronics
+ * Copyright (C) 2019 Telus
+ *
+ * Vladimir Vid <vladimir.vid@sartura.hr>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "armada-372x.dtsi"
+
+/ {
+ model = "Methode uDPU Board";
+ compatible = "methode,udpu", "marvell,armada3720";
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
+ };
+
+ leds {
+ pinctrl-names = "default";
+ compatible = "gpio-leds";
+
+ power@487 {
+ label = "power:green:led1";
+ gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
+ default-state = "off";
+ };
+
+ power@488 {
+ label = "power:red:led1";
+ gpios = <&gpionb 12 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ network@489 {
+ label = "network:green:led2";
+ gpios = <&gpionb 13 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ network@490 {
+ label = "network:red:led2";
+ gpios = <&gpionb 14 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ alarm@491 {
+ label = "alarm:green:led3";
+ gpios = <&gpionb 15 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ alarm@492 {
+ label = "alarm:red:led3";
+ gpios = <&gpionb 16 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+ };
+
+ sfp_eth0: sfp-eth0 {
+ compatible = "sff,sfp";
+ i2c-bus = <&i2c0>;
+ los-gpio = <&gpiosb 2 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpio = <&gpiosb 3 GPIO_ACTIVE_LOW>;
+ tx-disable-gpio = <&gpiosb 4 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpio = <&gpiosb 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ sfp_eth1: sfp-eth1 {
+ compatible = "sff,sfp";
+ i2c-bus = <&i2c1>;
+ los-gpio = <&gpiosb 7 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpio = <&gpiosb 8 GPIO_ACTIVE_LOW>;
+ tx-disable-gpio = <&gpiosb 9 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpio = <&gpiosb 10 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&sdhci0 {
+ non-removable;
+ bus-width = <8>;
+ mmc-ddr-1_8v;
+ mmc-hs400-1_8v;
+ marvell,pad-type = "fixed-1-8v";
+ status = "okay";
+};
+
+&sdhci1 {
+ marvell,xenon-phy-type = "emmc 5.0 phy";
+ cd-gpios = <&gpiosb 2 GPIO_ACTIVE_LOW>;
+ bus-width = <4>;
+ marvell,pad-type = "fixed-1-8v";
+ status = "okay";
+ non-removable;
+ no-sd;
+ no-sdio;
+};
+
+&spi0 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_quad_pins>;
+
+ m25p80@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ spi-max-frequency = <54000000>;
+
+ /* bootloader is located on the SPI */
+ partition@0 {
+ label = "uboot";
+ reg = <0 0x400000>;
+ };
+ };
+};
+
+&usb3 {
+ status = "okay";
+ usb-phy = <&usb3_phy>;
+};
+
+&i2c0 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_pins>;
+};
+
+&i2c1 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c2_pins>;
+};
+
+ð0 {
+ phy-mode = "sgmii";
+ status = "okay";
+ managed = "in-band-status";
+ sfp = <&sfp_eth0>;
+};
+
+ð1 {
+ phy-mode = "sgmii";
+ status = "okay";
+ managed = "in-band-status";
+ sfp = <&sfp_eth1>;
+};
+
+&uart0 {
+ status = "okay";
+};
--
2.19.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v3] arm64: dts: marvell: Add device tree for uDPU board
@ 2019-01-15 14:44 ` Vladimir Vid
0 siblings, 0 replies; 24+ messages in thread
From: Vladimir Vid @ 2019-01-15 14:44 UTC (permalink / raw)
To: devicetree
Cc: Andrew Lunn, Luis Torres, Paul Arola, Vladimir Vid,
Scott Roberts, Luka Perkov, linux-arm-kernel
This adds initial support for micro-DPU (uDPU) board which is based on
Armada-3720 SoC. micro-DPU is the single-port FTTdp distribution point
unit made by Methode Electronics which offers complete modularity with
replaceable SFP modules both for uplink and downlink (G.hn over
twisted-pair, G.hn over coax, 1G and 2.5G Ethernet over Cat-5e cable).
On-board features:
- 512 MiB DDR3
- 2 x 2.5G SFP via HSGMII SERDES interface to the A3720 SoC
- USB 2.0 Type-C connector
- 4GB eMMC
- ETSI TS 101548 reverse powering via twisted pair (RJ45) or coax (F Type)
Cc: Luka Perkov <luka.perkov@sartura.hr>
Cc: Luis Torres <luis.torres@methode.com>
Cc: Scott Roberts <scott.roberts@telus.com>
Cc: Paul Arola <paul.arola@telus.com>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>
Cc: Andrew Lunn <andrew@lunn.ch>
---
v3 changes:
- update copyright year for Methode and Telus
- fix Methode copyright (use Methode Electornics instead of Methode)
- sort compatible string by relevance, remove armada-3720-db and
armada3710 to keep it generic
---
MAINTAINERS | 5 +
arch/arm64/boot/dts/marvell/Makefile | 1 +
.../boot/dts/marvell/armada-3720-uDPU.dts | 163 ++++++++++++++++++
3 files changed, 169 insertions(+)
create mode 100644 arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
diff --git a/MAINTAINERS b/MAINTAINERS
index 4d04cebb4a71..4ba06bfc1a1e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9852,6 +9852,11 @@ F: drivers/media/platform/meson/ao-cec.c
F: Documentation/devicetree/bindings/media/meson-ao-cec.txt
T: git git://linuxtv.org/media_tree.git
+METHODE UDPU SUPPORT
+M: Vladimir Vid <vladimir.vid@sartura.hr>
+S: Maintained
+F: arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
+
MICROBLAZE ARCHITECTURE
M: Michal Simek <monstr@monstr.eu>
W: http://www.monstr.eu/fdt/
diff --git a/arch/arm64/boot/dts/marvell/Makefile b/arch/arm64/boot/dts/marvell/Makefile
index 2eff1f927471..caed4334f27d 100644
--- a/arch/arm64/boot/dts/marvell/Makefile
+++ b/arch/arm64/boot/dts/marvell/Makefile
@@ -2,6 +2,7 @@
# Mvebu SoC Family
dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin.dtb
+dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-uDPU.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-clearfog-gt-8k.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
new file mode 100644
index 000000000000..c1f77f3ca174
--- /dev/null
+++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
@@ -0,0 +1,163 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device tree for the uDPU board.
+ * Based on Marvell Armada 3720 development board (DB-88F3720-DDR3)
+ * Copyright (C) 2016 Marvell
+ * Copyright (C) 2019 Methode Electronics
+ * Copyright (C) 2019 Telus
+ *
+ * Vladimir Vid <vladimir.vid@sartura.hr>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "armada-372x.dtsi"
+
+/ {
+ model = "Methode uDPU Board";
+ compatible = "methode,udpu", "marvell,armada3720";
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
+ };
+
+ leds {
+ pinctrl-names = "default";
+ compatible = "gpio-leds";
+
+ power@487 {
+ label = "power:green:led1";
+ gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
+ default-state = "off";
+ };
+
+ power@488 {
+ label = "power:red:led1";
+ gpios = <&gpionb 12 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ network@489 {
+ label = "network:green:led2";
+ gpios = <&gpionb 13 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ network@490 {
+ label = "network:red:led2";
+ gpios = <&gpionb 14 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ alarm@491 {
+ label = "alarm:green:led3";
+ gpios = <&gpionb 15 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ alarm@492 {
+ label = "alarm:red:led3";
+ gpios = <&gpionb 16 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+ };
+
+ sfp_eth0: sfp-eth0 {
+ compatible = "sff,sfp";
+ i2c-bus = <&i2c0>;
+ los-gpio = <&gpiosb 2 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpio = <&gpiosb 3 GPIO_ACTIVE_LOW>;
+ tx-disable-gpio = <&gpiosb 4 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpio = <&gpiosb 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ sfp_eth1: sfp-eth1 {
+ compatible = "sff,sfp";
+ i2c-bus = <&i2c1>;
+ los-gpio = <&gpiosb 7 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpio = <&gpiosb 8 GPIO_ACTIVE_LOW>;
+ tx-disable-gpio = <&gpiosb 9 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpio = <&gpiosb 10 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&sdhci0 {
+ non-removable;
+ bus-width = <8>;
+ mmc-ddr-1_8v;
+ mmc-hs400-1_8v;
+ marvell,pad-type = "fixed-1-8v";
+ status = "okay";
+};
+
+&sdhci1 {
+ marvell,xenon-phy-type = "emmc 5.0 phy";
+ cd-gpios = <&gpiosb 2 GPIO_ACTIVE_LOW>;
+ bus-width = <4>;
+ marvell,pad-type = "fixed-1-8v";
+ status = "okay";
+ non-removable;
+ no-sd;
+ no-sdio;
+};
+
+&spi0 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_quad_pins>;
+
+ m25p80@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ spi-max-frequency = <54000000>;
+
+ /* bootloader is located on the SPI */
+ partition@0 {
+ label = "uboot";
+ reg = <0 0x400000>;
+ };
+ };
+};
+
+&usb3 {
+ status = "okay";
+ usb-phy = <&usb3_phy>;
+};
+
+&i2c0 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_pins>;
+};
+
+&i2c1 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c2_pins>;
+};
+
+ð0 {
+ phy-mode = "sgmii";
+ status = "okay";
+ managed = "in-band-status";
+ sfp = <&sfp_eth0>;
+};
+
+ð1 {
+ phy-mode = "sgmii";
+ status = "okay";
+ managed = "in-band-status";
+ sfp = <&sfp_eth1>;
+};
+
+&uart0 {
+ status = "okay";
+};
--
2.19.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v3] arm64: dts: marvell: Add device tree for uDPU board
2019-01-15 14:44 ` Vladimir Vid
@ 2019-01-15 16:16 ` Andrew Lunn
-1 siblings, 0 replies; 24+ messages in thread
From: Andrew Lunn @ 2019-01-15 16:16 UTC (permalink / raw)
To: Vladimir Vid, Gregory Clement
Cc: devicetree, Luis Torres, Paul Arola, Scott Roberts, Luka Perkov,
linux-arm-kernel
Hi Vladimir
Ah, i did not notice early. You need to Cc: the Marvell mvebu
maintainers. They are the ones who will accept this patch.
> + leds {
> + pinctrl-names = "default";
> + compatible = "gpio-leds";
> +
> + power@487 {
> + label = "power:green:led1";
> + gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
> + default-state = "off";
> + };
I'm a bit out of date with dtc warnings. I think the @487 will
generate a warning because there is no reg property?
Gregory, do you know?
Thanks
Andrew
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3] arm64: dts: marvell: Add device tree for uDPU board
@ 2019-01-15 16:16 ` Andrew Lunn
0 siblings, 0 replies; 24+ messages in thread
From: Andrew Lunn @ 2019-01-15 16:16 UTC (permalink / raw)
To: Vladimir Vid, Gregory Clement
Cc: devicetree, Luis Torres, Paul Arola, Scott Roberts, Luka Perkov,
linux-arm-kernel
Hi Vladimir
Ah, i did not notice early. You need to Cc: the Marvell mvebu
maintainers. They are the ones who will accept this patch.
> + leds {
> + pinctrl-names = "default";
> + compatible = "gpio-leds";
> +
> + power@487 {
> + label = "power:green:led1";
> + gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
> + default-state = "off";
> + };
I'm a bit out of date with dtc warnings. I think the @487 will
generate a warning because there is no reg property?
Gregory, do you know?
Thanks
Andrew
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3] arm64: dts: marvell: Add device tree for uDPU board
2019-01-15 16:16 ` Andrew Lunn
@ 2019-01-15 16:37 ` Gregory CLEMENT
-1 siblings, 0 replies; 24+ messages in thread
From: Gregory CLEMENT @ 2019-01-15 16:37 UTC (permalink / raw)
To: Andrew Lunn
Cc: devicetree, Luis Torres, Paul Arola, Luka Perkov, Vladimir Vid,
Scott Roberts, linux-arm-kernel
Hi Andrew,
On mar., janv. 15 2019, Andrew Lunn <andrew@lunn.ch> wrote:
> Hi Vladimir
>
> Ah, i did not notice early. You need to Cc: the Marvell mvebu
> maintainers. They are the ones who will accept this patch.
>
>
>> + leds {
>> + pinctrl-names = "default";
>> + compatible = "gpio-leds";
>> +
>> + power@487 {
>> + label = "power:green:led1";
>> + gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
>> + default-state = "off";
>> + };
>
> I'm a bit out of date with dtc warnings. I think the @487 will
> generate a warning because there is no reg property?
>
> Gregory, do you know?
I confirm that if there is no reg then there should not have a @XXX.
Gregory
>
> Thanks
> Andrew
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
--
Gregory Clement, Bootlin
Embedded Linux and Kernel engineering
http://bootlin.com
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3] arm64: dts: marvell: Add device tree for uDPU board
@ 2019-01-15 16:37 ` Gregory CLEMENT
0 siblings, 0 replies; 24+ messages in thread
From: Gregory CLEMENT @ 2019-01-15 16:37 UTC (permalink / raw)
To: Andrew Lunn
Cc: devicetree, Luis Torres, Paul Arola, Luka Perkov, Vladimir Vid,
Scott Roberts, linux-arm-kernel
Hi Andrew,
On mar., janv. 15 2019, Andrew Lunn <andrew@lunn.ch> wrote:
> Hi Vladimir
>
> Ah, i did not notice early. You need to Cc: the Marvell mvebu
> maintainers. They are the ones who will accept this patch.
>
>
>> + leds {
>> + pinctrl-names = "default";
>> + compatible = "gpio-leds";
>> +
>> + power@487 {
>> + label = "power:green:led1";
>> + gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
>> + default-state = "off";
>> + };
>
> I'm a bit out of date with dtc warnings. I think the @487 will
> generate a warning because there is no reg property?
>
> Gregory, do you know?
I confirm that if there is no reg then there should not have a @XXX.
Gregory
>
> Thanks
> Andrew
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
--
Gregory Clement, Bootlin
Embedded Linux and Kernel engineering
http://bootlin.com
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v4] arm64: dts: marvell: Add device tree for uDPU board
2019-01-11 17:20 ` Vladimir Vid
@ 2019-01-15 17:38 ` Vladimir Vid
-1 siblings, 0 replies; 24+ messages in thread
From: Vladimir Vid @ 2019-01-15 17:38 UTC (permalink / raw)
To: devicetree
Cc: Andrew Lunn, Luis Torres, Jason Cooper, Paul Arola,
Gregory Clement, Vladimir Vid, Scott Roberts, Luka Perkov,
linux-arm-kernel, Sebastian Hesselbarth
This adds initial support for micro-DPU (uDPU) board which is based on
Armada-3720 SoC. micro-DPU is the single-port FTTdp distribution point
unit made by Methode Electronics which offers complete modularity with
replaceable SFP modules both for uplink and downlink (G.hn over
twisted-pair, G.hn over coax, 1G and 2.5G Ethernet over Cat-5e cable).
On-board features:
- 512 MiB DDR3
- 2 x 2.5G SFP via HSGMII SERDES interface to the A3720 SoC
- USB 2.0 Type-C connector
- 4GB eMMC
- ETSI TS 101548 reverse powering via twisted pair (RJ45) or coax (F Type)
Cc: Luka Perkov <luka.perkov@sartura.hr>
Cc: Luis Torres <luis.torres@methode.com>
Cc: Scott Roberts <scott.roberts@telus.com>
Cc: Paul Arola <paul.arola@telus.com>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Gregory Clement <gregory.clement@bootlin.com>
Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>
---
v2:
- add compatible string for the uDPU board
- add names and labels for the LEDs
- remove unused mdio node
- remove eeprom nodes
v3:
- update copyright year for Methode and Telus
- fix Methode copyright (use Methode Electornics instead of Methode)
- sort compatible string by relevance, remove armada-3720-db and
armada3710 to keep it generic
v4:
- add generic names for LEDs since they don't use regs
- add 'partitions' section to standarize with other A37xx/A7K/A8K dts's
- remove usb3 phandle because of the broken usb_phy (previously used on
Marvell linux repo) and since usb support is still work in progress
---
MAINTAINERS | 5 +
arch/arm64/boot/dts/marvell/Makefile | 1 +
.../boot/dts/marvell/armada-3720-uDPU.dts | 163 ++++++++++++++++++
3 files changed, 169 insertions(+)
create mode 100644 arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
diff --git a/MAINTAINERS b/MAINTAINERS
index 4d04cebb4a71..4ba06bfc1a1e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9852,6 +9852,11 @@ F: drivers/media/platform/meson/ao-cec.c
F: Documentation/devicetree/bindings/media/meson-ao-cec.txt
T: git git://linuxtv.org/media_tree.git
+METHODE UDPU SUPPORT
+M: Vladimir Vid <vladimir.vid@sartura.hr>
+S: Maintained
+F: arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
+
MICROBLAZE ARCHITECTURE
M: Michal Simek <monstr@monstr.eu>
W: http://www.monstr.eu/fdt/
diff --git a/arch/arm64/boot/dts/marvell/Makefile b/arch/arm64/boot/dts/marvell/Makefile
index 2eff1f927471..caed4334f27d 100644
--- a/arch/arm64/boot/dts/marvell/Makefile
+++ b/arch/arm64/boot/dts/marvell/Makefile
@@ -2,6 +2,7 @@
# Mvebu SoC Family
dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin.dtb
+dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-uDPU.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-clearfog-gt-8k.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
new file mode 100644
index 000000000000..1d7e6c82d3ec
--- /dev/null
+++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
@@ -0,0 +1,163 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device tree for the uDPU board.
+ * Based on Marvell Armada 3720 development board (DB-88F3720-DDR3)
+ * Copyright (C) 2016 Marvell
+ * Copyright (C) 2019 Methode Electronics
+ * Copyright (C) 2019 Telus
+ *
+ * Vladimir Vid <vladimir.vid@sartura.hr>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "armada-372x.dtsi"
+
+/ {
+ model = "Methode uDPU Board";
+ compatible = "methode,udpu", "marvell,armada3720";
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
+ };
+
+ leds {
+ pinctrl-names = "default";
+ compatible = "gpio-leds";
+
+ power1 {
+ label = "power:green:led1";
+ gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
+ default-state = "off";
+ };
+
+ power2 {
+ label = "power:red:led1";
+ gpios = <&gpionb 12 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ network1 {
+ label = "network:green:led2";
+ gpios = <&gpionb 13 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ network2 {
+ label = "network:red:led2";
+ gpios = <&gpionb 14 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ alarm1 {
+ label = "alarm:green:led3";
+ gpios = <&gpionb 15 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ alarm2 {
+ label = "alarm:red:led3";
+ gpios = <&gpionb 16 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+ };
+
+ sfp_eth0: sfp-eth0 {
+ compatible = "sff,sfp";
+ i2c-bus = <&i2c0>;
+ los-gpio = <&gpiosb 2 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpio = <&gpiosb 3 GPIO_ACTIVE_LOW>;
+ tx-disable-gpio = <&gpiosb 4 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpio = <&gpiosb 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ sfp_eth1: sfp-eth1 {
+ compatible = "sff,sfp";
+ i2c-bus = <&i2c1>;
+ los-gpio = <&gpiosb 7 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpio = <&gpiosb 8 GPIO_ACTIVE_LOW>;
+ tx-disable-gpio = <&gpiosb 9 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpio = <&gpiosb 10 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&sdhci0 {
+ non-removable;
+ bus-width = <8>;
+ mmc-ddr-1_8v;
+ mmc-hs400-1_8v;
+ marvell,pad-type = "fixed-1-8v";
+ status = "okay";
+};
+
+&sdhci1 {
+ marvell,xenon-phy-type = "emmc 5.0 phy";
+ cd-gpios = <&gpiosb 2 GPIO_ACTIVE_LOW>;
+ bus-width = <4>;
+ marvell,pad-type = "fixed-1-8v";
+ status = "okay";
+ non-removable;
+ no-sd;
+ no-sdio;
+};
+
+&spi0 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_quad_pins>;
+
+ m25p80@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ spi-max-frequency = <54000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ /* only bootloader is located on the SPI */
+ partition@0 {
+ label = "uboot";
+ reg = <0 0x400000>;
+ };
+ };
+ };
+};
+
+&i2c0 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_pins>;
+};
+
+&i2c1 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c2_pins>;
+};
+
+ð0 {
+ phy-mode = "sgmii";
+ status = "okay";
+ managed = "in-band-status";
+ sfp = <&sfp_eth0>;
+};
+
+ð1 {
+ phy-mode = "sgmii";
+ status = "okay";
+ managed = "in-band-status";
+ sfp = <&sfp_eth1>;
+};
+
+&uart0 {
+ status = "okay";
+};
--
2.19.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v4] arm64: dts: marvell: Add device tree for uDPU board
@ 2019-01-15 17:38 ` Vladimir Vid
0 siblings, 0 replies; 24+ messages in thread
From: Vladimir Vid @ 2019-01-15 17:38 UTC (permalink / raw)
To: devicetree
Cc: Andrew Lunn, Luis Torres, Jason Cooper, Paul Arola,
Gregory Clement, Vladimir Vid, Scott Roberts, Luka Perkov,
linux-arm-kernel, Sebastian Hesselbarth
This adds initial support for micro-DPU (uDPU) board which is based on
Armada-3720 SoC. micro-DPU is the single-port FTTdp distribution point
unit made by Methode Electronics which offers complete modularity with
replaceable SFP modules both for uplink and downlink (G.hn over
twisted-pair, G.hn over coax, 1G and 2.5G Ethernet over Cat-5e cable).
On-board features:
- 512 MiB DDR3
- 2 x 2.5G SFP via HSGMII SERDES interface to the A3720 SoC
- USB 2.0 Type-C connector
- 4GB eMMC
- ETSI TS 101548 reverse powering via twisted pair (RJ45) or coax (F Type)
Cc: Luka Perkov <luka.perkov@sartura.hr>
Cc: Luis Torres <luis.torres@methode.com>
Cc: Scott Roberts <scott.roberts@telus.com>
Cc: Paul Arola <paul.arola@telus.com>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Gregory Clement <gregory.clement@bootlin.com>
Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>
---
v2:
- add compatible string for the uDPU board
- add names and labels for the LEDs
- remove unused mdio node
- remove eeprom nodes
v3:
- update copyright year for Methode and Telus
- fix Methode copyright (use Methode Electornics instead of Methode)
- sort compatible string by relevance, remove armada-3720-db and
armada3710 to keep it generic
v4:
- add generic names for LEDs since they don't use regs
- add 'partitions' section to standarize with other A37xx/A7K/A8K dts's
- remove usb3 phandle because of the broken usb_phy (previously used on
Marvell linux repo) and since usb support is still work in progress
---
MAINTAINERS | 5 +
arch/arm64/boot/dts/marvell/Makefile | 1 +
.../boot/dts/marvell/armada-3720-uDPU.dts | 163 ++++++++++++++++++
3 files changed, 169 insertions(+)
create mode 100644 arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
diff --git a/MAINTAINERS b/MAINTAINERS
index 4d04cebb4a71..4ba06bfc1a1e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9852,6 +9852,11 @@ F: drivers/media/platform/meson/ao-cec.c
F: Documentation/devicetree/bindings/media/meson-ao-cec.txt
T: git git://linuxtv.org/media_tree.git
+METHODE UDPU SUPPORT
+M: Vladimir Vid <vladimir.vid@sartura.hr>
+S: Maintained
+F: arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
+
MICROBLAZE ARCHITECTURE
M: Michal Simek <monstr@monstr.eu>
W: http://www.monstr.eu/fdt/
diff --git a/arch/arm64/boot/dts/marvell/Makefile b/arch/arm64/boot/dts/marvell/Makefile
index 2eff1f927471..caed4334f27d 100644
--- a/arch/arm64/boot/dts/marvell/Makefile
+++ b/arch/arm64/boot/dts/marvell/Makefile
@@ -2,6 +2,7 @@
# Mvebu SoC Family
dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin.dtb
+dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-uDPU.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-clearfog-gt-8k.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
new file mode 100644
index 000000000000..1d7e6c82d3ec
--- /dev/null
+++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
@@ -0,0 +1,163 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device tree for the uDPU board.
+ * Based on Marvell Armada 3720 development board (DB-88F3720-DDR3)
+ * Copyright (C) 2016 Marvell
+ * Copyright (C) 2019 Methode Electronics
+ * Copyright (C) 2019 Telus
+ *
+ * Vladimir Vid <vladimir.vid@sartura.hr>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "armada-372x.dtsi"
+
+/ {
+ model = "Methode uDPU Board";
+ compatible = "methode,udpu", "marvell,armada3720";
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
+ };
+
+ leds {
+ pinctrl-names = "default";
+ compatible = "gpio-leds";
+
+ power1 {
+ label = "power:green:led1";
+ gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
+ default-state = "off";
+ };
+
+ power2 {
+ label = "power:red:led1";
+ gpios = <&gpionb 12 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ network1 {
+ label = "network:green:led2";
+ gpios = <&gpionb 13 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ network2 {
+ label = "network:red:led2";
+ gpios = <&gpionb 14 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ alarm1 {
+ label = "alarm:green:led3";
+ gpios = <&gpionb 15 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ alarm2 {
+ label = "alarm:red:led3";
+ gpios = <&gpionb 16 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+ };
+
+ sfp_eth0: sfp-eth0 {
+ compatible = "sff,sfp";
+ i2c-bus = <&i2c0>;
+ los-gpio = <&gpiosb 2 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpio = <&gpiosb 3 GPIO_ACTIVE_LOW>;
+ tx-disable-gpio = <&gpiosb 4 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpio = <&gpiosb 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ sfp_eth1: sfp-eth1 {
+ compatible = "sff,sfp";
+ i2c-bus = <&i2c1>;
+ los-gpio = <&gpiosb 7 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpio = <&gpiosb 8 GPIO_ACTIVE_LOW>;
+ tx-disable-gpio = <&gpiosb 9 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpio = <&gpiosb 10 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&sdhci0 {
+ non-removable;
+ bus-width = <8>;
+ mmc-ddr-1_8v;
+ mmc-hs400-1_8v;
+ marvell,pad-type = "fixed-1-8v";
+ status = "okay";
+};
+
+&sdhci1 {
+ marvell,xenon-phy-type = "emmc 5.0 phy";
+ cd-gpios = <&gpiosb 2 GPIO_ACTIVE_LOW>;
+ bus-width = <4>;
+ marvell,pad-type = "fixed-1-8v";
+ status = "okay";
+ non-removable;
+ no-sd;
+ no-sdio;
+};
+
+&spi0 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_quad_pins>;
+
+ m25p80@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ spi-max-frequency = <54000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ /* only bootloader is located on the SPI */
+ partition@0 {
+ label = "uboot";
+ reg = <0 0x400000>;
+ };
+ };
+ };
+};
+
+&i2c0 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_pins>;
+};
+
+&i2c1 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c2_pins>;
+};
+
+ð0 {
+ phy-mode = "sgmii";
+ status = "okay";
+ managed = "in-band-status";
+ sfp = <&sfp_eth0>;
+};
+
+ð1 {
+ phy-mode = "sgmii";
+ status = "okay";
+ managed = "in-band-status";
+ sfp = <&sfp_eth1>;
+};
+
+&uart0 {
+ status = "okay";
+};
--
2.19.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v4] arm64: dts: marvell: Add device tree for uDPU board
2019-01-15 17:38 ` Vladimir Vid
@ 2019-01-18 15:45 ` Gregory CLEMENT
-1 siblings, 0 replies; 24+ messages in thread
From: Gregory CLEMENT @ 2019-01-18 15:45 UTC (permalink / raw)
To: Vladimir Vid
Cc: devicetree, Luis Torres, Jason Cooper, Paul Arola, Andrew Lunn,
Scott Roberts, Luka Perkov, linux-arm-kernel,
Sebastian Hesselbarth
Hi Vladimir,
On mar., janv. 15 2019, Vladimir Vid <vladimir.vid@sartura.hr> wrote:
> This adds initial support for micro-DPU (uDPU) board which is based on
> Armada-3720 SoC. micro-DPU is the single-port FTTdp distribution point
> unit made by Methode Electronics which offers complete modularity with
> replaceable SFP modules both for uplink and downlink (G.hn over
> twisted-pair, G.hn over coax, 1G and 2.5G Ethernet over Cat-5e cable).
>
> On-board features:
> - 512 MiB DDR3
> - 2 x 2.5G SFP via HSGMII SERDES interface to the A3720 SoC
> - USB 2.0 Type-C connector
> - 4GB eMMC
> - ETSI TS 101548 reverse powering via twisted pair (RJ45) or coax (F Type)
>
> Cc: Luka Perkov <luka.perkov@sartura.hr>
> Cc: Luis Torres <luis.torres@methode.com>
> Cc: Scott Roberts <scott.roberts@telus.com>
> Cc: Paul Arola <paul.arola@telus.com>
> Cc: Andrew Lunn <andrew@lunn.ch>
> Cc: Jason Cooper <jason@lakedaemon.net>
> Cc: Gregory Clement <gregory.clement@bootlin.com>
> Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>
> ---
>
> v2:
> - add compatible string for the uDPU board
> - add names and labels for the LEDs
> - remove unused mdio node
> - remove eeprom nodes
>
> v3:
> - update copyright year for Methode and Telus
> - fix Methode copyright (use Methode Electornics instead of Methode)
> - sort compatible string by relevance, remove armada-3720-db and
> armada3710 to keep it generic
>
> v4:
> - add generic names for LEDs since they don't use regs
> - add 'partitions' section to standarize with other A37xx/A7K/A8K dts's
> - remove usb3 phandle because of the broken usb_phy (previously used on
> Marvell linux repo) and since usb support is still work in progress
>
> ---
> MAINTAINERS | 5 +
> arch/arm64/boot/dts/marvell/Makefile | 1 +
> .../boot/dts/marvell/armada-3720-uDPU.dts | 163 ++++++++++++++++++
> 3 files changed, 169 insertions(+)
> create mode 100644 arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 4d04cebb4a71..4ba06bfc1a1e 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -9852,6 +9852,11 @@ F: drivers/media/platform/meson/ao-cec.c
> F: Documentation/devicetree/bindings/media/meson-ao-cec.txt
> T: git git://linuxtv.org/media_tree.git
>
> +METHODE UDPU SUPPORT
> +M: Vladimir Vid <vladimir.vid@sartura.hr>
> +S: Maintained
> +F: arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
> +
> MICROBLAZE ARCHITECTURE
> M: Michal Simek <monstr@monstr.eu>
> W: http://www.monstr.eu/fdt/
> diff --git a/arch/arm64/boot/dts/marvell/Makefile b/arch/arm64/boot/dts/marvell/Makefile
> index 2eff1f927471..caed4334f27d 100644
> --- a/arch/arm64/boot/dts/marvell/Makefile
> +++ b/arch/arm64/boot/dts/marvell/Makefile
> @@ -2,6 +2,7 @@
> # Mvebu SoC Family
> dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb
> dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin.dtb
> +dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-uDPU.dtb
> dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb
> dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-clearfog-gt-8k.dtb
> dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb
> diff --git a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
> new file mode 100644
> index 000000000000..1d7e6c82d3ec
> --- /dev/null
> +++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
> @@ -0,0 +1,163 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Device tree for the uDPU board.
> + * Based on Marvell Armada 3720 development board (DB-88F3720-DDR3)
> + * Copyright (C) 2016 Marvell
> + * Copyright (C) 2019 Methode Electronics
> + * Copyright (C) 2019 Telus
> + *
> + * Vladimir Vid <vladimir.vid@sartura.hr>
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include "armada-372x.dtsi"
> +
> +/ {
> + model = "Methode uDPU Board";
> + compatible = "methode,udpu", "marvell,armada3720";
> +
> + chosen {
> + stdout-path = "serial0:115200n8";
> + };
> +
> + memory@0 {
> + device_type = "memory";
> + reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
> + };
> +
> + leds {
> + pinctrl-names = "default";
> + compatible = "gpio-leds";
> +
> + power1 {
> + label = "power:green:led1";
> + gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
> + default-state = "off";
> + };
> +
> + power2 {
> + label = "power:red:led1";
> + gpios = <&gpionb 12 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + };
> +
> + network1 {
> + label = "network:green:led2";
> + gpios = <&gpionb 13 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + };
> +
> + network2 {
> + label = "network:red:led2";
> + gpios = <&gpionb 14 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + };
> +
> + alarm1 {
> + label = "alarm:green:led3";
> + gpios = <&gpionb 15 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + };
> +
> + alarm2 {
> + label = "alarm:red:led3";
> + gpios = <&gpionb 16 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + };
> + };
> +
> + sfp_eth0: sfp-eth0 {
> + compatible = "sff,sfp";
> + i2c-bus = <&i2c0>;
> + los-gpio = <&gpiosb 2 GPIO_ACTIVE_HIGH>;
> + mod-def0-gpio = <&gpiosb 3 GPIO_ACTIVE_LOW>;
> + tx-disable-gpio = <&gpiosb 4 GPIO_ACTIVE_HIGH>;
> + tx-fault-gpio = <&gpiosb 5 GPIO_ACTIVE_HIGH>;
> + };
> +
> + sfp_eth1: sfp-eth1 {
> + compatible = "sff,sfp";
> + i2c-bus = <&i2c1>;
> + los-gpio = <&gpiosb 7 GPIO_ACTIVE_HIGH>;
> + mod-def0-gpio = <&gpiosb 8 GPIO_ACTIVE_LOW>;
> + tx-disable-gpio = <&gpiosb 9 GPIO_ACTIVE_HIGH>;
> + tx-fault-gpio = <&gpiosb 10 GPIO_ACTIVE_HIGH>;
> + };
> +};
> +
> +&sdhci0 {
> + non-removable;
> + bus-width = <8>;
> + mmc-ddr-1_8v;
> + mmc-hs400-1_8v;
> + marvell,pad-type = "fixed-1-8v";
> + status = "okay";
> +};
> +
> +&sdhci1 {
> + marvell,xenon-phy-type = "emmc 5.0 phy";
You have a GPIO for a card detect here:
> + cd-gpios = <&gpiosb 2 GPIO_ACTIVE_LOW>;
> + bus-width = <4>;
> + marvell,pad-type = "fixed-1-8v";
> + status = "okay";
But here you say that the card is not removable:
> + non-removable;
> + no-sd;
> + no-sdio;
Can you explain what do you expect to be connected here?
Thanks,
Gregory
> +};
> +
> +&spi0 {
> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&spi_quad_pins>;
> +
> + m25p80@0 {
> + compatible = "jedec,spi-nor";
> + reg = <0>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> + spi-max-frequency = <54000000>;
> +
> + partitions {
> + compatible = "fixed-partitions";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + /* only bootloader is located on the SPI */
> + partition@0 {
> + label = "uboot";
> + reg = <0 0x400000>;
> + };
> + };
> + };
> +};
> +
> +&i2c0 {
> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c1_pins>;
> +};
> +
> +&i2c1 {
> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c2_pins>;
> +};
> +
> +ð0 {
> + phy-mode = "sgmii";
> + status = "okay";
> + managed = "in-band-status";
> + sfp = <&sfp_eth0>;
> +};
> +
> +ð1 {
> + phy-mode = "sgmii";
> + status = "okay";
> + managed = "in-band-status";
> + sfp = <&sfp_eth1>;
> +};
> +
> +&uart0 {
> + status = "okay";
> +};
> --
> 2.19.0
>
--
Gregory Clement, Bootlin
Embedded Linux and Kernel engineering
http://bootlin.com
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v4] arm64: dts: marvell: Add device tree for uDPU board
@ 2019-01-18 15:45 ` Gregory CLEMENT
0 siblings, 0 replies; 24+ messages in thread
From: Gregory CLEMENT @ 2019-01-18 15:45 UTC (permalink / raw)
To: Vladimir Vid
Cc: devicetree, Luis Torres, Jason Cooper, Paul Arola, Andrew Lunn,
Scott Roberts, Luka Perkov, linux-arm-kernel,
Sebastian Hesselbarth
Hi Vladimir,
On mar., janv. 15 2019, Vladimir Vid <vladimir.vid@sartura.hr> wrote:
> This adds initial support for micro-DPU (uDPU) board which is based on
> Armada-3720 SoC. micro-DPU is the single-port FTTdp distribution point
> unit made by Methode Electronics which offers complete modularity with
> replaceable SFP modules both for uplink and downlink (G.hn over
> twisted-pair, G.hn over coax, 1G and 2.5G Ethernet over Cat-5e cable).
>
> On-board features:
> - 512 MiB DDR3
> - 2 x 2.5G SFP via HSGMII SERDES interface to the A3720 SoC
> - USB 2.0 Type-C connector
> - 4GB eMMC
> - ETSI TS 101548 reverse powering via twisted pair (RJ45) or coax (F Type)
>
> Cc: Luka Perkov <luka.perkov@sartura.hr>
> Cc: Luis Torres <luis.torres@methode.com>
> Cc: Scott Roberts <scott.roberts@telus.com>
> Cc: Paul Arola <paul.arola@telus.com>
> Cc: Andrew Lunn <andrew@lunn.ch>
> Cc: Jason Cooper <jason@lakedaemon.net>
> Cc: Gregory Clement <gregory.clement@bootlin.com>
> Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>
> ---
>
> v2:
> - add compatible string for the uDPU board
> - add names and labels for the LEDs
> - remove unused mdio node
> - remove eeprom nodes
>
> v3:
> - update copyright year for Methode and Telus
> - fix Methode copyright (use Methode Electornics instead of Methode)
> - sort compatible string by relevance, remove armada-3720-db and
> armada3710 to keep it generic
>
> v4:
> - add generic names for LEDs since they don't use regs
> - add 'partitions' section to standarize with other A37xx/A7K/A8K dts's
> - remove usb3 phandle because of the broken usb_phy (previously used on
> Marvell linux repo) and since usb support is still work in progress
>
> ---
> MAINTAINERS | 5 +
> arch/arm64/boot/dts/marvell/Makefile | 1 +
> .../boot/dts/marvell/armada-3720-uDPU.dts | 163 ++++++++++++++++++
> 3 files changed, 169 insertions(+)
> create mode 100644 arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 4d04cebb4a71..4ba06bfc1a1e 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -9852,6 +9852,11 @@ F: drivers/media/platform/meson/ao-cec.c
> F: Documentation/devicetree/bindings/media/meson-ao-cec.txt
> T: git git://linuxtv.org/media_tree.git
>
> +METHODE UDPU SUPPORT
> +M: Vladimir Vid <vladimir.vid@sartura.hr>
> +S: Maintained
> +F: arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
> +
> MICROBLAZE ARCHITECTURE
> M: Michal Simek <monstr@monstr.eu>
> W: http://www.monstr.eu/fdt/
> diff --git a/arch/arm64/boot/dts/marvell/Makefile b/arch/arm64/boot/dts/marvell/Makefile
> index 2eff1f927471..caed4334f27d 100644
> --- a/arch/arm64/boot/dts/marvell/Makefile
> +++ b/arch/arm64/boot/dts/marvell/Makefile
> @@ -2,6 +2,7 @@
> # Mvebu SoC Family
> dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb
> dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin.dtb
> +dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-uDPU.dtb
> dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb
> dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-clearfog-gt-8k.dtb
> dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb
> diff --git a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
> new file mode 100644
> index 000000000000..1d7e6c82d3ec
> --- /dev/null
> +++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
> @@ -0,0 +1,163 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Device tree for the uDPU board.
> + * Based on Marvell Armada 3720 development board (DB-88F3720-DDR3)
> + * Copyright (C) 2016 Marvell
> + * Copyright (C) 2019 Methode Electronics
> + * Copyright (C) 2019 Telus
> + *
> + * Vladimir Vid <vladimir.vid@sartura.hr>
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include "armada-372x.dtsi"
> +
> +/ {
> + model = "Methode uDPU Board";
> + compatible = "methode,udpu", "marvell,armada3720";
> +
> + chosen {
> + stdout-path = "serial0:115200n8";
> + };
> +
> + memory@0 {
> + device_type = "memory";
> + reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
> + };
> +
> + leds {
> + pinctrl-names = "default";
> + compatible = "gpio-leds";
> +
> + power1 {
> + label = "power:green:led1";
> + gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
> + default-state = "off";
> + };
> +
> + power2 {
> + label = "power:red:led1";
> + gpios = <&gpionb 12 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + };
> +
> + network1 {
> + label = "network:green:led2";
> + gpios = <&gpionb 13 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + };
> +
> + network2 {
> + label = "network:red:led2";
> + gpios = <&gpionb 14 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + };
> +
> + alarm1 {
> + label = "alarm:green:led3";
> + gpios = <&gpionb 15 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + };
> +
> + alarm2 {
> + label = "alarm:red:led3";
> + gpios = <&gpionb 16 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + };
> + };
> +
> + sfp_eth0: sfp-eth0 {
> + compatible = "sff,sfp";
> + i2c-bus = <&i2c0>;
> + los-gpio = <&gpiosb 2 GPIO_ACTIVE_HIGH>;
> + mod-def0-gpio = <&gpiosb 3 GPIO_ACTIVE_LOW>;
> + tx-disable-gpio = <&gpiosb 4 GPIO_ACTIVE_HIGH>;
> + tx-fault-gpio = <&gpiosb 5 GPIO_ACTIVE_HIGH>;
> + };
> +
> + sfp_eth1: sfp-eth1 {
> + compatible = "sff,sfp";
> + i2c-bus = <&i2c1>;
> + los-gpio = <&gpiosb 7 GPIO_ACTIVE_HIGH>;
> + mod-def0-gpio = <&gpiosb 8 GPIO_ACTIVE_LOW>;
> + tx-disable-gpio = <&gpiosb 9 GPIO_ACTIVE_HIGH>;
> + tx-fault-gpio = <&gpiosb 10 GPIO_ACTIVE_HIGH>;
> + };
> +};
> +
> +&sdhci0 {
> + non-removable;
> + bus-width = <8>;
> + mmc-ddr-1_8v;
> + mmc-hs400-1_8v;
> + marvell,pad-type = "fixed-1-8v";
> + status = "okay";
> +};
> +
> +&sdhci1 {
> + marvell,xenon-phy-type = "emmc 5.0 phy";
You have a GPIO for a card detect here:
> + cd-gpios = <&gpiosb 2 GPIO_ACTIVE_LOW>;
> + bus-width = <4>;
> + marvell,pad-type = "fixed-1-8v";
> + status = "okay";
But here you say that the card is not removable:
> + non-removable;
> + no-sd;
> + no-sdio;
Can you explain what do you expect to be connected here?
Thanks,
Gregory
> +};
> +
> +&spi0 {
> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&spi_quad_pins>;
> +
> + m25p80@0 {
> + compatible = "jedec,spi-nor";
> + reg = <0>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> + spi-max-frequency = <54000000>;
> +
> + partitions {
> + compatible = "fixed-partitions";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + /* only bootloader is located on the SPI */
> + partition@0 {
> + label = "uboot";
> + reg = <0 0x400000>;
> + };
> + };
> + };
> +};
> +
> +&i2c0 {
> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c1_pins>;
> +};
> +
> +&i2c1 {
> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c2_pins>;
> +};
> +
> +ð0 {
> + phy-mode = "sgmii";
> + status = "okay";
> + managed = "in-band-status";
> + sfp = <&sfp_eth0>;
> +};
> +
> +ð1 {
> + phy-mode = "sgmii";
> + status = "okay";
> + managed = "in-band-status";
> + sfp = <&sfp_eth1>;
> +};
> +
> +&uart0 {
> + status = "okay";
> +};
> --
> 2.19.0
>
--
Gregory Clement, Bootlin
Embedded Linux and Kernel engineering
http://bootlin.com
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v4] arm64: dts: marvell: Add device tree for uDPU board
2019-01-11 17:20 ` Vladimir Vid
` (6 preceding siblings ...)
(?)
@ 2019-01-24 15:54 ` Vladimir Vid
-1 siblings, 0 replies; 24+ messages in thread
From: Vladimir Vid @ 2019-01-24 15:54 UTC (permalink / raw)
To: gregory.clement; +Cc: devicetree, Vladimir Vid
From: Vladimir Vid <vladimir.vid@satura.hr>
Hi Gregory,
> You have a GPIO for a card detect here:
>> + cd-gpios = <&gpiosb 2 GPIO_ACTIVE_LOW>;
>> + bus-width = <4>;
>> + marvell,pad-type = "fixed-1-8v";
>> + status = "okay";
>
> But here you say that the card is not removable:
>> + non-removable;
>> + no-sd;
>> + no-sdio;
>
> Can you explain what do you expect to be connected here?
Originally there was an hardware bug with the eMMC where we had
to have both sdhci0 and sdhci1 interfaces in order to get it detected.
As a part of a workaround we added the non-removable options on both nodes.
This is fixed in the latest revision where sdhci1 is completely removed.
I'm currently working on v5 as there as some other changes as well.
Regards,
Vladimir
^ permalink raw reply [flat|nested] 24+ messages in thread