Message ID | 20190218100313.14529-4-niklas.soderlund+renesas@ragnatech.se (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Kieran Bingham |
Headers | show |
Series | rcar-csi2: Update start procedures to latest revision of datasheet | expand |
> On February 18, 2019 at 11:03 AM Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> wrote: > > > Latest datasheet (rev 1.50) clarifies that the FLD register should be > set after LINKCNT. > > Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> > --- > drivers/media/platform/rcar-vin/rcar-csi2.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/media/platform/rcar-vin/rcar-csi2.c b/drivers/media/platform/rcar-vin/rcar-csi2.c > index 50486301c21b4bae..f90b380478775015 100644 > --- a/drivers/media/platform/rcar-vin/rcar-csi2.c > +++ b/drivers/media/platform/rcar-vin/rcar-csi2.c > @@ -545,7 +545,6 @@ static int rcsi2_start_receiver(struct rcar_csi2 *priv) > rcsi2_write(priv, PHTC_REG, 0); > > /* Configure */ > - rcsi2_write(priv, FLD_REG, fld); > rcsi2_write(priv, VCDT_REG, vcdt); > if (vcdt2) > rcsi2_write(priv, VCDT2_REG, vcdt2); > @@ -576,6 +575,7 @@ static int rcsi2_start_receiver(struct rcar_csi2 *priv) > rcsi2_write(priv, PHYCNT_REG, phycnt); > rcsi2_write(priv, LINKCNT_REG, LINKCNT_MONITOR_EN | > LINKCNT_REG_MONI_PACT_EN | LINKCNT_ICLK_NONSTOP); > + rcsi2_write(priv, FLD_REG, fld); > rcsi2_write(priv, PHYCNT_REG, phycnt | PHYCNT_SHUTDOWNZ); > rcsi2_write(priv, PHYCNT_REG, phycnt | PHYCNT_SHUTDOWNZ | PHYCNT_RSTZ); Reviewed-by: Ulrich Hecht <uli+renesas@fpond.eu> CU Uli
Hi Niklas, On 18/02/2019 10:03, Niklas Söderlund wrote: > Latest datasheet (rev 1.50) clarifies that the FLD register should be > set after LINKCNT. > > Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> > --- > drivers/media/platform/rcar-vin/rcar-csi2.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/media/platform/rcar-vin/rcar-csi2.c b/drivers/media/platform/rcar-vin/rcar-csi2.c > index 50486301c21b4bae..f90b380478775015 100644 > --- a/drivers/media/platform/rcar-vin/rcar-csi2.c > +++ b/drivers/media/platform/rcar-vin/rcar-csi2.c > @@ -545,7 +545,6 @@ static int rcsi2_start_receiver(struct rcar_csi2 *priv) > rcsi2_write(priv, PHTC_REG, 0); > > /* Configure */ > - rcsi2_write(priv, FLD_REG, fld); > rcsi2_write(priv, VCDT_REG, vcdt); > if (vcdt2) > rcsi2_write(priv, VCDT2_REG, vcdt2); > @@ -576,6 +575,7 @@ static int rcsi2_start_receiver(struct rcar_csi2 *priv) Hrm ... I'm on linux-media/master and I don't see a function named rcsi2_start_receiver. What base am I missing? I presume there are rework patches here in flight. > rcsi2_write(priv, PHYCNT_REG, phycnt); > rcsi2_write(priv, LINKCNT_REG, LINKCNT_MONITOR_EN | > LINKCNT_REG_MONI_PACT_EN | LINKCNT_ICLK_NONSTOP); > + rcsi2_write(priv, FLD_REG, fld); However, I can see that this matches the flow chart in figures 25.{17,18,19,20} So Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com> > rcsi2_write(priv, PHYCNT_REG, phycnt | PHYCNT_SHUTDOWNZ); > rcsi2_write(priv, PHYCNT_REG, phycnt | PHYCNT_SHUTDOWNZ | PHYCNT_RSTZ); > >
Hi Kieran, Thanks for your feedback. On 2019-02-18 11:19:50 +0000, Kieran Bingham wrote: > Hi Niklas, > > On 18/02/2019 10:03, Niklas Söderlund wrote: > > Latest datasheet (rev 1.50) clarifies that the FLD register should be > > set after LINKCNT. > > > > Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> > > --- > > drivers/media/platform/rcar-vin/rcar-csi2.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/media/platform/rcar-vin/rcar-csi2.c b/drivers/media/platform/rcar-vin/rcar-csi2.c > > index 50486301c21b4bae..f90b380478775015 100644 > > --- a/drivers/media/platform/rcar-vin/rcar-csi2.c > > +++ b/drivers/media/platform/rcar-vin/rcar-csi2.c > > @@ -545,7 +545,6 @@ static int rcsi2_start_receiver(struct rcar_csi2 *priv) > > rcsi2_write(priv, PHTC_REG, 0); > > > > /* Configure */ > > - rcsi2_write(priv, FLD_REG, fld); > > rcsi2_write(priv, VCDT_REG, vcdt); > > if (vcdt2) > > rcsi2_write(priv, VCDT2_REG, vcdt2); > > @@ -576,6 +575,7 @@ static int rcsi2_start_receiver(struct rcar_csi2 *priv) > > Hrm ... I'm on linux-media/master and I don't see a function named > rcsi2_start_receiver. > > What base am I missing? I presume there are rework patches here in flight. Yes it's patches in flight, [PATCH] rcar-csi2: Use standby mode instead of resetting > > > > rcsi2_write(priv, PHYCNT_REG, phycnt); > > rcsi2_write(priv, LINKCNT_REG, LINKCNT_MONITOR_EN | > > LINKCNT_REG_MONI_PACT_EN | LINKCNT_ICLK_NONSTOP); > > + rcsi2_write(priv, FLD_REG, fld); > > However, I can see that this matches the flow chart in figures > 25.{17,18,19,20} > > So > > Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com> Thanks! > > > > rcsi2_write(priv, PHYCNT_REG, phycnt | PHYCNT_SHUTDOWNZ); > > rcsi2_write(priv, PHYCNT_REG, phycnt | PHYCNT_SHUTDOWNZ | PHYCNT_RSTZ); > > > > > > > -- > Regards > -- > Kieran
diff --git a/drivers/media/platform/rcar-vin/rcar-csi2.c b/drivers/media/platform/rcar-vin/rcar-csi2.c index 50486301c21b4bae..f90b380478775015 100644 --- a/drivers/media/platform/rcar-vin/rcar-csi2.c +++ b/drivers/media/platform/rcar-vin/rcar-csi2.c @@ -545,7 +545,6 @@ static int rcsi2_start_receiver(struct rcar_csi2 *priv) rcsi2_write(priv, PHTC_REG, 0); /* Configure */ - rcsi2_write(priv, FLD_REG, fld); rcsi2_write(priv, VCDT_REG, vcdt); if (vcdt2) rcsi2_write(priv, VCDT2_REG, vcdt2); @@ -576,6 +575,7 @@ static int rcsi2_start_receiver(struct rcar_csi2 *priv) rcsi2_write(priv, PHYCNT_REG, phycnt); rcsi2_write(priv, LINKCNT_REG, LINKCNT_MONITOR_EN | LINKCNT_REG_MONI_PACT_EN | LINKCNT_ICLK_NONSTOP); + rcsi2_write(priv, FLD_REG, fld); rcsi2_write(priv, PHYCNT_REG, phycnt | PHYCNT_SHUTDOWNZ); rcsi2_write(priv, PHYCNT_REG, phycnt | PHYCNT_SHUTDOWNZ | PHYCNT_RSTZ);
Latest datasheet (rev 1.50) clarifies that the FLD register should be set after LINKCNT. Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> --- drivers/media/platform/rcar-vin/rcar-csi2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)