1*aebdb1e2SAdrian Chadd /*- 2*aebdb1e2SAdrian Chadd * Copyright (c) 2013 Adrian Chadd <adrian@freebsd.org> 3*aebdb1e2SAdrian Chadd * All rights reserved. 4*aebdb1e2SAdrian Chadd * 5*aebdb1e2SAdrian Chadd * Redistribution and use in source and binary forms, with or without 6*aebdb1e2SAdrian Chadd * modification, are permitted provided that the following conditions 7*aebdb1e2SAdrian Chadd * are met: 8*aebdb1e2SAdrian Chadd * 1. Redistributions of source code must retain the above copyright 9*aebdb1e2SAdrian Chadd * notice, this list of conditions and the following disclaimer, 10*aebdb1e2SAdrian Chadd * without modification. 11*aebdb1e2SAdrian Chadd * 2. Redistributions in binary form must reproduce at minimum a disclaimer 12*aebdb1e2SAdrian Chadd * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any 13*aebdb1e2SAdrian Chadd * redistribution must be conditioned upon including a substantially 14*aebdb1e2SAdrian Chadd * similar Disclaimer requirement for further binary redistribution. 15*aebdb1e2SAdrian Chadd * 16*aebdb1e2SAdrian Chadd * NO WARRANTY 17*aebdb1e2SAdrian Chadd * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18*aebdb1e2SAdrian Chadd * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19*aebdb1e2SAdrian Chadd * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY 20*aebdb1e2SAdrian Chadd * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 21*aebdb1e2SAdrian Chadd * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, 22*aebdb1e2SAdrian Chadd * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23*aebdb1e2SAdrian Chadd * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24*aebdb1e2SAdrian Chadd * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 25*aebdb1e2SAdrian Chadd * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26*aebdb1e2SAdrian Chadd * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 27*aebdb1e2SAdrian Chadd * THE POSSIBILITY OF SUCH DAMAGES. 28*aebdb1e2SAdrian Chadd */ 29*aebdb1e2SAdrian Chadd #ifndef __ATH3K_HW_H__ 30*aebdb1e2SAdrian Chadd #define __ATH3K_HW_H__ 31*aebdb1e2SAdrian Chadd 32*aebdb1e2SAdrian Chadd #define ATH3K_DNLOAD 0x01 33*aebdb1e2SAdrian Chadd #define ATH3K_GETSTATE 0x05 34*aebdb1e2SAdrian Chadd #define ATH3K_SET_NORMAL_MODE 0x07 35*aebdb1e2SAdrian Chadd #define ATH3K_GETVERSION 0x09 36*aebdb1e2SAdrian Chadd #define USB_REG_SWITCH_VID_PID 0x0a 37*aebdb1e2SAdrian Chadd 38*aebdb1e2SAdrian Chadd #define ATH3K_MODE_MASK 0x3F 39*aebdb1e2SAdrian Chadd #define ATH3K_NORMAL_MODE 0x0E 40*aebdb1e2SAdrian Chadd 41*aebdb1e2SAdrian Chadd #define ATH3K_PATCH_UPDATE 0x80 42*aebdb1e2SAdrian Chadd #define ATH3K_SYSCFG_UPDATE 0x40 43*aebdb1e2SAdrian Chadd 44*aebdb1e2SAdrian Chadd #define ATH3K_XTAL_FREQ_26M 0x00 45*aebdb1e2SAdrian Chadd #define ATH3K_XTAL_FREQ_40M 0x01 46*aebdb1e2SAdrian Chadd #define ATH3K_XTAL_FREQ_19P2 0x02 47*aebdb1e2SAdrian Chadd #define ATH3K_NAME_LEN 0xFF 48*aebdb1e2SAdrian Chadd 49*aebdb1e2SAdrian Chadd #define USB_REQ_DFU_DNLOAD 1 50*aebdb1e2SAdrian Chadd #define BULK_SIZE 4096 51*aebdb1e2SAdrian Chadd #define FW_HDR_SIZE 20 52*aebdb1e2SAdrian Chadd 53*aebdb1e2SAdrian Chadd extern int ath3k_load_fwfile(struct libusb_device_handle *hdl, 54*aebdb1e2SAdrian Chadd const struct ath3k_firmware *fw); 55*aebdb1e2SAdrian Chadd extern int ath3k_get_state(struct libusb_device_handle *hdl, 56*aebdb1e2SAdrian Chadd unsigned char *state); 57*aebdb1e2SAdrian Chadd extern int ath3k_get_version(struct libusb_device_handle *hdl, 58*aebdb1e2SAdrian Chadd struct ath3k_version *version); 59*aebdb1e2SAdrian Chadd extern int ath3k_load_patch(libusb_device_handle *hdl, const char *fw_path); 60*aebdb1e2SAdrian Chadd extern int ath3k_load_syscfg(libusb_device_handle *hdl, const char *fw_path); 61*aebdb1e2SAdrian Chadd extern int ath3k_set_normal_mode(libusb_device_handle *hdl); 62*aebdb1e2SAdrian Chadd extern int ath3k_switch_pid(libusb_device_handle *hdl); 63*aebdb1e2SAdrian Chadd 64*aebdb1e2SAdrian Chadd #endif 65