summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/chipidea/ci_hdrc_imx.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c
index 060c8e0abb10..d99afc3a0692 100644
--- a/drivers/usb/chipidea/ci_hdrc_imx.c
+++ b/drivers/usb/chipidea/ci_hdrc_imx.c
@@ -527,7 +527,8 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev)
if (pdata.flags & CI_HDRC_SUPPORTS_RUNTIME_PM)
data->supports_runtime_pm = true;
- if (data->usbmisc_data->index > 1 && (imx_has_hsic_con(data))) {
+ if (data->usbmisc_data && data->usbmisc_data->index > 1
+ && (imx_has_hsic_con(data))) {
pdata.flags |= CI_HDRC_IMX_IS_HSIC;
data->hsic_pad_regulator = devm_regulator_get(&pdev->dev,
"pad");
@@ -555,7 +556,7 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev)
}
}
- if (of_find_property(np, "fsl,anatop", NULL)) {
+ if (of_find_property(np, "fsl,anatop", NULL) && data->usbmisc_data) {
data->anatop = syscon_regmap_lookup_by_phandle(np,
"fsl,anatop");
if (IS_ERR(data->anatop)) {
@@ -564,11 +565,11 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev)
ret = PTR_ERR(data->anatop);
goto disable_hsic_regulator;
}
- if (data->usbmisc_data)
- data->usbmisc_data->anatop = data->anatop;
+ data->usbmisc_data->anatop = data->anatop;
}
- if (of_find_property(np, "imx-usb-charger-detection", NULL)) {
+ if (of_find_property(np, "imx-usb-charger-detection", NULL) &&
+ data->usbmisc_data) {
data->imx_usb_charger_detection = true;
data->charger.dev = &pdev->dev;
data->usbmisc_data->charger = &data->charger;
@@ -611,7 +612,8 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev)
}
/* usbmisc needs to know dr mode to choose wakeup setting */
- data->usbmisc_data->available_role =
+ if (data->usbmisc_data)
+ data->usbmisc_data->available_role =
ci_hdrc_query_available_role(data->ci_pdev);
if (data->supports_runtime_pm) {