From b000b22392a9111c6231a2e461ecf75f8f2604dd Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Mon, 2 Jun 2025 14:00:56 +0100 Subject: [PATCH] drivers: media: imx500: Enable sensor temperature monitoring The register needs to be disbled before loading any firmware, otherwise the upload fails for unknown reasons. Re-enable before starting the sensor streaming. Signed-off-by: Naushir Patuck --- drivers/media/i2c/imx500.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/media/i2c/imx500.c b/drivers/media/i2c/imx500.c index a16b577f483b6d..8bc39b019db490 100644 --- a/drivers/media/i2c/imx500.c +++ b/drivers/media/i2c/imx500.c @@ -37,6 +37,8 @@ #define IMX500_IMAGE_ONLY_FALSE 0x00 #define IMX500_IMAGE_ONLY_TRUE 0x01 +#define IMX500_REG_SENSOR_TEMP_CTRL CCI_REG8(0x0138) + #define IMX500_REG_ORIENTATION CCI_REG8(0x101) #define IMX500_XCLK_FREQ 24000000 @@ -2505,6 +2507,14 @@ static int imx500_start_streaming(struct imx500 *imx500) if (ret < 0) return ret; + /* + * Disable the temperature sensor here - must be done else loading any + * firmware fails... + * + * Re-enable before stream-on below. + */ + cci_write(imx500->regmap, IMX500_REG_SENSOR_TEMP_CTRL, 0, &ret); + ret = cci_write(imx500->regmap, IMX500_REG_IMAGE_ONLY_MODE, imx500->fw_network ? IMX500_IMAGE_ONLY_FALSE : IMX500_IMAGE_ONLY_TRUE, @@ -2599,6 +2609,9 @@ static int imx500_start_streaming(struct imx500 *imx500) /* Disable any sensor startup frame drops. This must be written here! */ cci_write(imx500->regmap, CCI_REG8(0xD405), 0, &ret); + /* Re-enable the temperature sensor. */ + cci_write(imx500->regmap, IMX500_REG_SENSOR_TEMP_CTRL, 1, &ret); + /* set stream on register */ cci_write(imx500->regmap, IMX500_REG_MODE_SELECT, IMX500_MODE_STREAMING, &ret);