blob: 7ef9dbb08957a593528a4d873d1f3af29892f5c2 [file] [log] [blame]
Andrew Lunn14c7b3c2016-05-10 23:27:21 +02001Marvell DSA Switch Device Tree Bindings
2---------------------------------------
3
4WARNING: This binding is currently unstable. Do not program it into a
5FLASH never to be changed again. Once this binding is stable, this
6warning will be removed.
7
8If you need a stable binding, use the old dsa.txt binding.
9
10Marvell Switches are MDIO devices. The following properties should be
11placed as a child node of an mdio device.
12
Andrew Lunn52638f72016-05-10 23:27:22 +020013The properties described here are those specific to Marvell devices.
14Additional required and optional properties can be found in dsa.txt.
15
Andrew Lunn14c7b3c2016-05-10 23:27:21 +020016Required properties:
Andrew Lunnd2345592017-01-25 02:44:48 +010017- compatible : Should be one of "marvell,mv88e6085" or
18 "marvell,mv88e6190"
19- reg : Address on the MII bus for the switch.
Andrew Lunn14c7b3c2016-05-10 23:27:21 +020020
Andrew Lunn52638f72016-05-10 23:27:22 +020021Optional properties:
22
23- reset-gpios : Should be a gpio specifier for a reset line
Andrew Lunndc30c352016-10-16 19:56:49 +020024- interrupt-parent : Parent interrupt controller
25- interrupts : Interrupt from the switch
26- interrupt-controller : Indicates the switch is itself an interrupt
27 controller. This is used for the PHY interrupts.
28#interrupt-cells = <2> : Controller uses two cells, number and flag
Andrew Lunna3c53be2017-01-24 14:53:50 +010029- mdio : Container of PHY and devices on the switches MDIO
30 bus.
Andrew Lunnd2345592017-01-25 02:44:48 +010031- mdio? : Container of PHYs and devices on the external MDIO
Andrew Lunna3c53be2017-01-24 14:53:50 +010032 bus. The node must contains a compatible string of
33 "marvell,mv88e6xxx-mdio-external"
34
Andrew Lunn14c7b3c2016-05-10 23:27:21 +020035Example:
36
Andrew Lunnd2345592017-01-25 02:44:48 +010037 mdio {
38 #address-cells = <1>;
39 #size-cells = <0>;
40 interrupt-parent = <&gpio0>;
41 interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
42 interrupt-controller;
43 #interrupt-cells = <2>;
Andrew Lunn14c7b3c2016-05-10 23:27:21 +020044
Andrew Lunnd2345592017-01-25 02:44:48 +010045 switch0: switch@0 {
46 compatible = "marvell,mv88e6085";
47 reg = <0>;
48 reset-gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
49 };
50 mdio {
51 #address-cells = <1>;
52 #size-cells = <0>;
53 switch1phy0: switch1phy0@0 {
54 reg = <0>;
55 interrupt-parent = <&switch0>;
56 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
57 };
58 };
59 };
Andrew Lunna3c53be2017-01-24 14:53:50 +010060
Andrew Lunnd2345592017-01-25 02:44:48 +010061 mdio {
62 #address-cells = <1>;
63 #size-cells = <0>;
64 interrupt-parent = <&gpio0>;
65 interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
66 interrupt-controller;
67 #interrupt-cells = <2>;
Andrew Lunna3c53be2017-01-24 14:53:50 +010068
Andrew Lunnd2345592017-01-25 02:44:48 +010069 switch0: switch@0 {
70 compatible = "marvell,mv88e6390";
71 reg = <0>;
72 reset-gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
73 };
74 mdio {
75 #address-cells = <1>;
76 #size-cells = <0>;
77 switch1phy0: switch1phy0@0 {
78 reg = <0>;
79 interrupt-parent = <&switch0>;
80 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
81 };
82 };
Andrew Lunna3c53be2017-01-24 14:53:50 +010083
Andrew Lunnd2345592017-01-25 02:44:48 +010084 mdio1 {
85 compatible = "marvell,mv88e6xxx-mdio-external";
86 #address-cells = <1>;
87 #size-cells = <0>;
88 switch1phy9: switch1phy0@9 {
89 reg = <9>;
90 };
91 };
92 };