dt-bindings: net: phy: vsc8531: Convert to DT schema

Convert VSC8531 Gigabit ethernet phy binding to DT schema format. While
at it add compatible string for VSC8541 PHY which is very much similar
to the VSC8531 PHY and is already supported in the kernel. VSC8541 PHY
is present on the Renesas RZ/T2H EVK.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20251025064850.393797-1-prabhakar.mahadev-lad.rj@bp.renesas.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Lad Prabhakar 2025-10-25 07:48:50 +01:00 committed by Jakub Kicinski
parent 0ae1ac7335
commit 19ab0a22ef
3 changed files with 132 additions and 74 deletions

View File

@ -1,73 +0,0 @@
* Microsemi - vsc8531 Giga bit ethernet phy
Optional properties:
- vsc8531,vddmac : The vddmac in mV. Allowed values is listed
in the first row of Table 1 (below).
This property is only used in combination
with the 'edge-slowdown' property.
Default value is 3300.
- vsc8531,edge-slowdown : % the edge should be slowed down relative to
the fastest possible edge time.
Edge rate sets the drive strength of the MAC
interface output signals. Changing the
drive strength will affect the edge rate of
the output signal. The goal of this setting
is to help reduce electrical emission (EMI)
by being able to reprogram drive strength
and in effect slow down the edge rate if
desired.
To adjust the edge-slowdown, the 'vddmac'
must be specified. Table 1 lists the
supported edge-slowdown values for a given
'vddmac'.
Default value is 0%.
Ref: Table:1 - Edge rate change (below).
- vsc8531,led-[N]-mode : LED mode. Specify how the LED[N] should behave.
N depends on the number of LEDs supported by a
PHY.
Allowed values are defined in
"include/dt-bindings/net/mscc-phy-vsc8531.h".
Default values are VSC8531_LINK_1000_ACTIVITY (1),
VSC8531_LINK_100_ACTIVITY (2),
VSC8531_LINK_ACTIVITY (0) and
VSC8531_DUPLEX_COLLISION (8).
- load-save-gpios : GPIO used for the load/save operation of the PTP
hardware clock (PHC).
Table: 1 - Edge rate change
----------------------------------------------------------------|
| Edge Rate Change (VDDMAC) |
| |
| 3300 mV 2500 mV 1800 mV 1500 mV |
|---------------------------------------------------------------|
| 0% 0% 0% 0% |
| (Fastest) (recommended) (recommended) |
|---------------------------------------------------------------|
| 2% 3% 5% 6% |
|---------------------------------------------------------------|
| 4% 6% 9% 14% |
|---------------------------------------------------------------|
| 7% 10% 16% 21% |
|(recommended) (recommended) |
|---------------------------------------------------------------|
| 10% 14% 23% 29% |
|---------------------------------------------------------------|
| 17% 23% 35% 42% |
|---------------------------------------------------------------|
| 29% 37% 52% 58% |
|---------------------------------------------------------------|
| 53% 63% 76% 77% |
| (slowest) |
|---------------------------------------------------------------|
Example:
vsc8531_0: ethernet-phy@0 {
compatible = "ethernet-phy-id0007.0570";
vsc8531,vddmac = <3300>;
vsc8531,edge-slowdown = <7>;
vsc8531,led-0-mode = <VSC8531_LINK_1000_ACTIVITY>;
vsc8531,led-1-mode = <VSC8531_LINK_100_ACTIVITY>;
load-save-gpios = <&gpio 10 GPIO_ACTIVE_HIGH>;
};

View File

@ -0,0 +1,131 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/mscc-phy-vsc8531.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Microsemi VSC8531 Gigabit Ethernet PHY
maintainers:
- Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
description:
The VSC8531 is a Gigabit Ethernet PHY with configurable MAC interface
drive strength and LED modes.
allOf:
- $ref: ethernet-phy.yaml#
select:
properties:
compatible:
contains:
enum:
- ethernet-phy-id0007.0570 # VSC8531
- ethernet-phy-id0007.0772 # VSC8541
required:
- compatible
properties:
compatible:
items:
- enum:
- ethernet-phy-id0007.0570 # VSC8531
- ethernet-phy-id0007.0772 # VSC8541
- const: ethernet-phy-ieee802.3-c22
vsc8531,vddmac:
$ref: /schemas/types.yaml#/definitions/uint32
description:
The VDDMAC voltage in millivolts. This property is used in combination
with the edge-slowdown property to control the drive strength of the
MAC interface output signals.
enum: [3300, 2500, 1800, 1500]
default: 3300
vsc8531,edge-slowdown:
$ref: /schemas/types.yaml#/definitions/uint32
description: >
Percentage by which the edge rate should be slowed down relative to
the fastest possible edge time. This setting helps reduce electromagnetic
interference (EMI) by adjusting the drive strength of the MAC interface
output signals. Valid values depend on the vddmac voltage setting
according to the edge rate change table in the datasheet.
- When vsc8531,vddmac = 3300 mV: allowed values are 0, 2, 4, 7, 10, 17, 29, and 53.
(Recommended: 7)
- When vsc8531,vddmac = 2500 mV: allowed values are 0, 3, 6, 10, 14, 23, 37, and 63.
(Recommended: 10)
- When vsc8531,vddmac = 1800 mV: allowed values are 0, 5, 9, 16, 23, 35, 52, and 76.
(Recommended: 0)
- When vsc8531,vddmac = 1500 mV: allowed values are 0, 6, 14, 21, 29, 42, 58, and 77.
(Recommended: 0)
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]
default: 0
vsc8531,led-0-mode:
$ref: /schemas/types.yaml#/definitions/uint32
description: LED[0] behavior mode. See include/dt-bindings/net/mscc-phy-vsc8531.h
for available modes.
minimum: 0
maximum: 15
default: 1
vsc8531,led-1-mode:
$ref: /schemas/types.yaml#/definitions/uint32
description: LED[1] behavior mode. See include/dt-bindings/net/mscc-phy-vsc8531.h
for available modes.
minimum: 0
maximum: 15
default: 2
vsc8531,led-2-mode:
$ref: /schemas/types.yaml#/definitions/uint32
description: LED[2] behavior mode. See include/dt-bindings/net/mscc-phy-vsc8531.h
for available modes.
minimum: 0
maximum: 15
default: 0
vsc8531,led-3-mode:
$ref: /schemas/types.yaml#/definitions/uint32
description: LED[3] behavior mode. See include/dt-bindings/net/mscc-phy-vsc8531.h
for available modes.
minimum: 0
maximum: 15
default: 8
load-save-gpios:
description: GPIO phandle used for the load/save operation of the PTP hardware
clock (PHC).
maxItems: 1
dependencies:
vsc8531,edge-slowdown:
- vsc8531,vddmac
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/net/mscc-phy-vsc8531.h>
mdio {
#address-cells = <1>;
#size-cells = <0>;
ethernet-phy@0 {
compatible = "ethernet-phy-id0007.0772", "ethernet-phy-ieee802.3-c22";
reg = <0>;
vsc8531,vddmac = <3300>;
vsc8531,edge-slowdown = <7>;
vsc8531,led-0-mode = <VSC8531_LINK_1000_ACTIVITY>;
vsc8531,led-1-mode = <VSC8531_LINK_100_ACTIVITY>;
load-save-gpios = <&gpio 10 GPIO_ACTIVE_HIGH>;
};
};

View File

@ -20,7 +20,7 @@ patternProperties:
"^(keypad|m25p|max8952|max8997|max8998|mpmc),.*": true
"^(pciclass|pinctrl-single|#pinctrl-single|PowerPC),.*": true
"^(pl022|pxa-mmc|rcar_sound|rotary-encoder|s5m8767|sdhci),.*": true
"^(simple-audio-card|st-plgpio|st-spics|ts),.*": true
"^(simple-audio-card|st-plgpio|st-spics|ts|vsc8531),.*": true
"^pool[0-3],.*": true
# Keep list in alphabetical order.