* [PATCH v4 0/2] sy7636a: power the panel only during updates @ 2026-11-12 20:52 Pablo Mazzini 2026-11-12 20:52 ` [PATCH v4 1/2] hwmon: sy7636a: read the temperature only while the rails are on Pablo Mazzini 0 siblings, 1 reply; 3+ messages in thread From: Pablo Mazzini @ 2026-11-12 20:52 UTC (permalink / raw) To: Guenter Roeck, Mark Brown, Frank Li, Sascha Hauer Cc: Pablo Mazzini, Alistair Francis, Andreas Kemnade, Pengutronix Kernel Team, Fabio Estevam, linux-hwmon, imx, linux-arm-kernel, linux-kernel The SY7636A hwmon driver keeps VCOM on from probe, so a display driver can not power the panel only during updates. Read the temperature only while the rails are on instead. This is based on regulator for-7.5, which has the rest of the series. Patch 1 depends on "regulator: sy7636a: bind to the I2C device directly" there. Tested on a PocketBook Verse (B288). v4: - drop the patches applied by Mark and Guenter - patch 1: keep the hwmon name (Guenter) v3: - drop the applied patches 1-3 - new patch: no wait when power good is already high (Mark) - move the I2C binding before the hwmon read change, so the hwmon driver only probes once vin is on (Andreas) - explain in a comment why power good gates the read, and its limitation (Guenter, Andreas) v2: - drop the DT patch keeping VCOM always-on (Andreas) - only wait for power good, VCOM_EN stays as it was (Andreas) - new patch: fix negative temperatures - keep the temperature in drivers/hwmon as an auxiliary driver of the regulator, instead of moving it into the regulator driver (Guenter, Andreas) - no VCOM enable at probe, which also removes the probe race - read power good and the temperature in one transfer (Andreas) Pablo Mazzini (2): hwmon: sy7636a: read the temperature only while the rails are on ARM: imx_v6_v7_defconfig: drop the SY7636A MFD option arch/arm/configs/imx_v6_v7_defconfig | 1 - drivers/hwmon/sy7636a-hwmon.c | 35 +++++++++++++++++++--------- 2 files changed, 24 insertions(+), 12 deletions(-) base-commit: 89b552ff49551960b9e270feee888a0298a12d94 -- 2.52.0 ^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v4 1/2] hwmon: sy7636a: read the temperature only while the rails are on 2026-11-12 20:52 [PATCH v4 0/2] sy7636a: power the panel only during updates Pablo Mazzini @ 2026-11-12 20:52 ` Pablo Mazzini 2026-11-12 21:04 ` sashiko-bot 0 siblings, 1 reply; 3+ messages in thread From: Pablo Mazzini @ 2026-11-12 20:52 UTC (permalink / raw) To: Guenter Roeck Cc: Pablo Mazzini, Alistair Francis, Andreas Kemnade, Mark Brown, linux-hwmon, linux-kernel The driver enables VCOM at probe, which keeps the panel's high voltage rails on for good. Read the temperature only while the rails are on, when the chip samples it, and return -ENODATA otherwise. Read power good with it in one transfer, so the value can not be from before the first sample or after the rails went off. Signed-off-by: Pablo Mazzini <pmazzini@gmail.com> --- drivers/hwmon/sy7636a-hwmon.c | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/drivers/hwmon/sy7636a-hwmon.c b/drivers/hwmon/sy7636a-hwmon.c index a0d0b4119bb3..a8bfbf1716a1 100644 --- a/drivers/hwmon/sy7636a-hwmon.c +++ b/drivers/hwmon/sy7636a-hwmon.c @@ -9,26 +9,43 @@ */ #include <linux/auxiliary_bus.h> +#include <linux/bits.h> #include <linux/err.h> #include <linux/hwmon.h> #include <linux/module.h> #include <linux/regmap.h> -#include <linux/regulator/machine.h> -#define SY7636A_REG_TERMISTOR_READOUT 0x08 +#define SY7636A_REG_FAULT_FLAG 0x07 +#define SY7636A_FAULT_FLAG_PG BIT(0) static int sy7636a_read(struct device *dev, enum hwmon_sensor_types type, u32 attr, int channel, long *temp) { struct regmap *regmap = dev_get_drvdata(dev); - int ret, reg_val; - - ret = regmap_read(regmap, - SY7636A_REG_TERMISTOR_READOUT, ®_val); + u8 buf[2]; + int ret; + + /* + * The thermistor is sampled while ON_OFF is set, but the first sample + * is only ready after the ADC sampling and conversion time (ADC_SPL + + * ADC_DEL in the datasheet); until then it holds its reset value, 0. + * PG is only set once all rails are up, after the first sample, so + * read it in the same transfer and report the temperature only while + * it is set. + * + * With ON_OFF set but PG low (rails still ramping up, or a fault), no + * temperature is reported even if one may be available. That is + * accepted: the display driver reads the temperature only while it + * holds the rails on, after power good. + */ + ret = regmap_bulk_read(regmap, SY7636A_REG_FAULT_FLAG, buf, sizeof(buf)); if (ret) return ret; - *temp = reg_val * 1000; + if (!(buf[0] & SY7636A_FAULT_FLAG_PG)) + return -ENODATA; + + *temp = (s8)buf[1] * 1000; return 0; } @@ -72,10 +89,6 @@ static int sy7636a_sensor_probe(struct auxiliary_device *adev, if (!regmap) return -ENODEV; - err = devm_regulator_get_enable(&adev->dev, "vcom"); - if (err) - return err; - hwmon_dev = devm_hwmon_device_register_with_info(&adev->dev, "sy7636a_temperature", regmap, &sy7636a_chip_info, NULL); -- 2.52.0 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v4 1/2] hwmon: sy7636a: read the temperature only while the rails are on 2026-11-12 20:52 ` [PATCH v4 1/2] hwmon: sy7636a: read the temperature only while the rails are on Pablo Mazzini @ 2026-11-12 21:04 ` sashiko-bot 0 siblings, 0 replies; 3+ messages in thread From: sashiko-bot @ 2026-11-12 21:04 UTC (permalink / raw) To: Pablo Mazzini; +Cc: linux-hwmon > The driver enables VCOM at probe, which keeps the panel's high voltage > rails on for good. Read the temperature only while the rails are on, when > the chip samples it, and return -ENODATA otherwise. Read power good with > it in one transfer, so the value can not be from before the first sample > or after the rails went off. > > Signed-off-by: Pablo Mazzini <pmazzini@gmail.com> Sashiko has reviewed this patch and found no issues. -- Sashiko AI review · https://sashiko.dev/#/patchset/20261112205228.42630-1-pmazzini@gmail.com?part=1 ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-11-12 21:04 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-11-12 20:52 [PATCH v4 0/2] sy7636a: power the panel only during updates Pablo Mazzini 2026-11-12 20:52 ` [PATCH v4 1/2] hwmon: sy7636a: read the temperature only while the rails are on Pablo Mazzini 2026-11-12 21:04 ` sashiko-bot
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox