uboot/include/stdio_dev.h
<<
>>
Prefs
   1/*
   2 * (C) Copyright 2000
   3 * Paolo Scaffardi, AIRVENT SAM s.p.a - RIMINI(ITALY), arsenio@tin.it
   4 *
   5 * SPDX-License-Identifier:     GPL-2.0+
   6 */
   7
   8#ifndef _STDIO_DEV_H_
   9#define _STDIO_DEV_H_
  10
  11#include <linux/list.h>
  12
  13/*
  14 * STDIO DEVICES
  15 */
  16
  17#define DEV_FLAGS_INPUT  0x00000001     /* Device can be used as input  console */
  18#define DEV_FLAGS_OUTPUT 0x00000002     /* Device can be used as output console */
  19#define DEV_FLAGS_SYSTEM 0x80000000     /* Device is a system device            */
  20#define DEV_EXT_VIDEO    0x00000001     /* Video extensions supported           */
  21
  22/* Device information */
  23struct stdio_dev {
  24        int     flags;                  /* Device flags: input/output/system    */
  25        int     ext;                    /* Supported extensions                 */
  26        char    name[16];               /* Device name                          */
  27
  28/* GENERAL functions */
  29
  30        int (*start) (void);            /* To start the device                  */
  31        int (*stop) (void);             /* To stop the device                   */
  32
  33/* OUTPUT functions */
  34
  35        void (*putc) (const char c);    /* To put a char                        */
  36        void (*puts) (const char *s);   /* To put a string (accelerator)        */
  37
  38/* INPUT functions */
  39
  40        int (*tstc) (void);             /* To test if a char is ready...        */
  41        int (*getc) (void);             /* To get that char                     */
  42
  43/* Other functions */
  44
  45        void *priv;                     /* Private extensions                   */
  46        struct list_head list;
  47};
  48
  49/*
  50 * VIDEO EXTENSIONS
  51 */
  52#define VIDEO_FORMAT_RGB_INDEXED        0x0000
  53#define VIDEO_FORMAT_RGB_DIRECTCOLOR    0x0001
  54#define VIDEO_FORMAT_YUYV_4_4_4         0x0010
  55#define VIDEO_FORMAT_YUYV_4_2_2         0x0011
  56
  57typedef struct {
  58        void *address;                  /* Address of framebuffer               */
  59        ushort  width;                  /* Horizontal resolution                */
  60        ushort  height;                 /* Vertical resolution                  */
  61        uchar   format;                 /* Format                               */
  62        uchar   colors;                 /* Colors number or color depth         */
  63        void (*setcolreg) (int, int, int, int);
  64        void (*getcolreg) (int, void *);
  65} video_ext_t;
  66
  67/*
  68 * VARIABLES
  69 */
  70extern struct stdio_dev *stdio_devices[];
  71extern char *stdio_names[MAX_FILES];
  72
  73/*
  74 * PROTOTYPES
  75 */
  76int     stdio_register (struct stdio_dev * dev);
  77int     stdio_init (void);
  78void    stdio_print_current_devices(void);
  79#ifdef CONFIG_SYS_STDIO_DEREGISTER
  80int     stdio_deregister(const char *devname);
  81#endif
  82struct list_head* stdio_get_list(void);
  83struct stdio_dev* stdio_get_by_name(const char* name);
  84struct stdio_dev* stdio_clone(struct stdio_dev *dev);
  85
  86#ifdef CONFIG_LCD
  87int     drv_lcd_init (void);
  88#endif
  89#if defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE)
  90int     drv_video_init (void);
  91#endif
  92#ifdef CONFIG_KEYBOARD
  93int     drv_keyboard_init (void);
  94#endif
  95#ifdef CONFIG_USB_TTY
  96int     drv_usbtty_init (void);
  97#endif
  98#ifdef CONFIG_NETCONSOLE
  99int     drv_nc_init (void);
 100#endif
 101#ifdef CONFIG_JTAG_CONSOLE
 102int drv_jtag_console_init (void);
 103#endif
 104#ifdef CONFIG_CBMEM_CONSOLE
 105int cbmemc_init(void);
 106#endif
 107
 108#endif
 109