| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| # Copyright (C) 2022 StarFive Technology Co., Ltd. |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/net/starfive,jh7110-dwmac.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: StarFive JH7110 DWMAC glue layer |
| |
| maintainers: |
| - Emil Renner Berthing <kernel@esmil.dk> |
| - Samin Guo <samin.guo@starfivetech.com> |
| |
| select: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - starfive,jh7100-dwmac |
| - starfive,jh7110-dwmac |
| required: |
| - compatible |
| |
| properties: |
| compatible: |
| oneOf: |
| - items: |
| - const: starfive,jh7100-dwmac |
| - const: snps,dwmac |
| - items: |
| - const: starfive,jh7110-dwmac |
| - const: snps,dwmac-5.20 |
| - items: |
| - const: starfive,jh8100-dwmac |
| - const: starfive,jh7110-dwmac |
| - const: snps,dwmac-5.20 |
| |
| reg: |
| maxItems: 1 |
| |
| clocks: |
| items: |
| - description: GMAC main clock |
| - description: GMAC AHB clock |
| - description: PTP clock |
| - description: TX clock |
| - description: GTX clock |
| |
| clock-names: |
| items: |
| - const: stmmaceth |
| - const: pclk |
| - const: ptp_ref |
| - const: tx |
| - const: gtx |
| |
| starfive,tx-use-rgmii-clk: |
| description: |
| Tx clock is provided by external rgmii clock. |
| type: boolean |
| |
| starfive,syscon: |
| $ref: /schemas/types.yaml#/definitions/phandle-array |
| items: |
| - items: |
| - description: phandle to syscon that configures phy mode |
| - description: Offset of phy mode selection |
| - description: Shift of phy mode selection |
| description: |
| A phandle to syscon with two arguments that configure phy mode. |
| The argument one is the offset of phy mode selection, the |
| argument two is the shift of phy mode selection. |
| |
| required: |
| - compatible |
| - reg |
| - clocks |
| - clock-names |
| - interrupts |
| - interrupt-names |
| - resets |
| - reset-names |
| |
| allOf: |
| - $ref: snps,dwmac.yaml# |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: starfive,jh7100-dwmac |
| then: |
| properties: |
| interrupts: |
| minItems: 2 |
| maxItems: 2 |
| |
| interrupt-names: |
| minItems: 2 |
| maxItems: 2 |
| |
| resets: |
| maxItems: 1 |
| |
| reset-names: |
| const: ahb |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: starfive,jh7110-dwmac |
| then: |
| properties: |
| interrupts: |
| minItems: 3 |
| maxItems: 3 |
| |
| interrupt-names: |
| minItems: 3 |
| maxItems: 3 |
| |
| if: |
| properties: |
| compatible: |
| contains: |
| const: starfive,jh8100-dwmac |
| then: |
| properties: |
| resets: |
| maxItems: 1 |
| |
| reset-names: |
| const: stmmaceth |
| else: |
| properties: |
| resets: |
| minItems: 2 |
| |
| reset-names: |
| minItems: 2 |
| |
| unevaluatedProperties: false |
| |
| examples: |
| - | |
| ethernet@16030000 { |
| compatible = "starfive,jh7110-dwmac", "snps,dwmac-5.20"; |
| reg = <0x16030000 0x10000>; |
| clocks = <&clk 3>, <&clk 2>, <&clk 109>, |
| <&clk 6>, <&clk 111>; |
| clock-names = "stmmaceth", "pclk", "ptp_ref", |
| "tx", "gtx"; |
| resets = <&rst 1>, <&rst 2>; |
| reset-names = "stmmaceth", "ahb"; |
| interrupts = <7>, <6>, <5>; |
| interrupt-names = "macirq", "eth_wake_irq", "eth_lpi"; |
| phy-mode = "rgmii-id"; |
| snps,multicast-filter-bins = <64>; |
| snps,perfect-filter-entries = <8>; |
| rx-fifo-depth = <2048>; |
| tx-fifo-depth = <2048>; |
| snps,fixed-burst; |
| snps,no-pbl-x8; |
| snps,tso; |
| snps,force_thresh_dma_mode; |
| snps,axi-config = <&stmmac_axi_setup>; |
| snps,en-tx-lpi-clockgating; |
| snps,txpbl = <16>; |
| snps,rxpbl = <16>; |
| starfive,syscon = <&aon_syscon 0xc 0x12>; |
| phy-handle = <&phy0>; |
| |
| mdio { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| compatible = "snps,dwmac-mdio"; |
| |
| phy0: ethernet-phy@0 { |
| reg = <0>; |
| }; |
| }; |
| |
| stmmac_axi_setup: stmmac-axi-config { |
| snps,lpi_en; |
| snps,wr_osr_lmt = <4>; |
| snps,rd_osr_lmt = <4>; |
| snps,blen = <256 128 64 32 0 0 0>; |
| }; |
| }; |