From patchwork Sat Apr 21 11:56:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rodrigo Siqueira X-Patchwork-Id: 10354101 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 B6B2C60231 for ; Sat, 21 Apr 2018 11:56:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A68AD28737 for ; Sat, 21 Apr 2018 11:56:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9AEF12890B; Sat, 21 Apr 2018 11:56:27 +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=-7.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID 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 2E45F28737 for ; Sat, 21 Apr 2018 11:56:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753023AbeDUL40 (ORCPT ); Sat, 21 Apr 2018 07:56:26 -0400 Received: from mail-qk0-f196.google.com ([209.85.220.196]:39778 "EHLO mail-qk0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752986AbeDUL4Z (ORCPT ); Sat, 21 Apr 2018 07:56:25 -0400 Received: by mail-qk0-f196.google.com with SMTP id z75so394820qkb.6; Sat, 21 Apr 2018 04:56:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=GGl2S+PY920RrgPNH1LUoXzMDVYxgsi4r5+b79xl+XE=; b=u/izpABih2jjAheb3JFiIvmHVvo6B9voSyNVFtf0qfZ4xzOoIGojsyblt41HNGvEi7 lPo92NkatUJ05Yuks6aQu3k5BVTA8qiNKgfd5BUp09keqMnl+p1cEm5tFjuaund5RJOK tVkNU+ohfcUeFfe+o13dS1R5AIn/Tbicdd6YjWcGarNDtufPjCyyS96st8U5YvFYzaJP vo0ooS2EwMffsSK1km/i9p5FP86lNxqoun4td6qSMyy9VfJZazAZGGehGM295cqhT97B 2cD9prjd5R8ivtZGKtKh819keWyE6qt7YqmMTS5d58m/3mgc8EyLSV79sYmHI/5Tphde Mh5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=GGl2S+PY920RrgPNH1LUoXzMDVYxgsi4r5+b79xl+XE=; b=kckYdNs+MGkqAxRPbUIhh5+7wm3rMnJ6L7WnHB6ll1Kk0pg7bHahvMjvblnHMSaZBx Ayvv1RRDf3H2YEtPyIr+EO672vVb4wIK46uRnRdA4aoGaz7aqXDtcsQQypWhlaWE8adD 3vWC/MbbuX1zHqlRLPD8GmI5uxwKXATw7/cFtBcBe26qJ0aiVxg4oJDx8GBq40vBIJNv VtzCnkbPpO7FpBtqz/DsRTJuNTzVYtfAJVy93UHA6tba9gIQMShdMcDo/2oSJeeHBon8 naqu0OG4hXJHefP5UO3pzLY8nDQ6ZlXVdqRj9oCFpM6EqSq83X1oj2dYuKp6QoAjGa5T OPew== X-Gm-Message-State: ALQs6tAQTIZhQ4+uyuJ4+JWUNxZ54QowYTdOID2a5acDwH1MCR35kMak +08EnRUQc5NFZcTkKeRj1rs= X-Google-Smtp-Source: AB8JxZpKUrUtvpBhz+/cDBtUcbfaCsLvVjhYFbCTCwstk71AS3/j28x5iq6rGPxDoRp13x3TTuAXcg== X-Received: by 10.55.79.9 with SMTP id d9mr14279561qkb.2.1524311784524; Sat, 21 Apr 2018 04:56:24 -0700 (PDT) Received: from smtp.gmail.com ([201.81.143.32]) by smtp.gmail.com with ESMTPSA id b27-v6sm6469531qtk.75.2018.04.21.04.56.21 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 21 Apr 2018 04:56:23 -0700 (PDT) Date: Sat, 21 Apr 2018 08:56:19 -0300 From: Rodrigo Siqueira To: Jonathan Cameron , Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , Greg Kroah-Hartman , John Syne Cc: linux-iio@vger.kernel.org, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/3] stagging:iio:meter: Add ade7854_write_raw function Message-ID: <82a36a0f4ee84d8ff53be2055bad22be4b75634a.1524311298.git.rodrigosiqueiramelo@gmail.com> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20180323 Sender: linux-iio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-iio@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch adds the ade7854_write_raw() function which is responsible for handling the write operation for registers: AIGAIN, BIGAIN, CIGAIN, NIGAIN, AVGAIN, BVGAIN, and CVGAIN. Finally, this patch completely removes the old ABI used for handling the registers mentioned above. Signed-off-by: Rodrigo Siqueira --- drivers/staging/iio/meter/ade7854.c | 60 ++++++++++++----------------- 1 file changed, 25 insertions(+), 35 deletions(-) diff --git a/drivers/staging/iio/meter/ade7854.c b/drivers/staging/iio/meter/ade7854.c index 242ecde75900..df19c8b4b5d7 100644 --- a/drivers/staging/iio/meter/ade7854.c +++ b/drivers/staging/iio/meter/ade7854.c @@ -228,34 +228,6 @@ static int ade7854_reset(struct device *dev) return st->write_reg(dev, ADE7854_CONFIG, val, 16); } -static IIO_DEV_ATTR_AIGAIN(0644, - NULL, - ade7854_write_24bit, - ADE7854_AIGAIN); -static IIO_DEV_ATTR_BIGAIN(0644, - NULL, - ade7854_write_24bit, - ADE7854_BIGAIN); -static IIO_DEV_ATTR_CIGAIN(0644, - NULL, - ade7854_write_24bit, - ADE7854_CIGAIN); -static IIO_DEV_ATTR_NIGAIN(0644, - NULL, - ade7854_write_24bit, - ADE7854_NIGAIN); -static IIO_DEV_ATTR_AVGAIN(0644, - NULL, - ade7854_write_24bit, - ADE7854_AVGAIN); -static IIO_DEV_ATTR_BVGAIN(0644, - NULL, - ade7854_write_24bit, - ADE7854_BVGAIN); -static IIO_DEV_ATTR_CVGAIN(0644, - NULL, - ade7854_write_24bit, - ADE7854_CVGAIN); static IIO_DEV_ATTR_APPARENT_POWER_A_GAIN(0644, ade7854_read_24bit, ade7854_write_24bit, @@ -497,6 +469,30 @@ static int ade7854_read_raw(struct iio_dev *indio_dev, return -EINVAL; } +static int ade7854_write_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int val, int val2, long mask) +{ + struct ade7854_state *st = iio_priv(indio_dev); + int ret; + + if (mask != IIO_CHAN_INFO_SCALE) + return -EINVAL; + + switch (chan->type) { + case IIO_CURRENT: + case IIO_VOLTAGE: + ret = st->write_reg(&indio_dev->dev, chan->address, val, 24); + if (ret < 0) + return ret; + return 0; + default: + break; + } + + return -EINVAL; +} + static int ade7854_initial_setup(struct iio_dev *indio_dev) { int ret; @@ -521,13 +517,6 @@ static IIO_CONST_ATTR_SAMP_FREQ_AVAIL("8000"); static IIO_CONST_ATTR(name, "ade7854"); static struct attribute *ade7854_attributes[] = { - &iio_dev_attr_aigain.dev_attr.attr, - &iio_dev_attr_bigain.dev_attr.attr, - &iio_dev_attr_cigain.dev_attr.attr, - &iio_dev_attr_nigain.dev_attr.attr, - &iio_dev_attr_avgain.dev_attr.attr, - &iio_dev_attr_bvgain.dev_attr.attr, - &iio_dev_attr_cvgain.dev_attr.attr, &iio_dev_attr_linecyc.dev_attr.attr, &iio_dev_attr_sagcyc.dev_attr.attr, &iio_dev_attr_cfcyc.dev_attr.attr, @@ -599,6 +588,7 @@ static const struct attribute_group ade7854_attribute_group = { static const struct iio_info ade7854_info = { .attrs = &ade7854_attribute_group, .read_raw = &ade7854_read_raw, + .write_raw = &ade7854_write_raw, }; int ade7854_probe(struct iio_dev *indio_dev, struct device *dev)