diff options
Diffstat (limited to 'src/mts_io.h')
-rw-r--r-- | src/mts_io.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/mts_io.h b/src/mts_io.h new file mode 100644 index 0000000..fa84e53 --- /dev/null +++ b/src/mts_io.h @@ -0,0 +1,52 @@ + +#ifndef __MTS_IO_H +#define __MTS_IO_H + +#include <stdint.h> + +#ifndef BIT +#define BIT(nr) (1UL << (nr)) +#endif + +#define VENDOR_ID_MULTITECH "Multi-Tech Systems" +#define PRODUCT_ID_MTCDP_E1_DK "MTCDP-E1-DK" + +#define HW_VERSION_MTCBA2_2_0 "MTCBA2-2.0" +#define HW_VERSION_MTCDP_0_0 "MTCDP-0.0" +#define HW_VERSION_MTCDP_1_0 "MTCDP-1.0" + +#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) + +struct mts_id_eeprom_layout { + char vendor_id[32]; + char product_id[32]; + char device_id[32]; + char hw_version[32]; + uint8_t mac_addr[6]; + char imei[32]; + uint8_t capa[32]; + uint8_t reserved[314]; +}; + +#endif /* ~__MTS_IO_H */ + |