# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/net/thead,th1520-gmac.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: T-HEAD TH1520 GMAC Ethernet controller maintainers: - Drew Fustini description: | The TH1520 GMAC is described in the TH1520 Peripheral Interface User Manual https://git.beagleboard.org/beaglev-ahead/beaglev-ahead/-/tree/main/docs Features include - Compliant with IEEE802.3 Specification - IEEE 1588-2008 standard for precision networked clock synchronization - Supports 10/100/1000Mbps data transfer rate - Supports RGMII/MII interface - Preamble and start of frame data (SFD) insertion in Transmit path - Preamble and SFD deletion in the Receive path - Automatic CRC and pad generation options for receive frames - MDIO master interface for PHY device configuration and management The GMAC Registers consists of two parts - APB registers are used to configure clock frequency/clock enable/clock direction/PHY interface type. - AHB registers are use to configure GMAC core (DesignWare Core part). GMAC core register consists of DMA registers and GMAC registers. select: properties: compatible: contains: enum: - thead,th1520-gmac required: - compatible allOf: - $ref: snps,dwmac.yaml# properties: compatible: items: - enum: - thead,th1520-gmac - const: snps,dwmac-3.70a reg: items: - description: DesignWare GMAC IP core registers - description: GMAC APB registers reg-names: items: - const: dwmac - const: apb clocks: items: - description: GMAC main clock - description: Peripheral registers interface clock clock-names: items: - const: stmmaceth - const: pclk interrupts: items: - description: Combined signal for various interrupt events interrupt-names: items: - const: macirq required: - clocks - clock-names unevaluatedProperties: false examples: - | gmac0: ethernet@e7070000 { compatible = "thead,th1520-gmac", "snps,dwmac-3.70a"; reg = <0xe7070000 0x2000>, <0xec003000 0x1000>; reg-names = "dwmac", "apb"; clocks = <&clk 1>, <&clk 2>; clock-names = "stmmaceth", "pclk"; interrupts = <66>; interrupt-names = "macirq"; phy-mode = "rgmii-id"; snps,fixed-burst; snps,axi-config = <&stmmac_axi_setup>; snps,pbl = <32>; phy-handle = <&phy0>; mdio { #address-cells = <1>; #size-cells = <0>; compatible = "snps,dwmac-mdio"; phy0: ethernet-phy@0 { reg = <0>; }; }; };