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()
64 rockchip_pcie_write(rockchip, 0, in rockchip_pcie_clear_ep_ob_atu()
66 rockchip_pcie_write(rockchip, 0, in rockchip_pcie_clear_ep_ob_atu()
70 static void rockchip_pcie_prog_ep_ob_atu(struct rockchip_pcie *rockchip, u8 fn, in rockchip_pcie_prog_ep_ob_atu() argument
83 cpu_addr -= rockchip->mem_res->start; in rockchip_pcie_prog_ep_ob_atu()
92 rockchip_pcie_write(rockchip, 0, in rockchip_pcie_prog_ep_ob_atu()
94 rockchip_pcie_write(rockchip, 0, in rockchip_pcie_prog_ep_ob_atu()
96 rockchip_pcie_write(rockchip, desc0, in rockchip_pcie_prog_ep_ob_atu()
98 rockchip_pcie_write(rockchip, desc1, in rockchip_pcie_prog_ep_ob_atu()
102 rockchip_pcie_write(rockchip, addr0, in rockchip_pcie_prog_ep_ob_atu()
104 rockchip_pcie_write(rockchip, addr1, in rockchip_pcie_prog_ep_ob_atu()
106 rockchip_pcie_write(rockchip, desc0, in rockchip_pcie_prog_ep_ob_atu()
108 rockchip_pcie_write(rockchip, desc1, in rockchip_pcie_prog_ep_ob_atu()
119 rockchip_pcie_write(rockchip, addr0, in rockchip_pcie_prog_ep_ob_atu()
121 rockchip_pcie_write(rockchip, addr1, in rockchip_pcie_prog_ep_ob_atu()
129 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_write_header() local
136 rockchip_pcie_write(rockchip, vid_regs, in rockchip_pcie_ep_write_header()
140 rockchip_pcie_write(rockchip, hdr->deviceid << 16, in rockchip_pcie_ep_write_header()
143 rockchip_pcie_write(rockchip, in rockchip_pcie_ep_write_header()
149 rockchip_pcie_write(rockchip, hdr->cache_line_size, in rockchip_pcie_ep_write_header()
152 rockchip_pcie_write(rockchip, hdr->subsys_id << 16, in rockchip_pcie_ep_write_header()
155 rockchip_pcie_write(rockchip, hdr->interrupt_pin << 8, in rockchip_pcie_ep_write_header()
166 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_set_bar() local
215 cfg = rockchip_pcie_read(rockchip, reg); in rockchip_pcie_ep_set_bar()
221 rockchip_pcie_write(rockchip, cfg, reg); in rockchip_pcie_ep_set_bar()
222 rockchip_pcie_write(rockchip, addr0, in rockchip_pcie_ep_set_bar()
224 rockchip_pcie_write(rockchip, addr1, in rockchip_pcie_ep_set_bar()
234 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_clear_bar() local
247 cfg = rockchip_pcie_read(rockchip, reg); in rockchip_pcie_ep_clear_bar()
252 rockchip_pcie_write(rockchip, cfg, reg); in rockchip_pcie_ep_clear_bar()
253 rockchip_pcie_write(rockchip, 0x0, in rockchip_pcie_ep_clear_bar()
255 rockchip_pcie_write(rockchip, 0x0, in rockchip_pcie_ep_clear_bar()
264 struct rockchip_pcie *pcie = &ep->rockchip; in rockchip_pcie_ep_map_addr()
291 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_unmap_addr() local
305 rockchip_pcie_clear_ep_ob_atu(rockchip, r); in rockchip_pcie_ep_unmap_addr()
315 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_set_msi() local
318 flags = rockchip_pcie_read(rockchip, in rockchip_pcie_ep_set_msi()
326 rockchip_pcie_write(rockchip, flags, in rockchip_pcie_ep_set_msi()
335 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_get_msi() local
338 flags = rockchip_pcie_read(rockchip, in rockchip_pcie_ep_get_msi()
351 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_assert_intx() local
359 rockchip_pcie_prog_ep_ob_atu(rockchip, fn, r, in rockchip_pcie_ep_assert_intx()
375 status = rockchip_pcie_read(rockchip, in rockchip_pcie_ep_assert_intx()
382 rockchip_pcie_write(rockchip, status, in rockchip_pcie_ep_assert_intx()
398 cmd = rockchip_pcie_read(&ep->rockchip, in rockchip_pcie_ep_send_legacy_irq()
419 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_send_msi_irq() local
425 flags = rockchip_pcie_read(&ep->rockchip, in rockchip_pcie_ep_send_msi_irq()
440 data = rockchip_pcie_read(rockchip, in rockchip_pcie_ep_send_msi_irq()
447 pci_addr = rockchip_pcie_read(rockchip, in rockchip_pcie_ep_send_msi_irq()
452 pci_addr |= rockchip_pcie_read(rockchip, in rockchip_pcie_ep_send_msi_irq()
461 rockchip_pcie_prog_ep_ob_atu(rockchip, fn, ep->max_regions - 1, in rockchip_pcie_ep_send_msi_irq()
493 struct rockchip_pcie *rockchip = &ep->rockchip; in rockchip_pcie_ep_start() local
501 rockchip_pcie_write(rockchip, cfg, PCIE_CORE_PHY_FUNC_CFG); in rockchip_pcie_ep_start()
531 static int rockchip_pcie_parse_ep_dt(struct rockchip_pcie *rockchip, in rockchip_pcie_parse_ep_dt() argument
534 struct device *dev = rockchip->dev; in rockchip_pcie_parse_ep_dt()
537 err = rockchip_pcie_parse_dt(rockchip); in rockchip_pcie_parse_ep_dt()
541 err = rockchip_pcie_get_phys(rockchip); in rockchip_pcie_parse_ep_dt()
546 "rockchip,max-outbound-regions", in rockchip_pcie_parse_ep_dt()
560 { .compatible = "rockchip,rk3399-pcie-ep"},
568 struct rockchip_pcie *rockchip; in rockchip_pcie_ep_probe() local
577 rockchip = &ep->rockchip; in rockchip_pcie_ep_probe()
578 rockchip->is_rc = false; in rockchip_pcie_ep_probe()
579 rockchip->dev = dev; in rockchip_pcie_ep_probe()
590 err = rockchip_pcie_parse_ep_dt(rockchip, ep); in rockchip_pcie_ep_probe()
594 err = rockchip_pcie_enable_clocks(rockchip); in rockchip_pcie_ep_probe()
598 err = rockchip_pcie_init_port(rockchip); in rockchip_pcie_ep_probe()
603 rockchip_pcie_write(rockchip, PCIE_CLIENT_LINK_TRAIN_ENABLE, in rockchip_pcie_ep_probe()
616 rockchip_pcie_write(rockchip, BIT(0), PCIE_CORE_PHY_FUNC_CFG); in rockchip_pcie_ep_probe()
618 err = pci_epc_mem_init(epc, rockchip->mem_res->start, in rockchip_pcie_ep_probe()
619 resource_size(rockchip->mem_res), PAGE_SIZE); in rockchip_pcie_ep_probe()
639 rockchip_pcie_deinit_phys(rockchip); in rockchip_pcie_ep_probe()
641 rockchip_pcie_disable_clocks(rockchip); in rockchip_pcie_ep_probe()
647 .name = "rockchip-pcie-ep",