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