summaryrefslogtreecommitdiff
path: root/drivers/bluetooth/hci/Kconfig
blob: effbde7f45144b4b5acd54ffd9ebdae093717977 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
# Kconfig - Bluetooth drivers configuration options

#
# Copyright (c) 2016 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

comment "Bluetooth HCI Driver Options"

# Controller support is an HCI driver in itself, so these HCI driver
# options are only applicable if controller support hasn't been enabled.
if !BLUETOOTH_CONTROLLER

config BLUETOOTH_UART
	bool

choice
	prompt "Bluetooth HCI driver"
	default BLUETOOTH_H4

config BLUETOOTH_H4
	bool "H:4 UART"
	select UART_INTERRUPT_DRIVEN
	select BLUETOOTH_UART
	select BLUETOOTH_RECV_IS_RX_THREAD
	depends on SERIAL
	help
	  Bluetooth H:4 UART driver. Requires hardware flow control
	  lines to be available.

config BLUETOOTH_H5
	bool "H:5 UART [EXPERIMENTAL]"
	select UART_INTERRUPT_DRIVEN
	select BLUETOOTH_UART
	depends on SERIAL
	help
	  Bluetooth three-wire (H:5) UART driver. Implementation of HCI
	  Three-Wire UART Transport Layer.

config BLUETOOTH_SPI
	bool "SPI HCI"
	select SPI
	help
	  Supports Bluetooth ICs using SPI as the communication protocol.
	  HCI packets are sent and received as single Byte transferrs,
	  prepended after a known header.  Headers may vary per device, so
	  additional platform specific knowlege may need to be added as
	  devices are.  Current driver supports; ST X-NUCLEO BLE series.

config BLUETOOTH_NO_DRIVER
	bool "No default HCI driver"
	help
	  This is intended for unit tests where no internal driver
	  should be selected.

endchoice

endif # !BLUETOOTH_CONTROLLER

config BLUETOOTH_DEBUG_HCI_DRIVER
	bool "Bluetooth HCI driver debug"
	depends on BLUETOOTH_DEBUG
	help
	  This option enables debug support for the chosen
	  Bluetooth HCI driver

config BLUETOOTH_UART_ON_DEV_NAME
	string "Device Name of UART Device for Bluetooth"
	default "UART_0"
	depends on BLUETOOTH_UART
	help
	  This option specifies the name of UART device to be used
	  for Bluetooth.

config BLUETOOTH_SPI_DEV_NAME
	string "Device Name of SPI Device for Bluetooth"
	default "SPI_0"
	depends on BLUETOOTH_SPI
	help
	  This option specifies the name of SPI device to be used for Bluetooth.
	  On the controller side, this SPI device is used to encapsulate the
	  RAW HCI frames to send further up the stack. On the BLE stack side,
	  this device is used to reply back with HCI frames that are sent over
	  the air.

# Headroom that the driver needs for sending and receiving buffers.
# Add a new 'default' entry for each new driver.

# Needed headroom for outgoing buffers (to controller)
config BLUETOOTH_HCI_SEND_RESERVE
	int
	# Even if no driver is selected the following default is still
	# needed e.g. for unit tests.
	default 0
	default 0 if BLUETOOTH_H4
	default 1 if BLUETOOTH_H5
	default 1 if BLUETOOTH_SPI

# Needed headroom for incoming buffers (from controller)
config BLUETOOTH_HCI_RECV_RESERVE
	int
	# Even if no driver is selected the following default is still
	# needed e.g. for unit tests.
	default 0
	default 0 if BLUETOOTH_H4
	default 0 if BLUETOOTH_H5

if BLUETOOTH_SPI

config BLUETOOTH_SPI_CHIP_SELECT_DEV_NAME
	string "Chip Select (CS) line driver name"
	help
	  This option specifies the name of GPIO driver controlling
	  the Chip Select (CS) line.

config BLUETOOTH_SPI_IRQ_DEV_NAME
	string "IRQ line driver name"
	help
	  This option specifies the name of GPIO driver controlling
	  the chip's IRQ line.

config BLUETOOTH_SPI_RESET_DEV_NAME
	string "Reset line driver name"
	help
	  This option specifies the name of GPIO driver controlling
	  the chip's Reset line.

config BLUETOOTH_SPI_CHIP_SELECT_PIN
	int "SPI Chip Select (CS) line number"
	help
	  This option specifies the Chip Select (CS) line number on the SPI
	  device

config BLUETOOTH_SPI_IRQ_PIN
	int "SPI IRQ line number"
	help
	  This option specifies the IRQ line number on the SPI device

config BLUETOOTH_SPI_RESET_PIN
	int "SPI Reset line number"
	help
	  This option specifies the Reset line number on the SPI device

config BLUETOOTH_SPI_RX_BUFFER_SIZE
	int "Receive buffer length"
	default 96
	help
	  This option specifies the size of the RX buffer.  Try to keep this
	  as small as possible, since it's stored on the stack.

config BLUETOOTH_SPI_TX_BUFFER_SIZE
	int "Transmit buffer length"
	default 64
	help
	  This option specifies the size of the TX buffer.  Try to keep this
	  as small as possible, since it's stored on the stack.

config BLUETOOTH_SPI_MAX_CLK_FREQ
	int "Maximum clock frequency for the HCI SPI interface"
	default 5000000
	help
	  This option specifies the maximum clock rate the HCI SPI
	  interface is capable of running at.

endif # BLUETOOTH_SPI