drv_enc28j60.c 903 B

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