| .. | .. |
|---|
| 1 | | -// SPDX-License-Identifier: GPL-2.0+ |
|---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0+ */ |
|---|
| 2 | 2 | /* |
|---|
| 3 | 3 | * Rockchip AXI PCIe controller driver |
|---|
| 4 | 4 | * |
|---|
| .. | .. |
|---|
| 38 | 38 | #define PCIE_CLIENT_MODE_EP HIWORD_UPDATE(0x0040, 0) |
|---|
| 39 | 39 | #define PCIE_CLIENT_GEN_SEL_1 HIWORD_UPDATE(0x0080, 0) |
|---|
| 40 | 40 | #define PCIE_CLIENT_GEN_SEL_2 HIWORD_UPDATE_BIT(0x0080) |
|---|
| 41 | +#define PCIE_CLIENT_LEGACY_INT_CTRL (PCIE_CLIENT_BASE + 0x0c) |
|---|
| 42 | +#define PCIE_CLIENT_INT_IN_ASSERT HIWORD_UPDATE_BIT(0x0002) |
|---|
| 43 | +#define PCIE_CLIENT_INT_IN_DEASSERT HIWORD_UPDATE(0x0002, 0) |
|---|
| 44 | +#define PCIE_CLIENT_INT_PEND_ST_PEND HIWORD_UPDATE_BIT(0x0001) |
|---|
| 45 | +#define PCIE_CLIENT_INT_PEND_ST_NORMAL HIWORD_UPDATE(0x0001, 0) |
|---|
| 46 | +#define PCIE_CLIENT_SIDE_BAND_STATUS (PCIE_CLIENT_BASE + 0x20) |
|---|
| 47 | +#define PCIE_CLIENT_PHY_ST BIT(12) |
|---|
| 41 | 48 | #define PCIE_CLIENT_DEBUG_OUT_0 (PCIE_CLIENT_BASE + 0x3c) |
|---|
| 42 | 49 | #define PCIE_CLIENT_DEBUG_LTSSM_MASK GENMASK(5, 0) |
|---|
| 43 | 50 | #define PCIE_CLIENT_DEBUG_LTSSM_L0 0x10 |
|---|
| .. | .. |
|---|
| 147 | 154 | #define PCIE_RC_RP_ATS_BASE 0x400000 |
|---|
| 148 | 155 | #define PCIE_RC_CONFIG_NORMAL_BASE 0x800000 |
|---|
| 149 | 156 | #define PCIE_RC_CONFIG_BASE 0xa00000 |
|---|
| 157 | +#define PCIE_EP_CONFIG_BASE 0xa00000 |
|---|
| 158 | +#define PCIE_EP_CONFIG_DID_VID (PCIE_EP_CONFIG_BASE + 0x00) |
|---|
| 150 | 159 | #define PCIE_RC_CONFIG_RID_CCR (PCIE_RC_CONFIG_BASE + 0x08) |
|---|
| 151 | 160 | #define PCIE_RC_CONFIG_SCC_SHIFT 16 |
|---|
| 152 | 161 | #define PCIE_RC_CONFIG_DCR (PCIE_RC_CONFIG_BASE + 0xc4) |
|---|
| .. | .. |
|---|
| 240 | 249 | #define ROCKCHIP_PCIE_EP_CMD_STATUS 0x4 |
|---|
| 241 | 250 | #define ROCKCHIP_PCIE_EP_CMD_STATUS_IS BIT(19) |
|---|
| 242 | 251 | #define ROCKCHIP_PCIE_EP_MSI_CTRL_REG 0x90 |
|---|
| 252 | +#define ROCKCHIP_PCIE_EP_MSI_FLAGS_OFFSET 16 |
|---|
| 243 | 253 | #define ROCKCHIP_PCIE_EP_MSI_CTRL_MMC_OFFSET 17 |
|---|
| 244 | 254 | #define ROCKCHIP_PCIE_EP_MSI_CTRL_MMC_MASK GENMASK(19, 17) |
|---|
| 245 | 255 | #define ROCKCHIP_PCIE_EP_MSI_CTRL_MME_OFFSET 20 |
|---|
| .. | .. |
|---|
| 247 | 257 | #define ROCKCHIP_PCIE_EP_MSI_CTRL_ME BIT(16) |
|---|
| 248 | 258 | #define ROCKCHIP_PCIE_EP_MSI_CTRL_MASK_MSI_CAP BIT(24) |
|---|
| 249 | 259 | #define ROCKCHIP_PCIE_EP_DUMMY_IRQ_ADDR 0x1 |
|---|
| 250 | | -#define ROCKCHIP_PCIE_EP_PCI_LEGACY_IRQ_ADDR 0x3 |
|---|
| 251 | 260 | #define ROCKCHIP_PCIE_EP_FUNC_BASE(fn) (((fn) << 12) & GENMASK(19, 12)) |
|---|
| 252 | 261 | #define ROCKCHIP_PCIE_AT_IB_EP_FUNC_BAR_ADDR0(fn, bar) \ |
|---|
| 253 | 262 | (PCIE_RC_RP_ATS_BASE + 0x0840 + (fn) * 0x0040 + (bar) * 0x0008) |
|---|
| .. | .. |
|---|
| 318 | 327 | struct gpio_desc *ep_gpio; |
|---|
| 319 | 328 | u32 lanes; |
|---|
| 320 | 329 | u8 lanes_map; |
|---|
| 321 | | - u8 root_bus_nr; |
|---|
| 322 | 330 | int link_gen; |
|---|
| 323 | 331 | struct device *dev; |
|---|
| 324 | 332 | struct irq_domain *irq_domain; |
|---|
| 325 | 333 | int offset; |
|---|
| 326 | | - struct pci_bus *root_bus; |
|---|
| 327 | | - struct resource *io; |
|---|
| 328 | | - phys_addr_t io_bus_addr; |
|---|
| 329 | | - u32 io_size; |
|---|
| 330 | 334 | void __iomem *msg_region; |
|---|
| 331 | | - u32 mem_size; |
|---|
| 332 | 335 | phys_addr_t msg_bus_addr; |
|---|
| 333 | | - phys_addr_t mem_bus_addr; |
|---|
| 334 | 336 | bool is_rc; |
|---|
| 335 | 337 | struct resource *mem_res; |
|---|
| 336 | 338 | phys_addr_t mem_reserve_start; |
|---|