#include <linux/kernel.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <linux/of_pci.h>
#include <linux/of_platform.h>
#include <linux/of_irq.h>
#include <linux/of_address.h>
#include <linux/pci.h>
#include <linux/platform_device.h>
#include <linux/resource.h>
#include <linux/mfd/syscon.h>
#include <linux/regmap.h>
#include "pcie-mobiveil.h"
#define PCIE_LUT_OFF …
#define PCIE_PF_OFF …
#define PCIE_PF_INT_STAT …
#define PF_INT_STAT_PABRST …
#define PCIE_PF_DBG …
#define PF_DBG_LTSSM_MASK …
#define PF_DBG_LTSSM_L0 …
#define PF_DBG_WE …
#define PF_DBG_PABR …
#define to_ls_g4_pcie(x) …
struct ls_g4_pcie { … };
static inline u32 ls_g4_pcie_pf_readl(struct ls_g4_pcie *pcie, u32 off)
{ … }
static inline void ls_g4_pcie_pf_writel(struct ls_g4_pcie *pcie,
u32 off, u32 val)
{ … }
static int ls_g4_pcie_link_up(struct mobiveil_pcie *pci)
{ … }
static void ls_g4_pcie_disable_interrupt(struct ls_g4_pcie *pcie)
{ … }
static void ls_g4_pcie_enable_interrupt(struct ls_g4_pcie *pcie)
{ … }
static int ls_g4_pcie_reinit_hw(struct ls_g4_pcie *pcie)
{ … }
static irqreturn_t ls_g4_pcie_isr(int irq, void *dev_id)
{ … }
static int ls_g4_pcie_interrupt_init(struct mobiveil_pcie *mv_pci)
{ … }
static void ls_g4_pcie_reset(struct work_struct *work)
{ … }
static const struct mobiveil_rp_ops ls_g4_pcie_rp_ops = …;
static const struct mobiveil_pab_ops ls_g4_pcie_pab_ops = …;
static int __init ls_g4_pcie_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id ls_g4_pcie_of_match[] = …;
static struct platform_driver ls_g4_pcie_driver = …;
builtin_platform_driver_probe(…);