xref: /openbmc/u-boot/arch/x86/include/asm/pci.h (revision e8f80a5a)
1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
2fea25720SGraeme Russ /*
3fea25720SGraeme Russ  * (C) Copyright 2002
4fa82f871SAlbert ARIBAUD  * Daniel Engström, Omicron Ceti AB, daniel@omicron.se
5fea25720SGraeme Russ  */
6fea25720SGraeme Russ 
7fea25720SGraeme Russ #ifndef _PCI_I386_H_
8452f50f7SGabe Black #define _PCI_I386_H_
9fea25720SGraeme Russ 
10a219daeaSSimon Glass #include <pci.h>
11a219daeaSSimon Glass 
123c8ae536SBin Meng /* bus mapping constants (used for PCI core initialization) */
133c8ae536SBin Meng #define PCI_REG_ADDR	0xcf8
143c8ae536SBin Meng #define PCI_REG_DATA	0xcfc
153c8ae536SBin Meng 
163c8ae536SBin Meng #define PCI_CFG_EN	0x80000000
173c8ae536SBin Meng 
183c8ae536SBin Meng #ifndef __ASSEMBLY__
193c8ae536SBin Meng 
20a219daeaSSimon Glass int pci_x86_read_config(struct udevice *bus, pci_dev_t bdf, uint offset,
21a219daeaSSimon Glass 			ulong *valuep, enum pci_size_t size);
22a219daeaSSimon Glass 
23a219daeaSSimon Glass int pci_x86_write_config(struct udevice *bus, pci_dev_t bdf, uint offset,
24a219daeaSSimon Glass 			 ulong value, enum pci_size_t size);
25a219daeaSSimon Glass 
26e3e7fa2cSBin Meng /**
27e3e7fa2cSBin Meng  * Assign IRQ number to a PCI device
28e3e7fa2cSBin Meng  *
29e3e7fa2cSBin Meng  * This function assigns IRQ for a PCI device. If the device does not exist
30e3e7fa2cSBin Meng  * or does not require interrupts then this function has no effect.
31e3e7fa2cSBin Meng  *
32e3e7fa2cSBin Meng  * @bus:	PCI bus number
33e3e7fa2cSBin Meng  * @device:	PCI device number
34e3e7fa2cSBin Meng  * @irq:	An array of IRQ numbers that are assigned to INTA through
35e3e7fa2cSBin Meng  *		INTD of this PCI device.
36e3e7fa2cSBin Meng  */
3731a2dc69SBin Meng void pci_assign_irqs(int bus, int device, u8 irq[4]);
38e3e7fa2cSBin Meng 
393c8ae536SBin Meng #endif /* __ASSEMBLY__ */
403c8ae536SBin Meng 
413c8ae536SBin Meng #endif /* _PCI_I386_H_ */
42