1*82fc0f87SNeil Armstrong# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*82fc0f87SNeil Armstrong%YAML 1.2
3*82fc0f87SNeil Armstrong---
4*82fc0f87SNeil Armstrong$id: http://devicetree.org/schemas/net/amlogic,g12a-mdio-mux.yaml#
5*82fc0f87SNeil Armstrong$schema: http://devicetree.org/meta-schemas/core.yaml#
6*82fc0f87SNeil Armstrong
7*82fc0f87SNeil Armstrongtitle: MDIO bus multiplexer/glue of Amlogic G12a SoC family
8*82fc0f87SNeil Armstrong
9*82fc0f87SNeil Armstrongdescription:
10*82fc0f87SNeil Armstrong  This is a special case of a MDIO bus multiplexer. It allows to choose between
11*82fc0f87SNeil Armstrong  the internal mdio bus leading to the embedded 10/100 PHY or the external
12*82fc0f87SNeil Armstrong  MDIO bus.
13*82fc0f87SNeil Armstrong
14*82fc0f87SNeil Armstrongmaintainers:
15*82fc0f87SNeil Armstrong  - Neil Armstrong <neil.armstrong@linaro.org>
16*82fc0f87SNeil Armstrong
17*82fc0f87SNeil ArmstrongallOf:
18*82fc0f87SNeil Armstrong  - $ref: mdio-mux.yaml#
19*82fc0f87SNeil Armstrong
20*82fc0f87SNeil Armstrongproperties:
21*82fc0f87SNeil Armstrong  compatible:
22*82fc0f87SNeil Armstrong    const: amlogic,g12a-mdio-mux
23*82fc0f87SNeil Armstrong
24*82fc0f87SNeil Armstrong  reg:
25*82fc0f87SNeil Armstrong    maxItems: 1
26*82fc0f87SNeil Armstrong
27*82fc0f87SNeil Armstrong  clocks:
28*82fc0f87SNeil Armstrong    items:
29*82fc0f87SNeil Armstrong      - description: peripheral clock
30*82fc0f87SNeil Armstrong      - description: platform crytal
31*82fc0f87SNeil Armstrong      - description: SoC 50MHz MPLL
32*82fc0f87SNeil Armstrong
33*82fc0f87SNeil Armstrong  clock-names:
34*82fc0f87SNeil Armstrong    items:
35*82fc0f87SNeil Armstrong      - const: pclk
36*82fc0f87SNeil Armstrong      - const: clkin0
37*82fc0f87SNeil Armstrong      - const: clkin1
38*82fc0f87SNeil Armstrong
39*82fc0f87SNeil Armstrongrequired:
40*82fc0f87SNeil Armstrong  - compatible
41*82fc0f87SNeil Armstrong  - reg
42*82fc0f87SNeil Armstrong  - clocks
43*82fc0f87SNeil Armstrong  - clock-names
44*82fc0f87SNeil Armstrong
45*82fc0f87SNeil ArmstrongunevaluatedProperties: false
46*82fc0f87SNeil Armstrong
47*82fc0f87SNeil Armstrongexamples:
48*82fc0f87SNeil Armstrong  - |
49*82fc0f87SNeil Armstrong    #include <dt-bindings/interrupt-controller/irq.h>
50*82fc0f87SNeil Armstrong    #include <dt-bindings/interrupt-controller/arm-gic.h>
51*82fc0f87SNeil Armstrong    mdio-multiplexer@4c000 {
52*82fc0f87SNeil Armstrong        compatible = "amlogic,g12a-mdio-mux";
53*82fc0f87SNeil Armstrong        reg = <0x4c000 0xa4>;
54*82fc0f87SNeil Armstrong        clocks = <&clkc_eth_phy>, <&xtal>, <&clkc_mpll>;
55*82fc0f87SNeil Armstrong        clock-names = "pclk", "clkin0", "clkin1";
56*82fc0f87SNeil Armstrong        mdio-parent-bus = <&mdio0>;
57*82fc0f87SNeil Armstrong        #address-cells = <1>;
58*82fc0f87SNeil Armstrong        #size-cells = <0>;
59*82fc0f87SNeil Armstrong
60*82fc0f87SNeil Armstrong        mdio@0 {
61*82fc0f87SNeil Armstrong            reg = <0>;
62*82fc0f87SNeil Armstrong            #address-cells = <1>;
63*82fc0f87SNeil Armstrong            #size-cells = <0>;
64*82fc0f87SNeil Armstrong        };
65*82fc0f87SNeil Armstrong
66*82fc0f87SNeil Armstrong        mdio@1 {
67*82fc0f87SNeil Armstrong            reg = <1>;
68*82fc0f87SNeil Armstrong            #address-cells = <1>;
69*82fc0f87SNeil Armstrong            #size-cells = <0>;
70*82fc0f87SNeil Armstrong
71*82fc0f87SNeil Armstrong            ethernet-phy@8 {
72*82fc0f87SNeil Armstrong                compatible = "ethernet-phy-id0180.3301",
73*82fc0f87SNeil Armstrong                             "ethernet-phy-ieee802.3-c22";
74*82fc0f87SNeil Armstrong                interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
75*82fc0f87SNeil Armstrong                reg = <8>;
76*82fc0f87SNeil Armstrong                max-speed = <100>;
77*82fc0f87SNeil Armstrong            };
78*82fc0f87SNeil Armstrong        };
79*82fc0f87SNeil Armstrong    };
80*82fc0f87SNeil Armstrong...
81