Skip to content
Snippets Groups Projects
serial.h 2.87 KiB
Newer Older
  • Learn to ignore specific revisions
  • Wolfgang Denk's avatar
    Wolfgang Denk committed
    #ifndef __SERIAL_H__
    #define __SERIAL_H__
    
    #define NAMESIZE 16
    #define CTLRSIZE 8
    
    struct serial_device {
    	char name[NAMESIZE];
    	char ctlr[CTLRSIZE];
    
    	int  (*init) (void);
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	void (*setbrg) (void);
    	int (*getc) (void);
    	int (*tstc) (void);
    	void (*putc) (const char c);
    	void (*puts) (const char *s);
    
    	struct serial_device *next;
    };
    
    extern struct serial_device serial_smc_device;
    extern struct serial_device serial_scc_device;
    extern struct serial_device * default_serial_console (void);
    
    
    #if defined(CONFIG_405GP) || defined(CONFIG_405CR) || defined(CONFIG_440) || \
        defined(CONFIG_405EP) || defined(CONFIG_405EZ) || defined(CONFIG_405EX) || \
    
        defined(CONFIG_MPC5xxx) || defined(CONFIG_MPC83xx) || \
        defined(CONFIG_MPC85xx) || defined(CONFIG_MPC86xx)
    
    extern struct serial_device serial0_device;
    extern struct serial_device serial1_device;
    
    #if defined(CONFIG_SYS_NS16550_SERIAL)
    
    extern struct serial_device eserial1_device;
    extern struct serial_device eserial2_device;
    extern struct serial_device eserial3_device;
    extern struct serial_device eserial4_device;
    
    #endif /* CONFIG_SYS_NS16550_SERIAL */
    
    #if defined(CONFIG_MPC512X)
    extern struct serial_device serial1_device;
    extern struct serial_device serial3_device;
    extern struct serial_device serial4_device;
    extern struct serial_device serial6_device;
    #endif
    
    
    #if defined(CONFIG_S3C2410)
    extern struct serial_device s3c24xx_serial0_device;
    extern struct serial_device s3c24xx_serial1_device;
    extern struct serial_device s3c24xx_serial2_device;
    #endif
    
    #if defined(CONFIG_S5PC1XX)
    
    extern struct serial_device s5p_serial0_device;
    extern struct serial_device s5p_serial1_device;
    extern struct serial_device s5p_serial2_device;
    extern struct serial_device s5p_serial3_device;
    
    Tom Rix's avatar
    Tom Rix committed
    #if defined(CONFIG_OMAP3_ZOOM2)
    extern struct serial_device zoom2_serial_device0;
    extern struct serial_device zoom2_serial_device1;
    extern struct serial_device zoom2_serial_device2;
    extern struct serial_device zoom2_serial_device3;
    #endif
    
    
    extern struct serial_device serial_ffuart_device;
    extern struct serial_device serial_btuart_device;
    extern struct serial_device serial_stuart_device;
    
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    extern void serial_initialize(void);
    
    extern void serial_stdio_init(void);
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    extern int serial_assign(char * name);
    extern void serial_reinit_all(void);
    
    
    extern int usbtty_getc(void);
    extern void usbtty_putc(const char c);
    extern void usbtty_puts(const char *str);
    extern int usbtty_tstc(void);
    
    
    #else
    
    /* stubs */
    #define usbtty_getc() 0
    #define usbtty_putc(a)
    #define usbtty_puts(a)
    #define usbtty_tstc() 0
    
    #endif /* CONFIG_USB_TTY */
    
    
    #if defined(CONFIG_MPC512X) &&  defined(CONFIG_SERIAL_MULTI)
    extern struct stdio_dev *open_port(int num, int baudrate);
    extern int close_port(int num);
    extern int write_port(struct stdio_dev *port, char *buf);
    extern int read_port(struct stdio_dev *port, char *buf, int size);
    #endif
    
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    #endif