Bluetooth: Starting dev for TI CC256x support


Arnaud Mouiche
 

Hi all,

I wish to develop the required driver to interface Zephyr with the TI Bluetooth CC256x chipset family.
Here are the requirements:
a) Need to upload an initialization script (what they call a 'BTS' file), mainly a binary file which is sequence of action (HCI command, host baudrate change, delays...)
It is a mix of device configuration, firmware patching (new features like BLE support are enabled through the init script). Each silicon version may require a different init script content.
b) A basic protocol called HCILL to manage Host and/or adapter sleeping.


b) is described here:
https://processors.wiki.ti.com/index.php/CC256x_eHCILL_Low_Power_Protocol.
The Linux driver is also a good reference:
https://github.com/torvalds/linux/blob/master/drivers/bluetooth/hci_ll.c

a) Init process is described in
https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/tools/hciattach_ti.c

Questions:
- Is there already somebody working on the subject ?

- I'm interesting by some advice to manage such "binary initialisation script" file integration.
Here is what think to implement:
+ a python script to transform the initial binary BTS file into a C file where each action has been split in a array of strcut ready to be walk through by the driver.
+ the list of BTS files to embed in the firmware is managed in the cmake file of the board
+ the HCI driver performing init and power management can be implemented as a fresh copy of https://github.com/zephyrproject-rtos/zephyr/blob/master/drivers/bluetooth/hci/h4.c if I don't find easy way to manage a factorization.

Regards,
Arnaud

Join devel@lists.zephyrproject.org to automatically receive all group messages.