Lines Matching refs:ks_pcie
88 static int ks_pcie_establish_link(struct keystone_pcie *ks_pcie) in ks_pcie_establish_link() argument
90 struct pcie_port *pp = &ks_pcie->pp; in ks_pcie_establish_link()
100 ks_dw_pcie_initiate_link_train(ks_pcie); in ks_pcie_establish_link()
106 ks_dw_pcie_initiate_link_train(ks_pcie); in ks_pcie_establish_link()
116 struct keystone_pcie *ks_pcie = irq_desc_get_handler_data(desc); in ks_pcie_msi_irq_handler() local
117 u32 offset = irq - ks_pcie->msi_host_irqs[0]; in ks_pcie_msi_irq_handler()
118 struct pcie_port *pp = &ks_pcie->pp; in ks_pcie_msi_irq_handler()
129 ks_dw_pcie_handle_msi_irq(ks_pcie, offset); in ks_pcie_msi_irq_handler()
144 struct keystone_pcie *ks_pcie = irq_desc_get_handler_data(desc); in ks_pcie_legacy_irq_handler() local
145 struct pcie_port *pp = &ks_pcie->pp; in ks_pcie_legacy_irq_handler()
146 u32 irq_offset = irq - ks_pcie->legacy_host_irqs[0]; in ks_pcie_legacy_irq_handler()
157 ks_dw_pcie_handle_legacy_irq(ks_pcie, irq_offset); in ks_pcie_legacy_irq_handler()
161 static int ks_pcie_get_irq_controller_info(struct keystone_pcie *ks_pcie, in ks_pcie_get_irq_controller_info() argument
165 struct device *dev = ks_pcie->pp.dev; in ks_pcie_get_irq_controller_info()
172 np_temp = &ks_pcie->legacy_intc_np; in ks_pcie_get_irq_controller_info()
174 host_irqs = &ks_pcie->legacy_host_irqs[0]; in ks_pcie_get_irq_controller_info()
176 np_temp = &ks_pcie->msi_intc_np; in ks_pcie_get_irq_controller_info()
178 host_irqs = &ks_pcie->msi_host_irqs[0]; in ks_pcie_get_irq_controller_info()
211 static void ks_pcie_setup_interrupts(struct keystone_pcie *ks_pcie) in ks_pcie_setup_interrupts() argument
216 for (i = 0; i < ks_pcie->num_legacy_host_irqs; i++) { in ks_pcie_setup_interrupts()
217 irq_set_chained_handler_and_data(ks_pcie->legacy_host_irqs[i], in ks_pcie_setup_interrupts()
219 ks_pcie); in ks_pcie_setup_interrupts()
221 ks_dw_pcie_enable_legacy_irqs(ks_pcie); in ks_pcie_setup_interrupts()
225 for (i = 0; i < ks_pcie->num_msi_host_irqs; i++) { in ks_pcie_setup_interrupts()
226 irq_set_chained_handler_and_data(ks_pcie->msi_host_irqs[i], in ks_pcie_setup_interrupts()
228 ks_pcie); in ks_pcie_setup_interrupts()
255 struct keystone_pcie *ks_pcie = to_keystone_pcie(pp); in ks_pcie_host_init() local
258 ks_pcie_establish_link(ks_pcie); in ks_pcie_host_init()
259 ks_dw_pcie_setup_rc_app_regs(ks_pcie); in ks_pcie_host_init()
260 ks_pcie_setup_interrupts(ks_pcie); in ks_pcie_host_init()
265 writew(ks_pcie->device_id, pp->dbi_base + PCI_DEVICE_ID); in ks_pcie_host_init()
294 static int __init ks_add_pcie_port(struct keystone_pcie *ks_pcie, in ks_add_pcie_port() argument
297 struct pcie_port *pp = &ks_pcie->pp; in ks_add_pcie_port()
300 ret = ks_pcie_get_irq_controller_info(ks_pcie, in ks_add_pcie_port()
302 &ks_pcie->num_legacy_host_irqs); in ks_add_pcie_port()
307 ret = ks_pcie_get_irq_controller_info(ks_pcie, in ks_add_pcie_port()
309 &ks_pcie->num_msi_host_irqs); in ks_add_pcie_port()
316 ret = ks_dw_pcie_host_init(ks_pcie, ks_pcie->msi_intc_np); in ks_add_pcie_port()
336 struct keystone_pcie *ks_pcie = platform_get_drvdata(pdev); in ks_pcie_remove() local
338 clk_disable_unprepare(ks_pcie->clk); in ks_pcie_remove()
346 struct keystone_pcie *ks_pcie; in ks_pcie_probe() local
353 ks_pcie = devm_kzalloc(&pdev->dev, sizeof(*ks_pcie), in ks_pcie_probe()
355 if (!ks_pcie) in ks_pcie_probe()
358 pp = &ks_pcie->pp; in ks_pcie_probe()
373 ks_pcie->device_id = readl(reg_p) >> 16; in ks_pcie_probe()
378 platform_set_drvdata(pdev, ks_pcie); in ks_pcie_probe()
379 ks_pcie->clk = devm_clk_get(dev, "pcie"); in ks_pcie_probe()
380 if (IS_ERR(ks_pcie->clk)) { in ks_pcie_probe()
382 return PTR_ERR(ks_pcie->clk); in ks_pcie_probe()
384 ret = clk_prepare_enable(ks_pcie->clk); in ks_pcie_probe()
388 ret = ks_add_pcie_port(ks_pcie, pdev); in ks_pcie_probe()
394 clk_disable_unprepare(ks_pcie->clk); in ks_pcie_probe()