media: omap3isp: add CSI1 support
authorPavel Machek <pavel@ucw.cz>
Thu, 13 Jul 2017 10:36:59 +0000 (06:36 -0400)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Wed, 19 Jul 2017 19:46:43 +0000 (15:46 -0400)
CSI-2 PHY power management is only needed for major version 15 of the ISP.
Additionally, set the CCP2 PHY for previous ISP versions as well.

These changes are necessary for CCP2 support.

Signed-off-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/platform/omap3isp/ispccp2.c
drivers/media/platform/omap3isp/ispcsiphy.c

index ca095238510d5774109e114eb795c441be763dbf..588f67a89f79107aedf603afb81bf33e905f985d 100644 (file)
@@ -1141,6 +1141,7 @@ int omap3isp_ccp2_init(struct isp_device *isp)
                                "Could not get regulator vdds_csib\n");
                        ccp2->vdds_csib = NULL;
                }
+               ccp2->phy = &isp->isp_csiphy2;
        } else if (isp->revision == ISP_REVISION_15_0) {
                ccp2->phy = &isp->isp_csiphy1;
        }
index 3efa71396aae21747c5c57306d9730511fc0804b..addc6efbb033bcbffeb207e58cb0ae1926de91f0 100644 (file)
@@ -292,13 +292,16 @@ int omap3isp_csiphy_acquire(struct isp_csiphy *phy)
        if (rval < 0)
                goto done;
 
-       rval = csiphy_set_power(phy, ISPCSI2_PHY_CFG_PWR_CMD_ON);
-       if (rval) {
-               regulator_disable(phy->vdd);
-               goto done;
+       if (phy->isp->revision == ISP_REVISION_15_0) {
+               rval = csiphy_set_power(phy, ISPCSI2_PHY_CFG_PWR_CMD_ON);
+               if (rval) {
+                       regulator_disable(phy->vdd);
+                       goto done;
+               }
+
+               csiphy_power_autoswitch_enable(phy, true);
        }
 
-       csiphy_power_autoswitch_enable(phy, true);
        phy->phy_in_use = 1;
 
 done:
@@ -317,8 +320,10 @@ void omap3isp_csiphy_release(struct isp_csiphy *phy)
 
                csiphy_routing_cfg(phy, buscfg->interface, false,
                                   buscfg->bus.ccp2.phy_layer);
-               csiphy_power_autoswitch_enable(phy, false);
-               csiphy_set_power(phy, ISPCSI2_PHY_CFG_PWR_CMD_OFF);
+               if (phy->isp->revision == ISP_REVISION_15_0) {
+                       csiphy_power_autoswitch_enable(phy, false);
+                       csiphy_set_power(phy, ISPCSI2_PHY_CFG_PWR_CMD_OFF);
+               }
                regulator_disable(phy->vdd);
                phy->phy_in_use = 0;
        }