Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 40db5f0e authored by Ilya Faenson's avatar Ilya Faenson Committed by Marcel Holtmann
Browse files

Bluetooth: btbcm: Support the BCM4354 Bluetooth UART device



Support the BCM4354 chip and introduce vendor specific command
parameter definitions.

Signed-off-by: default avatarIlya Faenson <ifaenson@broadcom.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent 5c698e8b
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -243,6 +243,7 @@ static const struct {
} bcm_uart_subver_table[] = {
} bcm_uart_subver_table[] = {
	{ 0x410e, "BCM43341B0"	},	/* 002.001.014 */
	{ 0x410e, "BCM43341B0"	},	/* 002.001.014 */
	{ 0x4406, "BCM4324B3"	},	/* 002.004.006 */
	{ 0x4406, "BCM4324B3"	},	/* 002.004.006 */
	{ 0x610c, "BCM4354"	},	/* 003.001.012 */
	{ }
	{ }
};
};


@@ -279,6 +280,7 @@ int btbcm_initialize(struct hci_dev *hdev, char *fw_name, size_t len)


	switch ((rev & 0xf000) >> 12) {
	switch ((rev & 0xf000) >> 12) {
	case 0:
	case 0:
	case 1:
	case 3:
	case 3:
		for (i = 0; bcm_uart_subver_table[i].name; i++) {
		for (i = 0; bcm_uart_subver_table[i].name; i++) {
			if (subver == bcm_uart_subver_table[i].subver) {
			if (subver == bcm_uart_subver_table[i].subver) {
+31 −0
Original line number Original line Diff line number Diff line
@@ -33,6 +33,37 @@ struct bcm_write_uart_clock_setting {
	__u8 type;
	__u8 type;
} __packed;
} __packed;


struct bcm_set_sleep_mode {
	__u8 sleep_mode;
	__u8 idle_host;
	__u8 idle_dev;
	__u8 bt_wake_active;
	__u8 host_wake_active;
	__u8 allow_host_sleep;
	__u8 combine_modes;
	__u8 tristate_control;
	__u8 usb_auto_sleep;
	__u8 usb_resume_timeout;
	__u8 pulsed_host_wake;
	__u8 break_to_host;
} __packed;

struct bcm_set_pcm_int_params {
	__u8 routing;
	__u8 rate;
	__u8 frame_sync;
	__u8 sync_mode;
	__u8 clock_mode;
} __packed;

struct bcm_set_pcm_format_params {
	__u8 lsb_first;
	__u8 fill_value;
	__u8 fill_method;
	__u8 fill_num;
	__u8 right_justify;
} __packed;

#if IS_ENABLED(CONFIG_BT_BCM)
#if IS_ENABLED(CONFIG_BT_BCM)


int btbcm_check_bdaddr(struct hci_dev *hdev);
int btbcm_check_bdaddr(struct hci_dev *hdev);