usb: musb: Set the DT node on the child device
authorRob Herring <robh@kernel.org>
Wed, 15 Dec 2021 23:07:57 +0000 (17:07 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Dec 2021 16:00:45 +0000 (17:00 +0100)
The musb glue drivers just copy the glue resources to the musb child device.
Instead, set the musb child device's DT node pointer to the parent device's
node so that platform_get_irq_byname() can find the resources in the DT.
This removes the need for statically populating the IRQ resources from the
DT which has been deprecated for some time.

Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20211215230756.2009115-3-robh@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/musb/am35x.c
drivers/usb/musb/da8xx.c
drivers/usb/musb/jz4740.c
drivers/usb/musb/mediatek.c
drivers/usb/musb/omap2430.c
drivers/usb/musb/ux500.c

index 660641a..bf2c0fa 100644 (file)
@@ -500,6 +500,8 @@ static int am35x_probe(struct platform_device *pdev)
        pinfo.num_res = pdev->num_resources;
        pinfo.data = pdata;
        pinfo.size_data = sizeof(*pdata);
+       pinfo.fwnode = of_fwnode_handle(pdev->dev.of_node);
+       pinfo.of_node_reused = true;
 
        glue->musb = musb = platform_device_register_full(&pinfo);
        if (IS_ERR(musb)) {
index e4e0195..fd4ae2d 100644 (file)
@@ -563,6 +563,8 @@ static int da8xx_probe(struct platform_device *pdev)
        pinfo.num_res = pdev->num_resources;
        pinfo.data = pdata;
        pinfo.size_data = sizeof(*pdata);
+       pinfo.fwnode = of_fwnode_handle(np);
+       pinfo.of_node_reused = true;
 
        glue->musb = platform_device_register_full(&pinfo);
        ret = PTR_ERR_OR_ZERO(glue->musb);
index 5b7d576..417c30b 100644 (file)
@@ -231,6 +231,7 @@ static int jz4740_probe(struct platform_device *pdev)
        musb->dev.parent                = dev;
        musb->dev.dma_mask              = &musb->dev.coherent_dma_mask;
        musb->dev.coherent_dma_mask     = DMA_BIT_MASK(32);
+       device_set_of_node_from_dev(&musb->dev, dev);
 
        glue->pdev                      = musb;
        glue->clk                       = clk;
index f5d97eb..1aeb34d 100644 (file)
@@ -538,6 +538,8 @@ static int mtk_musb_probe(struct platform_device *pdev)
        pinfo.num_res = pdev->num_resources;
        pinfo.data = pdata;
        pinfo.size_data = sizeof(*pdata);
+       pinfo.fwnode = of_fwnode_handle(np);
+       pinfo.of_node_reused = true;
 
        glue->musb_pdev = platform_device_register_full(&pinfo);
        if (IS_ERR(glue->musb_pdev)) {
index d2b7e61..7d4d071 100644 (file)
@@ -327,6 +327,7 @@ static int omap2430_probe(struct platform_device *pdev)
        musb->dev.parent                = &pdev->dev;
        musb->dev.dma_mask              = &omap2430_dmamask;
        musb->dev.coherent_dma_mask     = omap2430_dmamask;
+       device_set_of_node_from_dev(&musb->dev, &pdev->dev);
 
        glue->dev                       = &pdev->dev;
        glue->musb                      = musb;
index 9bce19b..8ea62c3 100644 (file)
@@ -262,6 +262,7 @@ static int ux500_probe(struct platform_device *pdev)
        musb->dev.parent                = &pdev->dev;
        musb->dev.dma_mask              = &pdev->dev.coherent_dma_mask;
        musb->dev.coherent_dma_mask     = pdev->dev.coherent_dma_mask;
+       device_set_of_node_from_dev(&musb->dev, &pdev->dev);
 
        glue->dev                       = &pdev->dev;
        glue->musb                      = musb;