summaryrefslogtreecommitdiff
path: root/src/rfid_asic_rc632.c
diff options
context:
space:
mode:
authorlaforge <laforge@e0336214-984f-0b4b-a45f-81c69e1f0ede>2005-11-08 10:34:18 +0000
committerlaforge <laforge@e0336214-984f-0b4b-a45f-81c69e1f0ede>2005-11-08 10:34:18 +0000
commit7600eb5ebbb8ac0f7532e7e7ae6cb5d4dc29d30b (patch)
treef38665192c50bdcbbda8e74d00f585ced5cea63b /src/rfid_asic_rc632.c
parent27e8fe5394184505e09318d3691761da59ecdff5 (diff)
- better layering abstraciton
- differentiate between library internal definitions and public ones - implement getopt/setopt like get/setsockopt - offer speed changing controls git-svn-id: https://svn.gnumonks.org/trunk/librfid@1662 e0336214-984f-0b4b-a45f-81c69e1f0ede
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