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