The motorcomm phy (YT8531) supports the ability to adjust the drive strength of the rx_clk/rx_data. The YT8531 RGMII LDO voltage supports 1.8V/3.3V, and the LDO voltage can be configured with hardware pull-up resistors to match the SOC voltage (usually 1.8V). The software can read the registers 0xA001 obtain the current LDO voltage value. Reviewed-by: Hal Feng <hal.feng@starfivetech.com> Signed-off-by: Samin Guo <samin.guo@starfivetech.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: David S. Miller <davem@davemloft.net>
152 lines
5.2 KiB
YAML
152 lines
5.2 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/net/motorcomm,yt8xxx.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: MotorComm yt8xxx Ethernet PHY
|
|
|
|
maintainers:
|
|
- Frank Sae <frank.sae@motor-comm.com>
|
|
|
|
allOf:
|
|
- $ref: ethernet-phy.yaml#
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- ethernet-phy-id4f51.e91a
|
|
- ethernet-phy-id4f51.e91b
|
|
|
|
rx-internal-delay-ps:
|
|
description: |
|
|
RGMII RX Clock Delay used only when PHY operates in RGMII mode with
|
|
internal delay (phy-mode is 'rgmii-id' or 'rgmii-rxid') in pico-seconds.
|
|
enum: [ 0, 150, 300, 450, 600, 750, 900, 1050, 1200, 1350, 1500, 1650,
|
|
1800, 1900, 1950, 2050, 2100, 2200, 2250, 2350, 2500, 2650, 2800,
|
|
2950, 3100, 3250, 3400, 3550, 3700, 3850, 4000, 4150 ]
|
|
default: 1950
|
|
|
|
tx-internal-delay-ps:
|
|
description: |
|
|
RGMII TX Clock Delay used only when PHY operates in RGMII mode with
|
|
internal delay (phy-mode is 'rgmii-id' or 'rgmii-txid') in pico-seconds.
|
|
enum: [ 0, 150, 300, 450, 600, 750, 900, 1050, 1200, 1350, 1500, 1650, 1800,
|
|
1950, 2100, 2250 ]
|
|
default: 1950
|
|
|
|
motorcomm,clk-out-frequency-hz:
|
|
description: clock output on clock output pin.
|
|
enum: [0, 25000000, 125000000]
|
|
default: 0
|
|
|
|
motorcomm,keep-pll-enabled:
|
|
description: |
|
|
If set, keep the PLL enabled even if there is no link. Useful if you
|
|
want to use the clock output without an ethernet link.
|
|
type: boolean
|
|
|
|
motorcomm,auto-sleep-disabled:
|
|
description: |
|
|
If set, PHY will not enter sleep mode and close AFE after unplug cable
|
|
for a timer.
|
|
type: boolean
|
|
|
|
motorcomm,rx-clk-drv-microamp:
|
|
description: |
|
|
drive strength of rx_clk rgmii pad.
|
|
The YT8531 RGMII LDO voltage supports 1.8V/3.3V, and the LDO voltage can
|
|
be configured with hardware pull-up resistors to match the SOC voltage
|
|
(usually 1.8V).
|
|
The software can read the registers to obtain the LDO voltage and configure
|
|
the legal drive strength(curren).
|
|
=====================================================
|
|
| voltage | current Available (uA) |
|
|
| 1.8v | 1200 2100 2700 2910 3110 3600 3970 4350 |
|
|
| 3.3v | 3070 4080 4370 4680 5020 5450 5740 6140 |
|
|
=====================================================
|
|
enum: [ 1200, 2100, 2700, 2910, 3070, 3110, 3600, 3970,
|
|
4080, 4350, 4370, 4680, 5020, 5450, 5740, 6140 ]
|
|
default: 2910
|
|
|
|
motorcomm,rx-data-drv-microamp:
|
|
description: |
|
|
drive strength of rx_data/rx_ctl rgmii pad.
|
|
The YT8531 RGMII LDO voltage supports 1.8V/3.3V, and the LDO voltage can
|
|
be configured with hardware pull-up resistors to match the SOC voltage
|
|
(usually 1.8V).
|
|
The software can read the registers to obtain the LDO voltage and configure
|
|
the legal drive strength(curren).
|
|
=====================================================
|
|
| voltage | current Available (uA) |
|
|
| 1.8v | 1200 2100 2700 2910 3110 3600 3970 4350 |
|
|
| 3.3v | 3070 4080 4370 4680 5020 5450 5740 6140 |
|
|
=====================================================
|
|
enum: [ 1200, 2100, 2700, 2910, 3070, 3110, 3600, 3970,
|
|
4080, 4350, 4370, 4680, 5020, 5450, 5740, 6140 ]
|
|
default: 2910
|
|
|
|
motorcomm,tx-clk-adj-enabled:
|
|
description: |
|
|
This configuration is mainly to adapt to VF2 with JH7110 SoC.
|
|
Useful if you want to use tx-clk-xxxx-inverted to adj the delay of tx clk.
|
|
type: boolean
|
|
|
|
motorcomm,tx-clk-10-inverted:
|
|
description: |
|
|
Use original or inverted RGMII Transmit PHY Clock to drive the RGMII
|
|
Transmit PHY Clock delay train configuration when speed is 10Mbps.
|
|
type: boolean
|
|
|
|
motorcomm,tx-clk-100-inverted:
|
|
description: |
|
|
Use original or inverted RGMII Transmit PHY Clock to drive the RGMII
|
|
Transmit PHY Clock delay train configuration when speed is 100Mbps.
|
|
type: boolean
|
|
|
|
motorcomm,tx-clk-1000-inverted:
|
|
description: |
|
|
Use original or inverted RGMII Transmit PHY Clock to drive the RGMII
|
|
Transmit PHY Clock delay train configuration when speed is 1000Mbps.
|
|
type: boolean
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
mdio {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
phy-mode = "rgmii-id";
|
|
ethernet-phy@4 {
|
|
/* Only needed to make DT lint tools work. Do not copy/paste
|
|
* into real DTS files.
|
|
*/
|
|
compatible = "ethernet-phy-id4f51.e91a";
|
|
|
|
reg = <4>;
|
|
rx-internal-delay-ps = <2100>;
|
|
tx-internal-delay-ps = <150>;
|
|
motorcomm,clk-out-frequency-hz = <0>;
|
|
motorcomm,keep-pll-enabled;
|
|
motorcomm,auto-sleep-disabled;
|
|
};
|
|
};
|
|
- |
|
|
mdio {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
phy-mode = "rgmii";
|
|
ethernet-phy@5 {
|
|
/* Only needed to make DT lint tools work. Do not copy/paste
|
|
* into real DTS files.
|
|
*/
|
|
compatible = "ethernet-phy-id4f51.e91a";
|
|
|
|
reg = <5>;
|
|
motorcomm,clk-out-frequency-hz = <125000000>;
|
|
motorcomm,keep-pll-enabled;
|
|
motorcomm,auto-sleep-disabled;
|
|
};
|
|
};
|