1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2241fc436SRussell King /* 3241fc436SRussell King * Definitions for PCI support. 4241fc436SRussell King */ 5241fc436SRussell King #define FL_BASE_MASK 0x0007 6241fc436SRussell King #define FL_BASE0 0x0000 7241fc436SRussell King #define FL_BASE1 0x0001 8241fc436SRussell King #define FL_BASE2 0x0002 9241fc436SRussell King #define FL_BASE3 0x0003 10241fc436SRussell King #define FL_BASE4 0x0004 11241fc436SRussell King #define FL_GET_BASE(x) (x & FL_BASE_MASK) 12241fc436SRussell King 13241fc436SRussell King /* Use successive BARs (PCI base address registers), 14241fc436SRussell King else use offset into some specified BAR */ 15241fc436SRussell King #define FL_BASE_BARS 0x0008 16241fc436SRussell King 17241fc436SRussell King /* do not assign an irq */ 18241fc436SRussell King #define FL_NOIRQ 0x0080 19241fc436SRussell King 20241fc436SRussell King /* Use the Base address register size to cap number of ports */ 21241fc436SRussell King #define FL_REGION_SZ_CAP 0x0100 22241fc436SRussell King 23241fc436SRussell King struct pciserial_board { 24241fc436SRussell King unsigned int flags; 25241fc436SRussell King unsigned int num_ports; 26241fc436SRussell King unsigned int base_baud; 27241fc436SRussell King unsigned int uart_offset; 28241fc436SRussell King unsigned int reg_shift; 29241fc436SRussell King unsigned int first_offset; 30241fc436SRussell King }; 31241fc436SRussell King 32241fc436SRussell King struct serial_private; 33241fc436SRussell King 34241fc436SRussell King struct serial_private * 35975a1a7dSRussell King pciserial_init_ports(struct pci_dev *dev, const struct pciserial_board *board); 36241fc436SRussell King void pciserial_remove_ports(struct serial_private *priv); 37241fc436SRussell King void pciserial_suspend_ports(struct serial_private *priv); 38241fc436SRussell King void pciserial_resume_ports(struct serial_private *priv); 39