1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/micrel,ks8851.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Micrel KS8851 Ethernet MAC (SPI and Parallel bus options)
8
9maintainers:
10  - Marek Vasut <marex@denx.de>
11
12properties:
13  compatible:
14    enum:
15      - micrel,ks8851      # SPI bus option
16      - micrel,ks8851-mll  # Parallel bus option
17
18  interrupts:
19    maxItems: 1
20
21  reg:
22    minItems: 1
23    items:
24      - description: SPI or Parallel bus hardware address
25      - description: Parallel bus command mode address
26
27  reset-gpios:
28    maxItems: 1
29    description:
30      The reset_n input pin
31
32  vdd-supply:
33    description: |
34      Analog 3.3V supply for Ethernet MAC
35
36  vdd-io-supply:
37    description: |
38      Digital 1.8V IO supply for Ethernet MAC
39
40required:
41  - compatible
42  - reg
43  - interrupts
44
45allOf:
46  - $ref: ethernet-controller.yaml#
47  - if:
48      properties:
49        compatible:
50          contains:
51            const: micrel,ks8851
52    then:
53      $ref: /schemas/spi/spi-peripheral-props.yaml#
54      properties:
55        reg:
56          maxItems: 1
57  - if:
58      properties:
59        compatible:
60          contains:
61            const: micrel,ks8851-mll
62    then:
63      $ref: /schemas/memory-controllers/mc-peripheral-props.yaml#
64      properties:
65        reg:
66          minItems: 2
67
68unevaluatedProperties: false
69
70examples:
71  - |
72    /* SPI bus option */
73    spi {
74        #address-cells = <1>;
75        #size-cells = <0>;
76        ethernet@0 {
77            compatible = "micrel,ks8851";
78            reg = <0>;
79            interrupt-parent = <&msmgpio>;
80            interrupts = <90 8>;
81            vdd-supply = <&ext_l2>;
82            vdd-io-supply = <&pm8921_lvs6>;
83            reset-gpios = <&msmgpio 89 0>;
84        };
85    };
86  - |
87    #include <dt-bindings/interrupt-controller/irq.h>
88    /* Parallel bus option */
89    memory-controller {
90        #address-cells = <2>;
91        #size-cells = <1>;
92        ethernet@1,0 {
93            compatible = "micrel,ks8851-mll";
94            reg = <1 0x0 0x2>, <1 0x2 0x20000>;
95            interrupt-parent = <&gpioc>;
96            interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
97        };
98    };
99