PCI: microchip: Move PLDA IP register macros to pcie-plda.h
Move PLDA PCIe host controller IP registers macros to pcie-plda.h, including bridge registers and PLDA IRQ event number. Link: https://lore.kernel.org/linux-pci/20240328091835.14797-4-minda.chen@starfivetech.com Signed-off-by: Minda Chen <minda.chen@starfivetech.com> Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
This commit is contained in:
parent
24934ee897
commit
692c9b0a64
@ -17224,6 +17224,7 @@ M: Daire McNamara <daire.mcnamara@microchip.com>
|
||||
L: linux-pci@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/pci/plda,xpressrich3-axi-common.yaml
|
||||
F: drivers/pci/controller/plda/pcie-plda.h
|
||||
|
||||
PCI DRIVER FOR RENESAS R-CAR
|
||||
M: Marek Vasut <marek.vasut+renesas@gmail.com>
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include "../../pci.h"
|
||||
#include "pcie-plda.h"
|
||||
|
||||
/* Number of MSI IRQs */
|
||||
#define MC_MAX_NUM_MSI_IRQS 32
|
||||
@ -30,84 +31,6 @@
|
||||
#define MC_PCIE_BRIDGE_ADDR (MC_PCIE1_BRIDGE_ADDR)
|
||||
#define MC_PCIE_CTRL_ADDR (MC_PCIE1_CTRL_ADDR)
|
||||
|
||||
/* PCIe Bridge Phy Regs */
|
||||
#define PCIE_PCI_IRQ_DW0 0xa8
|
||||
#define MSIX_CAP_MASK BIT(31)
|
||||
#define NUM_MSI_MSGS_MASK GENMASK(6, 4)
|
||||
#define NUM_MSI_MSGS_SHIFT 4
|
||||
|
||||
#define IMASK_LOCAL 0x180
|
||||
#define DMA_END_ENGINE_0_MASK 0x00000000u
|
||||
#define DMA_END_ENGINE_0_SHIFT 0
|
||||
#define DMA_END_ENGINE_1_MASK 0x00000000u
|
||||
#define DMA_END_ENGINE_1_SHIFT 1
|
||||
#define DMA_ERROR_ENGINE_0_MASK 0x00000100u
|
||||
#define DMA_ERROR_ENGINE_0_SHIFT 8
|
||||
#define DMA_ERROR_ENGINE_1_MASK 0x00000200u
|
||||
#define DMA_ERROR_ENGINE_1_SHIFT 9
|
||||
#define A_ATR_EVT_POST_ERR_MASK 0x00010000u
|
||||
#define A_ATR_EVT_POST_ERR_SHIFT 16
|
||||
#define A_ATR_EVT_FETCH_ERR_MASK 0x00020000u
|
||||
#define A_ATR_EVT_FETCH_ERR_SHIFT 17
|
||||
#define A_ATR_EVT_DISCARD_ERR_MASK 0x00040000u
|
||||
#define A_ATR_EVT_DISCARD_ERR_SHIFT 18
|
||||
#define A_ATR_EVT_DOORBELL_MASK 0x00000000u
|
||||
#define A_ATR_EVT_DOORBELL_SHIFT 19
|
||||
#define P_ATR_EVT_POST_ERR_MASK 0x00100000u
|
||||
#define P_ATR_EVT_POST_ERR_SHIFT 20
|
||||
#define P_ATR_EVT_FETCH_ERR_MASK 0x00200000u
|
||||
#define P_ATR_EVT_FETCH_ERR_SHIFT 21
|
||||
#define P_ATR_EVT_DISCARD_ERR_MASK 0x00400000u
|
||||
#define P_ATR_EVT_DISCARD_ERR_SHIFT 22
|
||||
#define P_ATR_EVT_DOORBELL_MASK 0x00000000u
|
||||
#define P_ATR_EVT_DOORBELL_SHIFT 23
|
||||
#define PM_MSI_INT_INTA_MASK 0x01000000u
|
||||
#define PM_MSI_INT_INTA_SHIFT 24
|
||||
#define PM_MSI_INT_INTB_MASK 0x02000000u
|
||||
#define PM_MSI_INT_INTB_SHIFT 25
|
||||
#define PM_MSI_INT_INTC_MASK 0x04000000u
|
||||
#define PM_MSI_INT_INTC_SHIFT 26
|
||||
#define PM_MSI_INT_INTD_MASK 0x08000000u
|
||||
#define PM_MSI_INT_INTD_SHIFT 27
|
||||
#define PM_MSI_INT_INTX_MASK 0x0f000000u
|
||||
#define PM_MSI_INT_INTX_SHIFT 24
|
||||
#define PM_MSI_INT_MSI_MASK 0x10000000u
|
||||
#define PM_MSI_INT_MSI_SHIFT 28
|
||||
#define PM_MSI_INT_AER_EVT_MASK 0x20000000u
|
||||
#define PM_MSI_INT_AER_EVT_SHIFT 29
|
||||
#define PM_MSI_INT_EVENTS_MASK 0x40000000u
|
||||
#define PM_MSI_INT_EVENTS_SHIFT 30
|
||||
#define PM_MSI_INT_SYS_ERR_MASK 0x80000000u
|
||||
#define PM_MSI_INT_SYS_ERR_SHIFT 31
|
||||
#define NUM_LOCAL_EVENTS 15
|
||||
#define ISTATUS_LOCAL 0x184
|
||||
#define IMASK_HOST 0x188
|
||||
#define ISTATUS_HOST 0x18c
|
||||
#define IMSI_ADDR 0x190
|
||||
#define ISTATUS_MSI 0x194
|
||||
|
||||
/* PCIe Master table init defines */
|
||||
#define ATR0_PCIE_WIN0_SRCADDR_PARAM 0x600u
|
||||
#define ATR0_PCIE_ATR_SIZE 0x25
|
||||
#define ATR0_PCIE_ATR_SIZE_SHIFT 1
|
||||
#define ATR0_PCIE_WIN0_SRC_ADDR 0x604u
|
||||
#define ATR0_PCIE_WIN0_TRSL_ADDR_LSB 0x608u
|
||||
#define ATR0_PCIE_WIN0_TRSL_ADDR_UDW 0x60cu
|
||||
#define ATR0_PCIE_WIN0_TRSL_PARAM 0x610u
|
||||
|
||||
/* PCIe AXI slave table init defines */
|
||||
#define ATR0_AXI4_SLV0_SRCADDR_PARAM 0x800u
|
||||
#define ATR_SIZE_SHIFT 1
|
||||
#define ATR_IMPL_ENABLE 1
|
||||
#define ATR0_AXI4_SLV0_SRC_ADDR 0x804u
|
||||
#define ATR0_AXI4_SLV0_TRSL_ADDR_LSB 0x808u
|
||||
#define ATR0_AXI4_SLV0_TRSL_ADDR_UDW 0x80cu
|
||||
#define ATR0_AXI4_SLV0_TRSL_PARAM 0x810u
|
||||
#define PCIE_TX_RX_INTERFACE 0x00000000u
|
||||
#define PCIE_CONFIG_INTERFACE 0x00000001u
|
||||
|
||||
#define ATR_ENTRY_SIZE 32
|
||||
|
||||
/* PCIe Controller Phy Regs */
|
||||
#define SEC_ERROR_EVENT_CNT 0x20
|
||||
#define DED_ERROR_EVENT_CNT 0x24
|
||||
@ -179,20 +102,21 @@
|
||||
#define EVENT_LOCAL_DMA_END_ENGINE_1 12
|
||||
#define EVENT_LOCAL_DMA_ERROR_ENGINE_0 13
|
||||
#define EVENT_LOCAL_DMA_ERROR_ENGINE_1 14
|
||||
#define EVENT_LOCAL_A_ATR_EVT_POST_ERR 15
|
||||
#define EVENT_LOCAL_A_ATR_EVT_FETCH_ERR 16
|
||||
#define EVENT_LOCAL_A_ATR_EVT_DISCARD_ERR 17
|
||||
#define EVENT_LOCAL_A_ATR_EVT_DOORBELL 18
|
||||
#define EVENT_LOCAL_P_ATR_EVT_POST_ERR 19
|
||||
#define EVENT_LOCAL_P_ATR_EVT_FETCH_ERR 20
|
||||
#define EVENT_LOCAL_P_ATR_EVT_DISCARD_ERR 21
|
||||
#define EVENT_LOCAL_P_ATR_EVT_DOORBELL 22
|
||||
#define EVENT_LOCAL_PM_MSI_INT_INTX 23
|
||||
#define EVENT_LOCAL_PM_MSI_INT_MSI 24
|
||||
#define EVENT_LOCAL_PM_MSI_INT_AER_EVT 25
|
||||
#define EVENT_LOCAL_PM_MSI_INT_EVENTS 26
|
||||
#define EVENT_LOCAL_PM_MSI_INT_SYS_ERR 27
|
||||
#define NUM_EVENTS 28
|
||||
#define NUM_MC_EVENTS 15
|
||||
#define EVENT_LOCAL_A_ATR_EVT_POST_ERR (NUM_MC_EVENTS + PLDA_AXI_POST_ERR)
|
||||
#define EVENT_LOCAL_A_ATR_EVT_FETCH_ERR (NUM_MC_EVENTS + PLDA_AXI_FETCH_ERR)
|
||||
#define EVENT_LOCAL_A_ATR_EVT_DISCARD_ERR (NUM_MC_EVENTS + PLDA_AXI_DISCARD_ERR)
|
||||
#define EVENT_LOCAL_A_ATR_EVT_DOORBELL (NUM_MC_EVENTS + PLDA_AXI_DOORBELL)
|
||||
#define EVENT_LOCAL_P_ATR_EVT_POST_ERR (NUM_MC_EVENTS + PLDA_PCIE_POST_ERR)
|
||||
#define EVENT_LOCAL_P_ATR_EVT_FETCH_ERR (NUM_MC_EVENTS + PLDA_PCIE_FETCH_ERR)
|
||||
#define EVENT_LOCAL_P_ATR_EVT_DISCARD_ERR (NUM_MC_EVENTS + PLDA_PCIE_DISCARD_ERR)
|
||||
#define EVENT_LOCAL_P_ATR_EVT_DOORBELL (NUM_MC_EVENTS + PLDA_PCIE_DOORBELL)
|
||||
#define EVENT_LOCAL_PM_MSI_INT_INTX (NUM_MC_EVENTS + PLDA_INTX)
|
||||
#define EVENT_LOCAL_PM_MSI_INT_MSI (NUM_MC_EVENTS + PLDA_MSI)
|
||||
#define EVENT_LOCAL_PM_MSI_INT_AER_EVT (NUM_MC_EVENTS + PLDA_AER_EVENT)
|
||||
#define EVENT_LOCAL_PM_MSI_INT_EVENTS (NUM_MC_EVENTS + PLDA_MISC_EVENTS)
|
||||
#define EVENT_LOCAL_PM_MSI_INT_SYS_ERR (NUM_MC_EVENTS + PLDA_SYS_ERR)
|
||||
#define NUM_EVENTS (NUM_MC_EVENTS + PLDA_INT_EVENT_NUM)
|
||||
|
||||
#define PCIE_EVENT_CAUSE(x, s) \
|
||||
[EVENT_PCIE_ ## x] = { __stringify(x), s }
|
||||
|
108
drivers/pci/controller/plda/pcie-plda.h
Normal file
108
drivers/pci/controller/plda/pcie-plda.h
Normal file
@ -0,0 +1,108 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* PLDA PCIe host controller driver
|
||||
*/
|
||||
|
||||
#ifndef _PCIE_PLDA_H
|
||||
#define _PCIE_PLDA_H
|
||||
|
||||
/* PCIe Bridge Phy Regs */
|
||||
#define PCIE_PCI_IRQ_DW0 0xa8
|
||||
#define MSIX_CAP_MASK BIT(31)
|
||||
#define NUM_MSI_MSGS_MASK GENMASK(6, 4)
|
||||
#define NUM_MSI_MSGS_SHIFT 4
|
||||
|
||||
#define IMASK_LOCAL 0x180
|
||||
#define DMA_END_ENGINE_0_MASK 0x00000000u
|
||||
#define DMA_END_ENGINE_0_SHIFT 0
|
||||
#define DMA_END_ENGINE_1_MASK 0x00000000u
|
||||
#define DMA_END_ENGINE_1_SHIFT 1
|
||||
#define DMA_ERROR_ENGINE_0_MASK 0x00000100u
|
||||
#define DMA_ERROR_ENGINE_0_SHIFT 8
|
||||
#define DMA_ERROR_ENGINE_1_MASK 0x00000200u
|
||||
#define DMA_ERROR_ENGINE_1_SHIFT 9
|
||||
#define A_ATR_EVT_POST_ERR_MASK 0x00010000u
|
||||
#define A_ATR_EVT_POST_ERR_SHIFT 16
|
||||
#define A_ATR_EVT_FETCH_ERR_MASK 0x00020000u
|
||||
#define A_ATR_EVT_FETCH_ERR_SHIFT 17
|
||||
#define A_ATR_EVT_DISCARD_ERR_MASK 0x00040000u
|
||||
#define A_ATR_EVT_DISCARD_ERR_SHIFT 18
|
||||
#define A_ATR_EVT_DOORBELL_MASK 0x00000000u
|
||||
#define A_ATR_EVT_DOORBELL_SHIFT 19
|
||||
#define P_ATR_EVT_POST_ERR_MASK 0x00100000u
|
||||
#define P_ATR_EVT_POST_ERR_SHIFT 20
|
||||
#define P_ATR_EVT_FETCH_ERR_MASK 0x00200000u
|
||||
#define P_ATR_EVT_FETCH_ERR_SHIFT 21
|
||||
#define P_ATR_EVT_DISCARD_ERR_MASK 0x00400000u
|
||||
#define P_ATR_EVT_DISCARD_ERR_SHIFT 22
|
||||
#define P_ATR_EVT_DOORBELL_MASK 0x00000000u
|
||||
#define P_ATR_EVT_DOORBELL_SHIFT 23
|
||||
#define PM_MSI_INT_INTA_MASK 0x01000000u
|
||||
#define PM_MSI_INT_INTA_SHIFT 24
|
||||
#define PM_MSI_INT_INTB_MASK 0x02000000u
|
||||
#define PM_MSI_INT_INTB_SHIFT 25
|
||||
#define PM_MSI_INT_INTC_MASK 0x04000000u
|
||||
#define PM_MSI_INT_INTC_SHIFT 26
|
||||
#define PM_MSI_INT_INTD_MASK 0x08000000u
|
||||
#define PM_MSI_INT_INTD_SHIFT 27
|
||||
#define PM_MSI_INT_INTX_MASK 0x0f000000u
|
||||
#define PM_MSI_INT_INTX_SHIFT 24
|
||||
#define PM_MSI_INT_MSI_MASK 0x10000000u
|
||||
#define PM_MSI_INT_MSI_SHIFT 28
|
||||
#define PM_MSI_INT_AER_EVT_MASK 0x20000000u
|
||||
#define PM_MSI_INT_AER_EVT_SHIFT 29
|
||||
#define PM_MSI_INT_EVENTS_MASK 0x40000000u
|
||||
#define PM_MSI_INT_EVENTS_SHIFT 30
|
||||
#define PM_MSI_INT_SYS_ERR_MASK 0x80000000u
|
||||
#define PM_MSI_INT_SYS_ERR_SHIFT 31
|
||||
#define NUM_LOCAL_EVENTS 15
|
||||
#define ISTATUS_LOCAL 0x184
|
||||
#define IMASK_HOST 0x188
|
||||
#define ISTATUS_HOST 0x18c
|
||||
#define IMSI_ADDR 0x190
|
||||
#define ISTATUS_MSI 0x194
|
||||
|
||||
/* PCIe Master table init defines */
|
||||
#define ATR0_PCIE_WIN0_SRCADDR_PARAM 0x600u
|
||||
#define ATR0_PCIE_ATR_SIZE 0x25
|
||||
#define ATR0_PCIE_ATR_SIZE_SHIFT 1
|
||||
#define ATR0_PCIE_WIN0_SRC_ADDR 0x604u
|
||||
#define ATR0_PCIE_WIN0_TRSL_ADDR_LSB 0x608u
|
||||
#define ATR0_PCIE_WIN0_TRSL_ADDR_UDW 0x60cu
|
||||
#define ATR0_PCIE_WIN0_TRSL_PARAM 0x610u
|
||||
|
||||
/* PCIe AXI slave table init defines */
|
||||
#define ATR0_AXI4_SLV0_SRCADDR_PARAM 0x800u
|
||||
#define ATR_SIZE_SHIFT 1
|
||||
#define ATR_IMPL_ENABLE 1
|
||||
#define ATR0_AXI4_SLV0_SRC_ADDR 0x804u
|
||||
#define ATR0_AXI4_SLV0_TRSL_ADDR_LSB 0x808u
|
||||
#define ATR0_AXI4_SLV0_TRSL_ADDR_UDW 0x80cu
|
||||
#define ATR0_AXI4_SLV0_TRSL_PARAM 0x810u
|
||||
#define PCIE_TX_RX_INTERFACE 0x00000000u
|
||||
#define PCIE_CONFIG_INTERFACE 0x00000001u
|
||||
|
||||
#define ATR_ENTRY_SIZE 32
|
||||
|
||||
enum plda_int_event {
|
||||
PLDA_AXI_POST_ERR,
|
||||
PLDA_AXI_FETCH_ERR,
|
||||
PLDA_AXI_DISCARD_ERR,
|
||||
PLDA_AXI_DOORBELL,
|
||||
PLDA_PCIE_POST_ERR,
|
||||
PLDA_PCIE_FETCH_ERR,
|
||||
PLDA_PCIE_DISCARD_ERR,
|
||||
PLDA_PCIE_DOORBELL,
|
||||
PLDA_INTX,
|
||||
PLDA_MSI,
|
||||
PLDA_AER_EVENT,
|
||||
PLDA_MISC_EVENTS,
|
||||
PLDA_SYS_ERR,
|
||||
PLDA_INT_EVENT_NUM
|
||||
};
|
||||
|
||||
#define PLDA_NUM_DMA_EVENTS 16
|
||||
|
||||
#define PLDA_MAX_EVENT_NUM (PLDA_NUM_DMA_EVENTS + PLDA_INT_EVENT_NUM)
|
||||
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user