Lines Matching refs:data

85 	int (*init)(struct imx_usbmisc_data *data);
87 int (*post)(struct imx_usbmisc_data *data);
89 int (*set_wakeup)(struct imx_usbmisc_data *data, bool enabled);
98 static int usbmisc_imx25_init(struct imx_usbmisc_data *data) in usbmisc_imx25_init() argument
100 struct imx_usbmisc *usbmisc = dev_get_drvdata(data->dev); in usbmisc_imx25_init()
104 if (data->index > 1) in usbmisc_imx25_init()
108 switch (data->index) { in usbmisc_imx25_init()
132 static int usbmisc_imx25_post(struct imx_usbmisc_data *data) in usbmisc_imx25_post() argument
134 struct imx_usbmisc *usbmisc = dev_get_drvdata(data->dev); in usbmisc_imx25_post()
139 if (data->index > 2) in usbmisc_imx25_post()
142 if (data->evdo) { in usbmisc_imx25_post()
154 static int usbmisc_imx27_init(struct imx_usbmisc_data *data) in usbmisc_imx27_init() argument
156 struct imx_usbmisc *usbmisc = dev_get_drvdata(data->dev); in usbmisc_imx27_init()
160 switch (data->index) { in usbmisc_imx27_init()
175 if (data->disable_oc) in usbmisc_imx27_init()
185 static int usbmisc_imx53_init(struct imx_usbmisc_data *data) in usbmisc_imx53_init() argument
187 struct imx_usbmisc *usbmisc = dev_get_drvdata(data->dev); in usbmisc_imx53_init()
192 if (data->index > 3) in usbmisc_imx53_init()
201 if (data->disable_oc) { in usbmisc_imx53_init()
203 switch (data->index) { in usbmisc_imx53_init()
230 (struct imx_usbmisc_data *data, bool enabled) in usbmisc_imx6q_set_wakeup() argument
232 struct imx_usbmisc *usbmisc = dev_get_drvdata(data->dev); in usbmisc_imx6q_set_wakeup()
239 if (data->index > 3) in usbmisc_imx6q_set_wakeup()
243 val = readl(usbmisc->base + data->index * 4); in usbmisc_imx6q_set_wakeup()
246 writel(val, usbmisc->base + data->index * 4); in usbmisc_imx6q_set_wakeup()
249 pr_debug("wakeup int at ci_hdrc.%d\n", data->index); in usbmisc_imx6q_set_wakeup()
251 writel(val, usbmisc->base + data->index * 4); in usbmisc_imx6q_set_wakeup()
258 static int usbmisc_imx6q_init(struct imx_usbmisc_data *data) in usbmisc_imx6q_init() argument
260 struct imx_usbmisc *usbmisc = dev_get_drvdata(data->dev); in usbmisc_imx6q_init()
264 if (data->index > 3) in usbmisc_imx6q_init()
269 if (data->disable_oc) { in usbmisc_imx6q_init()
270 reg = readl(usbmisc->base + data->index * 4); in usbmisc_imx6q_init()
272 usbmisc->base + data->index * 4); in usbmisc_imx6q_init()
276 reg = readl(usbmisc->base + data->index * 4); in usbmisc_imx6q_init()
278 usbmisc->base + data->index * 4); in usbmisc_imx6q_init()
282 usbmisc_imx6q_set_wakeup(data, false); in usbmisc_imx6q_init()
287 static int usbmisc_imx6sx_init(struct imx_usbmisc_data *data) in usbmisc_imx6sx_init() argument
291 struct imx_usbmisc *usbmisc = dev_get_drvdata(data->dev); in usbmisc_imx6sx_init()
294 usbmisc_imx6q_init(data); in usbmisc_imx6sx_init()
296 if (data->index == 0 || data->index == 1) { in usbmisc_imx6sx_init()
297 reg = usbmisc->base + MX6_USB_OTG1_PHY_CTRL + data->index * 4; in usbmisc_imx6sx_init()
306 val = readl(usbmisc->base + data->index * 4); in usbmisc_imx6sx_init()
308 usbmisc->base + data->index * 4); in usbmisc_imx6sx_init()
315 static int usbmisc_vf610_init(struct imx_usbmisc_data *data) in usbmisc_vf610_init() argument
317 struct imx_usbmisc *usbmisc = dev_get_drvdata(data->dev); in usbmisc_vf610_init()
324 if (data->index >= 1) in usbmisc_vf610_init()
327 if (data->disable_oc) { in usbmisc_vf610_init()
336 (struct imx_usbmisc_data *data, bool enabled) in usbmisc_imx7d_set_wakeup() argument
338 struct imx_usbmisc *usbmisc = dev_get_drvdata(data->dev); in usbmisc_imx7d_set_wakeup()
350 dev_dbg(data->dev, "wakeup int\n"); in usbmisc_imx7d_set_wakeup()
358 static int usbmisc_imx7d_init(struct imx_usbmisc_data *data) in usbmisc_imx7d_init() argument
360 struct imx_usbmisc *usbmisc = dev_get_drvdata(data->dev); in usbmisc_imx7d_init()
364 if (data->index >= 1) in usbmisc_imx7d_init()
368 if (data->disable_oc) { in usbmisc_imx7d_init()
379 usbmisc_imx7d_set_wakeup(data, false); in usbmisc_imx7d_init()
416 int imx_usbmisc_init(struct imx_usbmisc_data *data) in imx_usbmisc_init() argument
420 if (!data) in imx_usbmisc_init()
423 usbmisc = dev_get_drvdata(data->dev); in imx_usbmisc_init()
426 return usbmisc->ops->init(data); in imx_usbmisc_init()
430 int imx_usbmisc_init_post(struct imx_usbmisc_data *data) in imx_usbmisc_init_post() argument
434 if (!data) in imx_usbmisc_init_post()
437 usbmisc = dev_get_drvdata(data->dev); in imx_usbmisc_init_post()
440 return usbmisc->ops->post(data); in imx_usbmisc_init_post()
444 int imx_usbmisc_set_wakeup(struct imx_usbmisc_data *data, bool enabled) in imx_usbmisc_set_wakeup() argument
448 if (!data) in imx_usbmisc_set_wakeup()
451 usbmisc = dev_get_drvdata(data->dev); in imx_usbmisc_set_wakeup()
454 return usbmisc->ops->set_wakeup(data, enabled); in imx_usbmisc_set_wakeup()
461 .data = &imx25_usbmisc_ops,
465 .data = &imx25_usbmisc_ops,
469 .data = &imx27_usbmisc_ops,
473 .data = &imx53_usbmisc_ops,
477 .data = &imx53_usbmisc_ops,
481 .data = &imx6q_usbmisc_ops,
485 .data = &vf610_usbmisc_ops,
489 .data = &imx6sx_usbmisc_ops,
493 .data = &imx6sx_usbmisc_ops,
502 struct imx_usbmisc *data; in usbmisc_imx_probe() local
509 data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); in usbmisc_imx_probe()
510 if (!data) in usbmisc_imx_probe()
513 spin_lock_init(&data->lock); in usbmisc_imx_probe()
516 data->base = devm_ioremap_resource(&pdev->dev, res); in usbmisc_imx_probe()
517 if (IS_ERR(data->base)) in usbmisc_imx_probe()
518 return PTR_ERR(data->base); in usbmisc_imx_probe()
520 data->ops = (const struct usbmisc_ops *)of_id->data; in usbmisc_imx_probe()
521 platform_set_drvdata(pdev, data); in usbmisc_imx_probe()