diff options
author | Mike Fiore <mfiore@multitech.com> | 2014-04-24 12:44:58 -0500 |
---|---|---|
committer | Mike Fiore <mfiore@multitech.com> | 2014-04-24 12:44:58 -0500 |
commit | c58590d525d218e66c8b18cfaf72e7e87bede27e (patch) | |
tree | 1445b0317adda1786db430e866bee94dd0d5e860 /io-module/mts_eeprom.h | |
parent | a9f57dbc22669120270114a6fccebe5cf971df02 (diff) | |
download | mts-io-c58590d525d218e66c8b18cfaf72e7e87bede27e.tar.gz mts-io-c58590d525d218e66c8b18cfaf72e7e87bede27e.tar.bz2 mts-io-c58590d525d218e66c8b18cfaf72e7e87bede27e.zip |
mts-io: move DEVICE_CAPA* macros and other useful definitions to mts_eeprom.h
Diffstat (limited to 'io-module/mts_eeprom.h')
-rw-r--r-- | io-module/mts_eeprom.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/io-module/mts_eeprom.h b/io-module/mts_eeprom.h index 56b2871..6295fc4 100644 --- a/io-module/mts_eeprom.h +++ b/io-module/mts_eeprom.h @@ -1,6 +1,8 @@ #ifndef __MTS_EEPROM_H #define __MTS_EEPROM_H +#include <stdint.h> + /* on-board EEPROM */ struct mts_id_eeprom_layout { char vendor_id[32]; @@ -25,4 +27,29 @@ struct mts_dc_eeprom_layout { uint8_t reserved[378]; }; +#define DEVICE_CAPA_INDEX(c) (((c) & 0xFF) >> 3) +#define DEVICE_CAPA_MASK(c) BIT((c) & 0x07) + +#define DEVICE_CAPA(capa_buf, c) ((capa_buf)[DEVICE_CAPA_INDEX(c)] & DEVICE_CAPA_MASK(c)) + +#define DEVICE_CAPA_SET(capa_buf, c) \ +do { \ + (capa_buf)[DEVICE_CAPA_INDEX(c)] |= DEVICE_CAPA_MASK(c); \ +}while (0) + +#define DEVICE_CAPA_CLEAR(capa_buf, c) \ +do { \ + (capa_buf)[DEVICE_CAPA_INDEX(c)] &= ~DEVICE_CAPA_MASK(c); \ +} while (0) + +#define DEVICE_CAPA_VALUE(index, bit) ((((index) & 0x1F) << 3) | ((bit) & 0x07)) + +#define CAPA_GPS DEVICE_CAPA_VALUE(0, 7) +#define CAPA_DIN DEVICE_CAPA_VALUE(0, 6) +#define CAPA_DOUT DEVICE_CAPA_VALUE(0, 5) +#define CAPA_ADC DEVICE_CAPA_VALUE(0, 4) + +#define CAPA_BLUETOOTH DEVICE_CAPA_VALUE(1, 7) +#define CAPA_WIFI DEVICE_CAPA_VALUE(1, 6) + #endif |