X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2Fserial.h;h=fe01bcfadb9bde6fc249f332a7863968872fe450;hb=c56289ddafce3d1ec442fb18064f136c2c47d0bb;hp=54b21a04700be139b5a8167985739d943d966d6f;hpb=f51b4bcf61c9aa7994138a4a417488c1fbdb47cd;p=platform%2Fkernel%2Fu-boot.git diff --git a/include/serial.h b/include/serial.h index 54b21a0..fe01bcf 100644 --- a/include/serial.h +++ b/include/serial.h @@ -23,12 +23,13 @@ struct serial_device { void default_serial_puts(const char *s); extern struct serial_device serial_smc_device; +extern struct serial_device serial_smh_device; extern struct serial_device serial_scc_device; 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,10 +43,10 @@ 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 @@ -195,6 +196,24 @@ struct dm_serial_ops { */ int (*putc)(struct udevice *dev, const char ch); /** + * puts() - Write a string + * + * This writes a string. This function should be implemented only if + * writing multiple characters at once is more performant than just + * calling putc() in a loop. + * + * If the whole string cannot be written at once, then this function + * should return the number of characters written. Returning a negative + * error code implies that no characters were written. If this function + * returns 0, then it will be called again with the same arguments. + * + * @dev: Device pointer + * @s: The string to write + * @len: The length of the string to write. + * @return The number of characters written on success, or -ve on error + */ + ssize_t (*puts)(struct udevice *dev, const char *s, size_t len); + /** * pending() - Check if input/output characters are waiting * * This can be used to return an indication of the number of waiting @@ -293,7 +312,7 @@ struct serial_dev_priv { * * @dev: Device pointer * @serial_config: Returns config information (see SERIAL_... above) - * @return 0 if OK, -ve on error + * Return: 0 if OK, -ve on error */ int serial_getconfig(struct udevice *dev, uint *config); @@ -305,7 +324,7 @@ int serial_getconfig(struct udevice *dev, uint *config); * * @dev: Device pointer * @serial_config: number of bits, parity and number of stopbits to use - * @return 0 if OK, -ve on error + * Return: 0 if OK, -ve on error */ int serial_setconfig(struct udevice *dev, uint config); @@ -314,7 +333,7 @@ int serial_setconfig(struct udevice *dev, uint config); * * @dev: Device pointer * @info: struct serial_device_info to fill - * @return 0 if OK, -ve on error + * Return: 0 if OK, -ve on error */ int serial_getinfo(struct udevice *dev, struct serial_device_info *info); @@ -333,7 +352,7 @@ void sh_serial_initialize(void); * 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 + * Return: number of characters written */ int serial_printf(const char *fmt, ...) __attribute__ ((format (__printf__, 1, 2))); @@ -343,6 +362,11 @@ void serial_setbrg(void); void serial_putc(const char ch); void serial_putc_raw(const char ch); void serial_puts(const char *str); +#if defined(CONFIG_CONSOLE_FLUSH_SUPPORT) && CONFIG_IS_ENABLED(DM_SERIAL) +void serial_flush(void); +#else +static inline void serial_flush(void) {} +#endif int serial_getc(void); int serial_tstc(void);