GNU Linux-libre 6.9.2-gnu
[releases.git] / include / linux / 8250_pci.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Definitions for PCI support.
4  */
5 #define FL_BASE_MASK            0x0007
6 #define FL_BASE0                0x0000
7 #define FL_BASE1                0x0001
8 #define FL_BASE2                0x0002
9 #define FL_BASE3                0x0003
10 #define FL_BASE4                0x0004
11 #define FL_GET_BASE(x)          (x & FL_BASE_MASK)
12
13 /* Use successive BARs (PCI base address registers),
14    else use offset into some specified BAR */
15 #define FL_BASE_BARS            0x0008
16
17 /* do not assign an irq */
18 #define FL_NOIRQ                0x0080
19
20 /* Use the Base address register size to cap number of ports */
21 #define FL_REGION_SZ_CAP        0x0100
22
23 struct pciserial_board {
24         unsigned int flags;
25         unsigned int num_ports;
26         unsigned int base_baud;
27         unsigned int uart_offset;
28         unsigned int reg_shift;
29         unsigned int first_offset;
30 };
31
32 struct serial_private;
33
34 struct serial_private *
35 pciserial_init_ports(struct pci_dev *dev, const struct pciserial_board *board);
36 void pciserial_remove_ports(struct serial_private *priv);
37 void pciserial_suspend_ports(struct serial_private *priv);
38 void pciserial_resume_ports(struct serial_private *priv);