phy: exynos-mipi-video: Simplify code by using regmap_update_bits()
authorSylwester Nawrocki <s.nawrocki@samsung.com>
Fri, 6 Apr 2018 14:27:05 +0000 (16:27 +0200)
committerJunghoon Kim <jhoon20.kim@samsung.com>
Thu, 14 Feb 2019 05:57:26 +0000 (14:57 +0900)
Change-Id: I89144594f128b73a3c0c38ab7fd2536b34ef9768
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
drivers/phy/samsung/phy-exynos-mipi-video.c

index c198886..00d8959 100644 (file)
@@ -231,33 +231,27 @@ struct exynos_mipi_video_phy {
 static int __set_phy_state(const struct exynos_mipi_phy_desc *data,
                           struct exynos_mipi_video_phy *state, unsigned int on)
 {
-       u32 val;
+       struct regmap *enable_map = state->regmaps[data->enable_map];
+       struct regmap *resetn_map = state->regmaps[data->resetn_map];
 
        spin_lock(&state->slock);
 
        /* disable in PMU sysreg */
        if (!on && data->coupled_phy_id >= 0 &&
-           state->phys[data->coupled_phy_id].phy->power_count == 0) {
-               regmap_read(state->regmaps[data->enable_map], data->enable_reg,
-                           &val);
-               val &= ~data->enable_val;
-               regmap_write(state->regmaps[data->enable_map], data->enable_reg,
-                            val);
-       }
-
+           state->phys[data->coupled_phy_id].phy->power_count == 0)
+               regmap_update_bits(enable_map, data->enable_reg,
+                                  data->enable_val, 0);
        /* PHY reset */
-       regmap_read(state->regmaps[data->resetn_map], data->resetn_reg, &val);
-       val = on ? (val | data->resetn_val) : (val & ~data->resetn_val);
-       regmap_write(state->regmaps[data->resetn_map], data->resetn_reg, val);
-
+       if (on)
+               regmap_update_bits(resetn_map, data->resetn_reg,
+                                  data->resetn_val, data->resetn_val);
+       else
+               regmap_update_bits(resetn_map, data->resetn_reg,
+                                  data->resetn_val, 0);
        /* enable in PMU sysreg */
-       if (on) {
-               regmap_read(state->regmaps[data->enable_map], data->enable_reg,
-                           &val);
-               val |= data->enable_val;
-               regmap_write(state->regmaps[data->enable_map], data->enable_reg,
-                            val);
-       }
+       if (on)
+               regmap_update_bits(enable_map, data->enable_reg,
+                                  data->enable_val, data->enable_val);
 
        spin_unlock(&state->slock);