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