# 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>;
        };
    };
