Lines Matching refs:priv_data
53 static void dwc3_xlnx_mask_phy_rst(struct dwc3_xlnx *priv_data, bool mask) in dwc3_xlnx_mask_phy_rst() argument
62 reg = readl(priv_data->regs + XLNX_USB_PHY_RST_EN); in dwc3_xlnx_mask_phy_rst()
69 writel(reg, priv_data->regs + XLNX_USB_PHY_RST_EN); in dwc3_xlnx_mask_phy_rst()
72 static void dwc3_xlnx_set_coherency(struct dwc3_xlnx *priv_data, u32 coherency_offset) in dwc3_xlnx_set_coherency() argument
74 struct device *dev = priv_data->dev; in dwc3_xlnx_set_coherency()
83 reg = readl(priv_data->regs + coherency_offset); in dwc3_xlnx_set_coherency()
85 writel(reg, priv_data->regs + coherency_offset); in dwc3_xlnx_set_coherency()
89 static int dwc3_xlnx_init_versal(struct dwc3_xlnx *priv_data) in dwc3_xlnx_init_versal() argument
91 struct device *dev = priv_data->dev; in dwc3_xlnx_init_versal()
99 dwc3_xlnx_mask_phy_rst(priv_data, false); in dwc3_xlnx_init_versal()
114 dwc3_xlnx_mask_phy_rst(priv_data, true); in dwc3_xlnx_init_versal()
115 dwc3_xlnx_set_coherency(priv_data, XLNX_USB2_TRAFFIC_ROUTE_CONFIG); in dwc3_xlnx_init_versal()
120 static int dwc3_xlnx_init_zynqmp(struct dwc3_xlnx *priv_data) in dwc3_xlnx_init_zynqmp() argument
122 struct device *dev = priv_data->dev; in dwc3_xlnx_init_zynqmp()
127 priv_data->usb3_phy = devm_phy_optional_get(dev, "usb3-phy"); in dwc3_xlnx_init_zynqmp()
128 if (IS_ERR(priv_data->usb3_phy)) { in dwc3_xlnx_init_zynqmp()
129 ret = PTR_ERR(priv_data->usb3_phy); in dwc3_xlnx_init_zynqmp()
144 if (!priv_data->usb3_phy) { in dwc3_xlnx_init_zynqmp()
146 writel(PIPE_CLK_DESELECT, priv_data->regs + XLNX_USB_FPD_PIPE_CLK); in dwc3_xlnx_init_zynqmp()
192 ret = phy_init(priv_data->usb3_phy); in dwc3_xlnx_init_zynqmp()
194 phy_exit(priv_data->usb3_phy); in dwc3_xlnx_init_zynqmp()
205 writel(FPD_POWER_PRSNT_OPTION, priv_data->regs + XLNX_USB_FPD_POWER_PRSNT); in dwc3_xlnx_init_zynqmp()
208 writel(PIPE_CLK_SELECT, priv_data->regs + XLNX_USB_FPD_PIPE_CLK); in dwc3_xlnx_init_zynqmp()
222 ret = phy_power_on(priv_data->usb3_phy); in dwc3_xlnx_init_zynqmp()
224 phy_exit(priv_data->usb3_phy); in dwc3_xlnx_init_zynqmp()
242 dwc3_xlnx_set_coherency(priv_data, XLNX_USB_TRAFFIC_ROUTE_CONFIG); in dwc3_xlnx_init_zynqmp()
287 struct dwc3_xlnx *priv_data; in dwc3_xlnx_probe() local
294 priv_data = devm_kzalloc(dev, sizeof(*priv_data), GFP_KERNEL); in dwc3_xlnx_probe()
295 if (!priv_data) in dwc3_xlnx_probe()
304 priv_data->pltfm_init = match->data; in dwc3_xlnx_probe()
305 priv_data->regs = regs; in dwc3_xlnx_probe()
306 priv_data->dev = dev; in dwc3_xlnx_probe()
308 platform_set_drvdata(pdev, priv_data); in dwc3_xlnx_probe()
310 ret = devm_clk_bulk_get_all(priv_data->dev, &priv_data->clks); in dwc3_xlnx_probe()
314 priv_data->num_clocks = ret; in dwc3_xlnx_probe()
316 ret = clk_bulk_prepare_enable(priv_data->num_clocks, priv_data->clks); in dwc3_xlnx_probe()
320 ret = priv_data->pltfm_init(priv_data); in dwc3_xlnx_probe()
349 clk_bulk_disable_unprepare(priv_data->num_clocks, priv_data->clks); in dwc3_xlnx_probe()
356 struct dwc3_xlnx *priv_data = platform_get_drvdata(pdev); in dwc3_xlnx_remove() local
361 clk_bulk_disable_unprepare(priv_data->num_clocks, priv_data->clks); in dwc3_xlnx_remove()
362 priv_data->num_clocks = 0; in dwc3_xlnx_remove()
370 struct dwc3_xlnx *priv_data = dev_get_drvdata(dev); in dwc3_xlnx_runtime_suspend() local
372 clk_bulk_disable(priv_data->num_clocks, priv_data->clks); in dwc3_xlnx_runtime_suspend()
379 struct dwc3_xlnx *priv_data = dev_get_drvdata(dev); in dwc3_xlnx_runtime_resume() local
381 return clk_bulk_enable(priv_data->num_clocks, priv_data->clks); in dwc3_xlnx_runtime_resume()
394 struct dwc3_xlnx *priv_data = dev_get_drvdata(dev); in dwc3_xlnx_suspend() local
396 phy_exit(priv_data->usb3_phy); in dwc3_xlnx_suspend()
399 clk_bulk_disable(priv_data->num_clocks, priv_data->clks); in dwc3_xlnx_suspend()
406 struct dwc3_xlnx *priv_data = dev_get_drvdata(dev); in dwc3_xlnx_resume() local
409 ret = clk_bulk_enable(priv_data->num_clocks, priv_data->clks); in dwc3_xlnx_resume()
413 ret = phy_init(priv_data->usb3_phy); in dwc3_xlnx_resume()
417 ret = phy_power_on(priv_data->usb3_phy); in dwc3_xlnx_resume()
419 phy_exit(priv_data->usb3_phy); in dwc3_xlnx_resume()