Lines Matching refs:hipcie
80 struct histb_pcie *hipcie = to_histb_pcie(pci); in histb_pcie_dbi_w_mode() local
83 val = histb_pcie_readl(hipcie, PCIE_SYS_CTRL0); in histb_pcie_dbi_w_mode()
88 histb_pcie_writel(hipcie, PCIE_SYS_CTRL0, val); in histb_pcie_dbi_w_mode()
94 struct histb_pcie *hipcie = to_histb_pcie(pci); in histb_pcie_dbi_r_mode() local
97 val = histb_pcie_readl(hipcie, PCIE_SYS_CTRL1); in histb_pcie_dbi_r_mode()
102 histb_pcie_writel(hipcie, PCIE_SYS_CTRL1, val); in histb_pcie_dbi_r_mode()
153 struct histb_pcie *hipcie = to_histb_pcie(pci); in histb_pcie_link_up() local
157 regval = histb_pcie_readl(hipcie, PCIE_SYS_STAT0); in histb_pcie_link_up()
158 status = histb_pcie_readl(hipcie, PCIE_SYS_STAT4); in histb_pcie_link_up()
170 struct histb_pcie *hipcie = to_histb_pcie(pci); in histb_pcie_establish_link() local
179 regval = histb_pcie_readl(hipcie, PCIE_SYS_CTRL0); in histb_pcie_establish_link()
182 histb_pcie_writel(hipcie, PCIE_SYS_CTRL0, regval); in histb_pcie_establish_link()
188 regval = histb_pcie_readl(hipcie, PCIE_SYS_CTRL7); in histb_pcie_establish_link()
190 histb_pcie_writel(hipcie, PCIE_SYS_CTRL7, regval); in histb_pcie_establish_link()
211 static void histb_pcie_host_disable(struct histb_pcie *hipcie) in histb_pcie_host_disable() argument
213 reset_control_assert(hipcie->soft_reset); in histb_pcie_host_disable()
214 reset_control_assert(hipcie->sys_reset); in histb_pcie_host_disable()
215 reset_control_assert(hipcie->bus_reset); in histb_pcie_host_disable()
217 clk_disable_unprepare(hipcie->aux_clk); in histb_pcie_host_disable()
218 clk_disable_unprepare(hipcie->pipe_clk); in histb_pcie_host_disable()
219 clk_disable_unprepare(hipcie->sys_clk); in histb_pcie_host_disable()
220 clk_disable_unprepare(hipcie->bus_clk); in histb_pcie_host_disable()
222 if (gpio_is_valid(hipcie->reset_gpio)) in histb_pcie_host_disable()
223 gpio_set_value_cansleep(hipcie->reset_gpio, 0); in histb_pcie_host_disable()
225 if (hipcie->vpcie) in histb_pcie_host_disable()
226 regulator_disable(hipcie->vpcie); in histb_pcie_host_disable()
232 struct histb_pcie *hipcie = to_histb_pcie(pci); in histb_pcie_host_enable() local
237 if (hipcie->vpcie) { in histb_pcie_host_enable()
238 ret = regulator_enable(hipcie->vpcie); in histb_pcie_host_enable()
245 if (gpio_is_valid(hipcie->reset_gpio)) in histb_pcie_host_enable()
246 gpio_set_value_cansleep(hipcie->reset_gpio, 1); in histb_pcie_host_enable()
248 ret = clk_prepare_enable(hipcie->bus_clk); in histb_pcie_host_enable()
254 ret = clk_prepare_enable(hipcie->sys_clk); in histb_pcie_host_enable()
260 ret = clk_prepare_enable(hipcie->pipe_clk); in histb_pcie_host_enable()
266 ret = clk_prepare_enable(hipcie->aux_clk); in histb_pcie_host_enable()
272 reset_control_assert(hipcie->soft_reset); in histb_pcie_host_enable()
273 reset_control_deassert(hipcie->soft_reset); in histb_pcie_host_enable()
275 reset_control_assert(hipcie->sys_reset); in histb_pcie_host_enable()
276 reset_control_deassert(hipcie->sys_reset); in histb_pcie_host_enable()
278 reset_control_assert(hipcie->bus_reset); in histb_pcie_host_enable()
279 reset_control_deassert(hipcie->bus_reset); in histb_pcie_host_enable()
284 clk_disable_unprepare(hipcie->pipe_clk); in histb_pcie_host_enable()
286 clk_disable_unprepare(hipcie->sys_clk); in histb_pcie_host_enable()
288 clk_disable_unprepare(hipcie->bus_clk); in histb_pcie_host_enable()
290 if (hipcie->vpcie) in histb_pcie_host_enable()
291 regulator_disable(hipcie->vpcie); in histb_pcie_host_enable()
304 struct histb_pcie *hipcie; in histb_pcie_probe() local
314 hipcie = devm_kzalloc(dev, sizeof(*hipcie), GFP_KERNEL); in histb_pcie_probe()
315 if (!hipcie) in histb_pcie_probe()
322 hipcie->pci = pci; in histb_pcie_probe()
328 hipcie->ctrl = devm_ioremap_resource(dev, res); in histb_pcie_probe()
329 if (IS_ERR(hipcie->ctrl)) { in histb_pcie_probe()
331 return PTR_ERR(hipcie->ctrl); in histb_pcie_probe()
341 hipcie->vpcie = devm_regulator_get_optional(dev, "vpcie"); in histb_pcie_probe()
342 if (IS_ERR(hipcie->vpcie)) { in histb_pcie_probe()
343 if (PTR_ERR(hipcie->vpcie) != -ENODEV) in histb_pcie_probe()
344 return PTR_ERR(hipcie->vpcie); in histb_pcie_probe()
345 hipcie->vpcie = NULL; in histb_pcie_probe()
348 hipcie->reset_gpio = of_get_named_gpio_flags(np, in histb_pcie_probe()
352 if (gpio_is_valid(hipcie->reset_gpio)) { in histb_pcie_probe()
353 ret = devm_gpio_request_one(dev, hipcie->reset_gpio, in histb_pcie_probe()
361 hipcie->aux_clk = devm_clk_get(dev, "aux"); in histb_pcie_probe()
362 if (IS_ERR(hipcie->aux_clk)) { in histb_pcie_probe()
364 return PTR_ERR(hipcie->aux_clk); in histb_pcie_probe()
367 hipcie->pipe_clk = devm_clk_get(dev, "pipe"); in histb_pcie_probe()
368 if (IS_ERR(hipcie->pipe_clk)) { in histb_pcie_probe()
370 return PTR_ERR(hipcie->pipe_clk); in histb_pcie_probe()
373 hipcie->sys_clk = devm_clk_get(dev, "sys"); in histb_pcie_probe()
374 if (IS_ERR(hipcie->sys_clk)) { in histb_pcie_probe()
376 return PTR_ERR(hipcie->sys_clk); in histb_pcie_probe()
379 hipcie->bus_clk = devm_clk_get(dev, "bus"); in histb_pcie_probe()
380 if (IS_ERR(hipcie->bus_clk)) { in histb_pcie_probe()
382 return PTR_ERR(hipcie->bus_clk); in histb_pcie_probe()
385 hipcie->soft_reset = devm_reset_control_get(dev, "soft"); in histb_pcie_probe()
386 if (IS_ERR(hipcie->soft_reset)) { in histb_pcie_probe()
388 return PTR_ERR(hipcie->soft_reset); in histb_pcie_probe()
391 hipcie->sys_reset = devm_reset_control_get(dev, "sys"); in histb_pcie_probe()
392 if (IS_ERR(hipcie->sys_reset)) { in histb_pcie_probe()
394 return PTR_ERR(hipcie->sys_reset); in histb_pcie_probe()
397 hipcie->bus_reset = devm_reset_control_get(dev, "bus"); in histb_pcie_probe()
398 if (IS_ERR(hipcie->bus_reset)) { in histb_pcie_probe()
400 return PTR_ERR(hipcie->bus_reset); in histb_pcie_probe()
411 hipcie->phy = devm_phy_get(dev, "phy"); in histb_pcie_probe()
412 if (IS_ERR(hipcie->phy)) { in histb_pcie_probe()
414 hipcie->phy = NULL; in histb_pcie_probe()
420 phy_init(hipcie->phy); in histb_pcie_probe()
425 platform_set_drvdata(pdev, hipcie); in histb_pcie_probe()
444 struct histb_pcie *hipcie = platform_get_drvdata(pdev); in histb_pcie_remove() local
446 histb_pcie_host_disable(hipcie); in histb_pcie_remove()
448 if (hipcie->phy) in histb_pcie_remove()
449 phy_exit(hipcie->phy); in histb_pcie_remove()