1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/wireless/ti,wlcore.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Texas Instruments Wilink 6/7/8 (wl12xx/wl18xx) Wireless LAN Controller
8
9maintainers:
10  - Tony Lindgren <tony@atomide.com>
11
12description:
13  The wl12xx/wl18xx chips can be connected via SPI or via SDIO.
14  Note that the *-clock-frequency properties assume internal clocks.  In case
15  of external clocks, new bindings (for parsing the clock nodes) have to be
16  added.
17
18properties:
19  compatible:
20    enum:
21      - ti,wl1271
22      - ti,wl1273
23      - ti,wl1281
24      - ti,wl1283
25      - ti,wl1285
26      - ti,wl1801
27      - ti,wl1805
28      - ti,wl1807
29      - ti,wl1831
30      - ti,wl1835
31      - ti,wl1837
32
33  reg:
34    maxItems: 1
35    description:
36      This is required when connected via SPI, and optional when connected via
37      SDIO.
38
39  interrupts:
40    minItems: 1
41    maxItems: 2
42
43  interrupt-names:
44    items:
45      - const: irq
46      - const: wakeup
47
48  vwlan-supply:
49    description:
50      Points to the node of the regulator that powers/enable the wl12xx/wl18xx
51      chip.  This is required when connected via SPI.
52
53
54  ref-clock-frequency:
55    $ref: /schemas/types.yaml#/definitions/uint32
56    description: Reference clock frequency.
57
58  tcxo-clock-frequency:
59    $ref: /schemas/types.yaml#/definitions/uint32
60    description: TCXO clock frequency.
61
62  clock-xtal:
63    $ref: /schemas/types.yaml#/definitions/flag
64    description: Indicates that the clock is generated from XTAL.
65
66required:
67  - compatible
68  - interrupts
69
70allOf:
71  - $ref: /schemas/spi/spi-peripheral-props.yaml#
72  - if:
73      properties:
74        compatible:
75          contains:
76            enum:
77              - ti,wl1271
78              - ti,wl1273
79              - ti,wl1281
80              - ti,wl1283
81    then:
82      required:
83        - ref-clock-frequency
84
85unevaluatedProperties: false
86
87examples:
88  - |
89    #include <dt-bindings/interrupt-controller/irq.h>
90
91    // For wl12xx family:
92    spi {
93        #address-cells = <1>;
94        #size-cells = <0>;
95
96        wlcore1: wlcore@1 {
97            compatible = "ti,wl1271";
98            reg = <1>;
99            spi-max-frequency = <48000000>;
100            interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
101            vwlan-supply = <&vwlan_fixed>;
102            clock-xtal;
103            ref-clock-frequency = <38400000>;
104        };
105    };
106
107  - |
108    #include <dt-bindings/interrupt-controller/irq.h>
109
110    // For wl18xx family:
111    spi {
112        #address-cells = <1>;
113        #size-cells = <0>;
114
115        wlcore2: wlcore@0 {
116            compatible = "ti,wl1835";
117            reg = <0>;
118            spi-max-frequency = <48000000>;
119            interrupts = <27 IRQ_TYPE_EDGE_RISING>;
120            vwlan-supply = <&vwlan_fixed>;
121        };
122    };
123
124  - |
125    #include <dt-bindings/interrupt-controller/irq.h>
126
127    // SDIO example:
128    mmc3 {
129        vmmc-supply = <&wlan_en_reg>;
130        bus-width = <4>;
131        cap-power-off-card;
132        keep-power-in-suspend;
133
134        #address-cells = <1>;
135        #size-cells = <0>;
136
137        wlcore3: wlcore@2 {
138            compatible = "ti,wl1835";
139            reg = <2>;
140            interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
141        };
142    };
143