# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/microchip,lan8650.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Microchip LAN8650/1 10BASE-T1S MACPHY Ethernet Controllers

maintainers:
  - Parthiban Veerasooran <parthiban.veerasooran@microchip.com>

description:
  The LAN8650/1 combines a Media Access Controller (MAC) and an Ethernet
  PHY to enable 10BASE‑T1S networks. The Ethernet Media Access Controller
  (MAC) module implements a 10 Mbps half duplex Ethernet MAC, compatible
  with the IEEE 802.3 standard and a 10BASE-T1S physical layer transceiver
  integrated into the LAN8650/1. The communication between the Host and
  the MAC-PHY is specified in the OPEN Alliance 10BASE-T1x MACPHY Serial
  Interface (TC6).

allOf:
  - $ref: /schemas/net/ethernet-controller.yaml#
  - $ref: /schemas/spi/spi-peripheral-props.yaml#

properties:
  compatible:
    oneOf:
      - const: microchip,lan8650
      - items:
          - const: microchip,lan8651
          - const: microchip,lan8650

  reg:
    maxItems: 1

  interrupts:
    description:
      Interrupt from MAC-PHY asserted in the event of Receive Chunks
      Available, Transmit Chunk Credits Available and Extended Status
      Event.
    maxItems: 1

  spi-max-frequency:
    minimum: 15000000
    maximum: 25000000

required:
  - compatible
  - reg
  - interrupts
  - spi-max-frequency

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/gpio/gpio.h>

    spi {
      #address-cells = <1>;
      #size-cells = <0>;

      ethernet@0 {
        compatible = "microchip,lan8651", "microchip,lan8650";
        reg = <0>;
        pinctrl-names = "default";
        pinctrl-0 = <&eth0_pins>;
        interrupt-parent = <&gpio>;
        interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
        local-mac-address = [04 05 06 01 02 03];
        spi-max-frequency = <15000000>;
      };
    };
