Re: Query regarding Bluetooth Controller Porting
Pankaj Singh <PANKAJ.SINGH@...>
Hi Carles,toggle quoted messageShow quoted text
Thanks for sharing the information. We are planning to use uart-H4 protocol and it’s a dual mode controller.
My understanding is that H4tl module on controller side will be interacting with Zephyr BT host over uart and hence there needs to be zephyr based hci driver needed in the controller as well. Please correct me if my understanding is wrong. The hci driver needs to register via bt_hci_driver_register(const struct bt_hci_driver *drv) to send/receive payload with zephyr bt host.
Zephyr Host -> custom controller payload flow :
bt_send() -> struct bt_hci_driver: h4_send() -> h4: net_buf_put() -> uart_tx_queue -> hci driver controller: struct bt_hci_driver drv: send() ->h4 custom controller for further processing.
Controller -> host payload flow :
H4 of custom controller -> hci driver controller: bt_buf_get_rx() -> bt_recv() -> bt_dev.rx_queue -> bt host: hci_rx_thread().
From: Cufi, Carles <Carles.Cufi@nordicsemi.no>
Sent: Wednesday, December 9, 2020 3:14 PM
To: firstname.lastname@example.org; Pankaj Singh <PANKAJ.SINGH@onsemi.com>; email@example.com
Subject: RE: [Zephyr-users] Query regarding Bluetooth Controller Porting
[External Email]: This email arrived from an external source - Please exercise caution when opening any attachments or clicking on links.
+ devel list
If you are using a dual-chip solution, then as long as you controller complies with standard HCI there is no "porting" to do whatsoever.
In order to better understand what you need, can you let us know which transport do you plan on using (UART/H4, 3-wire/H3 or SPI) and whether it is a single-mode or dual-mode controller?
Unless your controllers has special requirements it should all be a matter of configuring the right Kconfig options and Devicetree nodes.