162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/net/motorcomm,yt8xxx.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: MotorComm yt8xxx Ethernet PHY
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Frank Sae <frank.sae@motor-comm.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciallOf:
1362306a36Sopenharmony_ci  - $ref: ethernet-phy.yaml#
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciproperties:
1662306a36Sopenharmony_ci  compatible:
1762306a36Sopenharmony_ci    enum:
1862306a36Sopenharmony_ci      - ethernet-phy-id4f51.e91a
1962306a36Sopenharmony_ci      - ethernet-phy-id4f51.e91b
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci  rx-internal-delay-ps:
2262306a36Sopenharmony_ci    description: |
2362306a36Sopenharmony_ci      RGMII RX Clock Delay used only when PHY operates in RGMII mode with
2462306a36Sopenharmony_ci      internal delay (phy-mode is 'rgmii-id' or 'rgmii-rxid') in pico-seconds.
2562306a36Sopenharmony_ci    enum: [ 0, 150, 300, 450, 600, 750, 900, 1050, 1200, 1350, 1500, 1650,
2662306a36Sopenharmony_ci            1800, 1900, 1950, 2050, 2100, 2200, 2250, 2350, 2500, 2650, 2800,
2762306a36Sopenharmony_ci            2950, 3100, 3250, 3400, 3550, 3700, 3850, 4000, 4150 ]
2862306a36Sopenharmony_ci    default: 1950
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci  tx-internal-delay-ps:
3162306a36Sopenharmony_ci    description: |
3262306a36Sopenharmony_ci      RGMII TX Clock Delay used only when PHY operates in RGMII mode with
3362306a36Sopenharmony_ci      internal delay (phy-mode is 'rgmii-id' or 'rgmii-txid') in pico-seconds.
3462306a36Sopenharmony_ci    enum: [ 0, 150, 300, 450, 600, 750, 900, 1050, 1200, 1350, 1500, 1650, 1800,
3562306a36Sopenharmony_ci            1950, 2100, 2250 ]
3662306a36Sopenharmony_ci    default: 1950
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci  motorcomm,clk-out-frequency-hz:
3962306a36Sopenharmony_ci    description: clock output on clock output pin.
4062306a36Sopenharmony_ci    enum: [0, 25000000, 125000000]
4162306a36Sopenharmony_ci    default: 0
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  motorcomm,keep-pll-enabled:
4462306a36Sopenharmony_ci    description: |
4562306a36Sopenharmony_ci      If set, keep the PLL enabled even if there is no link. Useful if you
4662306a36Sopenharmony_ci      want to use the clock output without an ethernet link.
4762306a36Sopenharmony_ci    type: boolean
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci  motorcomm,auto-sleep-disabled:
5062306a36Sopenharmony_ci    description: |
5162306a36Sopenharmony_ci      If set, PHY will not enter sleep mode and close AFE after unplug cable
5262306a36Sopenharmony_ci      for a timer.
5362306a36Sopenharmony_ci    type: boolean
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci  motorcomm,rx-clk-drv-microamp:
5662306a36Sopenharmony_ci    description: |
5762306a36Sopenharmony_ci      drive strength of rx_clk rgmii pad.
5862306a36Sopenharmony_ci      The YT8531 RGMII LDO voltage supports 1.8V/3.3V, and the LDO voltage can
5962306a36Sopenharmony_ci      be configured with hardware pull-up resistors to match the SOC voltage
6062306a36Sopenharmony_ci      (usually 1.8V).
6162306a36Sopenharmony_ci      The software can read the registers to obtain the LDO voltage and configure
6262306a36Sopenharmony_ci      the legal drive strength(curren).
6362306a36Sopenharmony_ci      =====================================================
6462306a36Sopenharmony_ci      | voltage |        current Available (uA)           |
6562306a36Sopenharmony_ci      |   1.8v  | 1200 2100 2700 2910 3110 3600 3970 4350 |
6662306a36Sopenharmony_ci      |   3.3v  | 3070 4080 4370 4680 5020 5450 5740 6140 |
6762306a36Sopenharmony_ci      =====================================================
6862306a36Sopenharmony_ci    enum: [ 1200, 2100, 2700, 2910, 3070, 3110, 3600, 3970,
6962306a36Sopenharmony_ci            4080, 4350, 4370, 4680, 5020, 5450, 5740, 6140 ]
7062306a36Sopenharmony_ci    default: 2910
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci  motorcomm,rx-data-drv-microamp:
7362306a36Sopenharmony_ci    description: |
7462306a36Sopenharmony_ci      drive strength of rx_data/rx_ctl rgmii pad.
7562306a36Sopenharmony_ci      The YT8531 RGMII LDO voltage supports 1.8V/3.3V, and the LDO voltage can
7662306a36Sopenharmony_ci      be configured with hardware pull-up resistors to match the SOC voltage
7762306a36Sopenharmony_ci      (usually 1.8V).
7862306a36Sopenharmony_ci      The software can read the registers to obtain the LDO voltage and configure
7962306a36Sopenharmony_ci      the legal drive strength(curren).
8062306a36Sopenharmony_ci      =====================================================
8162306a36Sopenharmony_ci      | voltage |        current Available (uA)           |
8262306a36Sopenharmony_ci      |   1.8v  | 1200 2100 2700 2910 3110 3600 3970 4350 |
8362306a36Sopenharmony_ci      |   3.3v  | 3070 4080 4370 4680 5020 5450 5740 6140 |
8462306a36Sopenharmony_ci      =====================================================
8562306a36Sopenharmony_ci    enum: [ 1200, 2100, 2700, 2910, 3070, 3110, 3600, 3970,
8662306a36Sopenharmony_ci            4080, 4350, 4370, 4680, 5020, 5450, 5740, 6140 ]
8762306a36Sopenharmony_ci    default: 2910
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci  motorcomm,tx-clk-adj-enabled:
9062306a36Sopenharmony_ci    description: |
9162306a36Sopenharmony_ci      This configuration is mainly to adapt to VF2 with JH7110 SoC.
9262306a36Sopenharmony_ci      Useful if you want to use tx-clk-xxxx-inverted to adj the delay of tx clk.
9362306a36Sopenharmony_ci    type: boolean
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci  motorcomm,tx-clk-10-inverted:
9662306a36Sopenharmony_ci    description: |
9762306a36Sopenharmony_ci      Use original or inverted RGMII Transmit PHY Clock to drive the RGMII
9862306a36Sopenharmony_ci      Transmit PHY Clock delay train configuration when speed is 10Mbps.
9962306a36Sopenharmony_ci    type: boolean
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci  motorcomm,tx-clk-100-inverted:
10262306a36Sopenharmony_ci    description: |
10362306a36Sopenharmony_ci      Use original or inverted RGMII Transmit PHY Clock to drive the RGMII
10462306a36Sopenharmony_ci      Transmit PHY Clock delay train configuration when speed is 100Mbps.
10562306a36Sopenharmony_ci    type: boolean
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci  motorcomm,tx-clk-1000-inverted:
10862306a36Sopenharmony_ci    description: |
10962306a36Sopenharmony_ci      Use original or inverted RGMII Transmit PHY Clock to drive the RGMII
11062306a36Sopenharmony_ci      Transmit PHY Clock delay train configuration when speed is 1000Mbps.
11162306a36Sopenharmony_ci    type: boolean
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ciunevaluatedProperties: false
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ciexamples:
11662306a36Sopenharmony_ci  - |
11762306a36Sopenharmony_ci    mdio {
11862306a36Sopenharmony_ci        #address-cells = <1>;
11962306a36Sopenharmony_ci        #size-cells = <0>;
12062306a36Sopenharmony_ci        phy-mode = "rgmii-id";
12162306a36Sopenharmony_ci        ethernet-phy@4 {
12262306a36Sopenharmony_ci            /*  Only needed to make DT lint tools work. Do not copy/paste
12362306a36Sopenharmony_ci             *  into real DTS files.
12462306a36Sopenharmony_ci             */
12562306a36Sopenharmony_ci            compatible = "ethernet-phy-id4f51.e91a";
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ci            reg = <4>;
12862306a36Sopenharmony_ci            rx-internal-delay-ps = <2100>;
12962306a36Sopenharmony_ci            tx-internal-delay-ps = <150>;
13062306a36Sopenharmony_ci            motorcomm,clk-out-frequency-hz = <0>;
13162306a36Sopenharmony_ci            motorcomm,keep-pll-enabled;
13262306a36Sopenharmony_ci            motorcomm,auto-sleep-disabled;
13362306a36Sopenharmony_ci        };
13462306a36Sopenharmony_ci    };
13562306a36Sopenharmony_ci  - |
13662306a36Sopenharmony_ci    mdio {
13762306a36Sopenharmony_ci        #address-cells = <1>;
13862306a36Sopenharmony_ci        #size-cells = <0>;
13962306a36Sopenharmony_ci        phy-mode = "rgmii";
14062306a36Sopenharmony_ci        ethernet-phy@5 {
14162306a36Sopenharmony_ci            /*  Only needed to make DT lint tools work. Do not copy/paste
14262306a36Sopenharmony_ci             *  into real DTS files.
14362306a36Sopenharmony_ci             */
14462306a36Sopenharmony_ci            compatible = "ethernet-phy-id4f51.e91a";
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ci            reg = <5>;
14762306a36Sopenharmony_ci            motorcomm,clk-out-frequency-hz = <125000000>;
14862306a36Sopenharmony_ci            motorcomm,keep-pll-enabled;
14962306a36Sopenharmony_ci            motorcomm,auto-sleep-disabled;
15062306a36Sopenharmony_ci        };
15162306a36Sopenharmony_ci    };
152