| /* |
| * DHD Linux header file (dhd_linux exports for cfg80211 and other components) |
| * |
| * Copyright (C) 1999-2016, Broadcom Corporation |
| * |
| * Unless you and Broadcom execute a separate written software license |
| * agreement governing use of this software, this software is licensed to you |
| * under the terms of the GNU General Public License version 2 (the "GPL"), |
| * available at http://www.broadcom.com/licenses/GPLv2.php, with the |
| * following added to such license: |
| * |
| * As a special exception, the copyright holders of this software give you |
| * permission to link this software with independent modules, and to copy and |
| * distribute the resulting executable under terms of your choice, provided that |
| * you also meet, for each linked independent module, the terms and conditions of |
| * the license of that module. An independent module is a module which is not |
| * derived from this software. The special exception does not apply to any |
| * modifications of the software. |
| * |
| * Notwithstanding the above, under no circumstances may you combine this |
| * software in any way with any other Broadcom software provided under a license |
| * other than the GPL, without Broadcom's express prior written consent. |
| * |
| * $Id: dhd_linux.h 399301 2013-04-29 21:41:52Z $ |
| */ |
| |
| /* wifi platform functions for power, interrupt and pre-alloc, either |
| * from Android-like platform device data, or Broadcom wifi platform |
| * device data. |
| * |
| */ |
| #ifndef __DHD_LINUX_H__ |
| #define __DHD_LINUX_H__ |
| |
| #include <linux/kernel.h> |
| #include <linux/init.h> |
| #include <dngl_stats.h> |
| #include <dhd.h> |
| |
| #define DHD_REGISTRATION_TIMEOUT 12000 /* msec : allowed time to finished dhd registration */ |
| |
| typedef struct wifi_adapter_info { |
| const char *name; |
| uint irq_num; |
| uint intr_flags; |
| const char *fw_path; |
| const char *nv_path; |
| void *wifi_plat_data; /* wifi ctrl func, for backward compatibility */ |
| uint bus_type; |
| uint bus_num; |
| uint slot_num; |
| #ifdef OOB_PARAM |
| uint oob_disable; |
| #endif /* OOB_PARAM */ |
| } wifi_adapter_info_t; |
| |
| typedef struct bcmdhd_wifi_platdata { |
| uint num_adapters; |
| wifi_adapter_info_t *adapters; |
| } bcmdhd_wifi_platdata_t; |
| |
| int dhd_wifi_platform_register_drv(void); |
| void dhd_wifi_platform_unregister_drv(void); |
| wifi_adapter_info_t* dhd_wifi_platform_get_adapter(uint32 bus_type, uint32 bus_num, |
| uint32 slot_num); |
| int wifi_platform_set_power(wifi_adapter_info_t *adapter, bool on, unsigned long msec); |
| int wifi_platform_bus_enumerate(wifi_adapter_info_t *adapter, bool device_present); |
| int wifi_platform_get_irq_number(wifi_adapter_info_t *adapter, unsigned long *irq_flags_ptr); |
| int wifi_platform_get_mac_addr(wifi_adapter_info_t *adapter, unsigned char *buf); |
| void *wifi_platform_get_country_code(wifi_adapter_info_t *adapter, char *ccode); |
| void* wifi_platform_prealloc(wifi_adapter_info_t *adapter, int section, unsigned long size); |
| void* wifi_platform_get_prealloc_func_ptr(wifi_adapter_info_t *adapter); |
| |
| int dhd_get_fw_mode(struct dhd_info *dhdinfo); |
| bool dhd_update_fw_nv_path(struct dhd_info *dhdinfo); |
| |
| #endif /* __DHD_LINUX_H__ */ |