usb: musb-new: Allow the diver not to use the set_phy_power() callback
authorJean-Jacques Hiblot <jjhiblot@ti.com>
Tue, 4 Dec 2018 10:30:56 +0000 (11:30 +0100)
committerMarek Vasut <marex@denx.de>
Fri, 14 Dec 2018 16:59:10 +0000 (17:59 +0100)
The set_phy_power() callback is part of struct omap_musb_board_data. This
structure is part of the platform data passed to the musb-new driver. This
does not really fit with the Driver Model, so allow not to use struct
omap_musb_board_data to turn the phy on or off.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
drivers/usb/musb-new/am35x.c
drivers/usb/musb-new/musb_dsps.c

index 251b4e99692e374e51e8aa45d7cbad75844280ac..bda099c63f4e25b8793e0e00e318bb39f80cfcad 100644 (file)
@@ -406,7 +406,7 @@ static int am35x_musb_init(struct musb *musb)
        musb_writel(reg_base, USB_CTRL_REG, AM35X_SOFT_RESET_MASK);
 
        /* Start the on-chip PHY and its PLL. */
-       if (data->set_phy_power)
+       if (data && data->set_phy_power)
                data->set_phy_power(data->dev, 1);
 
        msleep(5);
@@ -437,7 +437,7 @@ static int am35x_musb_exit(struct musb *musb)
 #endif
 
        /* Shutdown the on-chip PHY and its PLL. */
-       if (data->set_phy_power)
+       if (data && data->set_phy_power)
                data->set_phy_power(data->dev, 0);
 
 #ifndef __UBOOT__
@@ -628,7 +628,7 @@ static int am35x_suspend(struct device *dev)
        struct omap_musb_board_data *data = plat->board_data;
 
        /* Shutdown the on-chip PHY and its PLL. */
-       if (data->set_phy_power)
+       if (data && data->set_phy_power)
                data->set_phy_power(data->dev, 0);
 
        clk_disable(glue->phy_clk);
@@ -645,7 +645,7 @@ static int am35x_resume(struct device *dev)
        int                     ret;
 
        /* Start the on-chip PHY and its PLL. */
-       if (data->set_phy_power)
+       if (data && data->set_phy_power)
                data->set_phy_power(data->dev, 1);
 
        ret = clk_enable(glue->phy_clk);
index 9b814f4cd4ae077b382f819fe8f07b53e606406f..0c794b310a3a615ad475ea5a3dad2112db2aa508 100644 (file)
@@ -450,7 +450,7 @@ static int dsps_musb_init(struct musb *musb)
        dsps_writel(reg_base, wrp->control, (1 << wrp->reset));
 
        /* Start the on-chip PHY and its PLL. */
-       if (data->set_phy_power)
+       if (data && data->set_phy_power)
                data->set_phy_power(data->dev, 1);
 
        musb->isr = dsps_interrupt;
@@ -491,7 +491,7 @@ static int dsps_musb_exit(struct musb *musb)
 #endif
 
        /* Shutdown the on-chip PHY and its PLL. */
-       if (data->set_phy_power)
+       if (data && data->set_phy_power)
                data->set_phy_power(data->dev, 0);
 
 #ifndef __UBOOT__
@@ -691,7 +691,7 @@ static int dsps_suspend(struct device *dev)
        struct omap_musb_board_data *data = plat->board_data;
 
        /* Shutdown the on-chip PHY and its PLL. */
-       if (data->set_phy_power)
+       if (data && data->set_phy_power)
                data->set_phy_power(data->dev, 0);
 
        return 0;
@@ -703,7 +703,7 @@ static int dsps_resume(struct device *dev)
        struct omap_musb_board_data *data = plat->board_data;
 
        /* Start the on-chip PHY and its PLL. */
-       if (data->set_phy_power)
+       if (data && data->set_phy_power)
                data->set_phy_power(data->dev, 1);
 
        return 0;