media: i2c: rk628: add txdata and txbytehs reset when soft reset

Signed-off-by: Jianwei Fan <jianwei.fan@rock-chips.com>
Change-Id: I24c738e91107de252cf41270f7aafd3caa51fff6
This commit is contained in:
Jianwei Fan
2024-04-08 14:25:53 +08:00
committed by 范建威
parent dfb6365006
commit 75f62d85a6

View File

@@ -669,19 +669,29 @@ static void rk628_csi1_cru_reset(struct v4l2_subdev *sd)
rk628_control_deassert(csi->rk628, RGU_CSI1);
}
static void rk628_mipi_txdata_reset(struct v4l2_subdev *sd)
{
struct rk628_csi *csi = to_csi(sd);
rk628_control_assert(csi->rk628, RGU_TXDATA);
rk628_control_assert(csi->rk628, RGU_TXBYTEHS);
usleep_range(1000, 1100);
rk628_control_deassert(csi->rk628, RGU_TXDATA);
rk628_control_deassert(csi->rk628, RGU_TXBYTEHS);
}
static void rk628_csi_soft_reset(struct v4l2_subdev *sd)
{
struct rk628_csi *csi = to_csi(sd);
rk628_i2c_write(csi->rk628, CSITX_SYS_CTRL0_IMD, 0x1);
usleep_range(1000, 1100);
rk628_i2c_write(csi->rk628, CSITX_SYS_CTRL0_IMD, 0x0);
if (csi->rk628->version >= RK628F_VERSION) {
if (csi->rk628->version >= RK628F_VERSION)
rk628_i2c_write(csi->rk628, CSITX1_SYS_CTRL0_IMD, 0x1);
usleep_range(1000, 1100);
rk628_mipi_txdata_reset(sd);
rk628_i2c_write(csi->rk628, CSITX_SYS_CTRL0_IMD, 0x0);
if (csi->rk628->version >= RK628F_VERSION)
rk628_i2c_write(csi->rk628, CSITX1_SYS_CTRL0_IMD, 0x0);
}
}
static void enable_csitx(struct v4l2_subdev *sd)