xref: /freebsd/sys/contrib/device-tree/Bindings/net/thead,th1520-gmac.yaml (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
15f62a964SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
25f62a964SEmmanuel Vadot%YAML 1.2
35f62a964SEmmanuel Vadot---
45f62a964SEmmanuel Vadot$id: http://devicetree.org/schemas/net/thead,th1520-gmac.yaml#
55f62a964SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
65f62a964SEmmanuel Vadot
75f62a964SEmmanuel Vadottitle: T-HEAD TH1520 GMAC Ethernet controller
85f62a964SEmmanuel Vadot
95f62a964SEmmanuel Vadotmaintainers:
105f62a964SEmmanuel Vadot  - Drew Fustini <dfustini@tenstorrent.com>
115f62a964SEmmanuel Vadot
125f62a964SEmmanuel Vadotdescription: |
135f62a964SEmmanuel Vadot  The TH1520 GMAC is described in the TH1520 Peripheral Interface User Manual
145f62a964SEmmanuel Vadot  https://git.beagleboard.org/beaglev-ahead/beaglev-ahead/-/tree/main/docs
155f62a964SEmmanuel Vadot
165f62a964SEmmanuel Vadot  Features include
175f62a964SEmmanuel Vadot    - Compliant with IEEE802.3 Specification
185f62a964SEmmanuel Vadot    - IEEE 1588-2008 standard for precision networked clock synchronization
195f62a964SEmmanuel Vadot    - Supports 10/100/1000Mbps data transfer rate
205f62a964SEmmanuel Vadot    - Supports RGMII/MII interface
215f62a964SEmmanuel Vadot    - Preamble and start of frame data (SFD) insertion in Transmit path
225f62a964SEmmanuel Vadot    - Preamble and SFD deletion in the Receive path
235f62a964SEmmanuel Vadot    - Automatic CRC and pad generation options for receive frames
245f62a964SEmmanuel Vadot    - MDIO master interface for PHY device configuration and management
255f62a964SEmmanuel Vadot
265f62a964SEmmanuel Vadot  The GMAC Registers consists of two parts
275f62a964SEmmanuel Vadot    - APB registers are used to configure clock frequency/clock enable/clock
285f62a964SEmmanuel Vadot      direction/PHY interface type.
295f62a964SEmmanuel Vadot    - AHB registers are use to configure GMAC core (DesignWare Core part).
305f62a964SEmmanuel Vadot      GMAC core register consists of DMA registers and GMAC registers.
315f62a964SEmmanuel Vadot
325f62a964SEmmanuel Vadotselect:
335f62a964SEmmanuel Vadot  properties:
345f62a964SEmmanuel Vadot    compatible:
355f62a964SEmmanuel Vadot      contains:
365f62a964SEmmanuel Vadot        enum:
375f62a964SEmmanuel Vadot          - thead,th1520-gmac
385f62a964SEmmanuel Vadot  required:
395f62a964SEmmanuel Vadot    - compatible
405f62a964SEmmanuel Vadot
415f62a964SEmmanuel VadotallOf:
425f62a964SEmmanuel Vadot  - $ref: snps,dwmac.yaml#
435f62a964SEmmanuel Vadot
445f62a964SEmmanuel Vadotproperties:
455f62a964SEmmanuel Vadot  compatible:
465f62a964SEmmanuel Vadot    items:
475f62a964SEmmanuel Vadot      - enum:
485f62a964SEmmanuel Vadot          - thead,th1520-gmac
495f62a964SEmmanuel Vadot      - const: snps,dwmac-3.70a
505f62a964SEmmanuel Vadot
515f62a964SEmmanuel Vadot  reg:
525f62a964SEmmanuel Vadot    items:
535f62a964SEmmanuel Vadot      - description: DesignWare GMAC IP core registers
545f62a964SEmmanuel Vadot      - description: GMAC APB registers
555f62a964SEmmanuel Vadot
565f62a964SEmmanuel Vadot  reg-names:
575f62a964SEmmanuel Vadot    items:
585f62a964SEmmanuel Vadot      - const: dwmac
595f62a964SEmmanuel Vadot      - const: apb
605f62a964SEmmanuel Vadot
615f62a964SEmmanuel Vadot  clocks:
625f62a964SEmmanuel Vadot    items:
635f62a964SEmmanuel Vadot      - description: GMAC main clock
645f62a964SEmmanuel Vadot      - description: Peripheral registers interface clock
65*833e5d42SEmmanuel Vadot      - description: APB glue registers interface clock
665f62a964SEmmanuel Vadot
675f62a964SEmmanuel Vadot  clock-names:
685f62a964SEmmanuel Vadot    items:
695f62a964SEmmanuel Vadot      - const: stmmaceth
705f62a964SEmmanuel Vadot      - const: pclk
71*833e5d42SEmmanuel Vadot      - const: apb
725f62a964SEmmanuel Vadot
735f62a964SEmmanuel Vadot  interrupts:
745f62a964SEmmanuel Vadot    items:
755f62a964SEmmanuel Vadot      - description: Combined signal for various interrupt events
765f62a964SEmmanuel Vadot
775f62a964SEmmanuel Vadot  interrupt-names:
785f62a964SEmmanuel Vadot    items:
795f62a964SEmmanuel Vadot      - const: macirq
805f62a964SEmmanuel Vadot
815f62a964SEmmanuel Vadotrequired:
825f62a964SEmmanuel Vadot  - clocks
835f62a964SEmmanuel Vadot  - clock-names
845f62a964SEmmanuel Vadot
855f62a964SEmmanuel VadotunevaluatedProperties: false
865f62a964SEmmanuel Vadot
875f62a964SEmmanuel Vadotexamples:
885f62a964SEmmanuel Vadot  - |
895f62a964SEmmanuel Vadot    gmac0: ethernet@e7070000 {
905f62a964SEmmanuel Vadot        compatible = "thead,th1520-gmac", "snps,dwmac-3.70a";
915f62a964SEmmanuel Vadot        reg = <0xe7070000 0x2000>, <0xec003000 0x1000>;
925f62a964SEmmanuel Vadot        reg-names = "dwmac", "apb";
93*833e5d42SEmmanuel Vadot        clocks = <&clk 1>, <&clk 2>, <&clk 3>;
94*833e5d42SEmmanuel Vadot        clock-names = "stmmaceth", "pclk", "apb";
955f62a964SEmmanuel Vadot        interrupts = <66>;
965f62a964SEmmanuel Vadot        interrupt-names = "macirq";
975f62a964SEmmanuel Vadot        phy-mode = "rgmii-id";
985f62a964SEmmanuel Vadot        snps,fixed-burst;
995f62a964SEmmanuel Vadot        snps,axi-config = <&stmmac_axi_setup>;
1005f62a964SEmmanuel Vadot        snps,pbl = <32>;
1015f62a964SEmmanuel Vadot        phy-handle = <&phy0>;
1025f62a964SEmmanuel Vadot
1035f62a964SEmmanuel Vadot        mdio {
1045f62a964SEmmanuel Vadot            #address-cells = <1>;
1055f62a964SEmmanuel Vadot            #size-cells = <0>;
1065f62a964SEmmanuel Vadot            compatible = "snps,dwmac-mdio";
1075f62a964SEmmanuel Vadot
1085f62a964SEmmanuel Vadot            phy0: ethernet-phy@0 {
1095f62a964SEmmanuel Vadot                reg = <0>;
1105f62a964SEmmanuel Vadot            };
1115f62a964SEmmanuel Vadot        };
1125f62a964SEmmanuel Vadot    };
113