linux/drivers/pci/controller/cadence/pci-j721e.c

// SPDX-License-Identifier: GPL-2.0
/*
 * pci-j721e - PCIe controller driver for TI's J721E SoCs
 *
 * Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com
 * Author: Kishon Vijay Abraham I <[email protected]>
 */

#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/io.h>
#include <linux/irqchip/chained_irq.h>
#include <linux/irqdomain.h>
#include <linux/mfd/syscon.h>
#include <linux/of.h>
#include <linux/pci.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/regmap.h>

#include "../../pci.h"
#include "pcie-cadence.h"

#define ENABLE_REG_SYS_2
#define STATUS_REG_SYS_2
#define STATUS_CLR_REG_SYS_2
#define LINK_DOWN
#define J7200_LINK_DOWN

#define J721E_PCIE_USER_CMD_STATUS
#define LINK_TRAINING_ENABLE

#define J721E_PCIE_USER_LINKSTATUS
#define LINK_STATUS

enum link_status {};

#define J721E_MODE_RC
#define LANE_COUNT(n)

#define GENERATION_SEL_MASK

struct j721e_pcie {};

enum j721e_pcie_mode {};

struct j721e_pcie_data {};

static inline u32 j721e_pcie_user_readl(struct j721e_pcie *pcie, u32 offset)
{}

static inline void j721e_pcie_user_writel(struct j721e_pcie *pcie, u32 offset,
					  u32 value)
{}

static inline u32 j721e_pcie_intd_readl(struct j721e_pcie *pcie, u32 offset)
{}

static inline void j721e_pcie_intd_writel(struct j721e_pcie *pcie, u32 offset,
					  u32 value)
{}

static irqreturn_t j721e_pcie_link_irq_handler(int irq, void *priv)
{}

static void j721e_pcie_config_link_irq(struct j721e_pcie *pcie)
{}

static int j721e_pcie_start_link(struct cdns_pcie *cdns_pcie)
{}

static void j721e_pcie_stop_link(struct cdns_pcie *cdns_pcie)
{}

static bool j721e_pcie_link_up(struct cdns_pcie *cdns_pcie)
{}

static const struct cdns_pcie_ops j721e_pcie_ops =;

static int j721e_pcie_set_mode(struct j721e_pcie *pcie, struct regmap *syscon,
			       unsigned int offset)
{}

static int j721e_pcie_set_link_speed(struct j721e_pcie *pcie,
				     struct regmap *syscon, unsigned int offset)
{}

static int j721e_pcie_set_lane_count(struct j721e_pcie *pcie,
				     struct regmap *syscon, unsigned int offset)
{}

static int j721e_pcie_ctrl_init(struct j721e_pcie *pcie)
{}

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

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

static struct pci_ops cdns_ti_pcie_host_ops =;

static const struct j721e_pcie_data j721e_pcie_rc_data =;

static const struct j721e_pcie_data j721e_pcie_ep_data =;

static const struct j721e_pcie_data j7200_pcie_rc_data =;

static const struct j721e_pcie_data j7200_pcie_ep_data =;

static const struct j721e_pcie_data am64_pcie_rc_data =;

static const struct j721e_pcie_data am64_pcie_ep_data =;

static const struct j721e_pcie_data j784s4_pcie_rc_data =;

static const struct j721e_pcie_data j784s4_pcie_ep_data =;

static const struct of_device_id of_j721e_pcie_match[] =;

static int j721e_pcie_probe(struct platform_device *pdev)
{}

static void j721e_pcie_remove(struct platform_device *pdev)
{}

static struct platform_driver j721e_pcie_driver =;
builtin_platform_driver();