From patchwork Fri May 12 12:38:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dong Aisheng X-Patchwork-Id: 761613 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 3wPTzX0yZFz9s7h for ; Fri, 12 May 2017 22:38:32 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756748AbdELMia (ORCPT ); Fri, 12 May 2017 08:38:30 -0400 Received: from mail-sn1nam01on0068.outbound.protection.outlook.com ([104.47.32.68]:35488 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1756412AbdELMiR (ORCPT ); Fri, 12 May 2017 08:38:17 -0400 Received: from DM5PR03CA0013.namprd03.prod.outlook.com (10.175.104.23) by BN1PR03MB169.namprd03.prod.outlook.com (10.255.200.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1075.11; Fri, 12 May 2017 12:38:14 +0000 Received: from BN1BFFO11FD026.protection.gbl (2a01:111:f400:7c10::1:100) by DM5PR03CA0013.outlook.office365.com (2603:10b6:3:118::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1084.16 via Frontend Transport; Fri, 12 May 2017 12:38:15 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1BFFO11FD026.mail.protection.outlook.com (10.58.144.89) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1075.5 via Frontend Transport; Fri, 12 May 2017 12:38:14 +0000 Received: from b29396-OptiPlex-7040.ap.freescale.net (b29396-OptiPlex-7040.ap.freescale.net [10.192.242.182]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v4CCc1r5022286; Fri, 12 May 2017 05:38:11 -0700 From: Dong Aisheng To: CC: , , , , , , , Dong Aisheng Subject: [PATCH 2/5] pinctrl: pinctrl-imx: add soc specific mux_mode mask and shift property Date: Fri, 12 May 2017 20:38:03 +0800 Message-ID: <1494592686-30967-4-git-send-email-aisheng.dong@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1494592686-30967-1-git-send-email-aisheng.dong@nxp.com> References: <1494592686-30967-1-git-send-email-aisheng.dong@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131390662948554380; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39410400002)(39380400002)(39400400002)(39860400002)(39850400002)(39840400002)(39450400003)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(9170700003)(77096006)(50226002)(356003)(498600001)(104016004)(8936002)(5660300001)(189998001)(2351001)(4326008)(36756003)(105606002)(47776003)(2906002)(8676002)(106466001)(85426001)(33646002)(86362001)(575784001)(38730400002)(305945005)(110136004)(81166006)(76176999)(8656002)(54906002)(50986999)(50466002)(6666003)(6916009)(53936002)(48376002)(5003940100001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN1PR03MB169; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; MX:1; A:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD026; 1:NRF+cVRQff+KM4oa7NzLSX8SwQmJZfC8KFsV7n15DGtCbbkeQEXiFg/WXbabwRgFMqOHYbTwaUR3yMuGTeDkoz8bwiFrmbPjXc6FfmVXavmdZg7JL0VprH50oYd7rr9VTf4NA3fDikbzTevEiYgAb5D7iQbkbToJHnydfYHjMJfibT/uVWxfX5p58aj4y3OpPLRfyouPMnDVG+1naK5U3Vt5IfnvYjDcb02TE5Yxhu339YHSGpvA/oDhKXbL6Q+wCYkoDee3Hg6lKC1dnF77Lt4Fd4TYVCpahezCRyLsOxyLukkWJLceKKMvfb0UMeonU/MGx+ffaGYyhi6BIGvcHX666aBtWND83SXIp9RLYs6LIeGXG1x+vKbraWEPTaauLbywf/gvn1CNwz+jsIvRCkEb0HtTxFnnSu2hVPBn++4QdyVqXJYNu5vDUFc5Wl/kp5eizQhBCeXtofpjthwfLYo8JUTuMR29F7aTjTIZ3FEbM+8pi5cp0F7Zt+73H+1UrrCDNL+5p7CTc7rTxP/GX6DBvBCqofMZX5vmECWbQyjTdlJdWZK+rLOEnBUBzylJyKGDkcurjva/nXb0qLvGaXyMCIZe07/1FLSp9xV8ClKUEutcgVUNU5o5KQv21d8YHmSoEsz/1/xODXAd7VRNfaqoa+2QMplNhnx1H2rvyxW0voZRQGyxG2+PRqxahzuAPA9eX5RY61ZXtw2PawSf1F7zIkAS37usppuqM8dfVUk= MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f8060b85-44b2-40c2-43ca-08d49933c24c X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131430075)(201703131517081); SRVR:BN1PR03MB169; X-Microsoft-Exchange-Diagnostics: 1; BN1PR03MB169; 3:m/HChmZ3YfXzQGmLoDq4tFIHOY9svOgghMb0VfopzCA0wtXeFVvRspqvF7s9jmcFffk+dtrpNkHMX/ZNU1WY2cOtC1LFDMc0TnOuVuKdFbQeoLkgPNghCCb3727Wq6a/6e+G/umH8+TLxUyTd4/mL5lDXkv1qjumdumFK4nF7EzShO2AvKq7IdLJXIATGS/zR9JViFlB9UCYArdTBx8jKA0/U7HJ+gNtRoq+nzqzFtI0ibuTkVNKpJtUKblEHH4LNSy1MxN2qr4zAEA4Id+mqX37sXR9kjRz8VCaZeZoTPTtLu38N2dhVCPkEnoBpfrYqEL2EygGeTgDgtT2MGVJgYUWboQqFBkyGCgYWuvP7HsYyQM5p8whWGCvhkL8XoapY/brzh0b0xSyvgQPchQvK2F5w09PPPB0jPviExS7yorzg21OzKAh3hkcJbsGrkcW; 25:qCfha74o0UEWozg+yQxX0d4/3ZLufYY9NujPVpFH/bJeDpWHsjVAfmGJHb0gJv//H8FXPIlVrbR6QN0VSLX8NheNCx7QNg7G1Qhe7eR91skxaccd0/mrr3tNM/SBcNAugYlnfFGYAxVdVvqpwEKFo1V0hzEiFApiXba5hzOR5uvnjh/XQb2LIZvrHXNddAaz7MdDlPfmE+OJlWH9MijLbIdS9rW15TChufxi42HvYLDN+0oE1GMmQwLY9XQnh6fPjb06xRz767q7k57ANIskntLiGesNWb2Y/vjoZYEFdXAnqTFfp25f/2sxhpikintflZWBiVOF5gaqYOfdMXVb/zUQhhrJIvp1yIrbY1SdqG2EYewvPOrgMpoCZnWLmKK+rp6k0Jq58YlzdlDpsG3IvMYdcaJk0I6hcAI37HlXYbFEOwzXAjcs0pg6aTNJILp4/Tv94dESMp38em/fmJ9jAg== X-Microsoft-Exchange-Diagnostics: 1; BN1PR03MB169; 31:qBok/6xVaOyx6KrZgwany3J++zN8N+CX9r09V+Zbx13W/jNodbvjkG9uwQntJyF8QeDczAz0HqysGOoZqgXcWw+9h8iNIr+zKnkm8GGdmd1H8r3/ebhTao3eqbaCAM2l4YgKHVtqmYyKo2pwiRdWAnVCxwymK50MZTFzKioAbmC5BuBRVw+gSCDIaMeFuCneD+Sg0tY+aUaQqeMB59lm1eeUafVOheKmuY9dV97YgqYQmXAkt+VLf1JfuyKWjxRA X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(601004)(2401047)(13023025)(8121501046)(13018025)(5005006)(13024025)(13017025)(13015025)(10201501046)(3002001)(93006095)(93001095)(6055026)(6096035)(20161123559100)(20161123565025)(20161123561025)(20161123556025)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123563025); SRVR:BN1PR03MB169; BCL:0; PCL:0; RULEID:(400006); SRVR:BN1PR03MB169; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1PR03MB169; 4:h1pCUNbwWAsZmpA0hknyYZBuPwmWgzuTZQU1Q+zLxgL?= =?us-ascii?Q?zL4oPbBHpLvxY3EN8lzp1oS3jmALYXE6HtNzW0m7jBfFSM29/cRTtagur37B?= =?us-ascii?Q?uu0INpbDp/jV+V5FaKvFGQDxz6XlK2qVezZA81R7ootdnFIEEBBgJrSHVDvu?= =?us-ascii?Q?W+2SD4/+Ye6/x7kz6Uikif3DiNz8m9CO7nx97GQtEv+h0PyOADbGjGt5QDj6?= =?us-ascii?Q?AP7MeYJaArc7q/98+FGMRD/RB0ENuHYF53stgS82z8FEEriDaLJYvx6Aofna?= =?us-ascii?Q?sU5s6HFKx5OPBGG1FztEXt7w8hlqFqTElboin0VPvjAvrn9dKpWfYMFHtO4p?= =?us-ascii?Q?bAlVPsGe6R7PDd8kFDmctK6XZ0/eIEIO+SUT3bJ128KhBThlUP8Gi5QBekAK?= =?us-ascii?Q?avMR+x7jysAH+JPdwKH1JvSoCuxSMMLXjoSODlfT61tS1oFu4sNm2Njv7fF5?= =?us-ascii?Q?bL/PdtwCtmTsqDCVv7IIRcaYH0aUkU/q2dLRz1XaGFp5g8jcmfN8pn9enZVC?= =?us-ascii?Q?M4nsmY3to/0DA3A7bWyF8d3aqFp8xYrfj0dRCvHqy5fNMJsjEj7PJ8ZCCkMT?= =?us-ascii?Q?5IR66VGGSJrukAtHdj2noZQRuBrXyJBzyDeKHNcucIEWGna+DP2Fjf+q63HB?= =?us-ascii?Q?XueX3kr0s68Q1orjkfwPaaLiu89tzSatvLCfsbqCC3a9hrTKbMze2Ijw80pM?= =?us-ascii?Q?Y8kpTqHECTQwBRHe3DORj2HdqiVyyRQDGsYM6/jrC94xJ7iyks3xarlLH8mm?= =?us-ascii?Q?FYQ0MMeEbtK8rgC+zgQzQLr7G1HA1W8cwb+GEH99Pke3QMQb5ApVMtpL5qMP?= =?us-ascii?Q?DP7B980auDNCvF0LU6CoOcrBYONJrs6HOQHYq9VdhPODK67vD2Byoyu91wTi?= =?us-ascii?Q?AuCep34Zsyn2VwuWUHbDnj0ZFKd5V70DbPcpYs5cOWbzG47YBq7Z/ivRp+37?= =?us-ascii?Q?M5MvwcdYVYmzMWOnWdS+8BPY1UasKWKBGcPQLmQ=3D=3D?= X-Forefront-PRVS: 0305463112 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1PR03MB169; 23:d8S//ndxQ3GE2GY8WxfldRRYwQ/sF9icuW8MV7iltj?= =?us-ascii?Q?fny+5cS689OjEggA8g+peTlcm1tZs92Cdaw51/7qfw2l5FYeq5/GDnhhFqQC?= =?us-ascii?Q?lk4oDjWim0LXJLNRUaoovxHyq/DwaHFBmNXTmnnAdtn4vdfDPEo+51o4JJ/0?= =?us-ascii?Q?q/Pp8AuqptVh139+D2S3Uj5he5J2w4CL5Gz0PFbsEXnfw3tqe7rRMpX4zSGK?= =?us-ascii?Q?LswHffci1wEon29C/fCe8wU+IT7mnpUAOHWoKpAtbtYlHNlIrNEZA0wQzkCe?= =?us-ascii?Q?qspyO2o6um0I+ARG5PyVoTNiVkQlHCWUvY3ZRsSbcPedzD3z27bvuJ97fQSw?= =?us-ascii?Q?yfRU5TXQfSkm2jzjfkzyL7zzjhpSas+aGSFGc5Ixo6eQo2QD7fmT4MDSh3ou?= =?us-ascii?Q?EGCMqvUZxPebLCrBvLOr9F/VuSWf0QMfD8IDoAMtgNxOBUN05kAD6fQKGEws?= =?us-ascii?Q?+RYuotWv+5IqnWoTt3FhpvlcdbrBBZt8ErICpsexQY69+kJYSxb7RKngTgJh?= =?us-ascii?Q?aKmxv7DfXDcBgk0pbvBFxEoNxb0XWQT+KBER5ILFDHp7vfFADx3LcHp6MSE5?= =?us-ascii?Q?cYwC0prHdbQ1+vp9/HsISvqIqXU5Ae3LN7xDDZgXO3jhYIUtmgxRUtV3xcIW?= =?us-ascii?Q?nQdLD1gbwFoIfK7aTlDeoupcELiKBT8gsmTCQs5o5v6e27Gqb6Pkj/3DQYrC?= =?us-ascii?Q?IH5i2T1psMANCiuhZapSZ1UcbFbfzJkFODOWxcz6E4N91Gp4z1fNwTDFpcLN?= =?us-ascii?Q?8umX8+ttHhi0HHxIAcarClppU8p2ut0NqDR3z8b1Mkc+vE22TNMOUQtz+ml7?= =?us-ascii?Q?w0FHjP/xlrKAHNYi8oTEZffNNa49miS8bSm2aeYMTlkGAFAN59C2aESp9g0Q?= =?us-ascii?Q?jgnV5aDQS55Bngsprh5OnNfTzxf5S50y/IxzJIA2b/HPArhhW+C4s9biIwoY?= =?us-ascii?Q?bDayLflxG5obuJNH19Cj2qpx8A0gRDjCtsNWB2WD3+KdOATSZfZIORskBCXF?= =?us-ascii?Q?htn9EwPpXqrC8z8FagmAfUw1rHCAwy1DnZYl6ZzPQQmxTLmdJuEU6H6Ay7RX?= =?us-ascii?Q?yoF3PxbZ/OvUTfofjH1rXFnCFaSr8NouQf8hseWdGnGlbfqlorgSR1ea4S8U?= =?us-ascii?Q?QfhRR6tJZH7WoCZA+5Q39QIzM9SZE25mp7AtdX9YyhFaEx4u9Y8ivRGfs+lu?= =?us-ascii?Q?QptzM9M6Y7ldxrHX5rXJqjqFEBiwkplaYrP2vf6jwGjtFBckCV519PbFBZKC?= =?us-ascii?Q?JlDUmWRjnYwhPTNhZQnVNT91DxpWdvjI646FBU?= X-Microsoft-Exchange-Diagnostics: 1; BN1PR03MB169; 6:1q1dcfoPQQzAllq44eJ4IEZ97/D5SdULOYWZbpb+fZfoGKUFT2XuPBComuv1U4+bmUG8k0CXTFYdRZjVuS96kKRkHGy5wFDPqkcAF9b5zi+4/0Z712NA+MYnojxtpqD63l3WDWtCCNySfg8jTKFxlWT0fGG+/EB11jwpu0dNEyCGbHUuaBAIDdjOx3KY0aqBw/sRcQYJdFkhoBn1RVLd8v1ju2F5XqL8EKfhWVwfnuHVpG8y8AywxjAm8gtvwg8gF8YbzcxfPtdaXZZNkxuFI6RR52Zndq0W7Vqv4llkwKT64kGbibMieyFI4TUzYNK3NgXUsYGHfre+7LG1DbfOEkzVdKi9AYFaAmGhbKL3sqMQeQ/Om7mkkCSabPJTQUK8uGLqPghC9Dfi9ph20h5SndHsQ2oSF/lUtT8/53No1tQzdd9B8NeZr2WwIn4SKpItUeBlD9SucPc3D8YVBm4Dhv1fRK1IzmOabrWCPQOV1P/crgjIxwPApXv201b3vvUO; 5:dKsgynJgACmlCvinXjSqe7wY7c/glOwN2RalgcgAKOLzX+F+4RzuCxG/j3Fwr3LBEaLHOq7TFq20YJ3riLTzdgyRvZ9SRypsSpHZ/0fDamM1uXc8ENkKS2Gxe2rYzBjiBpTtfMJRczEXc8u0YLQWHqNXzvNat5P/O9CNRD6lzCfPEFujx9H65UR/ue4put8Q; 24:SZuGmu8f1Cl1/rH6VW88fb0U6C/2ZmEZP602kVxUbL6j9t2x8PLm4PP57wF9ZCAo6hz7+U2tMtDmNKcKGdUidP5j+jfDZ2Yj6+I+wi0sbc4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN1PR03MB169; 7:+r7JfGMmmCvxfXVun6NpAP6R/PV9qksPFMcagXU1q+i8i6lpr82/MICLk4E1TsSD9uFiYqhTYxyL2MdAkBnd1vyk5Zi/Do8XXC5U6LcMRt5ksAHcQiZr82RWfVMct/xLf7e5oIrCtfyVtyOyr82mbZ+P6A85/5HvP/iKxleme/OYxDAP5gsDabv/SSdE2BG2IAJ5g7MUV1AtPwkb489DyR6GnBj8/Dtm+sKhpNGINF0YehHwNqcg3ZAlayQLdYYS/a1uDrivka2HlULojGIwyzINRkUIANpNo8X1gP9TUDpzcyiJkV+FU+0sov1aYZbutUEZQI3vCq1nxB8EwnVlng== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2017 12:38:14.6526 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR03MB169 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org MX7ULP MUX mode mask and shift bit is different from VF610. Let's make it a platform specific property for the later easy of adding MX7ULP support. Cc: Linus Walleij Cc: Shawn Guo Cc: Stefan Agner Cc: Bai Ping Signed-off-by: Fugang Duan Signed-off-by: Dong Aisheng --- drivers/pinctrl/freescale/pinctrl-imx.c | 10 +++++----- drivers/pinctrl/freescale/pinctrl-imx.h | 4 ++++ drivers/pinctrl/freescale/pinctrl-vf610.c | 2 ++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/pinctrl/freescale/pinctrl-imx.c b/drivers/pinctrl/freescale/pinctrl-imx.c index 406881d..ef4951f 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx.c +++ b/drivers/pinctrl/freescale/pinctrl-imx.c @@ -197,8 +197,8 @@ static int imx_pmx_set(struct pinctrl_dev *pctldev, unsigned selector, if (info->flags & SHARE_MUX_CONF_REG) { u32 reg; reg = readl(ipctl->base + pin_reg->mux_reg); - reg &= ~(0x7 << 20); - reg |= (pin->mux_mode << 20); + reg &= ~info->mux_mask; + reg |= (pin->mux_mode << info->mux_shift); writel(reg, ipctl->base + pin_reg->mux_reg); } else { writel(pin->mux_mode, ipctl->base + pin_reg->mux_reg); @@ -288,7 +288,7 @@ static int imx_pmx_gpio_request_enable(struct pinctrl_dev *pctldev, mux_pin: reg = readl(ipctl->base + pin_reg->mux_reg); - reg &= ~(0x7 << 20); + reg &= ~info->mux_mask; reg |= imx_pin->config; writel(reg, ipctl->base + pin_reg->mux_reg); @@ -432,7 +432,7 @@ static int imx_pinconf_get(struct pinctrl_dev *pctldev, *config = readl(ipctl->base + pin_reg->conf_reg); if (info->flags & SHARE_MUX_CONF_REG) - *config &= 0xffff; + *config &= ~info->mux_mask; return 0; } @@ -459,7 +459,7 @@ static int imx_pinconf_set(struct pinctrl_dev *pctldev, if (info->flags & SHARE_MUX_CONF_REG) { u32 reg; reg = readl(ipctl->base + pin_reg->conf_reg); - reg &= ~0xffff; + reg &= info->mux_mask; reg |= configs[i]; writel(reg, ipctl->base + pin_reg->conf_reg); } else { diff --git a/drivers/pinctrl/freescale/pinctrl-imx.h b/drivers/pinctrl/freescale/pinctrl-imx.h index b5c8fe1..eb0ce95 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx.h +++ b/drivers/pinctrl/freescale/pinctrl-imx.h @@ -64,6 +64,10 @@ struct imx_pinctrl_soc_info { const char *gpr_compatible; struct mutex mutex; + /* MUX_MODE shift and mask in case SHARE_MUX_CONF_REG */ + unsigned int mux_mask; + u8 mux_shift; + /* generic pinconf */ bool generic_pinconf; const struct pinconf_generic_params *custom_params; diff --git a/drivers/pinctrl/freescale/pinctrl-vf610.c b/drivers/pinctrl/freescale/pinctrl-vf610.c index 2b1e198..3bd8556 100644 --- a/drivers/pinctrl/freescale/pinctrl-vf610.c +++ b/drivers/pinctrl/freescale/pinctrl-vf610.c @@ -299,6 +299,8 @@ static struct imx_pinctrl_soc_info vf610_pinctrl_info = { .pins = vf610_pinctrl_pads, .npins = ARRAY_SIZE(vf610_pinctrl_pads), .flags = SHARE_MUX_CONF_REG | ZERO_OFFSET_VALID, + .mux_mask = 0x700000, + .mux_shift = 20, }; static const struct of_device_id vf610_pinctrl_of_match[] = {