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 */ 36 typedef 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 */ 50 typedef 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 */ 70 typedef 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