1/* 2 * linux/include/linux/hcdp_serial.h 3 * 4 * Copyright (C) 2002 Hewlett-Packard Co. 5 * Copyright (C) 2002 Khalid Aziz <khalid_aziz@hp.com> 6 * 7 * Definitions for HCDP defined serial ports (Serial console and 8 * debug ports) 9 * 10 */ 11#ifndef _LINUX_HCDP_SERIAL_H 12#define _LINUX_HCDP_SERIAL_H 13 14/* ACPI table signatures */ 15#define HCDP_SIG_LEN 4 16#define HCDP_SIGNATURE "HCDP" 17 18/* Space ID as defined in ACPI generic address structure */ 19#define ACPI_MEM_SPACE 0 20#define ACPI_IO_SPACE 1 21#define ACPI_PCICONF_SPACE 2 22 23/* 24 * Maximum number of HCDP devices we want to read in 25 */ 26#define MAX_HCDP_DEVICES 6 27 28/* 29 * Default base baud rate if clock rate is 0 in HCDP table. 30 */ 31#define DEFAULT_BAUD_BASE 115200 32 33/* 34 * ACPI Generic Address Structure 35 */ 36typedef struct { 37 u8 space_id; 38 u8 bit_width; 39 u8 bit_offset; 40 u8 resv; 41 u32 addrlo; 42 u32 addrhi; 43} acpi_gen_addr; 44 45/* HCDP Device descriptor entry types */ 46#define HCDP_DEV_CONSOLE 0 47#define HCDP_DEV_DEBUG 1 48 49/* HCDP Device descriptor type */ 50typedef struct { 51 u8 type; 52 u8 bits; 53 u8 parity; 54 u8 stop_bits; 55 u8 pci_seg; 56 u8 pci_bus; 57 u8 pci_dev; 58 u8 pci_func; 59 u64 baud; 60 acpi_gen_addr base_addr; 61 u16 pci_dev_id; 62 u16 pci_vendor_id; 63 u32 global_int; 64 u32 clock_rate; 65 u8 pci_prog_intfc; 66 u8 resv; 67} hcdp_dev_t; 68 69/* HCDP Table format */ 70typedef struct { 71 u8 signature[4]; 72 u32 len; 73 u8 rev; 74 u8 chksum; 75 u8 oemid[6]; 76 u8 oem_tabid[8]; 77 u32 oem_rev; 78 u8 creator_id[4]; 79 u32 creator_rev; 80 u32 num_entries; 81 hcdp_dev_t hcdp_dev[MAX_HCDP_DEVICES]; 82} hcdp_t; 83 84#endif /* _LINUX_HCDP_SERIAL_H */ 85