brintos

brintos / linux-shallow public Read only

0
0
Text · 2.5 KiB · b4cb242 Raw
118 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 *4 *  Bluetooth support for Broadcom devices5 *6 *  Copyright (C) 2015  Intel Corporation7 */8 9#define BCM_UART_CLOCK_48MHZ	0x0110#define BCM_UART_CLOCK_24MHZ	0x0211 12struct bcm_update_uart_baud_rate {13	__le16 zero;14	__le32 baud_rate;15} __packed;16 17struct bcm_write_uart_clock_setting {18	__u8 type;19} __packed;20 21struct bcm_set_sleep_mode {22	__u8 sleep_mode;23	__u8 idle_host;24	__u8 idle_dev;25	__u8 bt_wake_active;26	__u8 host_wake_active;27	__u8 allow_host_sleep;28	__u8 combine_modes;29	__u8 tristate_control;30	__u8 usb_auto_sleep;31	__u8 usb_resume_timeout;32	__u8 break_to_host;33	__u8 pulsed_host_wake;34} __packed;35 36struct bcm_set_pcm_int_params {37	__u8 routing;38	__u8 rate;39	__u8 frame_sync;40	__u8 sync_mode;41	__u8 clock_mode;42} __packed;43 44struct bcm_set_pcm_format_params {45	__u8 lsb_first;46	__u8 fill_value;47	__u8 fill_method;48	__u8 fill_num;49	__u8 right_justify;50} __packed;51 52#if IS_ENABLED(CONFIG_BT_BCM)53 54int btbcm_check_bdaddr(struct hci_dev *hdev);55int btbcm_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr);56int btbcm_patchram(struct hci_dev *hdev, const struct firmware *fw);57int btbcm_read_pcm_int_params(struct hci_dev *hdev,58			      struct bcm_set_pcm_int_params *params);59int btbcm_write_pcm_int_params(struct hci_dev *hdev,60			       const struct bcm_set_pcm_int_params *params);61 62int btbcm_setup_patchram(struct hci_dev *hdev);63int btbcm_setup_apple(struct hci_dev *hdev);64 65int btbcm_initialize(struct hci_dev *hdev, bool *fw_load_done, bool use_autobaud_mode);66int btbcm_finalize(struct hci_dev *hdev, bool *fw_load_done, bool use_autobaud_mode);67 68#else69 70static inline int btbcm_check_bdaddr(struct hci_dev *hdev)71{72	return -EOPNOTSUPP;73}74 75static inline int btbcm_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr)76{77	return -EOPNOTSUPP;78}79 80static inline int btbcm_read_pcm_int_params(struct hci_dev *hdev,81			      struct bcm_set_pcm_int_params *params)82{83	return -EOPNOTSUPP;84}85 86static inline int btbcm_write_pcm_int_params(struct hci_dev *hdev,87			       const struct bcm_set_pcm_int_params *params)88{89	return -EOPNOTSUPP;90}91 92static inline int btbcm_patchram(struct hci_dev *hdev, const struct firmware *fw)93{94	return -EOPNOTSUPP;95}96 97static inline int btbcm_setup_patchram(struct hci_dev *hdev)98{99	return 0;100}101 102static inline int btbcm_setup_apple(struct hci_dev *hdev)103{104	return 0;105}106 107static inline int btbcm_initialize(struct hci_dev *hdev, bool *fw_load_done, bool use_autobaud_mode)108{109	return 0;110}111 112static inline int btbcm_finalize(struct hci_dev *hdev, bool *fw_load_done, bool use_autobaud_mode)113{114	return 0;115}116 117#endif118