root/drivers/bluetooth/btrtl.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. btrtl_initialize
  2. btrtl_free
  3. btrtl_download_firmware
  4. btrtl_setup_realtek
  5. btrtl_shutdown_realtek
  6. btrtl_get_uart_settings

   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  *  Bluetooth support for Realtek devices
   4  *
   5  *  Copyright (C) 2015 Endless Mobile, Inc.
   6  */
   7 
   8 #define RTL_FRAG_LEN 252
   9 
  10 #define rtl_dev_err(dev, fmt, ...) bt_dev_err(dev, "RTL: " fmt, ##__VA_ARGS__)
  11 #define rtl_dev_warn(dev, fmt, ...) bt_dev_warn(dev, "RTL: " fmt, ##__VA_ARGS__)
  12 #define rtl_dev_info(dev, fmt, ...) bt_dev_info(dev, "RTL: " fmt, ##__VA_ARGS__)
  13 #define rtl_dev_dbg(dev, fmt, ...) bt_dev_dbg(dev, "RTL: " fmt, ##__VA_ARGS__)
  14 
  15 struct btrtl_device_info;
  16 
  17 struct rtl_download_cmd {
  18         __u8 index;
  19         __u8 data[RTL_FRAG_LEN];
  20 } __packed;
  21 
  22 struct rtl_download_response {
  23         __u8 status;
  24         __u8 index;
  25 } __packed;
  26 
  27 struct rtl_rom_version_evt {
  28         __u8 status;
  29         __u8 version;
  30 } __packed;
  31 
  32 struct rtl_epatch_header {
  33         __u8 signature[8];
  34         __le32 fw_version;
  35         __le16 num_patches;
  36 } __packed;
  37 
  38 struct rtl_vendor_config_entry {
  39         __le16 offset;
  40         __u8 len;
  41         __u8 data[0];
  42 } __packed;
  43 
  44 struct rtl_vendor_config {
  45         __le32 signature;
  46         __le16 total_len;
  47         struct rtl_vendor_config_entry entry[0];
  48 } __packed;
  49 
  50 #if IS_ENABLED(CONFIG_BT_RTL)
  51 
  52 struct btrtl_device_info *btrtl_initialize(struct hci_dev *hdev,
  53                                            const char *postfix);
  54 void btrtl_free(struct btrtl_device_info *btrtl_dev);
  55 int btrtl_download_firmware(struct hci_dev *hdev,
  56                             struct btrtl_device_info *btrtl_dev);
  57 int btrtl_setup_realtek(struct hci_dev *hdev);
  58 int btrtl_shutdown_realtek(struct hci_dev *hdev);
  59 int btrtl_get_uart_settings(struct hci_dev *hdev,
  60                             struct btrtl_device_info *btrtl_dev,
  61                             unsigned int *controller_baudrate,
  62                             u32 *device_baudrate, bool *flow_control);
  63 
  64 #else
  65 
  66 static inline struct btrtl_device_info *btrtl_initialize(struct hci_dev *hdev,
  67                                                          const char *postfix)
  68 {
  69         return ERR_PTR(-EOPNOTSUPP);
  70 }
  71 
  72 static inline void btrtl_free(struct btrtl_device_info *btrtl_dev)
  73 {
  74 }
  75 
  76 static inline int btrtl_download_firmware(struct hci_dev *hdev,
  77                                           struct btrtl_device_info *btrtl_dev)
  78 {
  79         return -EOPNOTSUPP;
  80 }
  81 
  82 static inline int btrtl_setup_realtek(struct hci_dev *hdev)
  83 {
  84         return -EOPNOTSUPP;
  85 }
  86 
  87 static inline int btrtl_shutdown_realtek(struct hci_dev *hdev)
  88 {
  89         return -EOPNOTSUPP;
  90 }
  91 
  92 static inline int btrtl_get_uart_settings(struct hci_dev *hdev,
  93                                           struct btrtl_device_info *btrtl_dev,
  94                                           unsigned int *controller_baudrate,
  95                                           u32 *device_baudrate,
  96                                           bool *flow_control)
  97 {
  98         return -ENOENT;
  99 }
 100 
 101 #endif

/* [<][>][^][v][top][bottom][index][help] */