Subversion Repositories shark

Rev

Blame | Last modification | View Log | RSS feed

/*
 *  linux/include/linux/acpi_serial.h
 *
 *  Copyright (C) 2000  Hewlett-Packard Co.
 *  Copyright (C) 2000  Khalid Aziz <khalid_aziz@hp.com>
 *
 *  Definitions for ACPI defined serial ports (headless console and
 *  debug ports)
 *
 */


#include <linux/serial.h>

extern void setup_serial_acpi(void *);

#define ACPI_SIG_LEN            4

/* ACPI table signatures */
#define ACPI_SPCRT_SIGNATURE    "SPCR"
#define ACPI_DBGPT_SIGNATURE    "DBGP"

/* Interface type as defined in ACPI serial port tables */
#define ACPI_SERIAL_INTFC_16550 0
#define ACPI_SERIAL_INTFC_16450 1

/* Interrupt types for ACPI serial port tables */
#define ACPI_SERIAL_INT_PCAT    0x01
#define ACPI_SERIAL_INT_APIC    0x02
#define ACPI_SERIAL_INT_SAPIC   0x04

/* Baud rates as defined in ACPI serial port tables */
#define ACPI_SERIAL_BAUD_9600           3
#define ACPI_SERIAL_BAUD_19200          4
#define ACPI_SERIAL_BAUD_57600          6
#define ACPI_SERIAL_BAUD_115200         7

/* Parity as defined in ACPI serial port tables */
#define ACPI_SERIAL_PARITY_NONE         0

/* Flow control methods as defined in ACPI serial port tables */
#define ACPI_SERIAL_FLOW_DCD    0x01
#define ACPI_SERIAL_FLOW_RTS    0x02
#define ACPI_SERIAL_FLOW_XON    0x04

/* Terminal types as defined in ACPI serial port tables */
#define ACPI_SERIAL_TERM_VT100          0
#define ACPI_SERIAL_TERM_VT100X 1

/* PCI Flags as defined by SPCR table */
#define ACPI_SERIAL_PCIFLAG_PNP 0x00000001

/* Space ID as defined in base address structure in ACPI serial port tables */
#define ACPI_SERIAL_MEM_SPACE           0
#define ACPI_SERIAL_IO_SPACE            1
#define ACPI_SERIAL_PCICONF_SPACE       2

/*
 * Generic Register Address Structure - as defined by Microsoft
 * in http://www.microsoft.com/hwdev/onnow/download/LFreeACPI.doc
 *
*/

typedef struct {
        u8  space_id;
        u8  bit_width;
        u8  bit_offset;
        u8  resv;
        u32 addrl;
        u32 addrh;
} gen_regaddr;

/* Space ID for generic register address structure */
#define REGADDR_SPACE_SYSMEM    0
#define REGADDR_SPACE_SYSIO     1
#define REGADDR_SPACE_PCICONFIG 2

/* Serial Port Console Redirection and Debug Port Table formats */
typedef struct {
        u8 signature[4];
        u32 length;
        u8  rev;
        u8  chksum;
        u8  oemid[6];
        u8  oem_tabid[8];
        u32 oem_rev;
        u8  creator_id[4];
        u32 creator_rev;
        u8  intfc_type;
        u8  resv1[3];
        gen_regaddr base_addr;
        u8  int_type;
        u8  irq;
        u8  global_int[4];
        u8  baud;
        u8  parity;
        u8  stop_bits;
        u8  flow_ctrl;
        u8  termtype;
        u8  language;
        u16 pci_dev_id;
        u16 pci_vendor_id;
        u8  pci_bus;
        u8  pci_dev;
        u8  pci_func;
        u8  pci_flags[4];
        u8  pci_seg;
        u32 resv2;
} acpi_ser_t;