[PATCH net-next v1 1/3] dt-bindings: net: Add Motorcomm yt8xxx ethernet phy Driver bindings

From: Frank
Date: Thu Jan 05 2023 - 02:30:48 EST


Add a YAML binding document for the Motorcom yt8xxx Ethernet phy driver.

Signed-off-by: Frank <Frank.Sae@xxxxxxxxxxxxxx>
---
.../bindings/net/motorcomm,yt8xxx.yaml | 180 ++++++++++++++++++
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
MAINTAINERS | 1 +
3 files changed, 183 insertions(+)
create mode 100644 Documentation/devicetree/bindings/net/motorcomm,yt8xxx.yaml

diff --git a/Documentation/devicetree/bindings/net/motorcomm,yt8xxx.yaml b/Documentation/devicetree/bindings/net/motorcomm,yt8xxx.yaml
new file mode 100644
index 000000000000..337a562d864c
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/motorcomm,yt8xxx.yaml
@@ -0,0 +1,180 @@
+# 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 <frank.sae@xxxxxxxxxxxxxx>
+
+description: |
+ Bindings for MotorComm yt8xxx PHYs.
+ yt8511 will be supported later.
+
+allOf:
+ - $ref: ethernet-phy.yaml#
+
+properties:
+ motorcomm,clk-out-frequency:
+ description: clock output in Hertz on clock output pin.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [0, 25000000, 125000000]
+ default: 0
+
+ motorcomm,rx-delay-basic:
+ description: |
+ Tristate, setup the basic RGMII RX Clock delay of PHY.
+ This basic delay is fixed at 2ns (1000Mbps) or 8ns (100Mbps、10Mbps).
+ This basic delay usually auto set by hardware according to the voltage
+ of RXD0 pin (low = 0, turn off; high = 1, turn on).
+ If not exist, this delay is controlled by hardware.
+ 0: turn off; 1: turn on.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [0, 1]
+
+ motorcomm,rx-delay-additional-ps:
+ description: |
+ Setup the additional RGMII RX Clock delay of PHY defined in pico seconds.
+ RGMII RX Clock Delay = rx-delay-basic + rx-delay-additional-ps.
+ enum:
+ - 0
+ - 150
+ - 300
+ - 450
+ - 600
+ - 750
+ - 900
+ - 1050
+ - 1200
+ - 1350
+ - 1500
+ - 1650
+ - 1800
+ - 1950
+ - 2100
+ - 2250
+
+ motorcomm,tx-delay-ge-ps:
+ description: |
+ Setup PHY's RGMII TX Clock delay defined in pico seconds when the speed
+ is 1000Mbps.
+ enum:
+ - 0
+ - 150
+ - 300
+ - 450
+ - 600
+ - 750
+ - 900
+ - 1050
+ - 1200
+ - 1350
+ - 1500
+ - 1650
+ - 1800
+ - 1950
+ - 2100
+ - 2250
+
+ motorcomm,tx-delay-fe-ps:
+ description: |
+ Setup PHY's RGMII TX Clock delay defined in pico seconds when the speed
+ is 100Mbps or 10Mbps.
+ enum:
+ - 0
+ - 150
+ - 300
+ - 450
+ - 600
+ - 750
+ - 900
+ - 1050
+ - 1200
+ - 1350
+ - 1500
+ - 1650
+ - 1800
+ - 1950
+ - 2100
+ - 2250
+
+ 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,tx-clk-adj-enabled:
+ description: |
+ 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
+
+ motorcomm,sds-tx-amplitude:
+ description: |
+ Setup the tx driver amplitude control of SerDes. Higher amplitude is
+ helpful for long distance.
+ 0: low; 1: middle; 2: high.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [0, 1, 2]
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ ethernet {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ ethernet-phy@5 {
+ reg = <5>;
+
+ motorcomm,clk-out-frequency = <0>;
+ #motorcomm,rx-delay-basic = <1>;
+ motorcomm,rx-delay-additional-ps = <0>;
+ motorcomm,tx-delay-fe-ps = <2250>;
+ motorcomm,tx-delay-ge-ps = <150>;
+
+ motorcomm,keep-pll-enabled;
+ motorcomm,auto-sleep-disabled;
+ motorcomm,sds-tx-amplitude = <1>;
+ };
+ };
+ - |
+ ethernet {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ phy-mode = "rgmii-id";
+ ethernet-phy@5 {
+ reg = <5>;
+
+ motorcomm,clk-out-frequency = <125000000>;
+
+ motorcomm,keep-pll-enabled;
+ motorcomm,auto-sleep-disabled;
+ };
+ };
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index 70ffb3780621..8d19157e85b7 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -845,6 +845,8 @@ patternProperties:
description: Moortec Semiconductor Ltd.
"^mosaixtech,.*":
description: Mosaix Technologies, Inc.
+ "^motorcomm,.*":
+ description: MotorComm, Inc.
"^motorola,.*":
description: Motorola, Inc.
"^moxa,.*":
diff --git a/MAINTAINERS b/MAINTAINERS
index 7f0b7181e60a..a1e714980154 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -14161,6 +14161,7 @@ M: Peter Geis <pgwipeout@xxxxxxxxx>
M: Frank <Frank.Sae@xxxxxxxxxxxxxx>
L: netdev@xxxxxxxxxxxxxxx
S: Maintained
+F: Documentation/devicetree/bindings/net/motorcomm,yt8xxx.yaml
F: drivers/net/phy/motorcomm.c

MOXA SMARTIO/INDUSTIO/INTELLIO SERIAL CARD
--
2.34.1