#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/pci.h>
#include <linux/platform_device.h>
#include <linux/reset.h>
#include <linux/resource.h>
#include <linux/types.h>
#include <linux/phy/phy.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include "pcie-designware.h"
#define to_meson_pcie(x) …
#define PCIE_CAP_MAX_PAYLOAD_SIZE(x) …
#define PCIE_CAP_MAX_READ_REQ_SIZE(x) …
#define PCIE_CFG0 …
#define APP_LTSSM_ENABLE …
#define PCIE_CFG_STATUS12 …
#define IS_SMLH_LINK_UP(x) …
#define IS_RDLH_LINK_UP(x) …
#define IS_LTSSM_UP(x) …
#define PCIE_CFG_STATUS17 …
#define PM_CURRENT_STATE(x) …
#define WAIT_LINKUP_TIMEOUT …
#define PORT_CLK_RATE …
#define MAX_PAYLOAD_SIZE …
#define MAX_READ_REQ_SIZE …
#define PCIE_RESET_DELAY …
#define PCIE_SHARED_RESET …
#define PCIE_NORMAL_RESET …
enum pcie_data_rate { … };
struct meson_pcie_clk_res { … };
struct meson_pcie_rc_reset { … };
struct meson_pcie { … };
static struct reset_control *meson_pcie_get_reset(struct meson_pcie *mp,
const char *id,
u32 reset_type)
{ … }
static int meson_pcie_get_resets(struct meson_pcie *mp)
{ … }
static int meson_pcie_get_mems(struct platform_device *pdev,
struct meson_pcie *mp)
{ … }
static int meson_pcie_power_on(struct meson_pcie *mp)
{ … }
static void meson_pcie_power_off(struct meson_pcie *mp)
{ … }
static int meson_pcie_reset(struct meson_pcie *mp)
{ … }
static inline void meson_pcie_disable_clock(void *data)
{ … }
static inline struct clk *meson_pcie_probe_clock(struct device *dev,
const char *id, u64 rate)
{ … }
static int meson_pcie_probe_clocks(struct meson_pcie *mp)
{ … }
static inline u32 meson_cfg_readl(struct meson_pcie *mp, u32 reg)
{ … }
static inline void meson_cfg_writel(struct meson_pcie *mp, u32 val, u32 reg)
{ … }
static void meson_pcie_assert_reset(struct meson_pcie *mp)
{ … }
static void meson_pcie_ltssm_enable(struct meson_pcie *mp)
{ … }
static int meson_size_to_payload(struct meson_pcie *mp, int size)
{ … }
static void meson_set_max_payload(struct meson_pcie *mp, int size)
{ … }
static void meson_set_max_rd_req_size(struct meson_pcie *mp, int size)
{ … }
static int meson_pcie_start_link(struct dw_pcie *pci)
{ … }
static int meson_pcie_rd_own_conf(struct pci_bus *bus, u32 devfn,
int where, int size, u32 *val)
{ … }
static struct pci_ops meson_pci_ops = …;
static int meson_pcie_link_up(struct dw_pcie *pci)
{ … }
static int meson_pcie_host_init(struct dw_pcie_rp *pp)
{ … }
static const struct dw_pcie_host_ops meson_pcie_host_ops = …;
static const struct dw_pcie_ops dw_pcie_ops = …;
static int meson_pcie_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id meson_pcie_of_match[] = …;
MODULE_DEVICE_TABLE(of, meson_pcie_of_match);
static struct platform_driver meson_pcie_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;