Lines Matching full:data
73 { .compatible = "fsl,imx23-usb", .data = &imx23_usb_data},
74 { .compatible = "fsl,imx28-usb", .data = &imx28_usb_data},
75 { .compatible = "fsl,imx27-usb", .data = &imx27_usb_data},
76 { .compatible = "fsl,imx6q-usb", .data = &imx6q_usb_data},
77 { .compatible = "fsl,imx6sl-usb", .data = &imx6sl_usb_data},
78 { .compatible = "fsl,imx6sx-usb", .data = &imx6sx_usb_data},
79 { .compatible = "fsl,imx6ul-usb", .data = &imx6ul_usb_data},
80 { .compatible = "fsl,imx7d-usb", .data = &imx7d_usb_data},
81 { .compatible = "fsl,imx7ulp-usb", .data = &imx7ulp_usb_data},
114 struct imx_usbmisc_data *data; in usbmisc_get_init_data() local
124 data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); in usbmisc_get_init_data()
125 if (!data) in usbmisc_get_init_data()
136 data->index = args.args[0]; in usbmisc_get_init_data()
144 data->dev = &misc_pdev->dev; in usbmisc_get_init_data()
151 data->disable_oc = 1; in usbmisc_get_init_data()
153 data->oc_pol_active_low = 0; in usbmisc_get_init_data()
154 data->oc_pol_configured = 1; in usbmisc_get_init_data()
156 data->oc_pol_active_low = 1; in usbmisc_get_init_data()
157 data->oc_pol_configured = 1; in usbmisc_get_init_data()
162 data->pwr_pol = of_property_read_bool(np, "power-active-high"); in usbmisc_get_init_data()
163 data->evdo = of_property_read_bool(np, "external-vbus-divider"); in usbmisc_get_init_data()
166 data->ulpi = 1; in usbmisc_get_init_data()
168 return data; in usbmisc_get_init_data()
174 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev); in imx_get_clks() local
177 data->clk_ipg = devm_clk_get(dev, "ipg"); in imx_get_clks()
178 if (IS_ERR(data->clk_ipg)) { in imx_get_clks()
180 data->clk = devm_clk_get(dev, NULL); in imx_get_clks()
181 if (IS_ERR(data->clk)) { in imx_get_clks()
182 ret = PTR_ERR(data->clk); in imx_get_clks()
185 PTR_ERR(data->clk), PTR_ERR(data->clk_ipg)); in imx_get_clks()
191 data->clk_ahb = devm_clk_get(dev, "ahb"); in imx_get_clks()
192 if (IS_ERR(data->clk_ahb)) { in imx_get_clks()
193 ret = PTR_ERR(data->clk_ahb); in imx_get_clks()
199 data->clk_per = devm_clk_get(dev, "per"); in imx_get_clks()
200 if (IS_ERR(data->clk_per)) { in imx_get_clks()
201 ret = PTR_ERR(data->clk_per); in imx_get_clks()
207 data->need_three_clks = true; in imx_get_clks()
213 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev); in imx_prepare_enable_clks() local
216 if (data->need_three_clks) { in imx_prepare_enable_clks()
217 ret = clk_prepare_enable(data->clk_ipg); in imx_prepare_enable_clks()
225 ret = clk_prepare_enable(data->clk_ahb); in imx_prepare_enable_clks()
230 clk_disable_unprepare(data->clk_ipg); in imx_prepare_enable_clks()
234 ret = clk_prepare_enable(data->clk_per); in imx_prepare_enable_clks()
239 clk_disable_unprepare(data->clk_ahb); in imx_prepare_enable_clks()
240 clk_disable_unprepare(data->clk_ipg); in imx_prepare_enable_clks()
244 ret = clk_prepare_enable(data->clk); in imx_prepare_enable_clks()
258 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev); in imx_disable_unprepare_clks() local
260 if (data->need_three_clks) { in imx_disable_unprepare_clks()
261 clk_disable_unprepare(data->clk_per); in imx_disable_unprepare_clks()
262 clk_disable_unprepare(data->clk_ahb); in imx_disable_unprepare_clks()
263 clk_disable_unprepare(data->clk_ipg); in imx_disable_unprepare_clks()
265 clk_disable_unprepare(data->clk); in imx_disable_unprepare_clks()
272 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev); in ci_hdrc_imx_notify_event() local
277 ret = pinctrl_select_state(data->pinctrl, in ci_hdrc_imx_notify_event()
278 data->pinctrl_hsic_active); in ci_hdrc_imx_notify_event()
284 ret = imx_usbmisc_hsic_set_connect(data->usbmisc_data); in ci_hdrc_imx_notify_event()
298 struct ci_hdrc_imx_data *data; in ci_hdrc_imx_probe() local
315 imx_platform_flag = of_id->data; in ci_hdrc_imx_probe()
317 data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); in ci_hdrc_imx_probe()
318 if (!data) in ci_hdrc_imx_probe()
321 data->plat_data = imx_platform_flag; in ci_hdrc_imx_probe()
323 platform_set_drvdata(pdev, data); in ci_hdrc_imx_probe()
324 data->usbmisc_data = usbmisc_get_init_data(dev); in ci_hdrc_imx_probe()
325 if (IS_ERR(data->usbmisc_data)) in ci_hdrc_imx_probe()
326 return PTR_ERR(data->usbmisc_data); in ci_hdrc_imx_probe()
329 && data->usbmisc_data) { in ci_hdrc_imx_probe()
331 data->usbmisc_data->hsic = 1; in ci_hdrc_imx_probe()
332 data->pinctrl = devm_pinctrl_get(dev); in ci_hdrc_imx_probe()
333 if (IS_ERR(data->pinctrl)) { in ci_hdrc_imx_probe()
335 PTR_ERR(data->pinctrl)); in ci_hdrc_imx_probe()
336 return PTR_ERR(data->pinctrl); in ci_hdrc_imx_probe()
339 pinctrl_hsic_idle = pinctrl_lookup_state(data->pinctrl, "idle"); in ci_hdrc_imx_probe()
347 ret = pinctrl_select_state(data->pinctrl, pinctrl_hsic_idle); in ci_hdrc_imx_probe()
353 data->pinctrl_hsic_active = pinctrl_lookup_state(data->pinctrl, in ci_hdrc_imx_probe()
355 if (IS_ERR(data->pinctrl_hsic_active)) { in ci_hdrc_imx_probe()
358 PTR_ERR(data->pinctrl_hsic_active)); in ci_hdrc_imx_probe()
359 return PTR_ERR(data->pinctrl_hsic_active); in ci_hdrc_imx_probe()
362 data->hsic_pad_regulator = devm_regulator_get(dev, "hsic"); in ci_hdrc_imx_probe()
363 if (PTR_ERR(data->hsic_pad_regulator) == -EPROBE_DEFER) { in ci_hdrc_imx_probe()
365 } else if (PTR_ERR(data->hsic_pad_regulator) == -ENODEV) { in ci_hdrc_imx_probe()
367 data->hsic_pad_regulator = NULL; in ci_hdrc_imx_probe()
368 } else if (IS_ERR(data->hsic_pad_regulator)) { in ci_hdrc_imx_probe()
370 PTR_ERR(data->hsic_pad_regulator)); in ci_hdrc_imx_probe()
371 return PTR_ERR(data->hsic_pad_regulator); in ci_hdrc_imx_probe()
374 if (data->hsic_pad_regulator) { in ci_hdrc_imx_probe()
375 ret = regulator_enable(data->hsic_pad_regulator); in ci_hdrc_imx_probe()
385 pm_qos_add_request(&data->pm_qos_req, in ci_hdrc_imx_probe()
396 data->phy = devm_usb_get_phy_by_phandle(dev, "fsl,usbphy", 0); in ci_hdrc_imx_probe()
397 if (IS_ERR(data->phy)) { in ci_hdrc_imx_probe()
398 ret = PTR_ERR(data->phy); in ci_hdrc_imx_probe()
401 data->phy = NULL; in ci_hdrc_imx_probe()
406 pdata.usb_phy = data->phy; in ci_hdrc_imx_probe()
412 data->override_phy_control = true; in ci_hdrc_imx_probe()
417 data->supports_runtime_pm = true; in ci_hdrc_imx_probe()
419 ret = imx_usbmisc_init(data->usbmisc_data); in ci_hdrc_imx_probe()
425 data->ci_pdev = ci_hdrc_add_device(dev, in ci_hdrc_imx_probe()
428 if (IS_ERR(data->ci_pdev)) { in ci_hdrc_imx_probe()
429 ret = PTR_ERR(data->ci_pdev); in ci_hdrc_imx_probe()
436 ret = imx_usbmisc_init_post(data->usbmisc_data); in ci_hdrc_imx_probe()
442 if (data->supports_runtime_pm) { in ci_hdrc_imx_probe()
452 ci_hdrc_remove_device(data->ci_pdev); in ci_hdrc_imx_probe()
456 if (data->hsic_pad_regulator) in ci_hdrc_imx_probe()
458 regulator_disable(data->hsic_pad_regulator); in ci_hdrc_imx_probe()
460 pm_qos_remove_request(&data->pm_qos_req); in ci_hdrc_imx_probe()
461 data->ci_pdev = NULL; in ci_hdrc_imx_probe()
467 struct ci_hdrc_imx_data *data = platform_get_drvdata(pdev); in ci_hdrc_imx_remove() local
469 if (data->supports_runtime_pm) { in ci_hdrc_imx_remove()
474 if (data->ci_pdev) in ci_hdrc_imx_remove()
475 ci_hdrc_remove_device(data->ci_pdev); in ci_hdrc_imx_remove()
476 if (data->override_phy_control) in ci_hdrc_imx_remove()
477 usb_phy_shutdown(data->phy); in ci_hdrc_imx_remove()
478 if (data->ci_pdev) { in ci_hdrc_imx_remove()
480 if (data->plat_data->flags & CI_HDRC_PMQOS) in ci_hdrc_imx_remove()
481 pm_qos_remove_request(&data->pm_qos_req); in ci_hdrc_imx_remove()
482 if (data->hsic_pad_regulator) in ci_hdrc_imx_remove()
483 regulator_disable(data->hsic_pad_regulator); in ci_hdrc_imx_remove()
496 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev); in imx_controller_suspend() local
501 ret = imx_usbmisc_hsic_set_clk(data->usbmisc_data, false); in imx_controller_suspend()
508 if (data->plat_data->flags & CI_HDRC_PMQOS) in imx_controller_suspend()
509 pm_qos_remove_request(&data->pm_qos_req); in imx_controller_suspend()
511 data->in_lpm = true; in imx_controller_suspend()
518 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev); in imx_controller_resume() local
523 if (!data->in_lpm) { in imx_controller_resume()
528 if (data->plat_data->flags & CI_HDRC_PMQOS) in imx_controller_resume()
529 pm_qos_add_request(&data->pm_qos_req, in imx_controller_resume()
536 data->in_lpm = false; in imx_controller_resume()
538 ret = imx_usbmisc_set_wakeup(data->usbmisc_data, false); in imx_controller_resume()
544 ret = imx_usbmisc_hsic_set_clk(data->usbmisc_data, true); in imx_controller_resume()
553 imx_usbmisc_set_wakeup(data->usbmisc_data, true); in imx_controller_resume()
563 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev); in ci_hdrc_imx_suspend() local
565 if (data->in_lpm) in ci_hdrc_imx_suspend()
570 ret = imx_usbmisc_set_wakeup(data->usbmisc_data, true); in ci_hdrc_imx_suspend()
583 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev); in ci_hdrc_imx_resume() local
587 if (!ret && data->supports_runtime_pm) { in ci_hdrc_imx_resume()
598 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev); in ci_hdrc_imx_runtime_suspend() local
601 if (data->in_lpm) { in ci_hdrc_imx_runtime_suspend()
606 ret = imx_usbmisc_set_wakeup(data->usbmisc_data, true); in ci_hdrc_imx_runtime_suspend()