1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/loongson,ls1c-emac.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Loongson-1C Ethernet MAC Controller
8
9maintainers:
10  - Keguang Zhang <keguang.zhang@gmail.com>
11
12description: |
13  Loongson-1C Ethernet MAC Controller is based on
14  Synopsys DesignWare MAC (version 3.50a).
15
16  Main features
17  - 10/100Mbps
18  - Full-duplex operation (IEEE 802.3x flow control automatic transmission)
19  - Half-duplex operation (CSMA/CD Protocol and back-pressure support)
20  - IEEE 802.1Q VLAN tag detection for reception frames
21  - MII interface
22  - RMII interface
23
24select:
25  properties:
26    compatible:
27      contains:
28        enum:
29          - loongson,ls1c-emac
30  required:
31    - compatible
32
33properties:
34  compatible:
35    items:
36      - enum:
37          - loongson,ls1c-emac
38      - const: snps,dwmac-3.50a
39
40  reg:
41    maxItems: 1
42
43  clocks:
44    maxItems: 1
45
46  clock-names:
47    items:
48      - const: stmmaceth
49
50  interrupts:
51    maxItems: 1
52
53  interrupt-names:
54    items:
55      - const: macirq
56
57  loongson,ls1-syscon:
58    $ref: /schemas/types.yaml#/definitions/phandle
59    description:
60      Phandle to the syscon containing some extra configurations
61      including PHY interface mode.
62
63  phy-mode:
64    enum:
65      - mii
66      - rmii
67
68required:
69  - compatible
70  - reg
71  - clocks
72  - clock-names
73  - interrupts
74  - interrupt-names
75  - loongson,ls1-syscon
76
77allOf:
78  - $ref: snps,dwmac.yaml#
79
80unevaluatedProperties: false
81
82examples:
83  - |
84    #include <dt-bindings/clock/loongson,ls1x-clk.h>
85    #include <dt-bindings/interrupt-controller/irq.h>
86
87    emac: ethernet@1fe10000 {
88        compatible = "loongson,ls1c-emac", "snps,dwmac-3.50a";
89        reg = <0x1fe10000 0x10000>;
90
91        clocks = <&clkc LS1X_CLKID_AHB>;
92        clock-names = "stmmaceth";
93
94        interrupt-parent = <&intc1>;
95        interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
96        interrupt-names = "macirq";
97
98        loongson,ls1-syscon = <&syscon>;
99
100        phy-handle = <&phy0>;
101        phy-mode = "mii";
102        snps,pbl = <1>;
103
104        mdio {
105            #address-cells = <1>;
106            #size-cells = <0>;
107            compatible = "snps,dwmac-mdio";
108
109            phy0: ethernet-phy@13 {
110                reg = <0x13>;
111            };
112        };
113    };
114