Signed-off-by: Alexander Aring <alex.ar...@gmail.com>
---
 drivers/net/ieee802154/at86rf230.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ieee802154/at86rf230.c 
b/drivers/net/ieee802154/at86rf230.c
index 36cc161..65c6811 100644
--- a/drivers/net/ieee802154/at86rf230.c
+++ b/drivers/net/ieee802154/at86rf230.c
@@ -44,6 +44,7 @@ struct at86rf230_local;
  * All timings are in us.
  */
 struct at86rf2xx_chip_data {
+       u16 t_reset_to_off;
        u16 t_off_to_aack;
        u16 t_off_to_tx_on;
        u16 t_busy_to_tx_on;
@@ -584,6 +585,16 @@ at86rf230_async_state_delay(void *context)
                        break;
                }
                break;
+       /* Default value, means RESET state */
+       case STATE_P_ON:
+               switch (ctx->to_state) {
+               case STATE_TRX_OFF:
+                       udelay(c->t_reset_to_off);
+                       goto change;
+               default:
+                       break;
+               }
+               break;
        default:
                break;
        }
@@ -1236,6 +1247,7 @@ static struct ieee802154_ops at86rf230_ops = {
 };
 
 static struct at86rf2xx_chip_data at86rf233_data = {
+       .t_reset_to_off = 26,
        .t_off_to_aack = 80,
        .t_off_to_tx_on = 80,
        .t_busy_to_tx_on = 32,
@@ -1250,6 +1262,7 @@ static struct at86rf2xx_chip_data at86rf233_data = {
 };
 
 static struct at86rf2xx_chip_data at86rf231_data = {
+       .t_reset_to_off = 37,
        .t_off_to_aack = 110,
        .t_off_to_tx_on = 110,
        .t_busy_to_tx_on = 32,
@@ -1264,6 +1277,7 @@ static struct at86rf2xx_chip_data at86rf231_data = {
 };
 
 static struct at86rf2xx_chip_data at86rf212_data = {
+       .t_reset_to_off = 26,
        .t_off_to_aack = 110,
        .t_off_to_tx_on = 110,
        .t_busy_to_tx_on = 32,
@@ -1283,7 +1297,7 @@ static int at86rf230_hw_init(struct at86rf230_local *lp)
        unsigned int dvdd;
        u8 csma_seed[2];
 
-       rc = at86rf230_write_subreg(lp, SR_TRX_CMD, STATE_FORCE_TRX_OFF);
+       rc = at86rf230_sync_state_change(lp, STATE_FORCE_TRX_OFF);
        if (rc)
                return rc;
 
-- 
2.0.0


------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
Linux-zigbee-devel mailing list
Linux-zigbee-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel

Reply via email to