drivers/kw2xrf: make TX/RX IRQs read only
This brings the implementation in sync with the API.
This commit is contained in:
parent
a18ec987bf
commit
fba104c2ce
@ -95,14 +95,6 @@ extern "C" {
|
|||||||
#define KW2XRF_OPT_PROMISCUOUS (0x0200) /**< promiscuous mode
|
#define KW2XRF_OPT_PROMISCUOUS (0x0200) /**< promiscuous mode
|
||||||
* active */
|
* active */
|
||||||
#define KW2XRF_OPT_PRELOADING (0x0400) /**< preloading enabled */
|
#define KW2XRF_OPT_PRELOADING (0x0400) /**< preloading enabled */
|
||||||
#define KW2XRF_OPT_TELL_TX_START (0x0800) /**< notify MAC layer on TX
|
|
||||||
* start */
|
|
||||||
#define KW2XRF_OPT_TELL_TX_END (0x1000) /**< notify MAC layer on TX
|
|
||||||
* finished */
|
|
||||||
#define KW2XRF_OPT_TELL_RX_START (0x2000) /**< notify MAC layer on RX
|
|
||||||
* start */
|
|
||||||
#define KW2XRF_OPT_TELL_RX_END (0x4000) /**< notify MAC layer on RX
|
|
||||||
* finished */
|
|
||||||
#define KW2XRF_OPT_AUTOACK (0x8000) /**< enable automatically ACK
|
#define KW2XRF_OPT_AUTOACK (0x8000) /**< enable automatically ACK
|
||||||
* for incommint packet */
|
* for incommint packet */
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|||||||
@ -66,6 +66,10 @@ void kw2xrf_setup(kw2xrf_t *dev, const kw2xrf_params_t *params)
|
|||||||
dev->pending_tx = 0;
|
dev->pending_tx = 0;
|
||||||
kw2xrf_spi_init(dev);
|
kw2xrf_spi_init(dev);
|
||||||
kw2xrf_set_power_mode(dev, KW2XRF_IDLE);
|
kw2xrf_set_power_mode(dev, KW2XRF_IDLE);
|
||||||
|
DEBUG("[kw2xrf] enabling RX/TX completion and start events");
|
||||||
|
kw2xrf_clear_dreg_bit(dev, MKW2XDM_PHY_CTRL2, MKW2XDM_PHY_CTRL2_RX_WMRK_MSK);
|
||||||
|
kw2xrf_clear_dreg_bit(dev, MKW2XDM_PHY_CTRL2, MKW2XDM_PHY_CTRL2_RXMSK);
|
||||||
|
kw2xrf_clear_dreg_bit(dev, MKW2XDM_PHY_CTRL2, MKW2XDM_PHY_CTRL2_TXMSK);
|
||||||
DEBUG("[kw2xrf] setup finished\n");
|
DEBUG("[kw2xrf] setup finished\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -398,22 +398,6 @@ void kw2xrf_set_option(kw2xrf_t *dev, uint16_t option, bool state)
|
|||||||
MKW2XDM_PHY_CTRL1_RXACKRQD);
|
MKW2XDM_PHY_CTRL1_RXACKRQD);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case KW2XRF_OPT_TELL_RX_START:
|
|
||||||
kw2xrf_clear_dreg_bit(dev, MKW2XDM_PHY_CTRL2,
|
|
||||||
MKW2XDM_PHY_CTRL2_RX_WMRK_MSK);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case KW2XRF_OPT_TELL_RX_END:
|
|
||||||
kw2xrf_clear_dreg_bit(dev, MKW2XDM_PHY_CTRL2,
|
|
||||||
MKW2XDM_PHY_CTRL2_RXMSK);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case KW2XRF_OPT_TELL_TX_END:
|
|
||||||
kw2xrf_clear_dreg_bit(dev, MKW2XDM_PHY_CTRL2,
|
|
||||||
MKW2XDM_PHY_CTRL2_TXMSK);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case KW2XRF_OPT_TELL_TX_START:
|
|
||||||
default:
|
default:
|
||||||
/* do nothing */
|
/* do nothing */
|
||||||
break;
|
break;
|
||||||
@ -453,23 +437,6 @@ void kw2xrf_set_option(kw2xrf_t *dev, uint16_t option, bool state)
|
|||||||
MKW2XDM_PHY_CTRL1_RXACKRQD);
|
MKW2XDM_PHY_CTRL1_RXACKRQD);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case KW2XRF_OPT_TELL_RX_START:
|
|
||||||
kw2xrf_set_dreg_bit(dev, MKW2XDM_PHY_CTRL2,
|
|
||||||
MKW2XDM_PHY_CTRL2_RX_WMRK_MSK);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case KW2XRF_OPT_TELL_RX_END:
|
|
||||||
kw2xrf_set_dreg_bit(dev, MKW2XDM_PHY_CTRL2,
|
|
||||||
MKW2XDM_PHY_CTRL2_RXMSK);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case KW2XRF_OPT_TELL_TX_END:
|
|
||||||
kw2xrf_set_dreg_bit(dev, MKW2XDM_PHY_CTRL2,
|
|
||||||
MKW2XDM_PHY_CTRL2_TXMSK);
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
|
||||||
case KW2XRF_OPT_TELL_TX_START:
|
|
||||||
default:
|
default:
|
||||||
/* do nothing */
|
/* do nothing */
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -298,23 +298,10 @@ int _get(netdev_t *netdev, netopt_t opt, void *value, size_t len)
|
|||||||
return sizeof(netopt_enable_t);
|
return sizeof(netopt_enable_t);
|
||||||
|
|
||||||
case NETOPT_RX_START_IRQ:
|
case NETOPT_RX_START_IRQ:
|
||||||
*((netopt_enable_t *)value) =
|
|
||||||
!!(dev->netdev.flags & KW2XRF_OPT_TELL_RX_START);
|
|
||||||
return sizeof(netopt_enable_t);
|
|
||||||
|
|
||||||
case NETOPT_RX_END_IRQ:
|
case NETOPT_RX_END_IRQ:
|
||||||
*((netopt_enable_t *)value) =
|
|
||||||
!!(dev->netdev.flags & KW2XRF_OPT_TELL_RX_END);
|
|
||||||
return sizeof(netopt_enable_t);
|
|
||||||
|
|
||||||
case NETOPT_TX_START_IRQ:
|
case NETOPT_TX_START_IRQ:
|
||||||
*((netopt_enable_t *)value) =
|
|
||||||
!!(dev->netdev.flags & KW2XRF_OPT_TELL_TX_START);
|
|
||||||
return sizeof(netopt_enable_t);
|
|
||||||
|
|
||||||
case NETOPT_TX_END_IRQ:
|
case NETOPT_TX_END_IRQ:
|
||||||
*((netopt_enable_t *)value) =
|
*((netopt_enable_t *)value) = NETOPT_ENABLE;
|
||||||
!!(dev->netdev.flags & KW2XRF_OPT_TELL_TX_END);
|
|
||||||
return sizeof(netopt_enable_t);
|
return sizeof(netopt_enable_t);
|
||||||
|
|
||||||
case NETOPT_AUTOCCA:
|
case NETOPT_AUTOCCA:
|
||||||
@ -482,30 +469,6 @@ static int _set(netdev_t *netdev, netopt_t opt, const void *value, size_t len)
|
|||||||
res = sizeof(netopt_enable_t);
|
res = sizeof(netopt_enable_t);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NETOPT_RX_START_IRQ:
|
|
||||||
kw2xrf_set_option(dev, KW2XRF_OPT_TELL_RX_START,
|
|
||||||
((bool *)value)[0]);
|
|
||||||
res = sizeof(netopt_enable_t);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case NETOPT_RX_END_IRQ:
|
|
||||||
kw2xrf_set_option(dev, KW2XRF_OPT_TELL_RX_END,
|
|
||||||
((bool *)value)[0]);
|
|
||||||
res = sizeof(netopt_enable_t);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case NETOPT_TX_START_IRQ:
|
|
||||||
kw2xrf_set_option(dev, KW2XRF_OPT_TELL_TX_START,
|
|
||||||
((bool *)value)[0]);
|
|
||||||
res = sizeof(netopt_enable_t);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case NETOPT_TX_END_IRQ:
|
|
||||||
kw2xrf_set_option(dev, KW2XRF_OPT_TELL_TX_END,
|
|
||||||
((bool *)value)[0]);
|
|
||||||
res = sizeof(netopt_enable_t);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case NETOPT_AUTOCCA:
|
case NETOPT_AUTOCCA:
|
||||||
kw2xrf_set_option(dev, KW2XRF_OPT_AUTOCCA,
|
kw2xrf_set_option(dev, KW2XRF_OPT_AUTOCCA,
|
||||||
((bool *)value)[0]);
|
((bool *)value)[0]);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user