Lines Matching full:rockchip

3  * Rockchip AXI PCIe endpoint controller driver
5 * Copyright (c) 2018 Rockchip, Inc.
20 #include "pcie-rockchip.h"
24 * @rockchip: Rockchip PCIe controller
41 struct rockchip_pcie rockchip; member
53 static void rockchip_pcie_clear_ep_ob_atu(struct rockchip_pcie *rockchip, in rockchip_pcie_clear_ep_ob_atu() argument
56 rockchip_pcie_write(rockchip, 0, in rockchip_pcie_clear_ep_ob_atu()
58 rockchip_pcie_write(rockchip, 0, in rockchip_pcie_clear_ep_ob_atu()
60 rockchip_pcie_write(rockchip, 0, in rockchip_pcie_clear_ep_ob_atu()
62 rockchip_pcie_write(rockchip, 0, in rockchip_pcie_clear_ep_ob_atu()
66 static void rockchip_pcie_prog_ep_ob_atu(struct rockchip_pcie *rockchip, u8 fn, in rockchip_pcie_prog_ep_ob_atu() argument
82 rockchip_pcie_write(rockchip, addr0, in rockchip_pcie_prog_ep_ob_atu()
84 rockchip_pcie_write(rockchip, addr1, in rockchip_pcie_prog_ep_ob_atu()
86 rockchip_pcie_write(rockchip, desc0, in rockchip_pcie_prog_ep_ob_atu()
88 rockchip_pcie_write(rockchip, 0, in rockchip_pcie_prog_ep_ob_atu()
97 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_write_header() local
104 rockchip_pcie_write(rockchip, vid_regs, in rockchip_pcie_ep_write_header()
108 reg = rockchip_pcie_read(rockchip, PCIE_EP_CONFIG_DID_VID); in rockchip_pcie_ep_write_header()
110 rockchip_pcie_write(rockchip, reg, PCIE_EP_CONFIG_DID_VID); in rockchip_pcie_ep_write_header()
112 rockchip_pcie_write(rockchip, in rockchip_pcie_ep_write_header()
118 rockchip_pcie_write(rockchip, hdr->cache_line_size, in rockchip_pcie_ep_write_header()
121 rockchip_pcie_write(rockchip, hdr->subsys_id << 16, in rockchip_pcie_ep_write_header()
124 rockchip_pcie_write(rockchip, hdr->interrupt_pin << 8, in rockchip_pcie_ep_write_header()
135 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_set_bar() local
184 cfg = rockchip_pcie_read(rockchip, reg); in rockchip_pcie_ep_set_bar()
190 rockchip_pcie_write(rockchip, cfg, reg); in rockchip_pcie_ep_set_bar()
191 rockchip_pcie_write(rockchip, addr0, in rockchip_pcie_ep_set_bar()
193 rockchip_pcie_write(rockchip, addr1, in rockchip_pcie_ep_set_bar()
203 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_clear_bar() local
216 cfg = rockchip_pcie_read(rockchip, reg); in rockchip_pcie_ep_clear_bar()
221 rockchip_pcie_write(rockchip, cfg, reg); in rockchip_pcie_ep_clear_bar()
222 rockchip_pcie_write(rockchip, 0x0, in rockchip_pcie_ep_clear_bar()
224 rockchip_pcie_write(rockchip, 0x0, in rockchip_pcie_ep_clear_bar()
238 struct rockchip_pcie *pcie = &ep->rockchip; in rockchip_pcie_ep_map_addr()
253 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_unmap_addr() local
263 rockchip_pcie_clear_ep_ob_atu(rockchip, r); in rockchip_pcie_ep_unmap_addr()
273 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_set_msi() local
276 flags = rockchip_pcie_read(rockchip, in rockchip_pcie_ep_set_msi()
284 rockchip_pcie_write(rockchip, flags, in rockchip_pcie_ep_set_msi()
293 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_get_msi() local
296 flags = rockchip_pcie_read(rockchip, in rockchip_pcie_ep_get_msi()
309 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_assert_intx() local
315 rockchip_pcie_write(rockchip, in rockchip_pcie_ep_assert_intx()
321 rockchip_pcie_write(rockchip, in rockchip_pcie_ep_assert_intx()
333 cmd = rockchip_pcie_read(&ep->rockchip, in rockchip_pcie_ep_send_intx_irq()
354 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_send_msi_irq() local
361 flags = rockchip_pcie_read(&ep->rockchip, in rockchip_pcie_ep_send_msi_irq()
376 data = rockchip_pcie_read(rockchip, in rockchip_pcie_ep_send_msi_irq()
383 pci_addr = rockchip_pcie_read(rockchip, in rockchip_pcie_ep_send_msi_irq()
388 pci_addr |= rockchip_pcie_read(rockchip, in rockchip_pcie_ep_send_msi_irq()
397 rockchip_pcie_prog_ep_ob_atu(rockchip, fn, r, in rockchip_pcie_ep_send_msi_irq()
427 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_start() local
435 rockchip_pcie_write(rockchip, cfg, PCIE_CORE_PHY_FUNC_CFG); in rockchip_pcie_ep_start()
466 static int rockchip_pcie_parse_ep_dt(struct rockchip_pcie *rockchip, in rockchip_pcie_parse_ep_dt() argument
469 struct device *dev = rockchip->dev; in rockchip_pcie_parse_ep_dt()
472 err = rockchip_pcie_parse_dt(rockchip); in rockchip_pcie_parse_ep_dt()
476 err = rockchip_pcie_get_phys(rockchip); in rockchip_pcie_parse_ep_dt()
481 "rockchip,max-outbound-regions", in rockchip_pcie_parse_ep_dt()
497 { .compatible = "rockchip,rk3399-pcie-ep"},
505 struct rockchip_pcie *rockchip; in rockchip_pcie_ep_probe() local
516 rockchip = &ep->rockchip; in rockchip_pcie_ep_probe()
517 rockchip->is_rc = false; in rockchip_pcie_ep_probe()
518 rockchip->dev = dev; in rockchip_pcie_ep_probe()
529 err = rockchip_pcie_parse_ep_dt(rockchip, ep); in rockchip_pcie_ep_probe()
533 err = rockchip_pcie_enable_clocks(rockchip); in rockchip_pcie_ep_probe()
537 err = rockchip_pcie_init_port(rockchip); in rockchip_pcie_ep_probe()
542 rockchip_pcie_write(rockchip, PCIE_CLIENT_LINK_TRAIN_ENABLE, in rockchip_pcie_ep_probe()
555 rockchip_pcie_write(rockchip, BIT(0), PCIE_CORE_PHY_FUNC_CFG); in rockchip_pcie_ep_probe()
564 windows[i].phys_base = rockchip->mem_res->start + (SZ_1M * i); in rockchip_pcie_ep_probe()
595 cfg_msi = rockchip_pcie_read(rockchip, PCIE_EP_CONFIG_BASE + in rockchip_pcie_ep_probe()
600 cfg_msix_cp = rockchip_pcie_read(rockchip, PCIE_EP_CONFIG_BASE + in rockchip_pcie_ep_probe()
606 rockchip_pcie_write(rockchip, cfg_msi, in rockchip_pcie_ep_probe()
609 rockchip_pcie_write(rockchip, PCIE_CLIENT_CONF_ENABLE, in rockchip_pcie_ep_probe()
616 rockchip_pcie_deinit_phys(rockchip); in rockchip_pcie_ep_probe()
618 rockchip_pcie_disable_clocks(rockchip); in rockchip_pcie_ep_probe()
624 .name = "rockchip-pcie-ep",