Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / net / actions,owl-emac.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/net/actions,owl-emac.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Actions Semi Owl SoCs Ethernet MAC Controller
8
9 maintainers:
10   - Cristian Ciocaltea <cristian.ciocaltea@gmail.com>
11
12 description: |
13   This Ethernet MAC is used on the Owl family of SoCs from Actions Semi.
14   It provides the RMII and SMII interfaces and is compliant with the
15   IEEE 802.3 CSMA/CD standard, supporting both half-duplex and full-duplex
16   operation modes at 10/100 Mb/s data transfer rates.
17
18 allOf:
19   - $ref: ethernet-controller.yaml#
20
21 properties:
22   compatible:
23     oneOf:
24       - const: actions,owl-emac
25       - items:
26           - enum:
27               - actions,s500-emac
28           - const: actions,owl-emac
29
30   reg:
31     maxItems: 1
32
33   interrupts:
34     maxItems: 1
35
36   clocks:
37     minItems: 2
38     maxItems: 2
39
40   clock-names:
41     additionalItems: false
42     items:
43       - const: eth
44       - const: rmii
45
46   resets:
47     maxItems: 1
48
49   actions,ethcfg:
50     $ref: /schemas/types.yaml#/definitions/phandle
51     description:
52       Phandle to the device containing custom config.
53
54   mdio:
55     $ref: mdio.yaml#
56     unevaluatedProperties: false
57
58 required:
59   - compatible
60   - reg
61   - interrupts
62   - clocks
63   - clock-names
64   - resets
65   - phy-mode
66   - phy-handle
67
68 unevaluatedProperties: false
69
70 examples:
71   - |
72     #include <dt-bindings/clock/actions,s500-cmu.h>
73     #include <dt-bindings/interrupt-controller/arm-gic.h>
74     #include <dt-bindings/reset/actions,s500-reset.h>
75
76     ethernet@b0310000 {
77         compatible = "actions,s500-emac", "actions,owl-emac";
78         reg = <0xb0310000 0x10000>;
79         interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
80         clocks = <&cmu 59 /*CLK_ETHERNET*/>, <&cmu CLK_RMII_REF>;
81         clock-names = "eth", "rmii";
82         resets = <&cmu RESET_ETHERNET>;
83         phy-mode = "rmii";
84         phy-handle = <&eth_phy>;
85
86         mdio {
87             #address-cells = <1>;
88             #size-cells = <0>;
89
90             eth_phy: ethernet-phy@3 {
91                 reg = <0x3>;
92                 interrupt-parent = <&sirq>;
93                 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
94             };
95         };
96     };