linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Farouk Bouabid <farouk.bouabid@cherry.de>
To: Jean Delvare <jdelvare@suse.com>,
	Guenter Roeck <linux@roeck-us.net>,
	 Andi Shyti <andi.shyti@kernel.org>,
	Rob Herring <robh@kernel.org>,
	 Krzysztof Kozlowski <krzk+dt@kernel.org>,
	 Conor Dooley <conor+dt@kernel.org>, Lee Jones <lee@kernel.org>,
	 Farouk Bouabid <farouk.bouabid@cherry.de>,
	 Quentin Schulz <quentin.schulz@cherry.de>,
	Peter Rosin <peda@axentia.se>,  Heiko Stuebner <heiko@sntech.de>
Cc: linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org,
	 linux-i2c@vger.kernel.org, devicetree@vger.kernel.org,
	 linux-arm-kernel@lists.infradead.org,
	linux-rockchip@lists.infradead.org
Subject: [PATCH v4 2/9] hwmon: (amc6821) dev_err using amc6821 device struct
Date: Tue, 18 Jun 2024 18:06:44 +0200	[thread overview]
Message-ID: <20240618-dev-mule-i2c-mux-v4-2-5462d28354c8@cherry.de> (raw)
In-Reply-To: <20240618-dev-mule-i2c-mux-v4-0-5462d28354c8@cherry.de>

If probed as platform device, the i2c_client.dev is the parent device
(eg. MFD) and not the actual amc6821 device. Use the latter to log errors
instead.

Signed-off-by: Farouk Bouabid <farouk.bouabid@cherry.de>
---
 drivers/hwmon/amc6821.c | 62 +++++++++++++++++++++++++------------------------
 1 file changed, 32 insertions(+), 30 deletions(-)

diff --git a/drivers/hwmon/amc6821.c b/drivers/hwmon/amc6821.c
index 464991fd7fc9..17456d7c7cfe 100644
--- a/drivers/hwmon/amc6821.c
+++ b/drivers/hwmon/amc6821.c
@@ -290,7 +290,7 @@ static ssize_t temp_store(struct device *dev, struct device_attribute *attr,
 	mutex_lock(&data->update_lock);
 	data->temp[ix] = val;
 	if (i2c_smbus_write_byte_data(client, temp_reg[ix], data->temp[ix])) {
-		dev_err(&client->dev, "Register write error, aborting.\n");
+		dev_err(dev, "Register write error, aborting.\n");
 		count = -EIO;
 	}
 	mutex_unlock(&data->update_lock);
@@ -389,10 +389,10 @@ static ssize_t pwm1_enable_store(struct device *dev,
 	mutex_lock(&data->update_lock);
 	config = i2c_smbus_read_byte_data(client, AMC6821_REG_CONF1);
 	if (config < 0) {
-			dev_err(&client->dev,
+		dev_err(dev,
 			"Error reading configuration register, aborting.\n");
-			count = config;
-			goto unlock;
+		count = config;
+		goto unlock;
 	}
 
 	switch (val) {
@@ -413,9 +413,9 @@ static ssize_t pwm1_enable_store(struct device *dev,
 		goto unlock;
 	}
 	if (i2c_smbus_write_byte_data(client, AMC6821_REG_CONF1, config)) {
-			dev_err(&client->dev,
+		dev_err(dev,
 			"Configuration register write error, aborting.\n");
-			count = -EIO;
+		count = -EIO;
 	}
 unlock:
 	mutex_unlock(&data->update_lock);
@@ -459,11 +459,13 @@ static ssize_t pwm1_auto_point_pwm_show(struct device *dev,
 	return sprintf(buf, "%d\n", data->pwm1_auto_point_pwm[ix]);
 }
 
-static inline ssize_t set_slope_register(struct i2c_client *client,
+static inline ssize_t set_slope_register(struct device *dev,
 		u8 reg,
 		u8 dpwm,
 		u8 *ptemp)
 {
+	struct amc6821_data *data = dev_get_drvdata(dev);
+	struct i2c_client *client = data->client;
 	int dt;
 	u8 tmp;
 
@@ -475,7 +477,7 @@ static inline ssize_t set_slope_register(struct i2c_client *client,
 	tmp |= (ptemp[1] & 0x7C) << 1;
 	if (i2c_smbus_write_byte_data(client,
 			reg, tmp)) {
-		dev_err(&client->dev, "Register write error, aborting.\n");
+		dev_err(dev, "Register write error, aborting.\n");
 		return -EIO;
 	}
 	return 0;
@@ -525,7 +527,7 @@ static ssize_t temp_auto_point_temp_store(struct device *dev,
 					client,
 					AMC6821_REG_PSV_TEMP,
 					ptemp[0])) {
-				dev_err(&client->dev,
+				dev_err(dev,
 					"Register write error, aborting.\n");
 				count = -EIO;
 		}
@@ -544,7 +546,7 @@ static ssize_t temp_auto_point_temp_store(struct device *dev,
 		goto EXIT;
 	}
 	dpwm = data->pwm1_auto_point_pwm[2] - data->pwm1_auto_point_pwm[1];
-	if (set_slope_register(client, reg, dpwm, ptemp))
+	if (set_slope_register(dev, reg, dpwm, ptemp))
 		count = -EIO;
 
 EXIT:
@@ -568,17 +570,17 @@ static ssize_t pwm1_auto_point_pwm_store(struct device *dev,
 	data->pwm1_auto_point_pwm[1] = clamp_val(val, 0, 254);
 	if (i2c_smbus_write_byte_data(client, AMC6821_REG_DCY_LOW_TEMP,
 			data->pwm1_auto_point_pwm[1])) {
-		dev_err(&client->dev, "Register write error, aborting.\n");
+		dev_err(dev, "Register write error, aborting.\n");
 		count = -EIO;
 		goto EXIT;
 	}
 	dpwm = data->pwm1_auto_point_pwm[2] - data->pwm1_auto_point_pwm[1];
-	if (set_slope_register(client, AMC6821_REG_LTEMP_FAN_CTRL, dpwm,
+	if (set_slope_register(dev, AMC6821_REG_LTEMP_FAN_CTRL, dpwm,
 			data->temp1_auto_point_temp)) {
 		count = -EIO;
 		goto EXIT;
 	}
-	if (set_slope_register(client, AMC6821_REG_RTEMP_FAN_CTRL, dpwm,
+	if (set_slope_register(dev, AMC6821_REG_RTEMP_FAN_CTRL, dpwm,
 			data->temp2_auto_point_temp)) {
 		count = -EIO;
 		goto EXIT;
@@ -626,13 +628,13 @@ static ssize_t fan_store(struct device *dev, struct device_attribute *attr,
 	data->fan[ix] = (u16) clamp_val(val, 1, 0xFFFF);
 	if (i2c_smbus_write_byte_data(client, fan_reg_low[ix],
 			data->fan[ix] & 0xFF)) {
-		dev_err(&client->dev, "Register write error, aborting.\n");
+		dev_err(dev, "Register write error, aborting.\n");
 		count = -EIO;
 		goto EXIT;
 	}
 	if (i2c_smbus_write_byte_data(client,
 			fan_reg_hi[ix], data->fan[ix] >> 8)) {
-		dev_err(&client->dev, "Register write error, aborting.\n");
+		dev_err(dev, "Register write error, aborting.\n");
 		count = -EIO;
 	}
 EXIT:
@@ -661,7 +663,7 @@ static ssize_t fan1_div_store(struct device *dev,
 	mutex_lock(&data->update_lock);
 	config = i2c_smbus_read_byte_data(client, AMC6821_REG_CONF4);
 	if (config < 0) {
-		dev_err(&client->dev,
+		dev_err(dev,
 			"Error reading configuration register, aborting.\n");
 		count = config;
 		goto EXIT;
@@ -680,7 +682,7 @@ static ssize_t fan1_div_store(struct device *dev,
 		goto EXIT;
 	}
 	if (i2c_smbus_write_byte_data(client, AMC6821_REG_CONF4, config)) {
-		dev_err(&client->dev,
+		dev_err(dev,
 			"Configuration register write error, aborting.\n");
 		count = -EIO;
 	}
@@ -815,7 +817,7 @@ static int amc6821_detect(
 	return 0;
 }
 
-static int amc6821_init_client(struct i2c_client *client)
+static int amc6821_init_client(struct device *dev, struct i2c_client *client)
 {
 	int config;
 	int err = -EIO;
@@ -824,16 +826,16 @@ static int amc6821_init_client(struct i2c_client *client)
 		config = i2c_smbus_read_byte_data(client, AMC6821_REG_CONF4);
 
 		if (config < 0) {
-				dev_err(&client->dev,
-			"Error reading configuration register, aborting.\n");
-				return err;
+			dev_err(dev,
+				"Error reading configuration register, aborting.\n");
+			return err;
 		}
 
 		config |= AMC6821_CONF4_MODE;
 
 		if (i2c_smbus_write_byte_data(client, AMC6821_REG_CONF4,
 				config)) {
-			dev_err(&client->dev,
+			dev_err(dev,
 			"Configuration register write error, aborting.\n");
 			return err;
 		}
@@ -841,18 +843,18 @@ static int amc6821_init_client(struct i2c_client *client)
 		config = i2c_smbus_read_byte_data(client, AMC6821_REG_CONF3);
 
 		if (config < 0) {
-			dev_err(&client->dev,
+			dev_err(dev,
 			"Error reading configuration register, aborting.\n");
 			return err;
 		}
 
-		dev_info(&client->dev, "Revision %d\n", config & 0x0f);
+		dev_info(dev, "Revision %d\n", config & 0x0f);
 
 		config &= ~AMC6821_CONF3_THERM_FAN_EN;
 
 		if (i2c_smbus_write_byte_data(client, AMC6821_REG_CONF3,
 				config)) {
-			dev_err(&client->dev,
+			dev_err(dev,
 			"Configuration register write error, aborting.\n");
 			return err;
 		}
@@ -860,7 +862,7 @@ static int amc6821_init_client(struct i2c_client *client)
 		config = i2c_smbus_read_byte_data(client, AMC6821_REG_CONF2);
 
 		if (config < 0) {
-			dev_err(&client->dev,
+			dev_err(dev,
 			"Error reading configuration register, aborting.\n");
 			return err;
 		}
@@ -870,7 +872,7 @@ static int amc6821_init_client(struct i2c_client *client)
 		config &= ~AMC6821_CONF2_RTOIE;
 		if (i2c_smbus_write_byte_data(client,
 				AMC6821_REG_CONF2, config)) {
-			dev_err(&client->dev,
+			dev_err(dev,
 			"Configuration register write error, aborting.\n");
 			return err;
 		}
@@ -878,7 +880,7 @@ static int amc6821_init_client(struct i2c_client *client)
 		config = i2c_smbus_read_byte_data(client, AMC6821_REG_CONF1);
 
 		if (config < 0) {
-			dev_err(&client->dev,
+			dev_err(dev,
 			"Error reading configuration register, aborting.\n");
 			return err;
 		}
@@ -893,7 +895,7 @@ static int amc6821_init_client(struct i2c_client *client)
 
 		if (i2c_smbus_write_byte_data(
 				client, AMC6821_REG_CONF1, config)) {
-			dev_err(&client->dev,
+			dev_err(dev,
 			"Configuration register write error, aborting.\n");
 			return err;
 		}
@@ -917,7 +919,7 @@ static int probe(struct device *dev, struct i2c_client *client)
 	/*
 	 * Initialize the amc6821 chip
 	 */
-	err = amc6821_init_client(client);
+	err = amc6821_init_client(dev, client);
 	if (err)
 		return err;
 

-- 
2.34.1


  parent reply	other threads:[~2024-06-18 16:10 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-18 16:06 [PATCH v4 0/9] Add Mule MFD support Farouk Bouabid
2024-06-18 16:06 ` [PATCH v4 1/9] hwmon: (amc6821) add platform driver probe Farouk Bouabid
2024-06-18 16:06 ` Farouk Bouabid [this message]
2024-06-18 16:06 ` [PATCH v4 3/9] dt-bindings: mfd: add support for mule Farouk Bouabid
2024-06-27 20:52   ` Rob Herring
2024-06-18 16:06 ` [PATCH v4 4/9] i2c: muxes: add support for mule i2c multiplexer Farouk Bouabid
2024-06-18 16:06 ` [PATCH v4 5/9] mfd: simple-mfd-i2c: Add support for tsd,mule Farouk Bouabid
2024-06-18 16:06 ` [PATCH v4 6/9] arm64: dts: rockchip: add mule mfd (0x18) on rk3588-jaguar Farouk Bouabid
2024-06-18 16:06 ` [PATCH v4 7/9] arm64: dts: rockchip: add mule mfd (0x18) on rk3399-puma Farouk Bouabid
2024-06-18 16:06 ` [PATCH v4 8/9] arm64: dts: rockchip: add mule mfd (0x18) on rk3588-tiger Farouk Bouabid
2024-06-18 16:06 ` [PATCH v4 9/9] arm64: dts: rockchip: add mule mfd (0x18) on px30-ringneck Farouk Bouabid
2024-06-18 16:29 ` [PATCH v4 0/9] Add Mule MFD support Guenter Roeck
2024-06-18 16:51   ` Quentin Schulz
2024-06-18 17:30     ` Guenter Roeck
2024-06-19  7:45       ` Farouk Bouabid
2024-06-19 13:31         ` Guenter Roeck
2024-06-24 16:13           ` Farouk Bouabid
2024-06-28  0:05             ` Guenter Roeck
2024-06-28  9:03               ` Farouk Bouabid
2024-06-28 15:05                 ` Guenter Roeck

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=20240618-dev-mule-i2c-mux-v4-2-5462d28354c8@cherry.de \
    --to=farouk.bouabid@cherry.de \
    --cc=andi.shyti@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=heiko@sntech.de \
    --cc=jdelvare@suse.com \
    --cc=krzk+dt@kernel.org \
    --cc=lee@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-hwmon@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=linux@roeck-us.net \
    --cc=peda@axentia.se \
    --cc=quentin.schulz@cherry.de \
    --cc=robh@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).