136 lines
4.0 KiB
YAML
136 lines
4.0 KiB
YAML
|
# SPDX-License-Identifier: GPL-2.0
|
||
|
%YAML 1.2
|
||
|
---
|
||
|
$id: http://devicetree.org/schemas/net/mdio-mux-gpio.yaml#
|
||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||
|
|
||
|
title: Properties for an MDIO bus multiplexer/switch controlled by GPIO pins.
|
||
|
|
||
|
maintainers:
|
||
|
- Andrew Lunn <andrew@lunn.ch>
|
||
|
|
||
|
description:
|
||
|
This is a special case of a MDIO bus multiplexer. One or more GPIO
|
||
|
lines are used to control which child bus is connected.
|
||
|
|
||
|
allOf:
|
||
|
- $ref: /schemas/net/mdio-mux.yaml#
|
||
|
|
||
|
properties:
|
||
|
compatible:
|
||
|
const: mdio-mux-gpio
|
||
|
|
||
|
gpios:
|
||
|
description:
|
||
|
List of GPIOs used to control the multiplexer, least significant bit first.
|
||
|
minItems: 1
|
||
|
maxItems: 32
|
||
|
|
||
|
required:
|
||
|
- compatible
|
||
|
- gpios
|
||
|
|
||
|
unevaluatedProperties: false
|
||
|
|
||
|
examples:
|
||
|
- |
|
||
|
/*
|
||
|
An NXP sn74cbtlv3253 dual 1-of-4 switch controlled by a
|
||
|
pair of GPIO lines. Child busses 2 and 3 populated with 4
|
||
|
PHYs each.
|
||
|
*/
|
||
|
mdio-mux {
|
||
|
compatible = "mdio-mux-gpio";
|
||
|
gpios = <&gpio1 3 0>, <&gpio1 4 0>;
|
||
|
mdio-parent-bus = <&smi1>;
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
mdio@2 {
|
||
|
reg = <2>;
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
ethernet-phy@1 {
|
||
|
reg = <1>;
|
||
|
marvell,reg-init = <3 0x10 0 0x5777>,
|
||
|
<3 0x11 0 0x00aa>,
|
||
|
<3 0x12 0 0x4105>,
|
||
|
<3 0x13 0 0x0a60>;
|
||
|
interrupt-parent = <&gpio>;
|
||
|
interrupts = <10 8>; /* Pin 10, active low */
|
||
|
};
|
||
|
ethernet-phy@2 {
|
||
|
reg = <2>;
|
||
|
marvell,reg-init = <3 0x10 0 0x5777>,
|
||
|
<3 0x11 0 0x00aa>,
|
||
|
<3 0x12 0 0x4105>,
|
||
|
<3 0x13 0 0x0a60>;
|
||
|
interrupt-parent = <&gpio>;
|
||
|
interrupts = <10 8>; /* Pin 10, active low */
|
||
|
};
|
||
|
ethernet-phy@3 {
|
||
|
reg = <3>;
|
||
|
marvell,reg-init = <3 0x10 0 0x5777>,
|
||
|
<3 0x11 0 0x00aa>,
|
||
|
<3 0x12 0 0x4105>,
|
||
|
<3 0x13 0 0x0a60>;
|
||
|
interrupt-parent = <&gpio>;
|
||
|
interrupts = <10 8>; /* Pin 10, active low */
|
||
|
};
|
||
|
ethernet-phy@4 {
|
||
|
reg = <4>;
|
||
|
marvell,reg-init = <3 0x10 0 0x5777>,
|
||
|
<3 0x11 0 0x00aa>,
|
||
|
<3 0x12 0 0x4105>,
|
||
|
<3 0x13 0 0x0a60>;
|
||
|
interrupt-parent = <&gpio>;
|
||
|
interrupts = <10 8>; /* Pin 10, active low */
|
||
|
};
|
||
|
};
|
||
|
|
||
|
mdio@3 {
|
||
|
reg = <3>;
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
ethernet-phy@1 {
|
||
|
reg = <1>;
|
||
|
marvell,reg-init = <3 0x10 0 0x5777>,
|
||
|
<3 0x11 0 0x00aa>,
|
||
|
<3 0x12 0 0x4105>,
|
||
|
<3 0x13 0 0x0a60>;
|
||
|
interrupt-parent = <&gpio>;
|
||
|
interrupts = <12 8>; /* Pin 12, active low */
|
||
|
};
|
||
|
ethernet-phy@2 {
|
||
|
reg = <2>;
|
||
|
marvell,reg-init = <3 0x10 0 0x5777>,
|
||
|
<3 0x11 0 0x00aa>,
|
||
|
<3 0x12 0 0x4105>,
|
||
|
<3 0x13 0 0x0a60>;
|
||
|
interrupt-parent = <&gpio>;
|
||
|
interrupts = <12 8>; /* Pin 12, active low */
|
||
|
};
|
||
|
ethernet-phy@3 {
|
||
|
reg = <3>;
|
||
|
marvell,reg-init = <3 0x10 0 0x5777>,
|
||
|
<3 0x11 0 0x00aa>,
|
||
|
<3 0x12 0 0x4105>,
|
||
|
<3 0x13 0 0x0a60>;
|
||
|
interrupt-parent = <&gpio>;
|
||
|
interrupts = <12 8>; /* Pin 12, active low */
|
||
|
};
|
||
|
ethernet-phy@4 {
|
||
|
reg = <4>;
|
||
|
marvell,reg-init = <3 0x10 0 0x5777>,
|
||
|
<3 0x11 0 0x00aa>,
|
||
|
<3 0x12 0 0x4105>,
|
||
|
<3 0x13 0 0x0a60>;
|
||
|
interrupt-parent = <&gpio>;
|
||
|
interrupts = <12 8>; /* Pin 12, active low */
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
...
|