From patchwork Wed Mar 18 17:21:15 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lee Jones X-Patchwork-Id: 45981 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-wi0-f200.google.com (mail-wi0-f200.google.com [209.85.212.200]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id ED6B22153C for ; Wed, 18 Mar 2015 17:21:50 +0000 (UTC) Received: by wivr20 with SMTP id r20sf8968850wiv.0 for ; Wed, 18 Mar 2015 10:21:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:delivered-to:from:to:cc:subject :date:message-id:in-reply-to:references:sender:precedence:list-id :x-original-sender:x-original-authentication-results:mailing-list :list-post:list-help:list-archive:list-unsubscribe; bh=67PIU66i1P8Ua411wxwqKihtGzmisAAH26ZpfZSktUg=; b=hRomD51SuqsnMESXrzxcuL6Lghj8FPHEDlDlRjl3WGZ0ZD42lAsg+f90Hm+fZBMk1A 7aLx93zQWAJeQbArXoXLUUWDeUFfrbsmAzWfmB7PCQzS4QsrhwMv6APx5OMidbuiEYAt zfREagzH+skGX5J28HP7pB+mV9mH/6gnWT74mi8SATRhKnbDqlPvNHhDp3/GdFmDeDRi 6eeyootAr1tpMH6McolmSHWDRGQQbXg0lfGAHRQ/1WXj1zTHL0hWq8f+kuppRiBXeDYO niEkRH86UrzwTm+2Qdhb28Zj5iDQnZloG4+R8P9kzW9UtwA26CzYanDN97h730RfczED 70xA== X-Gm-Message-State: ALoCoQn9Yc2JDpDYdPRTUWaQ9HW9tRm/DxK7EqSWfzUh2YtIcnzg+2bjYr+DdQssO8h4dBoKeqpJ X-Received: by 10.112.198.34 with SMTP id iz2mr11277873lbc.22.1426699310066; Wed, 18 Mar 2015 10:21:50 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.152.21.199 with SMTP id x7ls201489lae.0.gmail; Wed, 18 Mar 2015 10:21:49 -0700 (PDT) X-Received: by 10.152.44.225 with SMTP id h1mr62628985lam.99.1426699309887; Wed, 18 Mar 2015 10:21:49 -0700 (PDT) Received: from mail-lb0-f180.google.com (mail-lb0-f180.google.com. [209.85.217.180]) by mx.google.com with ESMTPS id s6si13367414las.86.2015.03.18.10.21.49 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 18 Mar 2015 10:21:49 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.180 as permitted sender) client-ip=209.85.217.180; Received: by lbnq5 with SMTP id q5so6709950lbn.0 for ; Wed, 18 Mar 2015 10:21:49 -0700 (PDT) X-Received: by 10.152.197.34 with SMTP id ir2mr65059032lac.36.1426699309764; Wed, 18 Mar 2015 10:21:49 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.112.35.133 with SMTP id h5csp1294501lbj; Wed, 18 Mar 2015 10:21:49 -0700 (PDT) X-Received: by 10.107.9.213 with SMTP id 82mr114426577ioj.57.1426699308291; Wed, 18 Mar 2015 10:21:48 -0700 (PDT) Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id rh12si37261231pdb.159.2015.03.18.10.21.47; Wed, 18 Mar 2015 10:21:48 -0700 (PDT) Received-SPF: none (google.com: linux-kernel-owner@vger.kernel.org does not designate permitted sender hosts) client-ip=209.132.180.67; Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756598AbbCRRVe (ORCPT + 27 others); Wed, 18 Mar 2015 13:21:34 -0400 Received: from mail-we0-f174.google.com ([74.125.82.174]:35791 "EHLO mail-we0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756540AbbCRRV3 (ORCPT ); Wed, 18 Mar 2015 13:21:29 -0400 Received: by webcq43 with SMTP id cq43so37793005web.2 for ; Wed, 18 Mar 2015 10:21:28 -0700 (PDT) X-Received: by 10.180.208.33 with SMTP id mb1mr8667313wic.69.1426699287945; Wed, 18 Mar 2015 10:21:27 -0700 (PDT) Received: from localhost.localdomain ([81.134.86.251]) by mx.google.com with ESMTPSA id v13sm4021936wij.10.2015.03.18.10.21.26 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 18 Mar 2015 10:21:27 -0700 (PDT) From: Lee Jones To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linus.walleij@linaro.org, linux-gpio@vger.kernel.org Cc: lee.jones@linaro.org, kernel@stlinux.com Subject: [PATCH v2 2/6] pinctrl: st: Introduce a 'get pin function' call Date: Wed, 18 Mar 2015 17:21:15 +0000 Message-Id: <1426699279-9258-3-git-send-email-lee.jones@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1426699279-9258-1-git-send-email-lee.jones@linaro.org> References: <1426699279-9258-1-git-send-email-lee.jones@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: list List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: lee.jones@linaro.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.180 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , This call fetches the numerical function value a specified pin is currently operating in. Function zero is more often than not the GPIO function. Greater than zero values represent an alternative function. You'd need to either look those up in the Device Tree sources or the Programmer's Manual. Acked-by: Maxime Coquelin Signed-off-by: Lee Jones --- drivers/pinctrl/pinctrl-st.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/pinctrl/pinctrl-st.c b/drivers/pinctrl/pinctrl-st.c index 9e5ec00..5362e45 100644 --- a/drivers/pinctrl/pinctrl-st.c +++ b/drivers/pinctrl/pinctrl-st.c @@ -460,6 +460,20 @@ static void st_pctl_set_function(struct st_pio_control *pc, regmap_field_write(alt, val); } +static unsigned int st_pctl_get_pin_function(struct st_pio_control *pc, int pin) +{ + struct regmap_field *alt = pc->alt; + unsigned int val; + int offset = pin * 4; + + if (!alt) + return 0; + + regmap_field_read(alt, &val); + + return (val >> offset) & 0xf; +} + static unsigned long st_pinconf_delay_to_bit(unsigned int delay, const struct st_pctl_data *data, unsigned long config) {