linux/drivers/pci/controller/plda/pcie-plda.h

/* SPDX-License-Identifier: GPL-2.0 */
/*
 * PLDA PCIe host controller driver
 */

#ifndef _PCIE_PLDA_H
#define _PCIE_PLDA_H

/* Number of MSI IRQs */
#define PLDA_MAX_NUM_MSI_IRQS

/* PCIe Bridge Phy Regs */
#define GEN_SETTINGS
#define RP_ENABLE
#define PCIE_PCI_IDS_DW1
#define IDS_CLASS_CODE_SHIFT
#define REVISION_ID_MASK
#define CLASS_CODE_ID_MASK
#define PCIE_PCI_IRQ_DW0
#define MSIX_CAP_MASK
#define NUM_MSI_MSGS_MASK
#define NUM_MSI_MSGS_SHIFT
#define PCI_MISC
#define PHY_FUNCTION_DIS
#define PCIE_WINROM
#define PREF_MEM_WIN_64_SUPPORT

#define IMASK_LOCAL
#define DMA_END_ENGINE_0_MASK
#define DMA_END_ENGINE_0_SHIFT
#define DMA_END_ENGINE_1_MASK
#define DMA_END_ENGINE_1_SHIFT
#define DMA_ERROR_ENGINE_0_MASK
#define DMA_ERROR_ENGINE_0_SHIFT
#define DMA_ERROR_ENGINE_1_MASK
#define DMA_ERROR_ENGINE_1_SHIFT
#define A_ATR_EVT_POST_ERR_MASK
#define A_ATR_EVT_POST_ERR_SHIFT
#define A_ATR_EVT_FETCH_ERR_MASK
#define A_ATR_EVT_FETCH_ERR_SHIFT
#define A_ATR_EVT_DISCARD_ERR_MASK
#define A_ATR_EVT_DISCARD_ERR_SHIFT
#define A_ATR_EVT_DOORBELL_MASK
#define A_ATR_EVT_DOORBELL_SHIFT
#define P_ATR_EVT_POST_ERR_MASK
#define P_ATR_EVT_POST_ERR_SHIFT
#define P_ATR_EVT_FETCH_ERR_MASK
#define P_ATR_EVT_FETCH_ERR_SHIFT
#define P_ATR_EVT_DISCARD_ERR_MASK
#define P_ATR_EVT_DISCARD_ERR_SHIFT
#define P_ATR_EVT_DOORBELL_MASK
#define P_ATR_EVT_DOORBELL_SHIFT
#define PM_MSI_INT_INTA_MASK
#define PM_MSI_INT_INTA_SHIFT
#define PM_MSI_INT_INTB_MASK
#define PM_MSI_INT_INTB_SHIFT
#define PM_MSI_INT_INTC_MASK
#define PM_MSI_INT_INTC_SHIFT
#define PM_MSI_INT_INTD_MASK
#define PM_MSI_INT_INTD_SHIFT
#define PM_MSI_INT_INTX_MASK
#define PM_MSI_INT_INTX_SHIFT
#define PM_MSI_INT_MSI_MASK
#define PM_MSI_INT_MSI_SHIFT
#define PM_MSI_INT_AER_EVT_MASK
#define PM_MSI_INT_AER_EVT_SHIFT
#define PM_MSI_INT_EVENTS_MASK
#define PM_MSI_INT_EVENTS_SHIFT
#define PM_MSI_INT_SYS_ERR_MASK
#define PM_MSI_INT_SYS_ERR_SHIFT
#define SYS_AND_MSI_MASK
#define NUM_LOCAL_EVENTS
#define ISTATUS_LOCAL
#define IMASK_HOST
#define ISTATUS_HOST
#define IMSI_ADDR
#define ISTATUS_MSI
#define PMSG_SUPPORT_RX
#define PMSG_LTR_SUPPORT

/* PCIe Master table init defines */
#define ATR0_PCIE_WIN0_SRCADDR_PARAM
#define ATR0_PCIE_ATR_SIZE
#define ATR0_PCIE_ATR_SIZE_SHIFT
#define ATR0_PCIE_WIN0_SRC_ADDR
#define ATR0_PCIE_WIN0_TRSL_ADDR_LSB
#define ATR0_PCIE_WIN0_TRSL_ADDR_UDW
#define ATR0_PCIE_WIN0_TRSL_PARAM

/* PCIe AXI slave table init defines */
#define ATR0_AXI4_SLV0_SRCADDR_PARAM
#define ATR_SIZE_SHIFT
#define ATR_IMPL_ENABLE
#define ATR0_AXI4_SLV0_SRC_ADDR
#define ATR0_AXI4_SLV0_TRSL_ADDR_LSB
#define ATR0_AXI4_SLV0_TRSL_ADDR_UDW
#define ATR0_AXI4_SLV0_TRSL_PARAM
#define PCIE_TX_RX_INTERFACE
#define PCIE_CONFIG_INTERFACE

#define CONFIG_SPACE_ADDR_OFFSET

#define ATR_ENTRY_SIZE

enum plda_int_event {};

#define PLDA_NUM_DMA_EVENTS

#define EVENT_PM_MSI_INT_INTX
#define EVENT_PM_MSI_INT_MSI
#define PLDA_MAX_EVENT_NUM

/*
 * PLDA interrupt register
 *
 * 31         27     23              15           7          0
 * +--+--+--+-+------+-+-+-+-+-+-+-+-+-----------+-----------+
 * |12|11|10|9| intx |7|6|5|4|3|2|1|0| DMA error | DMA end   |
 * +--+--+--+-+------+-+-+-+-+-+-+-+-+-----------+-----------+
 * event  bit
 * 0-7   (0-7)   DMA interrupt end : reserved for vendor implement
 * 8-15  (8-15)  DMA error : reserved for vendor implement
 * 16    (16)    AXI post error (PLDA_AXI_POST_ERR)
 * 17    (17)    AXI fetch error (PLDA_AXI_FETCH_ERR)
 * 18    (18)    AXI discard error (PLDA_AXI_DISCARD_ERR)
 * 19    (19)    AXI doorbell (PLDA_PCIE_DOORBELL)
 * 20    (20)    PCIe post error (PLDA_PCIE_POST_ERR)
 * 21    (21)    PCIe fetch error (PLDA_PCIE_FETCH_ERR)
 * 22    (22)    PCIe discard error (PLDA_PCIE_DISCARD_ERR)
 * 23    (23)    PCIe doorbell (PLDA_PCIE_DOORBELL)
 * 24    (27-24) INTx interruts (PLDA_INTX)
 * 25    (28):   MSI interrupt (PLDA_MSI)
 * 26    (29):   AER event (PLDA_AER_EVENT)
 * 27    (30):   PM/LTR/Hotplug (PLDA_MISC_EVENTS)
 * 28    (31):   System error (PLDA_SYS_ERR)
 */

struct plda_pcie_rp;

struct plda_event_ops {};

struct plda_pcie_host_ops {};

struct plda_msi {};

struct plda_pcie_rp {};

struct plda_event {};

void __iomem *plda_pcie_map_bus(struct pci_bus *bus, unsigned int devfn,
				int where);
int plda_init_interrupts(struct platform_device *pdev,
			 struct plda_pcie_rp *port,
			 const struct plda_event *event);
void plda_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
			    phys_addr_t axi_addr, phys_addr_t pci_addr,
			    size_t size);
int plda_pcie_setup_iomems(struct pci_host_bridge *bridge,
			   struct plda_pcie_rp *port);
int plda_pcie_host_init(struct plda_pcie_rp *port, struct pci_ops *ops,
			const struct plda_event *plda_event);
void plda_pcie_host_deinit(struct plda_pcie_rp *pcie);

static inline void plda_set_default_msi(struct plda_msi *msi)
{}

static inline void plda_pcie_enable_root_port(struct plda_pcie_rp *plda)
{}

static inline void plda_pcie_set_standard_class(struct plda_pcie_rp *plda)
{}

static inline void plda_pcie_set_pref_win_64bit(struct plda_pcie_rp *plda)
{}

static inline void plda_pcie_disable_ltr(struct plda_pcie_rp *plda)
{}

static inline void plda_pcie_disable_func(struct plda_pcie_rp *plda)
{}

static inline void plda_pcie_write_rc_bar(struct plda_pcie_rp *plda, u64 val)
{}
#endif /* _PCIE_PLDA_H */