summaryrefslogtreecommitdiffstats
path: root/dts/Bindings/net/wireless/ti,wlcore.yaml
blob: e31456730e9fa3531e650f0c2a131bf189134c9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/wireless/ti,wlcore.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Texas Instruments Wilink 6/7/8 (wl12xx/wl18xx) Wireless LAN Controller

maintainers:
  - Tony Lindgren <tony@atomide.com>

description:
  The wl12xx/wl18xx chips can be connected via SPI or via SDIO.
  Note that the *-clock-frequency properties assume internal clocks.  In case
  of external clocks, new bindings (for parsing the clock nodes) have to be
  added.

properties:
  compatible:
    enum:
      - ti,wl1271
      - ti,wl1273
      - ti,wl1281
      - ti,wl1283
      - ti,wl1285
      - ti,wl1801
      - ti,wl1805
      - ti,wl1807
      - ti,wl1831
      - ti,wl1835
      - ti,wl1837

  reg:
    maxItems: 1
    description:
      This is required when connected via SPI, and optional when connected via
      SDIO.

  interrupts:
    minItems: 1
    maxItems: 2

  interrupt-names:
    items:
      - const: irq
      - const: wakeup

  vwlan-supply:
    description:
      Points to the node of the regulator that powers/enable the wl12xx/wl18xx
      chip.  This is required when connected via SPI.


  ref-clock-frequency:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: Reference clock frequency.

  tcxo-clock-frequency:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: TCXO clock frequency.

  clock-xtal:
    $ref: /schemas/types.yaml#/definitions/flag
    description: Indicates that the clock is generated from XTAL.

required:
  - compatible
  - interrupts

allOf:
  - $ref: /schemas/spi/spi-peripheral-props.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - ti,wl1271
              - ti,wl1273
              - ti,wl1281
              - ti,wl1283
    then:
      required:
        - ref-clock-frequency

unevaluatedProperties: false

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

    // For wl12xx family:
    spi1 {
            #address-cells = <1>;
            #size-cells = <0>;

            wlcore1: wlcore@1 {
                    compatible = "ti,wl1271";
                    reg = <1>;
                    spi-max-frequency = <48000000>;
                    interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
                    vwlan-supply = <&vwlan_fixed>;
                    clock-xtal;
                    ref-clock-frequency = <38400000>;
            };
    };

    // For wl18xx family:
    spi2 {
            #address-cells = <1>;
            #size-cells = <0>;

            wlcore2: wlcore@0 {
                    compatible = "ti,wl1835";
                    reg = <0>;
                    spi-max-frequency = <48000000>;
                    interrupts = <27 IRQ_TYPE_EDGE_RISING>;
                    vwlan-supply = <&vwlan_fixed>;
            };
    };

    // SDIO example:
    mmc3 {
            vmmc-supply = <&wlan_en_reg>;
            bus-width = <4>;
            cap-power-off-card;
            keep-power-in-suspend;

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

            wlcore3: wlcore@2 {
                    compatible = "ti,wl1835";
                    reg = <2>;
                    interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
            };
    };