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