#include <linux/align.h>
#include <linux/bitops.h>
#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/dma/edma.h>
#include <linux/gpio/consumer.h>
#include <linux/ioport.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/sizes.h>
#include <linux/types.h>
#include "../../pci.h"
#include "pcie-designware.h"
static const char * const dw_pcie_app_clks[DW_PCIE_NUM_APP_CLKS] = …;
static const char * const dw_pcie_core_clks[DW_PCIE_NUM_CORE_CLKS] = …;
static const char * const dw_pcie_app_rsts[DW_PCIE_NUM_APP_RSTS] = …;
static const char * const dw_pcie_core_rsts[DW_PCIE_NUM_CORE_RSTS] = …;
static int dw_pcie_get_clocks(struct dw_pcie *pci)
{ … }
static int dw_pcie_get_resets(struct dw_pcie *pci)
{ … }
int dw_pcie_get_resources(struct dw_pcie *pci)
{ … }
void dw_pcie_version_detect(struct dw_pcie *pci)
{ … }
static u8 __dw_pcie_find_next_cap(struct dw_pcie *pci, u8 cap_ptr,
u8 cap)
{ … }
u8 dw_pcie_find_capability(struct dw_pcie *pci, u8 cap)
{ … }
EXPORT_SYMBOL_GPL(…);
static u16 dw_pcie_find_next_ext_capability(struct dw_pcie *pci, u16 start,
u8 cap)
{ … }
u16 dw_pcie_find_ext_capability(struct dw_pcie *pci, u8 cap)
{ … }
EXPORT_SYMBOL_GPL(…);
int dw_pcie_read(void __iomem *addr, int size, u32 *val)
{ … }
EXPORT_SYMBOL_GPL(…);
int dw_pcie_write(void __iomem *addr, int size, u32 val)
{ … }
EXPORT_SYMBOL_GPL(…);
u32 dw_pcie_read_dbi(struct dw_pcie *pci, u32 reg, size_t size)
{ … }
EXPORT_SYMBOL_GPL(…);
void dw_pcie_write_dbi(struct dw_pcie *pci, u32 reg, size_t size, u32 val)
{ … }
EXPORT_SYMBOL_GPL(…);
void dw_pcie_write_dbi2(struct dw_pcie *pci, u32 reg, size_t size, u32 val)
{ … }
EXPORT_SYMBOL_GPL(…);
static inline void __iomem *dw_pcie_select_atu(struct dw_pcie *pci, u32 dir,
u32 index)
{ … }
static u32 dw_pcie_readl_atu(struct dw_pcie *pci, u32 dir, u32 index, u32 reg)
{ … }
static void dw_pcie_writel_atu(struct dw_pcie *pci, u32 dir, u32 index,
u32 reg, u32 val)
{ … }
static inline u32 dw_pcie_readl_atu_ob(struct dw_pcie *pci, u32 index, u32 reg)
{ … }
static inline void dw_pcie_writel_atu_ob(struct dw_pcie *pci, u32 index, u32 reg,
u32 val)
{ … }
static inline u32 dw_pcie_enable_ecrc(u32 val)
{ … }
int dw_pcie_prog_outbound_atu(struct dw_pcie *pci,
const struct dw_pcie_ob_atu_cfg *atu)
{ … }
static inline u32 dw_pcie_readl_atu_ib(struct dw_pcie *pci, u32 index, u32 reg)
{ … }
static inline void dw_pcie_writel_atu_ib(struct dw_pcie *pci, u32 index, u32 reg,
u32 val)
{ … }
int dw_pcie_prog_inbound_atu(struct dw_pcie *pci, int index, int type,
u64 cpu_addr, u64 pci_addr, u64 size)
{ … }
int dw_pcie_prog_ep_inbound_atu(struct dw_pcie *pci, u8 func_no, int index,
int type, u64 cpu_addr, u8 bar)
{ … }
void dw_pcie_disable_atu(struct dw_pcie *pci, u32 dir, int index)
{ … }
int dw_pcie_wait_for_link(struct dw_pcie *pci)
{ … }
EXPORT_SYMBOL_GPL(…);
int dw_pcie_link_up(struct dw_pcie *pci)
{ … }
EXPORT_SYMBOL_GPL(…);
void dw_pcie_upconfig_setup(struct dw_pcie *pci)
{ … }
EXPORT_SYMBOL_GPL(…);
static void dw_pcie_link_set_max_speed(struct dw_pcie *pci)
{ … }
static void dw_pcie_link_set_max_link_width(struct dw_pcie *pci, u32 num_lanes)
{ … }
void dw_pcie_iatu_detect(struct dw_pcie *pci)
{ … }
static u32 dw_pcie_readl_dma(struct dw_pcie *pci, u32 reg)
{ … }
static int dw_pcie_edma_irq_vector(struct device *dev, unsigned int nr)
{ … }
static struct dw_edma_plat_ops dw_pcie_edma_ops = …;
static void dw_pcie_edma_init_data(struct dw_pcie *pci)
{ … }
static int dw_pcie_edma_find_mf(struct dw_pcie *pci)
{ … }
static int dw_pcie_edma_find_channels(struct dw_pcie *pci)
{ … }
static int dw_pcie_edma_find_chip(struct dw_pcie *pci)
{ … }
static int dw_pcie_edma_irq_verify(struct dw_pcie *pci)
{ … }
static int dw_pcie_edma_ll_alloc(struct dw_pcie *pci)
{ … }
int dw_pcie_edma_detect(struct dw_pcie *pci)
{ … }
void dw_pcie_edma_remove(struct dw_pcie *pci)
{ … }
void dw_pcie_setup(struct dw_pcie *pci)
{ … }