ieee802154: at86rf230: add support for rf233 chip
authorThomas Stilwell <stilwellt@openlabs.co>
Tue, 11 Mar 2014 00:29:25 +0000 (19:29 -0500)
committerDavid S. Miller <davem@davemloft.net>
Wed, 12 Mar 2014 04:05:36 +0000 (00:05 -0400)
The rf233 and rf231 are sufficiently similar that we can treat
rf233 like rf231.

rf233 is missing some features that rf231 has, but we don't currently
make use of them so there's nothing to handle differently yet.

Should we add support in the future for rf231 *_NOCLK or SLEEP states,
or PAD_IO drive strength, exceptions will need to be made for rf233.

Signed-off-by: Thomas Stilwell <stilwellt@openlabs.co>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ieee802154/Kconfig
drivers/net/ieee802154/at86rf230.c

index 9aa06ec1e8a8b0c329d5078f2b547b025118bd0b..3e89beab64fdc87559a2b1b9e27a7e6c6ba2b04c 100644 (file)
@@ -32,10 +32,10 @@ config IEEE802154_FAKELB
 
 config IEEE802154_AT86RF230
        depends on IEEE802154_DRIVERS && MAC802154
-       tristate "AT86RF230/231/212 transceiver driver"
+       tristate "AT86RF230/231/233/212 transceiver driver"
        depends on SPI
        ---help---
-         Say Y here to enable the at86rf230/231/212 SPI 802.15.4 wireless
+         Say Y here to enable the at86rf230/231/233/212 SPI 802.15.4 wireless
          controller.
 
          This driver can also be built as a module. To do so, say M here.
index 03e24c560b2e0f38db61fdb529078a293bfdd598..b8e732121a85d68a5ad9c4f3e80c93a61aec90d2 100644 (file)
@@ -244,6 +244,7 @@ static bool is_rf212(struct at86rf230_local *local)
 #define STATE_TX_ON            0x09
 /* 0x0a - 0x0e */                      /* 0x0a - UNSUPPORTED_ATTRIBUTE */
 #define STATE_SLEEP            0x0F
+#define STATE_PREP_DEEP_SLEEP  0x10
 #define STATE_BUSY_RX_AACK     0x11
 #define STATE_BUSY_TX_ARET     0x12
 #define STATE_RX_AACK_ON       0x16
@@ -1108,6 +1109,10 @@ static int at86rf230_probe(struct spi_device *spi)
                if (version == 1)
                        ops = &at86rf212_ops;
                break;
+       case 11:
+               chip = "at86rf233";
+               ops = &at86rf230_ops;
+               break;
        default:
                chip = "UNKNOWN";
                break;