1762133d6SGeert Uytterhoeven# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2762133d6SGeert Uytterhoeven%YAML 1.2
3762133d6SGeert Uytterhoeven---
4762133d6SGeert Uytterhoeven$id: http://devicetree.org/schemas/net/wireless/ti,wlcore.yaml#
5762133d6SGeert Uytterhoeven$schema: http://devicetree.org/meta-schemas/core.yaml#
6762133d6SGeert Uytterhoeven
7762133d6SGeert Uytterhoeventitle: Texas Instruments Wilink 6/7/8 (wl12xx/wl18xx) Wireless LAN Controller
8762133d6SGeert Uytterhoeven
9762133d6SGeert Uytterhoevenmaintainers:
10762133d6SGeert Uytterhoeven  - Tony Lindgren <tony@atomide.com>
11762133d6SGeert Uytterhoeven
12762133d6SGeert Uytterhoevendescription:
13762133d6SGeert Uytterhoeven  The wl12xx/wl18xx chips can be connected via SPI or via SDIO.
14762133d6SGeert Uytterhoeven  Note that the *-clock-frequency properties assume internal clocks.  In case
15762133d6SGeert Uytterhoeven  of external clocks, new bindings (for parsing the clock nodes) have to be
16762133d6SGeert Uytterhoeven  added.
17762133d6SGeert Uytterhoeven
18762133d6SGeert Uytterhoevenproperties:
19762133d6SGeert Uytterhoeven  compatible:
20762133d6SGeert Uytterhoeven    enum:
21762133d6SGeert Uytterhoeven      - ti,wl1271
22762133d6SGeert Uytterhoeven      - ti,wl1273
23762133d6SGeert Uytterhoeven      - ti,wl1281
24762133d6SGeert Uytterhoeven      - ti,wl1283
25762133d6SGeert Uytterhoeven      - ti,wl1285
26762133d6SGeert Uytterhoeven      - ti,wl1801
27762133d6SGeert Uytterhoeven      - ti,wl1805
28762133d6SGeert Uytterhoeven      - ti,wl1807
29762133d6SGeert Uytterhoeven      - ti,wl1831
30762133d6SGeert Uytterhoeven      - ti,wl1835
31762133d6SGeert Uytterhoeven      - ti,wl1837
32762133d6SGeert Uytterhoeven
33762133d6SGeert Uytterhoeven  reg:
34762133d6SGeert Uytterhoeven    maxItems: 1
35762133d6SGeert Uytterhoeven    description:
36762133d6SGeert Uytterhoeven      This is required when connected via SPI, and optional when connected via
37762133d6SGeert Uytterhoeven      SDIO.
38762133d6SGeert Uytterhoeven
39762133d6SGeert Uytterhoeven  interrupts:
40762133d6SGeert Uytterhoeven    minItems: 1
41762133d6SGeert Uytterhoeven    maxItems: 2
42762133d6SGeert Uytterhoeven
43762133d6SGeert Uytterhoeven  interrupt-names:
44762133d6SGeert Uytterhoeven    items:
45762133d6SGeert Uytterhoeven      - const: irq
46762133d6SGeert Uytterhoeven      - const: wakeup
47762133d6SGeert Uytterhoeven
48762133d6SGeert Uytterhoeven  vwlan-supply:
49762133d6SGeert Uytterhoeven    description:
50762133d6SGeert Uytterhoeven      Points to the node of the regulator that powers/enable the wl12xx/wl18xx
51762133d6SGeert Uytterhoeven      chip.  This is required when connected via SPI.
52762133d6SGeert Uytterhoeven
53762133d6SGeert Uytterhoeven
54762133d6SGeert Uytterhoeven  ref-clock-frequency:
554e71ed98SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
56762133d6SGeert Uytterhoeven    description: Reference clock frequency.
57762133d6SGeert Uytterhoeven
58762133d6SGeert Uytterhoeven  tcxo-clock-frequency:
594e71ed98SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
60762133d6SGeert Uytterhoeven    description: TCXO clock frequency.
61762133d6SGeert Uytterhoeven
62762133d6SGeert Uytterhoeven  clock-xtal:
63762133d6SGeert Uytterhoeven    $ref: /schemas/types.yaml#/definitions/flag
64762133d6SGeert Uytterhoeven    description: Indicates that the clock is generated from XTAL.
65762133d6SGeert Uytterhoeven
66762133d6SGeert Uytterhoevenrequired:
67762133d6SGeert Uytterhoeven  - compatible
68762133d6SGeert Uytterhoeven  - interrupts
69762133d6SGeert Uytterhoeven
7015273b7bSKrzysztof KozlowskiallOf:
7115273b7bSKrzysztof Kozlowski  - $ref: /schemas/spi/spi-peripheral-props.yaml#
7215273b7bSKrzysztof Kozlowski  - if:
73762133d6SGeert Uytterhoeven      properties:
74762133d6SGeert Uytterhoeven        compatible:
75762133d6SGeert Uytterhoeven          contains:
76762133d6SGeert Uytterhoeven            enum:
77762133d6SGeert Uytterhoeven              - ti,wl1271
78762133d6SGeert Uytterhoeven              - ti,wl1273
79762133d6SGeert Uytterhoeven              - ti,wl1281
80762133d6SGeert Uytterhoeven              - ti,wl1283
81762133d6SGeert Uytterhoeven    then:
82762133d6SGeert Uytterhoeven      required:
83762133d6SGeert Uytterhoeven        - ref-clock-frequency
84762133d6SGeert Uytterhoeven
8515273b7bSKrzysztof KozlowskiunevaluatedProperties: false
86762133d6SGeert Uytterhoeven
87762133d6SGeert Uytterhoevenexamples:
88762133d6SGeert Uytterhoeven  - |
89762133d6SGeert Uytterhoeven    #include <dt-bindings/interrupt-controller/irq.h>
90762133d6SGeert Uytterhoeven
91762133d6SGeert Uytterhoeven    // For wl12xx family:
92*20a72af1SRob Herring    spi {
93762133d6SGeert Uytterhoeven        #address-cells = <1>;
94762133d6SGeert Uytterhoeven        #size-cells = <0>;
95762133d6SGeert Uytterhoeven
96762133d6SGeert Uytterhoeven        wlcore1: wlcore@1 {
97762133d6SGeert Uytterhoeven            compatible = "ti,wl1271";
98762133d6SGeert Uytterhoeven            reg = <1>;
99762133d6SGeert Uytterhoeven            spi-max-frequency = <48000000>;
100762133d6SGeert Uytterhoeven            interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
101762133d6SGeert Uytterhoeven            vwlan-supply = <&vwlan_fixed>;
102762133d6SGeert Uytterhoeven            clock-xtal;
103762133d6SGeert Uytterhoeven            ref-clock-frequency = <38400000>;
104762133d6SGeert Uytterhoeven        };
105762133d6SGeert Uytterhoeven    };
106762133d6SGeert Uytterhoeven
107*20a72af1SRob Herring  - |
108*20a72af1SRob Herring    #include <dt-bindings/interrupt-controller/irq.h>
109*20a72af1SRob Herring
110762133d6SGeert Uytterhoeven    // For wl18xx family:
111*20a72af1SRob Herring    spi {
112762133d6SGeert Uytterhoeven        #address-cells = <1>;
113762133d6SGeert Uytterhoeven        #size-cells = <0>;
114762133d6SGeert Uytterhoeven
115762133d6SGeert Uytterhoeven        wlcore2: wlcore@0 {
116762133d6SGeert Uytterhoeven            compatible = "ti,wl1835";
117762133d6SGeert Uytterhoeven            reg = <0>;
118762133d6SGeert Uytterhoeven            spi-max-frequency = <48000000>;
119762133d6SGeert Uytterhoeven            interrupts = <27 IRQ_TYPE_EDGE_RISING>;
120762133d6SGeert Uytterhoeven            vwlan-supply = <&vwlan_fixed>;
121762133d6SGeert Uytterhoeven        };
122762133d6SGeert Uytterhoeven    };
123762133d6SGeert Uytterhoeven
124*20a72af1SRob Herring  - |
125*20a72af1SRob Herring    #include <dt-bindings/interrupt-controller/irq.h>
126*20a72af1SRob Herring
127762133d6SGeert Uytterhoeven    // SDIO example:
128762133d6SGeert Uytterhoeven    mmc3 {
129762133d6SGeert Uytterhoeven        vmmc-supply = <&wlan_en_reg>;
130762133d6SGeert Uytterhoeven        bus-width = <4>;
131762133d6SGeert Uytterhoeven        cap-power-off-card;
132762133d6SGeert Uytterhoeven        keep-power-in-suspend;
133762133d6SGeert Uytterhoeven
134762133d6SGeert Uytterhoeven        #address-cells = <1>;
135762133d6SGeert Uytterhoeven        #size-cells = <0>;
136762133d6SGeert Uytterhoeven
137762133d6SGeert Uytterhoeven        wlcore3: wlcore@2 {
138762133d6SGeert Uytterhoeven            compatible = "ti,wl1835";
139762133d6SGeert Uytterhoeven            reg = <2>;
140762133d6SGeert Uytterhoeven            interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
141762133d6SGeert Uytterhoeven        };
142762133d6SGeert Uytterhoeven    };
143