2005-07-27 04:35:54 -06:00
|
|
|
/*
|
|
|
|
* Definitions for PCI support.
|
|
|
|
*/
|
|
|
|
#define FL_BASE_MASK 0x0007
|
|
|
|
#define FL_BASE0 0x0000
|
|
|
|
#define FL_BASE1 0x0001
|
|
|
|
#define FL_BASE2 0x0002
|
|
|
|
#define FL_BASE3 0x0003
|
|
|
|
#define FL_BASE4 0x0004
|
|
|
|
#define FL_GET_BASE(x) (x & FL_BASE_MASK)
|
|
|
|
|
|
|
|
/* Use successive BARs (PCI base address registers),
|
|
|
|
else use offset into some specified BAR */
|
|
|
|
#define FL_BASE_BARS 0x0008
|
|
|
|
|
|
|
|
/* do not assign an irq */
|
|
|
|
#define FL_NOIRQ 0x0080
|
|
|
|
|
|
|
|
/* Use the Base address register size to cap number of ports */
|
|
|
|
#define FL_REGION_SZ_CAP 0x0100
|
|
|
|
|
|
|
|
struct pciserial_board {
|
|
|
|
unsigned int flags;
|
|
|
|
unsigned int num_ports;
|
|
|
|
unsigned int base_baud;
|
|
|
|
unsigned int uart_offset;
|
|
|
|
unsigned int reg_shift;
|
|
|
|
unsigned int first_offset;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct serial_private;
|
|
|
|
|
|
|
|
struct serial_private *
|
|
|
|
pciserial_init_ports(struct pci_dev *dev, struct pciserial_board *board);
|
|
|
|
void pciserial_remove_ports(struct serial_private *priv);
|
|
|
|
void pciserial_suspend_ports(struct serial_private *priv);
|
|
|
|
void pciserial_resume_ports(struct serial_private *priv);
|