summaryrefslogtreecommitdiff
path: root/src/rfid_asic_rc632.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/rfid_asic_rc632.c')
-rw-r--r--src/rfid_asic_rc632.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/rfid_asic_rc632.c b/src/rfid_asic_rc632.c
index 4377d73..e794a38 100644
--- a/src/rfid_asic_rc632.c
+++ b/src/rfid_asic_rc632.c
@@ -739,6 +739,22 @@ rc632_iso14443a_transcieve_acf(struct rfid_asic_handle *handle,
return 0;
}
+static int rc632_iso14443a_set_speed(struct rfid_asic_handle *handle,
+ u_int8_t rate)
+{
+ int rc;
+ u_int8_t reg;
+
+ rc = rc632_reg_read(handle, RC632_REG_CODER_CONTROL, &reg);
+ if (rc < 0)
+ return rc;
+
+ reg &= ~RC632_CDRDTRL_RATE_MASK;
+ reg |= (rate & RC632_CDRDTRL_RATE_MASK);
+
+ return rc632_reg_write(handle, RC632_REG_CODER_CONTROL, reg);
+}
+
static int rc632_iso14443b_init(struct rfid_asic_handle *handle)
{
int ret;
@@ -1279,6 +1295,7 @@ struct rfid_asic rc632 = {
.init = &rc632_iso14443a_init,
.transcieve_sf = &rc632_iso14443a_transcieve_sf,
.transcieve_acf = &rc632_iso14443a_transcieve_acf,
+ .set_speed = &rc632_iso14443a_set_speed,
},
.iso14443b = {
.init = &rc632_iso14443b_init,
personal git repositories of Harald Welte. Your mileage may vary