Commit c12aa5be authored by Paul Cercueil's avatar Paul Cercueil Committed by Greg Kroah-Hartman

usb: musb: jz4740: Unconditionally depend on devicetree

The jz4740-musb driver is unconditionally probed from devicetree, so we
can add a hard dependency on devicetree. This makes the code a bit
cleaner, and is more future-proof as the platform data is now retrieved
using of_device_get_match_data().
Signed-off-by: default avatarPaul Cercueil <paul@crapouillou.net>
Signed-off-by: default avatarBin Liu <b-liu@ti.com>
Link: https://lore.kernel.org/r/20200316211136.2274-6-b-liu@ti.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 5004eaa2
...@@ -110,6 +110,7 @@ config USB_MUSB_UX500 ...@@ -110,6 +110,7 @@ config USB_MUSB_UX500
config USB_MUSB_JZ4740 config USB_MUSB_JZ4740
tristate "JZ4740" tristate "JZ4740"
depends on OF
depends on MIPS || COMPILE_TEST depends on MIPS || COMPILE_TEST
depends on USB_MUSB_GADGET depends on USB_MUSB_GADGET
depends on USB=n || USB_OTG_BLACKLIST_HUB depends on USB=n || USB_OTG_BLACKLIST_HUB
......
...@@ -166,7 +166,7 @@ static const struct musb_hdrc_platform_data jz4740_musb_pdata = { ...@@ -166,7 +166,7 @@ static const struct musb_hdrc_platform_data jz4740_musb_pdata = {
static int jz4740_probe(struct platform_device *pdev) static int jz4740_probe(struct platform_device *pdev)
{ {
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
const struct musb_hdrc_platform_data *pdata = &jz4740_musb_pdata; const struct musb_hdrc_platform_data *pdata;
struct platform_device *musb; struct platform_device *musb;
struct jz4740_glue *glue; struct jz4740_glue *glue;
struct clk *clk; struct clk *clk;
...@@ -176,6 +176,12 @@ static int jz4740_probe(struct platform_device *pdev) ...@@ -176,6 +176,12 @@ static int jz4740_probe(struct platform_device *pdev)
if (!glue) if (!glue)
return -ENOMEM; return -ENOMEM;
pdata = of_device_get_match_data(dev);
if (!pdata) {
dev_err(dev, "missing platform data");
return -EINVAL;
}
musb = platform_device_alloc("musb-hdrc", PLATFORM_DEVID_AUTO); musb = platform_device_alloc("musb-hdrc", PLATFORM_DEVID_AUTO);
if (!musb) { if (!musb) {
dev_err(dev, "failed to allocate musb device"); dev_err(dev, "failed to allocate musb device");
...@@ -242,20 +248,18 @@ static int jz4740_remove(struct platform_device *pdev) ...@@ -242,20 +248,18 @@ static int jz4740_remove(struct platform_device *pdev)
return 0; return 0;
} }
#ifdef CONFIG_OF
static const struct of_device_id jz4740_musb_of_match[] = { static const struct of_device_id jz4740_musb_of_match[] = {
{ .compatible = "ingenic,jz4740-musb" }, { .compatible = "ingenic,jz4740-musb", .data = &jz4740_musb_pdata },
{ /* sentinel */ }, { /* sentinel */ },
}; };
MODULE_DEVICE_TABLE(of, jz4740_musb_of_match); MODULE_DEVICE_TABLE(of, jz4740_musb_of_match);
#endif
static struct platform_driver jz4740_driver = { static struct platform_driver jz4740_driver = {
.probe = jz4740_probe, .probe = jz4740_probe,
.remove = jz4740_remove, .remove = jz4740_remove,
.driver = { .driver = {
.name = "musb-jz4740", .name = "musb-jz4740",
.of_match_table = of_match_ptr(jz4740_musb_of_match), .of_match_table = jz4740_musb_of_match,
}, },
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment