1*19373d02SGeert Uytterhoeven# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*19373d02SGeert Uytterhoeven%YAML 1.2
3*19373d02SGeert Uytterhoeven---
4*19373d02SGeert Uytterhoeven$id: http://devicetree.org/schemas/net/smsc,lan9115.yaml#
5*19373d02SGeert Uytterhoeven$schema: http://devicetree.org/meta-schemas/core.yaml#
6*19373d02SGeert Uytterhoeven
7*19373d02SGeert Uytterhoeventitle: Smart Mixed-Signal Connectivity (SMSC) LAN911x/912x Controller
8*19373d02SGeert Uytterhoeven
9*19373d02SGeert Uytterhoevenmaintainers:
10*19373d02SGeert Uytterhoeven  - Shawn Guo <shawnguo@kernel.org>
11*19373d02SGeert Uytterhoeven
12*19373d02SGeert UytterhoevenallOf:
13*19373d02SGeert Uytterhoeven  - $ref: ethernet-controller.yaml#
14*19373d02SGeert Uytterhoeven
15*19373d02SGeert Uytterhoevenproperties:
16*19373d02SGeert Uytterhoeven  compatible:
17*19373d02SGeert Uytterhoeven    oneOf:
18*19373d02SGeert Uytterhoeven      - const: smsc,lan9115
19*19373d02SGeert Uytterhoeven      - items:
20*19373d02SGeert Uytterhoeven          - enum:
21*19373d02SGeert Uytterhoeven              - smsc,lan89218
22*19373d02SGeert Uytterhoeven              - smsc,lan9117
23*19373d02SGeert Uytterhoeven              - smsc,lan9118
24*19373d02SGeert Uytterhoeven              - smsc,lan9220
25*19373d02SGeert Uytterhoeven              - smsc,lan9221
26*19373d02SGeert Uytterhoeven          - const: smsc,lan9115
27*19373d02SGeert Uytterhoeven
28*19373d02SGeert Uytterhoeven  reg:
29*19373d02SGeert Uytterhoeven    maxItems: 1
30*19373d02SGeert Uytterhoeven
31*19373d02SGeert Uytterhoeven  reg-shift: true
32*19373d02SGeert Uytterhoeven
33*19373d02SGeert Uytterhoeven  reg-io-width:
34*19373d02SGeert Uytterhoeven    enum: [ 2, 4 ]
35*19373d02SGeert Uytterhoeven    default: 2
36*19373d02SGeert Uytterhoeven
37*19373d02SGeert Uytterhoeven  interrupts:
38*19373d02SGeert Uytterhoeven    minItems: 1
39*19373d02SGeert Uytterhoeven    items:
40*19373d02SGeert Uytterhoeven      - description:
41*19373d02SGeert Uytterhoeven          LAN interrupt line
42*19373d02SGeert Uytterhoeven      - description:
43*19373d02SGeert Uytterhoeven          Optional PME (power management event) interrupt that is able to wake
44*19373d02SGeert Uytterhoeven          up the host system with a 50ms pulse on network activity
45*19373d02SGeert Uytterhoeven
46*19373d02SGeert Uytterhoeven  clocks:
47*19373d02SGeert Uytterhoeven    maxItems: 1
48*19373d02SGeert Uytterhoeven
49*19373d02SGeert Uytterhoeven  phy-mode: true
50*19373d02SGeert Uytterhoeven
51*19373d02SGeert Uytterhoeven  smsc,irq-active-high:
52*19373d02SGeert Uytterhoeven    type: boolean
53*19373d02SGeert Uytterhoeven    description: Indicates the IRQ polarity is active-high
54*19373d02SGeert Uytterhoeven
55*19373d02SGeert Uytterhoeven  smsc,irq-push-pull:
56*19373d02SGeert Uytterhoeven    type: boolean
57*19373d02SGeert Uytterhoeven    description: Indicates the IRQ type is push-pull
58*19373d02SGeert Uytterhoeven
59*19373d02SGeert Uytterhoeven  smsc,force-internal-phy:
60*19373d02SGeert Uytterhoeven    type: boolean
61*19373d02SGeert Uytterhoeven    description: Forces SMSC LAN controller to use internal PHY
62*19373d02SGeert Uytterhoeven
63*19373d02SGeert Uytterhoeven  smsc,force-external-phy:
64*19373d02SGeert Uytterhoeven    type: boolean
65*19373d02SGeert Uytterhoeven    description: Forces SMSC LAN controller to use external PHY
66*19373d02SGeert Uytterhoeven
67*19373d02SGeert Uytterhoeven  smsc,save-mac-address:
68*19373d02SGeert Uytterhoeven    type: boolean
69*19373d02SGeert Uytterhoeven    description:
70*19373d02SGeert Uytterhoeven      Indicates that MAC address needs to be saved before resetting the
71*19373d02SGeert Uytterhoeven      controller
72*19373d02SGeert Uytterhoeven
73*19373d02SGeert Uytterhoeven  reset-gpios:
74*19373d02SGeert Uytterhoeven    maxItems: 1
75*19373d02SGeert Uytterhoeven    description:
76*19373d02SGeert Uytterhoeven      A GPIO line connected to the RESET (active low) signal of the device.
77*19373d02SGeert Uytterhoeven      On many systems this is wired high so the device goes out of reset at
78*19373d02SGeert Uytterhoeven      power-on, but if it is under program control, this optional GPIO can
79*19373d02SGeert Uytterhoeven      wake up in response to it.
80*19373d02SGeert Uytterhoeven
81*19373d02SGeert Uytterhoeven  vdd33a-supply:
82*19373d02SGeert Uytterhoeven    description: 3.3V analog power supply
83*19373d02SGeert Uytterhoeven
84*19373d02SGeert Uytterhoeven  vddvario-supply:
85*19373d02SGeert Uytterhoeven    description: IO logic power supply
86*19373d02SGeert Uytterhoeven
87*19373d02SGeert Uytterhoevenrequired:
88*19373d02SGeert Uytterhoeven  - compatible
89*19373d02SGeert Uytterhoeven  - reg
90*19373d02SGeert Uytterhoeven  - interrupts
91*19373d02SGeert Uytterhoeven
92*19373d02SGeert Uytterhoeven# There are lots of bus-specific properties ("qcom,*", "samsung,*", "fsl,*",
93*19373d02SGeert Uytterhoeven# "gpmc,*", ...) to be found, that actually depend on the compatible value of
94*19373d02SGeert Uytterhoeven# the parent node.
95*19373d02SGeert UytterhoevenadditionalProperties: true
96*19373d02SGeert Uytterhoeven
97*19373d02SGeert Uytterhoevenexamples:
98*19373d02SGeert Uytterhoeven  - |
99*19373d02SGeert Uytterhoeven    #include <dt-bindings/gpio/gpio.h>
100*19373d02SGeert Uytterhoeven
101*19373d02SGeert Uytterhoeven    ethernet@f4000000 {
102*19373d02SGeert Uytterhoeven            compatible = "smsc,lan9220", "smsc,lan9115";
103*19373d02SGeert Uytterhoeven            reg = <0xf4000000 0x2000000>;
104*19373d02SGeert Uytterhoeven            phy-mode = "mii";
105*19373d02SGeert Uytterhoeven            interrupt-parent = <&gpio1>;
106*19373d02SGeert Uytterhoeven            interrupts = <31>, <32>;
107*19373d02SGeert Uytterhoeven            reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
108*19373d02SGeert Uytterhoeven            reg-io-width = <4>;
109*19373d02SGeert Uytterhoeven            smsc,irq-push-pull;
110*19373d02SGeert Uytterhoeven    };
111