Skip to content

Commit 59b0169

Browse files
committed
[SQUASH ME] cc2420: adapt to changes in #2163
1 parent e3990ac commit 59b0169

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

drivers/cc2420/cc2420.c

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "kernel_types.h"
1818
#include "netdev/802154.h"
1919
#include "netdev/base.h"
20+
#include "thread.h"
2021
#include "transceiver.h"
2122

2223
#define ENABLE_DEBUG (0)
@@ -35,13 +36,18 @@
3536
/* default source address length for sending in number of byte */
3637
static size_t _default_src_addr_len = 2;
3738

38-
/* TODO: allow for multiple devices */
39-
static kernel_pid_t cc2420_netdev_event_handler = KERNEL_PID_UNDEF;
40-
4139
/* implementation of driver's functions */
4240

4341
int cc2420_initialize(netdev_t *dev)
4442
{
43+
if (dev == NULL || dev->driver != ((netdev_driver_t *)(&cc2420_driver))) {
44+
return -ENODEV;
45+
}
46+
47+
dev->type = NETDEV_TYPE_802154;
48+
dev->more = NULL;
49+
dev->event_handler = thread_getpid();
50+
4551
cc2420_spi_init();
4652
hwtimer_wait(CC2420_WAIT_TIME);
4753
cc2420_reset();
@@ -97,7 +103,7 @@ int cc2420_initialize(netdev_t *dev)
97103
void cc2420_init(kernel_pid_t tpid)
98104
{
99105
transceiver_pid = tpid;
100-
cc2420_initialize(NULL); /* TODO: actually use netdev */
106+
cc2420_initialize(&cc2420_netdev);
101107
}
102108
#endif
103109

@@ -162,7 +168,7 @@ void cc2420_rx_irq(void)
162168
msg_t msg;
163169
msg.type = NETDEV_MSG_EVENT_TYPE;
164170
msg.content.value = CC2420_NETDEV_EVENT_RX;
165-
msg_send_int(&msg, cc2420_netdev_event_handler);
171+
msg_send_int(&msg, cc2420_netdev.event_handler);
166172
#endif
167173
}
168174

@@ -182,12 +188,6 @@ void cc2420_event(netdev_t *dev, uint32_t event_type)
182188
}
183189
}
184190

185-
void cc2420_set_event_handler(netdev_t *dev, kernel_pid_t event_handler)
186-
{
187-
(void)dev;
188-
cc2420_netdev_event_handler = event_handler;
189-
}
190-
191191
void cc2420_set_monitor(int mode)
192192
{
193193
uint16_t reg = cc2420_read_reg(CC2420_REG_MDMCTRL0);
@@ -776,7 +776,6 @@ const netdev_802154_driver_t cc2420_driver = {
776776
cc2420_get_state,
777777
cc2420_set_state,
778778
cc2420_event,
779-
cc2420_set_event_handler,
780779
cc2420_load_tx_buf,
781780
cc2420_transmit_tx_buf,
782781
netdev_802154_send,
@@ -785,4 +784,4 @@ const netdev_802154_driver_t cc2420_driver = {
785784
cc2420_channel_clear,
786785
};
787786

788-
netdev_t cc2420_netdev = { NETDEV_TYPE_802154, (netdev_driver_t *) &cc2420_driver, NULL };
787+
netdev_t cc2420_netdev = { NETDEV_TYPE_802154, (netdev_driver_t *) &cc2420_driver, KERNEL_PID_UNDEF, NULL };

0 commit comments

Comments
 (0)