Documentation / devicetree / bindings / net / wireless / ti,wlcore.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

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 137 138 139 140 141 142
# 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:
    spi {
        #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>;
        };
    };

  - |
    #include <dt-bindings/interrupt-controller/irq.h>
 
    // For wl18xx family:
    spi {
        #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>;
        };
    };

  - |
    #include <dt-bindings/interrupt-controller/irq.h>
 
    // 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>;
        };
    };