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 * See file CREDITS for list of people who contributed to this
   6 * project.
   7 *
   8 * This program is free software; you can redistribute it and/or
   9 * modify it under the terms of the GNU General Public License as
  10 * published by the Free Software Foundation; either version 2 of
  11 * the License, or (at your option) any later version.
  12 *
  13 * This program is distributed in the hope that it will be useful,
  14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16 * GNU General Public License for more details.
  17 *
  18 * You should have received a copy of the GNU General Public License
  19 * along with this program; if not, write to the Free Software
  20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  21 * MA 02111-1307 USA
  22 */
  23
  24#ifndef _STDIO_DEV_H_
  25#define _STDIO_DEV_H_
  26
  27#include <linux/list.h>
  28
  29/*
  30 * STDIO DEVICES
  31 */
  32
  33#define DEV_FLAGS_INPUT  0x00000001     /* Device can be used as input  console */
  34#define DEV_FLAGS_OUTPUT 0x00000002     /* Device can be used as output console */
  35#define DEV_FLAGS_SYSTEM 0x80000000     /* Device is a system device            */
  36#define DEV_EXT_VIDEO    0x00000001     /* Video extensions supported           */
  37
  38/* Device information */
  39struct stdio_dev {
  40        int     flags;                  /* Device flags: input/output/system    */
  41        int     ext;                    /* Supported extensions                 */
  42        char    name[16];               /* Device name                          */
  43
  44/* GENERAL functions */
  45
  46        int (*start) (void);            /* To start the device                  */
  47        int (*stop) (void);             /* To stop the device                   */
  48
  49/* OUTPUT functions */
  50
  51        void (*putc) (const char c);    /* To put a char                        */
  52        void (*puts) (const char *s);   /* To put a string (accelerator)        */
  53
  54/* INPUT functions */
  55
  56        int (*tstc) (void);             /* To test if a char is ready...        */
  57        int (*getc) (void);             /* To get that char                     */
  58
  59/* Other functions */
  60
  61        void *priv;                     /* Private extensions                   */
  62        struct list_head list;
  63};
  64
  65/*
  66 * VIDEO EXTENSIONS
  67 */
  68#define VIDEO_FORMAT_RGB_INDEXED        0x0000
  69#define VIDEO_FORMAT_RGB_DIRECTCOLOR    0x0001
  70#define VIDEO_FORMAT_YUYV_4_4_4         0x0010
  71#define VIDEO_FORMAT_YUYV_4_2_2         0x0011
  72
  73typedef struct {
  74        void *address;                  /* Address of framebuffer               */
  75        ushort  width;                  /* Horizontal resolution                */
  76        ushort  height;                 /* Vertical resolution                  */
  77        uchar   format;                 /* Format                               */
  78        uchar   colors;                 /* Colors number or color depth         */
  79        void (*setcolreg) (int, int, int, int);
  80        void (*getcolreg) (int, void *);
  81} video_ext_t;
  82
  83/*
  84 * VARIABLES
  85 */
  86extern struct stdio_dev *stdio_devices[];
  87extern char *stdio_names[MAX_FILES];
  88
  89/*
  90 * PROTOTYPES
  91 */
  92int     stdio_register (struct stdio_dev * dev);
  93int     stdio_init (void);
  94void    stdio_print_current_devices(void);
  95#ifdef CONFIG_SYS_STDIO_DEREGISTER
  96int     stdio_deregister(const char *devname);
  97#endif
  98struct list_head* stdio_get_list(void);
  99struct stdio_dev* stdio_get_by_name(const char* name);
 100struct stdio_dev* stdio_clone(struct stdio_dev *dev);
 101
 102#ifdef CONFIG_ARM_DCC_MULTI
 103int drv_arm_dcc_init(void);
 104#endif
 105#ifdef CONFIG_LCD
 106int     drv_lcd_init (void);
 107#endif
 108#if defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE)
 109int     drv_video_init (void);
 110#endif
 111#ifdef CONFIG_KEYBOARD
 112int     drv_keyboard_init (void);
 113#endif
 114#ifdef CONFIG_USB_TTY
 115int     drv_usbtty_init (void);
 116#endif
 117#ifdef CONFIG_NETCONSOLE
 118int     drv_nc_init (void);
 119#endif
 120#ifdef CONFIG_JTAG_CONSOLE
 121int drv_jtag_console_init (void);
 122#endif
 123
 124#endif
 125