This adds a PCI driver for the controllers found on Marvell MVEBU SoCs. Besides the functional driver itself, it also adds SoC specific PHY setup required for PCIe. Currently, only Armada 370 is fully supported. Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> Acked-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
38 lines
776 B
C
38 lines
776 B
C
/*
|
|
* PCIe include for Marvell MVEBU SoCs
|
|
*
|
|
* Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
|
|
*
|
|
* This file is licensed under the terms of the GNU General Public
|
|
* License version 2. This program is licensed "as is" without any
|
|
* warranty of any kind, whether express or implied.
|
|
*/
|
|
|
|
#ifndef __MVEBU_PCI_H
|
|
#define __MVEBU_PCI_H
|
|
|
|
#include <linux/pci.h>
|
|
|
|
struct mvebu_pcie {
|
|
struct pci_controller pci;
|
|
char *name;
|
|
void __iomem *base;
|
|
void __iomem *membase;
|
|
struct resource mem;
|
|
void __iomem *iobase;
|
|
struct resource io;
|
|
u32 port;
|
|
u32 lane;
|
|
u32 lane_mask;
|
|
int devfn;
|
|
};
|
|
|
|
struct mvebu_pcie_ops {
|
|
int (*phy_setup)(struct mvebu_pcie *pcie);
|
|
};
|
|
|
|
int armada_370_phy_setup(struct mvebu_pcie *pcie);
|
|
int armada_xp_phy_setup(struct mvebu_pcie *pcie);
|
|
|
|
#endif
|