diff --git a/drivers/misc/rk628/rk628.h b/drivers/misc/rk628/rk628.h index 98605c0ea526..23945906415a 100644 --- a/drivers/misc/rk628/rk628.h +++ b/drivers/misc/rk628/rk628.h @@ -60,6 +60,10 @@ #define GRF_GPIO_RXDDC_SDA_SEL(x) UPDATE(x, 6, 6) #define GRF_GPIO_RXDDC_SCL_SEL_MASK BIT(5) #define GRF_GPIO_RXDDC_SCL_SEL(x) UPDATE(x, 5, 5) +#define GRF_DPHY_CH1_EN_MASK BIT(1) +#define GRF_DPHY_CH1_EN(x) UPDATE(x, 1, 1) +#define GRF_AS_DSIPHY_MASK BIT(0) +#define GRF_AS_DSIPHY(x) UPDATE(x, 0, 0) #define GRF_SCALER_CON0 0x0010 #define SCL_VER_DOWN_MODE(x) HIWORD_UPDATE(x, 8, 8) #define SCL_HOR_DOWN_MODE(x) HIWORD_UPDATE(x, 7, 7) diff --git a/drivers/misc/rk628/rk628_dsi.c b/drivers/misc/rk628/rk628_dsi.c index 37c6b8237a06..012824cfdc39 100644 --- a/drivers/misc/rk628/rk628_dsi.c +++ b/drivers/misc/rk628/rk628_dsi.c @@ -1215,6 +1215,12 @@ void rk628_mipi_dsi_pre_enable(struct rk628 *rk628) if (rk628->version == RK628F_VERSION) { mask = SW_OUTPUT_COMBTX_MODE_MASK; val = SW_OUTPUT_COMBTX_MODE(OUTPUT_MODE_DSI - 2); + + rk628_i2c_update_bits(rk628, GRF_SYSTEM_CON3, + GRF_DPHY_CH1_EN_MASK | + GRF_AS_DSIPHY_MASK, + (dsi->slave ? GRF_DPHY_CH1_EN(1) : 0) | + GRF_AS_DSIPHY(1)); } rk628_i2c_update_bits(rk628, GRF_SYSTEM_CON0, mask, val);