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()
105 ks_dw_pcie_initiate_link_train(ks_pcie); in ks_pcie_establish_link()
117 struct keystone_pcie *ks_pcie = irq_desc_get_handler_data(desc); in ks_pcie_msi_irq_handler() local
118 u32 offset = irq - ks_pcie->msi_host_irqs[0]; in ks_pcie_msi_irq_handler()
119 struct pcie_port *pp = &ks_pcie->pp; in ks_pcie_msi_irq_handler()
130 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_handler_data(ks_pcie->legacy_host_irqs[i], ks_pcie); in ks_pcie_setup_interrupts()
218 irq_set_chained_handler(ks_pcie->legacy_host_irqs[i], 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(ks_pcie->msi_host_irqs[i], in ks_pcie_setup_interrupts()
228 irq_set_handler_data(ks_pcie->msi_host_irqs[i], in ks_pcie_setup_interrupts()
229 ks_pcie); in ks_pcie_setup_interrupts()
256 struct keystone_pcie *ks_pcie = to_keystone_pcie(pp); in ks_pcie_host_init() local
259 ks_pcie_establish_link(ks_pcie); in ks_pcie_host_init()
260 ks_dw_pcie_setup_rc_app_regs(ks_pcie); in ks_pcie_host_init()
261 ks_pcie_setup_interrupts(ks_pcie); in ks_pcie_host_init()
266 writew(ks_pcie->device_id, pp->dbi_base + PCI_DEVICE_ID); in ks_pcie_host_init()
295 static int __init ks_add_pcie_port(struct keystone_pcie *ks_pcie, in ks_add_pcie_port() argument
298 struct pcie_port *pp = &ks_pcie->pp; in ks_add_pcie_port()
301 ret = ks_pcie_get_irq_controller_info(ks_pcie, in ks_add_pcie_port()
303 &ks_pcie->num_legacy_host_irqs); in ks_add_pcie_port()
308 ret = ks_pcie_get_irq_controller_info(ks_pcie, in ks_add_pcie_port()
310 &ks_pcie->num_msi_host_irqs); in ks_add_pcie_port()
317 ret = ks_dw_pcie_host_init(ks_pcie, ks_pcie->msi_intc_np); in ks_add_pcie_port()
337 struct keystone_pcie *ks_pcie = platform_get_drvdata(pdev); in ks_pcie_remove() local
339 clk_disable_unprepare(ks_pcie->clk); in ks_pcie_remove()
347 struct keystone_pcie *ks_pcie; in ks_pcie_probe() local
354 ks_pcie = devm_kzalloc(&pdev->dev, sizeof(*ks_pcie), in ks_pcie_probe()
356 if (!ks_pcie) in ks_pcie_probe()
359 pp = &ks_pcie->pp; in ks_pcie_probe()
374 ks_pcie->device_id = readl(reg_p) >> 16; in ks_pcie_probe()
379 platform_set_drvdata(pdev, ks_pcie); in ks_pcie_probe()
380 ks_pcie->clk = devm_clk_get(dev, "pcie"); in ks_pcie_probe()
381 if (IS_ERR(ks_pcie->clk)) { in ks_pcie_probe()
383 return PTR_ERR(ks_pcie->clk); in ks_pcie_probe()
385 ret = clk_prepare_enable(ks_pcie->clk); in ks_pcie_probe()
389 ret = ks_add_pcie_port(ks_pcie, pdev); in ks_pcie_probe()
395 clk_disable_unprepare(ks_pcie->clk); in ks_pcie_probe()