zephyr/samples/bluetooth/hci_ipc
Carles Cufi 9cf07bbdb5 bluetooth: Rename rpmsg HCI driver and sample to ipc
The existing driver and sample:

- drivers/bluetooth/hci/rpmsg
- samples/bluetooth/hci_rpmsg

are no longer correctly named, since they now use the IPC subsystem to
send and receive data. The IPC subsystem can use RPMsg as a transport,
but that is one of several selectable backends.

I initially wanted to deprecated both the BT_RPMSG Kconfig option as
well as the zephyr,bt-hci-rpmsg-ipc chosen node in Devicetree. However,
this proved to be undoable in the case of the Kconfig option. This is
because it's a choice option, and those have special behavior. In
particular, the only practical way to deprecate would've been to keep
the old Kconfig option outside the choice (much like it's done in this
commit) but then also add a 'depends on !BT_RPMSG' on each of the
remaining choice symbols *except* on the new BT_HCI_IPC one. This, however,
only works correctly for .conf files. If a board instead sets the
default BT_HCI_BUS_TYPE in the Kconfig.defconfig file then the Kconfig
tree parsing would fail, because it'd try to set it to a value
(BT_RPMSG) that is no longer part of the choice.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2023-11-02 08:32:20 +02:00
..
dts/arm/nordic
src
CMakeLists.txt
README.rst
debug_overlay.conf
nrf5340_cpunet_bis-bt_ll_sw_split.conf
nrf5340_cpunet_bt_mesh-bt_ll_sw_split.conf
nrf5340_cpunet_cis-bt_ll_sw_split.conf
nrf5340_cpunet_df-bt_ll_sw_split.conf
nrf5340_cpunet_df-bt_ll_sw_split.overlay
nrf5340_cpunet_iso-bt_ll_sw_split.conf
nrf5340_cpunet_iso_broadcast-bt_ll_sw_split.conf
nrf5340_cpunet_iso_central-bt_ll_sw_split.conf
nrf5340_cpunet_iso_peripheral-bt_ll_sw_split.conf
nrf5340_cpunet_iso_receive-bt_ll_sw_split.conf
prj.conf
sample.yaml

README.rst

.. _bluetooth-hci-ipc-sample:

Bluetooth: HCI IPC
##################

Overview
********

This sample exposes :ref:`bluetooth_controller` support
to another device or CPU using IPC subsystem.

Requirements
************

* A board with IPC subsystem and Bluetooth LE support

Building and Running
********************

This sample can be found under :zephyr_file:`samples/bluetooth/hci_ipc`
in the Zephyr tree.

To use this application, you need a board with a Bluetooth controller
and IPC support.
You can then build this application and flash it onto your board in
the usual way. See :ref:`boards` for board-specific building and
programming information.

To test this sample, you need a separate device/CPU that acts as Bluetooth
HCI IPC peer.
This sample is compatible with the HCI IPC driver provided by
Zephyr's Bluetooth :ref:`bt_hci_drivers` core. See the
:kconfig:option:`CONFIG_BT_HCI_IPC` configuration option for more information.

You might need to adjust the Kconfig configuration of this sample to make it
compatible with the peer application. For example, :kconfig:option:`CONFIG_BT_MAX_CONN`
must be equal to the maximum number of connections supported by the peer application.

Refer to :ref:`bluetooth-samples` for general information about Bluetooth samples.