1 /*
2 * Copyright (c) 2006-2018, RT-Thread Development Team
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 *
6 * Change Logs:
7 * Date Author Notes
8 * 2018-08-27 ZYLX the first version
9 */
10
11 #include <rtdevice.h>
12 #include <enc28j60.h>
13 #include <drv_spi.h>
14 #include <drv_gpio.h>
15 #include <board.h>
16
17 #define PIN_NRF_IRQ GET_PIN(E,2)
18 #define PIN_SPI_CS GET_PIN(A,4)
19
enc28j60_init(void)20 int enc28j60_init(void)
21 {
22 __HAL_RCC_GPIOD_CLK_ENABLE();
23 rt_hw_spi_device_attach("spi1", "spi11", PIN_SPI_CS);
24
25 /* attach enc28j60 to spi. spi11 cs - PA4 */
26 enc28j60_attach("spi11");
27
28 /* init interrupt pin */
29 rt_pin_mode(PIN_NRF_IRQ, PIN_MODE_INPUT_PULLUP);
30 rt_pin_attach_irq(PIN_NRF_IRQ, PIN_IRQ_MODE_FALLING, (void(*)(void*))enc28j60_isr, RT_NULL);
31 rt_pin_irq_enable(PIN_NRF_IRQ, PIN_IRQ_ENABLE);
32
33 return 0;
34 }
35 INIT_COMPONENT_EXPORT(enc28j60_init);
36