21#define ZYNQ_MOD_VER "1.6.1.2"
23#define ZYNQ_DRV_NAME "zynq"
25#define ZYNQ_DEV_NAME_FW "zynq_fw"
26#define ZYNQ_DEV_NAME_TRIGGER "zynq_trigger"
27#define ZYNQ_DEV_NAME_GPS "zynq_gps"
28#define ZYNQ_DEV_NAME_REG "zynq_reg"
29#define ZYNQ_DEV_NAME_CAN "zynq_can"
53#define ZYNQ_IOC_MAGIC ('z' << 12 | 'y' << 8 | 'n' << 4 | 'q')
117#define ZYNQ_GPS_VAL_SZ 12
118#define ZYNQ_IOC_GPS_GET _IOR(ZYNQ_IOC_MAGIC, IOC_GPS_GET, unsigned char *)
119#define ZYNQ_GPS_GPRMC_VAL_SZ 68
120#define ZYNQ_IOC_GPS_GPRMC_GET \
121 _IOR(ZYNQ_IOC_MAGIC, IOC_GPS_GPRMC_GET, unsigned char *)
124#define ZYNQ_IOC_TRIGGER_DISABLE \
125 _IOW(ZYNQ_IOC_MAGIC, IOC_TRIGGER_DISABLE, unsigned long)
126#define ZYNQ_IOC_TRIGGER_ENABLE_GPS \
127 _IOW(ZYNQ_IOC_MAGIC, IOC_TRIGGER_ENABLE_GPS, unsigned long)
128#define ZYNQ_IOC_TRIGGER_ENABLE_NOGPS \
129 _IOW(ZYNQ_IOC_MAGIC, IOC_TRIGGER_ENABLE_NOGPS, unsigned long)
130#define ZYNQ_IOC_TRIGGER_ENABLE_ONE_GPS \
131 _IOW(ZYNQ_IOC_MAGIC, IOC_TRIGGER_ENABLE_ONE_GPS, unsigned long)
132#define ZYNQ_IOC_TRIGGER_ENABLE_ONE_NOGPS \
133 _IOW(ZYNQ_IOC_MAGIC, IOC_TRIGGER_ENABLE_ONE_NOGPS, unsigned long)
134#define ZYNQ_IOC_TRIGGER_TIMESTAMP \
135 _IOW(ZYNQ_IOC_MAGIC, IOC_TRIGGER_TIMESTAMP, unsigned long)
136#define ZYNQ_IOC_TRIGGER_STATUS _IOR(ZYNQ_IOC_MAGIC, IOC_TRIGGER_STATUS, int *)
137#define ZYNQ_IOC_TRIGGER_STATUS_GPS \
138 _IOR(ZYNQ_IOC_MAGIC, IOC_TRIGGER_STATUS_GPS, int *)
139#define ZYNQ_IOC_TRIGGER_STATUS_PPS \
140 _IOR(ZYNQ_IOC_MAGIC, IOC_TRIGGER_STATUS_PPS, int *)
141#define ZYNQ_IOC_TRIGGER_FPS_SET \
142 _IOW(ZYNQ_IOC_MAGIC, IOC_TRIGGER_FPS_SET, int *)
143#define ZYNQ_IOC_TRIGGER_FPS_GET \
144 _IOW(ZYNQ_IOC_MAGIC, IOC_TRIGGER_FPS_GET, int *)
147#define GH_FPS_30_DEFAULT 0
152#define LI_FPS_30_DEFAULT 0
157#define BB_FPS_15_DEFAULT 0
161#define LD_FPS_5_DEFAULT 0
165#define ZYNQ_FPS_GH(fps) ((fps >> 12) & 0xf)
166#define ZYNQ_FPS_LI(fps) ((fps >> 8) & 0xf)
167#define ZYNQ_FPS_BB(fps) ((fps >> 4) & 0xf)
168#define ZYNQ_FPS_LD(fps) (fps & 0xf)
169#define ZYNQ_FPS_KEEP 0xf
170#define ZYNQ_FPS_KEEP_ALL 0xffff
171#define ZYNQ_FPS_ALL_DEFAULT 0
172#define ZYNQ_FPS_LI_DEFAULT 0xf0ff
174#define ZYNQ_FPS_SET_LI_ONLY(li_fps) (0xf0ff | (li_fps << 8))
175#define ZYNQ_FPS_VALIDATE_FAIL(fps) \
176 ((ZYNQ_FPS_GH(fps) > 3 && ZYNQ_FPS_GH(fps) != ZYNQ_FPS_KEEP) || \
177 (ZYNQ_FPS_LI(fps) > 3 && ZYNQ_FPS_LI(fps) != ZYNQ_FPS_KEEP) || \
178 (ZYNQ_FPS_BB(fps) > 2 && ZYNQ_FPS_BB(fps) != ZYNQ_FPS_KEEP) || \
179 (ZYNQ_FPS_LD(fps) > 2 && ZYNQ_FPS_LD(fps) != ZYNQ_FPS_KEEP))
182#define ZYNQ_FW_PADDING 0x00000000
183#define ZYNQ_FW_MSG_SZ 16
195#define ZYNQ_IOC_FW_IMAGE_UPLOAD_START \
196 _IOW(ZYNQ_IOC_MAGIC, IOC_FW_IMAGE_UPLOAD_START, unsigned long)
197#define ZYNQ_IOC_FW_IMAGE_UPLOAD \
198 _IOW(ZYNQ_IOC_MAGIC, IOC_FW_IMAGE_UPLOAD, ioc_zynq_fw_upload_t *)
199#define ZYNQ_IOC_FW_PL_UPDATE \
200 _IOW(ZYNQ_IOC_MAGIC, IOC_FW_PL_UPDATE, unsigned long)
201#define ZYNQ_IOC_FW_PS_UPDATE \
202 _IOW(ZYNQ_IOC_MAGIC, IOC_FW_PS_UPDATE, unsigned long)
203#define ZYNQ_IOC_FW_GET_VER _IOW(ZYNQ_IOC_MAGIC, IOC_FW_GET_VER, unsigned int *)
206#define ZYNQ_IOC_CAN_TX_TIMEOUT_SET \
207 _IOW(ZYNQ_IOC_MAGIC, IOC_CAN_TX_TIMEOUT_SET, unsigned long)
209#define ZYNQ_IOC_CAN_RX_TIMEOUT_SET \
210 _IOW(ZYNQ_IOC_MAGIC, IOC_CAN_RX_TIMEOUT_SET, unsigned long)
212#define ZYNQ_IOC_CAN_DEV_START \
213 _IOW(ZYNQ_IOC_MAGIC, IOC_CAN_DEV_START, unsigned long)
215#define ZYNQ_IOC_CAN_DEV_STOP \
216 _IOW(ZYNQ_IOC_MAGIC, IOC_CAN_DEV_STOP, unsigned long)
218#define ZYNQ_IOC_CAN_DEV_RESET \
219 _IOW(ZYNQ_IOC_MAGIC, IOC_CAN_DEV_RESET, unsigned long)
221#define ZYNQ_IOC_CAN_ID_ADD _IOW(ZYNQ_IOC_MAGIC, IOC_CAN_ID_ADD, unsigned long)
223#define ZYNQ_IOC_CAN_ID_DEL _IOW(ZYNQ_IOC_MAGIC, IOC_CAN_ID_DEL, unsigned long)
225#define ZYNQ_IOC_CAN_BAUDRATE_SET \
226 _IOW(ZYNQ_IOC_MAGIC, IOC_CAN_BAUDRATE_SET, unsigned long)
228#define ZYNQ_IOC_CAN_BAUDRATE_GET \
229 _IOW(ZYNQ_IOC_MAGIC, IOC_CAN_BAUDRATE_GET, unsigned long)
231#define ZYNQ_IOC_CAN_LOOPBACK_SET \
232 _IOW(ZYNQ_IOC_MAGIC, IOC_CAN_LOOPBACK_SET, unsigned long)
234#define ZYNQ_IOC_CAN_LOOPBACK_UNSET \
235 _IOW(ZYNQ_IOC_MAGIC, IOC_CAN_LOOPBACK_UNSET, unsigned long)
237#define ZYNQ_IOC_CAN_RECV _IOWR(ZYNQ_IOC_MAGIC, IOC_CAN_RECV, ioc_bcan_msg_t *)
239#define ZYNQ_IOC_CAN_SEND _IOWR(ZYNQ_IOC_MAGIC, IOC_CAN_SEND, ioc_bcan_msg_t *)
241#define ZYNQ_IOC_CAN_SEND_HIPRI \
242 _IOWR(ZYNQ_IOC_MAGIC, IOC_CAN_SEND_HIPRI, ioc_bcan_msg_t *)
244#define ZYNQ_IOC_CAN_GET_STATUS_ERR \
245 _IOR(ZYNQ_IOC_MAGIC, IOC_CAN_GET_STATUS_ERR, ioc_bcan_status_err_t *)
255#define ZYNQ_I2C_ID_JANUS 0x5c
256#define ZYNQ_I2C_ID_MAX 0x7f
264#define ZYNQ_IOC_REG_READ \
265 _IOR(ZYNQ_IOC_MAGIC, IOC_REG_READ, ioc_zynq_reg_acc_t *)
266#define ZYNQ_IOC_REG_WRITE \
267 _IOW(ZYNQ_IOC_MAGIC, IOC_REG_WRITE, ioc_zynq_reg_acc_t *)
268#define ZYNQ_IOC_REG_I2C_READ \
269 _IOR(ZYNQ_IOC_MAGIC, IOC_REG_I2C_READ, ioc_zynq_i2c_acc_t *)
270#define ZYNQ_IOC_REG_I2C_WRITE \
271 _IOW(ZYNQ_IOC_MAGIC, IOC_REG_I2C_WRITE, ioc_zynq_i2c_acc_t *)
273#define ZYNQ_IOC_REG_GPSPPS_EVENT_WAIT \
274 _IOW(ZYNQ_IOC_MAGIC, IOC_REG_GPSPPS_EVENT_WAIT, unsigned long)
unsigned int ioc_msg_num_done
unsigned int bcan_err_status
unsigned int bcan_err_count
unsigned int * ioc_zynq_fw_data
unsigned int ioc_zynq_fw_done
unsigned int ioc_zynq_fw_num
struct ioc_zynq_i2c_acc ioc_zynq_i2c_acc_t
struct ioc_bcan_msg ioc_bcan_msg_t
struct ioc_zynq_reg_acc ioc_zynq_reg_acc_t
struct ioc_zynq_fw_upload ioc_zynq_fw_upload_t
@ IOC_TRIGGER_ENABLE_ONE_GPS
@ IOC_TRIGGER_ENABLE_NOGPS
@ IOC_TRIGGER_ENABLE_ONE_NOGPS
struct ioc_bcan_status_err ioc_bcan_status_err_t
@ IOC_REG_GPSPPS_EVENT_WAIT
@ IOC_FW_IMAGE_UPLOAD_START