serial.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #ifndef __SERIAL_H__
  2. #define __SERIAL_H__
  3. #define NAMESIZE 16
  4. #define CTLRSIZE 8
  5. struct serial_device {
  6. char name[NAMESIZE];
  7. char ctlr[CTLRSIZE];
  8. int (*init) (void);
  9. int (*uninit) (void);
  10. void (*setbrg) (void);
  11. int (*getc) (void);
  12. int (*tstc) (void);
  13. void (*putc) (const char c);
  14. void (*puts) (const char *s);
  15. struct serial_device *next;
  16. };
  17. extern struct serial_device serial_smc_device;
  18. extern struct serial_device serial_scc_device;
  19. extern struct serial_device * default_serial_console (void);
  20. #if defined(CONFIG_405GP) || defined(CONFIG_405CR) || defined(CONFIG_440) || \
  21. defined(CONFIG_405EP) || defined(CONFIG_405EZ) || defined(CONFIG_405EX) || \
  22. defined(CONFIG_MPC5xxx) || defined(CONFIG_MPC83xx) || \
  23. defined(CONFIG_MPC85xx) || defined(CONFIG_MPC86xx)
  24. extern struct serial_device serial0_device;
  25. extern struct serial_device serial1_device;
  26. #if defined(CONFIG_SYS_NS16550_SERIAL)
  27. extern struct serial_device eserial1_device;
  28. extern struct serial_device eserial2_device;
  29. extern struct serial_device eserial3_device;
  30. extern struct serial_device eserial4_device;
  31. #endif /* CONFIG_SYS_NS16550_SERIAL */
  32. #endif
  33. #if defined(CONFIG_MPC512X)
  34. extern struct serial_device serial1_device;
  35. extern struct serial_device serial3_device;
  36. extern struct serial_device serial4_device;
  37. extern struct serial_device serial6_device;
  38. #endif
  39. #if defined(CONFIG_S3C2410)
  40. extern struct serial_device s3c24xx_serial0_device;
  41. extern struct serial_device s3c24xx_serial1_device;
  42. extern struct serial_device s3c24xx_serial2_device;
  43. #endif
  44. #if defined(CONFIG_S5PC1XX)
  45. extern struct serial_device s5p_serial0_device;
  46. extern struct serial_device s5p_serial1_device;
  47. extern struct serial_device s5p_serial2_device;
  48. extern struct serial_device s5p_serial3_device;
  49. #endif
  50. #if defined(CONFIG_OMAP3_ZOOM2)
  51. extern struct serial_device zoom2_serial_device0;
  52. extern struct serial_device zoom2_serial_device1;
  53. extern struct serial_device zoom2_serial_device2;
  54. extern struct serial_device zoom2_serial_device3;
  55. #endif
  56. extern struct serial_device serial_ffuart_device;
  57. extern struct serial_device serial_btuart_device;
  58. extern struct serial_device serial_stuart_device;
  59. extern void serial_initialize(void);
  60. extern void serial_stdio_init(void);
  61. extern int serial_assign(char * name);
  62. extern void serial_reinit_all(void);
  63. /* For usbtty */
  64. #ifdef CONFIG_USB_TTY
  65. extern int usbtty_getc(void);
  66. extern void usbtty_putc(const char c);
  67. extern void usbtty_puts(const char *str);
  68. extern int usbtty_tstc(void);
  69. #else
  70. /* stubs */
  71. #define usbtty_getc() 0
  72. #define usbtty_putc(a)
  73. #define usbtty_puts(a)
  74. #define usbtty_tstc() 0
  75. #endif /* CONFIG_USB_TTY */
  76. #if defined(CONFIG_MPC512X) && defined(CONFIG_SERIAL_MULTI)
  77. extern struct stdio_dev *open_port(int num, int baudrate);
  78. extern int close_port(int num);
  79. extern int write_port(struct stdio_dev *port, char *buf);
  80. extern int read_port(struct stdio_dev *port, char *buf, int size);
  81. #endif
  82. #endif