All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eliav Farber <farbere@amazon.com>
To: <jdelvare@suse.com>, <linux@roeck-us.net>, <robh+dt@kernel.org>,
	<p.zabel@pengutronix.de>, <rtanwar@maxlinear.com>,
	<linux-hwmon@vger.kernel.org>, <devicetree@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>
Cc: <farbere@amazon.com>, <hhhawa@amazon.com>, <jonnyc@amazon.com>,
	<andriy.shevchenko@intel.com>
Subject: [PATCH v4 21/21] hwmon: (mr75203) add debugfs to read and write temperature coefficients
Date: Tue, 6 Sep 2022 08:33:56 +0000	[thread overview]
Message-ID: <20220906083356.21067-22-farbere@amazon.com> (raw)
In-Reply-To: <20220906083356.21067-1-farbere@amazon.com>

This change adds debugfs to read and write temperature sensor coefficients
- g, h, j and cal5.

The coefficients can vary between product and product, so it can be very
useful to be able to modify them on the fly during the calibration
process.

e.g.:

cat /sys/kernel/debug/940f23d0000.pvt/ts_coeff_cal5
4096

echo 83000 > sys/kernel/debug/940f23d0000.pvt/ts_coeff_g

Signed-off-by: Eliav Farber <farbere@amazon.com>
---
V4 -> V3:
- Remove check of the debugfs_create_dir() return value.
- Use debugfs_create_u32() instead of debugfs_create_file().
- Return devm_add_action_or_reset() without checking return value and printing
  an error message on failure.

 drivers/hwmon/mr75203.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/drivers/hwmon/mr75203.c b/drivers/hwmon/mr75203.c
index 8baa99a9ea83..e3670075fae4 100644
--- a/drivers/hwmon/mr75203.c
+++ b/drivers/hwmon/mr75203.c
@@ -9,6 +9,7 @@
  */
 #include <linux/bits.h>
 #include <linux/clk.h>
+#include <linux/debugfs.h>
 #include <linux/hwmon.h>
 #include <linux/module.h>
 #include <linux/mod_devicetable.h>
@@ -170,6 +171,7 @@ struct pvt_device {
 	struct regmap		*v_map;
 	struct clk		*clk;
 	struct reset_control	*rst;
+	struct dentry		*dbgfs_dir;
 	struct voltage_device	*vd;
 	struct voltage_channels	vm_channels;
 	struct temp_coeff	ts_coeff;
@@ -179,6 +181,30 @@ struct pvt_device {
 	u32			ip_freq;
 };
 
+static void devm_pvt_ts_dbgfs_remove(void *data)
+{
+	struct pvt_device *pvt = (struct pvt_device *)data;
+
+	debugfs_remove_recursive(pvt->dbgfs_dir);
+	pvt->dbgfs_dir = NULL;
+}
+
+static int pvt_ts_dbgfs_create(struct pvt_device *pvt, struct device *dev)
+{
+	pvt->dbgfs_dir = debugfs_create_dir(dev_name(dev), NULL);
+
+	debugfs_create_u32("ts_coeff_h", 0644, pvt->dbgfs_dir,
+			   &pvt->ts_coeff.h);
+	debugfs_create_u32("ts_coeff_g", 0644, pvt->dbgfs_dir,
+			   &pvt->ts_coeff.g);
+	debugfs_create_u32("ts_coeff_j", 0644, pvt->dbgfs_dir,
+			   &pvt->ts_coeff.j);
+	debugfs_create_u32("ts_coeff_cal5", 0644, pvt->dbgfs_dir,
+			   &pvt->ts_coeff.cal5);
+
+	return devm_add_action_or_reset(dev, devm_pvt_ts_dbgfs_remove, pvt);
+}
+
 static umode_t pvt_is_visible(const void *data, enum hwmon_sensor_types type,
 			      u32 attr, int channel)
 {
@@ -803,6 +829,8 @@ static int mr75203_probe(struct platform_device *pdev)
 		memset32(temp_config, HWMON_T_INPUT, ts_num);
 		pvt_temp.config = temp_config;
 		pvt_info[index++] = &pvt_temp;
+
+		pvt_ts_dbgfs_create(pvt, dev);
 	}
 
 	if (pd_num) {
-- 
2.37.1


  parent reply	other threads:[~2022-09-06  8:40 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-06  8:33 [PATCH v4 00/21] Variety of fixes and new features for mr75203 driver Eliav Farber
2022-09-06  8:33 ` [PATCH v4 01/21] hwmon: (mr75203) fix coding style space errors Eliav Farber
2022-09-06 16:52   ` Guenter Roeck
2022-09-07  6:50     ` Farber, Eliav
2022-09-07 14:42       ` Andy Shevchenko
2022-09-07 15:57         ` Guenter Roeck
2022-09-06  8:33 ` [PATCH v4 02/21] dt-bindings: hwmon: (mr75203) fix "intel,vm-map" property to be optional Eliav Farber
2022-09-06 16:53   ` Guenter Roeck
2022-09-07  6:28     ` [PATCH v4 02/21] dt-bindings: hwmon: (mr75203) fix "intel, vm-map" " Farber, Eliav
2022-09-07 16:00       ` Guenter Roeck
2022-09-06  8:33 ` [PATCH v4 03/21] hwmon: (mr75203) fix VM sensor allocation when "intel,vm-map" not defined Eliav Farber
2022-09-06  8:33 ` [PATCH v4 04/21] hwmon: (mr75203) update pvt->v_num and vm_num to the actual number of used sensors Eliav Farber
2022-09-06  8:33 ` [PATCH v4 05/21] hwmon: (mr75203) fix voltage equation for negative source input Eliav Farber
2022-09-06 12:03   ` Andy Shevchenko
2022-09-06 13:27     ` Farber, Eliav
2022-09-06 14:01       ` Andy Shevchenko
2022-09-06  8:33 ` [PATCH v4 06/21] hwmon: (mr75203) fix multi-channel voltage reading Eliav Farber
2022-09-06 14:10   ` Andy Shevchenko
2022-09-07  5:15     ` Farber, Eliav
2022-09-07 14:41       ` Andy Shevchenko
2022-09-06  8:33 ` [PATCH v4 07/21] hwmon: (mr75203) enable polling for all VM channels Eliav Farber
2022-09-06  8:33 ` [PATCH v4 08/21] dt-bindings: hwmon: (mr75203) add description for Moortec's PVT controller Eliav Farber
2022-09-08 22:40   ` Rob Herring
2022-09-06  8:33 ` [PATCH v4 09/21] dt-bindings: hwmon: (mr75203) change "resets" property to be optional Eliav Farber
2022-09-08 22:40   ` Rob Herring
2022-09-06  8:33 ` [PATCH v4 10/21] hwmon: (mr75203) skip reset-control deassert for SOCs that don't support it Eliav Farber
2022-09-06  8:33 ` [PATCH v4 11/21] dt-bindings: vendor-prefixes: add vendor prefix for Moortec Eliav Farber
2022-09-06  8:33 ` [PATCH v4 12/21] dt-bindings: hwmon: (mr75203) add "moortec,vm-active-channels" property Eliav Farber
2022-09-06 17:08   ` Guenter Roeck
2022-09-07  5:21     ` [PATCH v4 12/21] dt-bindings: hwmon: (mr75203) add "moortec, vm-active-channels" property Farber, Eliav
2022-09-06  8:33 ` [PATCH v4 13/21] hwmon: (mr75203) add VM active channel support Eliav Farber
2022-09-06  8:33 ` [PATCH v4 14/21] dt-bindings: hwmon: (mr75203) add "moortec,vm-pre-scaler-x2" property Eliav Farber
2022-09-06  8:33 ` [PATCH v4 15/21] hwmon: (mr75203) add VM pre-scaler x2 support Eliav Farber
2022-09-06  8:33 ` [PATCH v4 16/21] hwmon: (mr75203) modify the temperature equation according to series 5 datasheet Eliav Farber
2022-09-06  8:33 ` [PATCH v4 17/21] dt-bindings: hwmon: (mr75203) add "moortec,ts-series" property Eliav Farber
2022-09-06  8:33 ` [PATCH v4 18/21] hwmon: (mr75203) add support for series 6 temperature equation Eliav Farber
2022-09-06  8:33 ` [PATCH v4 19/21] dt-bindings: hwmon: (mr75203) add coefficient properties for the thermal equation Eliav Farber
2022-09-06  8:33 ` [PATCH v4 20/21] hwmon: (mr75203) parse temperature coefficients from device-tree Eliav Farber
2022-09-06  8:33 ` Eliav Farber [this message]
2022-09-06 14:26 ` [PATCH v4 00/21] Variety of fixes and new features for mr75203 driver Andy Shevchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220906083356.21067-22-farbere@amazon.com \
    --to=farbere@amazon.com \
    --cc=andriy.shevchenko@intel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=hhhawa@amazon.com \
    --cc=jdelvare@suse.com \
    --cc=jonnyc@amazon.com \
    --cc=linux-hwmon@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=p.zabel@pengutronix.de \
    --cc=robh+dt@kernel.org \
    --cc=rtanwar@maxlinear.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.