Lines Matching refs:data
81 { .compatible = "fsl,imx23-usb", .data = &imx23_usb_data},
82 { .compatible = "fsl,imx28-usb", .data = &imx28_usb_data},
83 { .compatible = "fsl,imx27-usb", .data = &imx27_usb_data},
84 { .compatible = "fsl,imx6q-usb", .data = &imx6q_usb_data},
85 { .compatible = "fsl,imx6sl-usb", .data = &imx6sl_usb_data},
86 { .compatible = "fsl,imx6sx-usb", .data = &imx6sx_usb_data},
87 { .compatible = "fsl,imx6ul-usb", .data = &imx6ul_usb_data},
88 { .compatible = "fsl,imx7d-usb", .data = &imx7d_usb_data},
89 { .compatible = "fsl,imx7ulp-usb", .data = &imx7ulp_usb_data},
90 { .compatible = "fsl,imx8ulp-usb", .data = &imx8ulp_usb_data},
123 struct imx_usbmisc_data *data;
133 data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
134 if (!data)
145 data->index = args.args[0];
157 data->dev = &misc_pdev->dev;
164 data->disable_oc = 1;
166 data->oc_pol_active_low = 0;
167 data->oc_pol_configured = 1;
169 data->oc_pol_active_low = 1;
170 data->oc_pol_configured = 1;
175 data->pwr_pol = of_property_read_bool(np, "power-active-high");
176 data->evdo = of_property_read_bool(np, "external-vbus-divider");
179 data->ulpi = 1;
182 &data->emp_curr_control))
183 data->emp_curr_control = -1;
185 &data->dc_vol_level_adjust))
186 data->dc_vol_level_adjust = -1;
188 &data->rise_fall_time_adjust))
189 data->rise_fall_time_adjust = -1;
191 return data;
197 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev);
200 data->clk_ipg = devm_clk_get(dev, "ipg");
201 if (IS_ERR(data->clk_ipg)) {
203 data->clk = devm_clk_get(dev, NULL);
204 if (IS_ERR(data->clk)) {
205 ret = PTR_ERR(data->clk);
208 PTR_ERR(data->clk), PTR_ERR(data->clk_ipg));
214 data->clk_ahb = devm_clk_get(dev, "ahb");
215 if (IS_ERR(data->clk_ahb)) {
216 ret = PTR_ERR(data->clk_ahb);
222 data->clk_per = devm_clk_get(dev, "per");
223 if (IS_ERR(data->clk_per)) {
224 ret = PTR_ERR(data->clk_per);
230 data->need_three_clks = true;
236 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev);
239 if (data->need_three_clks) {
240 ret = clk_prepare_enable(data->clk_ipg);
248 ret = clk_prepare_enable(data->clk_ahb);
253 clk_disable_unprepare(data->clk_ipg);
257 ret = clk_prepare_enable(data->clk_per);
262 clk_disable_unprepare(data->clk_ahb);
263 clk_disable_unprepare(data->clk_ipg);
267 ret = clk_prepare_enable(data->clk);
281 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev);
283 if (data->need_three_clks) {
284 clk_disable_unprepare(data->clk_per);
285 clk_disable_unprepare(data->clk_ahb);
286 clk_disable_unprepare(data->clk_ipg);
288 clk_disable_unprepare(data->clk);
295 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev);
297 struct imx_usbmisc_data *mdata = data->usbmisc_data;
301 if (data->pinctrl) {
302 ret = pinctrl_select_state(data->pinctrl,
303 data->pinctrl_hsic_active);
333 struct ci_hdrc_imx_data *data;
346 data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
347 if (!data)
350 data->plat_data = imx_platform_flag;
352 platform_set_drvdata(pdev, data);
353 data->usbmisc_data = usbmisc_get_init_data(dev);
354 if (IS_ERR(data->usbmisc_data))
355 return PTR_ERR(data->usbmisc_data);
358 && data->usbmisc_data) {
360 data->usbmisc_data->hsic = 1;
361 data->pinctrl = devm_pinctrl_get(dev);
362 if (PTR_ERR(data->pinctrl) == -ENODEV)
363 data->pinctrl = NULL;
364 else if (IS_ERR(data->pinctrl))
365 return dev_err_probe(dev, PTR_ERR(data->pinctrl),
368 data->hsic_pad_regulator =
370 if (PTR_ERR(data->hsic_pad_regulator) == -ENODEV) {
372 data->hsic_pad_regulator = NULL;
373 } else if (IS_ERR(data->hsic_pad_regulator))
374 return dev_err_probe(dev, PTR_ERR(data->hsic_pad_regulator),
377 if (data->hsic_pad_regulator) {
378 ret = regulator_enable(data->hsic_pad_regulator);
388 if (data->pinctrl) {
391 pinctrl_hsic_idle = pinctrl_lookup_state(data->pinctrl, "idle");
399 ret = pinctrl_select_state(data->pinctrl, pinctrl_hsic_idle);
405 data->pinctrl_hsic_active = pinctrl_lookup_state(data->pinctrl,
407 if (IS_ERR(data->pinctrl_hsic_active)) {
410 PTR_ERR(data->pinctrl_hsic_active));
411 return PTR_ERR(data->pinctrl_hsic_active);
416 cpu_latency_qos_add_request(&data->pm_qos_req, 0);
426 data->phy = devm_usb_get_phy_by_phandle(dev, "fsl,usbphy", 0);
427 if (IS_ERR(data->phy)) {
428 ret = PTR_ERR(data->phy);
433 data->phy = devm_usb_get_phy_by_phandle(dev, "phys", 0);
434 if (IS_ERR(data->phy)) {
435 ret = PTR_ERR(data->phy);
437 data->phy = NULL;
445 pdata.usb_phy = data->phy;
446 if (data->usbmisc_data)
447 data->usbmisc_data->usb_phy = data->phy;
453 data->override_phy_control = true;
458 data->supports_runtime_pm = true;
460 ret = imx_usbmisc_init(data->usbmisc_data);
466 data->ci_pdev = ci_hdrc_add_device(dev,
469 if (IS_ERR(data->ci_pdev)) {
470 ret = PTR_ERR(data->ci_pdev);
475 if (data->usbmisc_data) {
478 data->usbmisc_data->ext_id = 1;
482 data->usbmisc_data->ext_vbus = 1;
485 data->usbmisc_data->available_role =
486 ci_hdrc_query_available_role(data->ci_pdev);
489 ret = imx_usbmisc_init_post(data->usbmisc_data);
495 if (data->supports_runtime_pm) {
505 ci_hdrc_remove_device(data->ci_pdev);
509 if (data->hsic_pad_regulator)
511 regulator_disable(data->hsic_pad_regulator);
513 cpu_latency_qos_remove_request(&data->pm_qos_req);
514 data->ci_pdev = NULL;
520 struct ci_hdrc_imx_data *data = platform_get_drvdata(pdev);
522 if (data->supports_runtime_pm) {
527 if (data->ci_pdev)
528 ci_hdrc_remove_device(data->ci_pdev);
529 if (data->override_phy_control)
530 usb_phy_shutdown(data->phy);
531 if (data->ci_pdev) {
533 if (data->plat_data->flags & CI_HDRC_PMQOS)
534 cpu_latency_qos_remove_request(&data->pm_qos_req);
535 if (data->hsic_pad_regulator)
536 regulator_disable(data->hsic_pad_regulator);
548 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev);
553 ret = imx_usbmisc_suspend(data->usbmisc_data,
562 if (data->plat_data->flags & CI_HDRC_PMQOS)
563 cpu_latency_qos_remove_request(&data->pm_qos_req);
565 data->in_lpm = true;
573 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev);
578 if (!data->in_lpm) {
583 if (data->plat_data->flags & CI_HDRC_PMQOS)
584 cpu_latency_qos_add_request(&data->pm_qos_req, 0);
590 data->in_lpm = false;
592 ret = imx_usbmisc_resume(data->usbmisc_data,
610 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev);
612 if (data->in_lpm)
626 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev);
631 if (!ret && data->supports_runtime_pm) {
642 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev);
644 if (data->in_lpm) {