All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] Add Traverse Technologies Ten64 board DTS
@ 2021-07-22  4:24 ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-22  4:24 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Traverse Technologies Ten64 board is a networking-oriented
Mini-ITX form factor appliance using the NXP LS1088A SoC.

This patch series adds a basic device tree (fsl-ls1088a-ten64.dts)
for the board. At the moment only hardware features supported
(or soon to be supported) by mainline kernels are described.

In the course of verifying the DTS on recent kernels, it
was found that some LS1088A features were not described
in fsl-ls1088a.dtsi. The first two patches add them.

The device tree includes a reference to the Epson RX-8035
RTC which depends on this patch series:
"rtc: Implement support for EPSON RX-8035", reviewed but
not yet in the Linus tree.
https://lore.kernel.org/linux-rtc/20210709044518.28769-1-matt@traverse.com.au/T/#t

Mathew McBride (5):
  arm64: dts: ls1088a: add internal PCS for DPMAC1 node
  arm64: dts: ls1088a: add missing PMU node
  dt-bindings: vendor-prefixes: add Traverse Technologies
  dt-bindings: arm: fsl: Add Traverse Ten64 (LS1088A) board
  arm64: dts: add device tree for Traverse Ten64 (LS1088A)

 .../devicetree/bindings/arm/fsl.yaml          |   6 +
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 arch/arm64/boot/dts/freescale/Makefile        |   1 +
 .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 374 ++++++++++++++++++
 .../arm64/boot/dts/freescale/fsl-ls1088a.dtsi |  18 +
 5 files changed, 401 insertions(+)
 create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts

-- 
2.30.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 0/5] Add Traverse Technologies Ten64 board DTS
@ 2021-07-22  4:24 ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-22  4:24 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Traverse Technologies Ten64 board is a networking-oriented
Mini-ITX form factor appliance using the NXP LS1088A SoC.

This patch series adds a basic device tree (fsl-ls1088a-ten64.dts)
for the board. At the moment only hardware features supported
(or soon to be supported) by mainline kernels are described.

In the course of verifying the DTS on recent kernels, it
was found that some LS1088A features were not described
in fsl-ls1088a.dtsi. The first two patches add them.

The device tree includes a reference to the Epson RX-8035
RTC which depends on this patch series:
"rtc: Implement support for EPSON RX-8035", reviewed but
not yet in the Linus tree.
https://lore.kernel.org/linux-rtc/20210709044518.28769-1-matt@traverse.com.au/T/#t

Mathew McBride (5):
  arm64: dts: ls1088a: add internal PCS for DPMAC1 node
  arm64: dts: ls1088a: add missing PMU node
  dt-bindings: vendor-prefixes: add Traverse Technologies
  dt-bindings: arm: fsl: Add Traverse Ten64 (LS1088A) board
  arm64: dts: add device tree for Traverse Ten64 (LS1088A)

 .../devicetree/bindings/arm/fsl.yaml          |   6 +
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 arch/arm64/boot/dts/freescale/Makefile        |   1 +
 .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 374 ++++++++++++++++++
 .../arm64/boot/dts/freescale/fsl-ls1088a.dtsi |  18 +
 5 files changed, 401 insertions(+)
 create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts

-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

* [PATCH 1/5] arm64: dts: ls1088a: add internal PCS for DPMAC1 node
  2021-07-22  4:24 ` Mathew McBride
@ 2021-07-22  4:24   ` Mathew McBride
  -1 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-22  4:24 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

A previous patched added the PCS for DPMAC2 only, as
used for the AQR PHY on the LS1088ARDB.

DPMAC1 PCS access is required for PHYLINK SFP support
on the Traverse Ten64 board.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
index 2fa6cfbef01f..79ceadc9dc4a 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -765,6 +765,19 @@ emdio2: mdio@8b97000 {
 			status = "disabled";
 		};
 
+		pcs_mdio1: mdio@8c07000 {
+			compatible = "fsl,fman-memac-mdio";
+			reg = <0x0 0x8c07000 0x0 0x1000>;
+			little-endian;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			status = "disabled";
+
+			pcs1: ethernet-phy@0 {
+				reg = <0>;
+			};
+		};
+
 		pcs_mdio2: mdio@8c0b000 {
 			compatible = "fsl,fman-memac-mdio";
 			reg = <0x0 0x8c0b000 0x0 0x1000>;
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 50+ messages in thread

* [PATCH 1/5] arm64: dts: ls1088a: add internal PCS for DPMAC1 node
@ 2021-07-22  4:24   ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-22  4:24 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

A previous patched added the PCS for DPMAC2 only, as
used for the AQR PHY on the LS1088ARDB.

DPMAC1 PCS access is required for PHYLINK SFP support
on the Traverse Ten64 board.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
index 2fa6cfbef01f..79ceadc9dc4a 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -765,6 +765,19 @@ emdio2: mdio@8b97000 {
 			status = "disabled";
 		};
 
+		pcs_mdio1: mdio@8c07000 {
+			compatible = "fsl,fman-memac-mdio";
+			reg = <0x0 0x8c07000 0x0 0x1000>;
+			little-endian;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			status = "disabled";
+
+			pcs1: ethernet-phy@0 {
+				reg = <0>;
+			};
+		};
+
 		pcs_mdio2: mdio@8c0b000 {
 			compatible = "fsl,fman-memac-mdio";
 			reg = <0x0 0x8c0b000 0x0 0x1000>;
-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

* [PATCH 2/5] arm64: dts: ls1088a: add missing PMU node
  2021-07-22  4:24 ` Mathew McBride
@ 2021-07-22  4:24   ` Mathew McBride
  -1 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-22  4:24 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Performance Manager Unit was not described in the DTS
which meant performance event monitoring was not possible.

This was exposed by a change to the PMU handling in KVM
in 5.11-rc3 which now prevents a PMU being exposed to a
guest when the host does not provide one:
"KVM: arm64: Don't access PMCR_EL0 when no PMU is available"

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
index 79ceadc9dc4a..752c7f41e6b1 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -189,6 +189,11 @@ timer {
 			     <1 10 IRQ_TYPE_LEVEL_LOW>;/* Hypervisor PPI */
 	};
 
+	pmu {
+		compatible = "arm,armv8-pmuv3";
+		interrupts = <1 7 0x8>; /* PMU PPI, Level low type */
+	};
+
 	psci {
 		compatible = "arm,psci-0.2";
 		method = "smc";
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 50+ messages in thread

* [PATCH 2/5] arm64: dts: ls1088a: add missing PMU node
@ 2021-07-22  4:24   ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-22  4:24 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Performance Manager Unit was not described in the DTS
which meant performance event monitoring was not possible.

This was exposed by a change to the PMU handling in KVM
in 5.11-rc3 which now prevents a PMU being exposed to a
guest when the host does not provide one:
"KVM: arm64: Don't access PMCR_EL0 when no PMU is available"

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
index 79ceadc9dc4a..752c7f41e6b1 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -189,6 +189,11 @@ timer {
 			     <1 10 IRQ_TYPE_LEVEL_LOW>;/* Hypervisor PPI */
 	};
 
+	pmu {
+		compatible = "arm,armv8-pmuv3";
+		interrupts = <1 7 0x8>; /* PMU PPI, Level low type */
+	};
+
 	psci {
 		compatible = "arm,psci-0.2";
 		method = "smc";
-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

* [PATCH 3/5] dt-bindings: vendor-prefixes: add Traverse Technologies
  2021-07-22  4:24 ` Mathew McBride
@ 2021-07-22  4:24   ` Mathew McBride
  -1 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-22  4:24 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

Traverse Technologies is a designer and manufacturer
of networking appliances.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index 07fb0d25fc15..eba2029d3ba7 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -1184,6 +1184,8 @@ patternProperties:
     description: TPO
   "^tq,.*":
     description: TQ-Systems GmbH
+  "^traverse,.*":
+    description: Traverse Technologies Australia Pty Ltd
   "^tronfy,.*":
     description: Tronfy
   "^tronsmart,.*":
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 50+ messages in thread

* [PATCH 3/5] dt-bindings: vendor-prefixes: add Traverse Technologies
@ 2021-07-22  4:24   ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-22  4:24 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

Traverse Technologies is a designer and manufacturer
of networking appliances.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index 07fb0d25fc15..eba2029d3ba7 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -1184,6 +1184,8 @@ patternProperties:
     description: TPO
   "^tq,.*":
     description: TQ-Systems GmbH
+  "^traverse,.*":
+    description: Traverse Technologies Australia Pty Ltd
   "^tronfy,.*":
     description: Tronfy
   "^tronsmart,.*":
-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

* [PATCH 4/5] dt-bindings: arm: fsl: Add Traverse Ten64 (LS1088A) board
  2021-07-22  4:24 ` Mathew McBride
@ 2021-07-22  4:24   ` Mathew McBride
  -1 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-22  4:24 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

Document the compatible for the Ten64 board which will
be included as freescale/fsl-ls1088a-ten64.dtb in arm64.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 Documentation/devicetree/bindings/arm/fsl.yaml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
index 1c827c1954dc..f92919a020e3 100644
--- a/Documentation/devicetree/bindings/arm/fsl.yaml
+++ b/Documentation/devicetree/bindings/arm/fsl.yaml
@@ -973,6 +973,12 @@ properties:
               - fsl,s32v234-evb           # S32V234-EVB2 Customer Evaluation Board
           - const: fsl,s32v234
 
+      - description: Traverse LS1088A bassed Boards
+        items:
+          - enum:
+              - traverse,ten64            # Ten64 Networking Appliance / Board
+          - const: fsl,ls1088a
+
 additionalProperties: true
 
 ...
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 50+ messages in thread

* [PATCH 4/5] dt-bindings: arm: fsl: Add Traverse Ten64 (LS1088A) board
@ 2021-07-22  4:24   ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-22  4:24 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

Document the compatible for the Ten64 board which will
be included as freescale/fsl-ls1088a-ten64.dtb in arm64.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 Documentation/devicetree/bindings/arm/fsl.yaml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
index 1c827c1954dc..f92919a020e3 100644
--- a/Documentation/devicetree/bindings/arm/fsl.yaml
+++ b/Documentation/devicetree/bindings/arm/fsl.yaml
@@ -973,6 +973,12 @@ properties:
               - fsl,s32v234-evb           # S32V234-EVB2 Customer Evaluation Board
           - const: fsl,s32v234
 
+      - description: Traverse LS1088A bassed Boards
+        items:
+          - enum:
+              - traverse,ten64            # Ten64 Networking Appliance / Board
+          - const: fsl,ls1088a
+
 additionalProperties: true
 
 ...
-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

* [PATCH 5/5] arm64: dts: add device tree for Traverse Ten64 (LS1088A)
  2021-07-22  4:24 ` Mathew McBride
@ 2021-07-22  4:24   ` Mathew McBride
  -1 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-22  4:24 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Traverse Technologies Ten64 is a Mini-ITX form factor
networking board using the NXP LS1088A SoC.

This device tree only describes features which the mainline
kernel currently has support for, such as some I2C-connected
devices that are not described at present.

System documentation may be found at ten64doc.traverse.com.au

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 arch/arm64/boot/dts/freescale/Makefile        |   1 +
 .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 375 ++++++++++++++++++
 2 files changed, 376 insertions(+)
 create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts

diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 25806c4924cb..2b3ee42e4a2a 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -19,6 +19,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-rdb.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-rdb.dtb
+dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-ten64.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
new file mode 100644
index 000000000000..7f1584f378fe
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
@@ -0,0 +1,375 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree file for Travese Ten64 (LS1088) board
+ * Based on fsl-ls1088a-rdb.dts
+ * Copyright 2017-2020 NXP
+ * Copyright 2019-2021 Traverse Technologies
+ *
+ * Author: Mathew McBride <matt@traverse.com.au>
+ */
+
+/dts-v1/;
+
+#include "fsl-ls1088a.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	model = "Traverse Ten64";
+	compatible = "traverse,ten64", "fsl,ls1088a";
+
+	aliases {
+		serial0 = &duart0;
+		serial1 = &duart1;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	buttons {
+		compatible = "gpio-keys";
+		/* Fired by system controller when
+		 * external power off (e.g ATX Power Button)
+		 * asserted
+		 */
+		powerdn {
+			label = "External Power Down";
+			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
+			interrupts = <&gpio1 17 IRQ_TYPE_EDGE_FALLING>;
+			linux,code = <KEY_POWER>;
+		};
+
+		/* Rear Panel 'ADMIN' button (GPIO_H) */
+		admin {
+			label = "ADMIN button";
+			gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
+			interrupts = <&gpio3 8 IRQ_TYPE_EDGE_RISING>;
+			linux,code = <KEY_WPS_BUTTON>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		sfp1down {
+			label = "ten64:green:sfp1:down";
+			gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
+		};
+
+		sfp2up {
+			label = "ten64:green:sfp2:up";
+			gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>;
+		};
+
+		admin {
+			label = "ten64:admin";
+			gpios = <&sfpgpio 12 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	sfp_xg0: dpmac2_sfp {
+		compatible = "sff,sfp";
+		i2c-bus = <&sfplower_i2c>;
+		tx-fault-gpios = <&sfpgpio 0 GPIO_ACTIVE_HIGH>;
+		tx-disable-gpios = <&sfpgpio 1 GPIO_ACTIVE_HIGH>;
+		mod-def0-gpios = <&sfpgpio 2 GPIO_ACTIVE_LOW>;
+		los-gpios = <&sfpgpio 3 GPIO_ACTIVE_HIGH>;
+		maximum-power-milliwatt = <2000>;
+	};
+
+	sfp_xg1: dpmac1_sfp {
+		compatible = "sff,sfp";
+		i2c-bus = <&sfpupper_i2c>;
+		tx-fault-gpios = <&sfpgpio 4 GPIO_ACTIVE_HIGH>;
+		tx-disable-gpios = <&sfpgpio 5 GPIO_ACTIVE_HIGH>;
+		mod-def0-gpios = <&sfpgpio 6 GPIO_ACTIVE_LOW>;
+		los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>;
+		maximum-power-milliwatt = <2000>;
+	};
+
+};
+
+/* XG1 - Upper SFP */
+&dpmac1 {
+	sfp = <&sfp_xg1>;
+	pcs-handle = <&pcs1>;
+	phy-connection-type = "10gbase-r";
+	managed = "in-band-status";
+};
+
+/* XG0 - Lower SFP */
+&dpmac2 {
+	sfp = <&sfp_xg0>;
+	pcs-handle = <&pcs2>;
+	phy-connection-type = "10gbase-r";
+	managed = "in-band-status";
+};
+
+/* DPMAC3..6 is GE4 to GE8 */
+&dpmac3 {
+	phy-handle = <&mdio1_phy5>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_0>;
+};
+
+&dpmac4 {
+	phy-handle = <&mdio1_phy6>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_1>;
+};
+
+&dpmac5 {
+	phy-handle = <&mdio1_phy7>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_2>;
+};
+
+&dpmac6 {
+	phy-handle = <&mdio1_phy8>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_3>;
+};
+
+/* DPMAC7..10 is GE0 to GE3 */
+&dpmac7 {
+	phy-handle = <&mdio1_phy1>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_0>;
+};
+
+&dpmac8 {
+	phy-handle = <&mdio1_phy2>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_1>;
+};
+
+&dpmac9 {
+	phy-handle = <&mdio1_phy3>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_2>;
+};
+
+&dpmac10 {
+	phy-handle = <&mdio1_phy4>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_3>;
+};
+
+&emdio1 {
+	status = "okay";
+
+	mdio1_phy5: ethernet-phy@c {
+		reg = <0xc>;
+	};
+
+	mdio1_phy6: ethernet-phy@d {
+		reg = <0xd>;
+	};
+
+	mdio1_phy7: ethernet-phy@e {
+		reg = <0xe>;
+	};
+
+	mdio1_phy8: ethernet-phy@f {
+		reg = <0xf>;
+	};
+
+	mdio1_phy1: ethernet-phy@1c {
+		reg = <0x1c>;
+	};
+
+	mdio1_phy2: ethernet-phy@1d {
+		reg = <0x1d>;
+	};
+
+	mdio1_phy3: ethernet-phy@1e {
+		reg = <0x1e>;
+	};
+
+	mdio1_phy4: ethernet-phy@1f {
+		reg = <0x1f>;
+	};
+};
+
+&i2c0 {
+	status = "okay";
+
+	sfpgpio: gpio@76 {
+		reg = <0x76>;
+		compatible = "ti,tca9539";
+		#gpio-cells = <2>;
+		gpio-controller;
+
+		admin_led_lower {
+			gpio-hog;
+			gpios = <13 GPIO_ACTIVE_HIGH>;
+			output-low;
+		};
+	};
+
+	tpm: at97sc@29 {
+		reg = <0x29>;
+		compatible = "atmel,at97sc3204t";
+	};
+};
+
+&i2c2 {
+	status = "okay";
+
+	rtc: rx8035@32 {
+		reg = <0x32>;
+		compatible = "epson,rx8035";
+	};
+};
+
+&i2c3 {
+	status = "okay";
+
+	i2c-switch@70 {
+		compatible = "nxp,pca9540";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		reg = <0x70 >;
+
+		sfpupper_i2c: i2c@0 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0>;
+		};
+
+		sfplower_i2c: i2c@1 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <1>;
+		};
+	};
+};
+
+&duart0 {
+	status = "okay";
+};
+
+&duart1 {
+	status = "okay";
+};
+
+&esdhc {
+	status = "okay";
+};
+
+&pcs_mdio1 {
+	status = "okay";
+};
+
+&pcs_mdio2 {
+	status = "okay";
+};
+
+&pcs_mdio3 {
+	status = "okay";
+};
+
+&pcs_mdio7 {
+	status = "okay";
+};
+
+&qspi {
+	status = "okay";
+
+	en25s64: flash@0 {
+		compatible = "jedec,spi-nor";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		spi-max-frequency = <20000000>;
+		spi-rx-bus-width = <4>;
+		spi-tx-bus-width = <4>;
+		reg = <0>;
+
+		bl2@0 {
+			label = "bl2";
+			reg = <0 0x100000>;
+		};
+
+		bl3@100000 {
+			label = "bl3";
+			reg = <0x100000 0x200000>;
+		};
+
+		mcfirmware@300000 {
+			label = "mcfirmware";
+			reg = <0x300000 0x200000>;
+		};
+
+		ubootenv@500000 {
+			label = "ubootenv";
+			reg = <0x500000 0x80000>;
+		};
+		dpl@580000 {
+			label = "dpl";
+			reg = <0x580000 0x40000>;
+		};
+
+		dpc@5C0000 {
+			label = "dpc";
+			reg = <0x5C0000 0x40000>;
+		};
+
+		devicetree@600000 {
+			label = "devicetree";
+			reg = <0x600000 0x40000>;
+		};
+	};
+
+	nand: flash@1 {
+		compatible = "spi-nand";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		spi-max-frequency = <20000000>;
+		reg = <1>;
+		spi-rx-bus-width = <4>;
+		spi-tx-bus-width = <4>;
+
+		/* reserved for future boot direct from NAND flash
+		 * (this would use the same layout as the 8MiB NOR flash)
+		 */
+		partition@0 {
+			label = "nand-boot-reserved";
+			reg = <0 0x800000>;
+		};
+
+		/* recovery / install environment */
+		partition@800000 {
+			label = "recovery";
+			reg = <0x800000 0x2000000>;
+		};
+
+		/* ubia (first OpenWrt) - a/b names to prevent confusion with ubi0/1/etc. */
+		partition@2800000 {
+			label = "ubia";
+			reg = <0x2800000 0x6C00000>;
+		};
+		/* ubib (second OpenWrt) */
+		partition@9400000 {
+			label = "ubib";
+			reg = <0x9400000 0x6C00000>;
+		};
+	};
+};
+
+&usb0 {
+	status = "okay";
+};
+
+&usb1 {
+	status = "okay";
+};
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 50+ messages in thread

* [PATCH 5/5] arm64: dts: add device tree for Traverse Ten64 (LS1088A)
@ 2021-07-22  4:24   ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-22  4:24 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Traverse Technologies Ten64 is a Mini-ITX form factor
networking board using the NXP LS1088A SoC.

This device tree only describes features which the mainline
kernel currently has support for, such as some I2C-connected
devices that are not described at present.

System documentation may be found at ten64doc.traverse.com.au

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 arch/arm64/boot/dts/freescale/Makefile        |   1 +
 .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 375 ++++++++++++++++++
 2 files changed, 376 insertions(+)
 create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts

diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 25806c4924cb..2b3ee42e4a2a 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -19,6 +19,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-rdb.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-rdb.dtb
+dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-ten64.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
new file mode 100644
index 000000000000..7f1584f378fe
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
@@ -0,0 +1,375 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree file for Travese Ten64 (LS1088) board
+ * Based on fsl-ls1088a-rdb.dts
+ * Copyright 2017-2020 NXP
+ * Copyright 2019-2021 Traverse Technologies
+ *
+ * Author: Mathew McBride <matt@traverse.com.au>
+ */
+
+/dts-v1/;
+
+#include "fsl-ls1088a.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	model = "Traverse Ten64";
+	compatible = "traverse,ten64", "fsl,ls1088a";
+
+	aliases {
+		serial0 = &duart0;
+		serial1 = &duart1;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	buttons {
+		compatible = "gpio-keys";
+		/* Fired by system controller when
+		 * external power off (e.g ATX Power Button)
+		 * asserted
+		 */
+		powerdn {
+			label = "External Power Down";
+			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
+			interrupts = <&gpio1 17 IRQ_TYPE_EDGE_FALLING>;
+			linux,code = <KEY_POWER>;
+		};
+
+		/* Rear Panel 'ADMIN' button (GPIO_H) */
+		admin {
+			label = "ADMIN button";
+			gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
+			interrupts = <&gpio3 8 IRQ_TYPE_EDGE_RISING>;
+			linux,code = <KEY_WPS_BUTTON>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		sfp1down {
+			label = "ten64:green:sfp1:down";
+			gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
+		};
+
+		sfp2up {
+			label = "ten64:green:sfp2:up";
+			gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>;
+		};
+
+		admin {
+			label = "ten64:admin";
+			gpios = <&sfpgpio 12 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	sfp_xg0: dpmac2_sfp {
+		compatible = "sff,sfp";
+		i2c-bus = <&sfplower_i2c>;
+		tx-fault-gpios = <&sfpgpio 0 GPIO_ACTIVE_HIGH>;
+		tx-disable-gpios = <&sfpgpio 1 GPIO_ACTIVE_HIGH>;
+		mod-def0-gpios = <&sfpgpio 2 GPIO_ACTIVE_LOW>;
+		los-gpios = <&sfpgpio 3 GPIO_ACTIVE_HIGH>;
+		maximum-power-milliwatt = <2000>;
+	};
+
+	sfp_xg1: dpmac1_sfp {
+		compatible = "sff,sfp";
+		i2c-bus = <&sfpupper_i2c>;
+		tx-fault-gpios = <&sfpgpio 4 GPIO_ACTIVE_HIGH>;
+		tx-disable-gpios = <&sfpgpio 5 GPIO_ACTIVE_HIGH>;
+		mod-def0-gpios = <&sfpgpio 6 GPIO_ACTIVE_LOW>;
+		los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>;
+		maximum-power-milliwatt = <2000>;
+	};
+
+};
+
+/* XG1 - Upper SFP */
+&dpmac1 {
+	sfp = <&sfp_xg1>;
+	pcs-handle = <&pcs1>;
+	phy-connection-type = "10gbase-r";
+	managed = "in-band-status";
+};
+
+/* XG0 - Lower SFP */
+&dpmac2 {
+	sfp = <&sfp_xg0>;
+	pcs-handle = <&pcs2>;
+	phy-connection-type = "10gbase-r";
+	managed = "in-band-status";
+};
+
+/* DPMAC3..6 is GE4 to GE8 */
+&dpmac3 {
+	phy-handle = <&mdio1_phy5>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_0>;
+};
+
+&dpmac4 {
+	phy-handle = <&mdio1_phy6>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_1>;
+};
+
+&dpmac5 {
+	phy-handle = <&mdio1_phy7>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_2>;
+};
+
+&dpmac6 {
+	phy-handle = <&mdio1_phy8>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_3>;
+};
+
+/* DPMAC7..10 is GE0 to GE3 */
+&dpmac7 {
+	phy-handle = <&mdio1_phy1>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_0>;
+};
+
+&dpmac8 {
+	phy-handle = <&mdio1_phy2>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_1>;
+};
+
+&dpmac9 {
+	phy-handle = <&mdio1_phy3>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_2>;
+};
+
+&dpmac10 {
+	phy-handle = <&mdio1_phy4>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_3>;
+};
+
+&emdio1 {
+	status = "okay";
+
+	mdio1_phy5: ethernet-phy@c {
+		reg = <0xc>;
+	};
+
+	mdio1_phy6: ethernet-phy@d {
+		reg = <0xd>;
+	};
+
+	mdio1_phy7: ethernet-phy@e {
+		reg = <0xe>;
+	};
+
+	mdio1_phy8: ethernet-phy@f {
+		reg = <0xf>;
+	};
+
+	mdio1_phy1: ethernet-phy@1c {
+		reg = <0x1c>;
+	};
+
+	mdio1_phy2: ethernet-phy@1d {
+		reg = <0x1d>;
+	};
+
+	mdio1_phy3: ethernet-phy@1e {
+		reg = <0x1e>;
+	};
+
+	mdio1_phy4: ethernet-phy@1f {
+		reg = <0x1f>;
+	};
+};
+
+&i2c0 {
+	status = "okay";
+
+	sfpgpio: gpio@76 {
+		reg = <0x76>;
+		compatible = "ti,tca9539";
+		#gpio-cells = <2>;
+		gpio-controller;
+
+		admin_led_lower {
+			gpio-hog;
+			gpios = <13 GPIO_ACTIVE_HIGH>;
+			output-low;
+		};
+	};
+
+	tpm: at97sc@29 {
+		reg = <0x29>;
+		compatible = "atmel,at97sc3204t";
+	};
+};
+
+&i2c2 {
+	status = "okay";
+
+	rtc: rx8035@32 {
+		reg = <0x32>;
+		compatible = "epson,rx8035";
+	};
+};
+
+&i2c3 {
+	status = "okay";
+
+	i2c-switch@70 {
+		compatible = "nxp,pca9540";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		reg = <0x70 >;
+
+		sfpupper_i2c: i2c@0 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0>;
+		};
+
+		sfplower_i2c: i2c@1 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <1>;
+		};
+	};
+};
+
+&duart0 {
+	status = "okay";
+};
+
+&duart1 {
+	status = "okay";
+};
+
+&esdhc {
+	status = "okay";
+};
+
+&pcs_mdio1 {
+	status = "okay";
+};
+
+&pcs_mdio2 {
+	status = "okay";
+};
+
+&pcs_mdio3 {
+	status = "okay";
+};
+
+&pcs_mdio7 {
+	status = "okay";
+};
+
+&qspi {
+	status = "okay";
+
+	en25s64: flash@0 {
+		compatible = "jedec,spi-nor";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		spi-max-frequency = <20000000>;
+		spi-rx-bus-width = <4>;
+		spi-tx-bus-width = <4>;
+		reg = <0>;
+
+		bl2@0 {
+			label = "bl2";
+			reg = <0 0x100000>;
+		};
+
+		bl3@100000 {
+			label = "bl3";
+			reg = <0x100000 0x200000>;
+		};
+
+		mcfirmware@300000 {
+			label = "mcfirmware";
+			reg = <0x300000 0x200000>;
+		};
+
+		ubootenv@500000 {
+			label = "ubootenv";
+			reg = <0x500000 0x80000>;
+		};
+		dpl@580000 {
+			label = "dpl";
+			reg = <0x580000 0x40000>;
+		};
+
+		dpc@5C0000 {
+			label = "dpc";
+			reg = <0x5C0000 0x40000>;
+		};
+
+		devicetree@600000 {
+			label = "devicetree";
+			reg = <0x600000 0x40000>;
+		};
+	};
+
+	nand: flash@1 {
+		compatible = "spi-nand";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		spi-max-frequency = <20000000>;
+		reg = <1>;
+		spi-rx-bus-width = <4>;
+		spi-tx-bus-width = <4>;
+
+		/* reserved for future boot direct from NAND flash
+		 * (this would use the same layout as the 8MiB NOR flash)
+		 */
+		partition@0 {
+			label = "nand-boot-reserved";
+			reg = <0 0x800000>;
+		};
+
+		/* recovery / install environment */
+		partition@800000 {
+			label = "recovery";
+			reg = <0x800000 0x2000000>;
+		};
+
+		/* ubia (first OpenWrt) - a/b names to prevent confusion with ubi0/1/etc. */
+		partition@2800000 {
+			label = "ubia";
+			reg = <0x2800000 0x6C00000>;
+		};
+		/* ubib (second OpenWrt) */
+		partition@9400000 {
+			label = "ubib";
+			reg = <0x9400000 0x6C00000>;
+		};
+	};
+};
+
+&usb0 {
+	status = "okay";
+};
+
+&usb1 {
+	status = "okay";
+};
-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

* Re: [PATCH 1/5] arm64: dts: ls1088a: add internal PCS for DPMAC1 node
  2021-07-22  4:24   ` Mathew McBride
@ 2021-07-22  7:48     ` Ioana Ciornei
  -1 siblings, 0 replies; 50+ messages in thread
From: Ioana Ciornei @ 2021-07-22  7:48 UTC (permalink / raw)
  To: Mathew McBride
  Cc: Shawn Guo, Leo Li, Rob Herring, linux-arm-kernel, devicetree

On Thu, Jul 22, 2021 at 04:24:46AM +0000, Mathew McBride wrote:
> A previous patched added the PCS for DPMAC2 only, as
> used for the AQR PHY on the LS1088ARDB.
> 
> DPMAC1 PCS access is required for PHYLINK SFP support
> on the Traverse Ten64 board.
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>

Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>

> ---
>  arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
> index 2fa6cfbef01f..79ceadc9dc4a 100644
> --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
> @@ -765,6 +765,19 @@ emdio2: mdio@8b97000 {
>  			status = "disabled";
>  		};
>  
> +		pcs_mdio1: mdio@8c07000 {
> +			compatible = "fsl,fman-memac-mdio";
> +			reg = <0x0 0x8c07000 0x0 0x1000>;
> +			little-endian;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			status = "disabled";
> +
> +			pcs1: ethernet-phy@0 {
> +				reg = <0>;
> +			};
> +		};
> +
>  		pcs_mdio2: mdio@8c0b000 {
>  			compatible = "fsl,fman-memac-mdio";
>  			reg = <0x0 0x8c0b000 0x0 0x1000>;
> -- 
> 2.30.1
> 

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 1/5] arm64: dts: ls1088a: add internal PCS for DPMAC1 node
@ 2021-07-22  7:48     ` Ioana Ciornei
  0 siblings, 0 replies; 50+ messages in thread
From: Ioana Ciornei @ 2021-07-22  7:48 UTC (permalink / raw)
  To: Mathew McBride
  Cc: Shawn Guo, Leo Li, Rob Herring, linux-arm-kernel, devicetree

On Thu, Jul 22, 2021 at 04:24:46AM +0000, Mathew McBride wrote:
> A previous patched added the PCS for DPMAC2 only, as
> used for the AQR PHY on the LS1088ARDB.
> 
> DPMAC1 PCS access is required for PHYLINK SFP support
> on the Traverse Ten64 board.
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>

Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>

> ---
>  arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
> index 2fa6cfbef01f..79ceadc9dc4a 100644
> --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
> @@ -765,6 +765,19 @@ emdio2: mdio@8b97000 {
>  			status = "disabled";
>  		};
>  
> +		pcs_mdio1: mdio@8c07000 {
> +			compatible = "fsl,fman-memac-mdio";
> +			reg = <0x0 0x8c07000 0x0 0x1000>;
> +			little-endian;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			status = "disabled";
> +
> +			pcs1: ethernet-phy@0 {
> +				reg = <0>;
> +			};
> +		};
> +
>  		pcs_mdio2: mdio@8c0b000 {
>  			compatible = "fsl,fman-memac-mdio";
>  			reg = <0x0 0x8c0b000 0x0 0x1000>;
> -- 
> 2.30.1
> 
_______________________________________________
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] 50+ messages in thread

* Re: [PATCH 5/5] arm64: dts: add device tree for Traverse Ten64 (LS1088A)
  2021-07-22  4:24   ` Mathew McBride
@ 2021-07-22  8:44     ` Ioana Ciornei
  -1 siblings, 0 replies; 50+ messages in thread
From: Ioana Ciornei @ 2021-07-22  8:44 UTC (permalink / raw)
  To: Mathew McBride
  Cc: Shawn Guo, Leo Li, Rob Herring, linux-arm-kernel, devicetree

On Thu, Jul 22, 2021 at 04:24:50AM +0000, Mathew McBride wrote:
> The Traverse Technologies Ten64 is a Mini-ITX form factor
> networking board using the NXP LS1088A SoC.
> 
> This device tree only describes features which the mainline
> kernel currently has support for, such as some I2C-connected
> devices that are not described at present.
> 
> System documentation may be found at ten64doc.traverse.com.au
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>

Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com> # for the MAC/PHY

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 5/5] arm64: dts: add device tree for Traverse Ten64 (LS1088A)
@ 2021-07-22  8:44     ` Ioana Ciornei
  0 siblings, 0 replies; 50+ messages in thread
From: Ioana Ciornei @ 2021-07-22  8:44 UTC (permalink / raw)
  To: Mathew McBride
  Cc: Shawn Guo, Leo Li, Rob Herring, linux-arm-kernel, devicetree

On Thu, Jul 22, 2021 at 04:24:50AM +0000, Mathew McBride wrote:
> The Traverse Technologies Ten64 is a Mini-ITX form factor
> networking board using the NXP LS1088A SoC.
> 
> This device tree only describes features which the mainline
> kernel currently has support for, such as some I2C-connected
> devices that are not described at present.
> 
> System documentation may be found at ten64doc.traverse.com.au
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>

Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com> # for the MAC/PHY

_______________________________________________
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] 50+ messages in thread

* Re: [PATCH 2/5] arm64: dts: ls1088a: add missing PMU node
  2021-07-22  4:24   ` Mathew McBride
@ 2021-07-23  8:36     ` Shawn Guo
  -1 siblings, 0 replies; 50+ messages in thread
From: Shawn Guo @ 2021-07-23  8:36 UTC (permalink / raw)
  To: Mathew McBride
  Cc: Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel, devicetree

On Thu, Jul 22, 2021 at 04:24:47AM +0000, Mathew McBride wrote:
> The Performance Manager Unit was not described in the DTS
> which meant performance event monitoring was not possible.
> 
> This was exposed by a change to the PMU handling in KVM
> in 5.11-rc3 which now prevents a PMU being exposed to a
> guest when the host does not provide one:
> "KVM: arm64: Don't access PMCR_EL0 when no PMU is available"
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>
> ---
>  arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
> index 79ceadc9dc4a..752c7f41e6b1 100644
> --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
> @@ -189,6 +189,11 @@ timer {
>  			     <1 10 IRQ_TYPE_LEVEL_LOW>;/* Hypervisor PPI */
>  	};
>  
> +	pmu {
> +		compatible = "arm,armv8-pmuv3";
> +		interrupts = <1 7 0x8>; /* PMU PPI, Level low type */

Use define GIC_PPI and IRQ_TYPE_LEVEL_LOW, so that you can drop the
comment.

Shawn

> +	};
> +
>  	psci {
>  		compatible = "arm,psci-0.2";
>  		method = "smc";
> -- 
> 2.30.1
> 

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 2/5] arm64: dts: ls1088a: add missing PMU node
@ 2021-07-23  8:36     ` Shawn Guo
  0 siblings, 0 replies; 50+ messages in thread
From: Shawn Guo @ 2021-07-23  8:36 UTC (permalink / raw)
  To: Mathew McBride
  Cc: Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel, devicetree

On Thu, Jul 22, 2021 at 04:24:47AM +0000, Mathew McBride wrote:
> The Performance Manager Unit was not described in the DTS
> which meant performance event monitoring was not possible.
> 
> This was exposed by a change to the PMU handling in KVM
> in 5.11-rc3 which now prevents a PMU being exposed to a
> guest when the host does not provide one:
> "KVM: arm64: Don't access PMCR_EL0 when no PMU is available"
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>
> ---
>  arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
> index 79ceadc9dc4a..752c7f41e6b1 100644
> --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
> @@ -189,6 +189,11 @@ timer {
>  			     <1 10 IRQ_TYPE_LEVEL_LOW>;/* Hypervisor PPI */
>  	};
>  
> +	pmu {
> +		compatible = "arm,armv8-pmuv3";
> +		interrupts = <1 7 0x8>; /* PMU PPI, Level low type */

Use define GIC_PPI and IRQ_TYPE_LEVEL_LOW, so that you can drop the
comment.

Shawn

> +	};
> +
>  	psci {
>  		compatible = "arm,psci-0.2";
>  		method = "smc";
> -- 
> 2.30.1
> 

_______________________________________________
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] 50+ messages in thread

* Re: [PATCH 5/5] arm64: dts: add device tree for Traverse Ten64 (LS1088A)
  2021-07-22  4:24   ` Mathew McBride
@ 2021-07-23  9:46     ` Shawn Guo
  -1 siblings, 0 replies; 50+ messages in thread
From: Shawn Guo @ 2021-07-23  9:46 UTC (permalink / raw)
  To: Mathew McBride
  Cc: Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel, devicetree

On Thu, Jul 22, 2021 at 04:24:50AM +0000, Mathew McBride wrote:
> The Traverse Technologies Ten64 is a Mini-ITX form factor
> networking board using the NXP LS1088A SoC.
> 
> This device tree only describes features which the mainline
> kernel currently has support for, such as some I2C-connected
> devices that are not described at present.
> 
> System documentation may be found at ten64doc.traverse.com.au
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>
> ---
>  arch/arm64/boot/dts/freescale/Makefile        |   1 +
>  .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 375 ++++++++++++++++++
>  2 files changed, 376 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
> 
> diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> index 25806c4924cb..2b3ee42e4a2a 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -19,6 +19,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-qds.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-rdb.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-qds.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-rdb.dtb
> +dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-ten64.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-qds.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
> new file mode 100644
> index 000000000000..7f1584f378fe
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
> @@ -0,0 +1,375 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Device Tree file for Travese Ten64 (LS1088) board
> + * Based on fsl-ls1088a-rdb.dts
> + * Copyright 2017-2020 NXP
> + * Copyright 2019-2021 Traverse Technologies
> + *
> + * Author: Mathew McBride <matt@traverse.com.au>
> + */
> +
> +/dts-v1/;
> +
> +#include "fsl-ls1088a.dtsi"
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +
> +/ {
> +	model = "Traverse Ten64";
> +	compatible = "traverse,ten64", "fsl,ls1088a";
> +
> +	aliases {
> +		serial0 = &duart0;
> +		serial1 = &duart1;
> +	};
> +
> +	chosen {
> +		stdout-path = "serial0:115200n8";
> +	};
> +
> +	buttons {
> +		compatible = "gpio-keys";

Have a newline between property list and child node.

> +		/* Fired by system controller when
> +		 * external power off (e.g ATX Power Button)
> +		 * asserted
> +		 */
> +		powerdn {
> +			label = "External Power Down";
> +			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
> +			interrupts = <&gpio1 17 IRQ_TYPE_EDGE_FALLING>;
> +			linux,code = <KEY_POWER>;
> +		};
> +
> +		/* Rear Panel 'ADMIN' button (GPIO_H) */
> +		admin {
> +			label = "ADMIN button";
> +			gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
> +			interrupts = <&gpio3 8 IRQ_TYPE_EDGE_RISING>;
> +			linux,code = <KEY_WPS_BUTTON>;
> +		};
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		sfp1down {
> +			label = "ten64:green:sfp1:down";
> +			gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
> +		};
> +
> +		sfp2up {
> +			label = "ten64:green:sfp2:up";
> +			gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>;
> +		};
> +
> +		admin {
> +			label = "ten64:admin";
> +			gpios = <&sfpgpio 12 GPIO_ACTIVE_HIGH>;
> +		};
> +	};
> +
> +	sfp_xg0: dpmac2_sfp {

We generally use '-' instead of '_' in node name.  sfp-dpmac2 might be
better.

> +		compatible = "sff,sfp";
> +		i2c-bus = <&sfplower_i2c>;
> +		tx-fault-gpios = <&sfpgpio 0 GPIO_ACTIVE_HIGH>;
> +		tx-disable-gpios = <&sfpgpio 1 GPIO_ACTIVE_HIGH>;
> +		mod-def0-gpios = <&sfpgpio 2 GPIO_ACTIVE_LOW>;
> +		los-gpios = <&sfpgpio 3 GPIO_ACTIVE_HIGH>;
> +		maximum-power-milliwatt = <2000>;
> +	};
> +
> +	sfp_xg1: dpmac1_sfp {
> +		compatible = "sff,sfp";
> +		i2c-bus = <&sfpupper_i2c>;
> +		tx-fault-gpios = <&sfpgpio 4 GPIO_ACTIVE_HIGH>;
> +		tx-disable-gpios = <&sfpgpio 5 GPIO_ACTIVE_HIGH>;
> +		mod-def0-gpios = <&sfpgpio 6 GPIO_ACTIVE_LOW>;
> +		los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>;
> +		maximum-power-milliwatt = <2000>;
> +	};
> +
> +};
> +
> +/* XG1 - Upper SFP */
> +&dpmac1 {
> +	sfp = <&sfp_xg1>;
> +	pcs-handle = <&pcs1>;
> +	phy-connection-type = "10gbase-r";
> +	managed = "in-band-status";
> +};
> +
> +/* XG0 - Lower SFP */
> +&dpmac2 {
> +	sfp = <&sfp_xg0>;
> +	pcs-handle = <&pcs2>;
> +	phy-connection-type = "10gbase-r";
> +	managed = "in-band-status";
> +};
> +
> +/* DPMAC3..6 is GE4 to GE8 */
> +&dpmac3 {
> +	phy-handle = <&mdio1_phy5>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs3_0>;
> +};
> +
> +&dpmac4 {
> +	phy-handle = <&mdio1_phy6>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs3_1>;
> +};
> +
> +&dpmac5 {
> +	phy-handle = <&mdio1_phy7>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs3_2>;
> +};
> +
> +&dpmac6 {
> +	phy-handle = <&mdio1_phy8>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs3_3>;
> +};
> +
> +/* DPMAC7..10 is GE0 to GE3 */
> +&dpmac7 {
> +	phy-handle = <&mdio1_phy1>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs7_0>;
> +};
> +
> +&dpmac8 {
> +	phy-handle = <&mdio1_phy2>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs7_1>;
> +};
> +
> +&dpmac9 {
> +	phy-handle = <&mdio1_phy3>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs7_2>;
> +};
> +
> +&dpmac10 {
> +	phy-handle = <&mdio1_phy4>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs7_3>;
> +};
> +
> +&emdio1 {
> +	status = "okay";
> +
> +	mdio1_phy5: ethernet-phy@c {
> +		reg = <0xc>;
> +	};
> +
> +	mdio1_phy6: ethernet-phy@d {
> +		reg = <0xd>;
> +	};
> +
> +	mdio1_phy7: ethernet-phy@e {
> +		reg = <0xe>;
> +	};
> +
> +	mdio1_phy8: ethernet-phy@f {
> +		reg = <0xf>;
> +	};
> +
> +	mdio1_phy1: ethernet-phy@1c {
> +		reg = <0x1c>;
> +	};
> +
> +	mdio1_phy2: ethernet-phy@1d {
> +		reg = <0x1d>;
> +	};
> +
> +	mdio1_phy3: ethernet-phy@1e {
> +		reg = <0x1e>;
> +	};
> +
> +	mdio1_phy4: ethernet-phy@1f {
> +		reg = <0x1f>;
> +	};
> +};
> +
> +&i2c0 {
> +	status = "okay";
> +
> +	sfpgpio: gpio@76 {
> +		reg = <0x76>;
> +		compatible = "ti,tca9539";

We generally start property list with compatible.

> +		#gpio-cells = <2>;
> +		gpio-controller;
> +
> +		admin_led_lower {
> +			gpio-hog;
> +			gpios = <13 GPIO_ACTIVE_HIGH>;
> +			output-low;
> +		};
> +	};
> +
> +	tpm: at97sc@29 {
> +		reg = <0x29>;
> +		compatible = "atmel,at97sc3204t";

Ditto

> +	};
> +};
> +
> +&i2c2 {
> +	status = "okay";
> +
> +	rtc: rx8035@32 {

Node name should be generic while label can be specific, so
'rx8035: rtc@32' should make more sense.

> +		reg = <0x32>;
> +		compatible = "epson,rx8035";
> +	};
> +};
> +
> +&i2c3 {
> +	status = "okay";
> +
> +	i2c-switch@70 {
> +		compatible = "nxp,pca9540";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		reg = <0x70 >;
> +
> +		sfpupper_i2c: i2c@0 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			reg = <0>;
> +		};
> +
> +		sfplower_i2c: i2c@1 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			reg = <1>;
> +		};
> +	};
> +};
> +
> +&duart0 {

Please try to sort these labeling nodes alphabetically.

> +	status = "okay";
> +};
> +
> +&duart1 {
> +	status = "okay";
> +};
> +
> +&esdhc {
> +	status = "okay";
> +};
> +
> +&pcs_mdio1 {
> +	status = "okay";
> +};
> +
> +&pcs_mdio2 {
> +	status = "okay";
> +};
> +
> +&pcs_mdio3 {
> +	status = "okay";
> +};
> +
> +&pcs_mdio7 {
> +	status = "okay";
> +};
> +
> +&qspi {
> +	status = "okay";
> +
> +	en25s64: flash@0 {
> +		compatible = "jedec,spi-nor";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		spi-max-frequency = <20000000>;
> +		spi-rx-bus-width = <4>;
> +		spi-tx-bus-width = <4>;
> +		reg = <0>;
> +
> +		bl2@0 {

Shouldn't the name be 'partition' just like nand flash below.

> +			label = "bl2";
> +			reg = <0 0x100000>;
> +		};
> +
> +		bl3@100000 {
> +			label = "bl3";
> +			reg = <0x100000 0x200000>;
> +		};
> +
> +		mcfirmware@300000 {
> +			label = "mcfirmware";
> +			reg = <0x300000 0x200000>;
> +		};
> +
> +		ubootenv@500000 {
> +			label = "ubootenv";
> +			reg = <0x500000 0x80000>;
> +		};

Missing newline.

> +		dpl@580000 {
> +			label = "dpl";
> +			reg = <0x580000 0x40000>;
> +		};
> +
> +		dpc@5C0000 {
> +			label = "dpc";
> +			reg = <0x5C0000 0x40000>;
> +		};
> +
> +		devicetree@600000 {
> +			label = "devicetree";
> +			reg = <0x600000 0x40000>;
> +		};
> +	};
> +
> +	nand: flash@1 {
> +		compatible = "spi-nand";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		spi-max-frequency = <20000000>;
> +		reg = <1>;
> +		spi-rx-bus-width = <4>;
> +		spi-tx-bus-width = <4>;
> +
> +		/* reserved for future boot direct from NAND flash
> +		 * (this would use the same layout as the 8MiB NOR flash)
> +		 */
> +		partition@0 {
> +			label = "nand-boot-reserved";
> +			reg = <0 0x800000>;
> +		};
> +
> +		/* recovery / install environment */
> +		partition@800000 {
> +			label = "recovery";
> +			reg = <0x800000 0x2000000>;
> +		};
> +
> +		/* ubia (first OpenWrt) - a/b names to prevent confusion with ubi0/1/etc. */
> +		partition@2800000 {
> +			label = "ubia";
> +			reg = <0x2800000 0x6C00000>;
> +		};

Have a newline.

Shawn

> +		/* ubib (second OpenWrt) */
> +		partition@9400000 {
> +			label = "ubib";
> +			reg = <0x9400000 0x6C00000>;
> +		};
> +	};
> +};
> +
> +&usb0 {
> +	status = "okay";
> +};
> +
> +&usb1 {
> +	status = "okay";
> +};
> -- 
> 2.30.1
> 

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 5/5] arm64: dts: add device tree for Traverse Ten64 (LS1088A)
@ 2021-07-23  9:46     ` Shawn Guo
  0 siblings, 0 replies; 50+ messages in thread
From: Shawn Guo @ 2021-07-23  9:46 UTC (permalink / raw)
  To: Mathew McBride
  Cc: Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel, devicetree

On Thu, Jul 22, 2021 at 04:24:50AM +0000, Mathew McBride wrote:
> The Traverse Technologies Ten64 is a Mini-ITX form factor
> networking board using the NXP LS1088A SoC.
> 
> This device tree only describes features which the mainline
> kernel currently has support for, such as some I2C-connected
> devices that are not described at present.
> 
> System documentation may be found at ten64doc.traverse.com.au
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>
> ---
>  arch/arm64/boot/dts/freescale/Makefile        |   1 +
>  .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 375 ++++++++++++++++++
>  2 files changed, 376 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
> 
> diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> index 25806c4924cb..2b3ee42e4a2a 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -19,6 +19,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-qds.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-rdb.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-qds.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-rdb.dtb
> +dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-ten64.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-qds.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
> new file mode 100644
> index 000000000000..7f1584f378fe
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
> @@ -0,0 +1,375 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Device Tree file for Travese Ten64 (LS1088) board
> + * Based on fsl-ls1088a-rdb.dts
> + * Copyright 2017-2020 NXP
> + * Copyright 2019-2021 Traverse Technologies
> + *
> + * Author: Mathew McBride <matt@traverse.com.au>
> + */
> +
> +/dts-v1/;
> +
> +#include "fsl-ls1088a.dtsi"
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +
> +/ {
> +	model = "Traverse Ten64";
> +	compatible = "traverse,ten64", "fsl,ls1088a";
> +
> +	aliases {
> +		serial0 = &duart0;
> +		serial1 = &duart1;
> +	};
> +
> +	chosen {
> +		stdout-path = "serial0:115200n8";
> +	};
> +
> +	buttons {
> +		compatible = "gpio-keys";

Have a newline between property list and child node.

> +		/* Fired by system controller when
> +		 * external power off (e.g ATX Power Button)
> +		 * asserted
> +		 */
> +		powerdn {
> +			label = "External Power Down";
> +			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
> +			interrupts = <&gpio1 17 IRQ_TYPE_EDGE_FALLING>;
> +			linux,code = <KEY_POWER>;
> +		};
> +
> +		/* Rear Panel 'ADMIN' button (GPIO_H) */
> +		admin {
> +			label = "ADMIN button";
> +			gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
> +			interrupts = <&gpio3 8 IRQ_TYPE_EDGE_RISING>;
> +			linux,code = <KEY_WPS_BUTTON>;
> +		};
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		sfp1down {
> +			label = "ten64:green:sfp1:down";
> +			gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
> +		};
> +
> +		sfp2up {
> +			label = "ten64:green:sfp2:up";
> +			gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>;
> +		};
> +
> +		admin {
> +			label = "ten64:admin";
> +			gpios = <&sfpgpio 12 GPIO_ACTIVE_HIGH>;
> +		};
> +	};
> +
> +	sfp_xg0: dpmac2_sfp {

We generally use '-' instead of '_' in node name.  sfp-dpmac2 might be
better.

> +		compatible = "sff,sfp";
> +		i2c-bus = <&sfplower_i2c>;
> +		tx-fault-gpios = <&sfpgpio 0 GPIO_ACTIVE_HIGH>;
> +		tx-disable-gpios = <&sfpgpio 1 GPIO_ACTIVE_HIGH>;
> +		mod-def0-gpios = <&sfpgpio 2 GPIO_ACTIVE_LOW>;
> +		los-gpios = <&sfpgpio 3 GPIO_ACTIVE_HIGH>;
> +		maximum-power-milliwatt = <2000>;
> +	};
> +
> +	sfp_xg1: dpmac1_sfp {
> +		compatible = "sff,sfp";
> +		i2c-bus = <&sfpupper_i2c>;
> +		tx-fault-gpios = <&sfpgpio 4 GPIO_ACTIVE_HIGH>;
> +		tx-disable-gpios = <&sfpgpio 5 GPIO_ACTIVE_HIGH>;
> +		mod-def0-gpios = <&sfpgpio 6 GPIO_ACTIVE_LOW>;
> +		los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>;
> +		maximum-power-milliwatt = <2000>;
> +	};
> +
> +};
> +
> +/* XG1 - Upper SFP */
> +&dpmac1 {
> +	sfp = <&sfp_xg1>;
> +	pcs-handle = <&pcs1>;
> +	phy-connection-type = "10gbase-r";
> +	managed = "in-band-status";
> +};
> +
> +/* XG0 - Lower SFP */
> +&dpmac2 {
> +	sfp = <&sfp_xg0>;
> +	pcs-handle = <&pcs2>;
> +	phy-connection-type = "10gbase-r";
> +	managed = "in-band-status";
> +};
> +
> +/* DPMAC3..6 is GE4 to GE8 */
> +&dpmac3 {
> +	phy-handle = <&mdio1_phy5>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs3_0>;
> +};
> +
> +&dpmac4 {
> +	phy-handle = <&mdio1_phy6>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs3_1>;
> +};
> +
> +&dpmac5 {
> +	phy-handle = <&mdio1_phy7>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs3_2>;
> +};
> +
> +&dpmac6 {
> +	phy-handle = <&mdio1_phy8>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs3_3>;
> +};
> +
> +/* DPMAC7..10 is GE0 to GE3 */
> +&dpmac7 {
> +	phy-handle = <&mdio1_phy1>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs7_0>;
> +};
> +
> +&dpmac8 {
> +	phy-handle = <&mdio1_phy2>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs7_1>;
> +};
> +
> +&dpmac9 {
> +	phy-handle = <&mdio1_phy3>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs7_2>;
> +};
> +
> +&dpmac10 {
> +	phy-handle = <&mdio1_phy4>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs7_3>;
> +};
> +
> +&emdio1 {
> +	status = "okay";
> +
> +	mdio1_phy5: ethernet-phy@c {
> +		reg = <0xc>;
> +	};
> +
> +	mdio1_phy6: ethernet-phy@d {
> +		reg = <0xd>;
> +	};
> +
> +	mdio1_phy7: ethernet-phy@e {
> +		reg = <0xe>;
> +	};
> +
> +	mdio1_phy8: ethernet-phy@f {
> +		reg = <0xf>;
> +	};
> +
> +	mdio1_phy1: ethernet-phy@1c {
> +		reg = <0x1c>;
> +	};
> +
> +	mdio1_phy2: ethernet-phy@1d {
> +		reg = <0x1d>;
> +	};
> +
> +	mdio1_phy3: ethernet-phy@1e {
> +		reg = <0x1e>;
> +	};
> +
> +	mdio1_phy4: ethernet-phy@1f {
> +		reg = <0x1f>;
> +	};
> +};
> +
> +&i2c0 {
> +	status = "okay";
> +
> +	sfpgpio: gpio@76 {
> +		reg = <0x76>;
> +		compatible = "ti,tca9539";

We generally start property list with compatible.

> +		#gpio-cells = <2>;
> +		gpio-controller;
> +
> +		admin_led_lower {
> +			gpio-hog;
> +			gpios = <13 GPIO_ACTIVE_HIGH>;
> +			output-low;
> +		};
> +	};
> +
> +	tpm: at97sc@29 {
> +		reg = <0x29>;
> +		compatible = "atmel,at97sc3204t";

Ditto

> +	};
> +};
> +
> +&i2c2 {
> +	status = "okay";
> +
> +	rtc: rx8035@32 {

Node name should be generic while label can be specific, so
'rx8035: rtc@32' should make more sense.

> +		reg = <0x32>;
> +		compatible = "epson,rx8035";
> +	};
> +};
> +
> +&i2c3 {
> +	status = "okay";
> +
> +	i2c-switch@70 {
> +		compatible = "nxp,pca9540";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		reg = <0x70 >;
> +
> +		sfpupper_i2c: i2c@0 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			reg = <0>;
> +		};
> +
> +		sfplower_i2c: i2c@1 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			reg = <1>;
> +		};
> +	};
> +};
> +
> +&duart0 {

Please try to sort these labeling nodes alphabetically.

> +	status = "okay";
> +};
> +
> +&duart1 {
> +	status = "okay";
> +};
> +
> +&esdhc {
> +	status = "okay";
> +};
> +
> +&pcs_mdio1 {
> +	status = "okay";
> +};
> +
> +&pcs_mdio2 {
> +	status = "okay";
> +};
> +
> +&pcs_mdio3 {
> +	status = "okay";
> +};
> +
> +&pcs_mdio7 {
> +	status = "okay";
> +};
> +
> +&qspi {
> +	status = "okay";
> +
> +	en25s64: flash@0 {
> +		compatible = "jedec,spi-nor";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		spi-max-frequency = <20000000>;
> +		spi-rx-bus-width = <4>;
> +		spi-tx-bus-width = <4>;
> +		reg = <0>;
> +
> +		bl2@0 {

Shouldn't the name be 'partition' just like nand flash below.

> +			label = "bl2";
> +			reg = <0 0x100000>;
> +		};
> +
> +		bl3@100000 {
> +			label = "bl3";
> +			reg = <0x100000 0x200000>;
> +		};
> +
> +		mcfirmware@300000 {
> +			label = "mcfirmware";
> +			reg = <0x300000 0x200000>;
> +		};
> +
> +		ubootenv@500000 {
> +			label = "ubootenv";
> +			reg = <0x500000 0x80000>;
> +		};

Missing newline.

> +		dpl@580000 {
> +			label = "dpl";
> +			reg = <0x580000 0x40000>;
> +		};
> +
> +		dpc@5C0000 {
> +			label = "dpc";
> +			reg = <0x5C0000 0x40000>;
> +		};
> +
> +		devicetree@600000 {
> +			label = "devicetree";
> +			reg = <0x600000 0x40000>;
> +		};
> +	};
> +
> +	nand: flash@1 {
> +		compatible = "spi-nand";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		spi-max-frequency = <20000000>;
> +		reg = <1>;
> +		spi-rx-bus-width = <4>;
> +		spi-tx-bus-width = <4>;
> +
> +		/* reserved for future boot direct from NAND flash
> +		 * (this would use the same layout as the 8MiB NOR flash)
> +		 */
> +		partition@0 {
> +			label = "nand-boot-reserved";
> +			reg = <0 0x800000>;
> +		};
> +
> +		/* recovery / install environment */
> +		partition@800000 {
> +			label = "recovery";
> +			reg = <0x800000 0x2000000>;
> +		};
> +
> +		/* ubia (first OpenWrt) - a/b names to prevent confusion with ubi0/1/etc. */
> +		partition@2800000 {
> +			label = "ubia";
> +			reg = <0x2800000 0x6C00000>;
> +		};

Have a newline.

Shawn

> +		/* ubib (second OpenWrt) */
> +		partition@9400000 {
> +			label = "ubib";
> +			reg = <0x9400000 0x6C00000>;
> +		};
> +	};
> +};
> +
> +&usb0 {
> +	status = "okay";
> +};
> +
> +&usb1 {
> +	status = "okay";
> +};
> -- 
> 2.30.1
> 

_______________________________________________
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] 50+ messages in thread

* [PATCH v2 0/5] Add Traverse Technologies Ten64 board DTS
  2021-07-22  4:24 ` Mathew McBride
@ 2021-07-26  7:12   ` Mathew McBride
  -1 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-26  7:12 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Traverse Technologies Ten64 board is a networking-oriented
Mini-ITX form factor appliance using the NXP LS1088A SoC.

This patch series adds a basic device tree (fsl-ls1088a-ten64.dts)
for the board. At the moment only hardware features supported
(or soon to be supported) by mainline kernels are described.

In the course of verifying the DTS on recent kernels, it
was found that some LS1088A features were not described
in fsl-ls1088a.dtsi. The first two patches add them.

The device tree includes a reference to the Epson RX-8035
RTC which depends on this patch series:
"rtc: Implement support for EPSON RX-8035", reviewed but
not yet in the Linus tree.
https://lore.kernel.org/linux-rtc/20210709044518.28769-1-matt@traverse.com.au/T/#t

Changes since v1:
 - Pick up Reviewed-By tags for PCS and MAC/PHY related parts
 - Use constants for describing interrupts for the PMU
 - Use the Cortex-A53 specific PMU compatible instead of the armv8-pmu3 generic
 - Fix formatting issues for the board DTS (ordering, newlines, node names)

Mathew McBride (5):
  arm64: dts: ls1088a: add internal PCS for DPMAC1 node
  arm64: dts: ls1088a: add missing PMU node
  dt-bindings: vendor-prefixes: add Traverse Technologies
  dt-bindings: arm: fsl: Add Traverse Ten64 (LS1088A) board
  arm64: dts: add device tree for Traverse Ten64 (LS1088A)

 .../devicetree/bindings/arm/fsl.yaml          |   6 +
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 arch/arm64/boot/dts/freescale/Makefile        |   1 +
 .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 375 ++++++++++++++++++
 .../arm64/boot/dts/freescale/fsl-ls1088a.dtsi |  18 +
 5 files changed, 402 insertions(+)
 create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts

-- 
2.30.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v2 0/5] Add Traverse Technologies Ten64 board DTS
@ 2021-07-26  7:12   ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-26  7:12 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Traverse Technologies Ten64 board is a networking-oriented
Mini-ITX form factor appliance using the NXP LS1088A SoC.

This patch series adds a basic device tree (fsl-ls1088a-ten64.dts)
for the board. At the moment only hardware features supported
(or soon to be supported) by mainline kernels are described.

In the course of verifying the DTS on recent kernels, it
was found that some LS1088A features were not described
in fsl-ls1088a.dtsi. The first two patches add them.

The device tree includes a reference to the Epson RX-8035
RTC which depends on this patch series:
"rtc: Implement support for EPSON RX-8035", reviewed but
not yet in the Linus tree.
https://lore.kernel.org/linux-rtc/20210709044518.28769-1-matt@traverse.com.au/T/#t

Changes since v1:
 - Pick up Reviewed-By tags for PCS and MAC/PHY related parts
 - Use constants for describing interrupts for the PMU
 - Use the Cortex-A53 specific PMU compatible instead of the armv8-pmu3 generic
 - Fix formatting issues for the board DTS (ordering, newlines, node names)

Mathew McBride (5):
  arm64: dts: ls1088a: add internal PCS for DPMAC1 node
  arm64: dts: ls1088a: add missing PMU node
  dt-bindings: vendor-prefixes: add Traverse Technologies
  dt-bindings: arm: fsl: Add Traverse Ten64 (LS1088A) board
  arm64: dts: add device tree for Traverse Ten64 (LS1088A)

 .../devicetree/bindings/arm/fsl.yaml          |   6 +
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 arch/arm64/boot/dts/freescale/Makefile        |   1 +
 .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 375 ++++++++++++++++++
 .../arm64/boot/dts/freescale/fsl-ls1088a.dtsi |  18 +
 5 files changed, 402 insertions(+)
 create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts

-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

* [PATCH v2 1/5] arm64: dts: ls1088a: add internal PCS for DPMAC1 node
  2021-07-26  7:12   ` Mathew McBride
@ 2021-07-26  7:12     ` Mathew McBride
  -1 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-26  7:12 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

A previous patch added the PCS for DPMAC2 only, as
used for the AQR PHY on the LS1088ARDB.

DPMAC1 PCS access is required for PHYLINK SFP support
on the Traverse Ten64 board.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
index 2fa6cfbef01f..79ceadc9dc4a 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -765,6 +765,19 @@ emdio2: mdio@8b97000 {
 			status = "disabled";
 		};
 
+		pcs_mdio1: mdio@8c07000 {
+			compatible = "fsl,fman-memac-mdio";
+			reg = <0x0 0x8c07000 0x0 0x1000>;
+			little-endian;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			status = "disabled";
+
+			pcs1: ethernet-phy@0 {
+				reg = <0>;
+			};
+		};
+
 		pcs_mdio2: mdio@8c0b000 {
 			compatible = "fsl,fman-memac-mdio";
 			reg = <0x0 0x8c0b000 0x0 0x1000>;
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 50+ messages in thread

* [PATCH v2 1/5] arm64: dts: ls1088a: add internal PCS for DPMAC1 node
@ 2021-07-26  7:12     ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-26  7:12 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

A previous patch added the PCS for DPMAC2 only, as
used for the AQR PHY on the LS1088ARDB.

DPMAC1 PCS access is required for PHYLINK SFP support
on the Traverse Ten64 board.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
index 2fa6cfbef01f..79ceadc9dc4a 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -765,6 +765,19 @@ emdio2: mdio@8b97000 {
 			status = "disabled";
 		};
 
+		pcs_mdio1: mdio@8c07000 {
+			compatible = "fsl,fman-memac-mdio";
+			reg = <0x0 0x8c07000 0x0 0x1000>;
+			little-endian;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			status = "disabled";
+
+			pcs1: ethernet-phy@0 {
+				reg = <0>;
+			};
+		};
+
 		pcs_mdio2: mdio@8c0b000 {
 			compatible = "fsl,fman-memac-mdio";
 			reg = <0x0 0x8c0b000 0x0 0x1000>;
-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

* [PATCH v2 2/5] arm64: dts: ls1088a: add missing PMU node
  2021-07-26  7:12   ` Mathew McBride
@ 2021-07-26  7:12     ` Mathew McBride
  -1 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-26  7:12 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Performance Manager Unit was not described in the DTS
which meant performance event monitoring was not possible.

This was exposed by a change to the PMU handling in KVM
in 5.11-rc3 which now prevents a PMU being exposed to a
guest when the host does not provide one:
"KVM: arm64: Don't access PMCR_EL0 when no PMU is available"

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
index 79ceadc9dc4a..f85e437f80b7 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -189,6 +189,11 @@ timer {
 			     <1 10 IRQ_TYPE_LEVEL_LOW>;/* Hypervisor PPI */
 	};
 
+	pmu {
+		compatible = "arm,cortex-a53-pmu";
+		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
+	};
+
 	psci {
 		compatible = "arm,psci-0.2";
 		method = "smc";
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 50+ messages in thread

* [PATCH v2 2/5] arm64: dts: ls1088a: add missing PMU node
@ 2021-07-26  7:12     ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-26  7:12 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Performance Manager Unit was not described in the DTS
which meant performance event monitoring was not possible.

This was exposed by a change to the PMU handling in KVM
in 5.11-rc3 which now prevents a PMU being exposed to a
guest when the host does not provide one:
"KVM: arm64: Don't access PMCR_EL0 when no PMU is available"

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
index 79ceadc9dc4a..f85e437f80b7 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -189,6 +189,11 @@ timer {
 			     <1 10 IRQ_TYPE_LEVEL_LOW>;/* Hypervisor PPI */
 	};
 
+	pmu {
+		compatible = "arm,cortex-a53-pmu";
+		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
+	};
+
 	psci {
 		compatible = "arm,psci-0.2";
 		method = "smc";
-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

* [PATCH v2 3/5] dt-bindings: vendor-prefixes: add Traverse Technologies
  2021-07-26  7:12   ` Mathew McBride
@ 2021-07-26  7:12     ` Mathew McBride
  -1 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-26  7:12 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

Traverse Technologies is a designer and manufacturer
of networking appliances.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index 07fb0d25fc15..eba2029d3ba7 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -1184,6 +1184,8 @@ patternProperties:
     description: TPO
   "^tq,.*":
     description: TQ-Systems GmbH
+  "^traverse,.*":
+    description: Traverse Technologies Australia Pty Ltd
   "^tronfy,.*":
     description: Tronfy
   "^tronsmart,.*":
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 50+ messages in thread

* [PATCH v2 3/5] dt-bindings: vendor-prefixes: add Traverse Technologies
@ 2021-07-26  7:12     ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-26  7:12 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

Traverse Technologies is a designer and manufacturer
of networking appliances.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index 07fb0d25fc15..eba2029d3ba7 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -1184,6 +1184,8 @@ patternProperties:
     description: TPO
   "^tq,.*":
     description: TQ-Systems GmbH
+  "^traverse,.*":
+    description: Traverse Technologies Australia Pty Ltd
   "^tronfy,.*":
     description: Tronfy
   "^tronsmart,.*":
-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

* [PATCH v2 4/5] dt-bindings: arm: fsl: Add Traverse Ten64 (LS1088A) board
  2021-07-26  7:12   ` Mathew McBride
@ 2021-07-26  7:12     ` Mathew McBride
  -1 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-26  7:12 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

Document the compatible for the Ten64 board which will
be included as freescale/fsl-ls1088a-ten64.dtb in arm64.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 Documentation/devicetree/bindings/arm/fsl.yaml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
index 1c827c1954dc..f92919a020e3 100644
--- a/Documentation/devicetree/bindings/arm/fsl.yaml
+++ b/Documentation/devicetree/bindings/arm/fsl.yaml
@@ -973,6 +973,12 @@ properties:
               - fsl,s32v234-evb           # S32V234-EVB2 Customer Evaluation Board
           - const: fsl,s32v234
 
+      - description: Traverse LS1088A bassed Boards
+        items:
+          - enum:
+              - traverse,ten64            # Ten64 Networking Appliance / Board
+          - const: fsl,ls1088a
+
 additionalProperties: true
 
 ...
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 50+ messages in thread

* [PATCH v2 4/5] dt-bindings: arm: fsl: Add Traverse Ten64 (LS1088A) board
@ 2021-07-26  7:12     ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-26  7:12 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

Document the compatible for the Ten64 board which will
be included as freescale/fsl-ls1088a-ten64.dtb in arm64.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 Documentation/devicetree/bindings/arm/fsl.yaml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
index 1c827c1954dc..f92919a020e3 100644
--- a/Documentation/devicetree/bindings/arm/fsl.yaml
+++ b/Documentation/devicetree/bindings/arm/fsl.yaml
@@ -973,6 +973,12 @@ properties:
               - fsl,s32v234-evb           # S32V234-EVB2 Customer Evaluation Board
           - const: fsl,s32v234
 
+      - description: Traverse LS1088A bassed Boards
+        items:
+          - enum:
+              - traverse,ten64            # Ten64 Networking Appliance / Board
+          - const: fsl,ls1088a
+
 additionalProperties: true
 
 ...
-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

* [PATCH v2 5/5] arm64: dts: add device tree for Traverse Ten64 (LS1088A)
  2021-07-26  7:12   ` Mathew McBride
@ 2021-07-26  7:12     ` Mathew McBride
  -1 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-26  7:12 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Traverse Technologies Ten64 is a Mini-ITX form factor
networking board using the NXP LS1088A SoC.

This device tree only describes features which the mainline
kernel currently has support for, such as some I2C-connected
devices that are not described at present.

System documentation may be found at ten64doc.traverse.com.au

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com> # for the MAC/PHY
---
 arch/arm64/boot/dts/freescale/Makefile        |   1 +
 .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 377 ++++++++++++++++++
 2 files changed, 378 insertions(+)
 create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts

diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 25806c4924cb..2b3ee42e4a2a 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -19,6 +19,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-rdb.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-rdb.dtb
+dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-ten64.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
new file mode 100644
index 000000000000..59fa344a8854
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
@@ -0,0 +1,377 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree file for Travese Ten64 (LS1088) board
+ * Based on fsl-ls1088a-rdb.dts
+ * Copyright 2017-2020 NXP
+ * Copyright 2019-2021 Traverse Technologies
+ *
+ * Author: Mathew McBride <matt@traverse.com.au>
+ */
+
+/dts-v1/;
+
+#include "fsl-ls1088a.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	model = "Traverse Ten64";
+	compatible = "traverse,ten64", "fsl,ls1088a";
+
+	aliases {
+		serial0 = &duart0;
+		serial1 = &duart1;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	buttons {
+		compatible = "gpio-keys";
+
+		/* Fired by system controller when
+		 * external power off (e.g ATX Power Button)
+		 * asserted
+		 */
+		powerdn {
+			label = "External Power Down";
+			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
+			interrupts = <&gpio1 17 IRQ_TYPE_EDGE_FALLING>;
+			linux,code = <KEY_POWER>;
+		};
+
+		/* Rear Panel 'ADMIN' button (GPIO_H) */
+		admin {
+			label = "ADMIN button";
+			gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
+			interrupts = <&gpio3 8 IRQ_TYPE_EDGE_RISING>;
+			linux,code = <KEY_WPS_BUTTON>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		sfp1down {
+			label = "ten64:green:sfp1:down";
+			gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
+		};
+
+		sfp2up {
+			label = "ten64:green:sfp2:up";
+			gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>;
+		};
+
+		admin {
+			label = "ten64:admin";
+			gpios = <&sfpgpio 12 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	sfp_xg0: dpmac2-sfp {
+		compatible = "sff,sfp";
+		i2c-bus = <&sfplower_i2c>;
+		tx-fault-gpios = <&sfpgpio 0 GPIO_ACTIVE_HIGH>;
+		tx-disable-gpios = <&sfpgpio 1 GPIO_ACTIVE_HIGH>;
+		mod-def0-gpios = <&sfpgpio 2 GPIO_ACTIVE_LOW>;
+		los-gpios = <&sfpgpio 3 GPIO_ACTIVE_HIGH>;
+		maximum-power-milliwatt = <2000>;
+	};
+
+	sfp_xg1: dpmac1-sfp {
+		compatible = "sff,sfp";
+		i2c-bus = <&sfpupper_i2c>;
+		tx-fault-gpios = <&sfpgpio 4 GPIO_ACTIVE_HIGH>;
+		tx-disable-gpios = <&sfpgpio 5 GPIO_ACTIVE_HIGH>;
+		mod-def0-gpios = <&sfpgpio 6 GPIO_ACTIVE_LOW>;
+		los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>;
+		maximum-power-milliwatt = <2000>;
+	};
+};
+
+/* XG1 - Upper SFP */
+&dpmac1 {
+	sfp = <&sfp_xg1>;
+	pcs-handle = <&pcs1>;
+	phy-connection-type = "10gbase-r";
+	managed = "in-band-status";
+};
+
+/* XG0 - Lower SFP */
+&dpmac2 {
+	sfp = <&sfp_xg0>;
+	pcs-handle = <&pcs2>;
+	phy-connection-type = "10gbase-r";
+	managed = "in-band-status";
+};
+
+/* DPMAC3..6 is GE4 to GE8 */
+&dpmac3 {
+	phy-handle = <&mdio1_phy5>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_0>;
+};
+
+&dpmac4 {
+	phy-handle = <&mdio1_phy6>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_1>;
+};
+
+&dpmac5 {
+	phy-handle = <&mdio1_phy7>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_2>;
+};
+
+&dpmac6 {
+	phy-handle = <&mdio1_phy8>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_3>;
+};
+
+/* DPMAC7..10 is GE0 to GE3 */
+&dpmac7 {
+	phy-handle = <&mdio1_phy1>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_0>;
+};
+
+&dpmac8 {
+	phy-handle = <&mdio1_phy2>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_1>;
+};
+
+&dpmac9 {
+	phy-handle = <&mdio1_phy3>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_2>;
+};
+
+&dpmac10 {
+	phy-handle = <&mdio1_phy4>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_3>;
+};
+
+&duart0 {
+	status = "okay";
+};
+
+&duart1 {
+	status = "okay";
+};
+
+&emdio1 {
+	status = "okay";
+
+	mdio1_phy5: ethernet-phy@c {
+		reg = <0xc>;
+	};
+
+	mdio1_phy6: ethernet-phy@d {
+		reg = <0xd>;
+	};
+
+	mdio1_phy7: ethernet-phy@e {
+		reg = <0xe>;
+	};
+
+	mdio1_phy8: ethernet-phy@f {
+		reg = <0xf>;
+	};
+
+	mdio1_phy1: ethernet-phy@1c {
+		reg = <0x1c>;
+	};
+
+	mdio1_phy2: ethernet-phy@1d {
+		reg = <0x1d>;
+	};
+
+	mdio1_phy3: ethernet-phy@1e {
+		reg = <0x1e>;
+	};
+
+	mdio1_phy4: ethernet-phy@1f {
+		reg = <0x1f>;
+	};
+};
+
+&esdhc {
+	status = "okay";
+};
+
+&i2c0 {
+	status = "okay";
+
+	sfpgpio: gpio@76 {
+		compatible = "ti,tca9539";
+		reg = <0x76>;
+		#gpio-cells = <2>;
+		gpio-controller;
+
+		admin_led_lower {
+			gpio-hog;
+			gpios = <13 GPIO_ACTIVE_HIGH>;
+			output-low;
+		};
+	};
+
+	at97sc: tpm@29 {
+		compatible = "atmel,at97sc3204t";
+		reg = <0x29>;
+	};
+};
+
+&i2c2 {
+	status = "okay";
+
+	rx8035: rtc@32 {
+		compatible = "epson,rx8035";
+		reg = <0x32>;
+	};
+};
+
+&i2c3 {
+	status = "okay";
+
+	i2c-switch@70 {
+		compatible = "nxp,pca9540";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		reg = <0x70>;
+
+		sfpupper_i2c: i2c@0 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0>;
+		};
+
+		sfplower_i2c: i2c@1 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <1>;
+		};
+	};
+};
+
+&pcs_mdio1 {
+	status = "okay";
+};
+
+&pcs_mdio2 {
+	status = "okay";
+};
+
+&pcs_mdio3 {
+	status = "okay";
+};
+
+&pcs_mdio7 {
+	status = "okay";
+};
+
+&qspi {
+	status = "okay";
+
+	en25s64: flash@0 {
+		compatible = "jedec,spi-nor";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		reg = <0>;
+		spi-max-frequency = <20000000>;
+		spi-rx-bus-width = <4>;
+		spi-tx-bus-width = <4>;
+
+		partition@0 {
+			label = "bl2";
+			reg = <0 0x100000>;
+		};
+
+		partition@100000 {
+			label = "bl3";
+			reg = <0x100000 0x200000>;
+		};
+
+		partition@300000 {
+			label = "mcfirmware";
+			reg = <0x300000 0x200000>;
+		};
+
+		partition@500000 {
+			label = "ubootenv";
+			reg = <0x500000 0x80000>;
+		};
+
+		partition@580000 {
+			label = "dpl";
+			reg = <0x580000 0x40000>;
+		};
+
+		partition@5C0000 {
+			label = "dpc";
+			reg = <0x5C0000 0x40000>;
+		};
+
+		partition@600000 {
+			label = "devicetree";
+			reg = <0x600000 0x40000>;
+		};
+	};
+
+	nand: flash@1 {
+		compatible = "spi-nand";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		reg = <1>;
+		spi-max-frequency = <20000000>;
+		spi-rx-bus-width = <4>;
+		spi-tx-bus-width = <4>;
+
+		/* reserved for future boot direct from NAND flash
+		 * (this would use the same layout as the 8MiB NOR flash)
+		 */
+		partition@0 {
+			label = "nand-boot-reserved";
+			reg = <0 0x800000>;
+		};
+
+		/* recovery / install environment */
+		partition@800000 {
+			label = "recovery";
+			reg = <0x800000 0x2000000>;
+		};
+
+		/* ubia (first OpenWrt) - a/b names to prevent confusion with ubi0/1/etc. */
+		partition@2800000 {
+			label = "ubia";
+			reg = <0x2800000 0x6C00000>;
+		};
+
+		/* ubib (second OpenWrt) */
+		partition@9400000 {
+			label = "ubib";
+			reg = <0x9400000 0x6C00000>;
+		};
+	};
+};
+
+&usb0 {
+	status = "okay";
+};
+
+&usb1 {
+	status = "okay";
+};
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 50+ messages in thread

* [PATCH v2 5/5] arm64: dts: add device tree for Traverse Ten64 (LS1088A)
@ 2021-07-26  7:12     ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-07-26  7:12 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Traverse Technologies Ten64 is a Mini-ITX form factor
networking board using the NXP LS1088A SoC.

This device tree only describes features which the mainline
kernel currently has support for, such as some I2C-connected
devices that are not described at present.

System documentation may be found at ten64doc.traverse.com.au

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com> # for the MAC/PHY
---
 arch/arm64/boot/dts/freescale/Makefile        |   1 +
 .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 377 ++++++++++++++++++
 2 files changed, 378 insertions(+)
 create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts

diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 25806c4924cb..2b3ee42e4a2a 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -19,6 +19,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-rdb.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-rdb.dtb
+dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-ten64.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
new file mode 100644
index 000000000000..59fa344a8854
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
@@ -0,0 +1,377 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree file for Travese Ten64 (LS1088) board
+ * Based on fsl-ls1088a-rdb.dts
+ * Copyright 2017-2020 NXP
+ * Copyright 2019-2021 Traverse Technologies
+ *
+ * Author: Mathew McBride <matt@traverse.com.au>
+ */
+
+/dts-v1/;
+
+#include "fsl-ls1088a.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	model = "Traverse Ten64";
+	compatible = "traverse,ten64", "fsl,ls1088a";
+
+	aliases {
+		serial0 = &duart0;
+		serial1 = &duart1;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	buttons {
+		compatible = "gpio-keys";
+
+		/* Fired by system controller when
+		 * external power off (e.g ATX Power Button)
+		 * asserted
+		 */
+		powerdn {
+			label = "External Power Down";
+			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
+			interrupts = <&gpio1 17 IRQ_TYPE_EDGE_FALLING>;
+			linux,code = <KEY_POWER>;
+		};
+
+		/* Rear Panel 'ADMIN' button (GPIO_H) */
+		admin {
+			label = "ADMIN button";
+			gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
+			interrupts = <&gpio3 8 IRQ_TYPE_EDGE_RISING>;
+			linux,code = <KEY_WPS_BUTTON>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		sfp1down {
+			label = "ten64:green:sfp1:down";
+			gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
+		};
+
+		sfp2up {
+			label = "ten64:green:sfp2:up";
+			gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>;
+		};
+
+		admin {
+			label = "ten64:admin";
+			gpios = <&sfpgpio 12 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	sfp_xg0: dpmac2-sfp {
+		compatible = "sff,sfp";
+		i2c-bus = <&sfplower_i2c>;
+		tx-fault-gpios = <&sfpgpio 0 GPIO_ACTIVE_HIGH>;
+		tx-disable-gpios = <&sfpgpio 1 GPIO_ACTIVE_HIGH>;
+		mod-def0-gpios = <&sfpgpio 2 GPIO_ACTIVE_LOW>;
+		los-gpios = <&sfpgpio 3 GPIO_ACTIVE_HIGH>;
+		maximum-power-milliwatt = <2000>;
+	};
+
+	sfp_xg1: dpmac1-sfp {
+		compatible = "sff,sfp";
+		i2c-bus = <&sfpupper_i2c>;
+		tx-fault-gpios = <&sfpgpio 4 GPIO_ACTIVE_HIGH>;
+		tx-disable-gpios = <&sfpgpio 5 GPIO_ACTIVE_HIGH>;
+		mod-def0-gpios = <&sfpgpio 6 GPIO_ACTIVE_LOW>;
+		los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>;
+		maximum-power-milliwatt = <2000>;
+	};
+};
+
+/* XG1 - Upper SFP */
+&dpmac1 {
+	sfp = <&sfp_xg1>;
+	pcs-handle = <&pcs1>;
+	phy-connection-type = "10gbase-r";
+	managed = "in-band-status";
+};
+
+/* XG0 - Lower SFP */
+&dpmac2 {
+	sfp = <&sfp_xg0>;
+	pcs-handle = <&pcs2>;
+	phy-connection-type = "10gbase-r";
+	managed = "in-band-status";
+};
+
+/* DPMAC3..6 is GE4 to GE8 */
+&dpmac3 {
+	phy-handle = <&mdio1_phy5>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_0>;
+};
+
+&dpmac4 {
+	phy-handle = <&mdio1_phy6>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_1>;
+};
+
+&dpmac5 {
+	phy-handle = <&mdio1_phy7>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_2>;
+};
+
+&dpmac6 {
+	phy-handle = <&mdio1_phy8>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_3>;
+};
+
+/* DPMAC7..10 is GE0 to GE3 */
+&dpmac7 {
+	phy-handle = <&mdio1_phy1>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_0>;
+};
+
+&dpmac8 {
+	phy-handle = <&mdio1_phy2>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_1>;
+};
+
+&dpmac9 {
+	phy-handle = <&mdio1_phy3>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_2>;
+};
+
+&dpmac10 {
+	phy-handle = <&mdio1_phy4>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_3>;
+};
+
+&duart0 {
+	status = "okay";
+};
+
+&duart1 {
+	status = "okay";
+};
+
+&emdio1 {
+	status = "okay";
+
+	mdio1_phy5: ethernet-phy@c {
+		reg = <0xc>;
+	};
+
+	mdio1_phy6: ethernet-phy@d {
+		reg = <0xd>;
+	};
+
+	mdio1_phy7: ethernet-phy@e {
+		reg = <0xe>;
+	};
+
+	mdio1_phy8: ethernet-phy@f {
+		reg = <0xf>;
+	};
+
+	mdio1_phy1: ethernet-phy@1c {
+		reg = <0x1c>;
+	};
+
+	mdio1_phy2: ethernet-phy@1d {
+		reg = <0x1d>;
+	};
+
+	mdio1_phy3: ethernet-phy@1e {
+		reg = <0x1e>;
+	};
+
+	mdio1_phy4: ethernet-phy@1f {
+		reg = <0x1f>;
+	};
+};
+
+&esdhc {
+	status = "okay";
+};
+
+&i2c0 {
+	status = "okay";
+
+	sfpgpio: gpio@76 {
+		compatible = "ti,tca9539";
+		reg = <0x76>;
+		#gpio-cells = <2>;
+		gpio-controller;
+
+		admin_led_lower {
+			gpio-hog;
+			gpios = <13 GPIO_ACTIVE_HIGH>;
+			output-low;
+		};
+	};
+
+	at97sc: tpm@29 {
+		compatible = "atmel,at97sc3204t";
+		reg = <0x29>;
+	};
+};
+
+&i2c2 {
+	status = "okay";
+
+	rx8035: rtc@32 {
+		compatible = "epson,rx8035";
+		reg = <0x32>;
+	};
+};
+
+&i2c3 {
+	status = "okay";
+
+	i2c-switch@70 {
+		compatible = "nxp,pca9540";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		reg = <0x70>;
+
+		sfpupper_i2c: i2c@0 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0>;
+		};
+
+		sfplower_i2c: i2c@1 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <1>;
+		};
+	};
+};
+
+&pcs_mdio1 {
+	status = "okay";
+};
+
+&pcs_mdio2 {
+	status = "okay";
+};
+
+&pcs_mdio3 {
+	status = "okay";
+};
+
+&pcs_mdio7 {
+	status = "okay";
+};
+
+&qspi {
+	status = "okay";
+
+	en25s64: flash@0 {
+		compatible = "jedec,spi-nor";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		reg = <0>;
+		spi-max-frequency = <20000000>;
+		spi-rx-bus-width = <4>;
+		spi-tx-bus-width = <4>;
+
+		partition@0 {
+			label = "bl2";
+			reg = <0 0x100000>;
+		};
+
+		partition@100000 {
+			label = "bl3";
+			reg = <0x100000 0x200000>;
+		};
+
+		partition@300000 {
+			label = "mcfirmware";
+			reg = <0x300000 0x200000>;
+		};
+
+		partition@500000 {
+			label = "ubootenv";
+			reg = <0x500000 0x80000>;
+		};
+
+		partition@580000 {
+			label = "dpl";
+			reg = <0x580000 0x40000>;
+		};
+
+		partition@5C0000 {
+			label = "dpc";
+			reg = <0x5C0000 0x40000>;
+		};
+
+		partition@600000 {
+			label = "devicetree";
+			reg = <0x600000 0x40000>;
+		};
+	};
+
+	nand: flash@1 {
+		compatible = "spi-nand";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		reg = <1>;
+		spi-max-frequency = <20000000>;
+		spi-rx-bus-width = <4>;
+		spi-tx-bus-width = <4>;
+
+		/* reserved for future boot direct from NAND flash
+		 * (this would use the same layout as the 8MiB NOR flash)
+		 */
+		partition@0 {
+			label = "nand-boot-reserved";
+			reg = <0 0x800000>;
+		};
+
+		/* recovery / install environment */
+		partition@800000 {
+			label = "recovery";
+			reg = <0x800000 0x2000000>;
+		};
+
+		/* ubia (first OpenWrt) - a/b names to prevent confusion with ubi0/1/etc. */
+		partition@2800000 {
+			label = "ubia";
+			reg = <0x2800000 0x6C00000>;
+		};
+
+		/* ubib (second OpenWrt) */
+		partition@9400000 {
+			label = "ubib";
+			reg = <0x9400000 0x6C00000>;
+		};
+	};
+};
+
+&usb0 {
+	status = "okay";
+};
+
+&usb1 {
+	status = "okay";
+};
-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

* Re: [PATCH v2 3/5] dt-bindings: vendor-prefixes: add Traverse Technologies
  2021-07-26  7:12     ` Mathew McBride
@ 2021-07-29 22:41       ` Rob Herring
  -1 siblings, 0 replies; 50+ messages in thread
From: Rob Herring @ 2021-07-29 22:41 UTC (permalink / raw)
  To: Mathew McBride
  Cc: Shawn Guo, Li Yang, Rob Herring, devicetree, Ioana Ciornei,
	linux-arm-kernel

On Mon, 26 Jul 2021 07:12:14 +0000, Mathew McBride wrote:
> Traverse Technologies is a designer and manufacturer
> of networking appliances.
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>
> ---
>  Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
>  1 file changed, 2 insertions(+)
> 

Acked-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH v2 3/5] dt-bindings: vendor-prefixes: add Traverse Technologies
@ 2021-07-29 22:41       ` Rob Herring
  0 siblings, 0 replies; 50+ messages in thread
From: Rob Herring @ 2021-07-29 22:41 UTC (permalink / raw)
  To: Mathew McBride
  Cc: Shawn Guo, Li Yang, Rob Herring, devicetree, Ioana Ciornei,
	linux-arm-kernel

On Mon, 26 Jul 2021 07:12:14 +0000, Mathew McBride wrote:
> Traverse Technologies is a designer and manufacturer
> of networking appliances.
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>
> ---
>  Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
>  1 file changed, 2 insertions(+)
> 

Acked-by: Rob Herring <robh@kernel.org>

_______________________________________________
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] 50+ messages in thread

* Re: [PATCH v2 5/5] arm64: dts: add device tree for Traverse Ten64 (LS1088A)
  2021-07-26  7:12     ` Mathew McBride
@ 2021-07-29 22:45       ` Rob Herring
  -1 siblings, 0 replies; 50+ messages in thread
From: Rob Herring @ 2021-07-29 22:45 UTC (permalink / raw)
  To: Mathew McBride
  Cc: Shawn Guo, Li Yang, Ioana Ciornei, linux-arm-kernel, devicetree

On Mon, Jul 26, 2021 at 07:12:16AM +0000, Mathew McBride wrote:
> The Traverse Technologies Ten64 is a Mini-ITX form factor
> networking board using the NXP LS1088A SoC.
> 
> This device tree only describes features which the mainline
> kernel currently has support for, such as some I2C-connected
> devices that are not described at present.
> 
> System documentation may be found at ten64doc.traverse.com.au
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>
> Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com> # for the MAC/PHY
> ---
>  arch/arm64/boot/dts/freescale/Makefile        |   1 +
>  .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 377 ++++++++++++++++++
>  2 files changed, 378 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
> 
> diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> index 25806c4924cb..2b3ee42e4a2a 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -19,6 +19,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-qds.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-rdb.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-qds.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-rdb.dtb
> +dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-ten64.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-qds.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
> new file mode 100644
> index 000000000000..59fa344a8854
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
> @@ -0,0 +1,377 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Device Tree file for Travese Ten64 (LS1088) board
> + * Based on fsl-ls1088a-rdb.dts
> + * Copyright 2017-2020 NXP
> + * Copyright 2019-2021 Traverse Technologies
> + *
> + * Author: Mathew McBride <matt@traverse.com.au>
> + */
> +
> +/dts-v1/;
> +
> +#include "fsl-ls1088a.dtsi"
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +
> +/ {
> +	model = "Traverse Ten64";
> +	compatible = "traverse,ten64", "fsl,ls1088a";
> +
> +	aliases {
> +		serial0 = &duart0;
> +		serial1 = &duart1;
> +	};
> +
> +	chosen {
> +		stdout-path = "serial0:115200n8";
> +	};
> +
> +	buttons {
> +		compatible = "gpio-keys";
> +
> +		/* Fired by system controller when
> +		 * external power off (e.g ATX Power Button)
> +		 * asserted
> +		 */
> +		powerdn {
> +			label = "External Power Down";
> +			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
> +			interrupts = <&gpio1 17 IRQ_TYPE_EDGE_FALLING>;
> +			linux,code = <KEY_POWER>;
> +		};
> +
> +		/* Rear Panel 'ADMIN' button (GPIO_H) */
> +		admin {
> +			label = "ADMIN button";
> +			gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
> +			interrupts = <&gpio3 8 IRQ_TYPE_EDGE_RISING>;
> +			linux,code = <KEY_WPS_BUTTON>;
> +		};
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		sfp1down {
> +			label = "ten64:green:sfp1:down";
> +			gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
> +		};
> +
> +		sfp2up {
> +			label = "ten64:green:sfp2:up";
> +			gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>;
> +		};
> +
> +		admin {
> +			label = "ten64:admin";
> +			gpios = <&sfpgpio 12 GPIO_ACTIVE_HIGH>;
> +		};
> +	};
> +
> +	sfp_xg0: dpmac2-sfp {
> +		compatible = "sff,sfp";
> +		i2c-bus = <&sfplower_i2c>;
> +		tx-fault-gpios = <&sfpgpio 0 GPIO_ACTIVE_HIGH>;
> +		tx-disable-gpios = <&sfpgpio 1 GPIO_ACTIVE_HIGH>;
> +		mod-def0-gpios = <&sfpgpio 2 GPIO_ACTIVE_LOW>;
> +		los-gpios = <&sfpgpio 3 GPIO_ACTIVE_HIGH>;
> +		maximum-power-milliwatt = <2000>;
> +	};
> +
> +	sfp_xg1: dpmac1-sfp {
> +		compatible = "sff,sfp";
> +		i2c-bus = <&sfpupper_i2c>;
> +		tx-fault-gpios = <&sfpgpio 4 GPIO_ACTIVE_HIGH>;
> +		tx-disable-gpios = <&sfpgpio 5 GPIO_ACTIVE_HIGH>;
> +		mod-def0-gpios = <&sfpgpio 6 GPIO_ACTIVE_LOW>;
> +		los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>;
> +		maximum-power-milliwatt = <2000>;
> +	};
> +};
> +
> +/* XG1 - Upper SFP */
> +&dpmac1 {
> +	sfp = <&sfp_xg1>;
> +	pcs-handle = <&pcs1>;
> +	phy-connection-type = "10gbase-r";
> +	managed = "in-band-status";
> +};
> +
> +/* XG0 - Lower SFP */
> +&dpmac2 {
> +	sfp = <&sfp_xg0>;
> +	pcs-handle = <&pcs2>;
> +	phy-connection-type = "10gbase-r";
> +	managed = "in-band-status";
> +};
> +
> +/* DPMAC3..6 is GE4 to GE8 */
> +&dpmac3 {
> +	phy-handle = <&mdio1_phy5>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs3_0>;
> +};
> +
> +&dpmac4 {
> +	phy-handle = <&mdio1_phy6>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs3_1>;
> +};
> +
> +&dpmac5 {
> +	phy-handle = <&mdio1_phy7>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs3_2>;
> +};
> +
> +&dpmac6 {
> +	phy-handle = <&mdio1_phy8>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs3_3>;
> +};
> +
> +/* DPMAC7..10 is GE0 to GE3 */
> +&dpmac7 {
> +	phy-handle = <&mdio1_phy1>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs7_0>;
> +};
> +
> +&dpmac8 {
> +	phy-handle = <&mdio1_phy2>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs7_1>;
> +};
> +
> +&dpmac9 {
> +	phy-handle = <&mdio1_phy3>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs7_2>;
> +};
> +
> +&dpmac10 {
> +	phy-handle = <&mdio1_phy4>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs7_3>;
> +};
> +
> +&duart0 {
> +	status = "okay";
> +};
> +
> +&duart1 {
> +	status = "okay";
> +};
> +
> +&emdio1 {
> +	status = "okay";
> +
> +	mdio1_phy5: ethernet-phy@c {
> +		reg = <0xc>;
> +	};
> +
> +	mdio1_phy6: ethernet-phy@d {
> +		reg = <0xd>;
> +	};
> +
> +	mdio1_phy7: ethernet-phy@e {
> +		reg = <0xe>;
> +	};
> +
> +	mdio1_phy8: ethernet-phy@f {
> +		reg = <0xf>;
> +	};
> +
> +	mdio1_phy1: ethernet-phy@1c {
> +		reg = <0x1c>;
> +	};
> +
> +	mdio1_phy2: ethernet-phy@1d {
> +		reg = <0x1d>;
> +	};
> +
> +	mdio1_phy3: ethernet-phy@1e {
> +		reg = <0x1e>;
> +	};
> +
> +	mdio1_phy4: ethernet-phy@1f {
> +		reg = <0x1f>;
> +	};
> +};
> +
> +&esdhc {
> +	status = "okay";
> +};
> +
> +&i2c0 {
> +	status = "okay";
> +
> +	sfpgpio: gpio@76 {
> +		compatible = "ti,tca9539";
> +		reg = <0x76>;
> +		#gpio-cells = <2>;
> +		gpio-controller;
> +
> +		admin_led_lower {
> +			gpio-hog;
> +			gpios = <13 GPIO_ACTIVE_HIGH>;
> +			output-low;
> +		};
> +	};
> +
> +	at97sc: tpm@29 {
> +		compatible = "atmel,at97sc3204t";
> +		reg = <0x29>;
> +	};
> +};
> +
> +&i2c2 {
> +	status = "okay";
> +
> +	rx8035: rtc@32 {
> +		compatible = "epson,rx8035";
> +		reg = <0x32>;
> +	};
> +};
> +
> +&i2c3 {
> +	status = "okay";
> +
> +	i2c-switch@70 {
> +		compatible = "nxp,pca9540";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		reg = <0x70>;
> +
> +		sfpupper_i2c: i2c@0 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			reg = <0>;
> +		};
> +
> +		sfplower_i2c: i2c@1 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			reg = <1>;
> +		};
> +	};
> +};
> +
> +&pcs_mdio1 {
> +	status = "okay";
> +};
> +
> +&pcs_mdio2 {
> +	status = "okay";
> +};
> +
> +&pcs_mdio3 {
> +	status = "okay";
> +};
> +
> +&pcs_mdio7 {
> +	status = "okay";
> +};
> +
> +&qspi {
> +	status = "okay";
> +
> +	en25s64: flash@0 {
> +		compatible = "jedec,spi-nor";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		reg = <0>;
> +		spi-max-frequency = <20000000>;
> +		spi-rx-bus-width = <4>;
> +		spi-tx-bus-width = <4>;
> +
> +		partition@0 {

New users should put all the partitions under a 'partitions' node.

> +			label = "bl2";
> +			reg = <0 0x100000>;
> +		};
> +
> +		partition@100000 {
> +			label = "bl3";
> +			reg = <0x100000 0x200000>;
> +		};
> +
> +		partition@300000 {
> +			label = "mcfirmware";
> +			reg = <0x300000 0x200000>;
> +		};
> +
> +		partition@500000 {
> +			label = "ubootenv";
> +			reg = <0x500000 0x80000>;
> +		};
> +
> +		partition@580000 {
> +			label = "dpl";
> +			reg = <0x580000 0x40000>;
> +		};
> +
> +		partition@5C0000 {
> +			label = "dpc";
> +			reg = <0x5C0000 0x40000>;
> +		};
> +
> +		partition@600000 {
> +			label = "devicetree";
> +			reg = <0x600000 0x40000>;
> +		};
> +	};
> +
> +	nand: flash@1 {
> +		compatible = "spi-nand";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		reg = <1>;
> +		spi-max-frequency = <20000000>;
> +		spi-rx-bus-width = <4>;
> +		spi-tx-bus-width = <4>;
> +
> +		/* reserved for future boot direct from NAND flash
> +		 * (this would use the same layout as the 8MiB NOR flash)
> +		 */
> +		partition@0 {
> +			label = "nand-boot-reserved";
> +			reg = <0 0x800000>;
> +		};
> +
> +		/* recovery / install environment */
> +		partition@800000 {
> +			label = "recovery";
> +			reg = <0x800000 0x2000000>;
> +		};
> +
> +		/* ubia (first OpenWrt) - a/b names to prevent confusion with ubi0/1/etc. */
> +		partition@2800000 {
> +			label = "ubia";
> +			reg = <0x2800000 0x6C00000>;
> +		};
> +
> +		/* ubib (second OpenWrt) */
> +		partition@9400000 {
> +			label = "ubib";
> +			reg = <0x9400000 0x6C00000>;
> +		};
> +	};
> +};
> +
> +&usb0 {
> +	status = "okay";
> +};
> +
> +&usb1 {
> +	status = "okay";
> +};
> -- 
> 2.30.1
> 
> 

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH v2 5/5] arm64: dts: add device tree for Traverse Ten64 (LS1088A)
@ 2021-07-29 22:45       ` Rob Herring
  0 siblings, 0 replies; 50+ messages in thread
From: Rob Herring @ 2021-07-29 22:45 UTC (permalink / raw)
  To: Mathew McBride
  Cc: Shawn Guo, Li Yang, Ioana Ciornei, linux-arm-kernel, devicetree

On Mon, Jul 26, 2021 at 07:12:16AM +0000, Mathew McBride wrote:
> The Traverse Technologies Ten64 is a Mini-ITX form factor
> networking board using the NXP LS1088A SoC.
> 
> This device tree only describes features which the mainline
> kernel currently has support for, such as some I2C-connected
> devices that are not described at present.
> 
> System documentation may be found at ten64doc.traverse.com.au
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>
> Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com> # for the MAC/PHY
> ---
>  arch/arm64/boot/dts/freescale/Makefile        |   1 +
>  .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 377 ++++++++++++++++++
>  2 files changed, 378 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
> 
> diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> index 25806c4924cb..2b3ee42e4a2a 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -19,6 +19,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-qds.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-rdb.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-qds.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-rdb.dtb
> +dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-ten64.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-qds.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
> new file mode 100644
> index 000000000000..59fa344a8854
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
> @@ -0,0 +1,377 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Device Tree file for Travese Ten64 (LS1088) board
> + * Based on fsl-ls1088a-rdb.dts
> + * Copyright 2017-2020 NXP
> + * Copyright 2019-2021 Traverse Technologies
> + *
> + * Author: Mathew McBride <matt@traverse.com.au>
> + */
> +
> +/dts-v1/;
> +
> +#include "fsl-ls1088a.dtsi"
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +
> +/ {
> +	model = "Traverse Ten64";
> +	compatible = "traverse,ten64", "fsl,ls1088a";
> +
> +	aliases {
> +		serial0 = &duart0;
> +		serial1 = &duart1;
> +	};
> +
> +	chosen {
> +		stdout-path = "serial0:115200n8";
> +	};
> +
> +	buttons {
> +		compatible = "gpio-keys";
> +
> +		/* Fired by system controller when
> +		 * external power off (e.g ATX Power Button)
> +		 * asserted
> +		 */
> +		powerdn {
> +			label = "External Power Down";
> +			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
> +			interrupts = <&gpio1 17 IRQ_TYPE_EDGE_FALLING>;
> +			linux,code = <KEY_POWER>;
> +		};
> +
> +		/* Rear Panel 'ADMIN' button (GPIO_H) */
> +		admin {
> +			label = "ADMIN button";
> +			gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
> +			interrupts = <&gpio3 8 IRQ_TYPE_EDGE_RISING>;
> +			linux,code = <KEY_WPS_BUTTON>;
> +		};
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		sfp1down {
> +			label = "ten64:green:sfp1:down";
> +			gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
> +		};
> +
> +		sfp2up {
> +			label = "ten64:green:sfp2:up";
> +			gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>;
> +		};
> +
> +		admin {
> +			label = "ten64:admin";
> +			gpios = <&sfpgpio 12 GPIO_ACTIVE_HIGH>;
> +		};
> +	};
> +
> +	sfp_xg0: dpmac2-sfp {
> +		compatible = "sff,sfp";
> +		i2c-bus = <&sfplower_i2c>;
> +		tx-fault-gpios = <&sfpgpio 0 GPIO_ACTIVE_HIGH>;
> +		tx-disable-gpios = <&sfpgpio 1 GPIO_ACTIVE_HIGH>;
> +		mod-def0-gpios = <&sfpgpio 2 GPIO_ACTIVE_LOW>;
> +		los-gpios = <&sfpgpio 3 GPIO_ACTIVE_HIGH>;
> +		maximum-power-milliwatt = <2000>;
> +	};
> +
> +	sfp_xg1: dpmac1-sfp {
> +		compatible = "sff,sfp";
> +		i2c-bus = <&sfpupper_i2c>;
> +		tx-fault-gpios = <&sfpgpio 4 GPIO_ACTIVE_HIGH>;
> +		tx-disable-gpios = <&sfpgpio 5 GPIO_ACTIVE_HIGH>;
> +		mod-def0-gpios = <&sfpgpio 6 GPIO_ACTIVE_LOW>;
> +		los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>;
> +		maximum-power-milliwatt = <2000>;
> +	};
> +};
> +
> +/* XG1 - Upper SFP */
> +&dpmac1 {
> +	sfp = <&sfp_xg1>;
> +	pcs-handle = <&pcs1>;
> +	phy-connection-type = "10gbase-r";
> +	managed = "in-band-status";
> +};
> +
> +/* XG0 - Lower SFP */
> +&dpmac2 {
> +	sfp = <&sfp_xg0>;
> +	pcs-handle = <&pcs2>;
> +	phy-connection-type = "10gbase-r";
> +	managed = "in-band-status";
> +};
> +
> +/* DPMAC3..6 is GE4 to GE8 */
> +&dpmac3 {
> +	phy-handle = <&mdio1_phy5>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs3_0>;
> +};
> +
> +&dpmac4 {
> +	phy-handle = <&mdio1_phy6>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs3_1>;
> +};
> +
> +&dpmac5 {
> +	phy-handle = <&mdio1_phy7>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs3_2>;
> +};
> +
> +&dpmac6 {
> +	phy-handle = <&mdio1_phy8>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs3_3>;
> +};
> +
> +/* DPMAC7..10 is GE0 to GE3 */
> +&dpmac7 {
> +	phy-handle = <&mdio1_phy1>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs7_0>;
> +};
> +
> +&dpmac8 {
> +	phy-handle = <&mdio1_phy2>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs7_1>;
> +};
> +
> +&dpmac9 {
> +	phy-handle = <&mdio1_phy3>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs7_2>;
> +};
> +
> +&dpmac10 {
> +	phy-handle = <&mdio1_phy4>;
> +	phy-connection-type = "qsgmii";
> +	managed = "in-band-status";
> +	pcs-handle = <&pcs7_3>;
> +};
> +
> +&duart0 {
> +	status = "okay";
> +};
> +
> +&duart1 {
> +	status = "okay";
> +};
> +
> +&emdio1 {
> +	status = "okay";
> +
> +	mdio1_phy5: ethernet-phy@c {
> +		reg = <0xc>;
> +	};
> +
> +	mdio1_phy6: ethernet-phy@d {
> +		reg = <0xd>;
> +	};
> +
> +	mdio1_phy7: ethernet-phy@e {
> +		reg = <0xe>;
> +	};
> +
> +	mdio1_phy8: ethernet-phy@f {
> +		reg = <0xf>;
> +	};
> +
> +	mdio1_phy1: ethernet-phy@1c {
> +		reg = <0x1c>;
> +	};
> +
> +	mdio1_phy2: ethernet-phy@1d {
> +		reg = <0x1d>;
> +	};
> +
> +	mdio1_phy3: ethernet-phy@1e {
> +		reg = <0x1e>;
> +	};
> +
> +	mdio1_phy4: ethernet-phy@1f {
> +		reg = <0x1f>;
> +	};
> +};
> +
> +&esdhc {
> +	status = "okay";
> +};
> +
> +&i2c0 {
> +	status = "okay";
> +
> +	sfpgpio: gpio@76 {
> +		compatible = "ti,tca9539";
> +		reg = <0x76>;
> +		#gpio-cells = <2>;
> +		gpio-controller;
> +
> +		admin_led_lower {
> +			gpio-hog;
> +			gpios = <13 GPIO_ACTIVE_HIGH>;
> +			output-low;
> +		};
> +	};
> +
> +	at97sc: tpm@29 {
> +		compatible = "atmel,at97sc3204t";
> +		reg = <0x29>;
> +	};
> +};
> +
> +&i2c2 {
> +	status = "okay";
> +
> +	rx8035: rtc@32 {
> +		compatible = "epson,rx8035";
> +		reg = <0x32>;
> +	};
> +};
> +
> +&i2c3 {
> +	status = "okay";
> +
> +	i2c-switch@70 {
> +		compatible = "nxp,pca9540";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		reg = <0x70>;
> +
> +		sfpupper_i2c: i2c@0 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			reg = <0>;
> +		};
> +
> +		sfplower_i2c: i2c@1 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			reg = <1>;
> +		};
> +	};
> +};
> +
> +&pcs_mdio1 {
> +	status = "okay";
> +};
> +
> +&pcs_mdio2 {
> +	status = "okay";
> +};
> +
> +&pcs_mdio3 {
> +	status = "okay";
> +};
> +
> +&pcs_mdio7 {
> +	status = "okay";
> +};
> +
> +&qspi {
> +	status = "okay";
> +
> +	en25s64: flash@0 {
> +		compatible = "jedec,spi-nor";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		reg = <0>;
> +		spi-max-frequency = <20000000>;
> +		spi-rx-bus-width = <4>;
> +		spi-tx-bus-width = <4>;
> +
> +		partition@0 {

New users should put all the partitions under a 'partitions' node.

> +			label = "bl2";
> +			reg = <0 0x100000>;
> +		};
> +
> +		partition@100000 {
> +			label = "bl3";
> +			reg = <0x100000 0x200000>;
> +		};
> +
> +		partition@300000 {
> +			label = "mcfirmware";
> +			reg = <0x300000 0x200000>;
> +		};
> +
> +		partition@500000 {
> +			label = "ubootenv";
> +			reg = <0x500000 0x80000>;
> +		};
> +
> +		partition@580000 {
> +			label = "dpl";
> +			reg = <0x580000 0x40000>;
> +		};
> +
> +		partition@5C0000 {
> +			label = "dpc";
> +			reg = <0x5C0000 0x40000>;
> +		};
> +
> +		partition@600000 {
> +			label = "devicetree";
> +			reg = <0x600000 0x40000>;
> +		};
> +	};
> +
> +	nand: flash@1 {
> +		compatible = "spi-nand";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		reg = <1>;
> +		spi-max-frequency = <20000000>;
> +		spi-rx-bus-width = <4>;
> +		spi-tx-bus-width = <4>;
> +
> +		/* reserved for future boot direct from NAND flash
> +		 * (this would use the same layout as the 8MiB NOR flash)
> +		 */
> +		partition@0 {
> +			label = "nand-boot-reserved";
> +			reg = <0 0x800000>;
> +		};
> +
> +		/* recovery / install environment */
> +		partition@800000 {
> +			label = "recovery";
> +			reg = <0x800000 0x2000000>;
> +		};
> +
> +		/* ubia (first OpenWrt) - a/b names to prevent confusion with ubi0/1/etc. */
> +		partition@2800000 {
> +			label = "ubia";
> +			reg = <0x2800000 0x6C00000>;
> +		};
> +
> +		/* ubib (second OpenWrt) */
> +		partition@9400000 {
> +			label = "ubib";
> +			reg = <0x9400000 0x6C00000>;
> +		};
> +	};
> +};
> +
> +&usb0 {
> +	status = "okay";
> +};
> +
> +&usb1 {
> +	status = "okay";
> +};
> -- 
> 2.30.1
> 
> 

_______________________________________________
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] 50+ messages in thread

* Re: [PATCH v2 4/5] dt-bindings: arm: fsl: Add Traverse Ten64 (LS1088A) board
  2021-07-26  7:12     ` Mathew McBride
@ 2021-07-29 22:45       ` Rob Herring
  -1 siblings, 0 replies; 50+ messages in thread
From: Rob Herring @ 2021-07-29 22:45 UTC (permalink / raw)
  To: Mathew McBride
  Cc: devicetree, linux-arm-kernel, Ioana Ciornei, Li Yang,
	Rob Herring, Shawn Guo

On Mon, 26 Jul 2021 07:12:15 +0000, Mathew McBride wrote:
> Document the compatible for the Ten64 board which will
> be included as freescale/fsl-ls1088a-ten64.dtb in arm64.
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>
> ---
>  Documentation/devicetree/bindings/arm/fsl.yaml | 6 ++++++
>  1 file changed, 6 insertions(+)
> 

Acked-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH v2 4/5] dt-bindings: arm: fsl: Add Traverse Ten64 (LS1088A) board
@ 2021-07-29 22:45       ` Rob Herring
  0 siblings, 0 replies; 50+ messages in thread
From: Rob Herring @ 2021-07-29 22:45 UTC (permalink / raw)
  To: Mathew McBride
  Cc: devicetree, linux-arm-kernel, Ioana Ciornei, Li Yang,
	Rob Herring, Shawn Guo

On Mon, 26 Jul 2021 07:12:15 +0000, Mathew McBride wrote:
> Document the compatible for the Ten64 board which will
> be included as freescale/fsl-ls1088a-ten64.dtb in arm64.
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>
> ---
>  Documentation/devicetree/bindings/arm/fsl.yaml | 6 ++++++
>  1 file changed, 6 insertions(+)
> 

Acked-by: Rob Herring <robh@kernel.org>

_______________________________________________
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] 50+ messages in thread

* [PATCH v3 0/5] Add Traverse Technologies Ten64 board DTS
  2021-07-22  4:24 ` Mathew McBride
@ 2021-08-10  5:38   ` Mathew McBride
  -1 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-08-10  5:38 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Traverse Technologies Ten64 board is a networking-oriented
Mini-ITX form factor appliance using the NXP LS1088A SoC.

This patch series adds a basic device tree (fsl-ls1088a-ten64.dts)
for the board. At the moment only hardware features supported
(or soon to be supported) by mainline kernels are described.

In the course of verifying the DTS on recent kernels, it
was found that some LS1088A features were not described
in fsl-ls1088a.dtsi. The first two patches add them.

The device tree includes a reference to the Epson RX-8035
RTC which depends on this patch series:
"rtc: Implement support for EPSON RX-8035", reviewed but
not yet in the Linus tree.
https://lore.kernel.org/linux-rtc/20210709044518.28769-1-matt@traverse.com.au/T/#t

Changes since v2:
 - Move flash (NOR and NAND) partitions under a partitions node
 - Fix minor spelling error in fsl.yaml (s/bassed/based/g)

Changes since v1:
 - Pick up Reviewed-By tags for PCS and MAC/PHY related parts
 - Use constants for describing interrupts for the PMU
 - Use the Cortex-A53 specific PMU compatible instead of the armv8-pmu3 generic
 - Fix formatting issues for the board DTS (ordering, newlines, node names)

Mathew McBride (5):
  arm64: dts: ls1088a: add internal PCS for DPMAC1 node
  arm64: dts: ls1088a: add missing PMU node
  dt-bindings: vendor-prefixes: add Traverse Technologies
  dt-bindings: arm: fsl: Add Traverse Ten64 (LS1088A) board
  arm64: dts: add device tree for Traverse Ten64 (LS1088A)

 .../devicetree/bindings/arm/fsl.yaml          |   6 +
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 arch/arm64/boot/dts/freescale/Makefile        |   1 +
 .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 389 ++++++++++++++++++
 .../arm64/boot/dts/freescale/fsl-ls1088a.dtsi |  18 +
 5 files changed, 416 insertions(+)
 create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts

-- 
2.30.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v3 0/5] Add Traverse Technologies Ten64 board DTS
@ 2021-08-10  5:38   ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-08-10  5:38 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Traverse Technologies Ten64 board is a networking-oriented
Mini-ITX form factor appliance using the NXP LS1088A SoC.

This patch series adds a basic device tree (fsl-ls1088a-ten64.dts)
for the board. At the moment only hardware features supported
(or soon to be supported) by mainline kernels are described.

In the course of verifying the DTS on recent kernels, it
was found that some LS1088A features were not described
in fsl-ls1088a.dtsi. The first two patches add them.

The device tree includes a reference to the Epson RX-8035
RTC which depends on this patch series:
"rtc: Implement support for EPSON RX-8035", reviewed but
not yet in the Linus tree.
https://lore.kernel.org/linux-rtc/20210709044518.28769-1-matt@traverse.com.au/T/#t

Changes since v2:
 - Move flash (NOR and NAND) partitions under a partitions node
 - Fix minor spelling error in fsl.yaml (s/bassed/based/g)

Changes since v1:
 - Pick up Reviewed-By tags for PCS and MAC/PHY related parts
 - Use constants for describing interrupts for the PMU
 - Use the Cortex-A53 specific PMU compatible instead of the armv8-pmu3 generic
 - Fix formatting issues for the board DTS (ordering, newlines, node names)

Mathew McBride (5):
  arm64: dts: ls1088a: add internal PCS for DPMAC1 node
  arm64: dts: ls1088a: add missing PMU node
  dt-bindings: vendor-prefixes: add Traverse Technologies
  dt-bindings: arm: fsl: Add Traverse Ten64 (LS1088A) board
  arm64: dts: add device tree for Traverse Ten64 (LS1088A)

 .../devicetree/bindings/arm/fsl.yaml          |   6 +
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 arch/arm64/boot/dts/freescale/Makefile        |   1 +
 .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 389 ++++++++++++++++++
 .../arm64/boot/dts/freescale/fsl-ls1088a.dtsi |  18 +
 5 files changed, 416 insertions(+)
 create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts

-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

* [PATCH v3 1/5] arm64: dts: ls1088a: add internal PCS for DPMAC1 node
  2021-08-10  5:38   ` Mathew McBride
@ 2021-08-10  5:38     ` Mathew McBride
  -1 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-08-10  5:38 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

A previous patch added the PCS for DPMAC2 only, as
used for the AQR PHY on the LS1088ARDB.

DPMAC1 PCS access is required for PHYLINK SFP support
on the Traverse Ten64 board.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
index 2fa6cfbef01f..79ceadc9dc4a 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -765,6 +765,19 @@ emdio2: mdio@8b97000 {
 			status = "disabled";
 		};
 
+		pcs_mdio1: mdio@8c07000 {
+			compatible = "fsl,fman-memac-mdio";
+			reg = <0x0 0x8c07000 0x0 0x1000>;
+			little-endian;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			status = "disabled";
+
+			pcs1: ethernet-phy@0 {
+				reg = <0>;
+			};
+		};
+
 		pcs_mdio2: mdio@8c0b000 {
 			compatible = "fsl,fman-memac-mdio";
 			reg = <0x0 0x8c0b000 0x0 0x1000>;
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 50+ messages in thread

* [PATCH v3 1/5] arm64: dts: ls1088a: add internal PCS for DPMAC1 node
@ 2021-08-10  5:38     ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-08-10  5:38 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

A previous patch added the PCS for DPMAC2 only, as
used for the AQR PHY on the LS1088ARDB.

DPMAC1 PCS access is required for PHYLINK SFP support
on the Traverse Ten64 board.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
index 2fa6cfbef01f..79ceadc9dc4a 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -765,6 +765,19 @@ emdio2: mdio@8b97000 {
 			status = "disabled";
 		};
 
+		pcs_mdio1: mdio@8c07000 {
+			compatible = "fsl,fman-memac-mdio";
+			reg = <0x0 0x8c07000 0x0 0x1000>;
+			little-endian;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			status = "disabled";
+
+			pcs1: ethernet-phy@0 {
+				reg = <0>;
+			};
+		};
+
 		pcs_mdio2: mdio@8c0b000 {
 			compatible = "fsl,fman-memac-mdio";
 			reg = <0x0 0x8c0b000 0x0 0x1000>;
-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

* [PATCH v3 2/5] arm64: dts: ls1088a: add missing PMU node
  2021-08-10  5:38   ` Mathew McBride
@ 2021-08-10  5:38     ` Mathew McBride
  -1 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-08-10  5:38 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Performance Manager Unit was not described in the DTS
which meant performance event monitoring was not possible.

This was exposed by a change to the PMU handling in KVM
in 5.11-rc3 which now prevents a PMU being exposed to a
guest when the host does not provide one:
"KVM: arm64: Don't access PMCR_EL0 when no PMU is available"

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
index 79ceadc9dc4a..f85e437f80b7 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -189,6 +189,11 @@ timer {
 			     <1 10 IRQ_TYPE_LEVEL_LOW>;/* Hypervisor PPI */
 	};
 
+	pmu {
+		compatible = "arm,cortex-a53-pmu";
+		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
+	};
+
 	psci {
 		compatible = "arm,psci-0.2";
 		method = "smc";
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 50+ messages in thread

* [PATCH v3 2/5] arm64: dts: ls1088a: add missing PMU node
@ 2021-08-10  5:38     ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-08-10  5:38 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Performance Manager Unit was not described in the DTS
which meant performance event monitoring was not possible.

This was exposed by a change to the PMU handling in KVM
in 5.11-rc3 which now prevents a PMU being exposed to a
guest when the host does not provide one:
"KVM: arm64: Don't access PMCR_EL0 when no PMU is available"

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
index 79ceadc9dc4a..f85e437f80b7 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -189,6 +189,11 @@ timer {
 			     <1 10 IRQ_TYPE_LEVEL_LOW>;/* Hypervisor PPI */
 	};
 
+	pmu {
+		compatible = "arm,cortex-a53-pmu";
+		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
+	};
+
 	psci {
 		compatible = "arm,psci-0.2";
 		method = "smc";
-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

* [PATCH v3 3/5] dt-bindings: vendor-prefixes: add Traverse Technologies
  2021-08-10  5:38   ` Mathew McBride
@ 2021-08-10  5:38     ` Mathew McBride
  -1 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-08-10  5:38 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride, Rob Herring

Traverse Technologies is a designer and manufacturer
of networking appliances.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Acked-by: Rob Herring <robh@kernel.org>
---
 Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index 07fb0d25fc15..eba2029d3ba7 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -1184,6 +1184,8 @@ patternProperties:
     description: TPO
   "^tq,.*":
     description: TQ-Systems GmbH
+  "^traverse,.*":
+    description: Traverse Technologies Australia Pty Ltd
   "^tronfy,.*":
     description: Tronfy
   "^tronsmart,.*":
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 50+ messages in thread

* [PATCH v3 3/5] dt-bindings: vendor-prefixes: add Traverse Technologies
@ 2021-08-10  5:38     ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-08-10  5:38 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride, Rob Herring

Traverse Technologies is a designer and manufacturer
of networking appliances.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Acked-by: Rob Herring <robh@kernel.org>
---
 Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index 07fb0d25fc15..eba2029d3ba7 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -1184,6 +1184,8 @@ patternProperties:
     description: TPO
   "^tq,.*":
     description: TQ-Systems GmbH
+  "^traverse,.*":
+    description: Traverse Technologies Australia Pty Ltd
   "^tronfy,.*":
     description: Tronfy
   "^tronsmart,.*":
-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

* [PATCH v3 4/5] dt-bindings: arm: fsl: Add Traverse Ten64 (LS1088A) board
  2021-08-10  5:38   ` Mathew McBride
@ 2021-08-10  5:38     ` Mathew McBride
  -1 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-08-10  5:38 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride, Rob Herring

Document the compatible for the Ten64 board which will
be included as freescale/fsl-ls1088a-ten64.dtb in arm64.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Acked-by: Rob Herring <robh@kernel.org>
---
 Documentation/devicetree/bindings/arm/fsl.yaml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
index 1c827c1954dc..20537be8e803 100644
--- a/Documentation/devicetree/bindings/arm/fsl.yaml
+++ b/Documentation/devicetree/bindings/arm/fsl.yaml
@@ -973,6 +973,12 @@ properties:
               - fsl,s32v234-evb           # S32V234-EVB2 Customer Evaluation Board
           - const: fsl,s32v234
 
+      - description: Traverse LS1088A based Boards
+        items:
+          - enum:
+              - traverse,ten64            # Ten64 Networking Appliance / Board
+          - const: fsl,ls1088a
+
 additionalProperties: true
 
 ...
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 50+ messages in thread

* [PATCH v3 4/5] dt-bindings: arm: fsl: Add Traverse Ten64 (LS1088A) board
@ 2021-08-10  5:38     ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-08-10  5:38 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride, Rob Herring

Document the compatible for the Ten64 board which will
be included as freescale/fsl-ls1088a-ten64.dtb in arm64.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Acked-by: Rob Herring <robh@kernel.org>
---
 Documentation/devicetree/bindings/arm/fsl.yaml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
index 1c827c1954dc..20537be8e803 100644
--- a/Documentation/devicetree/bindings/arm/fsl.yaml
+++ b/Documentation/devicetree/bindings/arm/fsl.yaml
@@ -973,6 +973,12 @@ properties:
               - fsl,s32v234-evb           # S32V234-EVB2 Customer Evaluation Board
           - const: fsl,s32v234
 
+      - description: Traverse LS1088A based Boards
+        items:
+          - enum:
+              - traverse,ten64            # Ten64 Networking Appliance / Board
+          - const: fsl,ls1088a
+
 additionalProperties: true
 
 ...
-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

* [PATCH v3 5/5] arm64: dts: add device tree for Traverse Ten64 (LS1088A)
  2021-08-10  5:38   ` Mathew McBride
@ 2021-08-10  5:38     ` Mathew McBride
  -1 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-08-10  5:38 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Traverse Technologies Ten64 is a Mini-ITX form factor
networking board using the NXP LS1088A SoC.

This device tree only describes features which the mainline
kernel currently has support for, such as some I2C-connected
devices that are not described at present.

System documentation may be found at ten64doc.traverse.com.au

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com> # for the MAC/PHY
---
 arch/arm64/boot/dts/freescale/Makefile        |   1 +
 .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 389 ++++++++++++++++++
 2 files changed, 390 insertions(+)
 create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts

diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 25806c4924cb..2b3ee42e4a2a 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -19,6 +19,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-rdb.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-rdb.dtb
+dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-ten64.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
new file mode 100644
index 000000000000..3063851c2fb9
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
@@ -0,0 +1,389 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree file for Travese Ten64 (LS1088) board
+ * Based on fsl-ls1088a-rdb.dts
+ * Copyright 2017-2020 NXP
+ * Copyright 2019-2021 Traverse Technologies
+ *
+ * Author: Mathew McBride <matt@traverse.com.au>
+ */
+
+/dts-v1/;
+
+#include "fsl-ls1088a.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	model = "Traverse Ten64";
+	compatible = "traverse,ten64", "fsl,ls1088a";
+
+	aliases {
+		serial0 = &duart0;
+		serial1 = &duart1;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	buttons {
+		compatible = "gpio-keys";
+
+		/* Fired by system controller when
+		 * external power off (e.g ATX Power Button)
+		 * asserted
+		 */
+		powerdn {
+			label = "External Power Down";
+			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
+			interrupts = <&gpio1 17 IRQ_TYPE_EDGE_FALLING>;
+			linux,code = <KEY_POWER>;
+		};
+
+		/* Rear Panel 'ADMIN' button (GPIO_H) */
+		admin {
+			label = "ADMIN button";
+			gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
+			interrupts = <&gpio3 8 IRQ_TYPE_EDGE_RISING>;
+			linux,code = <KEY_WPS_BUTTON>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		sfp1down {
+			label = "ten64:green:sfp1:down";
+			gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
+		};
+
+		sfp2up {
+			label = "ten64:green:sfp2:up";
+			gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>;
+		};
+
+		admin {
+			label = "ten64:admin";
+			gpios = <&sfpgpio 12 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	sfp_xg0: dpmac2-sfp {
+		compatible = "sff,sfp";
+		i2c-bus = <&sfplower_i2c>;
+		tx-fault-gpios = <&sfpgpio 0 GPIO_ACTIVE_HIGH>;
+		tx-disable-gpios = <&sfpgpio 1 GPIO_ACTIVE_HIGH>;
+		mod-def0-gpios = <&sfpgpio 2 GPIO_ACTIVE_LOW>;
+		los-gpios = <&sfpgpio 3 GPIO_ACTIVE_HIGH>;
+		maximum-power-milliwatt = <2000>;
+	};
+
+	sfp_xg1: dpmac1-sfp {
+		compatible = "sff,sfp";
+		i2c-bus = <&sfpupper_i2c>;
+		tx-fault-gpios = <&sfpgpio 4 GPIO_ACTIVE_HIGH>;
+		tx-disable-gpios = <&sfpgpio 5 GPIO_ACTIVE_HIGH>;
+		mod-def0-gpios = <&sfpgpio 6 GPIO_ACTIVE_LOW>;
+		los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>;
+		maximum-power-milliwatt = <2000>;
+	};
+};
+
+/* XG1 - Upper SFP */
+&dpmac1 {
+	sfp = <&sfp_xg1>;
+	pcs-handle = <&pcs1>;
+	phy-connection-type = "10gbase-r";
+	managed = "in-band-status";
+};
+
+/* XG0 - Lower SFP */
+&dpmac2 {
+	sfp = <&sfp_xg0>;
+	pcs-handle = <&pcs2>;
+	phy-connection-type = "10gbase-r";
+	managed = "in-band-status";
+};
+
+/* DPMAC3..6 is GE4 to GE8 */
+&dpmac3 {
+	phy-handle = <&mdio1_phy5>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_0>;
+};
+
+&dpmac4 {
+	phy-handle = <&mdio1_phy6>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_1>;
+};
+
+&dpmac5 {
+	phy-handle = <&mdio1_phy7>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_2>;
+};
+
+&dpmac6 {
+	phy-handle = <&mdio1_phy8>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_3>;
+};
+
+/* DPMAC7..10 is GE0 to GE3 */
+&dpmac7 {
+	phy-handle = <&mdio1_phy1>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_0>;
+};
+
+&dpmac8 {
+	phy-handle = <&mdio1_phy2>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_1>;
+};
+
+&dpmac9 {
+	phy-handle = <&mdio1_phy3>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_2>;
+};
+
+&dpmac10 {
+	phy-handle = <&mdio1_phy4>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_3>;
+};
+
+&duart0 {
+	status = "okay";
+};
+
+&duart1 {
+	status = "okay";
+};
+
+&emdio1 {
+	status = "okay";
+
+	mdio1_phy5: ethernet-phy@c {
+		reg = <0xc>;
+	};
+
+	mdio1_phy6: ethernet-phy@d {
+		reg = <0xd>;
+	};
+
+	mdio1_phy7: ethernet-phy@e {
+		reg = <0xe>;
+	};
+
+	mdio1_phy8: ethernet-phy@f {
+		reg = <0xf>;
+	};
+
+	mdio1_phy1: ethernet-phy@1c {
+		reg = <0x1c>;
+	};
+
+	mdio1_phy2: ethernet-phy@1d {
+		reg = <0x1d>;
+	};
+
+	mdio1_phy3: ethernet-phy@1e {
+		reg = <0x1e>;
+	};
+
+	mdio1_phy4: ethernet-phy@1f {
+		reg = <0x1f>;
+	};
+};
+
+&esdhc {
+	status = "okay";
+};
+
+&i2c0 {
+	status = "okay";
+
+	sfpgpio: gpio@76 {
+		compatible = "ti,tca9539";
+		reg = <0x76>;
+		#gpio-cells = <2>;
+		gpio-controller;
+
+		admin_led_lower {
+			gpio-hog;
+			gpios = <13 GPIO_ACTIVE_HIGH>;
+			output-low;
+		};
+	};
+
+	at97sc: tpm@29 {
+		compatible = "atmel,at97sc3204t";
+		reg = <0x29>;
+	};
+};
+
+&i2c2 {
+	status = "okay";
+
+	rx8035: rtc@32 {
+		compatible = "epson,rx8035";
+		reg = <0x32>;
+	};
+};
+
+&i2c3 {
+	status = "okay";
+
+	i2c-switch@70 {
+		compatible = "nxp,pca9540";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		reg = <0x70>;
+
+		sfpupper_i2c: i2c@0 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0>;
+		};
+
+		sfplower_i2c: i2c@1 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <1>;
+		};
+	};
+};
+
+&pcs_mdio1 {
+	status = "okay";
+};
+
+&pcs_mdio2 {
+	status = "okay";
+};
+
+&pcs_mdio3 {
+	status = "okay";
+};
+
+&pcs_mdio7 {
+	status = "okay";
+};
+
+&qspi {
+	status = "okay";
+
+	en25s64: flash@0 {
+		compatible = "jedec,spi-nor";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		reg = <0>;
+		spi-max-frequency = <20000000>;
+		spi-rx-bus-width = <4>;
+		spi-tx-bus-width = <4>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition@0 {
+				label = "bl2";
+				reg = <0 0x100000>;
+			};
+
+			partition@100000 {
+				label = "bl3";
+				reg = <0x100000 0x200000>;
+			};
+
+			partition@300000 {
+				label = "mcfirmware";
+				reg = <0x300000 0x200000>;
+			};
+
+			partition@500000 {
+				label = "ubootenv";
+				reg = <0x500000 0x80000>;
+			};
+
+			partition@580000 {
+				label = "dpl";
+				reg = <0x580000 0x40000>;
+			};
+
+			partition@5C0000 {
+				label = "dpc";
+				reg = <0x5C0000 0x40000>;
+			};
+
+			partition@600000 {
+				label = "devicetree";
+				reg = <0x600000 0x40000>;
+			};
+		};
+	};
+
+	nand: flash@1 {
+		compatible = "spi-nand";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		reg = <1>;
+		spi-max-frequency = <20000000>;
+		spi-rx-bus-width = <4>;
+		spi-tx-bus-width = <4>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			/* reserved for future boot direct from NAND flash
+			 * (this would use the same layout as the 8MiB NOR flash)
+			 */
+			partition@0 {
+				label = "nand-boot-reserved";
+				reg = <0 0x800000>;
+			};
+
+			/* recovery / install environment */
+			partition@800000 {
+				label = "recovery";
+				reg = <0x800000 0x2000000>;
+			};
+
+			/* ubia (first OpenWrt) - a/b names to prevent confusion with ubi0/1/etc. */
+			partition@2800000 {
+				label = "ubia";
+				reg = <0x2800000 0x6C00000>;
+			};
+
+			/* ubib (second OpenWrt) */
+			partition@9400000 {
+				label = "ubib";
+				reg = <0x9400000 0x6C00000>;
+			};
+		};
+	};
+};
+
+&usb0 {
+	status = "okay";
+};
+
+&usb1 {
+	status = "okay";
+};
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 50+ messages in thread

* [PATCH v3 5/5] arm64: dts: add device tree for Traverse Ten64 (LS1088A)
@ 2021-08-10  5:38     ` Mathew McBride
  0 siblings, 0 replies; 50+ messages in thread
From: Mathew McBride @ 2021-08-10  5:38 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Ioana Ciornei, Rob Herring, linux-arm-kernel,
	devicetree
  Cc: Mathew McBride

The Traverse Technologies Ten64 is a Mini-ITX form factor
networking board using the NXP LS1088A SoC.

This device tree only describes features which the mainline
kernel currently has support for, such as some I2C-connected
devices that are not described at present.

System documentation may be found at ten64doc.traverse.com.au

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com> # for the MAC/PHY
---
 arch/arm64/boot/dts/freescale/Makefile        |   1 +
 .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 389 ++++++++++++++++++
 2 files changed, 390 insertions(+)
 create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts

diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 25806c4924cb..2b3ee42e4a2a 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -19,6 +19,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-rdb.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-rdb.dtb
+dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-ten64.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
new file mode 100644
index 000000000000..3063851c2fb9
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
@@ -0,0 +1,389 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree file for Travese Ten64 (LS1088) board
+ * Based on fsl-ls1088a-rdb.dts
+ * Copyright 2017-2020 NXP
+ * Copyright 2019-2021 Traverse Technologies
+ *
+ * Author: Mathew McBride <matt@traverse.com.au>
+ */
+
+/dts-v1/;
+
+#include "fsl-ls1088a.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	model = "Traverse Ten64";
+	compatible = "traverse,ten64", "fsl,ls1088a";
+
+	aliases {
+		serial0 = &duart0;
+		serial1 = &duart1;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	buttons {
+		compatible = "gpio-keys";
+
+		/* Fired by system controller when
+		 * external power off (e.g ATX Power Button)
+		 * asserted
+		 */
+		powerdn {
+			label = "External Power Down";
+			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
+			interrupts = <&gpio1 17 IRQ_TYPE_EDGE_FALLING>;
+			linux,code = <KEY_POWER>;
+		};
+
+		/* Rear Panel 'ADMIN' button (GPIO_H) */
+		admin {
+			label = "ADMIN button";
+			gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
+			interrupts = <&gpio3 8 IRQ_TYPE_EDGE_RISING>;
+			linux,code = <KEY_WPS_BUTTON>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		sfp1down {
+			label = "ten64:green:sfp1:down";
+			gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
+		};
+
+		sfp2up {
+			label = "ten64:green:sfp2:up";
+			gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>;
+		};
+
+		admin {
+			label = "ten64:admin";
+			gpios = <&sfpgpio 12 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	sfp_xg0: dpmac2-sfp {
+		compatible = "sff,sfp";
+		i2c-bus = <&sfplower_i2c>;
+		tx-fault-gpios = <&sfpgpio 0 GPIO_ACTIVE_HIGH>;
+		tx-disable-gpios = <&sfpgpio 1 GPIO_ACTIVE_HIGH>;
+		mod-def0-gpios = <&sfpgpio 2 GPIO_ACTIVE_LOW>;
+		los-gpios = <&sfpgpio 3 GPIO_ACTIVE_HIGH>;
+		maximum-power-milliwatt = <2000>;
+	};
+
+	sfp_xg1: dpmac1-sfp {
+		compatible = "sff,sfp";
+		i2c-bus = <&sfpupper_i2c>;
+		tx-fault-gpios = <&sfpgpio 4 GPIO_ACTIVE_HIGH>;
+		tx-disable-gpios = <&sfpgpio 5 GPIO_ACTIVE_HIGH>;
+		mod-def0-gpios = <&sfpgpio 6 GPIO_ACTIVE_LOW>;
+		los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>;
+		maximum-power-milliwatt = <2000>;
+	};
+};
+
+/* XG1 - Upper SFP */
+&dpmac1 {
+	sfp = <&sfp_xg1>;
+	pcs-handle = <&pcs1>;
+	phy-connection-type = "10gbase-r";
+	managed = "in-band-status";
+};
+
+/* XG0 - Lower SFP */
+&dpmac2 {
+	sfp = <&sfp_xg0>;
+	pcs-handle = <&pcs2>;
+	phy-connection-type = "10gbase-r";
+	managed = "in-band-status";
+};
+
+/* DPMAC3..6 is GE4 to GE8 */
+&dpmac3 {
+	phy-handle = <&mdio1_phy5>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_0>;
+};
+
+&dpmac4 {
+	phy-handle = <&mdio1_phy6>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_1>;
+};
+
+&dpmac5 {
+	phy-handle = <&mdio1_phy7>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_2>;
+};
+
+&dpmac6 {
+	phy-handle = <&mdio1_phy8>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs3_3>;
+};
+
+/* DPMAC7..10 is GE0 to GE3 */
+&dpmac7 {
+	phy-handle = <&mdio1_phy1>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_0>;
+};
+
+&dpmac8 {
+	phy-handle = <&mdio1_phy2>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_1>;
+};
+
+&dpmac9 {
+	phy-handle = <&mdio1_phy3>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_2>;
+};
+
+&dpmac10 {
+	phy-handle = <&mdio1_phy4>;
+	phy-connection-type = "qsgmii";
+	managed = "in-band-status";
+	pcs-handle = <&pcs7_3>;
+};
+
+&duart0 {
+	status = "okay";
+};
+
+&duart1 {
+	status = "okay";
+};
+
+&emdio1 {
+	status = "okay";
+
+	mdio1_phy5: ethernet-phy@c {
+		reg = <0xc>;
+	};
+
+	mdio1_phy6: ethernet-phy@d {
+		reg = <0xd>;
+	};
+
+	mdio1_phy7: ethernet-phy@e {
+		reg = <0xe>;
+	};
+
+	mdio1_phy8: ethernet-phy@f {
+		reg = <0xf>;
+	};
+
+	mdio1_phy1: ethernet-phy@1c {
+		reg = <0x1c>;
+	};
+
+	mdio1_phy2: ethernet-phy@1d {
+		reg = <0x1d>;
+	};
+
+	mdio1_phy3: ethernet-phy@1e {
+		reg = <0x1e>;
+	};
+
+	mdio1_phy4: ethernet-phy@1f {
+		reg = <0x1f>;
+	};
+};
+
+&esdhc {
+	status = "okay";
+};
+
+&i2c0 {
+	status = "okay";
+
+	sfpgpio: gpio@76 {
+		compatible = "ti,tca9539";
+		reg = <0x76>;
+		#gpio-cells = <2>;
+		gpio-controller;
+
+		admin_led_lower {
+			gpio-hog;
+			gpios = <13 GPIO_ACTIVE_HIGH>;
+			output-low;
+		};
+	};
+
+	at97sc: tpm@29 {
+		compatible = "atmel,at97sc3204t";
+		reg = <0x29>;
+	};
+};
+
+&i2c2 {
+	status = "okay";
+
+	rx8035: rtc@32 {
+		compatible = "epson,rx8035";
+		reg = <0x32>;
+	};
+};
+
+&i2c3 {
+	status = "okay";
+
+	i2c-switch@70 {
+		compatible = "nxp,pca9540";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		reg = <0x70>;
+
+		sfpupper_i2c: i2c@0 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0>;
+		};
+
+		sfplower_i2c: i2c@1 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <1>;
+		};
+	};
+};
+
+&pcs_mdio1 {
+	status = "okay";
+};
+
+&pcs_mdio2 {
+	status = "okay";
+};
+
+&pcs_mdio3 {
+	status = "okay";
+};
+
+&pcs_mdio7 {
+	status = "okay";
+};
+
+&qspi {
+	status = "okay";
+
+	en25s64: flash@0 {
+		compatible = "jedec,spi-nor";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		reg = <0>;
+		spi-max-frequency = <20000000>;
+		spi-rx-bus-width = <4>;
+		spi-tx-bus-width = <4>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition@0 {
+				label = "bl2";
+				reg = <0 0x100000>;
+			};
+
+			partition@100000 {
+				label = "bl3";
+				reg = <0x100000 0x200000>;
+			};
+
+			partition@300000 {
+				label = "mcfirmware";
+				reg = <0x300000 0x200000>;
+			};
+
+			partition@500000 {
+				label = "ubootenv";
+				reg = <0x500000 0x80000>;
+			};
+
+			partition@580000 {
+				label = "dpl";
+				reg = <0x580000 0x40000>;
+			};
+
+			partition@5C0000 {
+				label = "dpc";
+				reg = <0x5C0000 0x40000>;
+			};
+
+			partition@600000 {
+				label = "devicetree";
+				reg = <0x600000 0x40000>;
+			};
+		};
+	};
+
+	nand: flash@1 {
+		compatible = "spi-nand";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		reg = <1>;
+		spi-max-frequency = <20000000>;
+		spi-rx-bus-width = <4>;
+		spi-tx-bus-width = <4>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			/* reserved for future boot direct from NAND flash
+			 * (this would use the same layout as the 8MiB NOR flash)
+			 */
+			partition@0 {
+				label = "nand-boot-reserved";
+				reg = <0 0x800000>;
+			};
+
+			/* recovery / install environment */
+			partition@800000 {
+				label = "recovery";
+				reg = <0x800000 0x2000000>;
+			};
+
+			/* ubia (first OpenWrt) - a/b names to prevent confusion with ubi0/1/etc. */
+			partition@2800000 {
+				label = "ubia";
+				reg = <0x2800000 0x6C00000>;
+			};
+
+			/* ubib (second OpenWrt) */
+			partition@9400000 {
+				label = "ubib";
+				reg = <0x9400000 0x6C00000>;
+			};
+		};
+	};
+};
+
+&usb0 {
+	status = "okay";
+};
+
+&usb1 {
+	status = "okay";
+};
-- 
2.30.1


_______________________________________________
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] 50+ messages in thread

end of thread, other threads:[~2021-08-10  5:43 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-22  4:24 [PATCH 0/5] Add Traverse Technologies Ten64 board DTS Mathew McBride
2021-07-22  4:24 ` Mathew McBride
2021-07-22  4:24 ` [PATCH 1/5] arm64: dts: ls1088a: add internal PCS for DPMAC1 node Mathew McBride
2021-07-22  4:24   ` Mathew McBride
2021-07-22  7:48   ` Ioana Ciornei
2021-07-22  7:48     ` Ioana Ciornei
2021-07-22  4:24 ` [PATCH 2/5] arm64: dts: ls1088a: add missing PMU node Mathew McBride
2021-07-22  4:24   ` Mathew McBride
2021-07-23  8:36   ` Shawn Guo
2021-07-23  8:36     ` Shawn Guo
2021-07-22  4:24 ` [PATCH 3/5] dt-bindings: vendor-prefixes: add Traverse Technologies Mathew McBride
2021-07-22  4:24   ` Mathew McBride
2021-07-22  4:24 ` [PATCH 4/5] dt-bindings: arm: fsl: Add Traverse Ten64 (LS1088A) board Mathew McBride
2021-07-22  4:24   ` Mathew McBride
2021-07-22  4:24 ` [PATCH 5/5] arm64: dts: add device tree for Traverse Ten64 (LS1088A) Mathew McBride
2021-07-22  4:24   ` Mathew McBride
2021-07-22  8:44   ` Ioana Ciornei
2021-07-22  8:44     ` Ioana Ciornei
2021-07-23  9:46   ` Shawn Guo
2021-07-23  9:46     ` Shawn Guo
2021-07-26  7:12 ` [PATCH v2 0/5] Add Traverse Technologies Ten64 board DTS Mathew McBride
2021-07-26  7:12   ` Mathew McBride
2021-07-26  7:12   ` [PATCH v2 1/5] arm64: dts: ls1088a: add internal PCS for DPMAC1 node Mathew McBride
2021-07-26  7:12     ` Mathew McBride
2021-07-26  7:12   ` [PATCH v2 2/5] arm64: dts: ls1088a: add missing PMU node Mathew McBride
2021-07-26  7:12     ` Mathew McBride
2021-07-26  7:12   ` [PATCH v2 3/5] dt-bindings: vendor-prefixes: add Traverse Technologies Mathew McBride
2021-07-26  7:12     ` Mathew McBride
2021-07-29 22:41     ` Rob Herring
2021-07-29 22:41       ` Rob Herring
2021-07-26  7:12   ` [PATCH v2 4/5] dt-bindings: arm: fsl: Add Traverse Ten64 (LS1088A) board Mathew McBride
2021-07-26  7:12     ` Mathew McBride
2021-07-29 22:45     ` Rob Herring
2021-07-29 22:45       ` Rob Herring
2021-07-26  7:12   ` [PATCH v2 5/5] arm64: dts: add device tree for Traverse Ten64 (LS1088A) Mathew McBride
2021-07-26  7:12     ` Mathew McBride
2021-07-29 22:45     ` Rob Herring
2021-07-29 22:45       ` Rob Herring
2021-08-10  5:38 ` [PATCH v3 0/5] Add Traverse Technologies Ten64 board DTS Mathew McBride
2021-08-10  5:38   ` Mathew McBride
2021-08-10  5:38   ` [PATCH v3 1/5] arm64: dts: ls1088a: add internal PCS for DPMAC1 node Mathew McBride
2021-08-10  5:38     ` Mathew McBride
2021-08-10  5:38   ` [PATCH v3 2/5] arm64: dts: ls1088a: add missing PMU node Mathew McBride
2021-08-10  5:38     ` Mathew McBride
2021-08-10  5:38   ` [PATCH v3 3/5] dt-bindings: vendor-prefixes: add Traverse Technologies Mathew McBride
2021-08-10  5:38     ` Mathew McBride
2021-08-10  5:38   ` [PATCH v3 4/5] dt-bindings: arm: fsl: Add Traverse Ten64 (LS1088A) board Mathew McBride
2021-08-10  5:38     ` Mathew McBride
2021-08-10  5:38   ` [PATCH v3 5/5] arm64: dts: add device tree for Traverse Ten64 (LS1088A) Mathew McBride
2021-08-10  5:38     ` Mathew McBride

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.