xref: /openbmc/linux/include/linux/8250_pci.h (revision b2441318)
1b2441318SGreg 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