1 #ifndef _RFID_ASIC_RC632_H
2 #define _RFID_ASIC_RC632_H
4 struct rfid_asic_transport_handle;
6 #include <rfid/rfid_asic.h>
8 struct rfid_asic_rc632_transport {
10 int (*reg_write)(struct rfid_asic_transport_handle *rath,
13 int (*reg_read)(struct rfid_asic_transport_handle *rath,
16 int (*fifo_write)(struct rfid_asic_transport_handle *rath,
20 int (*fifo_read)(struct rfid_asic_transport_handle *rath,
26 struct rfid_asic_handle;
28 struct iso14443a_atqa;
29 struct iso14443a_anticol_cmd;
31 struct rfid_asic_rc632 {
33 int (*power_up)(struct rfid_asic_handle *h);
34 int (*power_down)(struct rfid_asic_handle *h);
35 int (*turn_on_rf)(struct rfid_asic_handle *h);
36 int (*turn_off_rf)(struct rfid_asic_handle *h);
37 int (*transcieve)(struct rfid_asic_handle *h,
39 const u_int32_t *tx_buf,
46 int (*init)(struct rfid_asic_handle *h);
47 int (*transcieve_sf)(struct rfid_asic_handle *h,
49 struct iso14443a_atqa *atqa);
50 int (*transcieve_acf)(struct rfid_asic_handle *h,
51 struct iso14443a_anticol_cmd *cmd,
52 unsigned int *bit_of_col);
55 int (*init)(struct rfid_asic_handle *h);
58 int (*init)(struct rfid_asic_handle *h);
61 int (*setkey)(struct rfid_asic_handle *h,
62 const unsigned char *key);
63 int (*auth)(struct rfid_asic_handle *h, u_int8_t cmd,
64 u_int32_t serno, u_int8_t block);
69 struct rc632_transport_handle {
72 /* A handle to a specific RC632 chip */
73 struct rfid_asic_rc632_handle {
74 struct rc632_transport_handle th;
79 rc632_reg_write(struct rfid_asic_handle *handle,
84 rc632_reg_read(struct rfid_asic_handle *handle,
88 rc632_fifo_write(struct rfid_asic_handle *handle,
94 rc632_fifo_read(struct rfid_asic_handle *handle,
99 rc632_set_bits(struct rfid_asic_handle *handle, u_int8_t reg,
103 rc632_clear_bits(struct rfid_asic_handle *handle, u_int32_t reg,
108 rc632_turn_on_rf(struct rfid_asic_handle *handle);
112 rc632_turn_off_rf(struct rfid_asic_handle *handle);
115 rc632_power_up(struct rfid_asic_handle *handle);
118 rc632_power_down(struct rfid_asic_handle *handle);
122 rc632_wait_idle(struct rfid_asic_handle *handle, u_int64_t time);
125 rc632_transmit(struct rfid_asic_handle *handle,
126 const u_int32_t *buf,
131 rc632_transcieve(struct rfid_asic_handle *handle,
132 const u_int32_t *tx_buf,
137 unsigned int toggle);
140 rc632_read_eeprom(struct rfid_asic_handle *handle);
144 rc632_calc_crc16_from(struct rfid_asic_handle *handle);
147 rc632_register_dump(struct rfid_asic_handle *handle, u_int32_t *buf);
150 struct rfid_asic_handle * rc632_open(struct rfid_asic_transport_handle *th);
153 extern struct rfid_asic rc632;