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_FW_H__ 30*aebdb1e2SAdrian Chadd #define __ATH3K_FW_H__ 31*aebdb1e2SAdrian Chadd 32*aebdb1e2SAdrian Chadd /* 33*aebdb1e2SAdrian Chadd * XXX TODO: ensure that the endian-ness of this stuff is 34*aebdb1e2SAdrian Chadd * correct! 35*aebdb1e2SAdrian Chadd */ 36*aebdb1e2SAdrian Chadd struct ath3k_version { 37*aebdb1e2SAdrian Chadd unsigned int rom_version; 38*aebdb1e2SAdrian Chadd unsigned int build_version; 39*aebdb1e2SAdrian Chadd unsigned int ram_version; 40*aebdb1e2SAdrian Chadd unsigned char ref_clock; 41*aebdb1e2SAdrian Chadd unsigned char reserved[0x07]; 42*aebdb1e2SAdrian Chadd }; 43*aebdb1e2SAdrian Chadd 44*aebdb1e2SAdrian Chadd struct ath3k_firmware { 45*aebdb1e2SAdrian Chadd char *fwname; 46*aebdb1e2SAdrian Chadd int len; /* firmware length */ 47*aebdb1e2SAdrian Chadd int size; /* buffer size */ 48*aebdb1e2SAdrian Chadd unsigned char *buf; 49*aebdb1e2SAdrian Chadd }; 50*aebdb1e2SAdrian Chadd 51*aebdb1e2SAdrian Chadd extern int ath3k_fw_read(struct ath3k_firmware *fw, const char *fwname); 52*aebdb1e2SAdrian Chadd extern void ath3k_fw_free(struct ath3k_firmware *fw); 53*aebdb1e2SAdrian Chadd 54*aebdb1e2SAdrian Chadd #endif 55