#include <linux/bitops.h>
#include <linux/bitfield.h>
#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/init.h>
#include <linux/iopoll.h>
#include <linux/of.h>
#include <linux/pci.h>
#include <linux/phy/phy.h>
#include <linux/platform_device.h>
#include <linux/reset.h>
#include "pcie-designware.h"
#define PCL_RSTCTRL0 …
#define PCL_RSTCTRL_AXI_REG …
#define PCL_RSTCTRL_AXI_SLAVE …
#define PCL_RSTCTRL_AXI_MASTER …
#define PCL_RSTCTRL_PIPE3 …
#define PCL_RSTCTRL1 …
#define PCL_RSTCTRL_PERST …
#define PCL_RSTCTRL2 …
#define PCL_RSTCTRL_PHY_RESET …
#define PCL_PINCTRL0 …
#define PCL_PERST_PLDN_REGEN …
#define PCL_PERST_NOE_REGEN …
#define PCL_PERST_OUT_REGEN …
#define PCL_PERST_PLDN_REGVAL …
#define PCL_PERST_NOE_REGVAL …
#define PCL_PERST_OUT_REGVAL …
#define PCL_PIPEMON …
#define PCL_PCLK_ALIVE …
#define PCL_MODE …
#define PCL_MODE_REGEN …
#define PCL_MODE_REGVAL …
#define PCL_APP_CLK_CTRL …
#define PCL_APP_CLK_REQ …
#define PCL_APP_READY_CTRL …
#define PCL_APP_LTSSM_ENABLE …
#define PCL_APP_MSI0 …
#define PCL_APP_VEN_MSI_TC_MASK …
#define PCL_APP_VEN_MSI_VECTOR_MASK …
#define PCL_APP_MSI1 …
#define PCL_APP_MSI_REQ …
#define PCL_APP_INTX …
#define PCL_APP_INTX_SYS_INT …
#define PCL_APP_PM0 …
#define PCL_SYS_AUX_PWR_DET …
#define PCL_INTX_WIDTH_USEC …
struct uniphier_pcie_ep_priv { … };
struct uniphier_pcie_ep_soc_data { … };
#define to_uniphier_pcie(x) …
static void uniphier_pcie_ltssm_enable(struct uniphier_pcie_ep_priv *priv,
bool enable)
{ … }
static void uniphier_pcie_phy_reset(struct uniphier_pcie_ep_priv *priv,
bool assert)
{ … }
static void uniphier_pcie_pro5_init_ep(struct uniphier_pcie_ep_priv *priv)
{ … }
static void uniphier_pcie_nx1_init_ep(struct uniphier_pcie_ep_priv *priv)
{ … }
static int uniphier_pcie_nx1_wait_ep(struct uniphier_pcie_ep_priv *priv)
{ … }
static int uniphier_pcie_start_link(struct dw_pcie *pci)
{ … }
static void uniphier_pcie_stop_link(struct dw_pcie *pci)
{ … }
static void uniphier_pcie_ep_init(struct dw_pcie_ep *ep)
{ … }
static int uniphier_pcie_ep_raise_intx_irq(struct dw_pcie_ep *ep)
{ … }
static int uniphier_pcie_ep_raise_msi_irq(struct dw_pcie_ep *ep,
u8 func_no, u16 interrupt_num)
{ … }
static int uniphier_pcie_ep_raise_irq(struct dw_pcie_ep *ep, u8 func_no,
unsigned int type, u16 interrupt_num)
{ … }
static const struct pci_epc_features*
uniphier_pcie_get_features(struct dw_pcie_ep *ep)
{ … }
static const struct dw_pcie_ep_ops uniphier_pcie_ep_ops = …;
static int uniphier_pcie_ep_enable(struct uniphier_pcie_ep_priv *priv)
{ … }
static const struct dw_pcie_ops dw_pcie_ops = …;
static int uniphier_pcie_ep_probe(struct platform_device *pdev)
{ … }
static const struct uniphier_pcie_ep_soc_data uniphier_pro5_data = …;
static const struct uniphier_pcie_ep_soc_data uniphier_nx1_data = …;
static const struct of_device_id uniphier_pcie_ep_match[] = …;
static struct platform_driver uniphier_pcie_ep_driver = …;
builtin_platform_driver(…) …;