xref: /linux/Documentation/devicetree/bindings/net/thead,th1520-gmac.yaml (revision 6f17ab9a63e670bd62a287f95e3982f99eafd77e)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/thead,th1520-gmac.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: T-HEAD TH1520 GMAC Ethernet controller
8
9maintainers:
10  - Drew Fustini <dfustini@tenstorrent.com>
11
12description: |
13  The TH1520 GMAC is described in the TH1520 Peripheral Interface User Manual
14  https://git.beagleboard.org/beaglev-ahead/beaglev-ahead/-/tree/main/docs
15
16  Features include
17    - Compliant with IEEE802.3 Specification
18    - IEEE 1588-2008 standard for precision networked clock synchronization
19    - Supports 10/100/1000Mbps data transfer rate
20    - Supports RGMII/MII interface
21    - Preamble and start of frame data (SFD) insertion in Transmit path
22    - Preamble and SFD deletion in the Receive path
23    - Automatic CRC and pad generation options for receive frames
24    - MDIO master interface for PHY device configuration and management
25
26  The GMAC Registers consists of two parts
27    - APB registers are used to configure clock frequency/clock enable/clock
28      direction/PHY interface type.
29    - AHB registers are use to configure GMAC core (DesignWare Core part).
30      GMAC core register consists of DMA registers and GMAC registers.
31
32select:
33  properties:
34    compatible:
35      contains:
36        enum:
37          - thead,th1520-gmac
38  required:
39    - compatible
40
41allOf:
42  - $ref: snps,dwmac.yaml#
43
44properties:
45  compatible:
46    items:
47      - enum:
48          - thead,th1520-gmac
49      - const: snps,dwmac-3.70a
50
51  reg:
52    items:
53      - description: DesignWare GMAC IP core registers
54      - description: GMAC APB registers
55
56  reg-names:
57    items:
58      - const: dwmac
59      - const: apb
60
61  clocks:
62    items:
63      - description: GMAC main clock
64      - description: Peripheral registers interface clock
65      - description: APB glue registers interface clock
66
67  clock-names:
68    items:
69      - const: stmmaceth
70      - const: pclk
71      - const: apb
72
73  interrupts:
74    items:
75      - description: Combined signal for various interrupt events
76
77  interrupt-names:
78    items:
79      - const: macirq
80
81required:
82  - clocks
83  - clock-names
84
85unevaluatedProperties: false
86
87examples:
88  - |
89    gmac0: ethernet@e7070000 {
90        compatible = "thead,th1520-gmac", "snps,dwmac-3.70a";
91        reg = <0xe7070000 0x2000>, <0xec003000 0x1000>;
92        reg-names = "dwmac", "apb";
93        clocks = <&clk 1>, <&clk 2>, <&clk 3>;
94        clock-names = "stmmaceth", "pclk", "apb";
95        interrupts = <66>;
96        interrupt-names = "macirq";
97        phy-mode = "rgmii-id";
98        snps,fixed-burst;
99        snps,axi-config = <&stmmac_axi_setup>;
100        snps,pbl = <32>;
101        phy-handle = <&phy0>;
102
103        mdio {
104            #address-cells = <1>;
105            #size-cells = <0>;
106            compatible = "snps,dwmac-mdio";
107
108            phy0: ethernet-phy@0 {
109                reg = <0>;
110            };
111        };
112    };
113