devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/6] ARM64: dts: intel: agilex5: add nodes and new board
@ 2024-12-05  9:06 Steffen Trumtrar
  2024-12-05  9:06 ` [PATCH v3 1/6] dt-bindings: net: dwmac: Convert socfpga dwmac to DT schema Steffen Trumtrar
                   ` (6 more replies)
  0 siblings, 7 replies; 12+ messages in thread
From: Steffen Trumtrar @ 2024-12-05  9:06 UTC (permalink / raw)
  To: Dinh Nguyen, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Richard Cochran, Michael Turquette, Stephen Boyd
  Cc: devicetree, linux-kernel, netdev, linux-clk, kernel,
	Steffen Trumtrar, Krzysztof Kozlowski

This series adds the gpio0 and gmac nodes to the socfpga_agilex5.dtsi.
As the the socfpga-dwmac binding is still in txt format, convert it to
yaml, to pass dtb_checks.

An initial devicetree for a new board (Arrow AXE5-Eagle) is also added.
Currently only QSPI and network are functional as all other hardware
currently lacks mainline support.

Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
---
Changes in v3:
- add socfpga-stmmac-agilex5 compatible
- convert socfpga-dwmac.txt -> yaml
- add Acked-bys
- rebase to v6.13-rc1
- Link to v2: https://lore.kernel.org/r/20241125-v6-12-topic-socfpga-agilex5-v2-0-864256ecc7b2@pengutronix.de

Changes in v2:
- fix node names according to dtb_check
- remove gpio 'status = disabled'
- mdio0: remove setting of adi,[rt]x-internal-delay-ps. 2000 is the
  default value
- add Acked-by to dt-binding
- Link to v1: https://lore.kernel.org/r/20241030-v6-12-topic-socfpga-agilex5-v1-0-b2b67780e60e@pengutronix.de

---
Steffen Trumtrar (6):
      dt-bindings: net: dwmac: Convert socfpga dwmac to DT schema
      dt-bindings: net: dwmac: add compatible for Agilex5
      arm64: dts: agilex5: add gmac nodes
      arm64: dts: agilex5: add gpio0
      dt-bindings: intel: add agilex5-based Arrow AXE5-Eagle
      arm64: dts: agilex5: initial support for Arrow AXE5-Eagle

 .../devicetree/bindings/arm/intel,socfpga.yaml     |   1 +
 .../devicetree/bindings/net/socfpga-dwmac.txt      |  57 ---------
 .../devicetree/bindings/net/socfpga-dwmac.yaml     | 126 +++++++++++++++++++
 arch/arm64/boot/dts/intel/Makefile                 |   1 +
 arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi     | 109 ++++++++++++++++
 .../boot/dts/intel/socfpga_agilex5_axe5_eagle.dts  | 140 +++++++++++++++++++++
 6 files changed, 377 insertions(+), 57 deletions(-)
---
base-commit: 40384c840ea1944d7c5a392e8975ed088ecf0b37
change-id: 20241030-v6-12-topic-socfpga-agilex5-90fd3d8f980c

Best regards,
-- 
Steffen Trumtrar <s.trumtrar@pengutronix.de>


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

* [PATCH v3 1/6] dt-bindings: net: dwmac: Convert socfpga dwmac to DT schema
  2024-12-05  9:06 [PATCH v3 0/6] ARM64: dts: intel: agilex5: add nodes and new board Steffen Trumtrar
@ 2024-12-05  9:06 ` Steffen Trumtrar
  2024-12-05 10:48   ` Rob Herring (Arm)
  2024-12-07 20:22   ` Andrew Lunn
  2024-12-05  9:06 ` [PATCH v3 2/6] dt-bindings: net: dwmac: add compatible for Agilex5 Steffen Trumtrar
                   ` (5 subsequent siblings)
  6 siblings, 2 replies; 12+ messages in thread
From: Steffen Trumtrar @ 2024-12-05  9:06 UTC (permalink / raw)
  To: Dinh Nguyen, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Richard Cochran, Michael Turquette, Stephen Boyd
  Cc: devicetree, linux-kernel, netdev, linux-clk, kernel,
	Steffen Trumtrar

Changes to the binding while converting:
- add "snps,dwmac-3.7{0,2,4}a". They are used, but undocumented.
- altr,f2h_ptp_ref_clk is not a required property but optional.

Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
---
 .../devicetree/bindings/net/socfpga-dwmac.txt      |  57 ----------
 .../devicetree/bindings/net/socfpga-dwmac.yaml     | 119 +++++++++++++++++++++
 2 files changed, 119 insertions(+), 57 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/socfpga-dwmac.txt b/Documentation/devicetree/bindings/net/socfpga-dwmac.txt
deleted file mode 100644
index 612a8e8abc88774619f4fd4e9205a3dd32226a9b..0000000000000000000000000000000000000000
--- a/Documentation/devicetree/bindings/net/socfpga-dwmac.txt
+++ /dev/null
@@ -1,57 +0,0 @@
-Altera SOCFPGA SoC DWMAC controller
-
-This is a variant of the dwmac/stmmac driver an inherits all descriptions
-present in Documentation/devicetree/bindings/net/stmmac.txt.
-
-The device node has additional properties:
-
-Required properties:
- - compatible	: For Cyclone5/Arria5 SoCs it should contain
-		  "altr,socfpga-stmmac". For Arria10/Agilex/Stratix10 SoCs
-		  "altr,socfpga-stmmac-a10-s10".
-		  Along with "snps,dwmac" and any applicable more detailed
-		  designware version numbers documented in stmmac.txt
- - altr,sysmgr-syscon : Should be the phandle to the system manager node that
-   encompasses the glue register, the register offset, and the register shift.
-   On Cyclone5/Arria5, the register shift represents the PHY mode bits, while
-   on the Arria10/Stratix10/Agilex platforms, the register shift represents
-   bit for each emac to enable/disable signals from the FPGA fabric to the
-   EMAC modules.
- - altr,f2h_ptp_ref_clk use f2h_ptp_ref_clk instead of default eosc1 clock
-   for ptp ref clk. This affects all emacs as the clock is common.
-
-Optional properties:
-altr,emac-splitter: Should be the phandle to the emac splitter soft IP node if
-		DWMAC controller is connected emac splitter.
-phy-mode: The phy mode the ethernet operates in
-altr,sgmii-to-sgmii-converter: phandle to the TSE SGMII converter
-
-This device node has additional phandle dependency, the sgmii converter:
-
-Required properties:
- - compatible	: Should be altr,gmii-to-sgmii-2.0
- - reg-names	: Should be "eth_tse_control_port"
-
-Example:
-
-gmii_to_sgmii_converter: phy@100000240 {
-	compatible = "altr,gmii-to-sgmii-2.0";
-	reg = <0x00000001 0x00000240 0x00000008>,
-		<0x00000001 0x00000200 0x00000040>;
-	reg-names = "eth_tse_control_port";
-	clocks = <&sgmii_1_clk_0 &emac1 1 &sgmii_clk_125 &sgmii_clk_125>;
-	clock-names = "tse_pcs_ref_clk_clock_connection", "tse_rx_cdr_refclk";
-};
-
-gmac0: ethernet@ff700000 {
-	compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
-	altr,sysmgr-syscon = <&sysmgr 0x60 0>;
-	reg = <0xff700000 0x2000>;
-	interrupts = <0 115 4>;
-	interrupt-names = "macirq";
-	mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
-	clocks = <&emac_0_clk>;
-	clock-names = "stmmaceth";
-	phy-mode = "sgmii";
-	altr,gmii-to-sgmii-converter = <&gmii_to_sgmii_converter>;
-};
diff --git a/Documentation/devicetree/bindings/net/socfpga-dwmac.yaml b/Documentation/devicetree/bindings/net/socfpga-dwmac.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..022d9eb7011d47666b140aaecf54541ca3dec0ec
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/socfpga-dwmac.yaml
@@ -0,0 +1,119 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/socfpga-dwmac.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Altera SOCFPGA SoC DWMAC controller
+
+maintainers:
+  - Dinh Nguyen <dinguyen@altera.com>
+
+description:
+  This is a variant of the dwmac/stmmac driver an inherits all descriptions
+  present in Documentation/devicetree/bindings/net/stmmac.txt.
+
+# We need a select here so we don't match all nodes with 'snps,dwmac'
+select:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - altr,socfpga-stmmac # For Cyclone5/Arria5 SoCs
+          - altr,socfpga-stmmac-a10-s10 # For Arria10/Agilex/Stratix10 SoCs
+  required:
+    - compatible
+
+allOf:
+  - $ref: snps,dwmac.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - altr,socfpga-stmmac
+          - const: snps,dwmac-3.70a
+      - items:
+          - enum:
+              - altr,socfpga-stmmac-a10-s10
+          - const: snps,dwmac-3.72a
+          - const: snps,dwmac
+      - items:
+          - enum:
+              - altr,socfpga-stmmac-a10-s10
+          - const: snps,dwmac-3.74a
+          - const: snps,dwmac
+
+  altr,sysmgr-syscon:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      - items:
+          - description: phandle to the sysmgr node
+          - description: register offset that controls the PHY mode or FPGA signals
+          - description: register shift for the PHY mode bits or FPGA signals
+    description:
+      Should be the phandle to the system manager node that
+      encompasses the glue register, the register offset, and the register shift.
+      On Cyclone5/Arria5, the register shift represents the PHY mode bits, while
+      on the Arria10/Stratix10/Agilex platforms, the register shift represents
+      bit for each emac to enable/disable signals from the FPGA fabric to the
+      EMAC modules.
+
+  altr,f2h_ptp_ref_clk:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Use f2h_ptp_ref_clk instead of default eosc1 clock
+      for ptp ref clk. This affects all emacs as the clock is common.
+
+  altr,emac-splitter:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Should be the phandle to the emac splitter soft IP node if
+      DWMAC controller is connected emac splitter.
+
+  phy-mode:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      The phy mode the ethernet operates in.
+
+  altr,sgmii-to-sgmii-converter:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to the TSE SGMII converter.
+
+      This device node has additional phandle dependency, the sgmii converter
+        - compatible that should be altr,gmii-to-sgmii-2.0
+        - reg-names that should be "eth_tse_control_port"
+
+required:
+  - compatible
+  - reg
+  - altr,sysmgr-syscon
+
+examples:
+  - |
+    //Example 1
+    gmii_to_sgmii_converter: phy@100000240 {
+          compatible = "altr,gmii-to-sgmii-2.0";
+          reg = <0x00000001 0x00000240 0x00000008>,
+                <0x00000001 0x00000200 0x00000040>;
+          reg-names = "eth_tse_control_port";
+          clocks = <&sgmii_1_clk_0 &emac1 1 &sgmii_clk_125 &sgmii_clk_125>;
+          clock-names = "tse_pcs_ref_clk_clock_connection", "tse_rx_cdr_refclk";
+    };
+
+  - |
+    //Example 2
+    gmac0: ethernet@ff700000 {
+          compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
+          altr,sysmgr-syscon = <&sysmgr 0x60 0>;
+          reg = <0xff700000 0x2000>;
+          interrupts = <0 115 4>;
+          interrupt-names = "macirq";
+          mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
+          clocks = <&emac_0_clk>;
+          clock-names = "stmmaceth";
+          phy-mode = "sgmii";
+          altr,gmii-to-sgmii-converter = <&gmii_to_sgmii_converter>;
+    };

-- 
2.46.0


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

* [PATCH v3 2/6] dt-bindings: net: dwmac: add compatible for Agilex5
  2024-12-05  9:06 [PATCH v3 0/6] ARM64: dts: intel: agilex5: add nodes and new board Steffen Trumtrar
  2024-12-05  9:06 ` [PATCH v3 1/6] dt-bindings: net: dwmac: Convert socfpga dwmac to DT schema Steffen Trumtrar
@ 2024-12-05  9:06 ` Steffen Trumtrar
  2024-12-05  9:06 ` [PATCH v3 3/6] arm64: dts: agilex5: add gmac nodes Steffen Trumtrar
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: Steffen Trumtrar @ 2024-12-05  9:06 UTC (permalink / raw)
  To: Dinh Nguyen, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Richard Cochran, Michael Turquette, Stephen Boyd
  Cc: devicetree, linux-kernel, netdev, linux-clk, kernel,
	Steffen Trumtrar

The Agilex5 SoCs have three Synopsys DWXGMAC-compatible ethernet
IP-cores.

Add a SoC-specific front compatible to the binding.

Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
---
 Documentation/devicetree/bindings/net/socfpga-dwmac.yaml | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/socfpga-dwmac.yaml b/Documentation/devicetree/bindings/net/socfpga-dwmac.yaml
index 022d9eb7011d47666b140aaecf54541ca3dec0ec..c578b4280c6c85f08b6e0918352d38ed98998489 100644
--- a/Documentation/devicetree/bindings/net/socfpga-dwmac.yaml
+++ b/Documentation/devicetree/bindings/net/socfpga-dwmac.yaml
@@ -21,6 +21,7 @@ select:
         enum:
           - altr,socfpga-stmmac # For Cyclone5/Arria5 SoCs
           - altr,socfpga-stmmac-a10-s10 # For Arria10/Agilex/Stratix10 SoCs
+          - altr,socfpga-stmmac-agilex5 # For Agilex5 SoCs
   required:
     - compatible
 
@@ -44,6 +45,12 @@ properties:
               - altr,socfpga-stmmac-a10-s10
           - const: snps,dwmac-3.74a
           - const: snps,dwmac
+      - items:
+          - enum:
+              - altr,socfpga-stmmac-agilex5
+          - const: altr,socfpga-stmmac-a10-s10
+          - const: snps,dwxgmac-2.10
+          - const: snps,dwxgmac
 
   altr,sysmgr-syscon:
     $ref: /schemas/types.yaml#/definitions/phandle-array

-- 
2.46.0


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

* [PATCH v3 3/6] arm64: dts: agilex5: add gmac nodes
  2024-12-05  9:06 [PATCH v3 0/6] ARM64: dts: intel: agilex5: add nodes and new board Steffen Trumtrar
  2024-12-05  9:06 ` [PATCH v3 1/6] dt-bindings: net: dwmac: Convert socfpga dwmac to DT schema Steffen Trumtrar
  2024-12-05  9:06 ` [PATCH v3 2/6] dt-bindings: net: dwmac: add compatible for Agilex5 Steffen Trumtrar
@ 2024-12-05  9:06 ` Steffen Trumtrar
  2024-12-05  9:06 ` [PATCH v3 4/6] arm64: dts: agilex5: add gpio0 Steffen Trumtrar
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: Steffen Trumtrar @ 2024-12-05  9:06 UTC (permalink / raw)
  To: Dinh Nguyen, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Richard Cochran, Michael Turquette, Stephen Boyd
  Cc: devicetree, linux-kernel, netdev, linux-clk, kernel,
	Steffen Trumtrar

The Agilex5 provides three Synopsys XGMAC ethernet cores, that can be
used to transmit and receive data at 10M/100M/1G/2.5G over ethernet
connections and enables support for Time Sensitive Networking (TSN)
applications.

Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
---
 arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi | 90 ++++++++++++++++++++++++++
 1 file changed, 90 insertions(+)

diff --git a/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi b/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi
index 1162978329c1637aa0fd9a4adef16a9ae5017ac3..0035caef5af2774083885cf2d0d8a38ee8be9627 100644
--- a/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi
+++ b/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi
@@ -141,6 +141,96 @@ soc: soc@0 {
 		device_type = "soc";
 		interrupt-parent = <&intc>;
 
+		gmac0: ethernet@10810000 {
+			compatible = "altr,socfpga-stmmac-agilex5",
+				     "altr,socfpga-stmmac-a10-s10",
+				     "snps,dwxgmac-2.10",
+				     "snps,dwxgmac";
+			reg = <0x10810000 0x3500>;
+			interrupt-parent = <&intc>;
+			interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names = "macirq";
+			max-frame-size = <3800>;
+			snps,multicast-filter-bins = <64>;
+			snps,perfect-filter-entries = <64>;
+			rx-fifo-depth = <16384>;
+			tx-fifo-depth = <32768>;
+			resets = <&rst EMAC0_RESET>, <&rst EMAC0_OCP_RESET>;
+			reset-names = "stmmaceth", "ahb";
+			clocks = <&clkmgr AGILEX5_EMAC0_CLK>,
+				 <&clkmgr AGILEX5_EMAC_PTP_CLK>;
+			clock-names = "stmmaceth", "ptp_ref";
+			snps,axi-config = <&stmmac_axi_emac0_setup>;
+			altr,sysmgr-syscon = <&sysmgr 0x44 0>;
+			status = "disabled";
+
+			stmmac_axi_emac0_setup: stmmac-axi-config {
+				snps,wr_osr_lmt = <31>;
+				snps,rd_osr_lmt = <31>;
+				snps,blen = <0 0 0 32 16 8 4>;
+			};
+		};
+
+		gmac1: ethernet@10820000 {
+			compatible = "altr,socfpga-stmmac-agilex5",
+				     "altr,socfpga-stmmac-a10-s10",
+				     "snps,dwxgmac-2.10",
+				     "snps,dwxgmac";
+			reg = <0x10820000 0x3500>;
+			interrupt-parent = <&intc>;
+			interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names = "macirq";
+			max-frame-size = <3800>;
+			snps,multicast-filter-bins = <64>;
+			snps,perfect-filter-entries = <64>;
+			rx-fifo-depth = <16384>;
+			tx-fifo-depth = <32768>;
+			resets = <&rst EMAC1_RESET>, <&rst EMAC1_OCP_RESET>;
+			reset-names = "stmmaceth", "ahb";
+			clocks = <&clkmgr AGILEX5_EMAC1_CLK>,
+				 <&clkmgr AGILEX5_EMAC_PTP_CLK>;
+			clock-names = "stmmaceth", "ptp_ref";
+			snps,axi-config = <&stmmac_axi_emac1_setup>;
+			altr,sysmgr-syscon = <&sysmgr 0x48 0>;
+			status = "disabled";
+
+			stmmac_axi_emac1_setup: stmmac-axi-config {
+				snps,wr_osr_lmt = <31>;
+				snps,rd_osr_lmt = <31>;
+				snps,blen = <0 0 0 32 16 8 4>;
+			};
+		};
+
+		gmac2: ethernet@10830000 {
+			compatible = "altr,socfpga-stmmac-agilex5",
+				     "altr,socfpga-stmmac-a10-s10",
+				     "snps,dwxgmac-2.10",
+				     "snps,dwxgmac";
+			reg = <0x10830000 0x3500>;
+			interrupt-parent = <&intc>;
+			interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names = "macirq";
+			max-frame-size = <3800>;
+			snps,multicast-filter-bins = <64>;
+			snps,perfect-filter-entries = <64>;
+			rx-fifo-depth = <16384>;
+			tx-fifo-depth = <32768>;
+			resets = <&rst EMAC2_RESET>, <&rst EMAC2_OCP_RESET>;
+			reset-names = "stmmaceth", "ahb";
+			clocks = <&clkmgr AGILEX5_EMAC2_CLK>,
+				 <&clkmgr AGILEX5_EMAC_PTP_CLK>;
+			clock-names = "stmmaceth", "ptp_ref";
+			snps,axi-config = <&stmmac_axi_emac2_setup>;
+			altr,sysmgr-syscon = <&sysmgr 0x4c 0>;
+			status = "disabled";
+
+			stmmac_axi_emac2_setup: stmmac-axi-config {
+				snps,wr_osr_lmt = <31>;
+				snps,rd_osr_lmt = <31>;
+				snps,blen = <0 0 0 32 16 8 4>;
+			};
+		};
+
 		clkmgr: clock-controller@10d10000 {
 			compatible = "intel,agilex5-clkmgr";
 			reg = <0x10d10000 0x1000>;

-- 
2.46.0


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

* [PATCH v3 4/6] arm64: dts: agilex5: add gpio0
  2024-12-05  9:06 [PATCH v3 0/6] ARM64: dts: intel: agilex5: add nodes and new board Steffen Trumtrar
                   ` (2 preceding siblings ...)
  2024-12-05  9:06 ` [PATCH v3 3/6] arm64: dts: agilex5: add gmac nodes Steffen Trumtrar
@ 2024-12-05  9:06 ` Steffen Trumtrar
  2024-12-05  9:06 ` [PATCH v3 5/6] dt-bindings: intel: add agilex5-based Arrow AXE5-Eagle Steffen Trumtrar
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: Steffen Trumtrar @ 2024-12-05  9:06 UTC (permalink / raw)
  To: Dinh Nguyen, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Richard Cochran, Michael Turquette, Stephen Boyd
  Cc: devicetree, linux-kernel, netdev, linux-clk, kernel,
	Steffen Trumtrar, Krzysztof Kozlowski

gpio0 is the same as gpio1 with a different base address.

Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi b/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi
index 0035caef5af2774083885cf2d0d8a38ee8be9627..47f49d1e1442f66d97a323cd382f3f42d34ab835 100644
--- a/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi
+++ b/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi
@@ -312,6 +312,25 @@ i3c1: i3c@10da1000 {
 			status = "disabled";
 		};
 
+		gpio0: gpio@10c03200 {
+			compatible = "snps,dw-apb-gpio";
+			reg = <0x10c03200 0x100>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			resets = <&rst GPIO0_RESET>;
+
+			porta: gpio-controller@0 {
+				compatible = "snps,dw-apb-gpio-port";
+				reg = <0>;
+				gpio-controller;
+				#gpio-cells = <2>;
+				snps,nr-gpios = <24>;
+				interrupt-controller;
+				#interrupt-cells = <2>;
+				interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
+			};
+		};
+
 		gpio1: gpio@10c03300 {
 			compatible = "snps,dw-apb-gpio";
 			reg = <0x10c03300 0x100>;

-- 
2.46.0


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

* [PATCH v3 5/6] dt-bindings: intel: add agilex5-based Arrow AXE5-Eagle
  2024-12-05  9:06 [PATCH v3 0/6] ARM64: dts: intel: agilex5: add nodes and new board Steffen Trumtrar
                   ` (3 preceding siblings ...)
  2024-12-05  9:06 ` [PATCH v3 4/6] arm64: dts: agilex5: add gpio0 Steffen Trumtrar
@ 2024-12-05  9:06 ` Steffen Trumtrar
  2024-12-05  9:06 ` [PATCH v3 6/6] arm64: dts: agilex5: initial support for " Steffen Trumtrar
  2024-12-06 22:13 ` [PATCH v3 0/6] ARM64: dts: intel: agilex5: add nodes and new board Stephen Boyd
  6 siblings, 0 replies; 12+ messages in thread
From: Steffen Trumtrar @ 2024-12-05  9:06 UTC (permalink / raw)
  To: Dinh Nguyen, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Richard Cochran, Michael Turquette, Stephen Boyd
  Cc: devicetree, linux-kernel, netdev, linux-clk, kernel,
	Steffen Trumtrar, Krzysztof Kozlowski

Add binding for the Arrow Agilex5-based AXE5-Eagle board.

Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 Documentation/devicetree/bindings/arm/intel,socfpga.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/arm/intel,socfpga.yaml b/Documentation/devicetree/bindings/arm/intel,socfpga.yaml
index 2ee0c740eb56d63cff7767167ee3c640beba0803..03de49222d465584f24cc6c7dfff6ccfe304db46 100644
--- a/Documentation/devicetree/bindings/arm/intel,socfpga.yaml
+++ b/Documentation/devicetree/bindings/arm/intel,socfpga.yaml
@@ -24,6 +24,7 @@ properties:
       - description: Agilex5 boards
         items:
           - enum:
+              - arrow,socfpga-agilex5-axe5-eagle
               - intel,socfpga-agilex5-socdk
           - const: intel,socfpga-agilex5
 

-- 
2.46.0


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

* [PATCH v3 6/6] arm64: dts: agilex5: initial support for Arrow AXE5-Eagle
  2024-12-05  9:06 [PATCH v3 0/6] ARM64: dts: intel: agilex5: add nodes and new board Steffen Trumtrar
                   ` (4 preceding siblings ...)
  2024-12-05  9:06 ` [PATCH v3 5/6] dt-bindings: intel: add agilex5-based Arrow AXE5-Eagle Steffen Trumtrar
@ 2024-12-05  9:06 ` Steffen Trumtrar
  2024-12-07 20:26   ` Andrew Lunn
  2024-12-06 22:13 ` [PATCH v3 0/6] ARM64: dts: intel: agilex5: add nodes and new board Stephen Boyd
  6 siblings, 1 reply; 12+ messages in thread
From: Steffen Trumtrar @ 2024-12-05  9:06 UTC (permalink / raw)
  To: Dinh Nguyen, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Richard Cochran, Michael Turquette, Stephen Boyd
  Cc: devicetree, linux-kernel, netdev, linux-clk, kernel,
	Steffen Trumtrar, Krzysztof Kozlowski

The Arrow AXE5-Eagle is an Intel Agilex5 SoCFPGA based board with:

   - 1x PCIe Gen4.0 edge connector
   - 4-port USB HUB
   - 2x 1Gb Ethernet
   - microSD
   - HDMI output
   - 2x 10Gb SFP+ cages

As most devices aren't supported mainline yet, this is only the initial
support for the board.

Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 arch/arm64/boot/dts/intel/Makefile                 |   1 +
 .../boot/dts/intel/socfpga_agilex5_axe5_eagle.dts  | 140 +++++++++++++++++++++
 2 files changed, 141 insertions(+)

diff --git a/arch/arm64/boot/dts/intel/Makefile b/arch/arm64/boot/dts/intel/Makefile
index d39cfb723f5b6674a821dfdafb21b12668bb1e0e..3e87d548c532b1a9e38f4489c037c5c4db3a50b8 100644
--- a/arch/arm64/boot/dts/intel/Makefile
+++ b/arch/arm64/boot/dts/intel/Makefile
@@ -3,5 +3,6 @@ dtb-$(CONFIG_ARCH_INTEL_SOCFPGA) += socfpga_agilex_n6000.dtb \
 				socfpga_agilex_socdk.dtb \
 				socfpga_agilex_socdk_nand.dtb \
 				socfpga_agilex5_socdk.dtb \
+				socfpga_agilex5_axe5_eagle.dtb \
 				socfpga_n5x_socdk.dtb
 dtb-$(CONFIG_ARCH_KEEMBAY) += keembay-evm.dtb
diff --git a/arch/arm64/boot/dts/intel/socfpga_agilex5_axe5_eagle.dts b/arch/arm64/boot/dts/intel/socfpga_agilex5_axe5_eagle.dts
new file mode 100644
index 0000000000000000000000000000000000000000..c0f6870e7b40a53ca0d685b4109ff24e1409bb0e
--- /dev/null
+++ b/arch/arm64/boot/dts/intel/socfpga_agilex5_axe5_eagle.dts
@@ -0,0 +1,140 @@
+// SPDX-License-Identifier:     GPL-2.0
+/*
+ * Copyright (C) 2024, Arrow Electronics, Inc.
+ */
+#include "socfpga_agilex5.dtsi"
+
+/ {
+	model = "SoCFPGA Agilex5 Arrow AXE5-Eagle";
+	compatible = "arrow,socfpga-agilex5-axe5-eagle", "intel,socfpga-agilex5";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led-0 {
+			label = "hps_led0";
+			gpios = <&porta 6 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-1 {
+			label = "hps_led1";
+			gpios = <&porta 7 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		key-0 {
+			label = "hps_sw0";
+			gpios = <&porta 10 0>;
+			linux,input-type = <5>;	/* EV_SW */
+			linux,code = <0x0>;
+		};
+
+		key-1 {
+			label = "hps_sw1";
+			gpios = <&porta 1 0>;
+			linux,input-type = <5>;	/* EV_SW */
+			linux,code = <0x0>;
+		};
+
+		key-2 {
+			label = "hps_pb0";
+			gpios = <&porta 8 1>;
+			linux,code = <187>;		/* KEY_F17 */
+		};
+
+		key-3 {
+			label = "hps_pb1";
+			gpios = <&porta 9 1>;
+			linux,code = <188>;		/* KEY_F18 */
+		};
+	};
+
+	vdd: regulator-vdd {
+		compatible = "regulator-fixed";
+		regulator-name = "fixed-supply";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		regulator-always-on;
+	};
+
+	vdd_3_3: regulator-vdd {
+		compatible = "regulator-fixed";
+		regulator-name = "fixed-supply";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-always-on;
+	};
+};
+
+&gmac2 {
+	status = "okay";
+	phy-mode = "rgmii-id";
+	phy-handle = <&emac2_phy0>;
+
+	mdio0 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "snps,dwmac-mdio";
+		emac2_phy0: ethernet-phy@1 {
+			reg = <0x1>;
+		};
+	};
+};
+
+&gpio0 {
+	status = "okay";
+};
+
+&i2c0 {
+	status = "okay";
+};
+
+&i2c1 {
+	status = "okay";
+
+	i2c-mux@70 {
+		compatible = "nxp,pca9544";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		reg = <0x70>;
+		status = "okay";
+	};
+};
+
+&osc1 {
+	clock-frequency = <25000000>;
+};
+
+&qspi {
+	status = "okay";
+
+	flash@0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "micron,mt25qu02g", "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <100000000>;
+
+		m25p,fast-read;
+		cdns,read-delay = <2>;
+		cdns,tshsl-ns = <50>;
+		cdns,tsd2d-ns = <50>;
+		cdns,tchsh-ns = <4>;
+		cdns,tslch-ns = <4>;
+	};
+};
+
+&uart0 {
+	status = "okay";
+};

-- 
2.46.0


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

* Re: [PATCH v3 1/6] dt-bindings: net: dwmac: Convert socfpga dwmac to DT schema
  2024-12-05  9:06 ` [PATCH v3 1/6] dt-bindings: net: dwmac: Convert socfpga dwmac to DT schema Steffen Trumtrar
@ 2024-12-05 10:48   ` Rob Herring (Arm)
  2024-12-07 20:22   ` Andrew Lunn
  1 sibling, 0 replies; 12+ messages in thread
From: Rob Herring (Arm) @ 2024-12-05 10:48 UTC (permalink / raw)
  To: Steffen Trumtrar
  Cc: Conor Dooley, Krzysztof Kozlowski, Michael Turquette,
	linux-kernel, kernel, Richard Cochran, netdev, linux-clk,
	Dinh Nguyen, devicetree, Stephen Boyd


On Thu, 05 Dec 2024 10:06:01 +0100, Steffen Trumtrar wrote:
> Changes to the binding while converting:
> - add "snps,dwmac-3.7{0,2,4}a". They are used, but undocumented.
> - altr,f2h_ptp_ref_clk is not a required property but optional.
> 
> Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
> ---
>  .../devicetree/bindings/net/socfpga-dwmac.txt      |  57 ----------
>  .../devicetree/bindings/net/socfpga-dwmac.yaml     | 119 +++++++++++++++++++++
>  2 files changed, 119 insertions(+), 57 deletions(-)
> 

My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/socfpga-dwmac.yaml: 'oneOf' conditional failed, one must be fixed:
	'unevaluatedProperties' is a required property
	'additionalProperties' is a required property
	hint: Either unevaluatedProperties or additionalProperties must be present
	from schema $id: http://devicetree.org/meta-schemas/core.yaml#
Documentation/devicetree/bindings/net/socfpga-dwmac.example.dtb: /example-0/phy@100000240: failed to match any schema with compatible: ['altr,gmii-to-sgmii-2.0']
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/socfpga-dwmac.example.dtb: ethernet@ff700000: compatible: 'oneOf' conditional failed, one must be fixed:
	['altr,socfpga-stmmac', 'snps,dwmac-3.70a', 'snps,dwmac'] is too long
	'altr,socfpga-stmmac' is not one of ['altr,socfpga-stmmac-a10-s10']
	'snps,dwmac-3.72a' was expected
	'snps,dwmac-3.74a' was expected
	from schema $id: http://devicetree.org/schemas/net/socfpga-dwmac.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/socfpga-dwmac.example.dtb: ethernet@ff700000: phy-mode:0: 'sgmii' is not of type 'array'
	from schema $id: http://devicetree.org/schemas/net/socfpga-dwmac.yaml#

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20241205-v6-12-topic-socfpga-agilex5-v3-1-2a8cdf73f50a@pengutronix.de

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.


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

* Re: [PATCH v3 0/6] ARM64: dts: intel: agilex5: add nodes and new board
  2024-12-05  9:06 [PATCH v3 0/6] ARM64: dts: intel: agilex5: add nodes and new board Steffen Trumtrar
                   ` (5 preceding siblings ...)
  2024-12-05  9:06 ` [PATCH v3 6/6] arm64: dts: agilex5: initial support for " Steffen Trumtrar
@ 2024-12-06 22:13 ` Stephen Boyd
  2024-12-09  9:21   ` Steffen Trumtrar
  6 siblings, 1 reply; 12+ messages in thread
From: Stephen Boyd @ 2024-12-06 22:13 UTC (permalink / raw)
  To: Conor Dooley, Dinh Nguyen, Krzysztof Kozlowski, Michael Turquette,
	Richard Cochran, Rob Herring, Steffen Trumtrar
  Cc: devicetree, linux-kernel, netdev, linux-clk, kernel,
	Steffen Trumtrar, Krzysztof Kozlowski

Quoting Steffen Trumtrar (2024-12-05 01:06:00)
> This series adds the gpio0 and gmac nodes to the socfpga_agilex5.dtsi.
> As the the socfpga-dwmac binding is still in txt format, convert it to
> yaml, to pass dtb_checks.
> 
> An initial devicetree for a new board (Arrow AXE5-Eagle) is also added.
> Currently only QSPI and network are functional as all other hardware
> currently lacks mainline support.
> 
[...]
> Steffen Trumtrar (6):
>       dt-bindings: net: dwmac: Convert socfpga dwmac to DT schema
>       dt-bindings: net: dwmac: add compatible for Agilex5
>       arm64: dts: agilex5: add gmac nodes
>       arm64: dts: agilex5: add gpio0
>       dt-bindings: intel: add agilex5-based Arrow AXE5-Eagle
>       arm64: dts: agilex5: initial support for Arrow AXE5-Eagle
> 
>  .../devicetree/bindings/arm/intel,socfpga.yaml     |   1 +
>  .../devicetree/bindings/net/socfpga-dwmac.txt      |  57 ---------
>  .../devicetree/bindings/net/socfpga-dwmac.yaml     | 126 +++++++++++++++++++
>  arch/arm64/boot/dts/intel/Makefile                 |   1 +
>  arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi     | 109 ++++++++++++++++
>  .../boot/dts/intel/socfpga_agilex5_axe5_eagle.dts  | 140 +++++++++++++++++++++
>  6 files changed, 377 insertions(+), 57 deletions(-)

Why are clk framework maintainers Cced on this patch series?

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

* Re: [PATCH v3 1/6] dt-bindings: net: dwmac: Convert socfpga dwmac to DT schema
  2024-12-05  9:06 ` [PATCH v3 1/6] dt-bindings: net: dwmac: Convert socfpga dwmac to DT schema Steffen Trumtrar
  2024-12-05 10:48   ` Rob Herring (Arm)
@ 2024-12-07 20:22   ` Andrew Lunn
  1 sibling, 0 replies; 12+ messages in thread
From: Andrew Lunn @ 2024-12-07 20:22 UTC (permalink / raw)
  To: Steffen Trumtrar
  Cc: Dinh Nguyen, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Richard Cochran, Michael Turquette, Stephen Boyd, devicetree,
	linux-kernel, netdev, linux-clk, kernel

> +  phy-mode:
> +    $ref: /schemas/types.yaml#/definitions/phandle
> +    description:
> +      The phy mode the ethernet operates in.

I think you should be getting this via ethernet-controller.yaml. And
it is not a phandle.

> +
> +  altr,sgmii-to-sgmii-converter:
> +    $ref: /schemas/types.yaml#/definitions/phandle
> +    description:
> +      Phandle to the TSE SGMII converter.
> +
> +      This device node has additional phandle dependency, the sgmii converter
> +        - compatible that should be altr,gmii-to-sgmii-2.0
> +        - reg-names that should be "eth_tse_control_port"

Is this a PCS?


    Andrew

---
pw-bot: cr

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

* Re: [PATCH v3 6/6] arm64: dts: agilex5: initial support for Arrow AXE5-Eagle
  2024-12-05  9:06 ` [PATCH v3 6/6] arm64: dts: agilex5: initial support for " Steffen Trumtrar
@ 2024-12-07 20:26   ` Andrew Lunn
  0 siblings, 0 replies; 12+ messages in thread
From: Andrew Lunn @ 2024-12-07 20:26 UTC (permalink / raw)
  To: Steffen Trumtrar
  Cc: Dinh Nguyen, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Richard Cochran, Michael Turquette, Stephen Boyd, devicetree,
	linux-kernel, netdev, linux-clk, kernel, Krzysztof Kozlowski

>    - 2x 1Gb Ethernet

> +&gmac2 {
> +	status = "okay";
> +	phy-mode = "rgmii-id";
> +	phy-handle = <&emac2_phy0>;
> +
> +	mdio0 {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		compatible = "snps,dwmac-mdio";
> +		emac2_phy0: ethernet-phy@1 {
> +			reg = <0x1>;
> +		};
> +	};
> +};


No gmac1?

	Andrew

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

* Re: [PATCH v3 0/6] ARM64: dts: intel: agilex5: add nodes and new board
  2024-12-06 22:13 ` [PATCH v3 0/6] ARM64: dts: intel: agilex5: add nodes and new board Stephen Boyd
@ 2024-12-09  9:21   ` Steffen Trumtrar
  0 siblings, 0 replies; 12+ messages in thread
From: Steffen Trumtrar @ 2024-12-09  9:21 UTC (permalink / raw)
  To: Stephen Boyd
  Cc: Conor Dooley, Dinh Nguyen, Krzysztof Kozlowski, Michael Turquette,
	Richard Cochran, Rob Herring, devicetree, linux-kernel, netdev,
	linux-clk, kernel, Krzysztof Kozlowski

On 2024-12-06 at 14:13 -08, Stephen Boyd <sboyd@kernel.org> wrote:

> Quoting Steffen Trumtrar (2024-12-05 01:06:00)
> > This series adds the gpio0 and gmac nodes to the socfpga_agilex5.dtsi.
> > As the the socfpga-dwmac binding is still in txt format, convert it to
> > yaml, to pass dtb_checks.
> >
> > An initial devicetree for a new board (Arrow AXE5-Eagle) is also added.
> > Currently only QSPI and network are functional as all other hardware
> > currently lacks mainline support.
> >
> [...]
> > Steffen Trumtrar (6):
> >       dt-bindings: net: dwmac: Convert socfpga dwmac to DT schema
> >       dt-bindings: net: dwmac: add compatible for Agilex5
> >       arm64: dts: agilex5: add gmac nodes
> >       arm64: dts: agilex5: add gpio0
> >       dt-bindings: intel: add agilex5-based Arrow AXE5-Eagle
> >       arm64: dts: agilex5: initial support for Arrow AXE5-Eagle
> >
> >  .../devicetree/bindings/arm/intel,socfpga.yaml     |   1 +
> >  .../devicetree/bindings/net/socfpga-dwmac.txt      |  57 ---------
> >  .../devicetree/bindings/net/socfpga-dwmac.yaml     | 126 +++++++++++++++++++
> >  arch/arm64/boot/dts/intel/Makefile                 |   1 +
> >  arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi     | 109 ++++++++++++++++
> >  .../boot/dts/intel/socfpga_agilex5_axe5_eagle.dts  | 140 +++++++++++++++++++++
> >  6 files changed, 377 insertions(+), 57 deletions(-)
>
> Why are clk framework maintainers Cced on this patch series?

Oops, sorry for the noise. Forgot to update the Cc list :(


Best regards,
Steffen

--
Pengutronix e.K.                | Dipl.-Inform. Steffen Trumtrar |
Steuerwalder Str. 21            | https://www.pengutronix.de/    |
31137 Hildesheim, Germany       | Phone: +49-5121-206917-0       |
Amtsgericht Hildesheim, HRA 2686| Fax:   +49-5121-206917-5555    |

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

end of thread, other threads:[~2024-12-09  9:21 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-05  9:06 [PATCH v3 0/6] ARM64: dts: intel: agilex5: add nodes and new board Steffen Trumtrar
2024-12-05  9:06 ` [PATCH v3 1/6] dt-bindings: net: dwmac: Convert socfpga dwmac to DT schema Steffen Trumtrar
2024-12-05 10:48   ` Rob Herring (Arm)
2024-12-07 20:22   ` Andrew Lunn
2024-12-05  9:06 ` [PATCH v3 2/6] dt-bindings: net: dwmac: add compatible for Agilex5 Steffen Trumtrar
2024-12-05  9:06 ` [PATCH v3 3/6] arm64: dts: agilex5: add gmac nodes Steffen Trumtrar
2024-12-05  9:06 ` [PATCH v3 4/6] arm64: dts: agilex5: add gpio0 Steffen Trumtrar
2024-12-05  9:06 ` [PATCH v3 5/6] dt-bindings: intel: add agilex5-based Arrow AXE5-Eagle Steffen Trumtrar
2024-12-05  9:06 ` [PATCH v3 6/6] arm64: dts: agilex5: initial support for " Steffen Trumtrar
2024-12-07 20:26   ` Andrew Lunn
2024-12-06 22:13 ` [PATCH v3 0/6] ARM64: dts: intel: agilex5: add nodes and new board Stephen Boyd
2024-12-09  9:21   ` Steffen Trumtrar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).