Message ID | 20221219124240.62781-1-andriy.shevchenko@linux.intel.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp2363937wrn; Mon, 19 Dec 2022 04:44:57 -0800 (PST) X-Google-Smtp-Source: AMrXdXvEn59OsVrkSdTDWKGD6ZDpIlv5TGkb6FtY53+vuNS6y+8f+Ke40r4hcUOsucMa20ii9tic X-Received: by 2002:a05:6402:100b:b0:479:96c2:61be with SMTP id c11-20020a056402100b00b0047996c261bemr4066879edu.10.1671453897705; Mon, 19 Dec 2022 04:44:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671453897; cv=none; d=google.com; s=arc-20160816; b=zLdjjvHTRvlCQ42Y5f74PbxgnAlRQlEZqHU1WAJ/5HKYFg4ov9ppokN6jvtA9ZHdHA WXf4FCYm2DM680CTrqpaHP2S1rPcBUVyuPHSNCy+O33xRbs6MVQZ96QyCkGsi1jzfq+4 3bsqJ3jWpNRsuuqpQRNcmLFd8jmmXaxKTDrwH/lZpxRxG8AqsHoMLXMLZiYZeLFksXm2 jN1nNCYgG1Wd++S0apR+vYKrgbgYRCKCb6E0P947pDnmkH25yUR9dJyVTby0Erp0CrkC +OHkhF7+p0q+oqh6XuPYd0LTdC8NQHZ4Sk4VxrhZOCqagRR2pgPYAPvSVqYLOVdYd11I n/kw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=vsq3zkc8v0WSpQStEOEzJiqrUAznJRLE0UYE2Hc3UKI=; b=daUPvX0qKKddojuFD0mFfCeffeVAhUe8zOyZiDqP+yPDLj5aXcZfa6Eo9Wta0zBeQb oFZasC/ZPqT9FkkyqtHxgf0S1lI+7gYSK8f15wVgnEDD8qE2wEwxk7Apw1IxjlpyqiWO AZTPDCfrzGcftAUVDnGSWz6wI9tWVyCcAqCG53faQ6LOlsvv1OjFMmo/CGxBG5glpzYM yskLhkP5DbHiMsNg5qPIcEpi8p0MKGNJb8gzLgjf3UiYCBjXiKUuPrlaWtwLnd4RPLu6 nHuhKJfL8k8qPAmyD6CgL4MkMeH7bdTw1VA9k3IC+gv5TJG0bMBpLqrqwtBtRaOWWjDR uf3Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=MTke11rj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s25-20020a056402037900b00461d9b46883si8147639edw.519.2022.12.19.04.44.34; Mon, 19 Dec 2022 04:44:57 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=MTke11rj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231890AbiLSMm1 (ORCPT <rfc822;peekingduck44@gmail.com> + 99 others); Mon, 19 Dec 2022 07:42:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50910 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231857AbiLSMmX (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Mon, 19 Dec 2022 07:42:23 -0500 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C9727E00F; Mon, 19 Dec 2022 04:42:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1671453742; x=1702989742; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=dlPPnlNjLJmioznly2ozXS6UiYy5/U2w53JSKTh6byQ=; b=MTke11rjUmg1NYxPOodI0QenntzWaH1bWsWXYNxYxytFKAVaAfatxk+5 LEw/ZipU0fqn6VdROPZCsPN4zJzzV2uwEJ40hqyh4R91NDXUiuAMkUmO/ oF2/YguZVaC1HjtuZMDWR8h/RF3/kRFdUrw4fC0CcWNaWff9AqJXGiN/F ULCPC18hJs75q439iamYugtM7yZg9P1MzvXFnkq7JYEuCe2UyWGVD11rq aIpWG9iBLv2zpzW7WTSg/kDOWawGtej2w+5HCzNTVcAYzKPlbIU+/Ov8+ rd9Wfx3chOg4cN3CaMI/cZpenssVgd3sq2Pa3L7M3zW1SGa1GzhmEvR18 w==; X-IronPort-AV: E=McAfee;i="6500,9779,10565"; a="320510332" X-IronPort-AV: E=Sophos;i="5.96,255,1665471600"; d="scan'208";a="320510332" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Dec 2022 04:42:22 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10565"; a="681210329" X-IronPort-AV: E=Sophos;i="5.96,255,1665471600"; d="scan'208";a="681210329" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga008.jf.intel.com with ESMTP; 19 Dec 2022 04:42:20 -0800 Received: by black.fi.intel.com (Postfix, from userid 1003) id BBD87F7; Mon, 19 Dec 2022 14:42:49 +0200 (EET) From: Andy Shevchenko <andriy.shevchenko@linux.intel.com> To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Mika Westerberg <mika.westerberg@linux.intel.com>, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Andy Shevchenko <andy@kernel.org>, Linus Walleij <linus.walleij@linaro.org> Subject: [PATCH v1 1/8] pinctrl: Introduce struct pinfunction and PINCTRL_PINFUNCTION() macro Date: Mon, 19 Dec 2022 14:42:33 +0200 Message-Id: <20221219124240.62781-1-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752646442129890473?= X-GMAIL-MSGID: =?utf-8?q?1752646442129890473?= |
Series |
[v1,1/8] pinctrl: Introduce struct pinfunction and PINCTRL_PINFUNCTION() macro
|
|
Commit Message
Andy Shevchenko
Dec. 19, 2022, 12:42 p.m. UTC
There are many pin control drivers define their own data type for
pin function representation which is the same or embed the same data
as newly introduced one. Provide the data type and convenient macro
for all pin control drivers.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
include/linux/pinctrl/pinctrl.h | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
Comments
On Mon, Dec 19, 2022 at 02:42:33PM +0200, Andy Shevchenko wrote: > There are many pin control drivers define their own data type for > pin function representation which is the same or embed the same data > as newly introduced one. Provide the data type and convenient macro > for all pin control drivers. The stats for the entire series: drivers/pinctrl/intel/pinctrl-baytrail.c | 10 +++++----- drivers/pinctrl/intel/pinctrl-cherryview.c | 6 +++--- drivers/pinctrl/intel/pinctrl-intel.c | 6 +++--- drivers/pinctrl/intel/pinctrl-intel.h | 16 +++++----------- drivers/pinctrl/intel/pinctrl-lynxpoint.c | 8 ++++---- drivers/pinctrl/intel/pinctrl-merrifield.c | 6 +++--- drivers/pinctrl/intel/pinctrl-moorefield.c | 6 +++--- include/linux/pinctrl/pinctrl.h | 20 ++++++++++++++++++++ 8 files changed, 46 insertions(+), 32 deletions(-)
On Mon, Dec 19, 2022 at 04:42:41PM +0200, Andy Shevchenko wrote: > On Mon, Dec 19, 2022 at 02:42:33PM +0200, Andy Shevchenko wrote: > > There are many pin control drivers define their own data type for > > pin function representation which is the same or embed the same data > > as newly introduced one. Provide the data type and convenient macro > > for all pin control drivers. > > The stats for the entire series: > > drivers/pinctrl/intel/pinctrl-baytrail.c | 10 +++++----- > drivers/pinctrl/intel/pinctrl-cherryview.c | 6 +++--- > drivers/pinctrl/intel/pinctrl-intel.c | 6 +++--- > drivers/pinctrl/intel/pinctrl-intel.h | 16 +++++----------- > drivers/pinctrl/intel/pinctrl-lynxpoint.c | 8 ++++---- > drivers/pinctrl/intel/pinctrl-merrifield.c | 6 +++--- > drivers/pinctrl/intel/pinctrl-moorefield.c | 6 +++--- > include/linux/pinctrl/pinctrl.h | 20 ++++++++++++++++++++ > 8 files changed, 46 insertions(+), 32 deletions(-) Thanks! For the series, Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
On Tue, Dec 20, 2022 at 08:20:31AM +0200, Mika Westerberg wrote: > On Mon, Dec 19, 2022 at 04:42:41PM +0200, Andy Shevchenko wrote: > > On Mon, Dec 19, 2022 at 02:42:33PM +0200, Andy Shevchenko wrote: > > > There are many pin control drivers define their own data type for > > > pin function representation which is the same or embed the same data > > > as newly introduced one. Provide the data type and convenient macro > > > for all pin control drivers. > > > > The stats for the entire series: > > > > drivers/pinctrl/intel/pinctrl-baytrail.c | 10 +++++----- > > drivers/pinctrl/intel/pinctrl-cherryview.c | 6 +++--- > > drivers/pinctrl/intel/pinctrl-intel.c | 6 +++--- > > drivers/pinctrl/intel/pinctrl-intel.h | 16 +++++----------- > > drivers/pinctrl/intel/pinctrl-lynxpoint.c | 8 ++++---- > > drivers/pinctrl/intel/pinctrl-merrifield.c | 6 +++--- > > drivers/pinctrl/intel/pinctrl-moorefield.c | 6 +++--- > > include/linux/pinctrl/pinctrl.h | 20 ++++++++++++++++++++ > > 8 files changed, 46 insertions(+), 32 deletions(-) > > Thanks! > > For the series, > > Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> Pushed to my review and testing queue, thanks!
On Mon, Dec 19, 2022 at 1:42 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > There are many pin control drivers define their own data type for > pin function representation which is the same or embed the same data > as newly introduced one. Provide the data type and convenient macro > for all pin control drivers. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Very nice and helpful! Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij
diff --git a/include/linux/pinctrl/pinctrl.h b/include/linux/pinctrl/pinctrl.h index a0d39b303431..4d252ea00ed1 100644 --- a/include/linux/pinctrl/pinctrl.h +++ b/include/linux/pinctrl/pinctrl.h @@ -206,6 +206,26 @@ extern int pinctrl_get_group_pins(struct pinctrl_dev *pctldev, const char *pin_group, const unsigned **pins, unsigned *num_pins); +/** + * struct pinfunction - Description about a function + * @name: Name of the function + * @groups: An array of groups for this function + * @ngroups: Number of groups in @groups + */ +struct pinfunction { + const char *name; + const char * const *groups; + size_t ngroups; +}; + +/* Convenience macro to define a single named pinfunction */ +#define PINCTRL_PINFUNCTION(_name, _groups, _ngroups) \ +(struct pinfunction) { \ + .name = (_name), \ + .groups = (_groups), \ + .ngroups = (_ngroups), \ + } + #if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_PINCTRL) extern struct pinctrl_dev *of_pinctrl_get(struct device_node *np); #else