From patchwork Sun Aug 7 23:31:56 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 9266601 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 91F4860754 for ; Sun, 7 Aug 2016 23:32:59 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 840402624C for ; Sun, 7 Aug 2016 23:32:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 78F1027BE5; Sun, 7 Aug 2016 23:32:59 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2D6592624C for ; Sun, 7 Aug 2016 23:32:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752002AbcHGXcM (ORCPT ); Sun, 7 Aug 2016 19:32:12 -0400 Received: from bh-25.webhostbox.net ([208.91.199.152]:55616 "EHLO bh-25.webhostbox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752070AbcHGXcK (ORCPT ); Sun, 7 Aug 2016 19:32:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=roeck-us.net; s=default; h=References:In-Reply-To:Message-Id:Date:Subject: Cc:To:From; bh=ryj47cZYFRGfOJBFuw/cEi+cei0OF318GsBjW6NYRek=; b=OMVKxx/W5tuZba PwLuHMPFrkv1et5nED6e2dlf1Cd2M7OlNwA1xmVqwbL9kppmW0LQCc2b8usIQJhd5OaR99uH/oe2g Cd5wFX5UYGuitX9mJcM+oalEhoBewbdSAXcqi6YvnEgk1l6i/IYpg5w+CMQ8TmWHAHzDE1qfeUafb Rt1adTfc9Mu2tk4zP5iCXtK5vuJRzKX75siiVs4ES7+nQunWfe/XRlpVe2FPOowA0Cfj19JmPgcEY +i7GUfcIT5rWOeicox8uxLufw/W8niDEMAgLi+CKAQKvcYyuIHqhGOuGi231ljGG9cS46S7So+Rr1 aU0MHh9YYrkpbQM1Wt5Q==; Received: from 108-223-40-66.lightspeed.sntcca.sbcglobal.net ([108.223.40.66]:42012 helo=localhost) by bh-25.webhostbox.net with esmtpa (Exim 4.86_1) (envelope-from ) id 1bWXY3-003bBw-I1; Sun, 07 Aug 2016 23:32:03 +0000 From: Guenter Roeck To: Jean Delvare Cc: linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org, Guenter Roeck Subject: [PATCH 2/6] hwmon: (lm95241) Add support for fault attributes Date: Sun, 7 Aug 2016 16:31:56 -0700 Message-Id: <1470612720-30165-2-git-send-email-linux@roeck-us.net> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1470612720-30165-1-git-send-email-linux@roeck-us.net> References: <1470612720-30165-1-git-send-email-linux@roeck-us.net> X-Authenticated_sender: guenter@roeck-us.net X-OutGoing-Spam-Status: No, score=-1.0 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - bh-25.webhostbox.net X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - roeck-us.net X-Get-Message-Sender-Via: bh-25.webhostbox.net: authenticated_id: guenter@roeck-us.net X-Authenticated-Sender: bh-25.webhostbox.net: guenter@roeck-us.net X-Source: X-Source-Args: X-Source-Dir: Sender: linux-hwmon-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-hwmon@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The chip reports if remote diodes are present, which can be used for the fault attrributes. Signed-off-by: Guenter Roeck --- drivers/hwmon/lm95241.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/drivers/hwmon/lm95241.c b/drivers/hwmon/lm95241.c index a8cf666fe661..e4e7bf169b07 100644 --- a/drivers/hwmon/lm95241.c +++ b/drivers/hwmon/lm95241.c @@ -70,6 +70,8 @@ static const unsigned short normal_i2c[] = { #define R2DF_MASK (0x01 << (R2DF_SHIFT)) #define R1FE_MASK 0x01 #define R2FE_MASK 0x05 +#define R1DM 0x01 +#define R2DM 0x02 #define TT1_SHIFT 0 #define TT2_SHIFT 4 #define TT_OFF 0 @@ -97,7 +99,7 @@ struct lm95241_data { char valid; /* zero until following fields are valid */ /* registers values */ u8 temp[ARRAY_SIZE(lm95241_reg_address)]; - u8 config, model, trutherm; + u8 status, config, model, trutherm; }; /* Conversions */ @@ -130,6 +132,9 @@ static struct lm95241_data *lm95241_update_device(struct device *dev) data->temp[i] = i2c_smbus_read_byte_data(client, lm95241_reg_address[i]); + + data->status = i2c_smbus_read_byte_data(client, + LM95241_REG_R_STATUS); data->last_updated = jiffies; data->valid = 1; } @@ -274,6 +279,15 @@ static ssize_t set_max(struct device *dev, struct device_attribute *attr, return count; } +static ssize_t show_fault(struct device *dev, struct device_attribute *attr, + char *buf) +{ + struct lm95241_data *data = lm95241_update_device(dev); + + return snprintf(buf, PAGE_SIZE - 1, "%d", + !!(data->status & to_sensor_dev_attr(attr)->index)); +} + static ssize_t show_interval(struct device *dev, struct device_attribute *attr, char *buf) { @@ -335,6 +349,8 @@ static SENSOR_DEVICE_ATTR(temp2_max, S_IWUSR | S_IRUGO, show_max, set_max, R1DF_MASK); static SENSOR_DEVICE_ATTR(temp3_max, S_IWUSR | S_IRUGO, show_max, set_max, R2DF_MASK); +static SENSOR_DEVICE_ATTR(temp2_fault, S_IRUGO, show_fault, NULL, R1DM); +static SENSOR_DEVICE_ATTR(temp3_fault, S_IRUGO, show_fault, NULL, R2DM); static DEVICE_ATTR(update_interval, S_IWUSR | S_IRUGO, show_interval, set_interval); @@ -348,6 +364,8 @@ static struct attribute *lm95241_attrs[] = { &sensor_dev_attr_temp3_min.dev_attr.attr, &sensor_dev_attr_temp2_max.dev_attr.attr, &sensor_dev_attr_temp3_max.dev_attr.attr, + &sensor_dev_attr_temp2_fault.dev_attr.attr, + &sensor_dev_attr_temp3_fault.dev_attr.attr, &dev_attr_update_interval.attr, NULL };