# Copyright (c) 2023 Cypress Semiconductor Corporation (an Infineon company) or
# an affiliate of Cypress Semiconductor Corporation
#
# SPDX-License-Identifier: Apache-2.0

description: |
    CYW43xxx Connectivity that uses Zephyr's Bluetooth Host Controller Interface UART
    driver.

    Example of enabling CYW43xxx device:

      &uart2 {
        status = "okay";
        current-speed = <115200>;

        /* HCI-UART pins*/
        pinctrl-0 = <&p3_1_scb2_uart_tx &p3_0_scb2_uart_rx
                     &p3_2_scb2_uart_rts &p3_3_scb2_uart_cts>;
        pinctrl-names = "default";

        /* HW Flow control must be enabled for HCI H4 */
        hw-flow-control;

        bt-hci {
          status = "okay";
          compatible = "infineon,cyw43xxx-bt-hci";
          bt-reg-on-gpios = <&gpio_prt3 4 (GPIO_ACTIVE_HIGH)>;

          fw-download-speed = <3000000>;
        };
      };

    NOTE1: The UART bus speed (current_speed) for zephyr_bt_uart should be the same
           as the default baudrate defined in CYW43xx firmware (default 115200).

    NOTE2: Use fw-download-speed and hci-operation-speed properties to configure UART
           speeds for firmware download (fw-download-speed) and HCI operation
           (hci-operation-speed).
           If hci-operation-speed or fw-download-speed are not defined in bt-hci node,
           cyw43xx driver will use bus/current-speed as default speed.

    NOTE3: CYW43xxx requires fetch binary files of BT controller. To fetch binary blobs:
           west blobs fetch hal_infineon

compatible: "infineon,cyw43xxx-bt-hci"

include: base.yaml

properties:
  bt-reg-on-gpios:
    description: |
      Power-up/down gpio to control the internal regulators used
      by the Bluetooth section of CYW43xx device.
    type: phandle-array

  bt-dev-wake-gpios:
    description: |
      Bluetooth device wake-up gpio. Signal from the host to the
      CYW43xx indicating that the host requires attention.
    type: phandle-array

  bt-host-wake-gpios:
    description: |
      Host wake-up gpio. Signal from the CYW43xx to the host
      indicating that the CYW43xx requires attention.
    type: phandle-array

  hci-operation-speed:
    type: int
    description: |
      HCI UART boudrate for feature operation. If not defined
      bus/current-speed will be used as default.

  fw-download-speed:
    type: int
    description: |
      HCI UART boudrate for FW download operation. If not defined
      bus/current-speed will be used as default.
