mirror of
https://github.com/apache/nuttx.git
synced 2026-06-02 09:38:37 +08:00
drivers/mrf24j40: Hook in setdevmode from newly added radio attribute setting
This commit is contained in:
@@ -290,19 +290,10 @@ int mrf24j40_setcoordeaddr(FAR struct mrf24j40_radio_s *dev,
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int mrf24j40_setdevmode(FAR struct mrf24j40_radio_s *dev,
|
int mrf24j40_setdevmode(FAR struct mrf24j40_radio_s *dev, uint8_t mode)
|
||||||
uint8_t mode)
|
|
||||||
{
|
{
|
||||||
int ret = OK;
|
|
||||||
uint8_t reg;
|
uint8_t reg;
|
||||||
|
|
||||||
/* Disable slotted mode until I decide to implement slotted mode */
|
|
||||||
|
|
||||||
reg = mrf24j40_getreg(dev->spi, MRF24J40_TXMCR);
|
|
||||||
reg &= ~MRF24J40_TXMCR_SLOTTED;
|
|
||||||
mrf24j40_setreg(dev->spi, MRF24J40_TXMCR, reg);
|
|
||||||
mrf24j40_setreg(dev->spi, MRF24J40_ORDER, 0xFF);
|
|
||||||
|
|
||||||
/* Define dev mode */
|
/* Define dev mode */
|
||||||
|
|
||||||
reg = mrf24j40_getreg(dev->spi, MRF24J40_RXMCR);
|
reg = mrf24j40_getreg(dev->spi, MRF24J40_RXMCR);
|
||||||
@@ -329,7 +320,7 @@ int mrf24j40_setdevmode(FAR struct mrf24j40_radio_s *dev,
|
|||||||
|
|
||||||
mrf24j40_setreg(dev->spi, MRF24J40_RXMCR, reg);
|
mrf24j40_setreg(dev->spi, MRF24J40_RXMCR, reg);
|
||||||
dev->devmode = mode;
|
dev->devmode = mode;
|
||||||
return ret;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
|||||||
@@ -530,42 +530,37 @@ int mrf24j40_setattr(FAR struct ieee802154_radio_s *radio,
|
|||||||
FAR const union ieee802154_attr_u *attrval)
|
FAR const union ieee802154_attr_u *attrval)
|
||||||
{
|
{
|
||||||
FAR struct mrf24j40_radio_s *dev = (FAR struct mrf24j40_radio_s *)radio;
|
FAR struct mrf24j40_radio_s *dev = (FAR struct mrf24j40_radio_s *)radio;
|
||||||
int ret;
|
int ret = IEEE802154_STATUS_SUCCESS;;
|
||||||
|
|
||||||
switch (attr)
|
switch (attr)
|
||||||
{
|
{
|
||||||
case IEEE802154_ATTR_MAC_PANID:
|
case IEEE802154_ATTR_MAC_PANID:
|
||||||
{
|
{
|
||||||
mrf24j40_setpanid(dev, attrval->mac.panid);
|
mrf24j40_setpanid(dev, attrval->mac.panid);
|
||||||
ret = IEEE802154_STATUS_SUCCESS;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IEEE802154_ATTR_MAC_SADDR:
|
case IEEE802154_ATTR_MAC_SADDR:
|
||||||
{
|
{
|
||||||
mrf24j40_setsaddr(dev, attrval->mac.saddr);
|
mrf24j40_setsaddr(dev, attrval->mac.saddr);
|
||||||
ret = IEEE802154_STATUS_SUCCESS;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IEEE802154_ATTR_MAC_EADDR:
|
case IEEE802154_ATTR_MAC_EADDR:
|
||||||
{
|
{
|
||||||
mrf24j40_seteaddr(dev, attrval->mac.eaddr);
|
mrf24j40_seteaddr(dev, attrval->mac.eaddr);
|
||||||
ret = IEEE802154_STATUS_SUCCESS;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IEEE802154_ATTR_MAC_COORD_SADDR:
|
case IEEE802154_ATTR_MAC_COORD_SADDR:
|
||||||
{
|
{
|
||||||
mrf24j40_setcoordsaddr(dev, attrval->mac.coordsaddr);
|
mrf24j40_setcoordsaddr(dev, attrval->mac.coordsaddr);
|
||||||
ret = IEEE802154_STATUS_SUCCESS;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IEEE802154_ATTR_MAC_COORD_EADDR:
|
case IEEE802154_ATTR_MAC_COORD_EADDR:
|
||||||
{
|
{
|
||||||
mrf24j40_setcoordeaddr(dev, attrval->mac.coordeaddr);
|
mrf24j40_setcoordeaddr(dev, attrval->mac.coordeaddr);
|
||||||
ret = IEEE802154_STATUS_SUCCESS;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -579,16 +574,18 @@ int mrf24j40_setattr(FAR struct ieee802154_radio_s *radio,
|
|||||||
{
|
{
|
||||||
mrf24j40_setrxmode(dev, MRF24J40_RXMODE_NORMAL);
|
mrf24j40_setrxmode(dev, MRF24J40_RXMODE_NORMAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = IEEE802154_STATUS_SUCCESS;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case IEEE802154_ATTR_PHY_CHAN:
|
case IEEE802154_ATTR_PHY_CHAN:
|
||||||
{
|
{
|
||||||
mrf24j40_setchannel(dev, attrval->phy.chan);
|
mrf24j40_setchannel(dev, attrval->phy.chan);
|
||||||
ret = IEEE802154_STATUS_SUCCESS;
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IEEE802154_ATTR_MAC_DEVMODE:
|
||||||
|
{
|
||||||
|
mrf24j40_setdevmode(dev, attrval->mac.devmode);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -709,4 +706,3 @@ int mrf24j40_sfupdate(FAR struct ieee802154_radio_s *radio,
|
|||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user