USB: musb: omap2430: drop non-DT support
Drop support for non-DT systems, which hasn't been used by a mainline
kernel since commit 9080b8dc76
("ARM: OMAP2+: Remove legacy usb-host.c
platform init code"). Specifically, since that commit usb_get_phy_dev()
have always returned -ENODEV when looking up a legacy phy, something
which in turn would have led to the init callback returning
-EPROBE_DEFER indefinitely.
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
e90308a65c
Коммит
5ee1787e5e
|
@ -239,21 +239,15 @@ static int omap2430_musb_init(struct musb *musb)
|
||||||
* up through ULPI. TWL4030-family PMICs include one,
|
* up through ULPI. TWL4030-family PMICs include one,
|
||||||
* which needs a driver, drivers aren't always needed.
|
* which needs a driver, drivers aren't always needed.
|
||||||
*/
|
*/
|
||||||
if (dev->parent->of_node) {
|
musb->phy = devm_phy_get(dev->parent, "usb2-phy");
|
||||||
musb->phy = devm_phy_get(dev->parent, "usb2-phy");
|
|
||||||
|
|
||||||
/* We can't totally remove musb->xceiv as of now because
|
/* We can't totally remove musb->xceiv as of now because
|
||||||
* musb core uses xceiv.state and xceiv.otg. Once we have
|
* musb core uses xceiv.state and xceiv.otg. Once we have
|
||||||
* a separate state machine to handle otg, these can be moved
|
* a separate state machine to handle otg, these can be moved
|
||||||
* out of xceiv and then we can start using the generic PHY
|
* out of xceiv and then we can start using the generic PHY
|
||||||
* framework
|
* framework
|
||||||
*/
|
*/
|
||||||
musb->xceiv = devm_usb_get_phy_by_phandle(dev->parent,
|
musb->xceiv = devm_usb_get_phy_by_phandle(dev->parent, "usb-phy", 0);
|
||||||
"usb-phy", 0);
|
|
||||||
} else {
|
|
||||||
musb->xceiv = devm_usb_get_phy_dev(dev, 0);
|
|
||||||
musb->phy = devm_phy_get(dev, "usb");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IS_ERR(musb->xceiv)) {
|
if (IS_ERR(musb->xceiv)) {
|
||||||
status = PTR_ERR(musb->xceiv);
|
status = PTR_ERR(musb->xceiv);
|
||||||
|
@ -391,8 +385,13 @@ static int omap2430_probe(struct platform_device *pdev)
|
||||||
struct omap2430_glue *glue;
|
struct omap2430_glue *glue;
|
||||||
struct device_node *np = pdev->dev.of_node;
|
struct device_node *np = pdev->dev.of_node;
|
||||||
struct musb_hdrc_config *config;
|
struct musb_hdrc_config *config;
|
||||||
|
struct device_node *control_node;
|
||||||
|
struct platform_device *control_pdev;
|
||||||
int ret = -ENOMEM, val;
|
int ret = -ENOMEM, val;
|
||||||
|
|
||||||
|
if (!np)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL);
|
glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL);
|
||||||
if (!glue)
|
if (!glue)
|
||||||
goto err0;
|
goto err0;
|
||||||
|
@ -412,47 +411,43 @@ static int omap2430_probe(struct platform_device *pdev)
|
||||||
glue->status = MUSB_UNKNOWN;
|
glue->status = MUSB_UNKNOWN;
|
||||||
glue->control_otghs = ERR_PTR(-ENODEV);
|
glue->control_otghs = ERR_PTR(-ENODEV);
|
||||||
|
|
||||||
if (np) {
|
pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);
|
||||||
struct device_node *control_node;
|
if (!pdata)
|
||||||
struct platform_device *control_pdev;
|
goto err2;
|
||||||
|
|
||||||
pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);
|
data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
|
||||||
if (!pdata)
|
if (!data)
|
||||||
|
goto err2;
|
||||||
|
|
||||||
|
config = devm_kzalloc(&pdev->dev, sizeof(*config), GFP_KERNEL);
|
||||||
|
if (!config)
|
||||||
|
goto err2;
|
||||||
|
|
||||||
|
of_property_read_u32(np, "mode", (u32 *)&pdata->mode);
|
||||||
|
of_property_read_u32(np, "interface-type",
|
||||||
|
(u32 *)&data->interface_type);
|
||||||
|
of_property_read_u32(np, "num-eps", (u32 *)&config->num_eps);
|
||||||
|
of_property_read_u32(np, "ram-bits", (u32 *)&config->ram_bits);
|
||||||
|
of_property_read_u32(np, "power", (u32 *)&pdata->power);
|
||||||
|
|
||||||
|
ret = of_property_read_u32(np, "multipoint", &val);
|
||||||
|
if (!ret && val)
|
||||||
|
config->multipoint = true;
|
||||||
|
|
||||||
|
pdata->board_data = data;
|
||||||
|
pdata->config = config;
|
||||||
|
|
||||||
|
control_node = of_parse_phandle(np, "ctrl-module", 0);
|
||||||
|
if (control_node) {
|
||||||
|
control_pdev = of_find_device_by_node(control_node);
|
||||||
|
if (!control_pdev) {
|
||||||
|
dev_err(&pdev->dev, "Failed to get control device\n");
|
||||||
|
ret = -EINVAL;
|
||||||
goto err2;
|
goto err2;
|
||||||
|
|
||||||
data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
|
|
||||||
if (!data)
|
|
||||||
goto err2;
|
|
||||||
|
|
||||||
config = devm_kzalloc(&pdev->dev, sizeof(*config), GFP_KERNEL);
|
|
||||||
if (!config)
|
|
||||||
goto err2;
|
|
||||||
|
|
||||||
of_property_read_u32(np, "mode", (u32 *)&pdata->mode);
|
|
||||||
of_property_read_u32(np, "interface-type",
|
|
||||||
(u32 *)&data->interface_type);
|
|
||||||
of_property_read_u32(np, "num-eps", (u32 *)&config->num_eps);
|
|
||||||
of_property_read_u32(np, "ram-bits", (u32 *)&config->ram_bits);
|
|
||||||
of_property_read_u32(np, "power", (u32 *)&pdata->power);
|
|
||||||
|
|
||||||
ret = of_property_read_u32(np, "multipoint", &val);
|
|
||||||
if (!ret && val)
|
|
||||||
config->multipoint = true;
|
|
||||||
|
|
||||||
pdata->board_data = data;
|
|
||||||
pdata->config = config;
|
|
||||||
|
|
||||||
control_node = of_parse_phandle(np, "ctrl-module", 0);
|
|
||||||
if (control_node) {
|
|
||||||
control_pdev = of_find_device_by_node(control_node);
|
|
||||||
if (!control_pdev) {
|
|
||||||
dev_err(&pdev->dev, "Failed to get control device\n");
|
|
||||||
ret = -EINVAL;
|
|
||||||
goto err2;
|
|
||||||
}
|
|
||||||
glue->control_otghs = &control_pdev->dev;
|
|
||||||
}
|
}
|
||||||
|
glue->control_otghs = &control_pdev->dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
pdata->platform_ops = &omap2430_ops;
|
pdata->platform_ops = &omap2430_ops;
|
||||||
|
|
||||||
platform_set_drvdata(pdev, glue);
|
platform_set_drvdata(pdev, glue);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче