X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2Fserial.h;h=6d1e62c6770c4982ad1ef543347fb514f652f6dc;hb=166a77b34b30f64f7b12a3016b0bba49d568c52e;hp=8a790ccaaf4b36a624392c1878bf573c5728c832;hpb=a61cbad78e67963944e7d719f0aee27b8aef6c02;p=platform%2Fkernel%2Fu-boot.git diff --git a/include/serial.h b/include/serial.h index 8a790cc..6d1e62c 100644 --- a/include/serial.h +++ b/include/serial.h @@ -28,7 +28,7 @@ extern struct serial_device *default_serial_console(void); #if defined(CONFIG_MPC83xx) || defined(CONFIG_MPC85xx) || \ defined(CONFIG_MPC86xx) || \ - defined(CONFIG_TEGRA) || defined(CONFIG_SYS_COREBOOT) || \ + defined(CONFIG_ARCH_TEGRA) || defined(CONFIG_SYS_COREBOOT) || \ defined(CONFIG_MICROBLAZE) extern struct serial_device serial0_device; extern struct serial_device serial1_device; @@ -42,26 +42,28 @@ extern struct serial_device eserial5_device; extern struct serial_device eserial6_device; extern void serial_register(struct serial_device *); -extern void serial_initialize(void); extern void serial_stdio_init(void); extern int serial_assign(const char *name); extern void serial_reinit_all(void); +int serial_initialize(void); /* For usbtty */ #ifdef CONFIG_USB_TTY -extern int usbtty_getc(void); -extern void usbtty_putc(const char c); -extern void usbtty_puts(const char *str); -extern int usbtty_tstc(void); +struct stdio_dev; + +int usbtty_getc(struct stdio_dev *dev); +void usbtty_putc(struct stdio_dev *dev, const char c); +void usbtty_puts(struct stdio_dev *dev, const char *str); +int usbtty_tstc(struct stdio_dev *dev); #else /* stubs */ -#define usbtty_getc() 0 -#define usbtty_putc(a) -#define usbtty_puts(a) -#define usbtty_tstc() 0 +#define usbtty_getc(dev) 0 +#define usbtty_putc(dev, a) +#define usbtty_puts(dev, a) +#define usbtty_tstc(dev) 0 #endif /* CONFIG_USB_TTY */ @@ -137,6 +139,7 @@ enum adr_space_type { * @reg_width: size (in bytes) of the IO accesses to the registers * @reg_offset: offset to apply to the @addr from the start of the registers * @reg_shift: quantity to shift the register offsets by + * @clock: UART base clock speed in Hz * @baudrate: baud rate */ struct serial_device_info { @@ -146,10 +149,12 @@ struct serial_device_info { u8 reg_width; u8 reg_offset; u8 reg_shift; + unsigned int clock; unsigned int baudrate; }; #define SERIAL_DEFAULT_ADDRESS 0xBADACCE5 +#define SERIAL_DEFAULT_CLOCK (16 * 115200) /** * struct struct dm_serial_ops - Driver model serial operations @@ -235,9 +240,7 @@ struct dm_serial_ops { * Get a current config for this device. * * @dev: Device pointer - * @parity: parity to use - * @bits: bits number to use - * @stop: stop bits number to use + * @serial_config: Returns config information (see SERIAL_... above) * @return 0 if OK, -ve on error */ int (*getconfig)(struct udevice *dev, uint *serial_config); @@ -257,6 +260,7 @@ struct dm_serial_ops { * * @dev: Device pointer * @info: struct serial_device_info to fill + * @return 0 if OK, -ve on error */ int (*getinfo)(struct udevice *dev, struct serial_device_info *info); }; @@ -281,8 +285,37 @@ struct serial_dev_priv { /* Access the serial operations for a device */ #define serial_get_ops(dev) ((struct dm_serial_ops *)(dev)->driver->ops) +/** + * serial_getconfig() - Get the uart configuration + * (parity, 5/6/7/8 bits word length, stop bits) + * + * Get a current config for this device. + * + * @dev: Device pointer + * @serial_config: Returns config information (see SERIAL_... above) + * @return 0 if OK, -ve on error + */ int serial_getconfig(struct udevice *dev, uint *config); + +/** + * serial_setconfig() - Set up the uart configuration + * (parity, 5/6/7/8 bits word length, stop bits) + * + * Set up a new config for this device. + * + * @dev: Device pointer + * @serial_config: number of bits, parity and number of stopbits to use + * @return 0 if OK, -ve on error + */ int serial_setconfig(struct udevice *dev, uint config); + +/** + * serial_getinfo() - Get serial device information + * + * @dev: Device pointer + * @info: struct serial_device_info to fill + * @return 0 if OK, -ve on error + */ int serial_getinfo(struct udevice *dev, struct serial_device_info *info); void atmel_serial_initialize(void); @@ -294,4 +327,23 @@ void pl01x_serial_initialize(void); void pxa_serial_initialize(void); void sh_serial_initialize(void); +/** + * serial_printf() - Write a formatted string to the serial console + * + * The total size of the output must be less than CONFIG_SYS_PBSIZE. + * + * @fmt: Printf format string, followed by format arguments + * @return number of characters written + */ +int serial_printf(const char *fmt, ...) + __attribute__ ((format (__printf__, 1, 2))); + +int serial_init(void); +void serial_setbrg(void); +void serial_putc(const char ch); +void serial_putc_raw(const char ch); +void serial_puts(const char *str); +int serial_getc(void); +int serial_tstc(void); + #endif