Message ID | 20230720-fpdlink-additions-v2-1-b91b1eca2ad3@ideasonboard.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: i2c: ds90ub9xx: Misc improvements | expand |
Hi Tomi, Thank you for the patch. On Thu, Jul 20, 2023 at 01:30:32PM +0300, Tomi Valkeinen wrote: > Use 'clock-noncontinuous' from DT to configure the > continuous/non-continuous clock setting for the TX ports. > > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > drivers/media/i2c/ds90ub960.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/media/i2c/ds90ub960.c b/drivers/media/i2c/ds90ub960.c > index b9a1ef63629b..a83091f47140 100644 > --- a/drivers/media/i2c/ds90ub960.c > +++ b/drivers/media/i2c/ds90ub960.c > @@ -149,6 +149,7 @@ > > #define UB960_TR_CSI_CTL 0x33 > #define UB960_TR_CSI_CTL_CSI_CAL_EN BIT(6) > +#define UB960_TR_CSI_CTL_CSI_CONTS_CLOCK BIT(1) > #define UB960_TR_CSI_CTL_CSI_ENABLE BIT(0) > > #define UB960_TR_CSI_CTL2 0x34 > @@ -485,6 +486,7 @@ struct ub960_txport { > u8 nport; /* TX port number, and index in priv->txport[] */ > > u32 num_data_lanes; > + bool non_continous_clk; > }; > > struct ub960_data { > @@ -1133,6 +1135,9 @@ static int ub960_parse_dt_txport(struct ub960_data *priv, > goto err_free_txport; > } > > + txport->non_continous_clk = vep.bus.mipi_csi2.flags & > + V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK; > + > txport->num_data_lanes = vep.bus.mipi_csi2.num_data_lanes; > > if (vep.nr_of_link_frequencies != 1) { > @@ -1744,6 +1749,9 @@ static void ub960_init_tx_port(struct ub960_data *priv, > > csi_ctl |= (4 - txport->num_data_lanes) << 4; > > + if (!txport->non_continous_clk) > + csi_ctl |= UB960_TR_CSI_CTL_CSI_CONTS_CLOCK; > + > ub960_txport_write(priv, nport, UB960_TR_CSI_CTL, csi_ctl); > } >
diff --git a/drivers/media/i2c/ds90ub960.c b/drivers/media/i2c/ds90ub960.c index b9a1ef63629b..a83091f47140 100644 --- a/drivers/media/i2c/ds90ub960.c +++ b/drivers/media/i2c/ds90ub960.c @@ -149,6 +149,7 @@ #define UB960_TR_CSI_CTL 0x33 #define UB960_TR_CSI_CTL_CSI_CAL_EN BIT(6) +#define UB960_TR_CSI_CTL_CSI_CONTS_CLOCK BIT(1) #define UB960_TR_CSI_CTL_CSI_ENABLE BIT(0) #define UB960_TR_CSI_CTL2 0x34 @@ -485,6 +486,7 @@ struct ub960_txport { u8 nport; /* TX port number, and index in priv->txport[] */ u32 num_data_lanes; + bool non_continous_clk; }; struct ub960_data { @@ -1133,6 +1135,9 @@ static int ub960_parse_dt_txport(struct ub960_data *priv, goto err_free_txport; } + txport->non_continous_clk = vep.bus.mipi_csi2.flags & + V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK; + txport->num_data_lanes = vep.bus.mipi_csi2.num_data_lanes; if (vep.nr_of_link_frequencies != 1) { @@ -1744,6 +1749,9 @@ static void ub960_init_tx_port(struct ub960_data *priv, csi_ctl |= (4 - txport->num_data_lanes) << 4; + if (!txport->non_continous_clk) + csi_ctl |= UB960_TR_CSI_CTL_CSI_CONTS_CLOCK; + ub960_txport_write(priv, nport, UB960_TR_CSI_CTL, csi_ctl); }
Use 'clock-noncontinuous' from DT to configure the continuous/non-continuous clock setting for the TX ports. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> --- drivers/media/i2c/ds90ub960.c | 8 ++++++++ 1 file changed, 8 insertions(+)