Lines Matching full:sophgo
3 * Sophgo DesignWare based PCIe host controller driver
34 static int sophgo_pcie_readl_app(struct sophgo_pcie *sophgo, u32 reg) in sophgo_pcie_readl_app() argument
36 return readl_relaxed(sophgo->app_base + reg); in sophgo_pcie_readl_app()
39 static void sophgo_pcie_writel_app(struct sophgo_pcie *sophgo, u32 val, u32 reg) in sophgo_pcie_writel_app() argument
41 writel_relaxed(val, sophgo->app_base + reg); in sophgo_pcie_writel_app()
49 struct sophgo_pcie *sophgo = to_sophgo_pcie(pci); in sophgo_pcie_intx_handler() local
54 reg = sophgo_pcie_readl_app(sophgo, PCIE_INT_SIGNAL); in sophgo_pcie_intx_handler()
58 generic_handle_domain_irq(sophgo->irq_domain, hwirq); in sophgo_pcie_intx_handler()
67 struct sophgo_pcie *sophgo = to_sophgo_pcie(pci); in sophgo_intx_irq_mask() local
73 val = sophgo_pcie_readl_app(sophgo, PCIE_INT_EN); in sophgo_intx_irq_mask()
75 sophgo_pcie_writel_app(sophgo, val, PCIE_INT_EN); in sophgo_intx_irq_mask()
84 struct sophgo_pcie *sophgo = to_sophgo_pcie(pci); in sophgo_intx_irq_unmask() local
90 val = sophgo_pcie_readl_app(sophgo, PCIE_INT_EN); in sophgo_intx_irq_unmask()
92 sophgo_pcie_writel_app(sophgo, val, PCIE_INT_EN); in sophgo_intx_irq_unmask()
119 struct sophgo_pcie *sophgo = to_sophgo_pcie(pci); in sophgo_pcie_init_irq_domain() local
120 struct device *dev = sophgo->pci.dev; in sophgo_pcie_init_irq_domain()
137 sophgo->irq_domain = irq_domain_create_linear(intc, PCI_NUM_INTX, in sophgo_pcie_init_irq_domain()
140 if (!sophgo->irq_domain) { in sophgo_pcie_init_irq_domain()
151 struct sophgo_pcie *sophgo = to_sophgo_pcie(pci); in sophgo_pcie_msi_enable() local
157 val = sophgo_pcie_readl_app(sophgo, PCIE_INT_EN); in sophgo_pcie_msi_enable()
159 sophgo_pcie_writel_app(sophgo, val, PCIE_INT_EN); in sophgo_pcie_msi_enable()
183 static int sophgo_pcie_clk_init(struct sophgo_pcie *sophgo) in sophgo_pcie_clk_init() argument
185 struct device *dev = sophgo->pci.dev; in sophgo_pcie_clk_init()
188 ret = devm_clk_bulk_get_all_enabled(dev, &sophgo->clks); in sophgo_pcie_clk_init()
192 sophgo->clk_cnt = ret; in sophgo_pcie_clk_init()
198 struct sophgo_pcie *sophgo) in sophgo_pcie_resource_get() argument
200 sophgo->app_base = devm_platform_ioremap_resource_byname(pdev, "app"); in sophgo_pcie_resource_get()
201 if (IS_ERR(sophgo->app_base)) in sophgo_pcie_resource_get()
202 return dev_err_probe(&pdev->dev, PTR_ERR(sophgo->app_base), in sophgo_pcie_resource_get()
208 static int sophgo_pcie_configure_rc(struct sophgo_pcie *sophgo) in sophgo_pcie_configure_rc() argument
212 pp = &sophgo->pci.pp; in sophgo_pcie_configure_rc()
221 struct sophgo_pcie *sophgo; in sophgo_pcie_probe() local
224 sophgo = devm_kzalloc(dev, sizeof(*sophgo), GFP_KERNEL); in sophgo_pcie_probe()
225 if (!sophgo) in sophgo_pcie_probe()
228 platform_set_drvdata(pdev, sophgo); in sophgo_pcie_probe()
230 sophgo->pci.dev = dev; in sophgo_pcie_probe()
232 ret = sophgo_pcie_resource_get(pdev, sophgo); in sophgo_pcie_probe()
236 ret = sophgo_pcie_clk_init(sophgo); in sophgo_pcie_probe()
240 return sophgo_pcie_configure_rc(sophgo); in sophgo_pcie_probe()
244 { .compatible = "sophgo,sg2044-pcie" },
251 .name = "sophgo-pcie",