xref: /linux/Documentation/devicetree/bindings/net/mscc-phy-vsc8531.yaml (revision 84318277d6334c6981ab326d4acc87c6a6ddc9b8)
1*19ab0a22SLad Prabhakar# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*19ab0a22SLad Prabhakar%YAML 1.2
3*19ab0a22SLad Prabhakar---
4*19ab0a22SLad Prabhakar$id: http://devicetree.org/schemas/net/mscc-phy-vsc8531.yaml#
5*19ab0a22SLad Prabhakar$schema: http://devicetree.org/meta-schemas/core.yaml#
6*19ab0a22SLad Prabhakar
7*19ab0a22SLad Prabhakartitle: Microsemi VSC8531 Gigabit Ethernet PHY
8*19ab0a22SLad Prabhakar
9*19ab0a22SLad Prabhakarmaintainers:
10*19ab0a22SLad Prabhakar  - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
11*19ab0a22SLad Prabhakar
12*19ab0a22SLad Prabhakardescription:
13*19ab0a22SLad Prabhakar  The VSC8531 is a Gigabit Ethernet PHY with configurable MAC interface
14*19ab0a22SLad Prabhakar  drive strength and LED modes.
15*19ab0a22SLad Prabhakar
16*19ab0a22SLad PrabhakarallOf:
17*19ab0a22SLad Prabhakar  - $ref: ethernet-phy.yaml#
18*19ab0a22SLad Prabhakar
19*19ab0a22SLad Prabhakarselect:
20*19ab0a22SLad Prabhakar  properties:
21*19ab0a22SLad Prabhakar    compatible:
22*19ab0a22SLad Prabhakar      contains:
23*19ab0a22SLad Prabhakar        enum:
24*19ab0a22SLad Prabhakar          - ethernet-phy-id0007.0570 # VSC8531
25*19ab0a22SLad Prabhakar          - ethernet-phy-id0007.0772 # VSC8541
26*19ab0a22SLad Prabhakar  required:
27*19ab0a22SLad Prabhakar    - compatible
28*19ab0a22SLad Prabhakar
29*19ab0a22SLad Prabhakarproperties:
30*19ab0a22SLad Prabhakar  compatible:
31*19ab0a22SLad Prabhakar    items:
32*19ab0a22SLad Prabhakar      - enum:
33*19ab0a22SLad Prabhakar          - ethernet-phy-id0007.0570 # VSC8531
34*19ab0a22SLad Prabhakar          - ethernet-phy-id0007.0772 # VSC8541
35*19ab0a22SLad Prabhakar      - const: ethernet-phy-ieee802.3-c22
36*19ab0a22SLad Prabhakar
37*19ab0a22SLad Prabhakar  vsc8531,vddmac:
38*19ab0a22SLad Prabhakar    $ref: /schemas/types.yaml#/definitions/uint32
39*19ab0a22SLad Prabhakar    description:
40*19ab0a22SLad Prabhakar      The VDDMAC voltage in millivolts. This property is used in combination
41*19ab0a22SLad Prabhakar      with the edge-slowdown property to control the drive strength of the
42*19ab0a22SLad Prabhakar      MAC interface output signals.
43*19ab0a22SLad Prabhakar    enum: [3300, 2500, 1800, 1500]
44*19ab0a22SLad Prabhakar    default: 3300
45*19ab0a22SLad Prabhakar
46*19ab0a22SLad Prabhakar  vsc8531,edge-slowdown:
47*19ab0a22SLad Prabhakar    $ref: /schemas/types.yaml#/definitions/uint32
48*19ab0a22SLad Prabhakar    description: >
49*19ab0a22SLad Prabhakar      Percentage by which the edge rate should be slowed down relative to
50*19ab0a22SLad Prabhakar      the fastest possible edge time. This setting helps reduce electromagnetic
51*19ab0a22SLad Prabhakar      interference (EMI) by adjusting the drive strength of the MAC interface
52*19ab0a22SLad Prabhakar      output signals. Valid values depend on the vddmac voltage setting
53*19ab0a22SLad Prabhakar      according to the edge rate change table in the datasheet.
54*19ab0a22SLad Prabhakar
55*19ab0a22SLad Prabhakar      - When vsc8531,vddmac = 3300 mV: allowed values are 0, 2, 4, 7, 10, 17, 29, and 53.
56*19ab0a22SLad Prabhakar        (Recommended: 7)
57*19ab0a22SLad Prabhakar      - When vsc8531,vddmac = 2500 mV: allowed values are 0, 3, 6, 10, 14, 23, 37, and 63.
58*19ab0a22SLad Prabhakar        (Recommended: 10)
59*19ab0a22SLad Prabhakar      - When vsc8531,vddmac = 1800 mV: allowed values are 0, 5, 9, 16, 23, 35, 52, and 76.
60*19ab0a22SLad Prabhakar        (Recommended: 0)
61*19ab0a22SLad Prabhakar      - When vsc8531,vddmac = 1500 mV: allowed values are 0, 6, 14, 21, 29, 42, 58, and 77.
62*19ab0a22SLad Prabhakar        (Recommended: 0)
63*19ab0a22SLad Prabhakar    enum: [0, 2, 3, 4, 5, 6, 7, 9, 10, 14, 16, 17, 21, 23, 29, 35, 37, 42, 52, 53, 58, 63, 76, 77]
64*19ab0a22SLad Prabhakar    default: 0
65*19ab0a22SLad Prabhakar
66*19ab0a22SLad Prabhakar  vsc8531,led-0-mode:
67*19ab0a22SLad Prabhakar    $ref: /schemas/types.yaml#/definitions/uint32
68*19ab0a22SLad Prabhakar    description: LED[0] behavior mode. See include/dt-bindings/net/mscc-phy-vsc8531.h
69*19ab0a22SLad Prabhakar      for available modes.
70*19ab0a22SLad Prabhakar    minimum: 0
71*19ab0a22SLad Prabhakar    maximum: 15
72*19ab0a22SLad Prabhakar    default: 1
73*19ab0a22SLad Prabhakar
74*19ab0a22SLad Prabhakar  vsc8531,led-1-mode:
75*19ab0a22SLad Prabhakar    $ref: /schemas/types.yaml#/definitions/uint32
76*19ab0a22SLad Prabhakar    description: LED[1] behavior mode. See include/dt-bindings/net/mscc-phy-vsc8531.h
77*19ab0a22SLad Prabhakar      for available modes.
78*19ab0a22SLad Prabhakar    minimum: 0
79*19ab0a22SLad Prabhakar    maximum: 15
80*19ab0a22SLad Prabhakar    default: 2
81*19ab0a22SLad Prabhakar
82*19ab0a22SLad Prabhakar  vsc8531,led-2-mode:
83*19ab0a22SLad Prabhakar    $ref: /schemas/types.yaml#/definitions/uint32
84*19ab0a22SLad Prabhakar    description: LED[2] behavior mode. See include/dt-bindings/net/mscc-phy-vsc8531.h
85*19ab0a22SLad Prabhakar      for available modes.
86*19ab0a22SLad Prabhakar    minimum: 0
87*19ab0a22SLad Prabhakar    maximum: 15
88*19ab0a22SLad Prabhakar    default: 0
89*19ab0a22SLad Prabhakar
90*19ab0a22SLad Prabhakar  vsc8531,led-3-mode:
91*19ab0a22SLad Prabhakar    $ref: /schemas/types.yaml#/definitions/uint32
92*19ab0a22SLad Prabhakar    description: LED[3] behavior mode. See include/dt-bindings/net/mscc-phy-vsc8531.h
93*19ab0a22SLad Prabhakar      for available modes.
94*19ab0a22SLad Prabhakar    minimum: 0
95*19ab0a22SLad Prabhakar    maximum: 15
96*19ab0a22SLad Prabhakar    default: 8
97*19ab0a22SLad Prabhakar
98*19ab0a22SLad Prabhakar  load-save-gpios:
99*19ab0a22SLad Prabhakar    description: GPIO phandle used for the load/save operation of the PTP hardware
100*19ab0a22SLad Prabhakar      clock (PHC).
101*19ab0a22SLad Prabhakar    maxItems: 1
102*19ab0a22SLad Prabhakar
103*19ab0a22SLad Prabhakardependencies:
104*19ab0a22SLad Prabhakar  vsc8531,edge-slowdown:
105*19ab0a22SLad Prabhakar    - vsc8531,vddmac
106*19ab0a22SLad Prabhakar
107*19ab0a22SLad Prabhakarrequired:
108*19ab0a22SLad Prabhakar  - compatible
109*19ab0a22SLad Prabhakar  - reg
110*19ab0a22SLad Prabhakar
111*19ab0a22SLad PrabhakarunevaluatedProperties: false
112*19ab0a22SLad Prabhakar
113*19ab0a22SLad Prabhakarexamples:
114*19ab0a22SLad Prabhakar  - |
115*19ab0a22SLad Prabhakar    #include <dt-bindings/gpio/gpio.h>
116*19ab0a22SLad Prabhakar    #include <dt-bindings/net/mscc-phy-vsc8531.h>
117*19ab0a22SLad Prabhakar
118*19ab0a22SLad Prabhakar    mdio {
119*19ab0a22SLad Prabhakar        #address-cells = <1>;
120*19ab0a22SLad Prabhakar        #size-cells = <0>;
121*19ab0a22SLad Prabhakar
122*19ab0a22SLad Prabhakar        ethernet-phy@0 {
123*19ab0a22SLad Prabhakar            compatible = "ethernet-phy-id0007.0772", "ethernet-phy-ieee802.3-c22";
124*19ab0a22SLad Prabhakar            reg = <0>;
125*19ab0a22SLad Prabhakar            vsc8531,vddmac = <3300>;
126*19ab0a22SLad Prabhakar            vsc8531,edge-slowdown = <7>;
127*19ab0a22SLad Prabhakar            vsc8531,led-0-mode = <VSC8531_LINK_1000_ACTIVITY>;
128*19ab0a22SLad Prabhakar            vsc8531,led-1-mode = <VSC8531_LINK_100_ACTIVITY>;
129*19ab0a22SLad Prabhakar            load-save-gpios = <&gpio 10 GPIO_ACTIVE_HIGH>;
130*19ab0a22SLad Prabhakar        };
131*19ab0a22SLad Prabhakar    };
132