From patchwork Fri Jul 27 06:41:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandru Ardelean X-Patchwork-Id: 10546641 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 3791D14BC for ; Fri, 27 Jul 2018 06:42:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1D9CD2B325 for ; Fri, 27 Jul 2018 06:42:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0F4692B32C; Fri, 27 Jul 2018 06:42:16 +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_SIGNED, 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 631552B325 for ; Fri, 27 Jul 2018 06:42:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725861AbeG0ICf (ORCPT ); Fri, 27 Jul 2018 04:02:35 -0400 Received: from mail-sn1nam01on0070.outbound.protection.outlook.com ([104.47.32.70]:36742 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727885AbeG0ICf (ORCPT ); Fri, 27 Jul 2018 04:02:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.onmicrosoft.com; s=selector1-analog-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/06cmz2uR9cpS6Dm7rONp4DIwtHtMkutci98Bbu6dx0=; b=Bk+IkoAejl/QBiYVIVuKceCZo0cwHWjDmQAMWtleseOjvYkmmd8K1JAnOr06PrrQhyChzJGqAtCGoRgQq1FMd3x3uW398RbRjqs/TjD3ShSgdfOuM0+18eiTxTKsO0A/oUNjkjrAALOwTjhvpOmNKJhiDjM6v6G6NyrwtNfsoTs= Received: from DM6PR03CA0036.namprd03.prod.outlook.com (2603:10b6:5:40::49) by BY2PR03MB554.namprd03.prod.outlook.com (2a01:111:e400:2c38::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.973.21; Fri, 27 Jul 2018 06:41:31 +0000 Received: from BN1BFFO11FD025.protection.gbl (2a01:111:f400:7c10::1:192) by DM6PR03CA0036.outlook.office365.com (2603:10b6:5:40::49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.995.19 via Frontend Transport; Fri, 27 Jul 2018 06:41:30 +0000 Authentication-Results: spf=pass (sender IP is 137.71.25.57) smtp.mailfrom=analog.com; kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=bestguesspass action=none header.from=analog.com; Received-SPF: Pass (protection.outlook.com: domain of analog.com designates 137.71.25.57 as permitted sender) receiver=protection.outlook.com; client-ip=137.71.25.57; helo=nwd2mta4.analog.com; Received: from nwd2mta4.analog.com (137.71.25.57) by BN1BFFO11FD025.mail.protection.outlook.com (10.58.144.88) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.995.16 via Frontend Transport; Fri, 27 Jul 2018 06:41:30 +0000 Received: from NWD2HUBCAS7.ad.analog.com (nwd2hubcas7.ad.analog.com [10.64.69.107]) by nwd2mta4.analog.com (8.13.8/8.13.8) with ESMTP id w6R6fTha022481 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=OK); Thu, 26 Jul 2018 23:41:29 -0700 Received: from zeus.spd.analog.com (10.64.82.11) by NWD2HUBCAS7.ad.analog.com (10.64.69.107) with Microsoft SMTP Server id 14.3.301.0; Fri, 27 Jul 2018 02:41:29 -0400 Received: from saturn.analog.com ([10.50.1.244]) by zeus.spd.analog.com (8.15.1/8.15.1) with ESMTP id w6R6fKLq003966; Fri, 27 Jul 2018 02:41:21 -0400 From: Alexandru Ardelean To: , , , CC: Michael Hennerich , Alexandru Ardelean Subject: [PATCH] iio: ad9523: support for external signals via gpios Date: Fri, 27 Jul 2018 09:41:09 +0300 Message-ID: <20180727064109.6828-1-alexandru.ardelean@analog.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 X-ADIRoutedOnPrem: True X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:137.71.25.57;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(136003)(376002)(39840400004)(396003)(346002)(2980300002)(438002)(199004)(189003)(476003)(77096007)(126002)(1857600001)(2906002)(426003)(2616005)(106002)(36756003)(336012)(26005)(316002)(486006)(110136005)(16586007)(54906003)(48376002)(1076002)(86362001)(50466002)(186003)(44832011)(2201001)(47776003)(4326008)(478600001)(7696005)(8936002)(53416004)(356003)(50226002)(51416003)(246002)(8676002)(7636002)(5660300001)(106466001)(107886003)(6666003)(305945005)(2101003);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2PR03MB554;H:nwd2mta4.analog.com;FPR:;SPF:Pass;LANG:en;PTR:nwd2mail11.analog.com;A:1;MX:1; X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD025;1:mOPSD4bYfXugsJKcGVev8EtrH7EjWq17lEmNxGQMtefxk3ISvpaOWodF0N/Ki9yKak0O+/Vb+LuDnGTNOrATmYyp9GvxEWXmEeHioJ+sQq7krI5HBvITH9gy1qRIT08t X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3724f0d7-9210-4715-56fc-08d5f38bfc56 X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989117)(5600074)(711020)(4608076)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060);SRVR:BY2PR03MB554; X-Microsoft-Exchange-Diagnostics: 1;BY2PR03MB554;3:+qFDdjJA/R2zjHeZffMPryq2cutn97oDpMIPJCcs2p0OnsjKqODOSkiMu2E+xRZJOYwKKAC3rf22OU1Sjux9awWOiq99tRJTeJrIeRqyEOaTyK7uZi0Ks79splHAqoiCvtjPwOZKbRrodQO/VcC7cAWiXEbZ35CQYlkYvdrbS+YWljgizqEftIFAilF9rHGchnfXo9z7rixuVgjZG4mF/uvw0c+vjmsvQRWUF5NsueDJTuhtU2oPHufkKjBp/LrUn3EMSZf1sWAkcOqBeos0oydlidIL69WHK3/cgcDaZwN/jB3zda2xrKX6yUTzPIK56c3Fn7n7NMQCJTVNIJV7ZYYzyf9501EjFV2Qq7bXa5c=;25:93VkuWpptDVgyZJd1wp/5t8J+C2yGdF1TXcmisUN1t3K4AJnQRArM1iDpCAe8h2bccbRI3XzGFdFsigG+gn1gcirHJoHYQXCeWXBwvK8QcoCyk5yaUJ6LwZsStKQMsS0N7p5Pou0Vwn4QexiEOwO5BBRp3yFmzXCWWGtFQAwzTgDg9XrxmB38Xf9uidXg5Vph3c7+7nDCn2KcdXHM+FabUTn4pLxRazi0022Hxtvu5/hyj9kT+vkvN5Mh7i6q7FX+QtmVqeeDG5aQhUHQtVR6L7iVe7vhJa0+tIpJsRg5Uz6t9cxhk7yZ7MNcW9VNIxmlw9rTjwPeIt3bVBaQPh+qw== X-MS-TrafficTypeDiagnostic: BY2PR03MB554: X-Microsoft-Exchange-Diagnostics: 1;BY2PR03MB554;31:FbJJhO+5CnD1oRHu0+Ueu3IxXJppC6M8pTBG/egcirlj3veEOJMhNTDjZO+Onm34zzFGcFbAE6knYRzdD/Xvaxp6Fn3+8Eog0VVUcLW7K36cOLO5g5GRQllgsNp6doE/tw8/+y+hkY04H6mNewblxFG0e0brdalKbgodpG+XlNWo2+JaH6eVLOWge4v+B7e1gRQI1I2YXzfn6GAtBHAKF/+AeCjEJjK8K3CEkyQL8iY=;20:mD9oxY2Qm8zkRVxx9NaVzXgjyGrazywFXmsdPa7K/44iRQBly8i7keJt+nquN87Qhhr+WmvzbM35PURTVwO7Bx9Dn3WZVVWdoI2qGKVgwPw/KYdNVzulRhHuCDE5z4/4c0y4e6MOOsxAYAwj2uKPCmGeeYxu+LmLjMeH/FGs1s31uFmISQfvvqv1gilvfCNCtiUOPsHeNZ267VudcSJ7PidktoYSbRaMpJad0yTp7kdhM0mIzPbk6kllt3tCWQLk//Wz8DFcx6K1scwGvGLyHVikc9sesXaXtMGTW+mmB3HyL5B5TfZvwhm3ky8ZzaHrWw8Kw9wh+pi/55ryg6BhzhTzgLlosFxT5UA5+Cz+jjZ5HNxDmnpJ+noBODgIYIJjhsfXGpSUSpS0RSqzFXtQcnbHG4XbDgqdEmI0jkW0eYc2wRTL7Hya5VwogJIQGNk75jpZWJ+mOUE4NxlBqyHNGJKdoY0YpvuRuMmGNepgEh5uB1OxqOal76AGNhgsZurh X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(232431446821674); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(3231311)(944501410)(52105095)(93006095)(93004095)(10201501046)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(20161123560045)(20161123562045)(6072148)(201708071742011)(7699016);SRVR:BY2PR03MB554;BCL:0;PCL:0;RULEID:;SRVR:BY2PR03MB554; X-Microsoft-Exchange-Diagnostics: 1;BY2PR03MB554;4:RqHnO8yfQFvVN9cCHDFekTCLAWJQLpeAPOWEOOIIp42l3wOyufEQJY7DdeNT1WBSu412SlulYG/DCy65h0J3wQVGESfl6gl0Haw59iy98qYKE6+i2f9zftqp7xoB7F8N9SfpnYrNK4AJ/vn6m8nH/uCOkkAsKsO8WJhii4GWQ2oM16YgNOc0UNQqHMx63MY/kRlMT6v3DEoNJkRCz10VSwmuw+fUIIKts9NvoPD695H0k0yllJbhKfRarDNUqplO15Fl26mKn8CccFdCVbG68xifVH1x2v7aHML667UKWOgA3dbLFtktilLs/PGLwBFN X-Forefront-PRVS: 07467C4D33 X-Microsoft-Exchange-Diagnostics: 1;BY2PR03MB554;23:JOt/d26BIC4VoNR8F0wyZtZSYoqkg94urenRX+DIJTOtUBrzxUACvX3mMqUpqistJFSOlmcUcqE/q60iO9lEcsMRslLFS9uC2DbNXRdzpi9s0y27QhGNj7cJ9VXOvEluyKiK7wBalXMwe08pS9f0OUOpXVzzpAFepp9UdKBserH3KbypnBmdym1BpqzewCd7UQQPajKwt+6aGicTl0C7gcksvYD7/az4DAnTj9G95uJe1319tyK7mK062uMSc6V39g9gB2daCQ1ViwCXSusWWR3E0ED+r6zRLAMtRjnCN7Lgs7fsyx7HxAUFGNRTjC21wCrHXAO/duESwVS9JqiP/pCxu0YsUGR+08rRTeLM7KnxqEJenczYuJyxian72MWgnKFOx6vQ9ZFDehzer/ii5hDni5koV3dFw0sI/cLsh4AgOJ6dMb+Ih40IXjJ/vIOiZwC97KxZzSpX0Y/6xRCXfBJ1QfTPKbOUlaS4H73QTnwuL2zP1bgqjVNM+1BgfH0W2hased+tCD1xcbjN4pppRd+rRAie1Lx6B4mvenT5F9cALFcuNIStpY3GZw8ln7jFhUj6j5JRJWVpc0ccTzGR+6h4Pnd67U3dmr9CAR4IfEZyVkSiY91vZabC5uk2Wi380WVf9dbB4f6ePPLcBhboI6X5YU5Qi90h1fLs2tjNdLMqZpPUClsu3Hk5KVqRH6WTmzMUbHIU1MfhRNwRlMdYbCQ5o+R8VCahzMkLdY6mFXyBQiVqBYQAJojSo6+3zyahGmuiib6jwrtM4umne4K7DevqqWuwjcaxLxT391Volr/Hb3HwbHytMmnu6J9HBQbb9s4Rb2ur/ftavq5sMiDpq+m4PzwiT1jDwObWVXApjuXnUny8xOBlstepMyuxaJJX8lAYc/HQ8SkanqOQvYckaKYh/SUybBXdvwgFT0w/AR4UQiOYtZV3+3JFAM2GoPjXoouV5A1okgdE4Yt3V435KNmdcsYffAMKTJKBSTphK3Oqo4B5eUH/KZv0GLb3QlnrAh0GE5of1O36NMuKMUFevYVa9a8ayJcO6FJQt5YpTDEpMDOtlYAfRRZSHKZq6UbdWDcIR3shDfhXQ8+4+fKQSA== X-Microsoft-Antispam-Message-Info: fD7i89EUhoqXJgqM4kURUguuv3Ry9wQdwn69zH52s/Lo/zFoEXDjkkSiWNIi8DJEYlWc7BadAv7lKhgLggVIKOTzm/ybUIBIGNU2XVR8hnocv4ZMUXNCiLhWWu74TjkLCVr+T6Jjocq7jv0KmcxUnoQ9xWxAUkqsp/nM1q45DI6TgetOHfCLwEbwUvidsZ+N90P8hFnTbwMJ1EPdc9LMr8WBLbJIp7sAQ9f6iNHF7kkBSQAfC8xZDH5sORH6H0fhnammHWBno+742pXnKYwRui5zLwh3SlCsmY2xxauAJOw0OlKdzr2ratHhqJV8jwyiceLIk5Lrdm0kdnLlb92WSAx6pPHzm/dTWsMOo9rwxqw= X-Microsoft-Exchange-Diagnostics: 1;BY2PR03MB554;6:rFaiJjy4TgNrW73pU5yl3Qdyg14Xe6QGXOhKZ2oTKVmrZnbL1NeVWbEMus5JOwN+aFS7lqUUjfG+Z4lvg1ynTCtuFYRxdHKn1fsFQnVCq4y1sLLLSV971atGPD3zBAC++M/Tn0iYOnv2bwGmzXmIcoWDmJ0c1vv6BjhFLIybQSfbTtY74DpvjmPyioshAO8/8EGCQX/Z/UxiyCCuRM6v5mVoGhmNCuUFXS36UMLIh2lFAgcPqEbW+EGT3cGw6dAj37Z/t6z7Rfz2wB5tgoxl0LGFC2PGfGHVTUokuXVh4XDvnpwB14busppyZCGk8zrlOG/irtlPOGoiidUHrAmo5OfBtGDLcLBMb9/oo3P6I0PFfzJTgG9kSHVjM3/pFMpw+2wWcxWpMDAgRcQGPJYjWAOnCVgOlPdGr78voYq3VB1X0TMRPdRwGH7VWz3iZGNXHd1TjXtmY1mQ3ECQWpTmdg==;5:Wnh22a0yfJDGWwJt6hu16+q4ltX19nQCSZBk5G91Xi/pwv6gG7A6J61tl9vetS2ANvo4xnibtGDmNADjBSzXYiM4tTzP1WZmCRKzJAWZoHIL6ACKu+FPIox6Valuk4iaU7KAPmsXHxqym4jXnMt6AAOSWXDOe8DS6GCVvw5Pel8=;7:fp/JUESqbuF0+wEYsl1K4B7XUsP9WjwM7BdjEE7UfbjrSzst6wd6CNQj/ni9s153xHU5SyGrXaqwWORg3XyEy1LjoqNrH44azZHtAykKmnI++42K+XQZie/Qsb8kqzSVoJ6Zd4TbG+5Ch8wlBVkyk7r9BpgvxEuDT3beUIQL7hPV6Q+NU1AmqXB3Qx0LSvji1TkEwZyPhRJA/+2lENRwMPJo+7M7tGWlZctLCUlZTbQ8DtVUz7aXZ9Ole8yUTNG8 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jul 2018 06:41:30.1219 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3724f0d7-9210-4715-56fc-08d5f38bfc56 X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=eaa689b4-8f87-40e0-9c6f-7228de4d754a;Ip=[137.71.25.57];Helo=[nwd2mta4.analog.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR03MB554 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 From: Michael Hennerich The AD9523 supports external signals for power-down mode, resetting the device and sync timing. This change add support for specifying values for these signals via the gpios and initializing them default values. For the reset signal, the GPIO is toggled during probing to re-initialize the device to a known state. Signed-off-by: Michael Hennerich Signed-off-by: Lars-Peter Clausen Signed-off-by: Alexandru Ardelean --- drivers/iio/frequency/ad9523.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/drivers/iio/frequency/ad9523.c b/drivers/iio/frequency/ad9523.c index 37504739c277..38a8f73bd8d9 100644 --- a/drivers/iio/frequency/ad9523.c +++ b/drivers/iio/frequency/ad9523.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -268,6 +269,9 @@ struct ad9523_state { struct regulator *reg; struct ad9523_platform_data *pdata; struct iio_chan_spec ad9523_channels[AD9523_NUM_CHAN]; + struct gpio_desc *pwrdown_gpio; + struct gpio_desc *reset_gpio; + struct gpio_desc *sync_gpio; unsigned long vcxo_freq; unsigned long vco_freq; @@ -988,6 +992,32 @@ static int ad9523_probe(struct spi_device *spi) return ret; } + st->pwrdown_gpio = devm_gpiod_get_optional(&spi->dev, "powerdown", + GPIOD_OUT_HIGH); + if (IS_ERR(st->pwrdown_gpio)) { + ret = PTR_ERR(st->pwrdown_gpio); + goto error_disable_reg; + } + + st->reset_gpio = devm_gpiod_get_optional(&spi->dev, "reset", + GPIOD_OUT_LOW); + if (IS_ERR(st->reset_gpio)) { + ret = PTR_ERR(st->reset_gpio); + goto error_disable_reg; + } + + if (st->reset_gpio) { + udelay(1); + gpiod_direction_output(st->reset_gpio, 1); + } + + st->sync_gpio = devm_gpiod_get_optional(&spi->dev, "sync", + GPIOD_OUT_HIGH); + if (IS_ERR(st->sync_gpio)) { + ret = PTR_ERR(st->sync_gpio); + goto error_disable_reg; + } + spi_set_drvdata(spi, indio_dev); st->spi = spi; st->pdata = pdata;