Skip to content

Commit 9c30fcd

Browse files
6by9pelwell
authored andcommitted
media: imx708: Support configuring continuous clock from DT
The driver was always using non-continuous clock mode. Add support for selecting continuous clock mode as well. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
1 parent ea3c104 commit 9c30fcd

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

drivers/media/i2c/imx708.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,9 @@ MODULE_PARM_DESC(qbc_adjust, "Quad Bayer broken line correction strength [0,2-5]
112112
#define IMX708_REG_MID_ANALOG_GAIN 0x3118
113113
#define IMX708_REG_SHT_ANALOG_GAIN 0x0216
114114

115+
#define IMX708_REG_CLKLANE_BLANK 0x3220
116+
#define IMX708_CLKLANE_BLANK_NONCONT BIT(0)
117+
115118
/* QBC Re-mosaic broken line correction registers */
116119
#define IMX708_LPF_INTENSITY_EN 0xC428
117120
#define IMX708_LPF_INTENSITY_ENABLED 0x00
@@ -866,6 +869,8 @@ struct imx708 {
866869
unsigned int long_exp_shift;
867870

868871
unsigned int link_freq_idx;
872+
873+
unsigned int csi_flags;
869874
};
870875

871876
static inline struct imx708 *to_imx708(struct v4l2_subdev *_sd)
@@ -1499,6 +1504,16 @@ static int imx708_start_streaming(struct imx708 *imx708)
14991504
return ret;
15001505
}
15011506

1507+
ret = imx708_write_reg(imx708, IMX708_REG_CLKLANE_BLANK,
1508+
IMX708_REG_VALUE_08BIT,
1509+
imx708->csi_flags & V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK ?
1510+
IMX708_CLKLANE_BLANK_NONCONT : 0);
1511+
if (ret) {
1512+
dev_err(&client->dev, "%s failed to set clock lane mode\n",
1513+
__func__);
1514+
return ret;
1515+
}
1516+
15021517
ret = imx708_read_reg(imx708, IMX708_REG_BASE_SPC_GAINS_L,
15031518
IMX708_REG_VALUE_08BIT, &val);
15041519
if (ret == 0 && val == 0x40) {
@@ -1972,6 +1987,8 @@ static int imx708_check_hwcfg(struct device *dev, struct imx708 *imx708)
19721987
goto error_out;
19731988
}
19741989

1990+
imx708->csi_flags = ep_cfg.bus.mipi_csi2.flags;
1991+
19751992
ret = 0;
19761993

19771994
error_out:

0 commit comments

Comments
 (0)