#ifndef _PCI_HOST_GENERIC_H_
#define _PCI_HOST_GENERIC_H_
/*
 * PCI host bridge supporting structures and constants
 *
 * Copyright (C) 2016, Red Hat Inc, Alexander Gordeev <agordeev@redhat.com>
 *
 * This work is licensed under the terms of the GNU LGPL, version 2.
 */
#include "libcflat.h"

struct pci_addr_space {
	phys_addr_t		pci_start;
	phys_addr_t		start;
	phys_addr_t		size;
	phys_addr_t		allocated;
	int			type;
};

struct pci_host_bridge {
	void __iomem		*start;
	size_t			size;
	int			bus;
	int			bus_max;
	int			nr_addr_spaces;
	struct pci_addr_space	addr_space[];
};

/*
 * The following constants are derived from Linux, see this source:
 *
 *         drivers/pci/host/pci-host-generic.c
 *                 struct gen_pci_cfg_bus_ops::bus_shift
 *                 int gen_pci_parse_map_cfg_windows(struct gen_pci *pci)
 *
 * Documentation/devicetree/bindings/pci/host-generic-pci.txt describes
 * ECAM Configuration Space is be memory-mapped by concatenating the various
 * components to form an offset:
 *
 *	cfg_offset(bus, device, function, register) =
 *		   bus << 20 | device << 15 | function << 12 | register
 */
#define PCI_ECAM_BUS_SHIFT	20
#define PCI_ECAM_DEVFN_SHIFT	12

#endif
