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  spi-max-frequency: true
40
41  interrupts:
42    minItems: 1
43    maxItems: 2
44
45  interrupt-names:
46    items:
47      - const: irq
48      - const: wakeup
49
50  vwlan-supply:
51    description:
52      Points to the node of the regulator that powers/enable the wl12xx/wl18xx
53      chip.  This is required when connected via SPI.
54
55
56  ref-clock-frequency:
57    description: Reference clock frequency.
58
59  tcxo-clock-frequency:
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
70if:
71  properties:
72    compatible:
73      contains:
74        enum:
75          - ti,wl1271
76          - ti,wl1273
77          - ti,wl1281
78          - ti,wl1283
79then:
80  required:
81    - ref-clock-frequency
82
83additionalProperties: false
84
85examples:
86  - |
87    #include <dt-bindings/interrupt-controller/irq.h>
88
89    // For wl12xx family:
90    spi1 {
91            #address-cells = <1>;
92            #size-cells = <0>;
93
94            wlcore1: wlcore@1 {
95                    compatible = "ti,wl1271";
96                    reg = <1>;
97                    spi-max-frequency = <48000000>;
98                    interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
99                    vwlan-supply = <&vwlan_fixed>;
100                    clock-xtal;
101                    ref-clock-frequency = <38400000>;
102            };
103    };
104
105    // For wl18xx family:
106    spi2 {
107            #address-cells = <1>;
108            #size-cells = <0>;
109
110            wlcore2: wlcore@0 {
111                    compatible = "ti,wl1835";
112                    reg = <0>;
113                    spi-max-frequency = <48000000>;
114                    interrupts = <27 IRQ_TYPE_EDGE_RISING>;
115                    vwlan-supply = <&vwlan_fixed>;
116            };
117    };
118
119    // SDIO example:
120    mmc3 {
121            vmmc-supply = <&wlan_en_reg>;
122            bus-width = <4>;
123            cap-power-off-card;
124            keep-power-in-suspend;
125
126            #address-cells = <1>;
127            #size-cells = <0>;
128
129            wlcore3: wlcore@2 {
130                    compatible = "ti,wl1835";
131                    reg = <2>;
132                    interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
133            };
134    };
135