Most, if not all, of the machinery necessary to access PCI hardware should already be present on most Linux PC-architecture kernels (and if not, can be easily added). Most likely, you only need to access the existing kernel PCI services from your own driver. That is part of the basis of the whole PCI concept. The online book Linux Device Drivers, 3rd Edition
has a full chapter dedicated to PCI drivers.