From patchwork Fri Apr 20 19:30:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Veenstra X-Patchwork-Id: 10353589 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 59D51602B1 for ; Fri, 20 Apr 2018 19:30:50 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4A86628854 for ; Fri, 20 Apr 2018 19:30:50 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4919128858; Fri, 20 Apr 2018 19:30:50 +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 CC9FF2886F for ; Fri, 20 Apr 2018 19:30:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752605AbeDTTat (ORCPT ); Fri, 20 Apr 2018 15:30:49 -0400 Received: from mail-wr0-f193.google.com ([209.85.128.193]:35475 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750841AbeDTTas (ORCPT ); Fri, 20 Apr 2018 15:30:48 -0400 Received: by mail-wr0-f193.google.com with SMTP id w3-v6so25668418wrg.2; Fri, 20 Apr 2018 12:30:47 -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=f/ybWDO+ou0bKqGhUxMiOAYwREzdbc3KHMFr+XPF9cE=; b=Nf1f/7gHxlt5MHAVq70oEAPnACHE/zNPMMSRC1ZtKSwo62eKJ1Vc6G2cCSfUFrpdqt c+7Bx19M9vzQukfZDA5p/5dug/mYqefxWapOFRK0gQZOv0cfm+pXQb6wDK3inVFDZFeo 4Y+YOcvrr7xpwIcJtA+Onxrm1VGLhF9b0tfxSBpvti5slmHE4YD2QWWlCwdgxct1bTrn 9jNVvpS6DHh+qCgJdg43qk6ununxZTOt0LRRKEpNwmLI/Yd5U764PxJHN+iMcBwvrWg1 l3j+WAFQbktns8BLckxemjkk/4SSoCDP9jrvIOEJDpAWGHlgs772caqXlhnO7cpU/Xf0 blbA== 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=f/ybWDO+ou0bKqGhUxMiOAYwREzdbc3KHMFr+XPF9cE=; b=Kn3bbJ2De3rinJy/kjEJoCTnDdoZwViCiuIgHgN1GRmlQtmwcgQ196W3mLHIcjyn9O reyIHPESzuVlhx+AfSLdv/YDUH2v9oy3u2Veoo1YZkZFeH9eLtO7rCNpfNrAj2nSd5wR Pyu+gb0JuvstvYhsnakLKxHKh0qLBK+DBgYPbxu+5jccwufe87pifeMnQy41A1Wz9odF fL+gzqdLulfGIT7n0rap2NRcE9xZNSvaxDrJCpLN6DLaBUSOkUbNmY3+PWcdUKMSSRvi LP2yUyW7MydeEBYB7Y1fjGyVgXO5MS+42EKbgCDTf+XM/Tdrc7sothJtylan2wmG5xZt rtjQ== X-Gm-Message-State: ALQs6tBjfrr1u4V/ovMpwb6Eg/wPhJHC40v1lQwjKVHDGWdq2lmlEQRV WzRrXvL3gKp36vWmgLMLST4MnZaz X-Google-Smtp-Source: AIpwx48rSxbfCFc9nMCiE9RAZuYtutKPnXNldrFPObLdvnzrwiLnS0QRunxLIBq2UvFnH73Q0vrvCQ== X-Received: by 10.80.212.195 with SMTP id e3mr15770553edj.127.1524252646961; Fri, 20 Apr 2018 12:30:46 -0700 (PDT) Received: from zenbook-arch (s559434a1.adsl.online.nl. [85.148.52.161]) by smtp.gmail.com with ESMTPSA id d9sm3904554edm.74.2018.04.20.12.30.45 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 20 Apr 2018 12:30:46 -0700 (PDT) Date: Fri, 20 Apr 2018 21:30:44 +0200 From: David Veenstra To: lars@metafoo.de, jic23@kernel.org, pmeerw@pmeerw.net Cc: robh+dt@kernel.org, Michael.Hennerich@analog.com, knaack.h@gmx.de, daniel.baluta@nxp.com, linux-iio@vger.kernel.org, devel@driverdev.osuosl.org, devicetree@vger.kernel.org Subject: [PATCH v2 08/13] staging: iio: ad2s1200: Replace legacy gpio API with modern API Message-ID: <4253be22c7081a5032b59097bc166f559e7b1cea.1524247563.git.davidjulianveenstra@gmail.com> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) 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 The legacy, integer based gpio API is replaced with the descriptor based API. For compatibility, it is first tried to use the platform data to request the gpio's. Otherwise, it looks for the "sample" and "rdvel" gpio function. Signed-off-by: David Veenstra --- drivers/staging/iio/resolver/ad2s1200.c | 51 ++++++++++++++++++++++++--------- 1 file changed, 37 insertions(+), 14 deletions(-) diff --git a/drivers/staging/iio/resolver/ad2s1200.c b/drivers/staging/iio/resolver/ad2s1200.c index 11ed9c7332e6..29a9bb666e7b 100644 --- a/drivers/staging/iio/resolver/ad2s1200.c +++ b/drivers/staging/iio/resolver/ad2s1200.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -44,8 +45,8 @@ struct ad2s1200_state { struct mutex lock; struct spi_device *sdev; - int sample; - int rdvel; + struct gpio_desc *sample; + struct gpio_desc *rdvel; u8 rx[2] ____cacheline_aligned; }; @@ -60,12 +61,12 @@ static int ad2s1200_read_raw(struct iio_dev *indio_dev, u16 vel; mutex_lock(&st->lock); - gpio_set_value(st->sample, 0); + gpiod_set_value(st->sample, 0); /* delay (6 * AD2S1200_TSCLK + 20) nano seconds */ udelay(1); - gpio_set_value(st->sample, 1); - gpio_set_value(st->rdvel, !!(chan->type == IIO_ANGL)); + gpiod_set_value(st->sample, 1); + gpiod_set_value(st->rdvel, !!(chan->type == IIO_ANGL)); ret = spi_read(st->sdev, st->rx, 2); if (ret < 0) { @@ -121,13 +122,18 @@ static int ad2s1200_probe(struct spi_device *spi) dev = &spi->dev; - for (pn = 0; pn < AD2S1200_PN; pn++) { - ret = devm_gpio_request_one(dev, pins[pn], GPIOF_DIR_OUT, - DRV_NAME); - if (ret) { - dev_err(dev, "request gpio pin %d failed\n", - pins[pn]); - return ret; + if (pins) { + for (pn = 0; pn < AD2S1200_PN; pn++) { + ret = devm_gpio_request_one(dev, pins[pn], + GPIOF_DIR_OUT, + DRV_NAME); + if (ret) { + dev_err(dev, + "Failed to claim gpio %d\n: err=%d", + pins[pn], + ret); + return ret; + } } } @@ -139,8 +145,25 @@ static int ad2s1200_probe(struct spi_device *spi) st = iio_priv(indio_dev); mutex_init(&st->lock); st->sdev = spi; - st->sample = pins[0]; - st->rdvel = pins[1]; + + if (pins) { + st->sample = gpio_to_desc(pins[0]); + st->rdvel = gpio_to_desc(pins[1]); + } else { + st->sample = devm_gpiod_get(dev, "sample", GPIOD_OUT_LOW); + if (IS_ERR(st->sample)) { + dev_err(dev, "Failed to claim SAMPLE gpio: err=%ld\n", + PTR_ERR(st->sample)); + return PTR_ERR(st->sample); + } + + st->rdvel = devm_gpiod_get(dev, "rdvel", GPIOD_OUT_LOW); + if (IS_ERR(st->rdvel)) { + dev_err(dev, "Failed to claim RDVEL gpio: err=%ld\n", + PTR_ERR(st->rdvel)); + return PTR_ERR(st->rdvel); + } + } indio_dev->dev.parent = dev; indio_dev->info = &ad2s1200_info;