Subject: [PATCH 1/4] dt-bindings: net: Add bindings for onsemi NCN26000 PHY

From: Jay Monkman <[email-masked]>
Date: Mon, 18 Sep 2023 01:58:52 -0500

Add devicetree bindings for onsemi's NCN26000 10BASE-T1S PHY.

Signed-off-by: Jay Monkman <[email-masked]>
---
 .../bindings/net/onnn,ncn26000.yaml           | 177 ++++++++++++++++++
 1 file changed, 177 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/net/onnn,ncn26000.yaml

diff --git a/Documentation/devicetree/bindings/net/onnn,ncn26000.yaml b/Documentation/devicetree/bindings/net/onnn,ncn26000.yaml
new file mode 100644
index 000000000000..b0b1e1ea86f2
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/onnn,ncn26000.yaml
@@ -0,0 +1,177 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/onnn,ncn26000.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: onsemi NCN26000 10BASE-T1S Ethernet PHY
+
+maintainers:
+  - Jay Monkman <[email-masked]>
+
+description: |
+  Bindings for onsemi NCN26000 10BASE-T1S ethernet PHY.
+
+allOf:
+  - $ref: ethernet-phy.yaml#
+
+properties:
+  description: |
+    Sets the transmitter amplitude gain. If not specified,
+    gain is set to 1.0V (1v0)
+  tx-gain:
+    enum:
+      - 1v1
+      - 1v0
+      - 0v9
+      - 0v8
+
+  tx-slew:
+    description: |
+      Sets the slew rate of the TX line driver output. Defaults
+      to slow if not set.
+    enum:
+      - fast
+      - slow
+
+  dig-slew:
+    description: |
+      Sets the slew rate of the digital output pins. Defaults
+      to slow if not set.
+    enum:
+      - fast
+      - slow
+
+  cmc-comp:
+    description: |
+      Sets the common mode choke resistance (CMC compensation).
+      Defaults to 0-0.5 ohm (0p25) if not set.
+    enum:
+      - 0p25
+      - 1p38
+      - 3p00
+      - 3p37
+
+  plca-precedence:
+    description: |
+      Enables PLCA precedence mode. Defaults to off if not
+      set.
+    type: boolean
+
+  eni-mode:
+    description: |
+      Enables Enhanced Noise Immunity mode. Defaults to off if
+      not set.
+    enum:
+      - force-on
+      - force-off
+      - auto
+
+  tx-pkt-loop:
+    description: |
+      Enables packet loopback mode. Defaults to off is not set.
+    type: boolean
+
+  unjab-tmr-disable:
+    description: |
+      Disables the Unjab Timer. When disabled, device transmission
+      will be stopped due to a jabber error and only restarted on
+      device reset. If not set, this defaults to enabled.
+    type: boolean
+
+  col-disable:
+    description: |
+      Disables collision masking. Defaults to enabled if not set.
+    type: boolean
+
+  no-rx-delay:
+    description: |
+      Disables the RX internal path delay. Defaults to enabled if
+      not set.
+    type: boolean
+
+  dio0-fn:
+    description: |
+      Selects the DIO0 pin output function. Defaults to disabled if
+      not set.
+    enum:
+      - sfd-tx
+      - sfd-rx
+      - sfd-rxtx
+      - led-link
+      - led-plca
+      - led-tx
+      - led-rx
+      - led-rxtx
+      - clk25m
+
+  dio0-pullup:
+    description: |
+      Enables the DIO0 pin pullup. Defaults to no pull up if not
+      set.
+    type: boolean
+
+  dio0-active-high:
+    description: |
+      Sets DIO0 pin output state. Defaults to low if not set
+    type: boolean
+
+  dio0-slew:
+    description: |
+      Sets the slew rate of the DIO0 pin. Defaults to slow if not set.
+    enum:
+      - fast
+      - slow
+
+  dio1-fn:
+    description: |
+      Selects the DIO1 pin output function. Defaults to disabled if
+      not set.
+    enum:
+      - sfd-tx
+      - sfd-rx
+      - sfd-rxtx
+      - led-link
+      - led-plca
+      - led-tx
+      - led-rx
+      - led-rxtx
+      - clk25m
+
+  dio1-pullup:
+    description: |
+      Enables the DIO1 pin pullup. Defaults to no pull up if not
+      set.
+    type: boolean
+
+  dio1-active-high:
+    description: |
+      Sets DIO1 pin output state. Defaults to low if not set
+    type: boolean
+
+  dio1-slew:
+    description: |
+      Sets the slew rate of the DIO1 pin. Defaults to slow if not set.
+    enum:
+      - fast
+      - slow
+
+additionalProperties: false
+
+examples:
+  - |
+    spi {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      ephy0: ethernet-phy@0 {
+        compatible = "ethernet-phy-ieee802.3-c22";
+        reg = <0>;
+        dio0-fn = "gpio";
+        dio0-slew = "slow";
+        dio1-fn = "gpio";
+        dio1-slew = "slow";
+        eni-enable;
+        device_type = "ethernet-phy";
+      };
+    };
-- 
2.40.1