Documentation / devicetree / bindings / net / sunplus,sp7021-emac.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) Sunplus Co., Ltd. 2021
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/sunplus,sp7021-emac.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Sunplus SP7021 Dual Ethernet MAC

maintainers:
  - Wells Lu <wellslutw@gmail.com>

description: |
  Sunplus SP7021 dual 10M/100M Ethernet MAC controller.
  Device node of the controller has following properties.

properties:
  compatible:
    const: sunplus,sp7021-emac

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1

  resets:
    maxItems: 1

  ethernet-ports:
    type: object
    additionalProperties: false
    description: Ethernet ports to PHY

    properties:
      "#address-cells":
        const: 1
 
      "#size-cells":
        const: 0

    patternProperties:
      "^port@[0-1]$":
        type: object
        additionalProperties: false
        description: Port to PHY

        properties:
          reg:
            minimum: 0
            maximum: 1

          phy-handle:
            maxItems: 1

          phy-mode:
            maxItems: 1

          nvmem-cells:
            items:
              - description: nvmem cell address of MAC address

          nvmem-cell-names:
            description: names corresponding to the nvmem cells
            items:
              - const: mac-address

        required:
          - reg
          - phy-handle
          - phy-mode
          - nvmem-cells
          - nvmem-cell-names

  mdio:
    $ref: mdio.yaml#
    unevaluatedProperties: false

additionalProperties: false

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - resets
  - pinctrl-0
  - pinctrl-names
  - ethernet-ports
  - mdio

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
 
    ethernet@9c108000 {
        compatible = "sunplus,sp7021-emac";
        reg = <0x9c108000 0x400>;
        interrupt-parent = <&intc>;
        interrupts = <66 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&clkc 0xa7>;
        resets = <&rstc 0x97>;
        pinctrl-0 = <&emac_demo_board_v3_pins>;
        pinctrl-names = "default";
 
        ethernet-ports {
            #address-cells = <1>;
            #size-cells = <0>;
 
            port@0 {
                reg = <0>;
                phy-handle = <&eth_phy0>;
                phy-mode = "rmii";
                nvmem-cells = <&mac_addr0>;
                nvmem-cell-names = "mac-address";
            };
 
            port@1 {
                reg = <1>;
                phy-handle = <&eth_phy1>;
                phy-mode = "rmii";
                nvmem-cells = <&mac_addr1>;
                nvmem-cell-names = "mac-address";
            };
        };
 
        mdio {
            #address-cells = <1>;
            #size-cells = <0>;
 
            eth_phy0: ethernet-phy@0 {
                reg = <0>;
            };
 
            eth_phy1: ethernet-phy@1 {
                reg = <1>;
            };
        };
    };
...