Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions drivers/media/i2c/imx477.c
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,13 @@ MODULE_PARM_DESC(fstrobe_delay, "Set fstrobe delay from end all lines starting t
#define IMX477_REG_XVS_IO_CTRL CCI_REG8(0x3040)
#define IMX477_REG_EXTOUT_EN CCI_REG8(0x4b81)

/* Horizontal sync output */
#define IMX477_REG_OUTIF2 CCI_REG8(0x428a)
#define IMX477_REG_CKTESTSEL CCI_REG8(0x42b0)
#define IMX477_REG_MNTTEST3_SEL_H CCI_REG8(0x4bdc)
#define IMX477_REG_MNTTEST3_SEL_L CCI_REG8(0x4bdd)
#define IMX477_REG_TESTMNT2 CCI_REG8(0x42aa)

#define IMX477_REG_ADBIT_MODE CCI_REG8(0x3f0d)
/* Temperature sensor */
#define IMX477_REG_TEMP_SEN_CTL CCI_REG8(0x0138)
Expand Down Expand Up @@ -1655,6 +1662,18 @@ static int imx477_start_streaming(struct imx477 *imx477)
&ret);
cci_write(imx477->regmap, IMX477_REG_MC_MODE, (tm > 0) ? 1 : 0, &ret);

/* in trigger mode 1 we also enable hsync output, for test use only */
if (tm == 1) {
cci_write(imx477->regmap, IMX477_REG_OUTIF2, 0, &ret);
cci_write(imx477->regmap, IMX477_REG_MNTTEST3_SEL_H, 0,
&ret);
cci_write(imx477->regmap, IMX477_REG_MNTTEST3_SEL_L, 0x15,
&ret);
cci_write(imx477->regmap, IMX477_REG_TESTMNT2, 0xfd, &ret);
}
cci_write(imx477->regmap, IMX477_REG_CKTESTSEL, (tm == 1) ? 0 : 7,
&ret);

/* set stream on register */
cci_write(imx477->regmap, IMX477_REG_MODE_SELECT,
IMX477_MODE_STREAMING, &ret);
Expand Down
Loading