Texas Instruments Bluetooth Chips
---------------------------------

This documents the binding structure and common properties for serial
attached TI Bluetooth devices. The following chips are included in this
binding:

* TI CC256x Bluetooth devices
* TI WiLink 7/8 (wl12xx/wl18xx) Shared Transport BT/FM/GPS devices

TI WiLink devices have a UART interface for providing Bluetooth, FM radio,
and GPS over what's called "shared transport". The shared transport is
standard BT HCI protocol with additional channels for the other functions.

TI WiLink devices also have a separate WiFi interface as described in
wireless/ti,wlcore.txt.

This bindings follows the UART slave device binding in ../serial/serial.yaml.

Required properties:
 - compatible: should be one of the following:
    "ti,cc2560"
    "ti,wl1271-st"
    "ti,wl1273-st"
    "ti,wl1281-st"
    "ti,wl1283-st"
    "ti,wl1285-st"
    "ti,wl1801-st"
    "ti,wl1805-st"
    "ti,wl1807-st"
    "ti,wl1831-st"
    "ti,wl1835-st"
    "ti,wl1837-st"

Optional properties:
 - enable-gpios : GPIO signal controlling enabling of BT. Active high.
 - vio-supply : Vio input supply (1.8V)
 - vbat-supply : Vbat input supply (2.9-4.8V)
 - clocks : Must contain an entry, for each entry in clock-names.
   See ../clocks/clock-bindings.txt for details.
 - clock-names : Must include the following entry:
   "ext_clock" (External clock provided to the TI combo chip).
 - nvmem-cells: phandle to nvmem data cell that contains a 6 byte BD address
   with the most significant byte first (big-endian).
 - nvmem-cell-names: "bd-address" (required when nvmem-cells is specified)

Example:

&serial0 {
	compatible = "ns16550a";
	...
	bluetooth {
		compatible = "ti,wl1835-st";
		enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
		clocks = <&clk32k_wl18xx>;
		clock-names = "ext_clock";
		nvmem-cells = <&bd_address>;
		nvmem-cell-names = "bd-address";
	};
};
