Lines Matching refs:rk_pcie
59 struct rk_pcie { struct
217 static u32 __rk_pcie_read_apb(struct rk_pcie *rk_pcie, void __iomem *base, in __rk_pcie_read_apb() argument
225 dev_err(rk_pcie->dev, "Read APB address failed\n"); in __rk_pcie_read_apb()
230 static void __rk_pcie_write_apb(struct rk_pcie *rk_pcie, void __iomem *base, in __rk_pcie_write_apb() argument
237 dev_err(rk_pcie->dev, "Write APB address failed\n"); in __rk_pcie_write_apb()
240 static inline u32 rk_pcie_readl_apb(struct rk_pcie *rk_pcie, u32 reg) in rk_pcie_readl_apb() argument
242 return __rk_pcie_read_apb(rk_pcie, rk_pcie->apb_base, reg, 0x4); in rk_pcie_readl_apb()
245 static inline void rk_pcie_writel_apb(struct rk_pcie *rk_pcie, u32 reg, in rk_pcie_writel_apb() argument
248 __rk_pcie_write_apb(rk_pcie, rk_pcie->apb_base, reg, 0x4, val); in rk_pcie_writel_apb()
251 static int rk_pci_find_ext_capability(struct rk_pcie *rk_pcie, int cap) in rk_pci_find_ext_capability() argument
261 header = readl(rk_pcie->dbi_base + pos); in rk_pci_find_ext_capability()
278 header = readl(rk_pcie->dbi_base + pos); in rk_pci_find_ext_capability()
286 static int rk_pcie_get_link_speed(struct rk_pcie *rk_pcie) in rk_pcie_get_link_speed() argument
288 return (readl(rk_pcie->dbi_base + PCIE_LINK_STATUS_REG) & in rk_pcie_get_link_speed()
292 static int rk_pcie_get_link_width(struct rk_pcie *rk_pcie) in rk_pcie_get_link_width() argument
294 return (readl(rk_pcie->dbi_base + PCIE_LINK_STATUS_REG) & in rk_pcie_get_link_width()
298 static void rk_pcie_writel_ob_unroll(struct rk_pcie *rk_pcie, u32 index, in rk_pcie_writel_ob_unroll() argument
302 void __iomem *base = rk_pcie->dbi_base; in rk_pcie_writel_ob_unroll()
307 static u32 rk_pcie_readl_ob_unroll(struct rk_pcie *rk_pcie, u32 index, u32 reg) in rk_pcie_readl_ob_unroll() argument
310 void __iomem *base = rk_pcie->dbi_base; in rk_pcie_readl_ob_unroll()
315 static inline void rk_pcie_dbi_write_enable(struct rk_pcie *rk_pcie, bool en) in rk_pcie_dbi_write_enable() argument
319 val = readl(rk_pcie->dbi_base + PCIE_MISC_CONTROL_1_OFF); in rk_pcie_dbi_write_enable()
325 writel(val, rk_pcie->dbi_base + PCIE_MISC_CONTROL_1_OFF); in rk_pcie_dbi_write_enable()
328 static void rk_pcie_setup_host(struct rk_pcie *rk_pcie) in rk_pcie_setup_host() argument
332 rk_pcie_dbi_write_enable(rk_pcie, true); in rk_pcie_setup_host()
336 rk_pcie->dbi_base + PCI_BASE_ADDRESS_0); in rk_pcie_setup_host()
337 writel(0x0, rk_pcie->dbi_base + PCI_BASE_ADDRESS_1); in rk_pcie_setup_host()
340 val = readl(rk_pcie->dbi_base + PCI_INTERRUPT_LINE); in rk_pcie_setup_host()
343 writel(val, rk_pcie->dbi_base + PCI_INTERRUPT_LINE); in rk_pcie_setup_host()
346 val = readl(rk_pcie->dbi_base + PCI_PRIMARY_BUS); in rk_pcie_setup_host()
349 writel(val, rk_pcie->dbi_base + PCI_PRIMARY_BUS); in rk_pcie_setup_host()
351 val = readl(rk_pcie->dbi_base + PCI_PRIMARY_BUS); in rk_pcie_setup_host()
354 val = readl(rk_pcie->dbi_base + PCI_COMMAND); in rk_pcie_setup_host()
358 writel(val, rk_pcie->dbi_base + PCI_COMMAND); in rk_pcie_setup_host()
361 writew(PCI_CLASS_BRIDGE_PCI, rk_pcie->dbi_base + PCI_CLASS_DEVICE); in rk_pcie_setup_host()
364 val = readl(rk_pcie->dbi_base + PCIE_LINK_WIDTH_SPEED_CONTROL); in rk_pcie_setup_host()
366 writel(val, rk_pcie->dbi_base + PCIE_LINK_WIDTH_SPEED_CONTROL); in rk_pcie_setup_host()
369 writel(0, rk_pcie->dbi_base + PCIE_TYPE0_HDR_DBI2_OFFSET + 0x10 + 0 * 4); in rk_pcie_setup_host()
370 writel(0, rk_pcie->dbi_base + PCIE_TYPE0_HDR_DBI2_OFFSET + 0x10 + 1 * 4); in rk_pcie_setup_host()
372 rk_pcie_dbi_write_enable(rk_pcie, false); in rk_pcie_setup_host()
375 static void rk_pcie_configure(struct rk_pcie *pci, u32 cap_speed, u32 cap_lanes) in rk_pcie_configure()
437 static void rk_pcie_prog_outbound_atu_unroll(struct rk_pcie *pci, int index, in rk_pcie_prog_outbound_atu_unroll()
486 static uintptr_t set_cfg_address(struct rk_pcie *pcie, in set_cfg_address()
533 struct rk_pcie *pcie = dev_get_priv(bus); in rockchip_pcie_rd_conf()
564 struct rk_pcie *pcie = dev_get_priv(bus); in rockchip_pcie_wr_conf()
589 static void rk_pcie_enable_debug(struct rk_pcie *rk_pcie) in rk_pcie_enable_debug() argument
592 rk_pcie_writel_apb(rk_pcie, PCIE_CLIENT_DBG_FIFO_PTN_HIT_D0, in rk_pcie_enable_debug()
594 rk_pcie_writel_apb(rk_pcie, PCIE_CLIENT_DBG_FIFO_PTN_HIT_D1, in rk_pcie_enable_debug()
596 rk_pcie_writel_apb(rk_pcie, PCIE_CLIENT_DBG_FIFO_TRN_HIT_D0, in rk_pcie_enable_debug()
598 rk_pcie_writel_apb(rk_pcie, PCIE_CLIENT_DBG_FIFO_TRN_HIT_D1, in rk_pcie_enable_debug()
600 rk_pcie_writel_apb(rk_pcie, PCIE_CLIENT_DBG_FIFO_MODE_CON, in rk_pcie_enable_debug()
605 static void rk_pcie_debug_dump(struct rk_pcie *rk_pcie) in rk_pcie_debug_dump() argument
610 dev_err(rk_pcie->dev, "ltssm = 0x%x\n", in rk_pcie_debug_dump()
611 rk_pcie_readl_apb(rk_pcie, PCIE_CLIENT_LTSSM_STATUS)); in rk_pcie_debug_dump()
613 dev_err(rk_pcie->dev, "fifo_status = 0x%x\n", in rk_pcie_debug_dump()
614 rk_pcie_readl_apb(rk_pcie, PCIE_CLIENT_DBG_FIFO_STATUS)); in rk_pcie_debug_dump()
618 static inline void rk_pcie_link_status_clear(struct rk_pcie *rk_pcie) in rk_pcie_link_status_clear() argument
620 rk_pcie_writel_apb(rk_pcie, PCIE_CLIENT_GENERAL_DEBUG, 0x0); in rk_pcie_link_status_clear()
623 static inline void rk_pcie_disable_ltssm(struct rk_pcie *rk_pcie) in rk_pcie_disable_ltssm() argument
625 rk_pcie_writel_apb(rk_pcie, 0x0, 0xc0008); in rk_pcie_disable_ltssm()
628 static inline void rk_pcie_enable_ltssm(struct rk_pcie *rk_pcie) in rk_pcie_enable_ltssm() argument
630 rk_pcie_writel_apb(rk_pcie, 0x0, 0xc000c); in rk_pcie_enable_ltssm()
633 static int is_link_up(struct rk_pcie *priv) in is_link_up()
645 static int rk_pcie_link_up(struct rk_pcie *priv, u32 cap_speed, u32 cap_lanes) in rk_pcie_link_up()
708 struct rk_pcie *priv = dev_get_priv(dev); in rockchip_pcie_init_port()
798 struct rk_pcie *priv = dev_get_priv(dev); in rockchip_pcie_parse_dt()
865 struct rk_pcie *priv = dev_get_priv(dev); in rockchip_pcie_probe()
992 struct rk_pcie *priv = dev_get_priv(bus); in rockchip_pcie_err_dump()
1070 .priv_auto_alloc_size = sizeof(struct rk_pcie),