diff --git a/tools/include/atrf.h b/tools/include/atrf.h index fb66111..b5ffea5 100644 --- a/tools/include/atrf.h +++ b/tools/include/atrf.h @@ -40,6 +40,7 @@ void atrf_reset_rf(struct atrf_dsc *dsc); enum atrf_chip_id atrf_identify(struct atrf_dsc *dsc); int atrf_test_mode(struct atrf_dsc *dsc); +int atrf_slp_tr(struct atrf_dsc *dsc, int on); int atrf_set_clkm(struct atrf_dsc *dsc, int mhz); void atrf_reg_write(struct atrf_dsc *dsc, uint8_t reg, uint8_t value); diff --git a/tools/lib/atben.c b/tools/lib/atben.c index 5e67787..03175ca 100644 --- a/tools/lib/atben.c +++ b/tools/lib/atben.c @@ -326,6 +326,20 @@ static int atben_buf_read(void *handle, void *buf, int size) } +/* ----- SLP_TR ------------------------------------------------------------ */ + + +static void atben_slp_tr(void *handle, int on) +{ + struct atben_dsc *dsc = handle; + + if (on) + PDDATS = SLP_TR; + else + PDDATC = SLP_TR; +} + + /* ----- RF interrupt ------------------------------------------------------ */ @@ -347,6 +361,7 @@ struct atrf_driver atben_driver = { .reset = NULL, .reset_rf = atben_reset_rf, .test_mode = NULL, + .slp_tr = atben_slp_tr, .reg_write = atben_reg_write, .reg_read = atben_reg_read, .buf_write = atben_buf_write, diff --git a/tools/lib/atrf.c b/tools/lib/atrf.c index 1d5774e..08bc6c1 100644 --- a/tools/lib/atrf.c +++ b/tools/lib/atrf.c @@ -149,6 +149,15 @@ int atrf_test_mode(struct atrf_dsc *dsc) } +int atrf_slp_tr(struct atrf_dsc *dsc, int on) +{ + if (!dsc->driver->slp_tr) + return 0; + dsc->driver->slp_tr(dsc->handle, on); + return 1; +} + + int atrf_set_clkm_generic( void (*reg_write)(void *dsc, uint8_t reg, uint8_t value), void *handle, int mhz) diff --git a/tools/lib/atusb.c b/tools/lib/atusb.c index 077e702..63bd8cb 100644 --- a/tools/lib/atusb.c +++ b/tools/lib/atusb.c @@ -281,6 +281,7 @@ struct atrf_driver atusb_driver = { .reset = atusb_reset, .reset_rf = atusb_reset_rf, .test_mode = atusb_test_mode, + .slp_tr = NULL, /* @@@ not yet * .set_clkm = atusb_set_clkm, .reg_write = atusb_reg_write, .reg_read = atusb_reg_read, diff --git a/tools/lib/driver.h b/tools/lib/driver.h index 2dbc5aa..13d1dc2 100644 --- a/tools/lib/driver.h +++ b/tools/lib/driver.h @@ -26,6 +26,7 @@ struct atrf_driver { void (*reset)(void *dsc); void (*reset_rf)(void *dsc); void (*test_mode)(void *dsc); + void (*slp_tr)(void *dsc, int on); int (*set_clkm)(void *dsc, int mhz); void (*reg_write)(void *dsc, uint8_t reg, uint8_t value); uint8_t (*reg_read)(void *dsc, uint8_t reg);