* Texas Instruments wl12xx/wl18xx wireless lan controller

The wl12xx/wl18xx chips can be connected via SPI or via SDIO. This
document describes the binding for the SPI connected chip.

Required properties:
- compatible :          Should be one of the following:
    * "ti,wl1271"
    * "ti,wl1273"
    * "ti,wl1281"
    * "ti,wl1283"
    * "ti,wl1801"
    * "ti,wl1805"
    * "ti,wl1807"
    * "ti,wl1831"
    * "ti,wl1835"
    * "ti,wl1837"
- reg :                 Chip select address of device
- spi-max-frequency :   Maximum SPI clocking speed of device in Hz
- interrupt-parent, interrupts :
                        Should contain parameters for 1 interrupt line.
                        Interrupt parameters: parent, line number, type.
- vwlan-supply :        Point the node of the regulator that powers/enable the
                        wl12xx/wl18xx chip

Optional properties:
- ref-clock-frequency : Reference clock frequency (should be set for wl12xx)
- clock-xtal :          boolean, clock is generated from XTAL

- Please consult Documentation/devicetree/bindings/spi/spi-bus.txt
  for optional SPI connection related properties,

Examples:

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

For wl18xx family:
&spi0 {
	wlcore: wlcore@0 {
		compatible = "ti,wl1835";
		reg = <0>;
		spi-max-frequency = <48000000>;
		interrupt-parent = <&gpio0>;
		interrupts = <27 IRQ_TYPE_EDGE_RISING>;
		vwlan-supply = <&vwlan_fixed>;
	};
};
