From patchwork Fri Aug 28 09:32:53 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 7090691 X-Patchwork-Delegate: geert@linux-m68k.org Return-Path: X-Original-To: patchwork-linux-sh@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 648F69F1C2 for ; Fri, 28 Aug 2015 09:33:08 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 78CDC208D6 for ; Fri, 28 Aug 2015 09:33:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 96879208DD for ; Fri, 28 Aug 2015 09:33:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751468AbbH1JdB (ORCPT ); Fri, 28 Aug 2015 05:33:01 -0400 Received: from relmlor2.renesas.com ([210.160.252.172]:11062 "EHLO relmlie1.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751409AbbH1JdA (ORCPT ); Fri, 28 Aug 2015 05:33:00 -0400 Received: from unknown (HELO relmlir3.idc.renesas.com) ([10.200.68.153]) by relmlie1.idc.renesas.com with ESMTP; 28 Aug 2015 18:32:57 +0900 Received: from relmlac2.idc.renesas.com (relmlac2.idc.renesas.com [10.200.69.22]) by relmlir3.idc.renesas.com (Postfix) with ESMTP id A80E74FBFA; Fri, 28 Aug 2015 18:32:57 +0900 (JST) Received: by relmlac2.idc.renesas.com (Postfix, from userid 0) id 983C12806E; Fri, 28 Aug 2015 18:32:57 +0900 (JST) Received: from relmlac2.idc.renesas.com (localhost [127.0.0.1]) by relmlac2.idc.renesas.com (Postfix) with ESMTP id 8A9BB2806D; Fri, 28 Aug 2015 18:32:57 +0900 (JST) Received: from relmlii1.idc.renesas.com [10.200.68.65] by relmlac2.idc.renesas.com with ESMTP id UAY15901; Fri, 28 Aug 2015 18:32:57 +0900 X-IronPort-AV: E=Sophos;i="5.17,424,1437404400"; d="scan'";a="193295689" Received: from mail-sg2apc01lp0239.outbound.protection.outlook.com (HELO APC01-SG2-obe.outbound.protection.outlook.com) ([65.55.88.239]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA; 28 Aug 2015 18:32:56 +0900 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; Received: from morimoto-PC.renesas.com (211.11.155.144) by HK2PR06MB0595.apcprd06.prod.outlook.com (10.161.187.146) with Microsoft SMTP Server (TLS) id 15.1.256.15; Fri, 28 Aug 2015 09:32:53 +0000 Message-ID: <87bndrdan7.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH 1/2][RFC] pinctrl: sh-pfc: Initial R8A7795 PFC support User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 To: Linus Walleij , Laurent Pinchart CC: Simon , Magnus , "linux-gpio@vger.kernel.org" , "linux-sh@vger.kernel.org" In-Reply-To: <87d1y7daou.wl%kuninori.morimoto.gx@renesas.com> References: <87d1y7daou.wl%kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Fri, 28 Aug 2015 09:32:53 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: KAWPR01CA0005.jpnprd01.prod.outlook.com (25.161.24.15) To HK2PR06MB0595.apcprd06.prod.outlook.com (25.161.187.146) X-Microsoft-Exchange-Diagnostics: 1; HK2PR06MB0595; 2:0xMX4wcQBnzPnwVz/gu6szqSTXnJWtsJOz0PLTfefXInC5uqdjayZJgMRDrIG3Onw5JbHuT/2lfhwvEjxhaRQUoC1ro7krdHkYldW4UJMpB1ClX5wsw/muP5DywTMhKLeS3h1xi1ms3LWkT/937chPOY0mJE2dg62omrUCPuiHM=; 3:pJLEyGq3/zVTvpNuijdRUFRowKEzIDqcSCr/JjZn8DrXzDNf/GztpTq6gjAf79euYa//P56A7M/akfpjX97F45dT4tJhNIyqF1QcUN1OHbTnXRedxtWKU1G0oCM54VFgkgHACxVxO0Y2gt0IZ2hROw==; 25:Ks9TJWvK6JREFh3mMprsmf+trQQ3pN0GFyRJyfYidUGC1F1SrBDWNOcqfWOoMA/l59hp3f9S9rzNHTzkyN/xt11GD4QvqsmgyMfUP5yPRVHlen0KA5bOKGeGuooYrotMVEkiNoH45iaCRWoPpyJP0eqWGiu1HmvTcj9BirbIVMZfSGUFBxX2EA+my2QFpmmtS2zHTABRvm5V2UuhI0KVWtfPbUR2mSQEtiejzvQHAJL3r6vBQVNHpE8LqqhNL7OD X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HK2PR06MB0595; X-Microsoft-Exchange-Diagnostics: 1; HK2PR06MB0595; 20:gOfgT5yzmhbAZGy6hQcfb95hErI3xHv9cjnyXYhYsN60jgRzOU/gUpoZzsdQCFGDYTBDqsyqde8Wnzd7HI6yH7vLld3UWHNnVJ0eXkG1RKOiWNO23lAQdhk2Ug26WoDAPy4Buev0jo/SqXHgu3aLj1KcC7utSjdQ62ZIBVevW7rYYBTWkfWAfLnvL0uCQr9pAHsfZO7pJsI7/hXu1wNhwhbvftIs6S1fH7HQ0cRJHIUdF28d6b3jwD2icPoleSGY91ZgHylDQgTjBaq6du4BjvSXHGTzGyjcilYaPKIgYpd/7w0ZDxpLdLX77qJ5dqHZCya7NeEuZ5X2P7X6cm0VS480KRrPZmTjl9AwsZdKqE/zq8sMQKk91rHsAEsYxFogJINROOSlWved+jsQfvJU2C8RzVFGrvx2cfz0FKSqSP8QTuyfwe4RPbkQ7W9quTqLF87aTQYcfjTR4VRFrE9eaMfk1QGOV0fF5nYXYAzfjom5eTl8Se45kQrkGFK8NTyg; 4:uOqVFkXT2Nh4hVqcVmOn33Xq7MCymfVu5lPZefhpY3qClosfU5D07nqNz0Wb3opSSwErulvDVU9rdRmYUb1KHFhUp+Frf3NlTee8YfZwLg6zEv5bgnhkE4QM3J49bOIdlwjBaCehObxJqKdff04TqOHyQ904stTI+YD7DHDCivsVHHkL9vdyTG1jYuTt9+xPz8AYn0YZUT3aReBteyn3feXJvKwdbpOCzoTKkSJ8CgNgH1886Jl4/QTJzPeTOSLQsAm8cySfJ0hfw92mJqtv4RRWwjpqIDcI5VzUOFl3V6I42C4SnU4yp4smMjjq3f9r X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(8121501046)(5005006)(3002001); SRVR:HK2PR06MB0595; BCL:0; PCL:0; RULEID:; SRVR:HK2PR06MB0595; X-Forefront-PRVS: 0682FC00E8 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6009001)(199003)(189002)(5007970100001)(36756003)(33646002)(66066001)(68736005)(101416001)(46102003)(122386002)(23726002)(40100003)(105586002)(106356001)(5004730100002)(50466002)(64706001)(77156002)(62966003)(5001920100001)(5001960100002)(189998001)(69596002)(5001860100001)(2950100001)(19580395003)(47776003)(229853001)(4001350100001)(5001830100001)(42186005)(5001770100001)(46406003)(81156007)(4001540100001)(19580405001)(53416004)(50986999)(83506001)(54356999)(77096005)(92566002)(86362001)(87976001)(76176999)(97736004)(2004002); DIR:OUT; SFP:1102; SCL:1; SRVR:HK2PR06MB0595; H:morimoto-PC.renesas.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HK2PR06MB0595; 23:oSLecbYskPxDgXkKz/xojKCLAPLFlTvhpaAXhLVln?= =?us-ascii?Q?6WjU8uozuuEgytFUFhkljkPVeY1zDZTMipC8stjXN71a9sYFo3vMU590/j0f?= =?us-ascii?Q?Gmuwr5Nyur1Gwnw5j9F7WOC6+wvphaLmjsnGTSuvHOyAiVqHW65BzP3/yeoi?= =?us-ascii?Q?/lLDTjhP1lW+N8r5u0MSLeCIh6Xop2yjAx89oYhhHIVVt+aBAK4rVC2Z3UdL?= =?us-ascii?Q?oTvwI3DU17JkTRldvPNOCLlIgYWk2AhMc3eSoz/oHVSSyYcsdq2TJQuL8PL+?= =?us-ascii?Q?1X28EdsPFwF+WI5XfR6NoX4z4kz1BZRSAtc0PNVC4sznKP7oDjv0aCzWxuRo?= =?us-ascii?Q?LIBctnhVddaUf7c9RnLFyF0db6qeIC7lvIvPjEv19myxqm/DcAI0PxYFHYLI?= =?us-ascii?Q?buj7cqZXXZQcYtGJ9xpmhsP0o9E+CUMNRvXDYmTOc+IKd5sJj0wV8mkks5iK?= =?us-ascii?Q?tmGNbwL7WTEYMPePceXJNK4luru2R0nvySYuFyZl4eVJZJoljI2Ufwp0qcto?= =?us-ascii?Q?jQgsQPzirF13UZ4JP33bFIKhf3n4CLYjn9pbrxMtJyN3zzgKm3o+6HptR4Hk?= =?us-ascii?Q?Cf/gtVAiFtnzOgapx1K8HpPobNL5bISedk6bx3Pb4diTaHNNN9f7l7lFrii6?= =?us-ascii?Q?nHhPihAL2HBYe+AF/JCxgX9pdAiDGDbqIMWFH5iHgcYzzCS/haGbPjAzd5xM?= =?us-ascii?Q?hY3jSjp/If+yBUTBgtTSC5dGSfTCeit/seJqcaw/4AX07zgIkZj/7LcyLyL8?= =?us-ascii?Q?9T4WLzXRcEy7rLQvzW30eMiCmC3pybvboZFT761GWQgbUUYbXtiFf22IC3lM?= =?us-ascii?Q?szbEKb+MyLv/c+YE+SEZgNR/WLVRryeLuAOlAZETYHmWy4DV5nwbIB/xJgxc?= =?us-ascii?Q?KkMibGvehPFkv8bu6HaLH3oXWPWNX1hDTm3e87NWXXhiULv0Yz1aDuxPQirD?= =?us-ascii?Q?oQ+mOfsnxyzmQxFfCC+ACc/c0EQsz9gHkik48v0ckqNglRxeAQ0MEtwLQKSj?= =?us-ascii?Q?qms4lVIna/kj6DMXQRDKObQguGt87LufikAUDxWt8ramKkaqZeMr7c1Cttti?= =?us-ascii?Q?PfrgpF9t1BfnFRc2xeRNIcsAVjnq82CIGnITKgsqjeWnQSCuITpWIS0e9FF6?= =?us-ascii?Q?qpqUDjhZEKueCjOmFxhIdM/NW2IAGc5A6rwREerjRWwnkTcs60K6LZCjMynd?= =?us-ascii?Q?uYPIxbglhxIAJq1CE/nFlm6Cadnc4LflELUksqmAWYk5/7p9uWN2EofcoI0r?= =?us-ascii?Q?3kO+dPXWDM52oLLEW6wK5096tAxo/e5CqPiqJh942ATyd8hgswgYT/v48lYe?= =?us-ascii?B?dz09?= X-Microsoft-Exchange-Diagnostics: 1; HK2PR06MB0595; 5:/O/oygGPiG5CEzskwX3aoW1gj+ojBzRvwZFR0HiKsvBHKLWzp/HDyvW0W0jwizIuXUnnMkXibR1OHdv74U1jJgBbpuXfpy0O2kPFNwEMIRmgpwhvrwv6vDDbfgEwxp0GUAs8KkKxuI72D7YNgJLT1g==; 24:WlUJzQCMCckBxk3M6glbAckptlj3nXoCqINuUAfg/zRqFV8j8lpRcvx1yuLjW5EiJQFf1NO1CWqlUM0XJBBBvWNvI5OzGXGrk2rFjleklLM=; 20:rNb88bq48z96EEu0XiJvpKq9uYgzswRYaARZ7/V1nvCcfEA27opvIRrYE6oqOCjINPea8r7J/WgJT8Ul/abVgL44Ei1Sr3koWr4srwMJ//2ScrGfho9uZsJ8Oslkg++UrACb41+LWQjl6NLUd5odnDRngwY22Nx1bWA42ijWJlk= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2015 09:32:53.4015 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK2PR06MB0595 Sender: linux-sh-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sh@vger.kernel.org X-Spam-Status: No, score=-8.3 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Kuninori Morimoto Add PFC base support for the R8A7795 SoC. It is including IPSRx / MOD_SELx only Original patch was created by Takeshi Kihara, and Kuninori Morimoto updated it. Signed-off-by: Takeshi Kihara Signed-off-by: Kuninori Morimoto --- drivers/pinctrl/sh-pfc/Kconfig | 5 + drivers/pinctrl/sh-pfc/Makefile | 1 + drivers/pinctrl/sh-pfc/core.c | 6 + drivers/pinctrl/sh-pfc/core.h | 1 + drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 1499 ++++++++++++++++++++++++++++++++++ 5 files changed, 1512 insertions(+) create mode 100644 drivers/pinctrl/sh-pfc/pfc-r8a7795.c diff --git a/drivers/pinctrl/sh-pfc/Kconfig b/drivers/pinctrl/sh-pfc/Kconfig index 8e024c9..35d6e95 100644 --- a/drivers/pinctrl/sh-pfc/Kconfig +++ b/drivers/pinctrl/sh-pfc/Kconfig @@ -65,6 +65,11 @@ config PINCTRL_PFC_R8A7794 depends on ARCH_R8A7794 select PINCTRL_SH_PFC +config PINCTRL_PFC_R8A7795 + def_bool y + depends on ARCH_R8A7795 + select PINCTRL_SH_PFC + config PINCTRL_PFC_SH7203 def_bool y depends on CPU_SUBTYPE_SH7203 diff --git a/drivers/pinctrl/sh-pfc/Makefile b/drivers/pinctrl/sh-pfc/Makefile index ea2a60e..173305f 100644 --- a/drivers/pinctrl/sh-pfc/Makefile +++ b/drivers/pinctrl/sh-pfc/Makefile @@ -12,6 +12,7 @@ obj-$(CONFIG_PINCTRL_PFC_R8A7790) += pfc-r8a7790.o obj-$(CONFIG_PINCTRL_PFC_R8A7791) += pfc-r8a7791.o obj-$(CONFIG_PINCTRL_PFC_R8A7793) += pfc-r8a7791.o obj-$(CONFIG_PINCTRL_PFC_R8A7794) += pfc-r8a7794.o +obj-$(CONFIG_PINCTRL_PFC_R8A7795) += pfc-r8a7795.o obj-$(CONFIG_PINCTRL_PFC_SH7203) += pfc-sh7203.o obj-$(CONFIG_PINCTRL_PFC_SH7264) += pfc-sh7264.o obj-$(CONFIG_PINCTRL_PFC_SH7269) += pfc-sh7269.o diff --git a/drivers/pinctrl/sh-pfc/core.c b/drivers/pinctrl/sh-pfc/core.c index fb9c448..bcf3017 100644 --- a/drivers/pinctrl/sh-pfc/core.c +++ b/drivers/pinctrl/sh-pfc/core.c @@ -489,6 +489,12 @@ static const struct of_device_id sh_pfc_of_table[] = { .data = &r8a7794_pinmux_info, }, #endif +#ifdef CONFIG_PINCTRL_PFC_R8A7795 + { + .compatible = "renesas,pfc-r8a7795", + .data = &r8a7795_pinmux_info, + }, +#endif #ifdef CONFIG_PINCTRL_PFC_SH73A0 { .compatible = "renesas,pfc-sh73a0", diff --git a/drivers/pinctrl/sh-pfc/core.h b/drivers/pinctrl/sh-pfc/core.h index 4c3c37b..45398f6 100644 --- a/drivers/pinctrl/sh-pfc/core.h +++ b/drivers/pinctrl/sh-pfc/core.h @@ -73,6 +73,7 @@ extern const struct sh_pfc_soc_info r8a7790_pinmux_info; extern const struct sh_pfc_soc_info r8a7791_pinmux_info; extern const struct sh_pfc_soc_info r8a7793_pinmux_info; extern const struct sh_pfc_soc_info r8a7794_pinmux_info; +extern const struct sh_pfc_soc_info r8a7795_pinmux_info; extern const struct sh_pfc_soc_info sh7203_pinmux_info; extern const struct sh_pfc_soc_info sh7264_pinmux_info; extern const struct sh_pfc_soc_info sh7269_pinmux_info; diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7795.c b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c new file mode 100644 index 0000000..23f2c4e --- /dev/null +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c @@ -0,0 +1,1499 @@ +/* + * R-Car Gen3 processor support - PFC hardware block. + * + * Copyright (C) 2015 Renesas Electronics Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + */ + +#include +#include + +#include "core.h" +#include "sh_pfc.h" + +#define CPU_ALL_PORT(fn, sfx) \ + PORT_GP_32(0, fn, sfx), \ + PORT_GP_32(1, fn, sfx), \ + PORT_GP_32(2, fn, sfx), \ + PORT_GP_32(3, fn, sfx), \ + PORT_GP_32(4, fn, sfx), \ + PORT_GP_32(5, fn, sfx), \ + PORT_GP_32(6, fn, sfx), \ + PORT_GP_32(7, fn, sfx) + +enum { + PINMUX_RESERVED = 0, + + PINMUX_DATA_BEGIN, + GP_ALL(DATA), + PINMUX_DATA_END, + + PINMUX_FUNCTION_BEGIN, + GP_ALL(FN), + + /* IPSR0 */ /* IPSR1 */ /* IPSR2 */ /* IPSR3 */ + FN_IP0_3_0, FN_IP1_3_0, FN_IP2_3_0, FN_IP3_3_0, + FN_IP0_7_4, FN_IP1_7_4, FN_IP2_7_4, FN_IP3_7_4, + FN_IP0_11_8, FN_IP1_11_8, FN_IP2_11_8, FN_IP3_11_8, + FN_IP0_15_12, FN_IP1_15_12, FN_IP2_15_12, FN_IP3_15_12, + FN_IP0_19_16, FN_IP1_19_16, FN_IP2_19_16, FN_IP3_19_16, + FN_IP0_23_20, FN_IP1_23_20, FN_IP2_23_20, FN_IP3_23_20, + FN_IP0_27_24, FN_IP1_27_24, FN_IP2_27_24, FN_IP3_27_24, + FN_IP0_31_28, FN_IP1_31_28, FN_IP2_31_28, FN_IP3_31_28, + + /* IPSR4 */ /* IPSR5 */ /* IPSR6 */ /* IPSR7 */ + FN_IP4_3_0, FN_IP5_3_0, FN_IP6_3_0, FN_IP7_3_0, + FN_IP4_7_4, FN_IP5_7_4, FN_IP6_7_4, FN_IP7_7_4, + FN_IP4_11_8, FN_IP5_11_8, FN_IP6_11_8, FN_IP7_11_8, + FN_IP4_15_12, FN_IP5_15_12, FN_IP6_15_12, FN_IP7_15_12, + FN_IP4_19_16, FN_IP5_19_16, FN_IP6_19_16, FN_IP7_19_16, + FN_IP4_23_20, FN_IP5_23_20, FN_IP6_23_20, FN_IP7_23_20, + FN_IP4_27_24, FN_IP5_27_24, FN_IP6_27_24, FN_IP7_27_24, + FN_IP4_31_28, FN_IP5_31_28, FN_IP6_31_28, FN_IP7_31_28, + + /* IPSR8 */ /* IPSR9 */ /* IPSR10 */ /* IPSR11 */ + FN_IP8_3_0, FN_IP9_3_0, FN_IP10_3_0, FN_IP11_3_0, + FN_IP8_7_4, FN_IP9_7_4, FN_IP10_7_4, FN_IP11_7_4, + FN_IP8_11_8, FN_IP9_11_8, FN_IP10_11_8, FN_IP11_11_8, + FN_IP8_15_12, FN_IP9_15_12, FN_IP10_15_12, FN_IP11_15_12, + FN_IP8_19_16, FN_IP9_19_16, FN_IP10_19_16, FN_IP11_19_16, + FN_IP8_23_20, FN_IP9_23_20, FN_IP10_23_20, FN_IP11_23_20, + FN_IP8_27_24, FN_IP9_27_24, FN_IP10_27_24, FN_IP11_27_24, + FN_IP8_31_28, FN_IP9_31_28, FN_IP10_31_28, FN_IP11_31_28, + + /* IPSR12 */ /* IPSR13 */ /* IPSR14 */ /* IPSR15 */ + FN_IP12_3_0, FN_IP13_3_0, FN_IP14_3_0, FN_IP15_3_0, + FN_IP12_7_4, FN_IP13_7_4, FN_IP14_7_4, FN_IP15_7_4, + FN_IP12_11_8, FN_IP13_11_8, FN_IP14_11_8, FN_IP15_11_8, + FN_IP12_15_12, FN_IP13_15_12, FN_IP14_15_12, FN_IP15_15_12, + FN_IP12_19_16, FN_IP13_19_16, FN_IP14_19_16, FN_IP15_19_16, + FN_IP12_23_20, FN_IP13_23_20, FN_IP14_23_20, FN_IP15_23_20, + FN_IP12_27_24, FN_IP13_27_24, FN_IP14_27_24, FN_IP15_27_24, + FN_IP12_31_28, FN_IP13_31_28, FN_IP14_31_28, FN_IP15_31_28, + + /* IPSR16 */ /* IPSR17 */ + FN_IP16_3_0, FN_IP17_3_0, + FN_IP16_7_4, FN_IP17_7_4, + FN_IP16_11_8, + FN_IP16_15_12, + FN_IP16_19_16, + FN_IP16_23_20, + FN_IP16_27_24, + FN_IP16_31_28, + + /* MOD_SEL0 */ + FN_SEL_MSIOF3_0, FN_SEL_MSIOF3_1, FN_SEL_MSIOF3_2, FN_SEL_MSIOF3_3, + FN_SEL_MSIOF2_0, FN_SEL_MSIOF2_1, FN_SEL_MSIOF2_2, FN_SEL_MSIOF2_3, + FN_SEL_MSIOF1_0, FN_SEL_MSIOF1_1, FN_SEL_MSIOF1_2, FN_SEL_MSIOF1_3, + FN_SEL_MSIOF1_4, FN_SEL_MSIOF1_5, FN_SEL_MSIOF1_6, FN_SEL_MSIOF1_7, + FN_SEL_LBSC_0, FN_SEL_LBSC_1, + FN_SEL_IEBUS_0, FN_SEL_IEBUS_1, + FN_SEL_I2C6_0, FN_SEL_I2C6_1, FN_SEL_I2C6_2, FN_SEL_I2C6_3, + FN_SEL_I2C2_0, FN_SEL_I2C2_1, + FN_SEL_I2C1_0, FN_SEL_I2C1_1, + FN_SEL_HSCIF4_0, FN_SEL_HSCIF4_1, + FN_SEL_HSCIF3_0, FN_SEL_HSCIF3_1, FN_SEL_HSCIF3_2, FN_SEL_HSCIF3_3, + FN_SEL_HSCIF2_0, FN_SEL_HSCIF2_1, + FN_SEL_HSCIF1_0, FN_SEL_HSCIF1_1, + FN_SEL_FSO_0, FN_SEL_FSO_1, + FN_SEL_FM_0, FN_SEL_FM_1, + FN_SEL_ETHERAVB_0, FN_SEL_ETHERAVB_1, + FN_SEL_DRIF3_0, FN_SEL_DRIF3_1, + FN_SEL_DRIF2_0, FN_SEL_DRIF2_1, + FN_SEL_DRIF1_0, FN_SEL_DRIF1_1, FN_SEL_DRIF1_2, FN_SEL_DRIF1_3, + FN_SEL_DRIF0_0, FN_SEL_DRIF0_1, FN_SEL_DRIF0_2, FN_SEL_DRIF0_3, + FN_SEL_CANFD0_0, FN_SEL_CANFD0_1, + FN_SEL_ADG_0, FN_SEL_ADG_1, FN_SEL_ADG_2, FN_SEL_ADG_3, + + /* MOD_SEL1 */ + FN_SEL_TSIF1_0, FN_SEL_TSIF1_1, FN_SEL_TSIF1_2, FN_SEL_TSIF1_3, + FN_SEL_TSIF0_0, FN_SEL_TSIF0_1, FN_SEL_TSIF0_2, FN_SEL_TSIF0_3, + FN_SEL_TSIF0_4, FN_SEL_TSIF0_5, FN_SEL_TSIF0_6, FN_SEL_TSIF0_7, + FN_SEL_TIMER_TMU_0, FN_SEL_TIMER_TMU_1, + FN_SEL_SSP1_1_0, FN_SEL_SSP1_1_1, FN_SEL_SSP1_1_2, FN_SEL_SSP1_1_3, + FN_SEL_SSP1_0_0, FN_SEL_SSP1_0_1, FN_SEL_SSP1_0_2, FN_SEL_SSP1_0_3, + FN_SEL_SSP1_0_4, FN_SEL_SSP1_0_5, FN_SEL_SSP1_0_6, FN_SEL_SSP1_0_7, + FN_SEL_SSI_0, FN_SEL_SSI_1, + FN_SEL_SPEED_PULSE_0, FN_SEL_SPEED_PULSE_1, + FN_SEL_SIMCARD_0, FN_SEL_SIMCARD_1, FN_SEL_SIMCARD_2, FN_SEL_SIMCARD_3, + FN_SEL_SDHI2_0, FN_SEL_SDHI2_1, + FN_SEL_SCIF4_0, FN_SEL_SCIF4_1, FN_SEL_SCIF4_2, FN_SEL_SCIF4_3, + FN_SEL_SCIF3_0, FN_SEL_SCIF3_1, + FN_SEL_SCIF2_0, FN_SEL_SCIF2_1, + FN_SEL_SCIF1_0, FN_SEL_SCIF1_1, + FN_SEL_SCIF_0, FN_SEL_SCIF_1, + FN_SEL_REMOCON_0, FN_SEL_REMOCON_1, + FN_SEL_RCAN0_0, FN_SEL_RCAN0_1, + FN_SEL_PWM6_0, FN_SEL_PWM6_1, + FN_SEL_PWM5_0, FN_SEL_PWM5_1, + FN_SEL_PWM4_0, FN_SEL_PWM4_1, + FN_SEL_PWM3_0, FN_SEL_PWM3_1, + FN_SEL_PWM2_0, FN_SEL_PWM2_1, + FN_SEL_PWM1_0, FN_SEL_PWM1_1, + + /* MOD_SEL2 */ + FN_SEL_I2C_5_0, FN_SEL_I2C_5_1, + FN_SEL_I2C_3_0, FN_SEL_I2C_3_1, + FN_SEL_I2C_0_0, FN_SEL_I2C_0_1, + FN_SEL_VSP_0, FN_SEL_VSP_1, FN_SEL_VSP_2, FN_SEL_VSP_3, + FN_SEL_VIN4_0, FN_SEL_VIN4_1, + + PINMUX_FUNCTION_END, + + PINMUX_MARK_BEGIN, + + /* IPSR0 */ /* IPSR1 */ /* IPSR2 */ /* IPSR3 */ + IP0_3_0_MARK, IP1_3_0_MARK, IP2_3_0_MARK, IP3_3_0_MARK, + IP0_7_4_MARK, IP1_7_4_MARK, IP2_7_4_MARK, IP3_7_4_MARK, + IP0_11_8_MARK, IP1_11_8_MARK, IP2_11_8_MARK, IP3_11_8_MARK, + IP0_15_12_MARK, IP1_15_12_MARK, IP2_15_12_MARK, IP3_15_12_MARK, + IP0_19_16_MARK, IP1_19_16_MARK, IP2_19_16_MARK, IP3_19_16_MARK, + IP0_23_20_MARK, IP1_23_20_MARK, IP2_23_20_MARK, IP3_23_20_MARK, + IP0_27_24_MARK, IP1_27_24_MARK, IP2_27_24_MARK, IP3_27_24_MARK, + IP0_31_28_MARK, IP1_31_28_MARK, IP2_31_28_MARK, IP3_31_28_MARK, + + /* IPSR4 */ /* IPSR5 */ /* IPSR6 */ /* IPSR7 */ + IP4_3_0_MARK, IP5_3_0_MARK, IP6_3_0_MARK, IP7_3_0_MARK, + IP4_7_4_MARK, IP5_7_4_MARK, IP6_7_4_MARK, IP7_7_4_MARK, + IP4_11_8_MARK, IP5_11_8_MARK, IP6_11_8_MARK, IP7_11_8_MARK, + IP4_15_12_MARK, IP5_15_12_MARK, IP6_15_12_MARK, IP7_15_12_MARK, + IP4_19_16_MARK, IP5_19_16_MARK, IP6_19_16_MARK, IP7_19_16_MARK, + IP4_23_20_MARK, IP5_23_20_MARK, IP6_23_20_MARK, IP7_23_20_MARK, + IP4_27_24_MARK, IP5_27_24_MARK, IP6_27_24_MARK, IP7_27_24_MARK, + IP4_31_28_MARK, IP5_31_28_MARK, IP6_31_28_MARK, IP7_31_28_MARK, + + /* IPSR8 */ /* IPSR9 */ /* IPSR10 */ /* IPSR11 */ + IP8_3_0_MARK, IP9_3_0_MARK, IP10_3_0_MARK, IP11_3_0_MARK, + IP8_7_4_MARK, IP9_7_4_MARK, IP10_7_4_MARK, IP11_7_4_MARK, + IP8_11_8_MARK, IP9_11_8_MARK, IP10_11_8_MARK, IP11_11_8_MARK, + IP8_15_12_MARK, IP9_15_12_MARK, IP10_15_12_MARK, IP11_15_12_MARK, + IP8_19_16_MARK, IP9_19_16_MARK, IP10_19_16_MARK, IP11_19_16_MARK, + IP8_23_20_MARK, IP9_23_20_MARK, IP10_23_20_MARK, IP11_23_20_MARK, + IP8_27_24_MARK, IP9_27_24_MARK, IP10_27_24_MARK, IP11_27_24_MARK, + IP8_31_28_MARK, IP9_31_28_MARK, IP10_31_28_MARK, IP11_31_28_MARK, + + /* IPSR12 */ /* IPSR13 */ /* IPSR14 */ /* IPSR15 */ + IP12_3_0_MARK, IP13_3_0_MARK, IP14_3_0_MARK, IP15_3_0_MARK, + IP12_7_4_MARK, IP13_7_4_MARK, IP14_7_4_MARK, IP15_7_4_MARK, + IP12_11_8_MARK, IP13_11_8_MARK, IP14_11_8_MARK, IP15_11_8_MARK, + IP12_15_12_MARK, IP13_15_12_MARK, IP14_15_12_MARK, IP15_15_12_MARK, + IP12_19_16_MARK, IP13_19_16_MARK, IP14_19_16_MARK, IP15_19_16_MARK, + IP12_23_20_MARK, IP13_23_20_MARK, IP14_23_20_MARK, IP15_23_20_MARK, + IP12_27_24_MARK, IP13_27_24_MARK, IP14_27_24_MARK, IP15_27_24_MARK, + IP12_31_28_MARK, IP13_31_28_MARK, IP14_31_28_MARK, IP15_31_28_MARK, + + /* IPSR16 */ /* IPSR17 */ + IP16_3_0_MARK, IP17_3_0_MARK, + IP16_7_4_MARK, IP17_7_4_MARK, + IP16_11_8_MARK, + IP16_15_12_MARK, + IP16_19_16_MARK, + IP16_23_20_MARK, + IP16_27_24_MARK, + IP16_31_28_MARK, + + /* MOD_SEL0 */ + SEL_MSIOF3_0_MARK, SEL_MSIOF3_1_MARK, SEL_MSIOF3_2_MARK, SEL_MSIOF3_3_MARK, + SEL_MSIOF2_0_MARK, SEL_MSIOF2_1_MARK, SEL_MSIOF2_2_MARK, SEL_MSIOF2_3_MARK, + SEL_MSIOF1_0_MARK, SEL_MSIOF1_1_MARK, SEL_MSIOF1_2_MARK, SEL_MSIOF1_3_MARK, + SEL_MSIOF1_4_MARK, SEL_MSIOF1_5_MARK, SEL_MSIOF1_6_MARK, SEL_MSIOF1_7_MARK, + SEL_LBSC_0_MARK, SEL_LBSC_1_MARK, + SEL_IEBUS_0_MARK, SEL_IEBUS_1_MARK, + SEL_I2C6_0_MARK, SEL_I2C6_1_MARK, SEL_I2C6_2_MARK, SEL_I2C6_3_MARK, + SEL_I2C2_0_MARK, SEL_I2C2_1_MARK, + SEL_I2C1_0_MARK, SEL_I2C1_1_MARK, + SEL_HSCIF4_0_MARK, SEL_HSCIF4_1_MARK, + SEL_HSCIF3_0_MARK, SEL_HSCIF3_1_MARK, SEL_HSCIF3_2_MARK, SEL_HSCIF3_3_MARK, + SEL_HSCIF2_0_MARK, SEL_HSCIF2_1_MARK, + SEL_HSCIF1_0_MARK, SEL_HSCIF1_1_MARK, + SEL_FSO_0_MARK, SEL_FSO_1_MARK, + SEL_FM_0_MARK, SEL_FM_1_MARK, + SEL_ETHERAVB_0_MARK, SEL_ETHERAVB_1_MARK, + SEL_DRIF3_0_MARK, SEL_DRIF3_1_MARK, + SEL_DRIF2_0_MARK, SEL_DRIF2_1_MARK, + SEL_DRIF1_0_MARK, SEL_DRIF1_1_MARK, SEL_DRIF1_2_MARK, SEL_DRIF1_3_MARK, + SEL_DRIF0_0_MARK, SEL_DRIF0_1_MARK, SEL_DRIF0_2_MARK, SEL_DRIF0_3_MARK, + SEL_CANFD0_0_MARK, SEL_CANFD0_1_MARK, + SEL_ADG_0_MARK, SEL_ADG_1_MARK, SEL_ADG_2_MARK, SEL_ADG_3_MARK, + + /* MOD_SEL1 */ + SEL_TSIF1_0_MARK, SEL_TSIF1_1_MARK, SEL_TSIF1_2_MARK, SEL_TSIF1_3_MARK, + SEL_TSIF0_0_MARK, SEL_TSIF0_1_MARK, SEL_TSIF0_2_MARK, SEL_TSIF0_3_MARK, + SEL_TSIF0_4_MARK, SEL_TSIF0_5_MARK, SEL_TSIF0_6_MARK, SEL_TSIF0_7_MARK, + SEL_TIMER_TMU_0_MARK, SEL_TIMER_TMU_1_MARK, + SEL_SSP1_1_0_MARK, SEL_SSP1_1_1_MARK, SEL_SSP1_1_2_MARK, SEL_SSP1_1_3_MARK, + SEL_SSP1_0_0_MARK, SEL_SSP1_0_1_MARK, SEL_SSP1_0_2_MARK, SEL_SSP1_0_3_MARK, + SEL_SSP1_0_4_MARK, SEL_SSP1_0_5_MARK, SEL_SSP1_0_6_MARK, SEL_SSP1_0_7_MARK, + SEL_SSI_0_MARK, SEL_SSI_1_MARK, + SEL_SPEED_PULSE_0_MARK, SEL_SPEED_PULSE_1_MARK, + SEL_SIMCARD_0_MARK, SEL_SIMCARD_1_MARK, SEL_SIMCARD_2_MARK, SEL_SIMCARD_3_MARK, + SEL_SDHI2_0_MARK, SEL_SDHI2_1_MARK, + SEL_SCIF4_0_MARK, SEL_SCIF4_1_MARK, SEL_SCIF4_2_MARK, SEL_SCIF4_3_MARK, + SEL_SCIF3_0_MARK, SEL_SCIF3_1_MARK, + SEL_SCIF2_0_MARK, SEL_SCIF2_1_MARK, + SEL_SCIF1_0_MARK, SEL_SCIF1_1_MARK, + SEL_SCIF_0_MARK, SEL_SCIF_1_MARK, + SEL_REMOCON_0_MARK, SEL_REMOCON_1_MARK, + SEL_RCAN0_0_MARK, SEL_RCAN0_1_MARK, + SEL_PWM6_0_MARK, SEL_PWM6_1_MARK, + SEL_PWM5_0_MARK, SEL_PWM5_1_MARK, + SEL_PWM4_0_MARK, SEL_PWM4_1_MARK, + SEL_PWM3_0_MARK, SEL_PWM3_1_MARK, + SEL_PWM2_0_MARK, SEL_PWM2_1_MARK, + SEL_PWM1_0_MARK, SEL_PWM1_1_MARK, + + /* MOD_SEL2 */ + SEL_I2C_5_0_MARK, SEL_I2C_5_1_MARK, + SEL_I2C_3_0_MARK, SEL_I2C_3_1_MARK, + SEL_I2C_0_0_MARK, SEL_I2C_0_1_MARK, + SEL_VSP_0_MARK, SEL_VSP_1_MARK, SEL_VSP_2_MARK, SEL_VSP_3_MARK, + SEL_VIN4_0_MARK, SEL_VIN4_1_MARK, + + PINMUX_MARK_END, +}; + +static const u16 pinmux_data[] = { + PINMUX_DATA_GP_ALL(), + + /* IPSR0 */ + + /* IPSR1 */ + + /* IPSR2 */ + + /* IPSR3 */ + + /* IPSR4 */ + + /* IPSR5 */ + + /* IPSR6 */ + + /* IPSR7 */ + + /* IPSR8 */ + + /* IPSR9 */ + + /* IPSR10 */ + + /* IPSR11 */ + + /* IPSR12 */ + + /* IPSR13 */ + + /* IPSR14 */ + + /* IPSR15 */ + + /* IPSR16 */ + + /* IPSR17 */ +}; + +static const struct sh_pfc_pin pinmux_pins[] = { + PINMUX_GPIO_GP_ALL(), +}; + +static const struct sh_pfc_pin_group pinmux_groups[] = { +}; + +static const struct sh_pfc_function pinmux_functions[] = { +}; + +static const struct pinmux_cfg_reg pinmux_config_regs[] = { + { PINMUX_CFG_REG("GPSR0", 0xe6060100, 32, 1) { + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + GP_0_15_FN, FN_IP7_11_8, + GP_0_14_FN, FN_IP7_7_4, + GP_0_13_FN, FN_IP7_3_0, + GP_0_12_FN, FN_IP6_31_28, + GP_0_11_FN, FN_IP6_27_24, + GP_0_10_FN, FN_IP6_23_20, + GP_0_9_FN, FN_IP6_19_16, + GP_0_8_FN, FN_IP6_15_12, + GP_0_7_FN, FN_IP6_11_8, + GP_0_6_FN, FN_IP6_7_4, + GP_0_5_FN, FN_IP6_3_0, + GP_0_4_FN, FN_IP5_31_28, + GP_0_3_FN, FN_IP5_27_24, + GP_0_2_FN, FN_IP5_23_20, + GP_0_1_FN, FN_IP5_19_16, + GP_0_0_FN, FN_IP5_15_12, } + }, + { PINMUX_CFG_REG("GPSR1", 0xe6060104, 32, 1) { + 0, 0, + 0, 0, + 0, 0, + 0, 0, + GP_1_27_FN, FN_IP5_11_8, + GP_1_26_FN, FN_IP5_7_4, + GP_1_25_FN, FN_IP5_3_0, + GP_1_24_FN, FN_IP4_31_28, + GP_1_23_FN, FN_IP4_27_24, + GP_1_22_FN, FN_IP4_23_20, + GP_1_21_FN, FN_IP4_19_16, + GP_1_20_FN, FN_IP4_15_12, + GP_1_19_FN, FN_IP4_11_8, + GP_1_18_FN, FN_IP4_7_4, + GP_1_17_FN, FN_IP4_3_0, + GP_1_16_FN, FN_IP3_31_28, + GP_1_15_FN, FN_IP3_27_24, + GP_1_14_FN, FN_IP3_23_20, + GP_1_13_FN, FN_IP3_19_16, + GP_1_12_FN, FN_IP3_15_12, + GP_1_11_FN, FN_IP3_11_8, + GP_1_10_FN, FN_IP3_7_4, + GP_1_9_FN, FN_IP3_3_0, + GP_1_8_FN, FN_IP2_31_28, + GP_1_7_FN, FN_IP2_27_24, + GP_1_6_FN, FN_IP2_23_20, + GP_1_5_FN, FN_IP2_19_16, + GP_1_4_FN, FN_IP2_15_12, + GP_1_3_FN, FN_IP2_11_8, + GP_1_2_FN, FN_IP2_7_4, + GP_1_1_FN, FN_IP2_3_0, + GP_1_0_FN, FN_IP1_31_28, } + }, + { PINMUX_CFG_REG("GPSR2", 0xe6060108, 32, 1) { + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + GP_2_14_FN, FN_IP0_23_20, + GP_2_13_FN, FN_IP0_19_16, + GP_2_12_FN, FN_IP0_15_12, + GP_2_11_FN, FN_IP0_11_8, + GP_2_10_FN, FN_IP0_7_4, + GP_2_9_FN, FN_IP0_3_0, + GP_2_8_FN, FN_IP1_27_24, + GP_2_7_FN, FN_IP1_23_20, + GP_2_6_FN, FN_IP1_19_16, + GP_2_5_FN, FN_IP1_15_12, + GP_2_4_FN, FN_IP1_11_8, + GP_2_3_FN, FN_IP1_7_4, + GP_2_2_FN, FN_IP1_3_0, + GP_2_1_FN, FN_IP0_31_28, + GP_2_0_FN, FN_IP0_27_24, } + }, + { PINMUX_CFG_REG("GPSR3", 0xe606010c, 32, 1) { + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + GP_3_15_FN, FN_IP10_23_20, + GP_3_14_FN, FN_IP10_19_16, + GP_3_13_FN, FN_IP10_15_12, + GP_3_12_FN, FN_IP10_11_8, + GP_3_11_FN, FN_IP8_31_28, + GP_3_10_FN, FN_IP8_27_24, + GP_3_9_FN, FN_IP8_23_20, + GP_3_8_FN, FN_IP8_19_16, + GP_3_7_FN, FN_IP8_15_12, + GP_3_6_FN, FN_IP8_11_8, + GP_3_5_FN, FN_IP8_7_4, + GP_3_4_FN, FN_IP8_3_0, + GP_3_3_FN, FN_IP7_31_28, + GP_3_2_FN, FN_IP7_27_24, + GP_3_1_FN, FN_IP7_23_20, + GP_3_0_FN, FN_IP7_19_16, } + }, + { PINMUX_CFG_REG("GPSR4", 0xe6060110, 32, 1) { + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + GP_4_17_FN, 0, /* SD3_DS */ + GP_4_16_FN, FN_IP10_7_4, + GP_4_15_FN, FN_IP10_3_0, + GP_4_14_FN, FN_IP9_31_28, + GP_4_13_FN, FN_IP9_27_24, + GP_4_12_FN, 0, /* SD3_DAT3 */ + GP_4_11_FN, 0, /* SD3_DAT2 */ + GP_4_10_FN, 0, /* SD3_DAT1 */ + GP_4_9_FN, 0, /* SD3_DAT0 */ + GP_4_8_FN, 0, /* SD3_CMD */ + GP_4_7_FN, 0, /* SD3_CLK */ + GP_4_6_FN, FN_IP9_23_20, + GP_4_5_FN, FN_IP9_19_16, + GP_4_4_FN, FN_IP9_15_12, + GP_4_3_FN, FN_IP9_11_8, + GP_4_2_FN, FN_IP9_7_4, + GP_4_1_FN, 0, /* SD2_CMD */ + GP_4_0_FN, FN_IP9_3_0, } + }, + { PINMUX_CFG_REG("GPSR5", 0xe6060114, 32, 1) { + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + GP_5_25_FN, FN_IP13_19_16, + GP_5_24_FN, FN_IP13_15_12, + GP_5_23_FN, FN_IP13_11_8, + GP_5_22_FN, 0, /* MSIOF0_RXD */ + GP_5_21_FN, FN_IP13_7_4, + GP_5_20_FN, 0, /* MSIOF0_TXD */ + GP_5_19_FN, FN_IP13_3_0, + GP_5_18_FN, FN_IP12_31_28, + GP_5_17_FN, 0, /*MSIOF0_SCK */ + GP_5_16_FN, FN_IP12_27_24, + GP_5_15_FN, FN_IP12_23_20, + GP_5_14_FN, FN_IP12_19_16, + GP_5_13_FN, FN_IP12_15_12, + GP_5_12_FN, FN_IP12_11_8, + GP_5_11_FN, FN_IP12_7_4, + GP_5_10_FN, FN_IP12_3_0, + GP_5_9_FN, FN_IP11_31_28, + GP_5_8_FN, FN_IP11_27_24, + GP_5_7_FN, FN_IP11_23_20, + GP_5_6_FN, FN_IP11_19_16, + GP_5_5_FN, FN_IP11_15_12, + GP_5_4_FN, FN_IP11_11_8, + GP_5_3_FN, FN_IP11_7_4, + GP_5_2_FN, FN_IP11_3_0, + GP_5_1_FN, FN_IP10_31_28, + GP_5_0_FN, FN_IP10_27_24, } + }, + { PINMUX_CFG_REG("GPSR6", 0xe6060118, 32, 1) { + GP_6_31_FN, FN_IP17_7_4, + GP_6_30_FN, FN_IP17_3_0, + GP_6_29_FN, FN_IP16_31_28, + GP_6_28_FN, FN_IP16_27_24, + GP_6_27_FN, FN_IP16_23_20, + GP_6_26_FN, FN_IP16_19_16, + GP_6_25_FN, FN_IP16_15_12, + GP_6_24_FN, FN_IP16_11_8, + GP_6_23_FN, FN_IP16_7_4, + GP_6_22_FN, FN_IP16_3_0, + GP_6_21_FN, FN_IP15_31_28, + GP_6_20_FN, FN_IP15_27_24, + GP_6_19_FN, FN_IP15_23_20, + GP_6_18_FN, FN_IP15_19_16, + GP_6_17_FN, FN_IP15_15_12, + GP_6_16_FN, FN_IP15_11_8, + GP_6_15_FN, FN_IP15_7_4, + GP_6_14_FN, FN_IP15_3_0, + GP_6_13_FN, 0, /* SSI_SDATA5 */ + GP_6_12_FN, 0, /* SSI_WS5 */ + GP_6_11_FN, 0, /* SSI_SCK5 */ + GP_6_10_FN, FN_IP14_31_28, + GP_6_9_FN, FN_IP14_27_24, + GP_6_8_FN, FN_IP14_23_20, + GP_6_7_FN, FN_IP14_19_16, + GP_6_6_FN, FN_IP14_15_12, + GP_6_5_FN, FN_IP14_11_8, + GP_6_4_FN, FN_IP14_7_4, + GP_6_3_FN, FN_IP14_3_0, + GP_6_2_FN, FN_IP13_31_28, + GP_6_1_FN, FN_IP13_27_24, + GP_6_0_FN, FN_IP13_23_20, } + }, + { PINMUX_CFG_REG("GPSR7", 0xe606011c, 32, 1) { + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + GP_7_3_FN, 0, /* HDMI1_CEC */ + GP_7_2_FN, 0, /* HDMI0_CEC */ + GP_7_1_FN, 0, /* AVS2 */ + GP_7_0_FN, 0, /* AVS1 */ } + }, + { PINMUX_CFG_REG("IPSR0", 0xe6060200, 32, 4) { + /* IP0_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP0_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP0_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP0_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP0_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP0_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP0_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP0_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG("IPSR1", 0xe6060204, 32, 4) { + /* IP1_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP1_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP1_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP1_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP1_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP1_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP1_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP1_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG("IPSR2", 0xe6060208, 32, 4) { + /* IP2_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP2_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP2_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP2_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP2_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP2_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP2_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP2_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG("IPSR3", 0xe606020c, 32, 4) { + /* IP3_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP3_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP3_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP3_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP3_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP3_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP3_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP3_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG("IPSR4", 0xe6060210, 32, 4) { + /* IP4_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP4_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP4_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP4_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP4_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP4_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP4_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP4_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG("IPSR5", 0xe6060214, 32, 4) { + /* IP5_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP5_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP5_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP5_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP5_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP5_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP5_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP5_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG("IPSR6", 0xe6060218, 32, 4) { + /* IP6_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP6_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP6_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP6_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP6_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP6_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP6_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP6_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG("IPSR7", 0xe606021c, 32, 4) { + /* IP7_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP7_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP7_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP7_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP7_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP7_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP7_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP7_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG("IPSR8", 0xe6060220, 32, 4) { + /* IP8_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP8_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP8_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP8_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP8_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP8_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP8_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP8_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG("IPSR9", 0xe6060224, 32, 4) { + /* IP9_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP9_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP9_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP9_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP9_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP9_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP9_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP9_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG("IPSR10", 0xe6060228, 32, 4) { + /* IP10_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP10_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP10_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP10_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP10_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP10_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP10_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP10_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG("IPSR11", 0xe606022c, 32, 4) { + /* IP11_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP11_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP11_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP11_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP11_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP11_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP11_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP11_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG("IPSR12", 0xe6060230, 32, 4) { + /* IP12_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP12_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP12_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP12_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP12_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP12_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP12_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP12_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG("IPSR13", 0xe6060234, 32, 4) { + /* IP13_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP13_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP13_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP13_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP13_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP13_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP13_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP13_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG("IPSR14", 0xe6060238, 32, 4) { + /* IP14_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP14_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP14_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP14_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP14_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP14_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP14_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP14_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG("IPSR15", 0xe606023c, 32, 4) { + /* IP15_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP15_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP15_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP15_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP15_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP15_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP15_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP15_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG("IPSR16", 0xe6060240, 32, 4) { + /* IP16_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP16_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP16_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP16_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP16_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP16_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP16_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP16_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG("IPSR17", 0xe6060244, 32, 4) { + /* IP17_31_28 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP17_27_24 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP17_23_20 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP17_19_16 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP17_15_12 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP17_11_8 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP17_7_4 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP17_3_0 [4] */ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("MOD_SEL0", 0xe6060500, 32, + 1, 2, 2, 3, 1, 1, 2, 1, 1, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1) { + /* RESERVED [1] */ + 0, 0, + /* SEL_MSIOF3 [2] */ + FN_SEL_MSIOF3_0, FN_SEL_MSIOF3_1, + FN_SEL_MSIOF3_2, FN_SEL_MSIOF3_3, + /* SEL_MSIOF2 [2] */ + FN_SEL_MSIOF2_0, FN_SEL_MSIOF2_1, + FN_SEL_MSIOF2_2, FN_SEL_MSIOF2_3, + /* SEL_MSIOF1 [3] */ + FN_SEL_MSIOF1_0, FN_SEL_MSIOF1_1, + FN_SEL_MSIOF1_2, FN_SEL_MSIOF1_3, + FN_SEL_MSIOF1_4, FN_SEL_MSIOF1_5, + FN_SEL_MSIOF1_6, FN_SEL_MSIOF1_7, + /* SEL_LBSC [1] */ + FN_SEL_LBSC_0, FN_SEL_LBSC_1, + /* SEL_IEBUS [1] */ + FN_SEL_IEBUS_0, FN_SEL_IEBUS_1, + /* SEL_I2C6 [2] */ + FN_SEL_I2C6_0, FN_SEL_I2C6_1, + FN_SEL_I2C6_2, FN_SEL_I2C6_3, + /* SEL_I2C2 [1] */ + FN_SEL_I2C2_0, FN_SEL_I2C2_1, + /* SEL_I2C1 [1] */ + FN_SEL_I2C1_0, FN_SEL_I2C1_1, + /* SEL_HSCIF4 [1] */ + FN_SEL_HSCIF4_0, FN_SEL_HSCIF4_1, + /* SEL_HSCIF3 [2] */ + FN_SEL_HSCIF3_0, FN_SEL_HSCIF3_1, + FN_SEL_HSCIF3_2, FN_SEL_HSCIF3_3, + /* SEL_HSCIF2 [1] */ + FN_SEL_HSCIF2_0, FN_SEL_HSCIF2_1, + /* SEL_HSCIF1 [1] */ + FN_SEL_HSCIF1_0, FN_SEL_HSCIF1_1, + /* SEL_FSO [1] */ + FN_SEL_FSO_0, FN_SEL_FSO_1, + /* SEL_FM [1] */ + FN_SEL_FM_0, FN_SEL_FM_1, + /* SEL_ETHERAVB [1] */ + FN_SEL_ETHERAVB_0, FN_SEL_ETHERAVB_1, + /* SEL_DRIF3 [1] */ + FN_SEL_DRIF3_0, FN_SEL_DRIF3_1, + /* SEL_DRIF2 [1] */ + FN_SEL_DRIF2_0, FN_SEL_DRIF2_1, + /* SEL_DRIF1 [2] */ + FN_SEL_DRIF1_0, FN_SEL_DRIF1_1, + FN_SEL_DRIF1_2, FN_SEL_DRIF1_3, + /* SEL_DRIF0 [2] */ + FN_SEL_DRIF0_0, FN_SEL_DRIF0_1, + FN_SEL_DRIF0_2, FN_SEL_DRIF0_3, + /* SEL_CANFD [1] */ + FN_SEL_CANFD0_0, FN_SEL_CANFD0_1, + /* SEL_ADG [2] */ + FN_SEL_ADG_0, FN_SEL_ADG_1, + FN_SEL_ADG_2, FN_SEL_ADG_3, + /* RESERVED [1] */ + 0, 0, } + }, + { PINMUX_CFG_REG_VAR("MOD_SEL1", 0xe6060504, 32, + 2, 3, 1, 2, 3, 1, 1, 2, 1, + 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1) { + /* SEL_TSIF1 [2] */ + FN_SEL_TSIF1_0, FN_SEL_TSIF1_1, + FN_SEL_TSIF1_2, FN_SEL_TSIF1_3, + /* SEL_TSIF0 [3] */ + FN_SEL_TSIF0_0, FN_SEL_TSIF0_1, + FN_SEL_TSIF0_2, FN_SEL_TSIF0_3, + FN_SEL_TSIF0_4, FN_SEL_TSIF0_5, + FN_SEL_TSIF0_6, FN_SEL_TSIF0_7, + /* SEL_TIMER_TM [1] */ + FN_SEL_TIMER_TMU_0, FN_SEL_TIMER_TMU_1, + /* SEL_SSP1_1 [2] */ + FN_SEL_SSP1_1_0, FN_SEL_SSP1_1_1, + FN_SEL_SSP1_1_2, FN_SEL_SSP1_1_3, + /* SEL_SSP1_0 [3] */ + FN_SEL_SSP1_0_0, FN_SEL_SSP1_0_1, + FN_SEL_SSP1_0_2, FN_SEL_SSP1_0_3, + FN_SEL_SSP1_0_4, FN_SEL_SSP1_0_5, + FN_SEL_SSP1_0_6, FN_SEL_SSP1_0_7, + /* SEL_SSI [1] */ + FN_SEL_SSI_0, FN_SEL_SSI_1, + /* SEL_SPEED_PULSE [1] */ + FN_SEL_SPEED_PULSE_0, FN_SEL_SPEED_PULSE_1, + /* SEL_SIMCARD [2] */ + FN_SEL_SIMCARD_0, FN_SEL_SIMCARD_1, + FN_SEL_SIMCARD_2, FN_SEL_SIMCARD_3, + /* SEL_SDHI2 [1] */ + FN_SEL_SDHI2_0, FN_SEL_SDHI2_1, + /* SEL_SCIF4 [2] */ + FN_SEL_SCIF4_0, FN_SEL_SCIF4_1, + FN_SEL_SCIF4_2, FN_SEL_SCIF4_3, + /* SEL_SCIF3 [1] */ + FN_SEL_SCIF3_0, FN_SEL_SCIF3_1, + /* SEL_SCIF2 [1] */ + FN_SEL_SCIF2_0, FN_SEL_SCIF2_1, + /* SEL_SCIF1 [1] */ + FN_SEL_SCIF1_0, FN_SEL_SCIF1_1, + /* SEL_SCIF [1] */ + FN_SEL_SCIF_0, FN_SEL_SCIF_1, + /* SEL_REMOCON [1] */ + FN_SEL_REMOCON_0, FN_SEL_REMOCON_1, + /* RESERVED [2] */ + 0, 0, 0, 0, + /* SEL_RCAN0 [1] */ + FN_SEL_RCAN0_0, FN_SEL_RCAN0_1, + /* SEL_PWM6 [1] */ + FN_SEL_PWM6_0, FN_SEL_PWM6_1, + /* SEL_PWM5 [1] */ + FN_SEL_PWM5_0, FN_SEL_PWM5_1, + /* SEL_PWM4 [1] */ + FN_SEL_PWM4_0, FN_SEL_PWM4_1, + /* SEL_PWM3 [1] */ + FN_SEL_PWM3_0, FN_SEL_PWM3_1, + /* SEL_PWM2 [1] */ + FN_SEL_PWM2_0, FN_SEL_PWM2_1, + /* SEL_PWM1 [1] */ + FN_SEL_PWM1_0, FN_SEL_PWM1_1, } + }, + { PINMUX_CFG_REG_VAR("MOD_SEL2", 0xe6060508, 32, + 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 1) { + /* SEL_I2C_5 [1] */ + FN_SEL_I2C_5_0, FN_SEL_I2C_5_1, + /* SEL_I2C_3 [1] */ + FN_SEL_I2C_3_0, FN_SEL_I2C_3_1, + /* SEL_I2C_0 [1] */ + FN_SEL_I2C_0_0, FN_SEL_I2C_0_1, + /* RESERVED [1 x 26] */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* SEL_VSP [2] */ + FN_SEL_VSP_0, FN_SEL_VSP_1, + FN_SEL_VSP_2, FN_SEL_VSP_3, + /* SEL_VIN4 [1] */ + FN_SEL_VIN4_0, FN_SEL_VIN4_1, } + }, + { }, +}; + +const struct sh_pfc_soc_info r8a7795_pinmux_info = { + .name = "r8a77950_pfc", + .unlock_reg = 0xe6060000, /* PMMR */ + + .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, + + .pins = pinmux_pins, + .nr_pins = ARRAY_SIZE(pinmux_pins), + .groups = pinmux_groups, + .nr_groups = ARRAY_SIZE(pinmux_groups), + .functions = pinmux_functions, + .nr_functions = ARRAY_SIZE(pinmux_functions), + + .cfg_regs = pinmux_config_regs, + + .gpio_data = pinmux_data, + .gpio_data_size = ARRAY_SIZE(pinmux_data), +};