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_DM     0x00000004     /* Device priv is a struct udevice * */
  20
  21/* Device information */
  22struct stdio_dev {
  23        int     flags;                  /* Device flags: input/output/system    */
  24        int     ext;                    /* Supported extensions                 */
  25        char    name[32];               /* Device name                          */
  26
  27/* GENERAL functions */
  28
  29        int (*start)(struct stdio_dev *dev);    /* To start the device */
  30        int (*stop)(struct stdio_dev *dev);     /* To stop the device */
  31
  32/* OUTPUT functions */
  33
  34        /* To put a char */
  35        void (*putc)(struct stdio_dev *dev, const char c);
  36        /* To put a string (accelerator) */
  37        void (*puts)(struct stdio_dev *dev, const char *s);
  38
  39/* INPUT functions */
  40
  41        /* To test if a char is ready... */
  42        int (*tstc)(struct stdio_dev *dev);
  43        int (*getc)(struct stdio_dev *dev);     /* To get that char */
  44
  45/* Other functions */
  46
  47        void *priv;                     /* Private extensions                   */
  48        struct list_head list;
  49};
  50
  51/*
  52 * VIDEO EXTENSIONS
  53 */
  54#define VIDEO_FORMAT_RGB_INDEXED        0x0000
  55#define VIDEO_FORMAT_RGB_DIRECTCOLOR    0x0001
  56#define VIDEO_FORMAT_YUYV_4_4_4         0x0010
  57#define VIDEO_FORMAT_YUYV_4_2_2         0x0011
  58
  59typedef struct {
  60        void *address;                  /* Address of framebuffer               */
  61        ushort  width;                  /* Horizontal resolution                */
  62        ushort  height;                 /* Vertical resolution                  */
  63        uchar   format;                 /* Format                               */
  64        uchar   colors;                 /* Colors number or color depth         */
  65        void (*setcolreg) (int, int, int, int);
  66        void (*getcolreg) (int, void *);
  67} video_ext_t;
  68
  69/*
  70 * VARIABLES
  71 */
  72extern struct stdio_dev *stdio_devices[];
  73extern char *stdio_names[MAX_FILES];
  74
  75/*
  76 * PROTOTYPES
  77 */
  78int     stdio_register (struct stdio_dev * dev);
  79int stdio_register_dev(struct stdio_dev *dev, struct stdio_dev **devp);
  80
  81/**
  82 * stdio_init_tables() - set up stdio tables ready for devices
  83 *
  84 * This does not add any devices, but just prepares stdio for use.
  85 */
  86int stdio_init_tables(void);
  87
  88/**
  89 * stdio_add_devices() - Add stdio devices to the table
  90 *
  91 * This makes calls to all the various subsystems that use stdio, to make
  92 * them register with stdio.
  93 */
  94int stdio_add_devices(void);
  95
  96/**
  97 * stdio_init() - Sets up stdio ready for use
  98 *
  99 * This calls stdio_init_tables() and stdio_add_devices()
 100 */
 101int stdio_init(void);
 102
 103void    stdio_print_current_devices(void);
 104#if CONFIG_IS_ENABLED(SYS_STDIO_DEREGISTER)
 105int stdio_deregister(const char *devname, int force);
 106int stdio_deregister_dev(struct stdio_dev *dev, int force);
 107#endif
 108struct list_head* stdio_get_list(void);
 109struct stdio_dev* stdio_get_by_name(const char* name);
 110struct stdio_dev* stdio_clone(struct stdio_dev *dev);
 111
 112#ifdef CONFIG_LCD
 113int     drv_lcd_init (void);
 114#endif
 115#if defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE)
 116int     drv_video_init (void);
 117#endif
 118#ifdef CONFIG_KEYBOARD
 119int     drv_keyboard_init (void);
 120#endif
 121#ifdef CONFIG_USB_TTY
 122int     drv_usbtty_init (void);
 123#endif
 124#ifdef CONFIG_NETCONSOLE
 125int     drv_nc_init (void);
 126#endif
 127#ifdef CONFIG_JTAG_CONSOLE
 128int drv_jtag_console_init (void);
 129#endif
 130#ifdef CONFIG_CBMEM_CONSOLE
 131int cbmemc_init(void);
 132#endif
 133
 134#endif
 135