# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/bluetooth/ti,bluetooth.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Texas Instruments Bluetooth Chips

maintainers:
  - David Lechner <david@lechnology.com>

description: |
  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.yaml.

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

properties:
  compatible:
    enum:
      - 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

  enable-gpios:
    maxItems: 1

  vio-supply:
    description: Vio input supply (1.8V)

  vbat-supply:
    description: Vbat input supply (2.9-4.8V)

  clocks:
    maxItems: 1

  clock-names:
    items:
      - const: ext_clock

  max-speed:
    default: 3000000

  nvmem-cells:
    maxItems: 1
    description:
      Nvmem data cell that contains a 6 byte BD address with the most
      significant byte first (big-endian).

  nvmem-cell-names:
    items:
      - const: bd-address

required:
  - compatible

allOf:
  - $ref: /schemas/serial/serial-peripheral-props.yaml#

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>

    serial {
            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";
            };
    };
