From patchwork Mon Dec 19 12:32:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 635311 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 342CEC10F1B for ; Mon, 19 Dec 2022 12:33:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232107AbiLSMc5 (ORCPT ); Mon, 19 Dec 2022 07:32:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39098 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232063AbiLSMch (ORCPT ); Mon, 19 Dec 2022 07:32:37 -0500 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CC3E1EE1D; Mon, 19 Dec 2022 04:31:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1671453106; x=1702989106; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=eN8P+N64P95zR91Fwvb5XL2UO1+uvpxDLZPoDQkp4Ig=; b=O8s7VviL+cw9tp9FrDRMaajNKt8ltgGY2Rijq1XO99LsyZG/SikFjUe0 Cw580K0qzxISf/Tj87jAaD4uY1G5EK9067KinJKnIddsoexM3cpvttD7T 8FUkLOCX5zs8YTch2zpvo7T1Vx+8azxxcMT+nDZslqjI6EHrchtKH+m6I 2MkpBg4dk+ThHRZbXM95cjL3zWgDaQfsCjjXOQN1sG/o499R5Uk7VKzF4 Hhzu5R7YtJQ5qXGe+xyqzQBi1pO7mfHEoyuOv0+iwCxEyQpPBD9Q0e9yT lU30fTYD4hWAArQUEy1x+5tBlm4aecgM3BCzzJE5lpMSTi99oM5BVKwZV w==; X-IronPort-AV: E=McAfee;i="6500,9779,10565"; a="299670630" X-IronPort-AV: E=Sophos;i="5.96,255,1665471600"; d="scan'208";a="299670630" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Dec 2022 04:31:45 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10565"; a="896027912" X-IronPort-AV: E=Sophos;i="5.96,255,1665471600"; d="scan'208";a="896027912" Received: from black.fi.intel.com ([10.237.72.28]) by fmsmga006.fm.intel.com with ESMTP; 19 Dec 2022 04:31:43 -0800 Received: by black.fi.intel.com (Postfix, from userid 1003) id CB011F7; Mon, 19 Dec 2022 14:32:13 +0200 (EET) From: Andy Shevchenko To: Andy Shevchenko , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Mika Westerberg , Andy Shevchenko , Linus Walleij Subject: [PATCH v1 1/4] pinctrl: intel: Add default case to intel_config_set_pull() Date: Mon, 19 Dec 2022 14:32:05 +0200 Message-Id: <20221219123208.5505-1-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org For the sake of symmetry with intel_config_get_pull(), add a default case to the outer switch. Signed-off-by: Andy Shevchenko Acked-by: Mika Westerberg --- drivers/pinctrl/intel/pinctrl-intel.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c index 8181a65fb815..4b1d5a21aa68 100644 --- a/drivers/pinctrl/intel/pinctrl-intel.c +++ b/drivers/pinctrl/intel/pinctrl-intel.c @@ -758,6 +758,10 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin, } break; + + default: + ret = -EINVAL; + break; } if (!ret) From patchwork Mon Dec 19 12:32:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 635865 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B76AFC46467 for ; Mon, 19 Dec 2022 12:33:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232128AbiLSMc7 (ORCPT ); Mon, 19 Dec 2022 07:32:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44798 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232067AbiLSMch (ORCPT ); Mon, 19 Dec 2022 07:32:37 -0500 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 644CBF018; Mon, 19 Dec 2022 04:31:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1671453107; x=1702989107; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=/otEhEs+STYSNvH47lyUPmGAgLM3giYO0stFpJM8ox0=; b=cMqCwPqgTvNoSomzr81QRacZ6r8f566ojSRWY+KzJ+kap7qv5Am92liD QoLtfg/f5uWYBFx5d0lVG7iJoxYar5LspMZBvYDuRGgtk9EuD0A710WwL Lw8WyM+QLVCA0YINl37AERNrEwvgGuywGUD3lnyyEszbznDe9RItWnMSx CPjtMv6jVyPMLus5rV9N4Fv+T2WYLv5t9V7NEa+Pt3yJ9s14IVI+1QfCq egropQcs0RcbKYwDqHpj5rODvThHgkEkBjcG7dwDn2vGQDxffJMLDfw4t gN+6ZalCw/C8dqSCAY/ppJgy/juqRNAy95/T5RzleGqhJJsTvlan6QNye g==; X-IronPort-AV: E=McAfee;i="6500,9779,10565"; a="320509090" X-IronPort-AV: E=Sophos;i="5.96,255,1665471600"; d="scan'208";a="320509090" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Dec 2022 04:31:46 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10565"; a="774913750" X-IronPort-AV: E=Sophos;i="5.96,255,1665471600"; d="scan'208";a="774913750" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga004.jf.intel.com with ESMTP; 19 Dec 2022 04:31:44 -0800 Received: by black.fi.intel.com (Postfix, from userid 1003) id D9917B7; Mon, 19 Dec 2022 14:32:13 +0200 (EET) From: Andy Shevchenko To: Andy Shevchenko , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Mika Westerberg , Andy Shevchenko , Linus Walleij Subject: [PATCH v1 2/4] pinctrl: intel: Deduplicate some code in intel_config_set_pull() Date: Mon, 19 Dec 2022 14:32:06 +0200 Message-Id: <20221219123208.5505-2-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20221219123208.5505-1-andriy.shevchenko@linux.intel.com> References: <20221219123208.5505-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org First part is to assign default argument for all cases, since bias disablement doesn't use it anyway. Second part is to clear all bits in the bias setting and depending on the argument and parameter set them as asked. While at it, add break statement to the default cases. Signed-off-by: Andy Shevchenko --- drivers/pinctrl/intel/pinctrl-intel.c | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c index 4b1d5a21aa68..6926f64b68d4 100644 --- a/drivers/pinctrl/intel/pinctrl-intel.c +++ b/drivers/pinctrl/intel/pinctrl-intel.c @@ -691,21 +691,14 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin, raw_spin_lock_irqsave(&pctrl->lock, flags); value = readl(padcfg1); + value &= ~(PADCFG1_TERM_MASK | PADCFG1_TERM_UP); - switch (param) { - case PIN_CONFIG_BIAS_DISABLE: - value &= ~(PADCFG1_TERM_MASK | PADCFG1_TERM_UP); - break; + /* Set default strength value in case none is given */ + if (arg == 1) + arg = 5000; + switch (param) { case PIN_CONFIG_BIAS_PULL_UP: - value &= ~PADCFG1_TERM_MASK; - - value |= PADCFG1_TERM_UP; - - /* Set default strength value in case none is given */ - if (arg == 1) - arg = 5000; - switch (arg) { case 20000: value |= PADCFG1_TERM_20K << PADCFG1_TERM_SHIFT; @@ -721,17 +714,13 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin, break; default: ret = -EINVAL; + break; } + value |= PADCFG1_TERM_UP; break; case PIN_CONFIG_BIAS_PULL_DOWN: - value &= ~(PADCFG1_TERM_UP | PADCFG1_TERM_MASK); - - /* Set default strength value in case none is given */ - if (arg == 1) - arg = 5000; - switch (arg) { case 20000: value |= PADCFG1_TERM_20K << PADCFG1_TERM_SHIFT; @@ -755,6 +744,7 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin, break; default: ret = -EINVAL; + break; } break; From patchwork Mon Dec 19 12:32:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 635866 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B981DC4332F for ; Mon, 19 Dec 2022 12:32:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231810AbiLSMc4 (ORCPT ); Mon, 19 Dec 2022 07:32:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39014 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232060AbiLSMch (ORCPT ); Mon, 19 Dec 2022 07:32:37 -0500 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BAA6CEE19; Mon, 19 Dec 2022 04:31:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1671453105; x=1702989105; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=f+Y573fbqCtXZip97WFp1idIb9kXQkOhGQmr7sMp5sg=; b=UJtzmAGzI/X6LIguwsGIdUcM7mAIeeM/i5FKmK+2Gn5ibsp9HK8ZU+WR gC0Hqvp5HQErkjaMsYJ4L/CDlfwmkzit22VQgb74rv1SRIJ52DoOB1RCP h61S58CemmSMfuFTPcLL8aIQVWe/XchtwlUqfFvRA74rdXIIjWG2w5U1Z Glrv4Fu/Q97PWDZXNyNOs9oZwIpnPLue/U7aIIRbJEWBbHcRvQEYg81Tg DQZqdxGwIlFRGQAwmCotPfUL4JxlBIybheivi4P9n2l7BB9uU/7kJ4rva YQW+e8eSNmLjcCC0WhhrSA+4Ia4M9RFlIp4DT+N14pDmeBR0J3ADlglRP Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10565"; a="299670627" X-IronPort-AV: E=Sophos;i="5.96,255,1665471600"; d="scan'208";a="299670627" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Dec 2022 04:31:45 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10565"; a="896027911" X-IronPort-AV: E=Sophos;i="5.96,255,1665471600"; d="scan'208";a="896027911" Received: from black.fi.intel.com ([10.237.72.28]) by fmsmga006.fm.intel.com with ESMTP; 19 Dec 2022 04:31:43 -0800 Received: by black.fi.intel.com (Postfix, from userid 1003) id E287411D; Mon, 19 Dec 2022 14:32:13 +0200 (EET) From: Andy Shevchenko To: Andy Shevchenko , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Mika Westerberg , Andy Shevchenko , Linus Walleij Subject: [PATCH v1 3/4] pinctrl: intel: Add definitions to all possible biases Date: Mon, 19 Dec 2022 14:32:07 +0200 Message-Id: <20221219123208.5505-3-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20221219123208.5505-1-andriy.shevchenko@linux.intel.com> References: <20221219123208.5505-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Add definitions to all possible biases, i.e. add ~800 Ohms, ~952 Ohms, ~4 kOhms. Signed-off-by: Andy Shevchenko --- drivers/pinctrl/intel/pinctrl-intel.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c index 6926f64b68d4..8ecb7ca7fbac 100644 --- a/drivers/pinctrl/intel/pinctrl-intel.c +++ b/drivers/pinctrl/intel/pinctrl-intel.c @@ -81,8 +81,11 @@ #define PADCFG1_TERM_MASK GENMASK(12, 10) #define PADCFG1_TERM_20K BIT(2) #define PADCFG1_TERM_5K BIT(1) +#define PADCFG1_TERM_4K (BIT(2) | BIT(1)) #define PADCFG1_TERM_1K BIT(0) +#define PADCFG1_TERM_952 (BIT(2) | BIT(0)) #define PADCFG1_TERM_833 (BIT(1) | BIT(0)) +#define PADCFG1_TERM_800 (BIT(2) | BIT(1) | BIT(0)) #define PADCFG2 0x008 #define PADCFG2_DEBEN BIT(0) From patchwork Mon Dec 19 12:32:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 635310 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DDADAC4332F for ; Mon, 19 Dec 2022 12:33:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232134AbiLSMdB (ORCPT ); Mon, 19 Dec 2022 07:33:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44802 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232068AbiLSMch (ORCPT ); Mon, 19 Dec 2022 07:32:37 -0500 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 21F13F02D; Mon, 19 Dec 2022 04:31:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1671453108; x=1702989108; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=W5/mAD3rb44U/Snba0SWl2h8OeAaalRUzRmh9CqBDBc=; b=V+cL6F4BN9X/vXRo61SJYHkF4LjvI+RHMmROXTRJ0sN5/3G22DIS2FcJ BeKvrzmeZwiJ3LdJho7PTsjHHg2TvwWW8vpRvnh2mSn5j+pM9ZnJdwfL+ /dSNN7TBIywzFnlMZWkzi3Vf0gimFF7GK0hJNW4/aNQf7XgsVkF3065l+ xdBgHTNrdQ+vbmBWl8zihEkuxXlKln0Qhpje27lV8OyMMDCiAjRXs10Rb nRYtcTvsHevPpilTBLLKp1ORNkv5CIuGiAImM77QLcR1PC7PnRKI8LKHs VEaIVRR5hXgMgjkplV3Qec4DRNes39HzrSELHwKylDiEdhvIrlKL7yCj/ g==; X-IronPort-AV: E=McAfee;i="6500,9779,10565"; a="320509094" X-IronPort-AV: E=Sophos;i="5.96,255,1665471600"; d="scan'208";a="320509094" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Dec 2022 04:31:46 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10565"; a="774913749" X-IronPort-AV: E=Sophos;i="5.96,255,1665471600"; d="scan'208";a="774913749" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga004.jf.intel.com with ESMTP; 19 Dec 2022 04:31:44 -0800 Received: by black.fi.intel.com (Postfix, from userid 1003) id 017FF1C3; Mon, 19 Dec 2022 14:32:13 +0200 (EET) From: Andy Shevchenko To: Andy Shevchenko , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Mika Westerberg , Andy Shevchenko , Linus Walleij Subject: [PATCH v1 4/4] pinctrl: intel: Add ~4k bias support Date: Mon, 19 Dec 2022 14:32:08 +0200 Message-Id: <20221219123208.5505-4-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20221219123208.5505-1-andriy.shevchenko@linux.intel.com> References: <20221219123208.5505-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org All versions that have 20k and 5k resistance, i.e. all that the driver supports, may support ~4k when the above mentioned are connected in parallel. Add such a support. Signed-off-by: Andy Shevchenko --- drivers/pinctrl/intel/pinctrl-intel.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c index 8ecb7ca7fbac..5e21b0a96efe 100644 --- a/drivers/pinctrl/intel/pinctrl-intel.c +++ b/drivers/pinctrl/intel/pinctrl-intel.c @@ -577,6 +577,9 @@ static int intel_config_get_pull(struct intel_pinctrl *pctrl, unsigned int pin, case PADCFG1_TERM_1K: *arg = 1000; break; + case PADCFG1_TERM_4K: + *arg = 4000; + break; case PADCFG1_TERM_5K: *arg = 5000; break; @@ -602,6 +605,9 @@ static int intel_config_get_pull(struct intel_pinctrl *pctrl, unsigned int pin, return -EINVAL; *arg = 1000; break; + case PADCFG1_TERM_4K: + *arg = 4000; + break; case PADCFG1_TERM_5K: *arg = 5000; break; @@ -709,6 +715,9 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin, case 5000: value |= PADCFG1_TERM_5K << PADCFG1_TERM_SHIFT; break; + case 4000: + value |= PADCFG1_TERM_4K << PADCFG1_TERM_SHIFT; + break; case 1000: value |= PADCFG1_TERM_1K << PADCFG1_TERM_SHIFT; break; @@ -731,6 +740,9 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin, case 5000: value |= PADCFG1_TERM_5K << PADCFG1_TERM_SHIFT; break; + case 4000: + value |= PADCFG1_TERM_4K << PADCFG1_TERM_SHIFT; + break; case 1000: if (!(community->features & PINCTRL_FEATURE_1K_PD)) { ret = -EINVAL;