root/drivers/bluetooth/btintel.h

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

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. btintel_check_bdaddr
  2. btintel_enter_mfg
  3. btintel_exit_mfg
  4. btintel_set_bdaddr
  5. btintel_set_diag
  6. btintel_set_diag_mfg
  7. btintel_hw_error
  8. btintel_version_info
  9. btintel_secure_send
  10. btintel_load_ddc_config
  11. btintel_set_event_mask
  12. btintel_set_event_mask_mfg
  13. btintel_read_version
  14. btintel_regmap_init
  15. btintel_send_intel_reset
  16. btintel_read_boot_params
  17. btintel_download_firmware

   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  *
   4  *  Bluetooth support for Intel devices
   5  *
   6  *  Copyright (C) 2015  Intel Corporation
   7  */
   8 
   9 struct intel_version {
  10         u8 status;
  11         u8 hw_platform;
  12         u8 hw_variant;
  13         u8 hw_revision;
  14         u8 fw_variant;
  15         u8 fw_revision;
  16         u8 fw_build_num;
  17         u8 fw_build_ww;
  18         u8 fw_build_yy;
  19         u8 fw_patch_num;
  20 } __packed;
  21 
  22 struct intel_boot_params {
  23         __u8     status;
  24         __u8     otp_format;
  25         __u8     otp_content;
  26         __u8     otp_patch;
  27         __le16   dev_revid;
  28         __u8     secure_boot;
  29         __u8     key_from_hdr;
  30         __u8     key_type;
  31         __u8     otp_lock;
  32         __u8     api_lock;
  33         __u8     debug_lock;
  34         bdaddr_t otp_bdaddr;
  35         __u8     min_fw_build_nn;
  36         __u8     min_fw_build_cw;
  37         __u8     min_fw_build_yy;
  38         __u8     limited_cce;
  39         __u8     unlocked_state;
  40 } __packed;
  41 
  42 struct intel_bootup {
  43         __u8     zero;
  44         __u8     num_cmds;
  45         __u8     source;
  46         __u8     reset_type;
  47         __u8     reset_reason;
  48         __u8     ddc_status;
  49 } __packed;
  50 
  51 struct intel_secure_send_result {
  52         __u8     result;
  53         __le16   opcode;
  54         __u8     status;
  55 } __packed;
  56 
  57 struct intel_reset {
  58         __u8     reset_type;
  59         __u8     patch_enable;
  60         __u8     ddc_reload;
  61         __u8     boot_option;
  62         __le32   boot_param;
  63 } __packed;
  64 
  65 #if IS_ENABLED(CONFIG_BT_INTEL)
  66 
  67 int btintel_check_bdaddr(struct hci_dev *hdev);
  68 int btintel_enter_mfg(struct hci_dev *hdev);
  69 int btintel_exit_mfg(struct hci_dev *hdev, bool reset, bool patched);
  70 int btintel_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr);
  71 int btintel_set_diag(struct hci_dev *hdev, bool enable);
  72 int btintel_set_diag_mfg(struct hci_dev *hdev, bool enable);
  73 void btintel_hw_error(struct hci_dev *hdev, u8 code);
  74 
  75 void btintel_version_info(struct hci_dev *hdev, struct intel_version *ver);
  76 int btintel_secure_send(struct hci_dev *hdev, u8 fragment_type, u32 plen,
  77                         const void *param);
  78 int btintel_load_ddc_config(struct hci_dev *hdev, const char *ddc_name);
  79 int btintel_set_event_mask(struct hci_dev *hdev, bool debug);
  80 int btintel_set_event_mask_mfg(struct hci_dev *hdev, bool debug);
  81 int btintel_read_version(struct hci_dev *hdev, struct intel_version *ver);
  82 
  83 struct regmap *btintel_regmap_init(struct hci_dev *hdev, u16 opcode_read,
  84                                    u16 opcode_write);
  85 int btintel_send_intel_reset(struct hci_dev *hdev, u32 boot_param);
  86 int btintel_read_boot_params(struct hci_dev *hdev,
  87                              struct intel_boot_params *params);
  88 int btintel_download_firmware(struct hci_dev *dev, const struct firmware *fw,
  89                               u32 *boot_param);
  90 #else
  91 
  92 static inline int btintel_check_bdaddr(struct hci_dev *hdev)
  93 {
  94         return -EOPNOTSUPP;
  95 }
  96 
  97 static inline int btintel_enter_mfg(struct hci_dev *hdev)
  98 {
  99         return -EOPNOTSUPP;
 100 }
 101 
 102 static inline int btintel_exit_mfg(struct hci_dev *hdev, bool reset, bool patched)
 103 {
 104         return -EOPNOTSUPP;
 105 }
 106 
 107 static inline int btintel_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr)
 108 {
 109         return -EOPNOTSUPP;
 110 }
 111 
 112 static inline int btintel_set_diag(struct hci_dev *hdev, bool enable)
 113 {
 114         return -EOPNOTSUPP;
 115 }
 116 
 117 static inline int btintel_set_diag_mfg(struct hci_dev *hdev, bool enable)
 118 {
 119         return -EOPNOTSUPP;
 120 }
 121 
 122 static inline void btintel_hw_error(struct hci_dev *hdev, u8 code)
 123 {
 124 }
 125 
 126 static inline void btintel_version_info(struct hci_dev *hdev,
 127                                         struct intel_version *ver)
 128 {
 129 }
 130 
 131 static inline int btintel_secure_send(struct hci_dev *hdev, u8 fragment_type,
 132                                       u32 plen, const void *param)
 133 {
 134         return -EOPNOTSUPP;
 135 }
 136 
 137 static inline int btintel_load_ddc_config(struct hci_dev *hdev,
 138                                           const char *ddc_name)
 139 {
 140         return -EOPNOTSUPP;
 141 }
 142 
 143 static inline int btintel_set_event_mask(struct hci_dev *hdev, bool debug)
 144 {
 145         return -EOPNOTSUPP;
 146 }
 147 
 148 static inline int btintel_set_event_mask_mfg(struct hci_dev *hdev, bool debug)
 149 {
 150         return -EOPNOTSUPP;
 151 }
 152 
 153 static inline int btintel_read_version(struct hci_dev *hdev,
 154                                        struct intel_version *ver)
 155 {
 156         return -EOPNOTSUPP;
 157 }
 158 
 159 static inline struct regmap *btintel_regmap_init(struct hci_dev *hdev,
 160                                                  u16 opcode_read,
 161                                                  u16 opcode_write)
 162 {
 163         return ERR_PTR(-EINVAL);
 164 }
 165 
 166 static inline int btintel_send_intel_reset(struct hci_dev *hdev,
 167                                            u32 reset_param)
 168 {
 169         return -EOPNOTSUPP;
 170 }
 171 
 172 static inline int btintel_read_boot_params(struct hci_dev *hdev,
 173                                            struct intel_boot_params *params)
 174 {
 175         return -EOPNOTSUPP;
 176 }
 177 
 178 static inline int btintel_download_firmware(struct hci_dev *dev,
 179                                             const struct firmware *fw,
 180                                             u32 *boot_param)
 181 {
 182         return -EOPNOTSUPP;
 183 }
 184 #endif

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