From patchwork Wed Nov 7 04:00:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Packham X-Patchwork-Id: 10671765 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C1EDD1709 for ; Wed, 7 Nov 2018 04:00:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B2BA82B00B for ; Wed, 7 Nov 2018 04:00:28 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A75CA2B015; Wed, 7 Nov 2018 04:00:28 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham 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 50ACA2B00B for ; Wed, 7 Nov 2018 04:00:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387726AbeKGN27 (ORCPT ); Wed, 7 Nov 2018 08:28:59 -0500 Received: from gate2.alliedtelesis.co.nz ([202.36.163.20]:40131 "EHLO gate2.alliedtelesis.co.nz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726960AbeKGN27 (ORCPT ); Wed, 7 Nov 2018 08:28:59 -0500 Received: from mmarshal3.atlnz.lc (mmarshal3.atlnz.lc [10.32.18.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by gate2.alliedtelesis.co.nz (Postfix) with ESMTPS id 5612880237; Wed, 7 Nov 2018 17:00:22 +1300 (NZDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alliedtelesis.co.nz; s=mail181024; t=1541563222; bh=w1T+IMlqrKOlQv2pajmMZ39hIqEScBR8Pzb7aVTyJKM=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=xa6+FST2ZjjgKrkDzxlDBIaFSVaNL/243WYAD0cmJl9LWLeq29R/ZHg6h3tIVCwng m3BJQLpf5m3NDmBpucNbb/+2VxXU6SqzdjDkqvdAMLAV1bfrLQGplgluLNpk6bEeL/ t34qLYBeGidt+dAwsDTnhnk39I3Wu7VHRvyfzIT+06PTy8hVC+XgIzlLyAKOE9IZcm P+Ysqzwn59Dm7ALyfJpZJhAwHp+0SexAhA9U5y9GQvP2JWs0tDaep2au2AUnOdilug ZZXa2/EKmw5yiOnMlOgt4R47tHIj/GZtyNv1h5PKJc407V8sj9zdUYdO9ilg7Cunf+ AuhEeJDlp21RQ== Received: from smtp (Not Verified[10.32.16.33]) by mmarshal3.atlnz.lc with Trustwave SEG (v7,5,8,10121) id ; Wed, 07 Nov 2018 17:00:21 +1300 Received: from chrisp-dl.ws.atlnz.lc (chrisp-dl.ws.atlnz.lc [10.33.22.30]) by smtp (Postfix) with ESMTP id 644D613EEA1; Wed, 7 Nov 2018 17:00:26 +1300 (NZDT) Received: by chrisp-dl.ws.atlnz.lc (Postfix, from userid 1030) id 4582D1E220C; Wed, 7 Nov 2018 17:00:21 +1300 (NZDT) From: Chris Packham To: linux@roeck-us.net, robh+dt@kernel.org, jdelvare@suse.com Cc: linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Chris Packham , Mark Rutland Subject: [PATCH 1/2] dt-bindings: hwmon: add binding documentation for adt7475 Date: Wed, 7 Nov 2018 17:00:09 +1300 Message-Id: <20181107040010.27436-2-chris.packham@alliedtelesis.co.nz> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181107040010.27436-1-chris.packham@alliedtelesis.co.nz> References: <20181107040010.27436-1-chris.packham@alliedtelesis.co.nz> MIME-Version: 1.0 x-atlnz-ls: pat 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 With the addition of the invert-pwm property the adt7475 needs its own binding documentation rather being captured under trivial-devices.txt. Signed-off-by: Chris Packham --- .../devicetree/bindings/hwmon/adt7475.txt | 22 +++++++++++++++++++ .../devicetree/bindings/trivial-devices.txt | 4 ---- 2 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 Documentation/devicetree/bindings/hwmon/adt7475.txt diff --git a/Documentation/devicetree/bindings/hwmon/adt7475.txt b/Documentation/devicetree/bindings/hwmon/adt7475.txt new file mode 100644 index 000000000000..79255439e157 --- /dev/null +++ b/Documentation/devicetree/bindings/hwmon/adt7475.txt @@ -0,0 +1,22 @@ +*ADT7475 hwmon sensor. + +Required properties: +- compatible: One of + "adi,adt7473" + "adi,adt7475" + "adi,adt7476" + "adi,adt7490" + +- reg: I2C address + +optional properties: + +- invert-pwm: This configures the PWM to use logic low for 100% duty cycle. + +Example: + +hwmon@2e { + compatible = ; + reg = <0x2e>; + invert-pwm; +}; diff --git a/Documentation/devicetree/bindings/trivial-devices.txt b/Documentation/devicetree/bindings/trivial-devices.txt index 69c934aec13b..4f29100d6bbf 100644 --- a/Documentation/devicetree/bindings/trivial-devices.txt +++ b/Documentation/devicetree/bindings/trivial-devices.txt @@ -14,10 +14,6 @@ ad,ad7414 SMBus/I2C Digital Temperature Sensor in 6-Pin SOT with SMBus Alert an ad,adm9240 ADM9240: Complete System Hardware Monitor for uProcessor-Based Systems adi,adt7461 +/-1C TDM Extended Temp Range I.C adt7461 +/-1C TDM Extended Temp Range I.C -adi,adt7473 +/-1C TDM Extended Temp Range I.C -adi,adt7475 +/-1C TDM Extended Temp Range I.C -adi,adt7476 +/-1C TDM Extended Temp Range I.C -adi,adt7490 +/-1C TDM Extended Temp Range I.C adi,adxl345 Three-Axis Digital Accelerometer adi,adxl346 Three-Axis Digital Accelerometer (backward-compatibility value "adi,adxl345" must be listed too) ams,iaq-core AMS iAQ-Core VOC Sensor From patchwork Wed Nov 7 04:00:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Packham X-Patchwork-Id: 10671767 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5B21313AD for ; Wed, 7 Nov 2018 04:00:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4C7282B00B for ; Wed, 7 Nov 2018 04:00:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4080E2B015; Wed, 7 Nov 2018 04:00:39 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham 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 E13F72B00B for ; Wed, 7 Nov 2018 04:00:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727324AbeKGN26 (ORCPT ); Wed, 7 Nov 2018 08:28:58 -0500 Received: from gate2.alliedtelesis.co.nz ([202.36.163.20]:40127 "EHLO gate2.alliedtelesis.co.nz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726516AbeKGN26 (ORCPT ); Wed, 7 Nov 2018 08:28:58 -0500 Received: from mmarshal3.atlnz.lc (mmarshal3.atlnz.lc [10.32.18.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by gate2.alliedtelesis.co.nz (Postfix) with ESMTPS id 69A918781F; Wed, 7 Nov 2018 17:00:22 +1300 (NZDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alliedtelesis.co.nz; s=mail181024; t=1541563222; bh=SViPsDaJsnCO6Z2r1PgBm6ePY1iRYTiLTPdvcxeBVvs=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=VJZ78nDvfyHmG+f3hu3nhMvzd7aQxyG5S4Reg2Sx1kz5QWfzhkuFNOQCSn9ptCbjp vVrKKqwylA9sjVf3k5kZHJcK6++zEPoYHJjUZZWaytKD1vKfhRv9exNTARk3FXcJhI qWzZ62SPiWkTnQXFfm//5uRglXOq14sUVo0JsafRjmm+kjzRIW+uDqVooHLFp/7nj7 ozFGrXFm6RNiJVXXhcOdYQ4HY6TwOiCOAANkN8R0OauLioycKU/sY/g1qKmvz02fCd U5+mnyztm3N8bYVgjZx6pMTKDzfO3RWD3BBmDFaDZQL0mdZjMq62RQnz/Tie0mLlED 0VIzvpHmIb7yg== Received: from smtp (Not Verified[10.32.16.33]) by mmarshal3.atlnz.lc with Trustwave SEG (v7,5,8,10121) id ; Wed, 07 Nov 2018 17:00:21 +1300 Received: from chrisp-dl.ws.atlnz.lc (chrisp-dl.ws.atlnz.lc [10.33.22.30]) by smtp (Postfix) with ESMTP id 7DD9413EEDE; Wed, 7 Nov 2018 17:00:26 +1300 (NZDT) Received: by chrisp-dl.ws.atlnz.lc (Postfix, from userid 1030) id 5F3751E220C; Wed, 7 Nov 2018 17:00:21 +1300 (NZDT) From: Chris Packham To: linux@roeck-us.net, robh+dt@kernel.org, jdelvare@suse.com Cc: linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Chris Packham Subject: [PATCH 2/2] hwmon: (adt7475): add support for inverting the pwm output Date: Wed, 7 Nov 2018 17:00:10 +1300 Message-Id: <20181107040010.27436-3-chris.packham@alliedtelesis.co.nz> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181107040010.27436-1-chris.packham@alliedtelesis.co.nz> References: <20181107040010.27436-1-chris.packham@alliedtelesis.co.nz> MIME-Version: 1.0 x-atlnz-ls: pat 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 Add a "invert-pwm" device-tree property to allow hardware designs to use inverted logic on the PWM output. We intentionally preserve the invert PWM output bit if the property is not found to allow for bootloaders/bios which may have configured this earlier. Signed-off-by: Chris Packham --- drivers/hwmon/adt7475.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/hwmon/adt7475.c b/drivers/hwmon/adt7475.c index f4c7516eb989..85e4dc674449 100644 --- a/drivers/hwmon/adt7475.c +++ b/drivers/hwmon/adt7475.c @@ -1536,9 +1536,22 @@ static int adt7475_update_limits(struct i2c_client *client) return 0; } +static int adt7475_invert_pwm(struct i2c_client *client, int index) +{ + int ret; + + ret = adt7475_read(PWM_CONFIG_REG(index)); + if (ret < 0) + return ret; + + return i2c_smbus_write_byte_data(client, PWM_CONFIG_REG(index), + ret | BIT(4)); +} + static int adt7475_probe(struct i2c_client *client, const struct i2c_device_id *id) { + struct device_node *of_node = client->dev.of_node; enum chips chip; static const char * const names[] = { [adt7473] = "ADT7473", @@ -1638,6 +1651,10 @@ static int adt7475_probe(struct i2c_client *client, for (i = 0; i < ADT7475_PWM_COUNT; i++) adt7475_read_pwm(client, i); + if (of_node && of_property_read_bool(of_node, "invert-pwm")) + for (i = 0; i < ADT7475_PWM_COUNT; i++) + adt7475_invert_pwm(client, i); + /* Start monitoring */ switch (chip) { case adt7475: