1# Bluetooth Isochronous Channel configuration options
2
3# Copyright (c) 2016 Intel Corporation
4# Copyright (c) 2021 Nordic Semiconductor ASA
5# SPDX-License-Identifier: Apache-2.0
6
7config BT_ISO
8	bool
9
10# TODO: Split between client (central) and server (peripheral)
11config BT_ISO_UNICAST
12	bool
13	depends on BT_CONN
14	select BT_ISO
15	help
16	  This option enables support for Bluetooth Unicast
17	  Isochronous channels.
18
19config BT_ISO_PERIPHERAL
20	bool "Bluetooth Isochronous Channel Unicast Peripheral Support [EXPERIMENTAL]"
21	depends on !BT_CTLR || BT_CTLR_PERIPHERAL_ISO_SUPPORT
22	select BT_PERIPHERAL
23	select BT_ISO_UNICAST
24	select EXPERIMENTAL
25	help
26	  This option enables support for Bluetooth Unicast
27	  Isochronous channels for the peripheral role.
28
29config BT_ISO_CENTRAL
30	bool "Bluetooth Isochronous Channel Unicast Central Support [EXPERIMENTAL]"
31	depends on !BT_CTLR || BT_CTLR_CENTRAL_ISO_SUPPORT
32	select BT_CENTRAL
33	select BT_ISO_UNICAST
34	select EXPERIMENTAL
35	help
36	  This option enables support for Bluetooth Broadcast
37	  Isochronous channels for the central role.
38
39config BT_ISO_BROADCAST
40	bool
41	select BT_ISO
42	select BT_EXT_ADV
43
44config BT_ISO_BROADCASTER
45	bool "Bluetooth Isochronous Broadcaster Support [EXPERIMENTAL]"
46	depends on !BT_CTLR || BT_CTLR_ADV_ISO_SUPPORT
47	select BT_ISO_BROADCAST
48	select BT_BROADCASTER
49	select BT_PER_ADV
50	select EXPERIMENTAL
51	help
52	  This option enables support for the Bluetooth Isochronous Broadcaster.
53
54config BT_ISO_SYNC_RECEIVER
55	bool "Bluetooth Isochronous Synchronized Receiver Support [EXPERIMENTAL]"
56	depends on !BT_CTLR || BT_CTLR_SYNC_ISO_SUPPORT
57	select BT_ISO_BROADCAST
58	select BT_OBSERVER
59	select BT_PER_ADV_SYNC
60	select EXPERIMENTAL
61	help
62	  This option enables support for the Bluetooth Isochronous
63	  Synchronized Receiver.
64
65if BT_ISO
66
67config BT_ISO_MAX_CHAN
68	int "Maximum number of simultaneous ISO channels"
69	depends on BT_ISO
70	default BT_MAX_CONN if BT_CONN
71	default 1
72	range 1 64
73	help
74	  Maximum number of simultaneous Bluetooth isochronous channels
75	  supported.
76
77config BT_ISO_TX_BUF_COUNT
78	int "Number of Isochronous TX buffers"
79	default 1
80	range 1 255
81	help
82	  Number of buffers available for outgoing Isochronous channel SDUs.
83
84config BT_ISO_TX_FRAG_COUNT
85	int "Number of ISO TX fragment buffers"
86	default 2
87	range 0 255
88	help
89	  Number of buffers available for fragments of TX buffers. Warning:
90	  setting this to 0 means that the application must ensure that
91	  queued TX buffers never need to be fragmented, i.e. that the
92	  controller's buffer size is large enough. If this is not ensured,
93	  and there are no dedicated fragment buffers, a deadlock may occur.
94	  In most cases the default value of 2 is a safe bet.
95
96config BT_ISO_TX_MTU
97	int "Maximum supported MTU for Isochronous TX buffers"
98	default 251
99	range 1 4095
100	help
101	  Maximum MTU for Isochronous channels TX buffers.
102
103config BT_ISO_RX_BUF_COUNT
104	int "Number of Isochronous RX buffers"
105	default 1
106	range 1 255
107	help
108	  Number of buffers available for incoming Isochronous channel SDUs.
109
110config BT_ISO_RX_MTU
111	int "Maximum supported MTU for Isochronous RX buffers"
112	default 251
113	range 23 4095
114	help
115	  Maximum MTU for Isochronous channels RX buffers.
116
117if BT_ISO_UNICAST
118
119config BT_ISO_MAX_CIG
120	int "Maximum number of Connected Isochronous Groups (CIGs) to support"
121	default 1
122	help
123	  Maximum number of CIGs that are supported by the host. A CIG can be
124	  used for either transmitting or receiving.
125
126endif # BT_ISO_UNICAST
127
128if BT_ISO_BROADCAST
129
130config BT_ISO_MAX_BIG
131	int "Maximum number of Broadcast Isochronous Groups (BIGs) to support"
132	default 1
133	help
134	  Maximum number of BIGs that are supported by the host. A BIG can be
135	  used for either transmitting or receiving, but not at the same time.
136
137endif # BT_ISO_BROADCAST
138endif # BT_ISO
139