diff options
Diffstat (limited to 'io-module/mts_io.h')
-rw-r--r-- | io-module/mts_io.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/io-module/mts_io.h b/io-module/mts_io.h index 6cd1189..e9282cc 100644 --- a/io-module/mts_io.h +++ b/io-module/mts_io.h @@ -2,6 +2,53 @@ #ifndef __MTS_IO_H #define __MTS_IO_H +#if !__KERNEL__ +#include <stdint.h> + +#ifndef BIT +#define BIT(nr) (1UL << (nr)) +#endif +#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 */ |