io_interface_mux.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /* IO interface mux allocator for ETRAX100LX.
  2. * Copyright 2004, Axis Communications AB
  3. * $Id: io_interface_mux.h,v 1.1 2004/12/13 12:21:53 starvik Exp $
  4. */
  5. #ifndef _IO_INTERFACE_MUX_H
  6. #define _IO_INTERFACE_MUX_H
  7. /* C.f. ETRAX100LX Designer's Reference 20.9 */
  8. /* The order in enum must match the order of interfaces[] in
  9. * io_interface_mux.c */
  10. enum cris_io_interface {
  11. /* Begin Non-multiplexed interfaces */
  12. if_eth = 0,
  13. if_serial_0,
  14. /* End Non-multiplexed interfaces */
  15. if_serial_1,
  16. if_serial_2,
  17. if_serial_3,
  18. if_sync_serial_1,
  19. if_sync_serial_3,
  20. if_shared_ram,
  21. if_shared_ram_w,
  22. if_par_0,
  23. if_par_1,
  24. if_par_w,
  25. if_scsi8_0,
  26. if_scsi8_1,
  27. if_scsi_w,
  28. if_ata,
  29. if_csp,
  30. if_i2c,
  31. if_usb_1,
  32. if_usb_2,
  33. /* GPIO pins */
  34. if_gpio_grp_a,
  35. if_gpio_grp_b,
  36. if_gpio_grp_c,
  37. if_gpio_grp_d,
  38. if_gpio_grp_e,
  39. if_gpio_grp_f,
  40. if_max_interfaces,
  41. if_unclaimed
  42. };
  43. int cris_request_io_interface(enum cris_io_interface ioif, const char *device_id);
  44. void cris_free_io_interface(enum cris_io_interface ioif);
  45. /* port can be 'a', 'b' or 'g' */
  46. int cris_io_interface_allocate_pins(const enum cris_io_interface ioif,
  47. const char port,
  48. const unsigned start_bit,
  49. const unsigned stop_bit);
  50. /* port can be 'a', 'b' or 'g' */
  51. int cris_io_interface_free_pins(const enum cris_io_interface ioif,
  52. const char port,
  53. const unsigned start_bit,
  54. const unsigned stop_bit);
  55. int cris_io_interface_register_watcher(void (*notify)(const unsigned int gpio_in_available,
  56. const unsigned int gpio_out_available,
  57. const unsigned char pa_available,
  58. const unsigned char pb_available));
  59. void cris_io_interface_delete_watcher(void (*notify)(const unsigned int gpio_in_available,
  60. const unsigned int gpio_out_available,
  61. const unsigned char pa_available,
  62. const unsigned char pb_available));
  63. #endif /* _IO_INTERFACE_MUX_H */