From 83793e9062a9ec7b516434671af6fc46325a61b8 Mon Sep 17 00:00:00 2001 From: Nick Hollinghurst Date: Mon, 29 Jun 2026 14:15:05 +0100 Subject: [PATCH] media: i2c: imx477: Enable HSYNC output on GPO when trigger_mode=1 This is for test purposes only (it is not needed for camera sync). Signed-off-by: Nick Hollinghurst --- drivers/media/i2c/imx477.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/media/i2c/imx477.c b/drivers/media/i2c/imx477.c index 04a77d41f08373..24c9c12b79efe2 100644 --- a/drivers/media/i2c/imx477.c +++ b/drivers/media/i2c/imx477.c @@ -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) @@ -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);