From patchwork Mon Jun 1 23:09:13 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Zapolskiy X-Patchwork-Id: 479219 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 2F3D71412F4 for ; Tue, 2 Jun 2015 09:17:21 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753976AbbFAXRT (ORCPT ); Mon, 1 Jun 2015 19:17:19 -0400 Received: from li271-223.members.linode.com ([178.79.152.223]:53687 "EHLO mail.mleia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751633AbbFAXRT (ORCPT ); Mon, 1 Jun 2015 19:17:19 -0400 X-Greylist: delayed 590 seconds by postgrey-1.27 at vger.kernel.org; Mon, 01 Jun 2015 19:17:18 EDT Received: from mail.mleia.com (localhost [127.0.0.1]) by mail.mleia.com (Postfix) with ESMTP id 20E019AE5B; Tue, 2 Jun 2015 00:12:15 +0100 (BST) From: Vladimir Zapolskiy To: Mark Brown , Liam Girdwood , Linus Walleij , Alexandre Courbot Cc: Jaroslav Kysela , Takashi Iwai , linux-gpio@vger.kernel.org, alsa-devel@alsa-project.org, Bard Liao , Oder Chiou Subject: [PATCH 2/7] ASoC: rt5677: clean up gpiolib callbacks Date: Tue, 2 Jun 2015 02:09:13 +0300 Message-Id: <1433200158-6890-2-git-send-email-vz@mleia.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1433200031-6748-1-git-send-email-vz@mleia.com> References: <1433200031-6748-1-git-send-email-vz@mleia.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-49551924 X-CRM114-CacheID: sfid-20150602_001215_157514_6B43EEF2 X-CRM114-Status: GOOD ( 10.28 ) Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org The main intention of the change is to remove bitwise operations on GPIO level value as a preceding change before updating gpiolib callbacks to utilize bool type representing a GPIO level. Usage of generic over GPIO[1-5] macros allows to remove calculations with magic numbers. No functional change. Signed-off-by: Vladimir Zapolskiy Cc: Bard Liao Cc: Oder Chiou --- sound/soc/codecs/rt5677.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/sound/soc/codecs/rt5677.c b/sound/soc/codecs/rt5677.c index 31d969a..28908f5a 100644 --- a/sound/soc/codecs/rt5677.c +++ b/sound/soc/codecs/rt5677.c @@ -4507,16 +4507,23 @@ static inline struct rt5677_priv *gpio_to_rt5677(struct gpio_chip *chip) static void rt5677_gpio_set(struct gpio_chip *chip, unsigned offset, int value) { struct rt5677_priv *rt5677 = gpio_to_rt5677(chip); + unsigned int val = 0; switch (offset) { case RT5677_GPIO1 ... RT5677_GPIO5: + if (value) + val = RT5677_GPIO_OUT_HI(offset); + regmap_update_bits(rt5677->regmap, RT5677_GPIO_CTRL2, - 0x1 << (offset * 3 + 1), !!value << (offset * 3 + 1)); + RT5677_GPIO_OUT_MASK(offset), val); break; case RT5677_GPIO6: + if (value) + val = RT5677_GPIO6_OUT_HI; + regmap_update_bits(rt5677->regmap, RT5677_GPIO_CTRL3, - RT5677_GPIO6_OUT_MASK, !!value << RT5677_GPIO6_OUT_SFT); + RT5677_GPIO6_OUT_MASK, val); break; default: @@ -4528,18 +4535,27 @@ static int rt5677_gpio_direction_out(struct gpio_chip *chip, unsigned offset, int value) { struct rt5677_priv *rt5677 = gpio_to_rt5677(chip); + unsigned int val; switch (offset) { case RT5677_GPIO1 ... RT5677_GPIO5: + val = RT5677_GPIO_DIR_OUT(offset); + + if (value) + val |= RT5677_GPIO_OUT_HI(offset); + regmap_update_bits(rt5677->regmap, RT5677_GPIO_CTRL2, - 0x3 << (offset * 3 + 1), - (0x2 | !!value) << (offset * 3 + 1)); + RT5677_GPIO_DIR_OUT_MASK(offset), val); break; case RT5677_GPIO6: + val = RT5677_GPIO6_DIR_OUT; + + if (value) + val |= RT5677_GPIO6_OUT_HI; + regmap_update_bits(rt5677->regmap, RT5677_GPIO_CTRL3, - RT5677_GPIO6_DIR_MASK | RT5677_GPIO6_OUT_MASK, - RT5677_GPIO6_DIR_OUT | !!value << RT5677_GPIO6_OUT_SFT); + RT5677_GPIO6_DIR_MASK | RT5677_GPIO6_OUT_MASK, val); break; default: @@ -4568,12 +4584,12 @@ static int rt5677_gpio_direction_in(struct gpio_chip *chip, unsigned offset) switch (offset) { case RT5677_GPIO1 ... RT5677_GPIO5: regmap_update_bits(rt5677->regmap, RT5677_GPIO_CTRL2, - 0x1 << (offset * 3 + 2), 0x0); + RT5677_GPIO_DIR_MASK(offset), 0x0); break; case RT5677_GPIO6: regmap_update_bits(rt5677->regmap, RT5677_GPIO_CTRL3, - RT5677_GPIO6_DIR_MASK, RT5677_GPIO6_DIR_IN); + RT5677_GPIO6_DIR_MASK, RT5677_GPIO6_DIR_IN); break; default: