From nobody Tue Jun 30 00:50:16 2026 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 21F08C4332F for ; Fri, 28 Jan 2022 13:35:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348980AbiA1NfK (ORCPT ); Fri, 28 Jan 2022 08:35:10 -0500 Received: from mx.socionext.com ([202.248.49.38]:36576 "EHLO mx.socionext.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348951AbiA1NfI (ORCPT ); Fri, 28 Jan 2022 08:35:08 -0500 Received: from unknown (HELO iyokan2-ex.css.socionext.com) ([172.31.9.54]) by mx.socionext.com with ESMTP; 28 Jan 2022 22:35:06 +0900 Received: from mail.mfilter.local (m-filter-1 [10.213.24.61]) by iyokan2-ex.css.socionext.com (Postfix) with ESMTP id C7DFC205D901; Fri, 28 Jan 2022 22:35:06 +0900 (JST) Received: from 172.31.9.51 (172.31.9.51) by m-FILTER with ESMTP; Fri, 28 Jan 2022 22:35:06 +0900 Received: from plum.e01.socionext.com (unknown [10.212.243.119]) by kinkan2.css.socionext.com (Postfix) with ESMTP id 8B8B7C1E22; Fri, 28 Jan 2022 22:35:06 +0900 (JST) From: Kunihiko Hayashi To: Linus Walleij , Masami Hiramatsu Cc: linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Kunihiko Hayashi Subject: [PATCH v2 1/3] pinctrl: uniphier: Add missing audio pinmux settings for PXs2 SoC Date: Fri, 28 Jan 2022 22:35:01 +0900 Message-Id: <1643376903-18623-2-git-send-email-hayashi.kunihiko@socionext.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1643376903-18623-1-git-send-email-hayashi.kunihiko@socionext.com> References: <1643376903-18623-1-git-send-email-hayashi.kunihiko@socionext.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Add missing audio I/O pinmux settings for PXs2 SoC. This adds ain1 4ch pins, ain3 and aout1. Signed-off-by: Kunihiko Hayashi --- drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c b/drivers/pin= ctrl/uniphier/pinctrl-uniphier-pxs2.c index e52e65a24048..6ef892543cb9 100644 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c @@ -719,12 +719,16 @@ static const struct pinctrl_pin_desc uniphier_pxs2_pi= ns[] =3D { 234, UNIPHIER_PIN_PULL_DOWN), }; =20 -static const unsigned ain1_pins[] =3D {161, 162, 173, 174}; -static const int ain1_muxvals[] =3D {8, 8, 8, 8}; +static const unsigned ain1_pins[] =3D {161, 162, 173, 174, 127, 128, 129}; +static const int ain1_muxvals[] =3D {8, 8, 8, 8, 3, 3, 3}; static const unsigned ain2_pins[] =3D {98, 99, 100, 101, 102, 103, 104}; static const int ain2_muxvals[] =3D {8, 8, 8, 8, 8, 8, 8}; +static const unsigned ain3_pins[] =3D {132, 133, 134, 131}; +static const int ain3_muxvals[] =3D {5, 5, 5, 5}; static const unsigned ainiec1_pins[] =3D {91}; static const int ainiec1_muxvals[] =3D {11}; +static const unsigned aout1_pins[] =3D {87, 88, 89, 90, 92, 93, 94}; +static const int aout1_muxvals[] =3D {11, 11, 11, 11, 11, 11, 11}; static const unsigned aout2_pins[] =3D {175, 176, 177, 178, 183, 184, 185}; static const int aout2_muxvals[] =3D {8, 8, 8, 8, 9, 9, 9}; static const unsigned aout3_pins[] =3D {105, 106, 107, 108}; @@ -839,7 +843,9 @@ static const unsigned int gpio_range1_pins[] =3D { static const struct uniphier_pinctrl_group uniphier_pxs2_groups[] =3D { UNIPHIER_PINCTRL_GROUP(ain1), UNIPHIER_PINCTRL_GROUP(ain2), + UNIPHIER_PINCTRL_GROUP(ain3), UNIPHIER_PINCTRL_GROUP(ainiec1), + UNIPHIER_PINCTRL_GROUP(aout1), UNIPHIER_PINCTRL_GROUP(aout2), UNIPHIER_PINCTRL_GROUP(aout3), UNIPHIER_PINCTRL_GROUP(aoutiec1), @@ -880,7 +886,9 @@ static const struct uniphier_pinctrl_group uniphier_pxs= 2_groups[] =3D { =20 static const char * const ain1_groups[] =3D {"ain1"}; static const char * const ain2_groups[] =3D {"ain2"}; +static const char * const ain3_groups[] =3D {"ain3"}; static const char * const ainiec1_groups[] =3D {"ainiec1"}; +static const char * const aout1_groups[] =3D {"aout1"}; static const char * const aout2_groups[] =3D {"aout2"}; static const char * const aout3_groups[] =3D {"aout3"}; static const char * const aoutiec1_groups[] =3D {"aoutiec1"}; --=20 2.7.4 From nobody Tue Jun 30 00:50:16 2026 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 8DA85C433EF for ; Fri, 28 Jan 2022 13:35:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349016AbiA1NfN (ORCPT ); Fri, 28 Jan 2022 08:35:13 -0500 Received: from mx.socionext.com ([202.248.49.38]:25192 "EHLO mx.socionext.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348954AbiA1NfI (ORCPT ); Fri, 28 Jan 2022 08:35:08 -0500 Received: from unknown (HELO iyokan2-ex.css.socionext.com) ([172.31.9.54]) by mx.socionext.com with ESMTP; 28 Jan 2022 22:35:08 +0900 Received: from mail.mfilter.local (m-filter-2 [10.213.24.62]) by iyokan2-ex.css.socionext.com (Postfix) with ESMTP id 085AD205D901; Fri, 28 Jan 2022 22:35:08 +0900 (JST) Received: from 172.31.9.51 (172.31.9.51) by m-FILTER with ESMTP; Fri, 28 Jan 2022 22:35:07 +0900 Received: from plum.e01.socionext.com (unknown [10.212.243.119]) by kinkan2.css.socionext.com (Postfix) with ESMTP id 67557C1E22; Fri, 28 Jan 2022 22:35:07 +0900 (JST) From: Kunihiko Hayashi To: Linus Walleij , Masami Hiramatsu Cc: linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Kunihiko Hayashi , Ryuta NAKANISHI Subject: [PATCH v2 2/3] pinctrl: uniphier: Divide pinmux group to support 1ch and 2ch I2S Date: Fri, 28 Jan 2022 22:35:02 +0900 Message-Id: <1643376903-18623-3-git-send-email-hayashi.kunihiko@socionext.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1643376903-18623-1-git-send-email-hayashi.kunihiko@socionext.com> References: <1643376903-18623-1-git-send-email-hayashi.kunihiko@socionext.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Current pinmux group for audio in/out assumes 4ch I2S case but the UniPhier AIO hardware also supports 1ch and 2ch I2S. So divide current ain1 group into ain1, ain1_dat2 and ain1_dat4 groups. Divide other ain and aout in the same way. Signed-off-by: Ryuta NAKANISHI Signed-off-by: Kunihiko Hayashi --- drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c | 26 +++++++--- drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c | 64 ++++++++++++++++++--= ---- drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c | 54 +++++++++++++++----- drivers/pinctrl/uniphier/pinctrl-uniphier-pxs3.c | 52 ++++++++++++++----- 4 files changed, 152 insertions(+), 44 deletions(-) diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c b/drivers/pin= ctrl/uniphier/pinctrl-uniphier-ld11.c index a4fa8e3af607..65ed20bc1fa2 100644 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c @@ -461,10 +461,18 @@ static const struct pinctrl_pin_desc uniphier_ld11_pi= ns[] =3D { 166, UNIPHIER_PIN_PULL_DOWN), }; =20 -static const unsigned ain1_pins[] =3D {151, 152, 153, 154, 155, 156, 157}; -static const int ain1_muxvals[] =3D {4, 4, 4, 4, 4, 4, 4}; -static const unsigned aout1_pins[] =3D {137, 138, 139, 140, 141, 142}; -static const int aout1_muxvals[] =3D {0, 0, 0, 0, 0, 0}; +static const unsigned ain1_pins[] =3D {151, 152, 153, 154}; +static const int ain1_muxvals[] =3D {4, 4, 4, 4}; +static const unsigned ain1_dat2_pins[] =3D {155}; +static const int ain1_dat2_muxvals[] =3D {4}; +static const unsigned ain1_dat4_pins[] =3D {156, 157}; +static const int ain1_dat4_muxvals[] =3D {4, 4}; +static const unsigned aout1_pins[] =3D {137, 138, 139, 140}; +static const int aout1_muxvals[] =3D {0, 0, 0, 0}; +static const unsigned aout1_dat2_pins[] =3D {141}; +static const int aout1_dat2_muxvals[] =3D {0}; +static const unsigned aout1_dat4_pins[] =3D {142, 143}; +static const int aout1_dat4_muxvals[] =3D {0, 3}; static const unsigned ainiec1_pins[] =3D {150}; static const int ainiec1_muxvals[] =3D {4}; static const unsigned ainiec1b_pins[] =3D {141}; @@ -582,7 +590,11 @@ static const unsigned int gpio_range5_pins[] =3D { =20 static const struct uniphier_pinctrl_group uniphier_ld11_groups[] =3D { UNIPHIER_PINCTRL_GROUP(ain1), + UNIPHIER_PINCTRL_GROUP(ain1_dat2), + UNIPHIER_PINCTRL_GROUP(ain1_dat4), UNIPHIER_PINCTRL_GROUP(aout1), + UNIPHIER_PINCTRL_GROUP(aout1_dat2), + UNIPHIER_PINCTRL_GROUP(aout1_dat4), UNIPHIER_PINCTRL_GROUP(ainiec1), UNIPHIER_PINCTRL_GROUP(ainiec1b), UNIPHIER_PINCTRL_GROUP(aoutiec1), @@ -626,8 +638,10 @@ static const struct uniphier_pinctrl_group uniphier_ld= 11_groups[] =3D { UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range5), }; =20 -static const char * const ain1_groups[] =3D {"ain1"}; -static const char * const aout1_groups[] =3D {"aout1"}; +static const char * const ain1_groups[] =3D {"ain1", "ain1_dat2", + "ain1_dat4"}; +static const char * const aout1_groups[] =3D {"aout1", "aout1_dat2", + "aout1_dat4"}; static const char * const ainiec1_groups[] =3D {"ainiec1", "ainiec1b"}; static const char * const aoutiec1_groups[] =3D {"aoutiec1"}; static const char * const aoutiec2_groups[] =3D {"aoutiec2"}; diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c b/drivers/pin= ctrl/uniphier/pinctrl-uniphier-ld20.c index 850736998206..a68b21fbd0c7 100644 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c @@ -542,18 +542,38 @@ static const struct pinctrl_pin_desc uniphier_ld20_pi= ns[] =3D { 175, UNIPHIER_PIN_PULL_DOWN), }; =20 -static const unsigned ain1_pins[] =3D {150, 151, 152, 153, 154, 155, 156}; -static const int ain1_muxvals[] =3D {4, 4, 4, 4, 4, 4, 4}; -static const unsigned ain2_pins[] =3D {116, 117, 118, 119, 120, 121, 122}; -static const int ain2_muxvals[] =3D {26, 26, 26, 26, 26, 26, 26}; +static const unsigned ain1_pins[] =3D {150, 151, 152, 153}; +static const int ain1_muxvals[] =3D {4, 4, 4, 4}; +static const unsigned ain1_dat2_pins[] =3D {154}; +static const int ain1_dat2_muxvals[] =3D {4}; +static const unsigned ain1_dat4_pins[] =3D {155, 156}; +static const int ain1_dat4_muxvals[] =3D {4, 4}; +static const unsigned ain2_pins[] =3D {116, 117, 118, 119}; +static const int ain2_muxvals[] =3D {26, 26, 26, 26}; +static const unsigned ain2_dat2_pins[] =3D {120}; +static const int ain2_dat2_muxvals[] =3D {26}; +static const unsigned ain2_dat4_pins[] =3D {121, 122}; +static const int ain2_dat4_muxvals[] =3D {26, 26}; static const unsigned ain3_pins[] =3D {116, 117, 118, 119}; static const int ain3_muxvals[] =3D {27, 27, 27, 27}; -static const unsigned aout1_pins[] =3D {137, 138, 139, 140, 141, 142}; -static const int aout1_muxvals[] =3D {0, 0, 0, 0, 0, 0}; -static const unsigned aout1b_pins[] =3D {150, 151, 152, 153, 154, 155, 156= }; -static const int aout1b_muxvals[] =3D {1, 1, 1, 1, 1, 1, 1}; -static const unsigned aout2_pins[] =3D {165, 157, 162, 158, 159, 160, 161}; -static const int aout2_muxvals[] =3D {2, 2, 2, 1, 1, 1, 1}; +static const unsigned aout1_pins[] =3D {137, 138, 139, 140}; +static const int aout1_muxvals[] =3D {0, 0, 0, 0}; +static const unsigned aout1_dat2_pins[] =3D {141}; +static const int aout1_dat2_muxvals[] =3D {0}; +static const unsigned aout1_dat4_pins[] =3D {142, 156}; +static const int aout1_dat4_muxvals[] =3D {0, 1}; +static const unsigned aout1b_pins[] =3D {150, 151, 152, 153}; +static const int aout1b_muxvals[] =3D {1, 1, 1, 1}; +static const unsigned aout1b_dat2_pins[] =3D {154}; +static const int aout1b_dat2_muxvals[] =3D {1}; +static const unsigned aout1b_dat4_pins[] =3D {155, 156}; +static const int aout1b_dat4_muxvals[] =3D {1, 1}; +static const unsigned aout2_pins[] =3D {165, 157, 162, 158}; +static const int aout2_muxvals[] =3D {2, 2, 2, 1}; +static const unsigned aout2_dat2_pins[] =3D {159}; +static const int aout2_dat2_muxvals[] =3D {1}; +static const unsigned aout2_dat4_pins[] =3D {160, 161}; +static const int aout2_dat4_muxvals[] =3D {1, 1}; static const unsigned aout3_pins[] =3D {166, 167, 168, 163}; static const int aout3_muxvals[] =3D {2, 2, 2, 1}; static const unsigned aout4_pins[] =3D {169, 170, 171, 164}; @@ -682,11 +702,21 @@ static const unsigned int gpio_range2_pins[] =3D { =20 static const struct uniphier_pinctrl_group uniphier_ld20_groups[] =3D { UNIPHIER_PINCTRL_GROUP(ain1), + UNIPHIER_PINCTRL_GROUP(ain1_dat2), + UNIPHIER_PINCTRL_GROUP(ain1_dat4), UNIPHIER_PINCTRL_GROUP(ain2), + UNIPHIER_PINCTRL_GROUP(ain2_dat2), + UNIPHIER_PINCTRL_GROUP(ain2_dat4), UNIPHIER_PINCTRL_GROUP(ain3), UNIPHIER_PINCTRL_GROUP(aout1), + UNIPHIER_PINCTRL_GROUP(aout1_dat2), + UNIPHIER_PINCTRL_GROUP(aout1_dat4), UNIPHIER_PINCTRL_GROUP(aout1b), + UNIPHIER_PINCTRL_GROUP(aout1b_dat2), + UNIPHIER_PINCTRL_GROUP(aout1b_dat4), UNIPHIER_PINCTRL_GROUP(aout2), + UNIPHIER_PINCTRL_GROUP(aout2_dat2), + UNIPHIER_PINCTRL_GROUP(aout2_dat4), UNIPHIER_PINCTRL_GROUP(aout3), UNIPHIER_PINCTRL_GROUP(aout4), UNIPHIER_PINCTRL_GROUP(aoutiec1), @@ -734,11 +764,17 @@ static const struct uniphier_pinctrl_group uniphier_l= d20_groups[] =3D { UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range2), }; =20 -static const char * const ain1_groups[] =3D {"ain1"}; -static const char * const ain2_groups[] =3D {"ain2"}; +static const char * const ain1_groups[] =3D {"ain1", "ain1_dat2", + "ain1_dat4"}; +static const char * const ain2_groups[] =3D {"ain2", "ain2_dat2", + "ain2_dat4"}; static const char * const ain3_groups[] =3D {"ain3"}; -static const char * const aout1_groups[] =3D {"aout1", "aout1b"}; -static const char * const aout2_groups[] =3D {"aout2"}; +static const char * const aout1_groups[] =3D {"aout1", "aout1_dat2", + "aout1_dat4", + "aout1b", "aout1b_dat2", + "aout1b_dat4"}; +static const char * const aout2_groups[] =3D {"aout2", "aout2_dat2", + "aout2_dat4"}; static const char * const aout3_groups[] =3D {"aout3"}; static const char * const aout4_groups[] =3D {"aout4"}; static const char * const aoutiec1_groups[] =3D {"aoutiec1"}; diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c b/drivers/pin= ctrl/uniphier/pinctrl-uniphier-pxs2.c index 6ef892543cb9..7da8616f8d47 100644 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c @@ -719,18 +719,34 @@ static const struct pinctrl_pin_desc uniphier_pxs2_pi= ns[] =3D { 234, UNIPHIER_PIN_PULL_DOWN), }; =20 -static const unsigned ain1_pins[] =3D {161, 162, 173, 174, 127, 128, 129}; -static const int ain1_muxvals[] =3D {8, 8, 8, 8, 3, 3, 3}; -static const unsigned ain2_pins[] =3D {98, 99, 100, 101, 102, 103, 104}; -static const int ain2_muxvals[] =3D {8, 8, 8, 8, 8, 8, 8}; +static const unsigned ain1_pins[] =3D {161, 162, 173, 174}; +static const int ain1_muxvals[] =3D {8, 8, 8, 8}; +static const unsigned ain1_dat2_pins[] =3D {127}; +static const int ain1_dat2_muxvals[] =3D {3}; +static const unsigned ain1_dat4_pins[] =3D {128, 129}; +static const int ain1_dat4_muxvals[] =3D {3, 3}; +static const unsigned ain2_pins[] =3D {98, 99, 100, 101}; +static const int ain2_muxvals[] =3D {8, 8, 8, 8}; +static const unsigned ain2_dat2_pins[] =3D {102}; +static const int ain2_dat2_muxvals[] =3D {8}; +static const unsigned ain2_dat4_pins[] =3D {103, 104}; +static const int ain2_dat4_muxvals[] =3D {8, 8}; static const unsigned ain3_pins[] =3D {132, 133, 134, 131}; static const int ain3_muxvals[] =3D {5, 5, 5, 5}; static const unsigned ainiec1_pins[] =3D {91}; static const int ainiec1_muxvals[] =3D {11}; -static const unsigned aout1_pins[] =3D {87, 88, 89, 90, 92, 93, 94}; -static const int aout1_muxvals[] =3D {11, 11, 11, 11, 11, 11, 11}; -static const unsigned aout2_pins[] =3D {175, 176, 177, 178, 183, 184, 185}; -static const int aout2_muxvals[] =3D {8, 8, 8, 8, 9, 9, 9}; +static const unsigned aout1_pins[] =3D {87, 88, 89, 90}; +static const int aout1_muxvals[] =3D {11, 11, 11, 11}; +static const unsigned aout1_dat2_pins[] =3D {92}; +static const int aout1_dat2_muxvals[] =3D {11}; +static const unsigned aout1_dat4_pins[] =3D {93, 94}; +static const int aout1_dat4_muxvals[] =3D {11, 11}; +static const unsigned aout2_pins[] =3D {177, 178, 175, 176}; +static const int aout2_muxvals[] =3D {8, 8, 8, 8}; +static const unsigned aout2_dat2_pins[] =3D {183}; +static const int aout2_dat2_muxvals[] =3D {9}; +static const unsigned aout2_dat4_pins[] =3D {184, 185}; +static const int aout2_dat4_muxvals[] =3D {9, 9}; static const unsigned aout3_pins[] =3D {105, 106, 107, 108}; static const int aout3_muxvals[] =3D {8, 8, 8, 8}; static const unsigned aoutiec1_pins[] =3D {95}; @@ -842,11 +858,19 @@ static const unsigned int gpio_range1_pins[] =3D { =20 static const struct uniphier_pinctrl_group uniphier_pxs2_groups[] =3D { UNIPHIER_PINCTRL_GROUP(ain1), + UNIPHIER_PINCTRL_GROUP(ain1_dat2), + UNIPHIER_PINCTRL_GROUP(ain1_dat4), UNIPHIER_PINCTRL_GROUP(ain2), + UNIPHIER_PINCTRL_GROUP(ain2_dat2), + UNIPHIER_PINCTRL_GROUP(ain2_dat4), UNIPHIER_PINCTRL_GROUP(ain3), UNIPHIER_PINCTRL_GROUP(ainiec1), UNIPHIER_PINCTRL_GROUP(aout1), + UNIPHIER_PINCTRL_GROUP(aout1_dat2), + UNIPHIER_PINCTRL_GROUP(aout1_dat4), UNIPHIER_PINCTRL_GROUP(aout2), + UNIPHIER_PINCTRL_GROUP(aout2_dat2), + UNIPHIER_PINCTRL_GROUP(aout2_dat4), UNIPHIER_PINCTRL_GROUP(aout3), UNIPHIER_PINCTRL_GROUP(aoutiec1), UNIPHIER_PINCTRL_GROUP(aoutiec2), @@ -884,12 +908,16 @@ static const struct uniphier_pinctrl_group uniphier_p= xs2_groups[] =3D { UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range1), }; =20 -static const char * const ain1_groups[] =3D {"ain1"}; -static const char * const ain2_groups[] =3D {"ain2"}; +static const char * const ain1_groups[] =3D {"ain1", "ain1_dat2", + "ain1_dat4"}; +static const char * const ain2_groups[] =3D {"ain2", "ain2_dat2", + "ain2_dat4"}; static const char * const ain3_groups[] =3D {"ain3"}; static const char * const ainiec1_groups[] =3D {"ainiec1"}; -static const char * const aout1_groups[] =3D {"aout1"}; -static const char * const aout2_groups[] =3D {"aout2"}; +static const char * const aout1_groups[] =3D {"aout1", "aout1_dat2", + "aout1_dat4"}; +static const char * const aout2_groups[] =3D {"aout2", "aout2_dat2", + "aout2_dat4"}; static const char * const aout3_groups[] =3D {"aout3"}; static const char * const aoutiec1_groups[] =3D {"aoutiec1"}; static const char * const aoutiec2_groups[] =3D {"aoutiec2"}; @@ -922,7 +950,9 @@ static const char * const usb3_groups[] =3D {"usb3"}; static const struct uniphier_pinmux_function uniphier_pxs2_functions[] =3D= { UNIPHIER_PINMUX_FUNCTION(ain1), UNIPHIER_PINMUX_FUNCTION(ain2), + UNIPHIER_PINMUX_FUNCTION(ain3), UNIPHIER_PINMUX_FUNCTION(ainiec1), + UNIPHIER_PINMUX_FUNCTION(aout1), UNIPHIER_PINMUX_FUNCTION(aout2), UNIPHIER_PINMUX_FUNCTION(aout3), UNIPHIER_PINMUX_FUNCTION(aoutiec1), diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs3.c b/drivers/pin= ctrl/uniphier/pinctrl-uniphier-pxs3.c index 4810db6c0ee8..eb3c9b55f6e3 100644 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs3.c +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs3.c @@ -767,14 +767,30 @@ static const struct pinctrl_pin_desc uniphier_pxs3_pi= ns[] =3D { 250, UNIPHIER_PIN_PULL_DOWN), }; =20 -static const unsigned ain1_pins[] =3D {186, 187, 188, 189, 237, 238, 239}; -static const int ain1_muxvals[] =3D {0, 0, 0, 0, 1, 1, 1}; -static const unsigned ain2_pins[] =3D {243, 244, 245, 246, 247, 248, 249}; -static const int ain2_muxvals[] =3D {1, 1, 1, 1, 1, 1, 1}; -static const unsigned aout1_pins[] =3D {226, 227, 228, 229, 230, 231, 232}; -static const int aout1_muxvals[] =3D {1, 1, 1, 1, 1, 1, 1}; -static const unsigned aout2_pins[] =3D {192, 193, 194, 195, 196, 197, 198}; -static const int aout2_muxvals[] =3D {0, 0, 0, 0, 0, 0, 0}; +static const unsigned ain1_pins[] =3D {186, 187, 188, 189}; +static const int ain1_muxvals[] =3D {0, 0, 0, 0}; +static const unsigned ain1_dat2_pins[] =3D {237}; +static const int ain1_dat2_muxvals[] =3D {1}; +static const unsigned ain1_dat4_pins[] =3D {238, 239}; +static const int ain1_dat4_muxvals[] =3D {1, 1}; +static const unsigned ain2_pins[] =3D {243, 244, 245, 246}; +static const int ain2_muxvals[] =3D {1, 1, 1, 1}; +static const unsigned ain2_dat2_pins[] =3D {247}; +static const int ain2_dat2_muxvals[] =3D {1}; +static const unsigned ain2_dat4_pins[] =3D {248, 249}; +static const int ain2_dat4_muxvals[] =3D {1, 1}; +static const unsigned aout1_pins[] =3D {226, 227, 228, 229}; +static const int aout1_muxvals[] =3D {1, 1, 1, 1}; +static const unsigned aout1_dat2_pins[] =3D {230}; +static const int aout1_dat2_muxvals[] =3D {1}; +static const unsigned aout1_dat4_pins[] =3D {231, 232}; +static const int aout1_dat4_muxvals[] =3D {1, 1}; +static const unsigned aout2_pins[] =3D {192, 193, 194, 195}; +static const int aout2_muxvals[] =3D {0, 0, 0, 0}; +static const unsigned aout2_dat2_pins[] =3D {196}; +static const int aout2_dat2_muxvals[] =3D {0}; +static const unsigned aout2_dat4_pins[] =3D {197, 198}; +static const int aout2_dat4_muxvals[] =3D {0, 0}; static const unsigned aout3_pins[] =3D {199, 200, 201, 202}; static const int aout3_muxvals[] =3D {0, 0, 0, 0}; static const unsigned ainiec1_pins[] =3D {240}; @@ -888,9 +904,17 @@ static const unsigned int gpio_range2_pins[] =3D { =20 static const struct uniphier_pinctrl_group uniphier_pxs3_groups[] =3D { UNIPHIER_PINCTRL_GROUP(ain1), + UNIPHIER_PINCTRL_GROUP(ain1_dat2), + UNIPHIER_PINCTRL_GROUP(ain1_dat4), UNIPHIER_PINCTRL_GROUP(ain2), + UNIPHIER_PINCTRL_GROUP(ain2_dat2), + UNIPHIER_PINCTRL_GROUP(ain2_dat4), UNIPHIER_PINCTRL_GROUP(aout1), + UNIPHIER_PINCTRL_GROUP(aout1_dat2), + UNIPHIER_PINCTRL_GROUP(aout1_dat4), UNIPHIER_PINCTRL_GROUP(aout2), + UNIPHIER_PINCTRL_GROUP(aout2_dat2), + UNIPHIER_PINCTRL_GROUP(aout2_dat4), UNIPHIER_PINCTRL_GROUP(aout3), UNIPHIER_PINCTRL_GROUP(ainiec1), UNIPHIER_PINCTRL_GROUP(aoutiec1), @@ -926,10 +950,14 @@ static const struct uniphier_pinctrl_group uniphier_p= xs3_groups[] =3D { UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range2), }; =20 -static const char * const ain1_groups[] =3D {"ain1"}; -static const char * const ain2_groups[] =3D {"ain2"}; -static const char * const aout1_groups[] =3D {"aout1"}; -static const char * const aout2_groups[] =3D {"aout2"}; +static const char * const ain1_groups[] =3D {"ain1", "ain1_dat2", + "ain1_dat4"}; +static const char * const ain2_groups[] =3D {"ain2", "ain2_dat2", + "ain1_dat4"}; +static const char * const aout1_groups[] =3D {"aout1", "aout1_dat2", + "aout1_dat4"}; +static const char * const aout2_groups[] =3D {"aout2", "aout2_dat2", + "aout2_dat4"}; static const char * const aout3_groups[] =3D {"aout3"}; static const char * const ainiec1_groups[] =3D {"ainiec1"}; static const char * const aoutiec1_groups[] =3D {"aoutiec1"}; --=20 2.7.4 From nobody Tue Jun 30 00:50:16 2026 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 18032C433F5 for ; Fri, 28 Jan 2022 13:35:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349069AbiA1NfU (ORCPT ); Fri, 28 Jan 2022 08:35:20 -0500 Received: from mx.socionext.com ([202.248.49.38]:5514 "EHLO mx.socionext.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348965AbiA1NfJ (ORCPT ); Fri, 28 Jan 2022 08:35:09 -0500 Received: from unknown (HELO kinkan2-ex.css.socionext.com) ([172.31.9.52]) by mx.socionext.com with ESMTP; 28 Jan 2022 22:35:08 +0900 Received: from mail.mfilter.local (m-filter-1 [10.213.24.61]) by kinkan2-ex.css.socionext.com (Postfix) with ESMTP id 5EBF92006E85; Fri, 28 Jan 2022 22:35:08 +0900 (JST) Received: from 172.31.9.51 (172.31.9.51) by m-FILTER with ESMTP; Fri, 28 Jan 2022 22:35:08 +0900 Received: from plum.e01.socionext.com (unknown [10.212.243.119]) by kinkan2.css.socionext.com (Postfix) with ESMTP id 1E4B6C1E22; Fri, 28 Jan 2022 22:35:08 +0900 (JST) From: Kunihiko Hayashi To: Linus Walleij , Masami Hiramatsu Cc: linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Kunihiko Hayashi Subject: [PATCH v2 3/3] pinctrl: uniphier: Add USB device pinmux settings Date: Fri, 28 Jan 2022 22:35:03 +0900 Message-Id: <1643376903-18623-4-git-send-email-hayashi.kunihiko@socionext.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1643376903-18623-1-git-send-email-hayashi.kunihiko@socionext.com> References: <1643376903-18623-1-git-send-email-hayashi.kunihiko@socionext.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Add USB device pinmux settings for PXs2 and PXs3 SoCs. Only pins for ports 0 and 1 support USB device mode. Signed-off-by: Kunihiko Hayashi --- drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c | 10 ++++++++-- drivers/pinctrl/uniphier/pinctrl-uniphier-pxs3.c | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c b/drivers/pin= ctrl/uniphier/pinctrl-uniphier-pxs2.c index 7da8616f8d47..2a9dbf969f0b 100644 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c @@ -817,8 +817,12 @@ static const unsigned uart3b_pins[] =3D {181, 182}; static const int uart3b_muxvals[] =3D {10, 10}; static const unsigned usb0_pins[] =3D {56, 57}; static const int usb0_muxvals[] =3D {8, 8}; +static const unsigned usb0_device_pins[] =3D {213}; +static const int usb0_device_muxvals[] =3D {9}; static const unsigned usb1_pins[] =3D {58, 59}; static const int usb1_muxvals[] =3D {8, 8}; +static const unsigned usb1_device_pins[] =3D {214}; +static const int usb1_device_muxvals[] =3D {9}; static const unsigned usb2_pins[] =3D {60, 61}; static const int usb2_muxvals[] =3D {8, 8}; static const unsigned usb3_pins[] =3D {62, 63}; @@ -901,7 +905,9 @@ static const struct uniphier_pinctrl_group uniphier_pxs= 2_groups[] =3D { UNIPHIER_PINCTRL_GROUP(uart3), UNIPHIER_PINCTRL_GROUP(uart3b), UNIPHIER_PINCTRL_GROUP(usb0), + UNIPHIER_PINCTRL_GROUP(usb0_device), UNIPHIER_PINCTRL_GROUP(usb1), + UNIPHIER_PINCTRL_GROUP(usb1_device), UNIPHIER_PINCTRL_GROUP(usb2), UNIPHIER_PINCTRL_GROUP(usb3), UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range0), @@ -942,8 +948,8 @@ static const char * const uart0_groups[] =3D {"uart0", = "uart0b", static const char * const uart1_groups[] =3D {"uart1"}; static const char * const uart2_groups[] =3D {"uart2"}; static const char * const uart3_groups[] =3D {"uart3", "uart3b"}; -static const char * const usb0_groups[] =3D {"usb0"}; -static const char * const usb1_groups[] =3D {"usb1"}; +static const char * const usb0_groups[] =3D {"usb0", "usb0_device"}; +static const char * const usb1_groups[] =3D {"usb1", "usb1_device"}; static const char * const usb2_groups[] =3D {"usb2"}; static const char * const usb3_groups[] =3D {"usb3"}; =20 diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs3.c b/drivers/pin= ctrl/uniphier/pinctrl-uniphier-pxs3.c index eb3c9b55f6e3..ab3bd2d9c6c7 100644 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs3.c +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs3.c @@ -855,8 +855,12 @@ static const unsigned int uart3_pins[] =3D {98, 99}; static const int uart3_muxvals[] =3D {0, 0}; static const unsigned int usb0_pins[] =3D {84, 85}; static const int usb0_muxvals[] =3D {0, 0}; +static const unsigned int usb0_device_pins[] =3D {110}; +static const int usb0_device_muxvals[] =3D {2}; static const unsigned int usb1_pins[] =3D {86, 87}; static const int usb1_muxvals[] =3D {0, 0}; +static const unsigned int usb1_device_pins[] =3D {111}; +static const int usb1_device_muxvals[] =3D {2}; static const unsigned int usb2_pins[] =3D {88, 89}; static const int usb2_muxvals[] =3D {0, 0}; static const unsigned int usb3_pins[] =3D {90, 91}; @@ -942,7 +946,9 @@ static const struct uniphier_pinctrl_group uniphier_pxs= 3_groups[] =3D { UNIPHIER_PINCTRL_GROUP(uart2), UNIPHIER_PINCTRL_GROUP(uart3), UNIPHIER_PINCTRL_GROUP(usb0), + UNIPHIER_PINCTRL_GROUP(usb0_device), UNIPHIER_PINCTRL_GROUP(usb1), + UNIPHIER_PINCTRL_GROUP(usb1_device), UNIPHIER_PINCTRL_GROUP(usb2), UNIPHIER_PINCTRL_GROUP(usb3), UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range0), @@ -982,8 +988,8 @@ static const char * const uart0_groups[] =3D {"uart0", = "uart0_ctsrts", static const char * const uart1_groups[] =3D {"uart1"}; static const char * const uart2_groups[] =3D {"uart2"}; static const char * const uart3_groups[] =3D {"uart3"}; -static const char * const usb0_groups[] =3D {"usb0"}; -static const char * const usb1_groups[] =3D {"usb1"}; +static const char * const usb0_groups[] =3D {"usb0", "usb0_device"}; +static const char * const usb1_groups[] =3D {"usb1", "usb1_device"}; static const char * const usb2_groups[] =3D {"usb2"}; static const char * const usb3_groups[] =3D {"usb3"}; =20 --=20 2.7.4