Lines Matching full:pcie
3 // Cadence PCIe controller driver.
150 /* Region r Outbound AXI to PCIe Address Translation Register 0 */
163 /* Region r Outbound AXI to PCIe Address Translation Register 1 */
167 /* Region r Outbound PCIe Descriptor Register 0 */
183 /* Region r Outbound PCIe Descriptor Register 1 */
201 /* Root Port BAR Inbound PCIe to AXI Address Translation Register */
236 /* Endpoint Function BAR Inbound PCIe to AXI Address Translation Register */
254 int (*start_link)(struct cdns_pcie *pcie);
255 void (*stop_link)(struct cdns_pcie *pcie);
256 bool (*link_up)(struct cdns_pcie *pcie);
257 u64 (*cpu_addr_fixup)(struct cdns_pcie *pcie, u64 cpu_addr);
261 * struct cdns_pcie - private data for Cadence PCIe controller drivers
264 * @dev: PCIe controller
265 * @is_rc: tell whether the PCIe controller mode is Root Complex or Endpoint.
269 * @ops: Platform-specific ops to control various inputs from Cadence PCIe
284 * struct cdns_pcie_rc - private data for this PCIe Root Complex driver
285 * @pcie: Cadence PCIe controller
294 * @quirk_retrain_flag: Retrain link as quirk for PCIe Gen2
298 struct cdns_pcie pcie; member
319 * struct cdns_pcie_ep - private data for this PCIe endpoint controller driver
320 * @pcie: Cadence PCIe controller
328 * IRQ) TLP through the PCIe bus.
334 * @lock: spin lock to disable interrupts while modifying PCIe controller
342 struct cdns_pcie pcie; member
360 static inline void cdns_pcie_writel(struct cdns_pcie *pcie, u32 reg, u32 value) in cdns_pcie_writel() argument
362 writel(value, pcie->reg_base + reg); in cdns_pcie_writel()
365 static inline u32 cdns_pcie_readl(struct cdns_pcie *pcie, u32 reg) in cdns_pcie_readl() argument
367 return readl(pcie->reg_base + reg); in cdns_pcie_readl()
411 static inline void cdns_pcie_rp_writeb(struct cdns_pcie *pcie, in cdns_pcie_rp_writeb() argument
414 void __iomem *addr = pcie->reg_base + CDNS_PCIE_RP_BASE + reg; in cdns_pcie_rp_writeb()
419 static inline void cdns_pcie_rp_writew(struct cdns_pcie *pcie, in cdns_pcie_rp_writew() argument
422 void __iomem *addr = pcie->reg_base + CDNS_PCIE_RP_BASE + reg; in cdns_pcie_rp_writew()
427 static inline u16 cdns_pcie_rp_readw(struct cdns_pcie *pcie, u32 reg) in cdns_pcie_rp_readw() argument
429 void __iomem *addr = pcie->reg_base + CDNS_PCIE_RP_BASE + reg; in cdns_pcie_rp_readw()
435 static inline void cdns_pcie_ep_fn_writeb(struct cdns_pcie *pcie, u8 fn, in cdns_pcie_ep_fn_writeb() argument
438 void __iomem *addr = pcie->reg_base + CDNS_PCIE_EP_FUNC_BASE(fn) + reg; in cdns_pcie_ep_fn_writeb()
443 static inline void cdns_pcie_ep_fn_writew(struct cdns_pcie *pcie, u8 fn, in cdns_pcie_ep_fn_writew() argument
446 void __iomem *addr = pcie->reg_base + CDNS_PCIE_EP_FUNC_BASE(fn) + reg; in cdns_pcie_ep_fn_writew()
451 static inline void cdns_pcie_ep_fn_writel(struct cdns_pcie *pcie, u8 fn, in cdns_pcie_ep_fn_writel() argument
454 writel(value, pcie->reg_base + CDNS_PCIE_EP_FUNC_BASE(fn) + reg); in cdns_pcie_ep_fn_writel()
457 static inline u16 cdns_pcie_ep_fn_readw(struct cdns_pcie *pcie, u8 fn, u32 reg) in cdns_pcie_ep_fn_readw() argument
459 void __iomem *addr = pcie->reg_base + CDNS_PCIE_EP_FUNC_BASE(fn) + reg; in cdns_pcie_ep_fn_readw()
464 static inline u32 cdns_pcie_ep_fn_readl(struct cdns_pcie *pcie, u8 fn, u32 reg) in cdns_pcie_ep_fn_readl() argument
466 return readl(pcie->reg_base + CDNS_PCIE_EP_FUNC_BASE(fn) + reg); in cdns_pcie_ep_fn_readl()
469 static inline int cdns_pcie_start_link(struct cdns_pcie *pcie) in cdns_pcie_start_link() argument
471 if (pcie->ops->start_link) in cdns_pcie_start_link()
472 return pcie->ops->start_link(pcie); in cdns_pcie_start_link()
477 static inline void cdns_pcie_stop_link(struct cdns_pcie *pcie) in cdns_pcie_stop_link() argument
479 if (pcie->ops->stop_link) in cdns_pcie_stop_link()
480 pcie->ops->stop_link(pcie); in cdns_pcie_stop_link()
483 static inline bool cdns_pcie_link_up(struct cdns_pcie *pcie) in cdns_pcie_link_up() argument
485 if (pcie->ops->link_up) in cdns_pcie_link_up()
486 return pcie->ops->link_up(pcie); in cdns_pcie_link_up()
539 void cdns_pcie_detect_quiet_min_delay_set(struct cdns_pcie *pcie);
541 void cdns_pcie_set_outbound_region(struct cdns_pcie *pcie, u8 busnr, u8 fn,
545 void cdns_pcie_set_outbound_region_for_normal_msg(struct cdns_pcie *pcie,
549 void cdns_pcie_reset_outbound_region(struct cdns_pcie *pcie, u32 r);
550 void cdns_pcie_disable_phy(struct cdns_pcie *pcie);
551 int cdns_pcie_enable_phy(struct cdns_pcie *pcie);
552 int cdns_pcie_init_phy(struct device *dev, struct cdns_pcie *pcie);