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