2 This project is free software: you can redistribute it and/or modify
3 it under the terms of the GNU General Public License as published by
4 the Free Software Foundation, either version 3 of the License, or
5 (at your option) any later version.
7 Multiprotocol is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 GNU General Public License for more details.
12 You should have received a copy of the GNU General Public License
13 along with Multiprotocol. If not, see <http://www.gnu.org/licenses/>.
16 #ifndef _IFACE_CYRF6936_H_
17 #define _IFACE_CYRF6936_H_
19 CYRF_00_CHANNEL
= 0x00,
20 CYRF_01_TX_LENGTH
= 0x01,
21 CYRF_02_TX_CTRL
= 0x02,
22 CYRF_03_TX_CFG
= 0x03,
23 CYRF_04_TX_IRQ_STATUS
= 0x04,
24 CYRF_05_RX_CTRL
= 0x05,
25 CYRF_06_RX_CFG
= 0x06,
26 CYRF_07_RX_IRQ_STATUS
= 0x07,
27 CYRF_08_RX_STATUS
= 0x08,
28 CYRF_09_RX_COUNT
= 0x09,
29 CYRF_0A_RX_LENGTH
= 0x0A,
30 CYRF_0B_PWR_CTRL
= 0x0B,
31 CYRF_0C_XTAL_CTRL
= 0x0C,
32 CYRF_0D_IO_CFG
= 0x0D,
33 CYRF_0E_GPIO_CTRL
= 0x0E,
34 CYRF_0F_XACT_CFG
= 0x0F,
35 CYRF_10_FRAMING_CFG
= 0x10,
36 CYRF_11_DATA32_THOLD
= 0x11,
37 CYRF_12_DATA64_THOLD
= 0x12,
39 CYRF_14_EOP_CTRL
= 0x14,
40 CYRF_15_CRC_SEED_LSB
= 0x15,
41 CYRF_16_CRC_SEED_MSB
= 0x16,
42 CYRF_17_TX_CRC_LSB
= 0x17,
43 CYRF_18_TX_CRC_MSB
= 0x18,
44 CYRF_19_RX_CRC_LSB
= 0x19,
45 CYRF_1A_RX_CRC_MSB
= 0x1A,
46 CYRF_1B_TX_OFFSET_LSB
= 0x1B,
47 CYRF_1C_TX_OFFSET_MSB
= 0x1C,
48 CYRF_1D_MODE_OVERRIDE
= 0x1D,
49 CYRF_1E_RX_OVERRIDE
= 0x1E,
50 CYRF_1F_TX_OVERRIDE
= 0x1F,
52 CYRF_20_TX_BUFFER
= 0x20,
53 CYRF_21_RX_BUFFER
= 0x21,
54 CYRF_22_SOP_CODE
= 0x22,
55 CYRF_23_DATA_CODE
= 0x23,
56 CYRF_24_PREAMBLE
= 0x24,
57 CYRF_25_MFG_ID
= 0x25,
59 CYRF_26_XTAL_CFG
= 0x26,
60 CYRF_27_CLK_OVERRIDE
= 0x27,
61 CYRF_28_CLK_EN
= 0x28,
62 CYRF_29_RX_ABORT
= 0x29,
63 CYRF_32_AUTO_CAL_TIME
= 0x32,
64 CYRF_35_AUTOCAL_OFFSET
= 0x35,
65 CYRF_39_ANALOG_CTRL
= 0x39,
76 FIND_CHANNEL_EVEN
= 1,
82 void CYRF_Initialize();
84 void CYRF_GetMfgData(u8 data[]);
86 void CYRF_SetTxRxMode(enum TXRX_State);
87 void CYRF_ConfigRFChannel(u8 ch);
88 void CYRF_SetPower(u8 power);
89 void CYRF_ConfigCRCSeed(u16 crc);
90 static void CYRF_StartReceive();
91 void CYRF_ConfigSOPCode(const u8 *sopcodes);
92 void CYRF_ConfigDataCode(const u8 *datacodes);
93 static u8 CYRF_ReadRSSI(u32 dodummyread);
94 static void CYRF_ReadDataPacket(u8 dpbuffer[]);
95 void CYRF_WriteDataPacket(const u8 dpbuffer[]);
96 static void CYRF_WriteDataPacketLen(const u8 dpbuffer[], u8 len);
97 void CYRF_WriteRegister(u8 address, u8 data);
98 u8 CYRF_ReadRegister(u8 address);
99 void CYRF_WritePreamble(u32 preamble);
101 void CYRF_FindBestChannels(u8 *channels, u8 len, u8 minspace, u8 minchan, u8 maxchan);