1 #ifndef _RFID_ASIC_RC632_H
2 #define _RFID_ASIC_RC632_H
4 struct rfid_asic_transport_handle;
6 struct rfid_asic_rc632_transport {
8 int (*reg_write)(struct rfid_asic_transport_handle *rath,
11 int (*reg_read)(struct rfid_asic_transport_handle *rath,
13 unsigned char *value);
14 int (*fifo_write)(struct rfid_asic_transport_handle *rath,
16 const unsigned char *buf,
18 int (*fifo_read)(struct rfid_asic_transport_handle *rath,
24 struct rfid_asic_handle;
26 struct iso14443a_atqa;
27 struct iso14443a_anticol_cmd;
29 struct rfid_asic_rc632 {
31 int (*power_up)(struct rfid_asic_handle *h);
32 int (*power_down)(struct rfid_asic_handle *h);
33 int (*turn_on_rf)(struct rfid_asic_handle *h);
34 int (*turn_off_rf)(struct rfid_asic_handle *h);
35 int (*transcieve)(struct rfid_asic_handle *h,
36 const unsigned char *tx_buf,
38 unsigned char *rx_buf,
43 int (*init)(struct rfid_asic_handle *h);
44 int (*transcieve_sf)(struct rfid_asic_handle *h,
46 struct iso14443a_atqa *atqa);
47 int (*transcieve_acf)(struct rfid_asic_handle *h,
48 struct iso14443a_anticol_cmd *cmd,
49 unsigned int *bit_of_col);
52 int (*init)(struct rfid_asic_handle *h);
55 int (*init)(struct rfid_asic_handle *h);
60 struct rc632_transport_handle {
63 /* A handle to a specific RC632 chip */
64 struct rfid_asic_rc632_handle {
65 struct rc632_transport_handle th;
69 rc632_reg_write(struct rfid_asic_handle *handle,
74 rc632_reg_read(struct rfid_asic_handle *handle,
78 rc632_fifo_write(struct rfid_asic_handle *handle,
80 const unsigned char *buf,
84 rc632_fifo_read(struct rfid_asic_handle *handle,
89 rc632_set_bits(struct rfid_asic_handle *handle, unsigned char reg,
93 rc632_clear_bits(struct rfid_asic_handle *handle, unsigned char reg,
98 rc632_turn_on_rf(struct rfid_asic_handle *handle);
102 rc632_turn_off_rf(struct rfid_asic_handle *handle);
105 rc632_power_up(struct rfid_asic_handle *handle);
108 rc632_power_down(struct rfid_asic_handle *handle);
112 rc632_wait_idle(struct rfid_asic_handle *handle, unsigned int time);
115 rc632_transmit(struct rfid_asic_handle *handle,
116 const unsigned char *buf,
118 unsigned int timeout);
121 rc632_transcieve(struct rfid_asic_handle *handle,
122 const unsigned char *tx_buf,
123 unsigned char tx_len,
124 unsigned char *rx_buf,
125 unsigned char *rx_len,
127 unsigned int toggle);
130 rc632_read_eeprom(struct rfid_asic_handle *handle);
134 rc632_calc_crc16_from(struct rfid_asic_handle *handle);
137 rc632_register_dump(struct rfid_asic_handle *handle, unsigned char *buf);
140 struct rfid_asic_handle * rc632_open(struct rfid_asic_transport_handle *th);
143 extern struct rfid_asic rc632;