drv_enc28j60.c 847 B

12345678910111213141516171819202122232425262728293031323334
  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. #include <drivers/pin.h>
  11. #include <enc28j60.h>
  12. #include "drv_spi.h"
  13. #include "board.h"
  14. #define PIN_NRF_IRQ GET_PIN(E,2)
  15. int enc28j60_init(void)
  16. {
  17. __HAL_RCC_GPIOD_CLK_ENABLE();
  18. rt_hw_spi_device_attach("spi1", "spi11", GPIOA, GPIO_PIN_4);
  19. /* attach enc28j60 to spi. spi11 cs - PA4 */
  20. enc28j60_attach("spi11");
  21. /* init interrupt pin */
  22. rt_pin_mode(PIN_NRF_IRQ, PIN_MODE_INPUT_PULLUP);
  23. rt_pin_attach_irq(PIN_NRF_IRQ, PIN_IRQ_MODE_FALLING, (void(*)(void*))enc28j60_isr, RT_NULL);
  24. rt_pin_irq_enable(PIN_NRF_IRQ, PIN_IRQ_ENABLE);
  25. return 0;
  26. }
  27. INIT_COMPONENT_EXPORT(enc28j60_init);