linux/drivers/pci/controller/dwc/pci-exynos.c

// SPDX-License-Identifier: GPL-2.0
/*
 * PCIe host controller driver for Samsung Exynos SoCs
 *
 * Copyright (C) 2013-2020 Samsung Electronics Co., Ltd.
 *		https://www.samsung.com
 *
 * Author: Jingoo Han <[email protected]>
 *	   Jaehoon Chung <[email protected]>
 */

#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/platform_device.h>
#include <linux/phy/phy.h>
#include <linux/regulator/consumer.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>

#include "pcie-designware.h"

#define to_exynos_pcie(x)

/* PCIe ELBI registers */
#define PCIE_IRQ_PULSE
#define IRQ_INTA_ASSERT
#define IRQ_INTB_ASSERT
#define IRQ_INTC_ASSERT
#define IRQ_INTD_ASSERT
#define PCIE_IRQ_LEVEL
#define PCIE_IRQ_SPECIAL
#define PCIE_IRQ_EN_PULSE
#define PCIE_IRQ_EN_LEVEL
#define PCIE_IRQ_EN_SPECIAL
#define PCIE_SW_WAKE
#define PCIE_BUS_EN
#define PCIE_CORE_RESET
#define PCIE_CORE_RESET_ENABLE
#define PCIE_STICKY_RESET
#define PCIE_NONSTICKY_RESET
#define PCIE_APP_INIT_RESET
#define PCIE_APP_LTSSM_ENABLE
#define PCIE_ELBI_RDLH_LINKUP
#define PCIE_ELBI_XMLH_LINKUP
#define PCIE_ELBI_LTSSM_ENABLE
#define PCIE_ELBI_SLV_AWMISC
#define PCIE_ELBI_SLV_ARMISC
#define PCIE_ELBI_SLV_DBI_ENABLE

struct exynos_pcie {};

static void exynos_pcie_writel(void __iomem *base, u32 val, u32 reg)
{}

static u32 exynos_pcie_readl(void __iomem *base, u32 reg)
{}

static void exynos_pcie_sideband_dbi_w_mode(struct exynos_pcie *ep, bool on)
{}

static void exynos_pcie_sideband_dbi_r_mode(struct exynos_pcie *ep, bool on)
{}

static void exynos_pcie_assert_core_reset(struct exynos_pcie *ep)
{}

static void exynos_pcie_deassert_core_reset(struct exynos_pcie *ep)
{}

static int exynos_pcie_start_link(struct dw_pcie *pci)
{}

static void exynos_pcie_clear_irq_pulse(struct exynos_pcie *ep)
{}

static irqreturn_t exynos_pcie_irq_handler(int irq, void *arg)
{}

static void exynos_pcie_enable_irq_pulse(struct exynos_pcie *ep)
{}

static u32 exynos_pcie_read_dbi(struct dw_pcie *pci, void __iomem *base,
				u32 reg, size_t size)
{}

static void exynos_pcie_write_dbi(struct dw_pcie *pci, void __iomem *base,
				  u32 reg, size_t size, u32 val)
{}

static int exynos_pcie_rd_own_conf(struct pci_bus *bus, unsigned int devfn,
				   int where, int size, u32 *val)
{}

static int exynos_pcie_wr_own_conf(struct pci_bus *bus, unsigned int devfn,
				   int where, int size, u32 val)
{}

static struct pci_ops exynos_pci_ops =;

static int exynos_pcie_link_up(struct dw_pcie *pci)
{}

static int exynos_pcie_host_init(struct dw_pcie_rp *pp)
{}

static const struct dw_pcie_host_ops exynos_pcie_host_ops =;

static int exynos_add_pcie_port(struct exynos_pcie *ep,
				       struct platform_device *pdev)
{}

static const struct dw_pcie_ops dw_pcie_ops =;

static int exynos_pcie_probe(struct platform_device *pdev)
{}

static void exynos_pcie_remove(struct platform_device *pdev)
{}

static int exynos_pcie_suspend_noirq(struct device *dev)
{}

static int exynos_pcie_resume_noirq(struct device *dev)
{}

static const struct dev_pm_ops exynos_pcie_pm_ops =;

static const struct of_device_id exynos_pcie_of_match[] =;

static struct platform_driver exynos_pcie_driver =;
module_platform_driver();
MODULE_DESCRIPTION();
MODULE_LICENSE();
MODULE_DEVICE_TABLE(of, exynos_pcie_of_match);