mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH v2] aiodev: imx_thermal: fix breakage after device tree sync
@ 2023-09-11 12:48 Ahmad Fatoum
  2023-09-11 12:54 ` Marco Felsch
  2023-09-12  8:45 ` Sascha Hauer
  0 siblings, 2 replies; 3+ messages in thread
From: Ahmad Fatoum @ 2023-09-11 12:48 UTC (permalink / raw)
  To: barebox; +Cc: mfe, Ahmad Fatoum

fsl,tempmon-data is a deprecated property that has been replaced
upstream by a NVMEM cell pointing at the calibration value and so
made it into barebox breaking the driver.

Switch to using the new property to fix the regression.

We do not keep support for the old binding around as it would be dead code:
barebox, unlike Linux, is always bundled with a device tree originating
from its build tree and so we only need to ensure the driver matches that
version.

Fixes: abef60363d8e ("dts: update to v5.8-rc1")
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
v1 -> v2:
  - amend commit message with explanation why old binding is dropped.
---
 drivers/aiodev/imx_thermal.c | 25 ++++---------------------
 1 file changed, 4 insertions(+), 21 deletions(-)

diff --git a/drivers/aiodev/imx_thermal.c b/drivers/aiodev/imx_thermal.c
index 3263519cb241..2693ad05e0e5 100644
--- a/drivers/aiodev/imx_thermal.c
+++ b/drivers/aiodev/imx_thermal.c
@@ -22,6 +22,7 @@
 #include <linux/math64.h>
 #include <linux/log2.h>
 #include <linux/clk.h>
+#include <linux/nvmem-consumer.h>
 #include <mach/imx/imx6-anadig.h>
 #include <io.h>
 #include <aiodev.h>
@@ -29,7 +30,6 @@
 
 #define FACTOR0			10000000
 #define MEASURE_FREQ		327
-#define OCOTP_ANA1_OFFSET      (0xE * sizeof(uint32_t))
 
 struct imx_thermal_data {
 	int c1, c2;
@@ -109,30 +109,13 @@ static int imx_thermal_read(struct aiochannel *chan, int *val)
 static int imx_thermal_probe(struct device *dev)
 {
 	uint32_t ocotp_ana1;
-	struct device_node *node;
 	struct imx_thermal_data *imx_thermal;
-	struct cdev *ocotp;
 	int t1, n1, t2, n2;
 	int ret;
 
-	node = of_parse_phandle(dev->of_node, "fsl,tempmon-data", 0);
-	if (!node) {
-		dev_err(dev, "No calibration data source\n");
-		return -ENODEV;
-	}
-
-	ocotp = cdev_by_device_node(node);
-	if (!ocotp) {
-		dev_err(dev, "No OCOTP character device\n");
-		return -ENODEV;
-	}
-
-	ret = cdev_read(ocotp, &ocotp_ana1, sizeof(ocotp_ana1),
-			OCOTP_ANA1_OFFSET, 0);
-	if (ret != sizeof(ocotp_ana1)) {
-		dev_err(dev, "Failed to read calibration data\n");
-		return ret < 0 ? ret : -EIO;
-	}
+	ret = nvmem_cell_read_variable_le_u32(dev, "calib", &ocotp_ana1);
+	if (ret)
+		return ret;
 
 	imx_thermal = xzalloc(sizeof(*imx_thermal));
 	imx_thermal->base = syscon_base_lookup_by_phandle(dev->of_node,
-- 
2.39.2




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] aiodev: imx_thermal: fix breakage after device tree sync
  2023-09-11 12:48 [PATCH v2] aiodev: imx_thermal: fix breakage after device tree sync Ahmad Fatoum
@ 2023-09-11 12:54 ` Marco Felsch
  2023-09-12  8:45 ` Sascha Hauer
  1 sibling, 0 replies; 3+ messages in thread
From: Marco Felsch @ 2023-09-11 12:54 UTC (permalink / raw)
  To: Ahmad Fatoum; +Cc: barebox

On 23-09-11, Ahmad Fatoum wrote:
> fsl,tempmon-data is a deprecated property that has been replaced
> upstream by a NVMEM cell pointing at the calibration value and so
> made it into barebox breaking the driver.
> 
> Switch to using the new property to fix the regression.
> 
> We do not keep support for the old binding around as it would be dead code:
> barebox, unlike Linux, is always bundled with a device tree originating
> from its build tree and so we only need to ensure the driver matches that
> version.
> 
> Fixes: abef60363d8e ("dts: update to v5.8-rc1")
> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>

Reviewed-by: Marco Felsch <m.felsch@pengutronix.de>



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] aiodev: imx_thermal: fix breakage after device tree sync
  2023-09-11 12:48 [PATCH v2] aiodev: imx_thermal: fix breakage after device tree sync Ahmad Fatoum
  2023-09-11 12:54 ` Marco Felsch
@ 2023-09-12  8:45 ` Sascha Hauer
  1 sibling, 0 replies; 3+ messages in thread
From: Sascha Hauer @ 2023-09-12  8:45 UTC (permalink / raw)
  To: Ahmad Fatoum; +Cc: barebox, mfe

On Mon, Sep 11, 2023 at 02:48:08PM +0200, Ahmad Fatoum wrote:
> fsl,tempmon-data is a deprecated property that has been replaced
> upstream by a NVMEM cell pointing at the calibration value and so
> made it into barebox breaking the driver.
> 
> Switch to using the new property to fix the regression.
> 
> We do not keep support for the old binding around as it would be dead code:
> barebox, unlike Linux, is always bundled with a device tree originating
> from its build tree and so we only need to ensure the driver matches that
> version.

This is not entirely true. With board-dt-2nd you would still be able
to start a barebox with another dt possibly using the old binding.

Nevertheless I think this rather exotic case doesn't justify carrying
around compatibility cruft, so: Applied, thanks

Sascha


-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-09-12  8:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-11 12:48 [PATCH v2] aiodev: imx_thermal: fix breakage after device tree sync Ahmad Fatoum
2023-09-11 12:54 ` Marco Felsch
2023-09-12  8:45 ` Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox