blob: 572b041b83e62fa3cf8f7e251387c96c8f50f3e4 [file] [log] [blame]
Tom Rini24672242018-06-01 21:10:18 -04001// SPDX-License-Identifier: GPL-2.0
Marek Vasut68a77042018-04-26 13:09:20 +02002/*
3 * R8A77990 processor support - PFC hardware block.
4 *
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02005 * Copyright (C) 2018-2019 Renesas Electronics Corp.
Marek Vasut68a77042018-04-26 13:09:20 +02006 *
7 * This file is based on the drivers/pinctrl/sh-pfc/pfc-r8a7796.c
8 *
Marek Vasut88e81ec2019-03-04 22:39:51 +01009 * R8A7796 processor support - PFC hardware block.
Marek Vasut68a77042018-04-26 13:09:20 +020010 *
Marek Vasut88e81ec2019-03-04 22:39:51 +010011 * Copyright (C) 2016-2017 Renesas Electronics Corp.
Marek Vasut68a77042018-04-26 13:09:20 +020012 */
13
14#include <common.h>
15#include <dm.h>
16#include <errno.h>
17#include <dm/pinctrl.h>
Simon Glass4dcacfc2020-05-10 11:40:13 -060018#include <linux/bitops.h>
Marek Vasut68a77042018-04-26 13:09:20 +020019#include <linux/kernel.h>
20
21#include "sh_pfc.h"
22
Marek Vasuteb13e0f2018-06-10 16:05:48 +020023#define CFG_FLAGS (SH_PFC_PIN_CFG_PULL_UP | \
24 SH_PFC_PIN_CFG_PULL_DOWN)
25
Marek Vasut88e81ec2019-03-04 22:39:51 +010026#define CPU_ALL_PORT(fn, sfx) \
27 PORT_GP_CFG_18(0, fn, sfx, CFG_FLAGS), \
28 PORT_GP_CFG_23(1, fn, sfx, CFG_FLAGS), \
29 PORT_GP_CFG_26(2, fn, sfx, CFG_FLAGS), \
30 PORT_GP_CFG_12(3, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE), \
31 PORT_GP_CFG_1(3, 12, fn, sfx, CFG_FLAGS), \
32 PORT_GP_CFG_1(3, 13, fn, sfx, CFG_FLAGS), \
33 PORT_GP_CFG_1(3, 14, fn, sfx, CFG_FLAGS), \
34 PORT_GP_CFG_1(3, 15, fn, sfx, CFG_FLAGS), \
35 PORT_GP_CFG_11(4, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE), \
36 PORT_GP_CFG_20(5, fn, sfx, CFG_FLAGS), \
37 PORT_GP_CFG_9(6, fn, sfx, CFG_FLAGS), \
38 PORT_GP_CFG_1(6, 9, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \
39 PORT_GP_CFG_1(6, 10, fn, sfx, CFG_FLAGS), \
40 PORT_GP_CFG_1(6, 11, fn, sfx, CFG_FLAGS), \
41 PORT_GP_CFG_1(6, 12, fn, sfx, CFG_FLAGS), \
42 PORT_GP_CFG_1(6, 13, fn, sfx, CFG_FLAGS), \
43 PORT_GP_CFG_1(6, 14, fn, sfx, CFG_FLAGS), \
44 PORT_GP_CFG_1(6, 15, fn, sfx, CFG_FLAGS), \
45 PORT_GP_CFG_1(6, 16, fn, sfx, CFG_FLAGS), \
46 PORT_GP_CFG_1(6, 17, fn, sfx, CFG_FLAGS)
Marek Vasut68a77042018-04-26 13:09:20 +020047/*
48 * F_() : just information
49 * FM() : macro for FN_xxx / xxx_MARK
50 */
51
52/* GPSR0 */
53#define GPSR0_17 F_(SDA4, IP7_27_24)
54#define GPSR0_16 F_(SCL4, IP7_23_20)
55#define GPSR0_15 F_(D15, IP7_19_16)
56#define GPSR0_14 F_(D14, IP7_15_12)
57#define GPSR0_13 F_(D13, IP7_11_8)
58#define GPSR0_12 F_(D12, IP7_7_4)
59#define GPSR0_11 F_(D11, IP7_3_0)
60#define GPSR0_10 F_(D10, IP6_31_28)
61#define GPSR0_9 F_(D9, IP6_27_24)
62#define GPSR0_8 F_(D8, IP6_23_20)
63#define GPSR0_7 F_(D7, IP6_19_16)
64#define GPSR0_6 F_(D6, IP6_15_12)
65#define GPSR0_5 F_(D5, IP6_11_8)
66#define GPSR0_4 F_(D4, IP6_7_4)
67#define GPSR0_3 F_(D3, IP6_3_0)
68#define GPSR0_2 F_(D2, IP5_31_28)
69#define GPSR0_1 F_(D1, IP5_27_24)
70#define GPSR0_0 F_(D0, IP5_23_20)
71
72/* GPSR1 */
73#define GPSR1_22 F_(WE0_N, IP5_19_16)
74#define GPSR1_21 F_(CS0_N, IP5_15_12)
75#define GPSR1_20 FM(CLKOUT)
76#define GPSR1_19 F_(A19, IP5_11_8)
77#define GPSR1_18 F_(A18, IP5_7_4)
78#define GPSR1_17 F_(A17, IP5_3_0)
79#define GPSR1_16 F_(A16, IP4_31_28)
80#define GPSR1_15 F_(A15, IP4_27_24)
81#define GPSR1_14 F_(A14, IP4_23_20)
82#define GPSR1_13 F_(A13, IP4_19_16)
83#define GPSR1_12 F_(A12, IP4_15_12)
84#define GPSR1_11 F_(A11, IP4_11_8)
85#define GPSR1_10 F_(A10, IP4_7_4)
86#define GPSR1_9 F_(A9, IP4_3_0)
87#define GPSR1_8 F_(A8, IP3_31_28)
88#define GPSR1_7 F_(A7, IP3_27_24)
89#define GPSR1_6 F_(A6, IP3_23_20)
90#define GPSR1_5 F_(A5, IP3_19_16)
91#define GPSR1_4 F_(A4, IP3_15_12)
92#define GPSR1_3 F_(A3, IP3_11_8)
93#define GPSR1_2 F_(A2, IP3_7_4)
94#define GPSR1_1 F_(A1, IP3_3_0)
95#define GPSR1_0 F_(A0, IP2_31_28)
96
97/* GPSR2 */
98#define GPSR2_25 F_(EX_WAIT0, IP2_27_24)
99#define GPSR2_24 F_(RD_WR_N, IP2_23_20)
100#define GPSR2_23 F_(RD_N, IP2_19_16)
101#define GPSR2_22 F_(BS_N, IP2_15_12)
102#define GPSR2_21 FM(AVB_PHY_INT)
103#define GPSR2_20 F_(AVB_TXCREFCLK, IP2_3_0)
104#define GPSR2_19 FM(AVB_RD3)
105#define GPSR2_18 F_(AVB_RD2, IP1_31_28)
106#define GPSR2_17 F_(AVB_RD1, IP1_27_24)
107#define GPSR2_16 F_(AVB_RD0, IP1_23_20)
108#define GPSR2_15 FM(AVB_RXC)
109#define GPSR2_14 FM(AVB_RX_CTL)
110#define GPSR2_13 F_(RPC_RESET_N, IP1_19_16)
111#define GPSR2_12 F_(RPC_INT_N, IP1_15_12)
112#define GPSR2_11 F_(QSPI1_SSL, IP1_11_8)
113#define GPSR2_10 F_(QSPI1_IO3, IP1_7_4)
114#define GPSR2_9 F_(QSPI1_IO2, IP1_3_0)
115#define GPSR2_8 F_(QSPI1_MISO_IO1, IP0_31_28)
116#define GPSR2_7 F_(QSPI1_MOSI_IO0, IP0_27_24)
117#define GPSR2_6 F_(QSPI1_SPCLK, IP0_23_20)
118#define GPSR2_5 FM(QSPI0_SSL)
119#define GPSR2_4 F_(QSPI0_IO3, IP0_19_16)
120#define GPSR2_3 F_(QSPI0_IO2, IP0_15_12)
121#define GPSR2_2 F_(QSPI0_MISO_IO1, IP0_11_8)
122#define GPSR2_1 F_(QSPI0_MOSI_IO0, IP0_7_4)
123#define GPSR2_0 F_(QSPI0_SPCLK, IP0_3_0)
124
125/* GPSR3 */
126#define GPSR3_15 F_(SD1_WP, IP11_7_4)
127#define GPSR3_14 F_(SD1_CD, IP11_3_0)
128#define GPSR3_13 F_(SD0_WP, IP10_31_28)
129#define GPSR3_12 F_(SD0_CD, IP10_27_24)
130#define GPSR3_11 F_(SD1_DAT3, IP9_11_8)
131#define GPSR3_10 F_(SD1_DAT2, IP9_7_4)
132#define GPSR3_9 F_(SD1_DAT1, IP9_3_0)
133#define GPSR3_8 F_(SD1_DAT0, IP8_31_28)
134#define GPSR3_7 F_(SD1_CMD, IP8_27_24)
135#define GPSR3_6 F_(SD1_CLK, IP8_23_20)
136#define GPSR3_5 F_(SD0_DAT3, IP8_19_16)
137#define GPSR3_4 F_(SD0_DAT2, IP8_15_12)
138#define GPSR3_3 F_(SD0_DAT1, IP8_11_8)
139#define GPSR3_2 F_(SD0_DAT0, IP8_7_4)
140#define GPSR3_1 F_(SD0_CMD, IP8_3_0)
141#define GPSR3_0 F_(SD0_CLK, IP7_31_28)
142
143/* GPSR4 */
144#define GPSR4_10 F_(SD3_DS, IP10_23_20)
145#define GPSR4_9 F_(SD3_DAT7, IP10_19_16)
146#define GPSR4_8 F_(SD3_DAT6, IP10_15_12)
147#define GPSR4_7 F_(SD3_DAT5, IP10_11_8)
148#define GPSR4_6 F_(SD3_DAT4, IP10_7_4)
149#define GPSR4_5 F_(SD3_DAT3, IP10_3_0)
150#define GPSR4_4 F_(SD3_DAT2, IP9_31_28)
151#define GPSR4_3 F_(SD3_DAT1, IP9_27_24)
152#define GPSR4_2 F_(SD3_DAT0, IP9_23_20)
153#define GPSR4_1 F_(SD3_CMD, IP9_19_16)
154#define GPSR4_0 F_(SD3_CLK, IP9_15_12)
155
156/* GPSR5 */
157#define GPSR5_19 F_(MLB_DAT, IP13_23_20)
158#define GPSR5_18 F_(MLB_SIG, IP13_19_16)
159#define GPSR5_17 F_(MLB_CLK, IP13_15_12)
160#define GPSR5_16 F_(SSI_SDATA9, IP13_11_8)
161#define GPSR5_15 F_(MSIOF0_SS2, IP13_7_4)
162#define GPSR5_14 F_(MSIOF0_SS1, IP13_3_0)
163#define GPSR5_13 F_(MSIOF0_SYNC, IP12_31_28)
164#define GPSR5_12 F_(MSIOF0_TXD, IP12_27_24)
165#define GPSR5_11 F_(MSIOF0_RXD, IP12_23_20)
166#define GPSR5_10 F_(MSIOF0_SCK, IP12_19_16)
167#define GPSR5_9 F_(RX2_A, IP12_15_12)
168#define GPSR5_8 F_(TX2_A, IP12_11_8)
169#define GPSR5_7 F_(SCK2_A, IP12_7_4)
170#define GPSR5_6 F_(TX1, IP12_3_0)
171#define GPSR5_5 F_(RX1, IP11_31_28)
Eugeniu Roscaf0066b02019-07-09 18:27:11 +0200172#define GPSR5_4 F_(RTS0_N_A, IP11_23_20)
Marek Vasut68a77042018-04-26 13:09:20 +0200173#define GPSR5_3 F_(CTS0_N_A, IP11_19_16)
174#define GPSR5_2 F_(TX0_A, IP11_15_12)
175#define GPSR5_1 F_(RX0_A, IP11_11_8)
176#define GPSR5_0 F_(SCK0_A, IP11_27_24)
177
178/* GPSR6 */
179#define GPSR6_17 F_(USB30_PWEN, IP15_27_24)
180#define GPSR6_16 F_(SSI_SDATA6, IP15_19_16)
181#define GPSR6_15 F_(SSI_WS6, IP15_15_12)
182#define GPSR6_14 F_(SSI_SCK6, IP15_11_8)
183#define GPSR6_13 F_(SSI_SDATA5, IP15_7_4)
184#define GPSR6_12 F_(SSI_WS5, IP15_3_0)
185#define GPSR6_11 F_(SSI_SCK5, IP14_31_28)
186#define GPSR6_10 F_(SSI_SDATA4, IP14_27_24)
187#define GPSR6_9 F_(USB30_OVC, IP15_31_28)
188#define GPSR6_8 F_(AUDIO_CLKA, IP15_23_20)
189#define GPSR6_7 F_(SSI_SDATA3, IP14_23_20)
190#define GPSR6_6 F_(SSI_WS349, IP14_19_16)
191#define GPSR6_5 F_(SSI_SCK349, IP14_15_12)
192#define GPSR6_4 F_(SSI_SDATA2, IP14_11_8)
193#define GPSR6_3 F_(SSI_SDATA1, IP14_7_4)
194#define GPSR6_2 F_(SSI_SDATA0, IP14_3_0)
195#define GPSR6_1 F_(SSI_WS01239, IP13_31_28)
196#define GPSR6_0 F_(SSI_SCK01239, IP13_27_24)
197
198/* IPSRx */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 */ /* 7 */ /* 8 */ /* 9 - F */
199#define IP0_3_0 FM(QSPI0_SPCLK) FM(HSCK4_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
200#define IP0_7_4 FM(QSPI0_MOSI_IO0) FM(HCTS4_N_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
201#define IP0_11_8 FM(QSPI0_MISO_IO1) FM(HRTS4_N_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
202#define IP0_15_12 FM(QSPI0_IO2) FM(HTX4_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
203#define IP0_19_16 FM(QSPI0_IO3) FM(HRX4_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
204#define IP0_23_20 FM(QSPI1_SPCLK) FM(RIF2_CLK_A) FM(HSCK4_B) FM(VI4_DATA0_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
205#define IP0_27_24 FM(QSPI1_MOSI_IO0) FM(RIF2_SYNC_A) FM(HTX4_B) FM(VI4_DATA1_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
206#define IP0_31_28 FM(QSPI1_MISO_IO1) FM(RIF2_D0_A) FM(HRX4_B) FM(VI4_DATA2_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
207#define IP1_3_0 FM(QSPI1_IO2) FM(RIF2_D1_A) FM(HTX3_C) FM(VI4_DATA3_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
208#define IP1_7_4 FM(QSPI1_IO3) FM(RIF3_CLK_A) FM(HRX3_C) FM(VI4_DATA4_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
209#define IP1_11_8 FM(QSPI1_SSL) FM(RIF3_SYNC_A) FM(HSCK3_C) FM(VI4_DATA5_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
210#define IP1_15_12 FM(RPC_INT_N) FM(RIF3_D0_A) FM(HCTS3_N_C) FM(VI4_DATA6_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
211#define IP1_19_16 FM(RPC_RESET_N) FM(RIF3_D1_A) FM(HRTS3_N_C) FM(VI4_DATA7_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
212#define IP1_23_20 FM(AVB_RD0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
213#define IP1_27_24 FM(AVB_RD1) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
214#define IP1_31_28 FM(AVB_RD2) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
215#define IP2_3_0 FM(AVB_TXCREFCLK) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
216#define IP2_7_4 FM(AVB_MDIO) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
217#define IP2_11_8 FM(AVB_MDC) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
218#define IP2_15_12 FM(BS_N) FM(PWM0_A) FM(AVB_MAGIC) FM(VI4_CLK) F_(0, 0) FM(TX3_C) F_(0, 0) FM(VI5_CLK_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
219#define IP2_19_16 FM(RD_N) FM(PWM1_A) FM(AVB_LINK) FM(VI4_FIELD) F_(0, 0) FM(RX3_C) FM(FSCLKST2_N_A) FM(VI5_DATA0_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
Lad Prabhakare4db7392020-10-14 16:45:59 +0100220#define IP2_23_20 FM(RD_WR_N) FM(SCL7_A) FM(AVB_AVTP_MATCH) FM(VI4_VSYNC_N) FM(TX5_B) FM(SCK3_C) FM(PWM5_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
221#define IP2_27_24 FM(EX_WAIT0) FM(SDA7_A) FM(AVB_AVTP_CAPTURE) FM(VI4_HSYNC_N) FM(RX5_B) FM(PWM6_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
Marek Vasut68a77042018-04-26 13:09:20 +0200222#define IP2_31_28 FM(A0) FM(IRQ0) FM(PWM2_A) FM(MSIOF3_SS1_B) FM(VI5_CLK_A) FM(DU_CDE) FM(HRX3_D) FM(IERX) FM(QSTB_QHE) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
223#define IP3_3_0 FM(A1) FM(IRQ1) FM(PWM3_A) FM(DU_DOTCLKIN1) FM(VI5_DATA0_A) FM(DU_DISP_CDE) FM(SDA6_B) FM(IETX) FM(QCPV_QDE) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
224#define IP3_7_4 FM(A2) FM(IRQ2) FM(AVB_AVTP_PPS) FM(VI4_CLKENB) FM(VI5_DATA1_A) FM(DU_DISP) FM(SCL6_B) F_(0, 0) FM(QSTVB_QVE) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
225#define IP3_11_8 FM(A3) FM(CTS4_N_A) FM(PWM4_A) FM(VI4_DATA12) F_(0, 0) FM(DU_DOTCLKOUT0) FM(HTX3_D) FM(IECLK) FM(LCDOUT12) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
Eugeniu Roscaf0066b02019-07-09 18:27:11 +0200226#define IP3_15_12 FM(A4) FM(RTS4_N_A) FM(MSIOF3_SYNC_B) FM(VI4_DATA8) FM(PWM2_B) FM(DU_DG4) FM(RIF2_CLK_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
Marek Vasut68a77042018-04-26 13:09:20 +0200227#define IP3_19_16 FM(A5) FM(SCK4_A) FM(MSIOF3_SCK_B) FM(VI4_DATA9) FM(PWM3_B) F_(0, 0) FM(RIF2_SYNC_B) F_(0, 0) FM(QPOLA) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
228#define IP3_23_20 FM(A6) FM(RX4_A) FM(MSIOF3_RXD_B) FM(VI4_DATA10) F_(0, 0) F_(0, 0) FM(RIF2_D0_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
229#define IP3_27_24 FM(A7) FM(TX4_A) FM(MSIOF3_TXD_B) FM(VI4_DATA11) F_(0, 0) F_(0, 0) FM(RIF2_D1_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
230#define IP3_31_28 FM(A8) FM(SDA6_A) FM(RX3_B) FM(HRX4_C) FM(VI5_HSYNC_N_A) FM(DU_HSYNC) FM(VI4_DATA0_B) F_(0, 0) FM(QSTH_QHS) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
231
232/* IPSRx */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 */ /* 7 */ /* 8 */ /* 9 - F */
233#define IP4_3_0 FM(A9) FM(TX5_A) FM(IRQ3) FM(VI4_DATA16) FM(VI5_VSYNC_N_A) FM(DU_DG7) F_(0, 0) F_(0, 0) FM(LCDOUT15) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
234#define IP4_7_4 FM(A10) FM(IRQ4) FM(MSIOF2_SYNC_B) FM(VI4_DATA13) FM(VI5_FIELD_A) FM(DU_DG5) FM(FSCLKST2_N_B) F_(0, 0) FM(LCDOUT13) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
235#define IP4_11_8 FM(A11) FM(SCL6_A) FM(TX3_B) FM(HTX4_C) F_(0, 0) FM(DU_VSYNC) FM(VI4_DATA1_B) F_(0, 0) FM(QSTVA_QVS) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
236#define IP4_15_12 FM(A12) FM(RX5_A) FM(MSIOF2_SS2_B) FM(VI4_DATA17) FM(VI5_DATA3_A) FM(DU_DG6) F_(0, 0) F_(0, 0) FM(LCDOUT14) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
237#define IP4_19_16 FM(A13) FM(SCK5_A) FM(MSIOF2_SCK_B) FM(VI4_DATA14) FM(HRX4_D) FM(DU_DB2) F_(0, 0) F_(0, 0) FM(LCDOUT2) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
238#define IP4_23_20 FM(A14) FM(MSIOF1_SS1) FM(MSIOF2_RXD_B) FM(VI4_DATA15) FM(HTX4_D) FM(DU_DB3) F_(0, 0) F_(0, 0) FM(LCDOUT3) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
239#define IP4_27_24 FM(A15) FM(MSIOF1_SS2) FM(MSIOF2_TXD_B) FM(VI4_DATA18) FM(VI5_DATA4_A) FM(DU_DB4) F_(0, 0) F_(0, 0) FM(LCDOUT4) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
240#define IP4_31_28 FM(A16) FM(MSIOF1_SYNC) FM(MSIOF2_SS1_B) FM(VI4_DATA19) FM(VI5_DATA5_A) FM(DU_DB5) F_(0, 0) F_(0, 0) FM(LCDOUT5) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
241#define IP5_3_0 FM(A17) FM(MSIOF1_RXD) F_(0, 0) FM(VI4_DATA20) FM(VI5_DATA6_A) FM(DU_DB6) F_(0, 0) F_(0, 0) FM(LCDOUT6) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
242#define IP5_7_4 FM(A18) FM(MSIOF1_TXD) F_(0, 0) FM(VI4_DATA21) FM(VI5_DATA7_A) FM(DU_DB0) F_(0, 0) FM(HRX4_E) FM(LCDOUT0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
243#define IP5_11_8 FM(A19) FM(MSIOF1_SCK) F_(0, 0) FM(VI4_DATA22) FM(VI5_DATA2_A) FM(DU_DB1) F_(0, 0) FM(HTX4_E) FM(LCDOUT1) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
244#define IP5_15_12 FM(CS0_N) FM(SCL5) F_(0, 0) F_(0, 0) F_(0, 0) FM(DU_DR0) FM(VI4_DATA2_B) F_(0, 0) FM(LCDOUT16) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
245#define IP5_19_16 FM(WE0_N) FM(SDA5) F_(0, 0) F_(0, 0) F_(0, 0) FM(DU_DR1) FM(VI4_DATA3_B) F_(0, 0) FM(LCDOUT17) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
246#define IP5_23_20 FM(D0) FM(MSIOF3_SCK_A) F_(0, 0) F_(0, 0) F_(0, 0) FM(DU_DR2) FM(CTS4_N_C) F_(0, 0) FM(LCDOUT18) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
Eugeniu Roscaf0066b02019-07-09 18:27:11 +0200247#define IP5_27_24 FM(D1) FM(MSIOF3_SYNC_A) FM(SCK3_A) FM(VI4_DATA23) FM(VI5_CLKENB_A) FM(DU_DB7) FM(RTS4_N_C) F_(0, 0) FM(LCDOUT7) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
Marek Vasut68a77042018-04-26 13:09:20 +0200248#define IP5_31_28 FM(D2) FM(MSIOF3_RXD_A) FM(RX5_C) F_(0, 0) FM(VI5_DATA14_A) FM(DU_DR3) FM(RX4_C) F_(0, 0) FM(LCDOUT19) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
249#define IP6_3_0 FM(D3) FM(MSIOF3_TXD_A) FM(TX5_C) F_(0, 0) FM(VI5_DATA15_A) FM(DU_DR4) FM(TX4_C) F_(0, 0) FM(LCDOUT20) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
Eugeniu Roscaf0066b02019-07-09 18:27:11 +0200250#define IP6_7_4 FM(D4) FM(CANFD1_TX) FM(HSCK3_B) FM(CAN1_TX) FM(RTS3_N_A) FM(MSIOF3_SS2_A) F_(0, 0) FM(VI5_DATA1_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
Marek Vasut68a77042018-04-26 13:09:20 +0200251#define IP6_11_8 FM(D5) FM(RX3_A) FM(HRX3_B) F_(0, 0) F_(0, 0) FM(DU_DR5) FM(VI4_DATA4_B) F_(0, 0) FM(LCDOUT21) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
252#define IP6_15_12 FM(D6) FM(TX3_A) FM(HTX3_B) F_(0, 0) F_(0, 0) FM(DU_DR6) FM(VI4_DATA5_B) F_(0, 0) FM(LCDOUT22) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
253#define IP6_19_16 FM(D7) FM(CANFD1_RX) FM(IRQ5) FM(CAN1_RX) FM(CTS3_N_A) F_(0, 0) F_(0, 0) FM(VI5_DATA2_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
254#define IP6_23_20 FM(D8) FM(MSIOF2_SCK_A) FM(SCK4_B) F_(0, 0) FM(VI5_DATA12_A) FM(DU_DR7) FM(RIF3_CLK_B) FM(HCTS3_N_E) FM(LCDOUT23) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
255#define IP6_27_24 FM(D9) FM(MSIOF2_SYNC_A) F_(0, 0) F_(0, 0) FM(VI5_DATA10_A) FM(DU_DG0) FM(RIF3_SYNC_B) FM(HRX3_E) FM(LCDOUT8) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
256#define IP6_31_28 FM(D10) FM(MSIOF2_RXD_A) F_(0, 0) F_(0, 0) FM(VI5_DATA13_A) FM(DU_DG1) FM(RIF3_D0_B) FM(HTX3_E) FM(LCDOUT9) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
257#define IP7_3_0 FM(D11) FM(MSIOF2_TXD_A) F_(0, 0) F_(0, 0) FM(VI5_DATA11_A) FM(DU_DG2) FM(RIF3_D1_B) FM(HRTS3_N_E) FM(LCDOUT10) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
258#define IP7_7_4 FM(D12) FM(CANFD0_TX) FM(TX4_B) FM(CAN0_TX) FM(VI5_DATA8_A) F_(0, 0) F_(0, 0) FM(VI5_DATA3_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
259#define IP7_11_8 FM(D13) FM(CANFD0_RX) FM(RX4_B) FM(CAN0_RX) FM(VI5_DATA9_A) FM(SCL7_B) F_(0, 0) FM(VI5_DATA4_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
260#define IP7_15_12 FM(D14) FM(CAN_CLK) FM(HRX3_A) FM(MSIOF2_SS2_A) F_(0, 0) FM(SDA7_B) F_(0, 0) FM(VI5_DATA5_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
261#define IP7_19_16 FM(D15) FM(MSIOF2_SS1_A) FM(HTX3_A) FM(MSIOF3_SS1_A) F_(0, 0) FM(DU_DG3) F_(0, 0) F_(0, 0) FM(LCDOUT11) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
262#define IP7_23_20 FM(SCL4) FM(CS1_N_A26) F_(0, 0) F_(0, 0) F_(0, 0) FM(DU_DOTCLKIN0) FM(VI4_DATA6_B) FM(VI5_DATA6_B) FM(QCLK) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
263#define IP7_27_24 FM(SDA4) FM(WE1_N) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) FM(VI4_DATA7_B) FM(VI5_DATA7_B) FM(QPOLB) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
264#define IP7_31_28 FM(SD0_CLK) FM(NFDATA8) FM(SCL1_C) FM(HSCK1_B) FM(SDA2_E) FM(FMCLK_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
265
266/* IPSRx */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 */ /* 7 */ /* 8 */ /* 9 - F */
267#define IP8_3_0 FM(SD0_CMD) FM(NFDATA9) F_(0, 0) FM(HRX1_B) F_(0, 0) FM(SPEEDIN_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
268#define IP8_7_4 FM(SD0_DAT0) FM(NFDATA10) F_(0, 0) FM(HTX1_B) F_(0, 0) FM(REMOCON_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
269#define IP8_11_8 FM(SD0_DAT1) FM(NFDATA11) FM(SDA2_C) FM(HCTS1_N_B) F_(0, 0) FM(FMIN_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
270#define IP8_15_12 FM(SD0_DAT2) FM(NFDATA12) FM(SCL2_C) FM(HRTS1_N_B) F_(0, 0) FM(BPFCLK_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
271#define IP8_19_16 FM(SD0_DAT3) FM(NFDATA13) FM(SDA1_C) FM(SCL2_E) FM(SPEEDIN_C) FM(REMOCON_C) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
272#define IP8_23_20 FM(SD1_CLK) FM(NFDATA14_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
273#define IP8_27_24 FM(SD1_CMD) FM(NFDATA15_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
274#define IP8_31_28 FM(SD1_DAT0) FM(NFWP_N_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
275#define IP9_3_0 FM(SD1_DAT1) FM(NFCE_N_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
276#define IP9_7_4 FM(SD1_DAT2) FM(NFALE_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
277#define IP9_11_8 FM(SD1_DAT3) FM(NFRB_N_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
278#define IP9_15_12 FM(SD3_CLK) FM(NFWE_N) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
279#define IP9_19_16 FM(SD3_CMD) FM(NFRE_N) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
280#define IP9_23_20 FM(SD3_DAT0) FM(NFDATA0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
281#define IP9_27_24 FM(SD3_DAT1) FM(NFDATA1) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
282#define IP9_31_28 FM(SD3_DAT2) FM(NFDATA2) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
283#define IP10_3_0 FM(SD3_DAT3) FM(NFDATA3) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
284#define IP10_7_4 FM(SD3_DAT4) FM(NFDATA4) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
285#define IP10_11_8 FM(SD3_DAT5) FM(NFDATA5) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
286#define IP10_15_12 FM(SD3_DAT6) FM(NFDATA6) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
287#define IP10_19_16 FM(SD3_DAT7) FM(NFDATA7) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
288#define IP10_23_20 FM(SD3_DS) FM(NFCLE) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
289#define IP10_27_24 FM(SD0_CD) FM(NFALE_A) FM(SD3_CD) FM(RIF0_CLK_B) FM(SCL2_B) FM(TCLK1_A) FM(SSI_SCK2_B) FM(TS_SCK0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
290#define IP10_31_28 FM(SD0_WP) FM(NFRB_N_A) FM(SD3_WP) FM(RIF0_D0_B) FM(SDA2_B) FM(TCLK2_A) FM(SSI_WS2_B) FM(TS_SDAT0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
291#define IP11_3_0 FM(SD1_CD) FM(NFCE_N_A) FM(SSI_SCK1) FM(RIF0_D1_B) F_(0, 0) F_(0, 0) F_(0, 0) FM(TS_SDEN0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
292#define IP11_7_4 FM(SD1_WP) FM(NFWP_N_A) FM(SSI_WS1) FM(RIF0_SYNC_B) F_(0, 0) F_(0, 0) F_(0, 0) FM(TS_SPSYNC0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
293#define IP11_11_8 FM(RX0_A) FM(HRX1_A) FM(SSI_SCK2_A) FM(RIF1_SYNC) F_(0, 0) F_(0, 0) F_(0, 0) FM(TS_SCK1) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
294#define IP11_15_12 FM(TX0_A) FM(HTX1_A) FM(SSI_WS2_A) FM(RIF1_D0) F_(0, 0) F_(0, 0) F_(0, 0) FM(TS_SDAT1) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
295#define IP11_19_16 FM(CTS0_N_A) FM(NFDATA14_A) FM(AUDIO_CLKOUT_A) FM(RIF1_D1) FM(SCIF_CLK_A) FM(FMCLK_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
Eugeniu Roscaf0066b02019-07-09 18:27:11 +0200296#define IP11_23_20 FM(RTS0_N_A) FM(NFDATA15_A) FM(AUDIO_CLKOUT1_A) FM(RIF1_CLK) FM(SCL2_A) FM(FMIN_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
297#define IP11_27_24 FM(SCK0_A) FM(HSCK1_A) FM(USB3HS0_ID) FM(RTS1_N) FM(SDA2_A) FM(FMCLK_C) F_(0, 0) F_(0, 0) FM(USB0_ID) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
Marek Vasut68a77042018-04-26 13:09:20 +0200298#define IP11_31_28 FM(RX1) FM(HRX2_B) FM(SSI_SCK9_B) FM(AUDIO_CLKOUT1_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
299
300/* IPSRx */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 */ /* 7 */ /* 8 */ /* 9 - F */
301#define IP12_3_0 FM(TX1) FM(HTX2_B) FM(SSI_WS9_B) FM(AUDIO_CLKOUT3_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
302#define IP12_7_4 FM(SCK2_A) FM(HSCK0_A) FM(AUDIO_CLKB_A) FM(CTS1_N) FM(RIF0_CLK_A) FM(REMOCON_A) FM(SCIF_CLK_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
303#define IP12_11_8 FM(TX2_A) FM(HRX0_A) FM(AUDIO_CLKOUT2_A) F_(0, 0) FM(SCL1_A) F_(0, 0) FM(FSO_CFE_0_N_A) FM(TS_SDEN1) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
304#define IP12_15_12 FM(RX2_A) FM(HTX0_A) FM(AUDIO_CLKOUT3_A) F_(0, 0) FM(SDA1_A) F_(0, 0) FM(FSO_CFE_1_N_A) FM(TS_SPSYNC1) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
305#define IP12_19_16 FM(MSIOF0_SCK) F_(0, 0) FM(SSI_SCK78) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
306#define IP12_23_20 FM(MSIOF0_RXD) F_(0, 0) FM(SSI_WS78) F_(0, 0) F_(0, 0) FM(TX2_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
307#define IP12_27_24 FM(MSIOF0_TXD) F_(0, 0) FM(SSI_SDATA7) F_(0, 0) F_(0, 0) FM(RX2_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
308#define IP12_31_28 FM(MSIOF0_SYNC) FM(AUDIO_CLKOUT_B) FM(SSI_SDATA8) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
309#define IP13_3_0 FM(MSIOF0_SS1) FM(HRX2_A) FM(SSI_SCK4) FM(HCTS0_N_A) FM(BPFCLK_C) FM(SPEEDIN_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
310#define IP13_7_4 FM(MSIOF0_SS2) FM(HTX2_A) FM(SSI_WS4) FM(HRTS0_N_A) FM(FMIN_C) FM(BPFCLK_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
311#define IP13_11_8 FM(SSI_SDATA9) F_(0, 0) FM(AUDIO_CLKC_A) FM(SCK1) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
312#define IP13_15_12 FM(MLB_CLK) FM(RX0_B) F_(0, 0) FM(RIF0_D0_A) FM(SCL1_B) FM(TCLK1_B) F_(0, 0) F_(0, 0) FM(SIM0_RST_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
313#define IP13_19_16 FM(MLB_SIG) FM(SCK0_B) F_(0, 0) FM(RIF0_D1_A) FM(SDA1_B) FM(TCLK2_B) F_(0, 0) F_(0, 0) FM(SIM0_D_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
314#define IP13_23_20 FM(MLB_DAT) FM(TX0_B) F_(0, 0) FM(RIF0_SYNC_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) FM(SIM0_CLK_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
315#define IP13_27_24 FM(SSI_SCK01239) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
316#define IP13_31_28 FM(SSI_WS01239) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
317#define IP14_3_0 FM(SSI_SDATA0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
318#define IP14_7_4 FM(SSI_SDATA1) FM(AUDIO_CLKC_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) FM(PWM0_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
319#define IP14_11_8 FM(SSI_SDATA2) FM(AUDIO_CLKOUT2_B) FM(SSI_SCK9_A) F_(0, 0) F_(0, 0) F_(0, 0) FM(PWM1_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
320#define IP14_15_12 FM(SSI_SCK349) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) FM(PWM2_C) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
321#define IP14_19_16 FM(SSI_WS349) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) FM(PWM3_C) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
322#define IP14_23_20 FM(SSI_SDATA3) FM(AUDIO_CLKOUT1_C) FM(AUDIO_CLKB_B) F_(0, 0) F_(0, 0) F_(0, 0) FM(PWM4_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
323#define IP14_27_24 FM(SSI_SDATA4) F_(0, 0) FM(SSI_WS9_A) F_(0, 0) F_(0, 0) F_(0, 0) FM(PWM5_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
324#define IP14_31_28 FM(SSI_SCK5) FM(HRX0_B) F_(0, 0) FM(USB0_PWEN_B) FM(SCL2_D) F_(0, 0) FM(PWM6_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
325#define IP15_3_0 FM(SSI_WS5) FM(HTX0_B) F_(0, 0) FM(USB0_OVC_B) FM(SDA2_D) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
326#define IP15_7_4 FM(SSI_SDATA5) FM(HSCK0_B) FM(AUDIO_CLKB_C) FM(TPU0TO0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
327#define IP15_11_8 FM(SSI_SCK6) FM(HSCK2_A) FM(AUDIO_CLKC_C) FM(TPU0TO1) F_(0, 0) F_(0, 0) FM(FSO_CFE_0_N_B) F_(0, 0) FM(SIM0_RST_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
328#define IP15_15_12 FM(SSI_WS6) FM(HCTS2_N_A) FM(AUDIO_CLKOUT2_C) FM(TPU0TO2) FM(SDA1_D) F_(0, 0) FM(FSO_CFE_1_N_B) F_(0, 0) FM(SIM0_D_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
329#define IP15_19_16 FM(SSI_SDATA6) FM(HRTS2_N_A) FM(AUDIO_CLKOUT3_C) FM(TPU0TO3) FM(SCL1_D) F_(0, 0) FM(FSO_TOE_N_B) F_(0, 0) FM(SIM0_CLK_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
330#define IP15_23_20 FM(AUDIO_CLKA) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
331#define IP15_27_24 FM(USB30_PWEN) FM(USB0_PWEN_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
332#define IP15_31_28 FM(USB30_OVC) FM(USB0_OVC_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) FM(FSO_TOE_N_A) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
333
334#define PINMUX_GPSR \
335\
336 \
337 \
338 \
339 \
340 \
341 \
342 GPSR2_25 \
343 GPSR2_24 \
344 GPSR2_23 \
345 GPSR1_22 GPSR2_22 \
346 GPSR1_21 GPSR2_21 \
347 GPSR1_20 GPSR2_20 \
348 GPSR1_19 GPSR2_19 GPSR5_19 \
349 GPSR1_18 GPSR2_18 GPSR5_18 \
350GPSR0_17 GPSR1_17 GPSR2_17 GPSR5_17 GPSR6_17 \
351GPSR0_16 GPSR1_16 GPSR2_16 GPSR5_16 GPSR6_16 \
352GPSR0_15 GPSR1_15 GPSR2_15 GPSR3_15 GPSR5_15 GPSR6_15 \
353GPSR0_14 GPSR1_14 GPSR2_14 GPSR3_14 GPSR5_14 GPSR6_14 \
354GPSR0_13 GPSR1_13 GPSR2_13 GPSR3_13 GPSR5_13 GPSR6_13 \
355GPSR0_12 GPSR1_12 GPSR2_12 GPSR3_12 GPSR5_12 GPSR6_12 \
356GPSR0_11 GPSR1_11 GPSR2_11 GPSR3_11 GPSR5_11 GPSR6_11 \
357GPSR0_10 GPSR1_10 GPSR2_10 GPSR3_10 GPSR4_10 GPSR5_10 GPSR6_10 \
358GPSR0_9 GPSR1_9 GPSR2_9 GPSR3_9 GPSR4_9 GPSR5_9 GPSR6_9 \
359GPSR0_8 GPSR1_8 GPSR2_8 GPSR3_8 GPSR4_8 GPSR5_8 GPSR6_8 \
360GPSR0_7 GPSR1_7 GPSR2_7 GPSR3_7 GPSR4_7 GPSR5_7 GPSR6_7 \
361GPSR0_6 GPSR1_6 GPSR2_6 GPSR3_6 GPSR4_6 GPSR5_6 GPSR6_6 \
362GPSR0_5 GPSR1_5 GPSR2_5 GPSR3_5 GPSR4_5 GPSR5_5 GPSR6_5 \
363GPSR0_4 GPSR1_4 GPSR2_4 GPSR3_4 GPSR4_4 GPSR5_4 GPSR6_4 \
364GPSR0_3 GPSR1_3 GPSR2_3 GPSR3_3 GPSR4_3 GPSR5_3 GPSR6_3 \
365GPSR0_2 GPSR1_2 GPSR2_2 GPSR3_2 GPSR4_2 GPSR5_2 GPSR6_2 \
366GPSR0_1 GPSR1_1 GPSR2_1 GPSR3_1 GPSR4_1 GPSR5_1 GPSR6_1 \
367GPSR0_0 GPSR1_0 GPSR2_0 GPSR3_0 GPSR4_0 GPSR5_0 GPSR6_0
368
369#define PINMUX_IPSR \
370\
371FM(IP0_3_0) IP0_3_0 FM(IP1_3_0) IP1_3_0 FM(IP2_3_0) IP2_3_0 FM(IP3_3_0) IP3_3_0 \
372FM(IP0_7_4) IP0_7_4 FM(IP1_7_4) IP1_7_4 FM(IP2_7_4) IP2_7_4 FM(IP3_7_4) IP3_7_4 \
373FM(IP0_11_8) IP0_11_8 FM(IP1_11_8) IP1_11_8 FM(IP2_11_8) IP2_11_8 FM(IP3_11_8) IP3_11_8 \
374FM(IP0_15_12) IP0_15_12 FM(IP1_15_12) IP1_15_12 FM(IP2_15_12) IP2_15_12 FM(IP3_15_12) IP3_15_12 \
375FM(IP0_19_16) IP0_19_16 FM(IP1_19_16) IP1_19_16 FM(IP2_19_16) IP2_19_16 FM(IP3_19_16) IP3_19_16 \
376FM(IP0_23_20) IP0_23_20 FM(IP1_23_20) IP1_23_20 FM(IP2_23_20) IP2_23_20 FM(IP3_23_20) IP3_23_20 \
377FM(IP0_27_24) IP0_27_24 FM(IP1_27_24) IP1_27_24 FM(IP2_27_24) IP2_27_24 FM(IP3_27_24) IP3_27_24 \
378FM(IP0_31_28) IP0_31_28 FM(IP1_31_28) IP1_31_28 FM(IP2_31_28) IP2_31_28 FM(IP3_31_28) IP3_31_28 \
379\
380FM(IP4_3_0) IP4_3_0 FM(IP5_3_0) IP5_3_0 FM(IP6_3_0) IP6_3_0 FM(IP7_3_0) IP7_3_0 \
381FM(IP4_7_4) IP4_7_4 FM(IP5_7_4) IP5_7_4 FM(IP6_7_4) IP6_7_4 FM(IP7_7_4) IP7_7_4 \
382FM(IP4_11_8) IP4_11_8 FM(IP5_11_8) IP5_11_8 FM(IP6_11_8) IP6_11_8 FM(IP7_11_8) IP7_11_8 \
383FM(IP4_15_12) IP4_15_12 FM(IP5_15_12) IP5_15_12 FM(IP6_15_12) IP6_15_12 FM(IP7_15_12) IP7_15_12 \
384FM(IP4_19_16) IP4_19_16 FM(IP5_19_16) IP5_19_16 FM(IP6_19_16) IP6_19_16 FM(IP7_19_16) IP7_19_16 \
385FM(IP4_23_20) IP4_23_20 FM(IP5_23_20) IP5_23_20 FM(IP6_23_20) IP6_23_20 FM(IP7_23_20) IP7_23_20 \
386FM(IP4_27_24) IP4_27_24 FM(IP5_27_24) IP5_27_24 FM(IP6_27_24) IP6_27_24 FM(IP7_27_24) IP7_27_24 \
387FM(IP4_31_28) IP4_31_28 FM(IP5_31_28) IP5_31_28 FM(IP6_31_28) IP6_31_28 FM(IP7_31_28) IP7_31_28 \
388\
389FM(IP8_3_0) IP8_3_0 FM(IP9_3_0) IP9_3_0 FM(IP10_3_0) IP10_3_0 FM(IP11_3_0) IP11_3_0 \
390FM(IP8_7_4) IP8_7_4 FM(IP9_7_4) IP9_7_4 FM(IP10_7_4) IP10_7_4 FM(IP11_7_4) IP11_7_4 \
391FM(IP8_11_8) IP8_11_8 FM(IP9_11_8) IP9_11_8 FM(IP10_11_8) IP10_11_8 FM(IP11_11_8) IP11_11_8 \
392FM(IP8_15_12) IP8_15_12 FM(IP9_15_12) IP9_15_12 FM(IP10_15_12) IP10_15_12 FM(IP11_15_12) IP11_15_12 \
393FM(IP8_19_16) IP8_19_16 FM(IP9_19_16) IP9_19_16 FM(IP10_19_16) IP10_19_16 FM(IP11_19_16) IP11_19_16 \
394FM(IP8_23_20) IP8_23_20 FM(IP9_23_20) IP9_23_20 FM(IP10_23_20) IP10_23_20 FM(IP11_23_20) IP11_23_20 \
395FM(IP8_27_24) IP8_27_24 FM(IP9_27_24) IP9_27_24 FM(IP10_27_24) IP10_27_24 FM(IP11_27_24) IP11_27_24 \
396FM(IP8_31_28) IP8_31_28 FM(IP9_31_28) IP9_31_28 FM(IP10_31_28) IP10_31_28 FM(IP11_31_28) IP11_31_28 \
397\
398FM(IP12_3_0) IP12_3_0 FM(IP13_3_0) IP13_3_0 FM(IP14_3_0) IP14_3_0 FM(IP15_3_0) IP15_3_0 \
399FM(IP12_7_4) IP12_7_4 FM(IP13_7_4) IP13_7_4 FM(IP14_7_4) IP14_7_4 FM(IP15_7_4) IP15_7_4 \
400FM(IP12_11_8) IP12_11_8 FM(IP13_11_8) IP13_11_8 FM(IP14_11_8) IP14_11_8 FM(IP15_11_8) IP15_11_8 \
401FM(IP12_15_12) IP12_15_12 FM(IP13_15_12) IP13_15_12 FM(IP14_15_12) IP14_15_12 FM(IP15_15_12) IP15_15_12 \
402FM(IP12_19_16) IP12_19_16 FM(IP13_19_16) IP13_19_16 FM(IP14_19_16) IP14_19_16 FM(IP15_19_16) IP15_19_16 \
403FM(IP12_23_20) IP12_23_20 FM(IP13_23_20) IP13_23_20 FM(IP14_23_20) IP14_23_20 FM(IP15_23_20) IP15_23_20 \
404FM(IP12_27_24) IP12_27_24 FM(IP13_27_24) IP13_27_24 FM(IP14_27_24) IP14_27_24 FM(IP15_27_24) IP15_27_24 \
405FM(IP12_31_28) IP12_31_28 FM(IP13_31_28) IP13_31_28 FM(IP14_31_28) IP14_31_28 FM(IP15_31_28) IP15_31_28
406
Marek Vasut88e81ec2019-03-04 22:39:51 +0100407/* The bit numbering in MOD_SEL fields is reversed */
408#define REV4(f0, f1, f2, f3) f0 f2 f1 f3
409#define REV8(f0, f1, f2, f3, f4, f5, f6, f7) f0 f4 f2 f6 f1 f5 f3 f7
410
Marek Vasut68a77042018-04-26 13:09:20 +0200411/* MOD_SEL0 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 */ /* 7 */
Marek Vasut88e81ec2019-03-04 22:39:51 +0100412#define MOD_SEL0_30_29 REV4(FM(SEL_ADGB_0), FM(SEL_ADGB_1), FM(SEL_ADGB_2), F_(0, 0))
Marek Vasut68a77042018-04-26 13:09:20 +0200413#define MOD_SEL0_28 FM(SEL_DRIF0_0) FM(SEL_DRIF0_1)
Marek Vasut88e81ec2019-03-04 22:39:51 +0100414#define MOD_SEL0_27_26 REV4(FM(SEL_FM_0), FM(SEL_FM_1), FM(SEL_FM_2), F_(0, 0))
Marek Vasut68a77042018-04-26 13:09:20 +0200415#define MOD_SEL0_25 FM(SEL_FSO_0) FM(SEL_FSO_1)
416#define MOD_SEL0_24 FM(SEL_HSCIF0_0) FM(SEL_HSCIF0_1)
417#define MOD_SEL0_23 FM(SEL_HSCIF1_0) FM(SEL_HSCIF1_1)
418#define MOD_SEL0_22 FM(SEL_HSCIF2_0) FM(SEL_HSCIF2_1)
Marek Vasut88e81ec2019-03-04 22:39:51 +0100419#define MOD_SEL0_21_20 REV4(FM(SEL_I2C1_0), FM(SEL_I2C1_1), FM(SEL_I2C1_2), FM(SEL_I2C1_3))
420#define MOD_SEL0_19_18_17 REV8(FM(SEL_I2C2_0), FM(SEL_I2C2_1), FM(SEL_I2C2_2), FM(SEL_I2C2_3), FM(SEL_I2C2_4), F_(0, 0), F_(0, 0), F_(0, 0))
Eugeniu Roscaf0066b02019-07-09 18:27:11 +0200421#define MOD_SEL0_16 FM(SEL_NDF_0) FM(SEL_NDF_1)
Marek Vasut68a77042018-04-26 13:09:20 +0200422#define MOD_SEL0_15 FM(SEL_PWM0_0) FM(SEL_PWM0_1)
423#define MOD_SEL0_14 FM(SEL_PWM1_0) FM(SEL_PWM1_1)
Marek Vasut88e81ec2019-03-04 22:39:51 +0100424#define MOD_SEL0_13_12 REV4(FM(SEL_PWM2_0), FM(SEL_PWM2_1), FM(SEL_PWM2_2), F_(0, 0))
425#define MOD_SEL0_11_10 REV4(FM(SEL_PWM3_0), FM(SEL_PWM3_1), FM(SEL_PWM3_2), F_(0, 0))
Marek Vasut68a77042018-04-26 13:09:20 +0200426#define MOD_SEL0_9 FM(SEL_PWM4_0) FM(SEL_PWM4_1)
427#define MOD_SEL0_8 FM(SEL_PWM5_0) FM(SEL_PWM5_1)
428#define MOD_SEL0_7 FM(SEL_PWM6_0) FM(SEL_PWM6_1)
Marek Vasut88e81ec2019-03-04 22:39:51 +0100429#define MOD_SEL0_6_5 REV4(FM(SEL_REMOCON_0), FM(SEL_REMOCON_1), FM(SEL_REMOCON_2), F_(0, 0))
Marek Vasut68a77042018-04-26 13:09:20 +0200430#define MOD_SEL0_4 FM(SEL_SCIF_0) FM(SEL_SCIF_1)
431#define MOD_SEL0_3 FM(SEL_SCIF0_0) FM(SEL_SCIF0_1)
432#define MOD_SEL0_2 FM(SEL_SCIF2_0) FM(SEL_SCIF2_1)
Marek Vasut88e81ec2019-03-04 22:39:51 +0100433#define MOD_SEL0_1_0 REV4(FM(SEL_SPEED_PULSE_IF_0), FM(SEL_SPEED_PULSE_IF_1), FM(SEL_SPEED_PULSE_IF_2), F_(0, 0))
Marek Vasut68a77042018-04-26 13:09:20 +0200434
435/* MOD_SEL1 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 */ /* 7 */
Lad Prabhakare4db7392020-10-14 16:45:59 +0100436#define MOD_SEL1_31 FM(SEL_SIMCARD_0) FM(SEL_SIMCARD_1)
437#define MOD_SEL1_30 FM(SEL_SSI2_0) FM(SEL_SSI2_1)
Marek Vasut68a77042018-04-26 13:09:20 +0200438#define MOD_SEL1_29 FM(SEL_TIMER_TMU_0) FM(SEL_TIMER_TMU_1)
439#define MOD_SEL1_28 FM(SEL_USB_20_CH0_0) FM(SEL_USB_20_CH0_1)
440#define MOD_SEL1_26 FM(SEL_DRIF2_0) FM(SEL_DRIF2_1)
441#define MOD_SEL1_25 FM(SEL_DRIF3_0) FM(SEL_DRIF3_1)
Marek Vasut88e81ec2019-03-04 22:39:51 +0100442#define MOD_SEL1_24_23_22 REV8(FM(SEL_HSCIF3_0), FM(SEL_HSCIF3_1), FM(SEL_HSCIF3_2), FM(SEL_HSCIF3_3), FM(SEL_HSCIF3_4), F_(0, 0), F_(0, 0), F_(0, 0))
443#define MOD_SEL1_21_20_19 REV8(FM(SEL_HSCIF4_0), FM(SEL_HSCIF4_1), FM(SEL_HSCIF4_2), FM(SEL_HSCIF4_3), FM(SEL_HSCIF4_4), F_(0, 0), F_(0, 0), F_(0, 0))
Marek Vasut68a77042018-04-26 13:09:20 +0200444#define MOD_SEL1_18 FM(SEL_I2C6_0) FM(SEL_I2C6_1)
445#define MOD_SEL1_17 FM(SEL_I2C7_0) FM(SEL_I2C7_1)
446#define MOD_SEL1_16 FM(SEL_MSIOF2_0) FM(SEL_MSIOF2_1)
447#define MOD_SEL1_15 FM(SEL_MSIOF3_0) FM(SEL_MSIOF3_1)
Marek Vasut88e81ec2019-03-04 22:39:51 +0100448#define MOD_SEL1_14_13 REV4(FM(SEL_SCIF3_0), FM(SEL_SCIF3_1), FM(SEL_SCIF3_2), F_(0, 0))
449#define MOD_SEL1_12_11 REV4(FM(SEL_SCIF4_0), FM(SEL_SCIF4_1), FM(SEL_SCIF4_2), F_(0, 0))
450#define MOD_SEL1_10_9 REV4(FM(SEL_SCIF5_0), FM(SEL_SCIF5_1), FM(SEL_SCIF5_2), F_(0, 0))
Marek Vasut68a77042018-04-26 13:09:20 +0200451#define MOD_SEL1_8 FM(SEL_VIN4_0) FM(SEL_VIN4_1)
452#define MOD_SEL1_7 FM(SEL_VIN5_0) FM(SEL_VIN5_1)
Marek Vasut88e81ec2019-03-04 22:39:51 +0100453#define MOD_SEL1_6_5 REV4(FM(SEL_ADGC_0), FM(SEL_ADGC_1), FM(SEL_ADGC_2), F_(0, 0))
Marek Vasut68a77042018-04-26 13:09:20 +0200454#define MOD_SEL1_4 FM(SEL_SSI9_0) FM(SEL_SSI9_1)
455
456#define PINMUX_MOD_SELS \
457\
Lad Prabhakare4db7392020-10-14 16:45:59 +0100458 MOD_SEL1_31 \
459MOD_SEL0_30_29 MOD_SEL1_30 \
Marek Vasut68a77042018-04-26 13:09:20 +0200460 MOD_SEL1_29 \
461MOD_SEL0_28 MOD_SEL1_28 \
462MOD_SEL0_27_26 \
463 MOD_SEL1_26 \
464MOD_SEL0_25 MOD_SEL1_25 \
465MOD_SEL0_24 MOD_SEL1_24_23_22 \
466MOD_SEL0_23 \
467MOD_SEL0_22 \
468MOD_SEL0_21_20 MOD_SEL1_21_20_19 \
469MOD_SEL0_19_18_17 MOD_SEL1_18 \
470 MOD_SEL1_17 \
471MOD_SEL0_16 MOD_SEL1_16 \
472MOD_SEL0_15 MOD_SEL1_15 \
473MOD_SEL0_14 MOD_SEL1_14_13 \
474MOD_SEL0_13_12 \
475 MOD_SEL1_12_11 \
476MOD_SEL0_11_10 \
477 MOD_SEL1_10_9 \
478MOD_SEL0_9 \
479MOD_SEL0_8 MOD_SEL1_8 \
480MOD_SEL0_7 MOD_SEL1_7 \
481MOD_SEL0_6_5 MOD_SEL1_6_5 \
482MOD_SEL0_4 MOD_SEL1_4 \
483MOD_SEL0_3 \
484MOD_SEL0_2 \
485MOD_SEL0_1_0
486
Marek Vasuteb13e0f2018-06-10 16:05:48 +0200487/*
488 * These pins are not able to be muxed but have other properties
489 * that can be set, such as pull-up/pull-down enable.
490 */
491#define PINMUX_STATIC \
492 FM(AVB_TX_CTL) FM(AVB_TXC) FM(AVB_TD0) FM(AVB_TD1) FM(AVB_TD2) \
493 FM(AVB_TD3) \
494 FM(PRESETOUT_N) FM(FSCLKST_N) FM(TRST_N) FM(TCK) FM(TMS) FM(TDI) \
495 FM(ASEBRK) \
496 FM(MLB_REF)
497
Marek Vasut68a77042018-04-26 13:09:20 +0200498enum {
499 PINMUX_RESERVED = 0,
500
501 PINMUX_DATA_BEGIN,
502 GP_ALL(DATA),
503 PINMUX_DATA_END,
504
505#define F_(x, y)
506#define FM(x) FN_##x,
507 PINMUX_FUNCTION_BEGIN,
508 GP_ALL(FN),
509 PINMUX_GPSR
510 PINMUX_IPSR
511 PINMUX_MOD_SELS
512 PINMUX_FUNCTION_END,
513#undef F_
514#undef FM
515
516#define F_(x, y)
517#define FM(x) x##_MARK,
518 PINMUX_MARK_BEGIN,
519 PINMUX_GPSR
520 PINMUX_IPSR
521 PINMUX_MOD_SELS
Marek Vasuteb13e0f2018-06-10 16:05:48 +0200522 PINMUX_STATIC
Marek Vasut68a77042018-04-26 13:09:20 +0200523 PINMUX_MARK_END,
524#undef F_
525#undef FM
526};
527
528static const u16 pinmux_data[] = {
529 PINMUX_DATA_GP_ALL(),
530
Marek Vasuteb13e0f2018-06-10 16:05:48 +0200531 PINMUX_SINGLE(CLKOUT),
532 PINMUX_SINGLE(AVB_PHY_INT),
533 PINMUX_SINGLE(AVB_RD3),
534 PINMUX_SINGLE(AVB_RXC),
535 PINMUX_SINGLE(AVB_RX_CTL),
536 PINMUX_SINGLE(QSPI0_SSL),
537
Marek Vasut68a77042018-04-26 13:09:20 +0200538 /* IPSR0 */
539 PINMUX_IPSR_GPSR(IP0_3_0, QSPI0_SPCLK),
540 PINMUX_IPSR_MSEL(IP0_3_0, HSCK4_A, SEL_HSCIF4_0),
541
542 PINMUX_IPSR_GPSR(IP0_7_4, QSPI0_MOSI_IO0),
543 PINMUX_IPSR_MSEL(IP0_7_4, HCTS4_N_A, SEL_HSCIF4_0),
544
545 PINMUX_IPSR_GPSR(IP0_11_8, QSPI0_MISO_IO1),
546 PINMUX_IPSR_MSEL(IP0_11_8, HRTS4_N_A, SEL_HSCIF4_0),
547
548 PINMUX_IPSR_GPSR(IP0_15_12, QSPI0_IO2),
549 PINMUX_IPSR_GPSR(IP0_15_12, HTX4_A),
550
551 PINMUX_IPSR_GPSR(IP0_19_16, QSPI0_IO3),
552 PINMUX_IPSR_MSEL(IP0_19_16, HRX4_A, SEL_HSCIF4_0),
553
554 PINMUX_IPSR_GPSR(IP0_23_20, QSPI1_SPCLK),
555 PINMUX_IPSR_MSEL(IP0_23_20, RIF2_CLK_A, SEL_DRIF2_0),
556 PINMUX_IPSR_MSEL(IP0_23_20, HSCK4_B, SEL_HSCIF4_1),
557 PINMUX_IPSR_MSEL(IP0_23_20, VI4_DATA0_A, SEL_VIN4_0),
558
559 PINMUX_IPSR_GPSR(IP0_27_24, QSPI1_MOSI_IO0),
560 PINMUX_IPSR_MSEL(IP0_27_24, RIF2_SYNC_A, SEL_DRIF2_0),
561 PINMUX_IPSR_GPSR(IP0_27_24, HTX4_B),
562 PINMUX_IPSR_MSEL(IP0_27_24, VI4_DATA1_A, SEL_VIN4_0),
563
564 PINMUX_IPSR_GPSR(IP0_31_28, QSPI1_MISO_IO1),
565 PINMUX_IPSR_MSEL(IP0_31_28, RIF2_D0_A, SEL_DRIF2_0),
566 PINMUX_IPSR_MSEL(IP0_31_28, HRX4_B, SEL_HSCIF4_1),
567 PINMUX_IPSR_MSEL(IP0_31_28, VI4_DATA2_A, SEL_VIN4_0),
568
569 /* IPSR1 */
570 PINMUX_IPSR_GPSR(IP1_3_0, QSPI1_IO2),
571 PINMUX_IPSR_MSEL(IP1_3_0, RIF2_D1_A, SEL_DRIF2_0),
572 PINMUX_IPSR_GPSR(IP1_3_0, HTX3_C),
573 PINMUX_IPSR_MSEL(IP1_3_0, VI4_DATA3_A, SEL_VIN4_0),
574
575 PINMUX_IPSR_GPSR(IP1_7_4, QSPI1_IO3),
576 PINMUX_IPSR_MSEL(IP1_7_4, RIF3_CLK_A, SEL_DRIF3_0),
577 PINMUX_IPSR_MSEL(IP1_7_4, HRX3_C, SEL_HSCIF3_2),
578 PINMUX_IPSR_MSEL(IP1_7_4, VI4_DATA4_A, SEL_VIN4_0),
579
580 PINMUX_IPSR_GPSR(IP1_11_8, QSPI1_SSL),
581 PINMUX_IPSR_MSEL(IP1_11_8, RIF3_SYNC_A, SEL_DRIF3_0),
582 PINMUX_IPSR_MSEL(IP1_11_8, HSCK3_C, SEL_HSCIF3_2),
583 PINMUX_IPSR_MSEL(IP1_11_8, VI4_DATA5_A, SEL_VIN4_0),
584
585 PINMUX_IPSR_GPSR(IP1_15_12, RPC_INT_N),
586 PINMUX_IPSR_MSEL(IP1_15_12, RIF3_D0_A, SEL_DRIF3_0),
587 PINMUX_IPSR_MSEL(IP1_15_12, HCTS3_N_C, SEL_HSCIF3_2),
588 PINMUX_IPSR_MSEL(IP1_15_12, VI4_DATA6_A, SEL_VIN4_0),
589
590 PINMUX_IPSR_GPSR(IP1_19_16, RPC_RESET_N),
591 PINMUX_IPSR_MSEL(IP1_19_16, RIF3_D1_A, SEL_DRIF3_0),
592 PINMUX_IPSR_MSEL(IP1_19_16, HRTS3_N_C, SEL_HSCIF3_2),
593 PINMUX_IPSR_MSEL(IP1_19_16, VI4_DATA7_A, SEL_VIN4_0),
594
595 PINMUX_IPSR_GPSR(IP1_23_20, AVB_RD0),
596
597 PINMUX_IPSR_GPSR(IP1_27_24, AVB_RD1),
598
599 PINMUX_IPSR_GPSR(IP1_31_28, AVB_RD2),
600
601 /* IPSR2 */
602 PINMUX_IPSR_GPSR(IP2_3_0, AVB_TXCREFCLK),
603
604 PINMUX_IPSR_GPSR(IP2_7_4, AVB_MDIO),
605
606 PINMUX_IPSR_GPSR(IP2_11_8, AVB_MDC),
607
608 PINMUX_IPSR_GPSR(IP2_15_12, BS_N),
609 PINMUX_IPSR_MSEL(IP2_15_12, PWM0_A, SEL_PWM0_0),
610 PINMUX_IPSR_GPSR(IP2_15_12, AVB_MAGIC),
611 PINMUX_IPSR_GPSR(IP2_15_12, VI4_CLK),
612 PINMUX_IPSR_GPSR(IP2_15_12, TX3_C),
613 PINMUX_IPSR_MSEL(IP2_15_12, VI5_CLK_B, SEL_VIN5_1),
614
615 PINMUX_IPSR_GPSR(IP2_19_16, RD_N),
616 PINMUX_IPSR_MSEL(IP2_19_16, PWM1_A, SEL_PWM1_0),
617 PINMUX_IPSR_GPSR(IP2_19_16, AVB_LINK),
618 PINMUX_IPSR_GPSR(IP2_19_16, VI4_FIELD),
619 PINMUX_IPSR_MSEL(IP2_19_16, RX3_C, SEL_SCIF3_2),
620 PINMUX_IPSR_GPSR(IP2_19_16, FSCLKST2_N_A),
621 PINMUX_IPSR_MSEL(IP2_19_16, VI5_DATA0_B, SEL_VIN5_1),
622
623 PINMUX_IPSR_GPSR(IP2_23_20, RD_WR_N),
624 PINMUX_IPSR_MSEL(IP2_23_20, SCL7_A, SEL_I2C7_0),
Lad Prabhakare4db7392020-10-14 16:45:59 +0100625 PINMUX_IPSR_GPSR(IP2_23_20, AVB_AVTP_MATCH),
Marek Vasut68a77042018-04-26 13:09:20 +0200626 PINMUX_IPSR_GPSR(IP2_23_20, VI4_VSYNC_N),
627 PINMUX_IPSR_GPSR(IP2_23_20, TX5_B),
628 PINMUX_IPSR_MSEL(IP2_23_20, SCK3_C, SEL_SCIF3_2),
629 PINMUX_IPSR_MSEL(IP2_23_20, PWM5_A, SEL_PWM5_0),
630
631 PINMUX_IPSR_GPSR(IP2_27_24, EX_WAIT0),
632 PINMUX_IPSR_MSEL(IP2_27_24, SDA7_A, SEL_I2C7_0),
Lad Prabhakare4db7392020-10-14 16:45:59 +0100633 PINMUX_IPSR_GPSR(IP2_27_24, AVB_AVTP_CAPTURE),
Marek Vasut68a77042018-04-26 13:09:20 +0200634 PINMUX_IPSR_GPSR(IP2_27_24, VI4_HSYNC_N),
635 PINMUX_IPSR_MSEL(IP2_27_24, RX5_B, SEL_SCIF5_1),
636 PINMUX_IPSR_MSEL(IP2_27_24, PWM6_A, SEL_PWM6_0),
637
638 PINMUX_IPSR_GPSR(IP2_31_28, A0),
639 PINMUX_IPSR_GPSR(IP2_31_28, IRQ0),
640 PINMUX_IPSR_MSEL(IP2_31_28, PWM2_A, SEL_PWM2_0),
641 PINMUX_IPSR_MSEL(IP2_31_28, MSIOF3_SS1_B, SEL_MSIOF3_1),
642 PINMUX_IPSR_MSEL(IP2_31_28, VI5_CLK_A, SEL_VIN5_0),
643 PINMUX_IPSR_GPSR(IP2_31_28, DU_CDE),
644 PINMUX_IPSR_MSEL(IP2_31_28, HRX3_D, SEL_HSCIF3_3),
645 PINMUX_IPSR_GPSR(IP2_31_28, IERX),
646 PINMUX_IPSR_GPSR(IP2_31_28, QSTB_QHE),
647
648 /* IPSR3 */
649 PINMUX_IPSR_GPSR(IP3_3_0, A1),
650 PINMUX_IPSR_GPSR(IP3_3_0, IRQ1),
651 PINMUX_IPSR_MSEL(IP3_3_0, PWM3_A, SEL_PWM3_0),
652 PINMUX_IPSR_GPSR(IP3_3_0, DU_DOTCLKIN1),
653 PINMUX_IPSR_MSEL(IP3_3_0, VI5_DATA0_A, SEL_VIN5_0),
654 PINMUX_IPSR_GPSR(IP3_3_0, DU_DISP_CDE),
655 PINMUX_IPSR_MSEL(IP3_3_0, SDA6_B, SEL_I2C6_1),
656 PINMUX_IPSR_GPSR(IP3_3_0, IETX),
657 PINMUX_IPSR_GPSR(IP3_3_0, QCPV_QDE),
658
659 PINMUX_IPSR_GPSR(IP3_7_4, A2),
660 PINMUX_IPSR_GPSR(IP3_7_4, IRQ2),
661 PINMUX_IPSR_GPSR(IP3_7_4, AVB_AVTP_PPS),
662 PINMUX_IPSR_GPSR(IP3_7_4, VI4_CLKENB),
663 PINMUX_IPSR_MSEL(IP3_7_4, VI5_DATA1_A, SEL_VIN5_0),
664 PINMUX_IPSR_GPSR(IP3_7_4, DU_DISP),
665 PINMUX_IPSR_MSEL(IP3_7_4, SCL6_B, SEL_I2C6_1),
666 PINMUX_IPSR_GPSR(IP3_7_4, QSTVB_QVE),
667
668 PINMUX_IPSR_GPSR(IP3_11_8, A3),
669 PINMUX_IPSR_MSEL(IP3_11_8, CTS4_N_A, SEL_SCIF4_0),
670 PINMUX_IPSR_MSEL(IP3_11_8, PWM4_A, SEL_PWM4_0),
671 PINMUX_IPSR_GPSR(IP3_11_8, VI4_DATA12),
672 PINMUX_IPSR_GPSR(IP3_11_8, DU_DOTCLKOUT0),
673 PINMUX_IPSR_GPSR(IP3_11_8, HTX3_D),
674 PINMUX_IPSR_GPSR(IP3_11_8, IECLK),
675 PINMUX_IPSR_GPSR(IP3_11_8, LCDOUT12),
676
677 PINMUX_IPSR_GPSR(IP3_15_12, A4),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +0200678 PINMUX_IPSR_MSEL(IP3_15_12, RTS4_N_A, SEL_SCIF4_0),
Marek Vasut68a77042018-04-26 13:09:20 +0200679 PINMUX_IPSR_MSEL(IP3_15_12, MSIOF3_SYNC_B, SEL_MSIOF3_1),
680 PINMUX_IPSR_GPSR(IP3_15_12, VI4_DATA8),
681 PINMUX_IPSR_MSEL(IP3_15_12, PWM2_B, SEL_PWM2_1),
682 PINMUX_IPSR_GPSR(IP3_15_12, DU_DG4),
683 PINMUX_IPSR_MSEL(IP3_15_12, RIF2_CLK_B, SEL_DRIF2_1),
684
685 PINMUX_IPSR_GPSR(IP3_19_16, A5),
686 PINMUX_IPSR_MSEL(IP3_19_16, SCK4_A, SEL_SCIF4_0),
687 PINMUX_IPSR_MSEL(IP3_19_16, MSIOF3_SCK_B, SEL_MSIOF3_1),
688 PINMUX_IPSR_GPSR(IP3_19_16, VI4_DATA9),
689 PINMUX_IPSR_MSEL(IP3_19_16, PWM3_B, SEL_PWM3_1),
690 PINMUX_IPSR_MSEL(IP3_19_16, RIF2_SYNC_B, SEL_DRIF2_1),
691 PINMUX_IPSR_GPSR(IP3_19_16, QPOLA),
692
693 PINMUX_IPSR_GPSR(IP3_23_20, A6),
694 PINMUX_IPSR_MSEL(IP3_23_20, RX4_A, SEL_SCIF4_0),
695 PINMUX_IPSR_MSEL(IP3_23_20, MSIOF3_RXD_B, SEL_MSIOF3_1),
696 PINMUX_IPSR_GPSR(IP3_23_20, VI4_DATA10),
697 PINMUX_IPSR_MSEL(IP3_23_20, RIF2_D0_B, SEL_DRIF2_1),
698
699 PINMUX_IPSR_GPSR(IP3_27_24, A7),
700 PINMUX_IPSR_GPSR(IP3_27_24, TX4_A),
701 PINMUX_IPSR_GPSR(IP3_27_24, MSIOF3_TXD_B),
702 PINMUX_IPSR_GPSR(IP3_27_24, VI4_DATA11),
703 PINMUX_IPSR_MSEL(IP3_27_24, RIF2_D1_B, SEL_DRIF2_1),
704
705 PINMUX_IPSR_GPSR(IP3_31_28, A8),
706 PINMUX_IPSR_MSEL(IP3_31_28, SDA6_A, SEL_I2C6_0),
707 PINMUX_IPSR_MSEL(IP3_31_28, RX3_B, SEL_SCIF3_1),
708 PINMUX_IPSR_MSEL(IP3_31_28, HRX4_C, SEL_HSCIF4_2),
709 PINMUX_IPSR_MSEL(IP3_31_28, VI5_HSYNC_N_A, SEL_VIN5_0),
710 PINMUX_IPSR_GPSR(IP3_31_28, DU_HSYNC),
711 PINMUX_IPSR_MSEL(IP3_31_28, VI4_DATA0_B, SEL_VIN4_1),
712 PINMUX_IPSR_GPSR(IP3_31_28, QSTH_QHS),
713
714 /* IPSR4 */
715 PINMUX_IPSR_GPSR(IP4_3_0, A9),
716 PINMUX_IPSR_GPSR(IP4_3_0, TX5_A),
717 PINMUX_IPSR_GPSR(IP4_3_0, IRQ3),
718 PINMUX_IPSR_GPSR(IP4_3_0, VI4_DATA16),
719 PINMUX_IPSR_MSEL(IP4_3_0, VI5_VSYNC_N_A, SEL_VIN5_0),
720 PINMUX_IPSR_GPSR(IP4_3_0, DU_DG7),
721 PINMUX_IPSR_GPSR(IP4_3_0, LCDOUT15),
722
723 PINMUX_IPSR_GPSR(IP4_7_4, A10),
724 PINMUX_IPSR_GPSR(IP4_7_4, IRQ4),
725 PINMUX_IPSR_MSEL(IP4_7_4, MSIOF2_SYNC_B, SEL_MSIOF2_1),
726 PINMUX_IPSR_GPSR(IP4_7_4, VI4_DATA13),
727 PINMUX_IPSR_MSEL(IP4_7_4, VI5_FIELD_A, SEL_VIN5_0),
728 PINMUX_IPSR_GPSR(IP4_7_4, DU_DG5),
729 PINMUX_IPSR_GPSR(IP4_7_4, FSCLKST2_N_B),
730 PINMUX_IPSR_GPSR(IP4_7_4, LCDOUT13),
731
732 PINMUX_IPSR_GPSR(IP4_11_8, A11),
733 PINMUX_IPSR_MSEL(IP4_11_8, SCL6_A, SEL_I2C6_0),
734 PINMUX_IPSR_GPSR(IP4_11_8, TX3_B),
735 PINMUX_IPSR_GPSR(IP4_11_8, HTX4_C),
736 PINMUX_IPSR_GPSR(IP4_11_8, DU_VSYNC),
737 PINMUX_IPSR_MSEL(IP4_11_8, VI4_DATA1_B, SEL_VIN4_1),
738 PINMUX_IPSR_GPSR(IP4_11_8, QSTVA_QVS),
739
740 PINMUX_IPSR_GPSR(IP4_15_12, A12),
741 PINMUX_IPSR_MSEL(IP4_15_12, RX5_A, SEL_SCIF5_0),
742 PINMUX_IPSR_GPSR(IP4_15_12, MSIOF2_SS2_B),
743 PINMUX_IPSR_GPSR(IP4_15_12, VI4_DATA17),
744 PINMUX_IPSR_MSEL(IP4_15_12, VI5_DATA3_A, SEL_VIN5_0),
745 PINMUX_IPSR_GPSR(IP4_15_12, DU_DG6),
746 PINMUX_IPSR_GPSR(IP4_15_12, LCDOUT14),
747
748 PINMUX_IPSR_GPSR(IP4_19_16, A13),
749 PINMUX_IPSR_MSEL(IP4_19_16, SCK5_A, SEL_SCIF5_0),
750 PINMUX_IPSR_MSEL(IP4_19_16, MSIOF2_SCK_B, SEL_MSIOF2_1),
751 PINMUX_IPSR_GPSR(IP4_19_16, VI4_DATA14),
752 PINMUX_IPSR_MSEL(IP4_19_16, HRX4_D, SEL_HSCIF4_3),
753 PINMUX_IPSR_GPSR(IP4_19_16, DU_DB2),
754 PINMUX_IPSR_GPSR(IP4_19_16, LCDOUT2),
755
756 PINMUX_IPSR_GPSR(IP4_23_20, A14),
757 PINMUX_IPSR_GPSR(IP4_23_20, MSIOF1_SS1),
758 PINMUX_IPSR_MSEL(IP4_23_20, MSIOF2_RXD_B, SEL_MSIOF2_1),
759 PINMUX_IPSR_GPSR(IP4_23_20, VI4_DATA15),
760 PINMUX_IPSR_GPSR(IP4_23_20, HTX4_D),
761 PINMUX_IPSR_GPSR(IP4_23_20, DU_DB3),
762 PINMUX_IPSR_GPSR(IP4_23_20, LCDOUT3),
763
764 PINMUX_IPSR_GPSR(IP4_27_24, A15),
765 PINMUX_IPSR_GPSR(IP4_27_24, MSIOF1_SS2),
766 PINMUX_IPSR_GPSR(IP4_27_24, MSIOF2_TXD_B),
767 PINMUX_IPSR_GPSR(IP4_27_24, VI4_DATA18),
768 PINMUX_IPSR_MSEL(IP4_27_24, VI5_DATA4_A, SEL_VIN5_0),
769 PINMUX_IPSR_GPSR(IP4_27_24, DU_DB4),
770 PINMUX_IPSR_GPSR(IP4_27_24, LCDOUT4),
771
772 PINMUX_IPSR_GPSR(IP4_31_28, A16),
773 PINMUX_IPSR_GPSR(IP4_31_28, MSIOF1_SYNC),
774 PINMUX_IPSR_GPSR(IP4_31_28, MSIOF2_SS1_B),
775 PINMUX_IPSR_GPSR(IP4_31_28, VI4_DATA19),
776 PINMUX_IPSR_MSEL(IP4_31_28, VI5_DATA5_A, SEL_VIN5_0),
777 PINMUX_IPSR_GPSR(IP4_31_28, DU_DB5),
778 PINMUX_IPSR_GPSR(IP4_31_28, LCDOUT5),
779
780 /* IPSR5 */
781 PINMUX_IPSR_GPSR(IP5_3_0, A17),
782 PINMUX_IPSR_GPSR(IP5_3_0, MSIOF1_RXD),
783 PINMUX_IPSR_GPSR(IP5_3_0, VI4_DATA20),
784 PINMUX_IPSR_MSEL(IP5_3_0, VI5_DATA6_A, SEL_VIN5_0),
785 PINMUX_IPSR_GPSR(IP5_3_0, DU_DB6),
786 PINMUX_IPSR_GPSR(IP5_3_0, LCDOUT6),
787
788 PINMUX_IPSR_GPSR(IP5_7_4, A18),
789 PINMUX_IPSR_GPSR(IP5_7_4, MSIOF1_TXD),
790 PINMUX_IPSR_GPSR(IP5_7_4, VI4_DATA21),
791 PINMUX_IPSR_MSEL(IP5_7_4, VI5_DATA7_A, SEL_VIN5_0),
792 PINMUX_IPSR_GPSR(IP5_7_4, DU_DB0),
793 PINMUX_IPSR_MSEL(IP5_7_4, HRX4_E, SEL_HSCIF4_4),
794 PINMUX_IPSR_GPSR(IP5_7_4, LCDOUT0),
795
796 PINMUX_IPSR_GPSR(IP5_11_8, A19),
797 PINMUX_IPSR_GPSR(IP5_11_8, MSIOF1_SCK),
798 PINMUX_IPSR_GPSR(IP5_11_8, VI4_DATA22),
799 PINMUX_IPSR_MSEL(IP5_11_8, VI5_DATA2_A, SEL_VIN5_0),
800 PINMUX_IPSR_GPSR(IP5_11_8, DU_DB1),
801 PINMUX_IPSR_GPSR(IP5_11_8, HTX4_E),
802 PINMUX_IPSR_GPSR(IP5_11_8, LCDOUT1),
803
804 PINMUX_IPSR_GPSR(IP5_15_12, CS0_N),
805 PINMUX_IPSR_GPSR(IP5_15_12, SCL5),
806 PINMUX_IPSR_GPSR(IP5_15_12, DU_DR0),
807 PINMUX_IPSR_MSEL(IP5_15_12, VI4_DATA2_B, SEL_VIN4_1),
808 PINMUX_IPSR_GPSR(IP5_15_12, LCDOUT16),
809
810 PINMUX_IPSR_GPSR(IP5_19_16, WE0_N),
811 PINMUX_IPSR_GPSR(IP5_19_16, SDA5),
812 PINMUX_IPSR_GPSR(IP5_19_16, DU_DR1),
813 PINMUX_IPSR_MSEL(IP5_19_16, VI4_DATA3_B, SEL_VIN4_1),
814 PINMUX_IPSR_GPSR(IP5_19_16, LCDOUT17),
815
816 PINMUX_IPSR_GPSR(IP5_23_20, D0),
817 PINMUX_IPSR_MSEL(IP5_23_20, MSIOF3_SCK_A, SEL_MSIOF3_0),
818 PINMUX_IPSR_GPSR(IP5_23_20, DU_DR2),
819 PINMUX_IPSR_MSEL(IP5_23_20, CTS4_N_C, SEL_SCIF4_2),
820 PINMUX_IPSR_GPSR(IP5_23_20, LCDOUT18),
821
822 PINMUX_IPSR_GPSR(IP5_27_24, D1),
823 PINMUX_IPSR_MSEL(IP5_27_24, MSIOF3_SYNC_A, SEL_MSIOF3_0),
824 PINMUX_IPSR_MSEL(IP5_27_24, SCK3_A, SEL_SCIF3_0),
825 PINMUX_IPSR_GPSR(IP5_27_24, VI4_DATA23),
826 PINMUX_IPSR_MSEL(IP5_27_24, VI5_CLKENB_A, SEL_VIN5_0),
827 PINMUX_IPSR_GPSR(IP5_27_24, DU_DB7),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +0200828 PINMUX_IPSR_MSEL(IP5_27_24, RTS4_N_C, SEL_SCIF4_2),
Marek Vasut68a77042018-04-26 13:09:20 +0200829 PINMUX_IPSR_GPSR(IP5_27_24, LCDOUT7),
830
831 PINMUX_IPSR_GPSR(IP5_31_28, D2),
832 PINMUX_IPSR_MSEL(IP5_31_28, MSIOF3_RXD_A, SEL_MSIOF3_0),
833 PINMUX_IPSR_MSEL(IP5_31_28, RX5_C, SEL_SCIF5_2),
834 PINMUX_IPSR_MSEL(IP5_31_28, VI5_DATA14_A, SEL_VIN5_0),
835 PINMUX_IPSR_GPSR(IP5_31_28, DU_DR3),
836 PINMUX_IPSR_MSEL(IP5_31_28, RX4_C, SEL_SCIF4_2),
837 PINMUX_IPSR_GPSR(IP5_31_28, LCDOUT19),
838
839 /* IPSR6 */
840 PINMUX_IPSR_GPSR(IP6_3_0, D3),
841 PINMUX_IPSR_GPSR(IP6_3_0, MSIOF3_TXD_A),
842 PINMUX_IPSR_GPSR(IP6_3_0, TX5_C),
843 PINMUX_IPSR_MSEL(IP6_3_0, VI5_DATA15_A, SEL_VIN5_0),
844 PINMUX_IPSR_GPSR(IP6_3_0, DU_DR4),
845 PINMUX_IPSR_GPSR(IP6_3_0, TX4_C),
846 PINMUX_IPSR_GPSR(IP6_3_0, LCDOUT20),
847
848 PINMUX_IPSR_GPSR(IP6_7_4, D4),
849 PINMUX_IPSR_GPSR(IP6_7_4, CANFD1_TX),
850 PINMUX_IPSR_MSEL(IP6_7_4, HSCK3_B, SEL_HSCIF3_1),
851 PINMUX_IPSR_GPSR(IP6_7_4, CAN1_TX),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +0200852 PINMUX_IPSR_MSEL(IP6_7_4, RTS3_N_A, SEL_SCIF3_0),
Marek Vasut68a77042018-04-26 13:09:20 +0200853 PINMUX_IPSR_GPSR(IP6_7_4, MSIOF3_SS2_A),
854 PINMUX_IPSR_MSEL(IP6_7_4, VI5_DATA1_B, SEL_VIN5_1),
855
856 PINMUX_IPSR_GPSR(IP6_11_8, D5),
857 PINMUX_IPSR_MSEL(IP6_11_8, RX3_A, SEL_SCIF3_0),
858 PINMUX_IPSR_MSEL(IP6_11_8, HRX3_B, SEL_HSCIF3_1),
859 PINMUX_IPSR_GPSR(IP6_11_8, DU_DR5),
860 PINMUX_IPSR_MSEL(IP6_11_8, VI4_DATA4_B, SEL_VIN4_1),
861 PINMUX_IPSR_GPSR(IP6_11_8, LCDOUT21),
862
863 PINMUX_IPSR_GPSR(IP6_15_12, D6),
864 PINMUX_IPSR_GPSR(IP6_15_12, TX3_A),
865 PINMUX_IPSR_GPSR(IP6_15_12, HTX3_B),
866 PINMUX_IPSR_GPSR(IP6_15_12, DU_DR6),
867 PINMUX_IPSR_MSEL(IP6_15_12, VI4_DATA5_B, SEL_VIN4_1),
868 PINMUX_IPSR_GPSR(IP6_15_12, LCDOUT22),
869
870 PINMUX_IPSR_GPSR(IP6_19_16, D7),
871 PINMUX_IPSR_GPSR(IP6_19_16, CANFD1_RX),
872 PINMUX_IPSR_GPSR(IP6_19_16, IRQ5),
873 PINMUX_IPSR_GPSR(IP6_19_16, CAN1_RX),
874 PINMUX_IPSR_MSEL(IP6_19_16, CTS3_N_A, SEL_SCIF3_0),
875 PINMUX_IPSR_MSEL(IP6_19_16, VI5_DATA2_B, SEL_VIN5_1),
876
877 PINMUX_IPSR_GPSR(IP6_23_20, D8),
878 PINMUX_IPSR_MSEL(IP6_23_20, MSIOF2_SCK_A, SEL_MSIOF2_0),
879 PINMUX_IPSR_MSEL(IP6_23_20, SCK4_B, SEL_SCIF4_1),
880 PINMUX_IPSR_MSEL(IP6_23_20, VI5_DATA12_A, SEL_VIN5_0),
881 PINMUX_IPSR_GPSR(IP6_23_20, DU_DR7),
882 PINMUX_IPSR_MSEL(IP6_23_20, RIF3_CLK_B, SEL_DRIF3_1),
883 PINMUX_IPSR_MSEL(IP6_23_20, HCTS3_N_E, SEL_HSCIF3_4),
884 PINMUX_IPSR_GPSR(IP6_23_20, LCDOUT23),
885
886 PINMUX_IPSR_GPSR(IP6_27_24, D9),
887 PINMUX_IPSR_MSEL(IP6_27_24, MSIOF2_SYNC_A, SEL_MSIOF2_0),
888 PINMUX_IPSR_MSEL(IP6_27_24, VI5_DATA10_A, SEL_VIN5_0),
889 PINMUX_IPSR_GPSR(IP6_27_24, DU_DG0),
890 PINMUX_IPSR_MSEL(IP6_27_24, RIF3_SYNC_B, SEL_DRIF3_1),
891 PINMUX_IPSR_MSEL(IP6_27_24, HRX3_E, SEL_HSCIF3_4),
892 PINMUX_IPSR_GPSR(IP6_27_24, LCDOUT8),
893
894 PINMUX_IPSR_GPSR(IP6_31_28, D10),
895 PINMUX_IPSR_MSEL(IP6_31_28, MSIOF2_RXD_A, SEL_MSIOF2_0),
896 PINMUX_IPSR_MSEL(IP6_31_28, VI5_DATA13_A, SEL_VIN5_0),
897 PINMUX_IPSR_GPSR(IP6_31_28, DU_DG1),
898 PINMUX_IPSR_MSEL(IP6_31_28, RIF3_D0_B, SEL_DRIF3_1),
899 PINMUX_IPSR_GPSR(IP6_31_28, HTX3_E),
900 PINMUX_IPSR_GPSR(IP6_31_28, LCDOUT9),
901
902 /* IPSR7 */
903 PINMUX_IPSR_GPSR(IP7_3_0, D11),
904 PINMUX_IPSR_GPSR(IP7_3_0, MSIOF2_TXD_A),
905 PINMUX_IPSR_MSEL(IP7_3_0, VI5_DATA11_A, SEL_VIN5_0),
906 PINMUX_IPSR_GPSR(IP7_3_0, DU_DG2),
907 PINMUX_IPSR_MSEL(IP7_3_0, RIF3_D1_B, SEL_DRIF3_1),
908 PINMUX_IPSR_MSEL(IP7_3_0, HRTS3_N_E, SEL_HSCIF3_4),
909 PINMUX_IPSR_GPSR(IP7_3_0, LCDOUT10),
910
911 PINMUX_IPSR_GPSR(IP7_7_4, D12),
912 PINMUX_IPSR_GPSR(IP7_7_4, CANFD0_TX),
913 PINMUX_IPSR_GPSR(IP7_7_4, TX4_B),
914 PINMUX_IPSR_GPSR(IP7_7_4, CAN0_TX),
915 PINMUX_IPSR_MSEL(IP7_7_4, VI5_DATA8_A, SEL_VIN5_0),
916 PINMUX_IPSR_MSEL(IP7_7_4, VI5_DATA3_B, SEL_VIN5_1),
917
918 PINMUX_IPSR_GPSR(IP7_11_8, D13),
919 PINMUX_IPSR_GPSR(IP7_11_8, CANFD0_RX),
920 PINMUX_IPSR_MSEL(IP7_11_8, RX4_B, SEL_SCIF4_1),
921 PINMUX_IPSR_GPSR(IP7_11_8, CAN0_RX),
922 PINMUX_IPSR_MSEL(IP7_11_8, VI5_DATA9_A, SEL_VIN5_0),
923 PINMUX_IPSR_MSEL(IP7_11_8, SCL7_B, SEL_I2C7_1),
924 PINMUX_IPSR_MSEL(IP7_11_8, VI5_DATA4_B, SEL_VIN5_1),
925
926 PINMUX_IPSR_GPSR(IP7_15_12, D14),
927 PINMUX_IPSR_GPSR(IP7_15_12, CAN_CLK),
928 PINMUX_IPSR_MSEL(IP7_15_12, HRX3_A, SEL_HSCIF3_0),
929 PINMUX_IPSR_GPSR(IP7_15_12, MSIOF2_SS2_A),
930 PINMUX_IPSR_MSEL(IP7_15_12, SDA7_B, SEL_I2C7_1),
931 PINMUX_IPSR_MSEL(IP7_15_12, VI5_DATA5_B, SEL_VIN5_1),
932
933 PINMUX_IPSR_GPSR(IP7_19_16, D15),
934 PINMUX_IPSR_GPSR(IP7_19_16, MSIOF2_SS1_A),
935 PINMUX_IPSR_GPSR(IP7_19_16, HTX3_A),
936 PINMUX_IPSR_GPSR(IP7_19_16, MSIOF3_SS1_A),
937 PINMUX_IPSR_GPSR(IP7_19_16, DU_DG3),
938 PINMUX_IPSR_GPSR(IP7_19_16, LCDOUT11),
939
940 PINMUX_IPSR_GPSR(IP7_23_20, SCL4),
941 PINMUX_IPSR_GPSR(IP7_23_20, CS1_N_A26),
942 PINMUX_IPSR_GPSR(IP7_23_20, DU_DOTCLKIN0),
943 PINMUX_IPSR_MSEL(IP7_23_20, VI4_DATA6_B, SEL_VIN4_1),
944 PINMUX_IPSR_MSEL(IP7_23_20, VI5_DATA6_B, SEL_VIN5_1),
945 PINMUX_IPSR_GPSR(IP7_23_20, QCLK),
946
947 PINMUX_IPSR_GPSR(IP7_27_24, SDA4),
948 PINMUX_IPSR_GPSR(IP7_27_24, WE1_N),
949 PINMUX_IPSR_MSEL(IP7_27_24, VI4_DATA7_B, SEL_VIN4_1),
950 PINMUX_IPSR_MSEL(IP7_27_24, VI5_DATA7_B, SEL_VIN5_1),
951 PINMUX_IPSR_GPSR(IP7_27_24, QPOLB),
952
953 PINMUX_IPSR_GPSR(IP7_31_28, SD0_CLK),
954 PINMUX_IPSR_GPSR(IP7_31_28, NFDATA8),
955 PINMUX_IPSR_MSEL(IP7_31_28, SCL1_C, SEL_I2C1_2),
956 PINMUX_IPSR_MSEL(IP7_31_28, HSCK1_B, SEL_HSCIF1_1),
957 PINMUX_IPSR_MSEL(IP7_31_28, SDA2_E, SEL_I2C2_4),
958 PINMUX_IPSR_MSEL(IP7_31_28, FMCLK_B, SEL_FM_1),
959
960 /* IPSR8 */
961 PINMUX_IPSR_GPSR(IP8_3_0, SD0_CMD),
962 PINMUX_IPSR_GPSR(IP8_3_0, NFDATA9),
963 PINMUX_IPSR_MSEL(IP8_3_0, HRX1_B, SEL_HSCIF1_1),
964 PINMUX_IPSR_MSEL(IP8_3_0, SPEEDIN_B, SEL_SPEED_PULSE_IF_1),
965
966 PINMUX_IPSR_GPSR(IP8_7_4, SD0_DAT0),
967 PINMUX_IPSR_GPSR(IP8_7_4, NFDATA10),
968 PINMUX_IPSR_GPSR(IP8_7_4, HTX1_B),
969 PINMUX_IPSR_MSEL(IP8_7_4, REMOCON_B, SEL_REMOCON_1),
970
971 PINMUX_IPSR_GPSR(IP8_11_8, SD0_DAT1),
972 PINMUX_IPSR_GPSR(IP8_11_8, NFDATA11),
973 PINMUX_IPSR_MSEL(IP8_11_8, SDA2_C, SEL_I2C2_2),
974 PINMUX_IPSR_MSEL(IP8_11_8, HCTS1_N_B, SEL_HSCIF1_1),
975 PINMUX_IPSR_MSEL(IP8_11_8, FMIN_B, SEL_FM_1),
976
977 PINMUX_IPSR_GPSR(IP8_15_12, SD0_DAT2),
978 PINMUX_IPSR_GPSR(IP8_15_12, NFDATA12),
979 PINMUX_IPSR_MSEL(IP8_15_12, SCL2_C, SEL_I2C2_2),
980 PINMUX_IPSR_MSEL(IP8_15_12, HRTS1_N_B, SEL_HSCIF1_1),
981 PINMUX_IPSR_GPSR(IP8_15_12, BPFCLK_B),
982
983 PINMUX_IPSR_GPSR(IP8_19_16, SD0_DAT3),
984 PINMUX_IPSR_GPSR(IP8_19_16, NFDATA13),
985 PINMUX_IPSR_MSEL(IP8_19_16, SDA1_C, SEL_I2C1_2),
986 PINMUX_IPSR_MSEL(IP8_19_16, SCL2_E, SEL_I2C2_4),
987 PINMUX_IPSR_MSEL(IP8_19_16, SPEEDIN_C, SEL_SPEED_PULSE_IF_2),
988 PINMUX_IPSR_MSEL(IP8_19_16, REMOCON_C, SEL_REMOCON_2),
989
990 PINMUX_IPSR_GPSR(IP8_23_20, SD1_CLK),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +0200991 PINMUX_IPSR_MSEL(IP8_23_20, NFDATA14_B, SEL_NDF_1),
Marek Vasut68a77042018-04-26 13:09:20 +0200992
993 PINMUX_IPSR_GPSR(IP8_27_24, SD1_CMD),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +0200994 PINMUX_IPSR_MSEL(IP8_27_24, NFDATA15_B, SEL_NDF_1),
Marek Vasut68a77042018-04-26 13:09:20 +0200995
996 PINMUX_IPSR_GPSR(IP8_31_28, SD1_DAT0),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +0200997 PINMUX_IPSR_MSEL(IP8_31_28, NFWP_N_B, SEL_NDF_1),
Marek Vasut68a77042018-04-26 13:09:20 +0200998
999 /* IPSR9 */
1000 PINMUX_IPSR_GPSR(IP9_3_0, SD1_DAT1),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02001001 PINMUX_IPSR_MSEL(IP9_3_0, NFCE_N_B, SEL_NDF_1),
Marek Vasut68a77042018-04-26 13:09:20 +02001002
1003 PINMUX_IPSR_GPSR(IP9_7_4, SD1_DAT2),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02001004 PINMUX_IPSR_MSEL(IP9_7_4, NFALE_B, SEL_NDF_1),
Marek Vasut68a77042018-04-26 13:09:20 +02001005
1006 PINMUX_IPSR_GPSR(IP9_11_8, SD1_DAT3),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02001007 PINMUX_IPSR_MSEL(IP9_11_8, NFRB_N_B, SEL_NDF_1),
Marek Vasut68a77042018-04-26 13:09:20 +02001008
1009 PINMUX_IPSR_GPSR(IP9_15_12, SD3_CLK),
1010 PINMUX_IPSR_GPSR(IP9_15_12, NFWE_N),
1011
1012 PINMUX_IPSR_GPSR(IP9_19_16, SD3_CMD),
1013 PINMUX_IPSR_GPSR(IP9_19_16, NFRE_N),
1014
1015 PINMUX_IPSR_GPSR(IP9_23_20, SD3_DAT0),
1016 PINMUX_IPSR_GPSR(IP9_23_20, NFDATA0),
1017
1018 PINMUX_IPSR_GPSR(IP9_27_24, SD3_DAT1),
1019 PINMUX_IPSR_GPSR(IP9_27_24, NFDATA1),
1020
1021 PINMUX_IPSR_GPSR(IP9_31_28, SD3_DAT2),
1022 PINMUX_IPSR_GPSR(IP9_31_28, NFDATA2),
1023
1024 /* IPSR10 */
1025 PINMUX_IPSR_GPSR(IP10_3_0, SD3_DAT3),
1026 PINMUX_IPSR_GPSR(IP10_3_0, NFDATA3),
1027
1028 PINMUX_IPSR_GPSR(IP10_7_4, SD3_DAT4),
1029 PINMUX_IPSR_GPSR(IP10_7_4, NFDATA4),
1030
1031 PINMUX_IPSR_GPSR(IP10_11_8, SD3_DAT5),
1032 PINMUX_IPSR_GPSR(IP10_11_8, NFDATA5),
1033
1034 PINMUX_IPSR_GPSR(IP10_15_12, SD3_DAT6),
1035 PINMUX_IPSR_GPSR(IP10_15_12, NFDATA6),
1036
1037 PINMUX_IPSR_GPSR(IP10_19_16, SD3_DAT7),
1038 PINMUX_IPSR_GPSR(IP10_19_16, NFDATA7),
1039
1040 PINMUX_IPSR_GPSR(IP10_23_20, SD3_DS),
1041 PINMUX_IPSR_GPSR(IP10_23_20, NFCLE),
1042
1043 PINMUX_IPSR_GPSR(IP10_27_24, SD0_CD),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02001044 PINMUX_IPSR_MSEL(IP10_27_24, NFALE_A, SEL_NDF_0),
Marek Vasut68a77042018-04-26 13:09:20 +02001045 PINMUX_IPSR_GPSR(IP10_27_24, SD3_CD),
1046 PINMUX_IPSR_MSEL(IP10_27_24, RIF0_CLK_B, SEL_DRIF0_1),
1047 PINMUX_IPSR_MSEL(IP10_27_24, SCL2_B, SEL_I2C2_1),
1048 PINMUX_IPSR_MSEL(IP10_27_24, TCLK1_A, SEL_TIMER_TMU_0),
Lad Prabhakare4db7392020-10-14 16:45:59 +01001049 PINMUX_IPSR_MSEL(IP10_27_24, SSI_SCK2_B, SEL_SSI2_1),
Marek Vasut68a77042018-04-26 13:09:20 +02001050 PINMUX_IPSR_GPSR(IP10_27_24, TS_SCK0),
1051
1052 PINMUX_IPSR_GPSR(IP10_31_28, SD0_WP),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02001053 PINMUX_IPSR_MSEL(IP10_31_28, NFRB_N_A, SEL_NDF_0),
Marek Vasut68a77042018-04-26 13:09:20 +02001054 PINMUX_IPSR_GPSR(IP10_31_28, SD3_WP),
1055 PINMUX_IPSR_MSEL(IP10_31_28, RIF0_D0_B, SEL_DRIF0_1),
1056 PINMUX_IPSR_MSEL(IP10_31_28, SDA2_B, SEL_I2C2_1),
1057 PINMUX_IPSR_MSEL(IP10_31_28, TCLK2_A, SEL_TIMER_TMU_0),
Lad Prabhakare4db7392020-10-14 16:45:59 +01001058 PINMUX_IPSR_MSEL(IP10_31_28, SSI_WS2_B, SEL_SSI2_1),
Marek Vasut68a77042018-04-26 13:09:20 +02001059 PINMUX_IPSR_GPSR(IP10_31_28, TS_SDAT0),
1060
1061 /* IPSR11 */
1062 PINMUX_IPSR_GPSR(IP11_3_0, SD1_CD),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02001063 PINMUX_IPSR_MSEL(IP11_3_0, NFCE_N_A, SEL_NDF_0),
Marek Vasut68a77042018-04-26 13:09:20 +02001064 PINMUX_IPSR_GPSR(IP11_3_0, SSI_SCK1),
1065 PINMUX_IPSR_MSEL(IP11_3_0, RIF0_D1_B, SEL_DRIF0_1),
1066 PINMUX_IPSR_GPSR(IP11_3_0, TS_SDEN0),
1067
1068 PINMUX_IPSR_GPSR(IP11_7_4, SD1_WP),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02001069 PINMUX_IPSR_MSEL(IP11_7_4, NFWP_N_A, SEL_NDF_0),
Marek Vasut68a77042018-04-26 13:09:20 +02001070 PINMUX_IPSR_GPSR(IP11_7_4, SSI_WS1),
1071 PINMUX_IPSR_MSEL(IP11_7_4, RIF0_SYNC_B, SEL_DRIF0_1),
1072 PINMUX_IPSR_GPSR(IP11_7_4, TS_SPSYNC0),
1073
1074 PINMUX_IPSR_MSEL(IP11_11_8, RX0_A, SEL_SCIF0_0),
1075 PINMUX_IPSR_MSEL(IP11_11_8, HRX1_A, SEL_HSCIF1_0),
Lad Prabhakare4db7392020-10-14 16:45:59 +01001076 PINMUX_IPSR_MSEL(IP11_11_8, SSI_SCK2_A, SEL_SSI2_0),
Marek Vasut68a77042018-04-26 13:09:20 +02001077 PINMUX_IPSR_GPSR(IP11_11_8, RIF1_SYNC),
1078 PINMUX_IPSR_GPSR(IP11_11_8, TS_SCK1),
1079
Hiroyuki Yokoyama174f4492019-02-13 12:41:04 +09001080 PINMUX_IPSR_MSEL(IP11_15_12, TX0_A, SEL_SCIF0_0),
Marek Vasut68a77042018-04-26 13:09:20 +02001081 PINMUX_IPSR_GPSR(IP11_15_12, HTX1_A),
Lad Prabhakare4db7392020-10-14 16:45:59 +01001082 PINMUX_IPSR_MSEL(IP11_15_12, SSI_WS2_A, SEL_SSI2_0),
Marek Vasut68a77042018-04-26 13:09:20 +02001083 PINMUX_IPSR_GPSR(IP11_15_12, RIF1_D0),
1084 PINMUX_IPSR_GPSR(IP11_15_12, TS_SDAT1),
1085
1086 PINMUX_IPSR_MSEL(IP11_19_16, CTS0_N_A, SEL_SCIF0_0),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02001087 PINMUX_IPSR_MSEL(IP11_19_16, NFDATA14_A, SEL_NDF_0),
Marek Vasut68a77042018-04-26 13:09:20 +02001088 PINMUX_IPSR_GPSR(IP11_19_16, AUDIO_CLKOUT_A),
1089 PINMUX_IPSR_GPSR(IP11_19_16, RIF1_D1),
1090 PINMUX_IPSR_MSEL(IP11_19_16, SCIF_CLK_A, SEL_SCIF_0),
1091 PINMUX_IPSR_MSEL(IP11_19_16, FMCLK_A, SEL_FM_0),
1092
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02001093 PINMUX_IPSR_MSEL(IP11_23_20, RTS0_N_A, SEL_SCIF0_0),
1094 PINMUX_IPSR_MSEL(IP11_23_20, NFDATA15_A, SEL_NDF_0),
Marek Vasut68a77042018-04-26 13:09:20 +02001095 PINMUX_IPSR_GPSR(IP11_23_20, AUDIO_CLKOUT1_A),
1096 PINMUX_IPSR_GPSR(IP11_23_20, RIF1_CLK),
1097 PINMUX_IPSR_MSEL(IP11_23_20, SCL2_A, SEL_I2C2_0),
1098 PINMUX_IPSR_MSEL(IP11_23_20, FMIN_A, SEL_FM_0),
1099
1100 PINMUX_IPSR_MSEL(IP11_27_24, SCK0_A, SEL_SCIF0_0),
1101 PINMUX_IPSR_MSEL(IP11_27_24, HSCK1_A, SEL_HSCIF1_0),
1102 PINMUX_IPSR_GPSR(IP11_27_24, USB3HS0_ID),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02001103 PINMUX_IPSR_GPSR(IP11_27_24, RTS1_N),
Marek Vasut68a77042018-04-26 13:09:20 +02001104 PINMUX_IPSR_MSEL(IP11_27_24, SDA2_A, SEL_I2C2_0),
1105 PINMUX_IPSR_MSEL(IP11_27_24, FMCLK_C, SEL_FM_2),
Hiroyuki Yokoyama947e20a2019-02-13 14:23:46 +09001106 PINMUX_IPSR_GPSR(IP11_27_24, USB0_ID),
Marek Vasut68a77042018-04-26 13:09:20 +02001107
1108 PINMUX_IPSR_GPSR(IP11_31_28, RX1),
1109 PINMUX_IPSR_MSEL(IP11_31_28, HRX2_B, SEL_HSCIF2_1),
1110 PINMUX_IPSR_MSEL(IP11_31_28, SSI_SCK9_B, SEL_SSI9_1),
1111 PINMUX_IPSR_GPSR(IP11_31_28, AUDIO_CLKOUT1_B),
1112
1113 /* IPSR12 */
1114 PINMUX_IPSR_GPSR(IP12_3_0, TX1),
1115 PINMUX_IPSR_GPSR(IP12_3_0, HTX2_B),
1116 PINMUX_IPSR_MSEL(IP12_3_0, SSI_WS9_B, SEL_SSI9_1),
1117 PINMUX_IPSR_GPSR(IP12_3_0, AUDIO_CLKOUT3_B),
1118
Hiroyuki Yokoyama11a40dd2019-02-13 12:18:28 +09001119 PINMUX_IPSR_MSEL(IP12_7_4, SCK2_A, SEL_SCIF2_0),
Marek Vasut68a77042018-04-26 13:09:20 +02001120 PINMUX_IPSR_MSEL(IP12_7_4, HSCK0_A, SEL_HSCIF0_0),
1121 PINMUX_IPSR_MSEL(IP12_7_4, AUDIO_CLKB_A, SEL_ADGB_0),
1122 PINMUX_IPSR_GPSR(IP12_7_4, CTS1_N),
1123 PINMUX_IPSR_MSEL(IP12_7_4, RIF0_CLK_A, SEL_DRIF0_0),
1124 PINMUX_IPSR_MSEL(IP12_7_4, REMOCON_A, SEL_REMOCON_0),
1125 PINMUX_IPSR_MSEL(IP12_7_4, SCIF_CLK_B, SEL_SCIF_1),
1126
Hiroyuki Yokoyama11a40dd2019-02-13 12:18:28 +09001127 PINMUX_IPSR_MSEL(IP12_11_8, TX2_A, SEL_SCIF2_0),
Marek Vasut68a77042018-04-26 13:09:20 +02001128 PINMUX_IPSR_MSEL(IP12_11_8, HRX0_A, SEL_HSCIF0_0),
1129 PINMUX_IPSR_GPSR(IP12_11_8, AUDIO_CLKOUT2_A),
1130 PINMUX_IPSR_MSEL(IP12_11_8, SCL1_A, SEL_I2C1_0),
1131 PINMUX_IPSR_MSEL(IP12_11_8, FSO_CFE_0_N_A, SEL_FSO_0),
1132 PINMUX_IPSR_GPSR(IP12_11_8, TS_SDEN1),
1133
Hiroyuki Yokoyama11a40dd2019-02-13 12:18:28 +09001134 PINMUX_IPSR_MSEL(IP12_15_12, RX2_A, SEL_SCIF2_0),
Marek Vasut68a77042018-04-26 13:09:20 +02001135 PINMUX_IPSR_GPSR(IP12_15_12, HTX0_A),
1136 PINMUX_IPSR_GPSR(IP12_15_12, AUDIO_CLKOUT3_A),
1137 PINMUX_IPSR_MSEL(IP12_15_12, SDA1_A, SEL_I2C1_0),
1138 PINMUX_IPSR_MSEL(IP12_15_12, FSO_CFE_1_N_A, SEL_FSO_0),
1139 PINMUX_IPSR_GPSR(IP12_15_12, TS_SPSYNC1),
1140
1141 PINMUX_IPSR_GPSR(IP12_19_16, MSIOF0_SCK),
1142 PINMUX_IPSR_GPSR(IP12_19_16, SSI_SCK78),
1143
1144 PINMUX_IPSR_GPSR(IP12_23_20, MSIOF0_RXD),
1145 PINMUX_IPSR_GPSR(IP12_23_20, SSI_WS78),
Hiroyuki Yokoyama11a40dd2019-02-13 12:18:28 +09001146 PINMUX_IPSR_MSEL(IP12_23_20, TX2_B, SEL_SCIF2_1),
Marek Vasut68a77042018-04-26 13:09:20 +02001147
1148 PINMUX_IPSR_GPSR(IP12_27_24, MSIOF0_TXD),
1149 PINMUX_IPSR_GPSR(IP12_27_24, SSI_SDATA7),
Hiroyuki Yokoyama11a40dd2019-02-13 12:18:28 +09001150 PINMUX_IPSR_MSEL(IP12_27_24, RX2_B, SEL_SCIF2_1),
Marek Vasut68a77042018-04-26 13:09:20 +02001151
1152 PINMUX_IPSR_GPSR(IP12_31_28, MSIOF0_SYNC),
1153 PINMUX_IPSR_GPSR(IP12_31_28, AUDIO_CLKOUT_B),
1154 PINMUX_IPSR_GPSR(IP12_31_28, SSI_SDATA8),
1155
1156 /* IPSR13 */
1157 PINMUX_IPSR_GPSR(IP13_3_0, MSIOF0_SS1),
1158 PINMUX_IPSR_MSEL(IP13_3_0, HRX2_A, SEL_HSCIF2_0),
1159 PINMUX_IPSR_GPSR(IP13_3_0, SSI_SCK4),
1160 PINMUX_IPSR_MSEL(IP13_3_0, HCTS0_N_A, SEL_HSCIF0_0),
1161 PINMUX_IPSR_GPSR(IP13_3_0, BPFCLK_C),
1162 PINMUX_IPSR_MSEL(IP13_3_0, SPEEDIN_A, SEL_SPEED_PULSE_IF_0),
1163
1164 PINMUX_IPSR_GPSR(IP13_7_4, MSIOF0_SS2),
1165 PINMUX_IPSR_GPSR(IP13_7_4, HTX2_A),
1166 PINMUX_IPSR_GPSR(IP13_7_4, SSI_WS4),
1167 PINMUX_IPSR_MSEL(IP13_7_4, HRTS0_N_A, SEL_HSCIF0_0),
1168 PINMUX_IPSR_MSEL(IP13_7_4, FMIN_C, SEL_FM_2),
1169 PINMUX_IPSR_GPSR(IP13_7_4, BPFCLK_A),
1170
1171 PINMUX_IPSR_GPSR(IP13_11_8, SSI_SDATA9),
1172 PINMUX_IPSR_MSEL(IP13_11_8, AUDIO_CLKC_A, SEL_ADGC_0),
1173 PINMUX_IPSR_GPSR(IP13_11_8, SCK1),
1174
1175 PINMUX_IPSR_GPSR(IP13_15_12, MLB_CLK),
1176 PINMUX_IPSR_MSEL(IP13_15_12, RX0_B, SEL_SCIF0_1),
1177 PINMUX_IPSR_MSEL(IP13_15_12, RIF0_D0_A, SEL_DRIF0_0),
1178 PINMUX_IPSR_MSEL(IP13_15_12, SCL1_B, SEL_I2C1_1),
1179 PINMUX_IPSR_MSEL(IP13_15_12, TCLK1_B, SEL_TIMER_TMU_1),
1180 PINMUX_IPSR_GPSR(IP13_15_12, SIM0_RST_A),
1181
1182 PINMUX_IPSR_GPSR(IP13_19_16, MLB_SIG),
1183 PINMUX_IPSR_MSEL(IP13_19_16, SCK0_B, SEL_SCIF0_1),
1184 PINMUX_IPSR_MSEL(IP13_19_16, RIF0_D1_A, SEL_DRIF0_0),
1185 PINMUX_IPSR_MSEL(IP13_19_16, SDA1_B, SEL_I2C1_1),
1186 PINMUX_IPSR_MSEL(IP13_19_16, TCLK2_B, SEL_TIMER_TMU_1),
Lad Prabhakare4db7392020-10-14 16:45:59 +01001187 PINMUX_IPSR_MSEL(IP13_19_16, SIM0_D_A, SEL_SIMCARD_0),
Marek Vasut68a77042018-04-26 13:09:20 +02001188
1189 PINMUX_IPSR_GPSR(IP13_23_20, MLB_DAT),
Marek Vasut88e81ec2019-03-04 22:39:51 +01001190 PINMUX_IPSR_MSEL(IP13_23_20, TX0_B, SEL_SCIF0_1),
Marek Vasut68a77042018-04-26 13:09:20 +02001191 PINMUX_IPSR_MSEL(IP13_23_20, RIF0_SYNC_A, SEL_DRIF0_0),
1192 PINMUX_IPSR_GPSR(IP13_23_20, SIM0_CLK_A),
1193
1194 PINMUX_IPSR_GPSR(IP13_27_24, SSI_SCK01239),
1195
1196 PINMUX_IPSR_GPSR(IP13_31_28, SSI_WS01239),
1197
1198 /* IPSR14 */
1199 PINMUX_IPSR_GPSR(IP14_3_0, SSI_SDATA0),
1200
1201 PINMUX_IPSR_GPSR(IP14_7_4, SSI_SDATA1),
1202 PINMUX_IPSR_MSEL(IP14_7_4, AUDIO_CLKC_B, SEL_ADGC_1),
1203 PINMUX_IPSR_MSEL(IP14_7_4, PWM0_B, SEL_PWM0_1),
1204
1205 PINMUX_IPSR_GPSR(IP14_11_8, SSI_SDATA2),
1206 PINMUX_IPSR_GPSR(IP14_11_8, AUDIO_CLKOUT2_B),
1207 PINMUX_IPSR_MSEL(IP14_11_8, SSI_SCK9_A, SEL_SSI9_0),
1208 PINMUX_IPSR_MSEL(IP14_11_8, PWM1_B, SEL_PWM1_1),
1209
1210 PINMUX_IPSR_GPSR(IP14_15_12, SSI_SCK349),
1211 PINMUX_IPSR_MSEL(IP14_15_12, PWM2_C, SEL_PWM2_2),
1212
1213 PINMUX_IPSR_GPSR(IP14_19_16, SSI_WS349),
1214 PINMUX_IPSR_MSEL(IP14_19_16, PWM3_C, SEL_PWM3_2),
1215
1216 PINMUX_IPSR_GPSR(IP14_23_20, SSI_SDATA3),
1217 PINMUX_IPSR_GPSR(IP14_23_20, AUDIO_CLKOUT1_C),
1218 PINMUX_IPSR_MSEL(IP14_23_20, AUDIO_CLKB_B, SEL_ADGB_1),
1219 PINMUX_IPSR_MSEL(IP14_23_20, PWM4_B, SEL_PWM4_1),
1220
1221 PINMUX_IPSR_GPSR(IP14_27_24, SSI_SDATA4),
1222 PINMUX_IPSR_MSEL(IP14_27_24, SSI_WS9_A, SEL_SSI9_0),
1223 PINMUX_IPSR_MSEL(IP14_27_24, PWM5_B, SEL_PWM5_1),
1224
1225 PINMUX_IPSR_GPSR(IP14_31_28, SSI_SCK5),
1226 PINMUX_IPSR_MSEL(IP14_31_28, HRX0_B, SEL_HSCIF0_1),
1227 PINMUX_IPSR_GPSR(IP14_31_28, USB0_PWEN_B),
1228 PINMUX_IPSR_MSEL(IP14_31_28, SCL2_D, SEL_I2C2_3),
1229 PINMUX_IPSR_MSEL(IP14_31_28, PWM6_B, SEL_PWM6_1),
1230
1231 /* IPSR15 */
1232 PINMUX_IPSR_GPSR(IP15_3_0, SSI_WS5),
1233 PINMUX_IPSR_GPSR(IP15_3_0, HTX0_B),
1234 PINMUX_IPSR_MSEL(IP15_3_0, USB0_OVC_B, SEL_USB_20_CH0_1),
1235 PINMUX_IPSR_MSEL(IP15_3_0, SDA2_D, SEL_I2C2_3),
1236
1237 PINMUX_IPSR_GPSR(IP15_7_4, SSI_SDATA5),
1238 PINMUX_IPSR_MSEL(IP15_7_4, HSCK0_B, SEL_HSCIF0_1),
1239 PINMUX_IPSR_MSEL(IP15_7_4, AUDIO_CLKB_C, SEL_ADGB_2),
1240 PINMUX_IPSR_GPSR(IP15_7_4, TPU0TO0),
1241
1242 PINMUX_IPSR_GPSR(IP15_11_8, SSI_SCK6),
1243 PINMUX_IPSR_MSEL(IP15_11_8, HSCK2_A, SEL_HSCIF2_0),
1244 PINMUX_IPSR_MSEL(IP15_11_8, AUDIO_CLKC_C, SEL_ADGC_2),
1245 PINMUX_IPSR_GPSR(IP15_11_8, TPU0TO1),
1246 PINMUX_IPSR_MSEL(IP15_11_8, FSO_CFE_0_N_B, SEL_FSO_1),
1247 PINMUX_IPSR_GPSR(IP15_11_8, SIM0_RST_B),
1248
1249 PINMUX_IPSR_GPSR(IP15_15_12, SSI_WS6),
1250 PINMUX_IPSR_MSEL(IP15_15_12, HCTS2_N_A, SEL_HSCIF2_0),
1251 PINMUX_IPSR_GPSR(IP15_15_12, AUDIO_CLKOUT2_C),
1252 PINMUX_IPSR_GPSR(IP15_15_12, TPU0TO2),
1253 PINMUX_IPSR_MSEL(IP15_15_12, SDA1_D, SEL_I2C1_3),
1254 PINMUX_IPSR_MSEL(IP15_15_12, FSO_CFE_1_N_B, SEL_FSO_1),
Lad Prabhakare4db7392020-10-14 16:45:59 +01001255 PINMUX_IPSR_MSEL(IP15_15_12, SIM0_D_B, SEL_SIMCARD_1),
Marek Vasut68a77042018-04-26 13:09:20 +02001256
1257 PINMUX_IPSR_GPSR(IP15_19_16, SSI_SDATA6),
1258 PINMUX_IPSR_MSEL(IP15_19_16, HRTS2_N_A, SEL_HSCIF2_0),
1259 PINMUX_IPSR_GPSR(IP15_19_16, AUDIO_CLKOUT3_C),
1260 PINMUX_IPSR_GPSR(IP15_19_16, TPU0TO3),
1261 PINMUX_IPSR_MSEL(IP15_19_16, SCL1_D, SEL_I2C1_3),
1262 PINMUX_IPSR_MSEL(IP15_19_16, FSO_TOE_N_B, SEL_FSO_1),
1263 PINMUX_IPSR_GPSR(IP15_19_16, SIM0_CLK_B),
1264
1265 PINMUX_IPSR_GPSR(IP15_23_20, AUDIO_CLKA),
1266
1267 PINMUX_IPSR_GPSR(IP15_27_24, USB30_PWEN),
1268 PINMUX_IPSR_GPSR(IP15_27_24, USB0_PWEN_A),
1269
1270 PINMUX_IPSR_GPSR(IP15_31_28, USB30_OVC),
1271 PINMUX_IPSR_MSEL(IP15_31_28, USB0_OVC_A, SEL_USB_20_CH0_0),
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001272
1273/*
1274 * Static pins can not be muxed between different functions but
Marek Vasut88e81ec2019-03-04 22:39:51 +01001275 * still need mark entries in the pinmux list. Add each static
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001276 * pin to the list without an associated function. The sh-pfc
Marek Vasut88e81ec2019-03-04 22:39:51 +01001277 * core will do the right thing and skip trying to mux the pin
1278 * while still applying configuration to it.
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001279 */
1280#define FM(x) PINMUX_DATA(x##_MARK, 0),
1281 PINMUX_STATIC
1282#undef FM
Marek Vasut68a77042018-04-26 13:09:20 +02001283};
1284
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001285/*
1286 * R8A77990 has 7 banks with 32 GPIOs in each => 224 GPIOs.
1287 * Physical layout rows: A - AE, cols: 1 - 25.
1288 */
1289#define ROW_GROUP_A(r) ('Z' - 'A' + 1 + (r))
1290#define PIN_NUMBER(r, c) (((r) - 'A') * 25 + (c) + 300)
1291#define PIN_A_NUMBER(r, c) PIN_NUMBER(ROW_GROUP_A(r), c)
1292#define PIN_NONE U16_MAX
1293
Marek Vasut68a77042018-04-26 13:09:20 +02001294static const struct sh_pfc_pin pinmux_pins[] = {
1295 PINMUX_GPIO_GP_ALL(),
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001296
1297 /*
1298 * Pins not associated with a GPIO port.
1299 *
1300 * The pin positions are different between different R8A77990
1301 * packages, all that is needed for the pfc driver is a unique
1302 * number for each pin. To this end use the pin layout from
1303 * R8A77990 to calculate a unique number for each pin.
1304 */
1305 SH_PFC_PIN_NAMED_CFG('F', 1, TRST_N, CFG_FLAGS),
1306 SH_PFC_PIN_NAMED_CFG('F', 3, TMS, CFG_FLAGS),
1307 SH_PFC_PIN_NAMED_CFG('F', 4, TCK, CFG_FLAGS),
1308 SH_PFC_PIN_NAMED_CFG('G', 2, TDI, CFG_FLAGS),
1309 SH_PFC_PIN_NAMED_CFG('G', 3, FSCLKST_N, CFG_FLAGS),
1310 SH_PFC_PIN_NAMED_CFG('H', 1, ASEBRK, CFG_FLAGS),
1311 SH_PFC_PIN_NAMED_CFG('N', 1, AVB_TXC, CFG_FLAGS),
1312 SH_PFC_PIN_NAMED_CFG('N', 2, AVB_TD0, CFG_FLAGS),
1313 SH_PFC_PIN_NAMED_CFG('N', 3, AVB_TD1, CFG_FLAGS),
1314 SH_PFC_PIN_NAMED_CFG('N', 5, AVB_TD2, CFG_FLAGS),
1315 SH_PFC_PIN_NAMED_CFG('N', 6, AVB_TD3, CFG_FLAGS),
1316 SH_PFC_PIN_NAMED_CFG('P', 3, AVB_TX_CTL, CFG_FLAGS),
1317 SH_PFC_PIN_NAMED_CFG('P', 4, AVB_MDIO, CFG_FLAGS),
1318 SH_PFC_PIN_NAMED_CFG('P', 5, AVB_MDC, CFG_FLAGS),
1319 SH_PFC_PIN_NAMED_CFG('T', 21, MLB_REF, CFG_FLAGS),
1320 SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('D'), 3, PRESETOUT_N, CFG_FLAGS),
Marek Vasut68a77042018-04-26 13:09:20 +02001321};
1322
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001323/* - AUDIO CLOCK ------------------------------------------------------------ */
1324static const unsigned int audio_clk_a_pins[] = {
1325 /* CLK A */
1326 RCAR_GP_PIN(6, 8),
1327};
1328
1329static const unsigned int audio_clk_a_mux[] = {
1330 AUDIO_CLKA_MARK,
1331};
1332
1333static const unsigned int audio_clk_b_a_pins[] = {
1334 /* CLK B_A */
1335 RCAR_GP_PIN(5, 7),
1336};
1337
1338static const unsigned int audio_clk_b_a_mux[] = {
1339 AUDIO_CLKB_A_MARK,
1340};
1341
1342static const unsigned int audio_clk_b_b_pins[] = {
1343 /* CLK B_B */
1344 RCAR_GP_PIN(6, 7),
1345};
1346
1347static const unsigned int audio_clk_b_b_mux[] = {
1348 AUDIO_CLKB_B_MARK,
1349};
1350
1351static const unsigned int audio_clk_b_c_pins[] = {
1352 /* CLK B_C */
1353 RCAR_GP_PIN(6, 13),
1354};
1355
1356static const unsigned int audio_clk_b_c_mux[] = {
1357 AUDIO_CLKB_C_MARK,
1358};
1359
1360static const unsigned int audio_clk_c_a_pins[] = {
1361 /* CLK C_A */
1362 RCAR_GP_PIN(5, 16),
1363};
1364
1365static const unsigned int audio_clk_c_a_mux[] = {
1366 AUDIO_CLKC_A_MARK,
1367};
1368
1369static const unsigned int audio_clk_c_b_pins[] = {
1370 /* CLK C_B */
1371 RCAR_GP_PIN(6, 3),
1372};
1373
1374static const unsigned int audio_clk_c_b_mux[] = {
1375 AUDIO_CLKC_B_MARK,
1376};
1377
1378static const unsigned int audio_clk_c_c_pins[] = {
1379 /* CLK C_C */
1380 RCAR_GP_PIN(6, 14),
1381};
1382
1383static const unsigned int audio_clk_c_c_mux[] = {
1384 AUDIO_CLKC_C_MARK,
1385};
1386
1387static const unsigned int audio_clkout_a_pins[] = {
1388 /* CLKOUT_A */
1389 RCAR_GP_PIN(5, 3),
1390};
1391
1392static const unsigned int audio_clkout_a_mux[] = {
1393 AUDIO_CLKOUT_A_MARK,
1394};
1395
1396static const unsigned int audio_clkout_b_pins[] = {
1397 /* CLKOUT_B */
1398 RCAR_GP_PIN(5, 13),
1399};
1400
1401static const unsigned int audio_clkout_b_mux[] = {
1402 AUDIO_CLKOUT_B_MARK,
1403};
1404
1405static const unsigned int audio_clkout1_a_pins[] = {
1406 /* CLKOUT1_A */
1407 RCAR_GP_PIN(5, 4),
1408};
1409
1410static const unsigned int audio_clkout1_a_mux[] = {
1411 AUDIO_CLKOUT1_A_MARK,
1412};
1413
1414static const unsigned int audio_clkout1_b_pins[] = {
1415 /* CLKOUT1_B */
1416 RCAR_GP_PIN(5, 5),
1417};
1418
1419static const unsigned int audio_clkout1_b_mux[] = {
1420 AUDIO_CLKOUT1_B_MARK,
1421};
1422
1423static const unsigned int audio_clkout1_c_pins[] = {
1424 /* CLKOUT1_C */
1425 RCAR_GP_PIN(6, 7),
1426};
1427
1428static const unsigned int audio_clkout1_c_mux[] = {
1429 AUDIO_CLKOUT1_C_MARK,
1430};
1431
1432static const unsigned int audio_clkout2_a_pins[] = {
1433 /* CLKOUT2_A */
1434 RCAR_GP_PIN(5, 8),
1435};
1436
1437static const unsigned int audio_clkout2_a_mux[] = {
1438 AUDIO_CLKOUT2_A_MARK,
1439};
1440
1441static const unsigned int audio_clkout2_b_pins[] = {
1442 /* CLKOUT2_B */
1443 RCAR_GP_PIN(6, 4),
1444};
1445
1446static const unsigned int audio_clkout2_b_mux[] = {
1447 AUDIO_CLKOUT2_B_MARK,
1448};
1449
1450static const unsigned int audio_clkout2_c_pins[] = {
1451 /* CLKOUT2_C */
1452 RCAR_GP_PIN(6, 15),
1453};
1454
1455static const unsigned int audio_clkout2_c_mux[] = {
1456 AUDIO_CLKOUT2_C_MARK,
1457};
1458
1459static const unsigned int audio_clkout3_a_pins[] = {
1460 /* CLKOUT3_A */
1461 RCAR_GP_PIN(5, 9),
1462};
1463
1464static const unsigned int audio_clkout3_a_mux[] = {
1465 AUDIO_CLKOUT3_A_MARK,
1466};
1467
1468static const unsigned int audio_clkout3_b_pins[] = {
1469 /* CLKOUT3_B */
1470 RCAR_GP_PIN(5, 6),
1471};
1472
1473static const unsigned int audio_clkout3_b_mux[] = {
1474 AUDIO_CLKOUT3_B_MARK,
1475};
1476
1477static const unsigned int audio_clkout3_c_pins[] = {
1478 /* CLKOUT3_C */
1479 RCAR_GP_PIN(6, 16),
1480};
1481
1482static const unsigned int audio_clkout3_c_mux[] = {
1483 AUDIO_CLKOUT3_C_MARK,
1484};
1485
1486/* - EtherAVB --------------------------------------------------------------- */
1487static const unsigned int avb_link_pins[] = {
1488 /* AVB_LINK */
1489 RCAR_GP_PIN(2, 23),
1490};
1491
1492static const unsigned int avb_link_mux[] = {
1493 AVB_LINK_MARK,
1494};
1495
1496static const unsigned int avb_magic_pins[] = {
1497 /* AVB_MAGIC */
1498 RCAR_GP_PIN(2, 22),
1499};
1500
1501static const unsigned int avb_magic_mux[] = {
1502 AVB_MAGIC_MARK,
1503};
1504
1505static const unsigned int avb_phy_int_pins[] = {
1506 /* AVB_PHY_INT */
1507 RCAR_GP_PIN(2, 21),
1508};
1509
1510static const unsigned int avb_phy_int_mux[] = {
1511 AVB_PHY_INT_MARK,
1512};
1513
1514static const unsigned int avb_mii_pins[] = {
1515 /*
1516 * AVB_RX_CTL, AVB_RXC, AVB_RD0,
1517 * AVB_RD1, AVB_RD2, AVB_RD3,
1518 * AVB_TXCREFCLK
1519 */
1520 RCAR_GP_PIN(2, 14), RCAR_GP_PIN(2, 15), RCAR_GP_PIN(2, 16),
1521 RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 18), RCAR_GP_PIN(2, 19),
1522 RCAR_GP_PIN(2, 20),
1523};
1524
1525static const unsigned int avb_mii_mux[] = {
1526 AVB_RX_CTL_MARK, AVB_RXC_MARK, AVB_RD0_MARK,
1527 AVB_RD1_MARK, AVB_RD2_MARK, AVB_RD3_MARK,
1528 AVB_TXCREFCLK_MARK,
1529};
1530
1531static const unsigned int avb_avtp_pps_pins[] = {
1532 /* AVB_AVTP_PPS */
1533 RCAR_GP_PIN(1, 2),
1534};
1535
1536static const unsigned int avb_avtp_pps_mux[] = {
1537 AVB_AVTP_PPS_MARK,
1538};
1539
Lad Prabhakare4db7392020-10-14 16:45:59 +01001540static const unsigned int avb_avtp_match_pins[] = {
1541 /* AVB_AVTP_MATCH */
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001542 RCAR_GP_PIN(2, 24),
1543};
1544
Lad Prabhakare4db7392020-10-14 16:45:59 +01001545static const unsigned int avb_avtp_match_mux[] = {
1546 AVB_AVTP_MATCH_MARK,
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001547};
1548
Lad Prabhakare4db7392020-10-14 16:45:59 +01001549static const unsigned int avb_avtp_capture_pins[] = {
1550 /* AVB_AVTP_CAPTURE */
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001551 RCAR_GP_PIN(2, 25),
1552};
1553
Lad Prabhakare4db7392020-10-14 16:45:59 +01001554static const unsigned int avb_avtp_capture_mux[] = {
1555 AVB_AVTP_CAPTURE_MARK,
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001556};
1557
1558/* - CAN ------------------------------------------------------------------ */
1559static const unsigned int can0_data_pins[] = {
1560 /* TX, RX */
1561 RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13),
1562};
1563
1564static const unsigned int can0_data_mux[] = {
1565 CAN0_TX_MARK, CAN0_RX_MARK,
1566};
1567
1568static const unsigned int can1_data_pins[] = {
1569 /* TX, RX */
1570 RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 7),
1571};
1572
1573static const unsigned int can1_data_mux[] = {
1574 CAN1_TX_MARK, CAN1_RX_MARK,
1575};
1576
1577/* - CAN Clock -------------------------------------------------------------- */
1578static const unsigned int can_clk_pins[] = {
1579 /* CLK */
1580 RCAR_GP_PIN(0, 14),
1581};
1582
1583static const unsigned int can_clk_mux[] = {
1584 CAN_CLK_MARK,
1585};
1586
1587/* - CAN FD --------------------------------------------------------------- */
1588static const unsigned int canfd0_data_pins[] = {
1589 /* TX, RX */
1590 RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13),
1591};
1592
1593static const unsigned int canfd0_data_mux[] = {
1594 CANFD0_TX_MARK, CANFD0_RX_MARK,
1595};
1596
1597static const unsigned int canfd1_data_pins[] = {
1598 /* TX, RX */
1599 RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 7),
1600};
1601
1602static const unsigned int canfd1_data_mux[] = {
1603 CANFD1_TX_MARK, CANFD1_RX_MARK,
1604};
1605
Lad Prabhakar14c9b042021-03-15 22:24:03 +00001606#ifdef CONFIG_PINCTRL_PFC_R8A77990
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001607/* - DRIF0 --------------------------------------------------------------- */
1608static const unsigned int drif0_ctrl_a_pins[] = {
1609 /* CLK, SYNC */
1610 RCAR_GP_PIN(5, 7), RCAR_GP_PIN(5, 19),
1611};
1612
1613static const unsigned int drif0_ctrl_a_mux[] = {
1614 RIF0_CLK_A_MARK, RIF0_SYNC_A_MARK,
1615};
1616
1617static const unsigned int drif0_data0_a_pins[] = {
1618 /* D0 */
1619 RCAR_GP_PIN(5, 17),
1620};
1621
1622static const unsigned int drif0_data0_a_mux[] = {
1623 RIF0_D0_A_MARK,
1624};
1625
1626static const unsigned int drif0_data1_a_pins[] = {
1627 /* D1 */
1628 RCAR_GP_PIN(5, 18),
1629};
1630
1631static const unsigned int drif0_data1_a_mux[] = {
1632 RIF0_D1_A_MARK,
1633};
1634
1635static const unsigned int drif0_ctrl_b_pins[] = {
1636 /* CLK, SYNC */
1637 RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 15),
1638};
1639
1640static const unsigned int drif0_ctrl_b_mux[] = {
1641 RIF0_CLK_B_MARK, RIF0_SYNC_B_MARK,
1642};
1643
1644static const unsigned int drif0_data0_b_pins[] = {
1645 /* D0 */
1646 RCAR_GP_PIN(3, 13),
1647};
1648
1649static const unsigned int drif0_data0_b_mux[] = {
1650 RIF0_D0_B_MARK,
1651};
1652
1653static const unsigned int drif0_data1_b_pins[] = {
1654 /* D1 */
1655 RCAR_GP_PIN(3, 14),
1656};
1657
1658static const unsigned int drif0_data1_b_mux[] = {
1659 RIF0_D1_B_MARK,
1660};
1661
1662/* - DRIF1 --------------------------------------------------------------- */
1663static const unsigned int drif1_ctrl_pins[] = {
1664 /* CLK, SYNC */
1665 RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 1),
1666};
1667
1668static const unsigned int drif1_ctrl_mux[] = {
1669 RIF1_CLK_MARK, RIF1_SYNC_MARK,
1670};
1671
1672static const unsigned int drif1_data0_pins[] = {
1673 /* D0 */
1674 RCAR_GP_PIN(5, 2),
1675};
1676
1677static const unsigned int drif1_data0_mux[] = {
1678 RIF1_D0_MARK,
1679};
1680
1681static const unsigned int drif1_data1_pins[] = {
1682 /* D1 */
1683 RCAR_GP_PIN(5, 3),
1684};
1685
1686static const unsigned int drif1_data1_mux[] = {
1687 RIF1_D1_MARK,
1688};
1689
1690/* - DRIF2 --------------------------------------------------------------- */
1691static const unsigned int drif2_ctrl_a_pins[] = {
1692 /* CLK, SYNC */
1693 RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7),
1694};
1695
1696static const unsigned int drif2_ctrl_a_mux[] = {
1697 RIF2_CLK_A_MARK, RIF2_SYNC_A_MARK,
1698};
1699
1700static const unsigned int drif2_data0_a_pins[] = {
1701 /* D0 */
1702 RCAR_GP_PIN(2, 8),
1703};
1704
1705static const unsigned int drif2_data0_a_mux[] = {
1706 RIF2_D0_A_MARK,
1707};
1708
1709static const unsigned int drif2_data1_a_pins[] = {
1710 /* D1 */
1711 RCAR_GP_PIN(2, 9),
1712};
1713
1714static const unsigned int drif2_data1_a_mux[] = {
1715 RIF2_D1_A_MARK,
1716};
1717
1718static const unsigned int drif2_ctrl_b_pins[] = {
1719 /* CLK, SYNC */
1720 RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5),
1721};
1722
1723static const unsigned int drif2_ctrl_b_mux[] = {
1724 RIF2_CLK_B_MARK, RIF2_SYNC_B_MARK,
1725};
1726
1727static const unsigned int drif2_data0_b_pins[] = {
1728 /* D0 */
1729 RCAR_GP_PIN(1, 6),
1730};
1731
1732static const unsigned int drif2_data0_b_mux[] = {
1733 RIF2_D0_B_MARK,
1734};
1735
1736static const unsigned int drif2_data1_b_pins[] = {
1737 /* D1 */
1738 RCAR_GP_PIN(1, 7),
1739};
1740
1741static const unsigned int drif2_data1_b_mux[] = {
1742 RIF2_D1_B_MARK,
1743};
1744
1745/* - DRIF3 --------------------------------------------------------------- */
1746static const unsigned int drif3_ctrl_a_pins[] = {
1747 /* CLK, SYNC */
1748 RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11),
1749};
1750
1751static const unsigned int drif3_ctrl_a_mux[] = {
1752 RIF3_CLK_A_MARK, RIF3_SYNC_A_MARK,
1753};
1754
1755static const unsigned int drif3_data0_a_pins[] = {
1756 /* D0 */
1757 RCAR_GP_PIN(2, 12),
1758};
1759
1760static const unsigned int drif3_data0_a_mux[] = {
1761 RIF3_D0_A_MARK,
1762};
1763
1764static const unsigned int drif3_data1_a_pins[] = {
1765 /* D1 */
1766 RCAR_GP_PIN(2, 13),
1767};
1768
1769static const unsigned int drif3_data1_a_mux[] = {
1770 RIF3_D1_A_MARK,
1771};
1772
1773static const unsigned int drif3_ctrl_b_pins[] = {
1774 /* CLK, SYNC */
1775 RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 9),
1776};
1777
1778static const unsigned int drif3_ctrl_b_mux[] = {
1779 RIF3_CLK_B_MARK, RIF3_SYNC_B_MARK,
1780};
1781
1782static const unsigned int drif3_data0_b_pins[] = {
1783 /* D0 */
1784 RCAR_GP_PIN(0, 10),
1785};
1786
1787static const unsigned int drif3_data0_b_mux[] = {
1788 RIF3_D0_B_MARK,
1789};
1790
1791static const unsigned int drif3_data1_b_pins[] = {
1792 /* D1 */
1793 RCAR_GP_PIN(0, 11),
1794};
1795
1796static const unsigned int drif3_data1_b_mux[] = {
1797 RIF3_D1_B_MARK,
1798};
Lad Prabhakar14c9b042021-03-15 22:24:03 +00001799#endif /* CONFIG_PINCTRL_PFC_R8A77990 */
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001800
1801/* - DU --------------------------------------------------------------------- */
1802static const unsigned int du_rgb666_pins[] = {
1803 /* R[7:2], G[7:2], B[7:2] */
1804 RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 5),
1805 RCAR_GP_PIN(0, 3), RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 0),
1806 RCAR_GP_PIN(1, 9), RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 10),
1807 RCAR_GP_PIN(1, 4), RCAR_GP_PIN(0, 15), RCAR_GP_PIN(0, 11),
1808 RCAR_GP_PIN(0, 1), RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 16),
1809 RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 13),
1810};
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001811static const unsigned int du_rgb666_mux[] = {
1812 DU_DR7_MARK, DU_DR6_MARK, DU_DR5_MARK, DU_DR4_MARK,
1813 DU_DR3_MARK, DU_DR2_MARK,
1814 DU_DG7_MARK, DU_DG6_MARK, DU_DG5_MARK, DU_DG4_MARK,
1815 DU_DG3_MARK, DU_DG2_MARK,
1816 DU_DB7_MARK, DU_DB6_MARK, DU_DB5_MARK, DU_DB4_MARK,
1817 DU_DB3_MARK, DU_DB2_MARK,
1818};
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001819static const unsigned int du_rgb888_pins[] = {
1820 /* R[7:0], G[7:0], B[7:0] */
1821 RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 5),
1822 RCAR_GP_PIN(0, 3), RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 0),
1823 RCAR_GP_PIN(1, 22), RCAR_GP_PIN(1, 21),
1824 RCAR_GP_PIN(1, 9), RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 10),
1825 RCAR_GP_PIN(1, 4), RCAR_GP_PIN(0, 15), RCAR_GP_PIN(0, 11),
1826 RCAR_GP_PIN(0, 10), RCAR_GP_PIN(0, 9),
1827 RCAR_GP_PIN(0, 1), RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 16),
1828 RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 13),
Marek Vasut88e81ec2019-03-04 22:39:51 +01001829 RCAR_GP_PIN(1, 19), RCAR_GP_PIN(1, 18),
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001830};
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001831static const unsigned int du_rgb888_mux[] = {
1832 DU_DR7_MARK, DU_DR6_MARK, DU_DR5_MARK, DU_DR4_MARK,
1833 DU_DR3_MARK, DU_DR2_MARK, DU_DR1_MARK, DU_DR0_MARK,
1834 DU_DG7_MARK, DU_DG6_MARK, DU_DG5_MARK, DU_DG4_MARK,
1835 DU_DG3_MARK, DU_DG2_MARK, DU_DG1_MARK, DU_DG0_MARK,
1836 DU_DB7_MARK, DU_DB6_MARK, DU_DB5_MARK, DU_DB4_MARK,
1837 DU_DB3_MARK, DU_DB2_MARK, DU_DB1_MARK, DU_DB0_MARK,
1838};
Marek Vasut88e81ec2019-03-04 22:39:51 +01001839static const unsigned int du_clk_in_0_pins[] = {
1840 /* CLKIN0 */
1841 RCAR_GP_PIN(0, 16),
1842};
1843static const unsigned int du_clk_in_0_mux[] = {
1844 DU_DOTCLKIN0_MARK
1845};
1846static const unsigned int du_clk_in_1_pins[] = {
1847 /* CLKIN1 */
1848 RCAR_GP_PIN(1, 1),
1849};
1850static const unsigned int du_clk_in_1_mux[] = {
1851 DU_DOTCLKIN1_MARK
1852};
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001853static const unsigned int du_clk_out_0_pins[] = {
1854 /* CLKOUT */
1855 RCAR_GP_PIN(1, 3),
1856};
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001857static const unsigned int du_clk_out_0_mux[] = {
1858 DU_DOTCLKOUT0_MARK
1859};
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001860static const unsigned int du_sync_pins[] = {
1861 /* VSYNC, HSYNC */
1862 RCAR_GP_PIN(1, 11), RCAR_GP_PIN(1, 8),
1863};
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001864static const unsigned int du_sync_mux[] = {
1865 DU_VSYNC_MARK, DU_HSYNC_MARK
1866};
Marek Vasut88e81ec2019-03-04 22:39:51 +01001867static const unsigned int du_disp_cde_pins[] = {
1868 /* DISP_CDE */
1869 RCAR_GP_PIN(1, 1),
1870};
1871static const unsigned int du_disp_cde_mux[] = {
1872 DU_DISP_CDE_MARK,
1873};
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001874static const unsigned int du_cde_pins[] = {
1875 /* CDE */
1876 RCAR_GP_PIN(1, 0),
1877};
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001878static const unsigned int du_cde_mux[] = {
1879 DU_CDE_MARK,
1880};
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001881static const unsigned int du_disp_pins[] = {
1882 /* DISP */
1883 RCAR_GP_PIN(1, 2),
1884};
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001885static const unsigned int du_disp_mux[] = {
1886 DU_DISP_MARK,
1887};
1888
Marek Vasuteb13e0f2018-06-10 16:05:48 +02001889/* - HSCIF0 --------------------------------------------------*/
1890static const unsigned int hscif0_data_a_pins[] = {
1891 /* RX, TX */
1892 RCAR_GP_PIN(5, 8), RCAR_GP_PIN(5, 9),
1893};
1894
1895static const unsigned int hscif0_data_a_mux[] = {
1896 HRX0_A_MARK, HTX0_A_MARK,
1897};
1898
1899static const unsigned int hscif0_clk_a_pins[] = {
1900 /* SCK */
1901 RCAR_GP_PIN(5, 7),
1902};
1903
1904static const unsigned int hscif0_clk_a_mux[] = {
1905 HSCK0_A_MARK,
1906};
1907
1908static const unsigned int hscif0_ctrl_a_pins[] = {
1909 /* RTS, CTS */
1910 RCAR_GP_PIN(5, 15), RCAR_GP_PIN(5, 14),
1911};
1912
1913static const unsigned int hscif0_ctrl_a_mux[] = {
1914 HRTS0_N_A_MARK, HCTS0_N_A_MARK,
1915};
1916
1917static const unsigned int hscif0_data_b_pins[] = {
1918 /* RX, TX */
1919 RCAR_GP_PIN(6, 11), RCAR_GP_PIN(6, 12),
1920};
1921
1922static const unsigned int hscif0_data_b_mux[] = {
1923 HRX0_B_MARK, HTX0_B_MARK,
1924};
1925
1926static const unsigned int hscif0_clk_b_pins[] = {
1927 /* SCK */
1928 RCAR_GP_PIN(6, 13),
1929};
1930
1931static const unsigned int hscif0_clk_b_mux[] = {
1932 HSCK0_B_MARK,
1933};
1934
1935/* - HSCIF1 ------------------------------------------------- */
1936static const unsigned int hscif1_data_a_pins[] = {
1937 /* RX, TX */
1938 RCAR_GP_PIN(5, 1), RCAR_GP_PIN(5, 2),
1939};
1940
1941static const unsigned int hscif1_data_a_mux[] = {
1942 HRX1_A_MARK, HTX1_A_MARK,
1943};
1944
1945static const unsigned int hscif1_clk_a_pins[] = {
1946 /* SCK */
1947 RCAR_GP_PIN(5, 0),
1948};
1949
1950static const unsigned int hscif1_clk_a_mux[] = {
1951 HSCK1_A_MARK,
1952};
1953
1954static const unsigned int hscif1_data_b_pins[] = {
1955 /* RX, TX */
1956 RCAR_GP_PIN(3, 1), RCAR_GP_PIN(3, 2),
1957};
1958
1959static const unsigned int hscif1_data_b_mux[] = {
1960 HRX1_B_MARK, HTX1_B_MARK,
1961};
1962
1963static const unsigned int hscif1_clk_b_pins[] = {
1964 /* SCK */
1965 RCAR_GP_PIN(3, 0),
1966};
1967
1968static const unsigned int hscif1_clk_b_mux[] = {
1969 HSCK1_B_MARK,
1970};
1971
1972static const unsigned int hscif1_ctrl_b_pins[] = {
1973 /* RTS, CTS */
1974 RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 3),
1975};
1976
1977static const unsigned int hscif1_ctrl_b_mux[] = {
1978 HRTS1_N_B_MARK, HCTS1_N_B_MARK,
1979};
1980
1981/* - HSCIF2 ------------------------------------------------- */
1982static const unsigned int hscif2_data_a_pins[] = {
1983 /* RX, TX */
1984 RCAR_GP_PIN(5, 14), RCAR_GP_PIN(5, 15),
1985};
1986
1987static const unsigned int hscif2_data_a_mux[] = {
1988 HRX2_A_MARK, HTX2_A_MARK,
1989};
1990
1991static const unsigned int hscif2_clk_a_pins[] = {
1992 /* SCK */
1993 RCAR_GP_PIN(6, 14),
1994};
1995
1996static const unsigned int hscif2_clk_a_mux[] = {
1997 HSCK2_A_MARK,
1998};
1999
2000static const unsigned int hscif2_ctrl_a_pins[] = {
2001 /* RTS, CTS */
2002 RCAR_GP_PIN(6, 16), RCAR_GP_PIN(6, 15),
2003};
2004
2005static const unsigned int hscif2_ctrl_a_mux[] = {
2006 HRTS2_N_A_MARK, HCTS2_N_A_MARK,
2007};
2008
2009static const unsigned int hscif2_data_b_pins[] = {
2010 /* RX, TX */
2011 RCAR_GP_PIN(5, 5), RCAR_GP_PIN(5, 6),
2012};
2013
2014static const unsigned int hscif2_data_b_mux[] = {
2015 HRX2_B_MARK, HTX2_B_MARK,
2016};
2017
2018/* - HSCIF3 ------------------------------------------------*/
2019static const unsigned int hscif3_data_a_pins[] = {
2020 /* RX, TX */
2021 RCAR_GP_PIN(0, 14), RCAR_GP_PIN(0, 15),
2022};
2023
2024static const unsigned int hscif3_data_a_mux[] = {
2025 HRX3_A_MARK, HTX3_A_MARK,
2026};
2027
2028static const unsigned int hscif3_data_b_pins[] = {
2029 /* RX, TX */
2030 RCAR_GP_PIN(0, 5), RCAR_GP_PIN(0, 6),
2031};
2032
2033static const unsigned int hscif3_data_b_mux[] = {
2034 HRX3_B_MARK, HTX3_B_MARK,
2035};
2036
2037static const unsigned int hscif3_clk_b_pins[] = {
2038 /* SCK */
2039 RCAR_GP_PIN(0, 4),
2040};
2041
2042static const unsigned int hscif3_clk_b_mux[] = {
2043 HSCK3_B_MARK,
2044};
2045
2046static const unsigned int hscif3_data_c_pins[] = {
2047 /* RX, TX */
2048 RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 9),
2049};
2050
2051static const unsigned int hscif3_data_c_mux[] = {
2052 HRX3_C_MARK, HTX3_C_MARK,
2053};
2054
2055static const unsigned int hscif3_clk_c_pins[] = {
2056 /* SCK */
2057 RCAR_GP_PIN(2, 11),
2058};
2059
2060static const unsigned int hscif3_clk_c_mux[] = {
2061 HSCK3_C_MARK,
2062};
2063
2064static const unsigned int hscif3_ctrl_c_pins[] = {
2065 /* RTS, CTS */
2066 RCAR_GP_PIN(2, 13), RCAR_GP_PIN(2, 12),
2067};
2068
2069static const unsigned int hscif3_ctrl_c_mux[] = {
2070 HRTS3_N_C_MARK, HCTS3_N_C_MARK,
2071};
2072
2073static const unsigned int hscif3_data_d_pins[] = {
2074 /* RX, TX */
Marek Vasut88e81ec2019-03-04 22:39:51 +01002075 RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 3),
Marek Vasuteb13e0f2018-06-10 16:05:48 +02002076};
2077
2078static const unsigned int hscif3_data_d_mux[] = {
2079 HRX3_D_MARK, HTX3_D_MARK,
2080};
2081
2082static const unsigned int hscif3_data_e_pins[] = {
2083 /* RX, TX */
2084 RCAR_GP_PIN(0, 9), RCAR_GP_PIN(0, 10),
2085};
2086
2087static const unsigned int hscif3_data_e_mux[] = {
2088 HRX3_E_MARK, HTX3_E_MARK,
2089};
2090
2091static const unsigned int hscif3_ctrl_e_pins[] = {
2092 /* RTS, CTS */
2093 RCAR_GP_PIN(0, 11), RCAR_GP_PIN(0, 8),
2094};
2095
2096static const unsigned int hscif3_ctrl_e_mux[] = {
2097 HRTS3_N_E_MARK, HCTS3_N_E_MARK,
2098};
2099
2100/* - HSCIF4 -------------------------------------------------- */
2101static const unsigned int hscif4_data_a_pins[] = {
2102 /* RX, TX */
2103 RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 3),
2104};
2105
2106static const unsigned int hscif4_data_a_mux[] = {
2107 HRX4_A_MARK, HTX4_A_MARK,
2108};
2109
2110static const unsigned int hscif4_clk_a_pins[] = {
2111 /* SCK */
2112 RCAR_GP_PIN(2, 0),
2113};
2114
2115static const unsigned int hscif4_clk_a_mux[] = {
2116 HSCK4_A_MARK,
2117};
2118
2119static const unsigned int hscif4_ctrl_a_pins[] = {
2120 /* RTS, CTS */
2121 RCAR_GP_PIN(2, 2), RCAR_GP_PIN(2, 1),
2122};
2123
2124static const unsigned int hscif4_ctrl_a_mux[] = {
2125 HRTS4_N_A_MARK, HCTS4_N_A_MARK,
2126};
2127
2128static const unsigned int hscif4_data_b_pins[] = {
2129 /* RX, TX */
2130 RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 7),
2131};
2132
2133static const unsigned int hscif4_data_b_mux[] = {
2134 HRX4_B_MARK, HTX4_B_MARK,
2135};
2136
2137static const unsigned int hscif4_clk_b_pins[] = {
Marek Vasut88e81ec2019-03-04 22:39:51 +01002138 /* SCK */
Marek Vasuteb13e0f2018-06-10 16:05:48 +02002139 RCAR_GP_PIN(2, 6),
2140};
2141
2142static const unsigned int hscif4_clk_b_mux[] = {
2143 HSCK4_B_MARK,
2144};
2145
2146static const unsigned int hscif4_data_c_pins[] = {
2147 /* RX, TX */
2148 RCAR_GP_PIN(1, 8), RCAR_GP_PIN(1, 11),
2149};
2150
2151static const unsigned int hscif4_data_c_mux[] = {
2152 HRX4_C_MARK, HTX4_C_MARK,
2153};
2154
2155static const unsigned int hscif4_data_d_pins[] = {
2156 /* RX, TX */
2157 RCAR_GP_PIN(1, 13), RCAR_GP_PIN(1, 14),
2158};
2159
2160static const unsigned int hscif4_data_d_mux[] = {
2161 HRX4_D_MARK, HTX4_D_MARK,
2162};
2163
2164static const unsigned int hscif4_data_e_pins[] = {
2165 /* RX, TX */
2166 RCAR_GP_PIN(1, 18), RCAR_GP_PIN(1, 19),
2167};
2168
2169static const unsigned int hscif4_data_e_mux[] = {
2170 HRX4_E_MARK, HTX4_E_MARK,
2171};
2172
2173/* - I2C -------------------------------------------------------------------- */
2174static const unsigned int i2c1_a_pins[] = {
2175 /* SCL, SDA */
2176 RCAR_GP_PIN(5, 8), RCAR_GP_PIN(5, 9),
2177};
2178
2179static const unsigned int i2c1_a_mux[] = {
2180 SCL1_A_MARK, SDA1_A_MARK,
2181};
2182
2183static const unsigned int i2c1_b_pins[] = {
2184 /* SCL, SDA */
2185 RCAR_GP_PIN(5, 17), RCAR_GP_PIN(5, 18),
2186};
2187
2188static const unsigned int i2c1_b_mux[] = {
2189 SCL1_B_MARK, SDA1_B_MARK,
2190};
2191
2192static const unsigned int i2c1_c_pins[] = {
2193 /* SCL, SDA */
2194 RCAR_GP_PIN(3, 0), RCAR_GP_PIN(3, 5),
2195};
2196
2197static const unsigned int i2c1_c_mux[] = {
2198 SCL1_C_MARK, SDA1_C_MARK,
2199};
2200
2201static const unsigned int i2c1_d_pins[] = {
2202 /* SCL, SDA */
2203 RCAR_GP_PIN(6, 16), RCAR_GP_PIN(6, 15),
2204};
2205
2206static const unsigned int i2c1_d_mux[] = {
2207 SCL1_D_MARK, SDA1_D_MARK,
2208};
2209
2210static const unsigned int i2c2_a_pins[] = {
2211 /* SCL, SDA */
2212 RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 0),
2213};
2214
2215static const unsigned int i2c2_a_mux[] = {
2216 SCL2_A_MARK, SDA2_A_MARK,
2217};
2218
2219static const unsigned int i2c2_b_pins[] = {
2220 /* SCL, SDA */
2221 RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 13),
2222};
2223
2224static const unsigned int i2c2_b_mux[] = {
2225 SCL2_B_MARK, SDA2_B_MARK,
2226};
2227
2228static const unsigned int i2c2_c_pins[] = {
2229 /* SCL, SDA */
2230 RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 3),
2231};
2232
2233static const unsigned int i2c2_c_mux[] = {
2234 SCL2_C_MARK, SDA2_C_MARK,
2235};
2236
2237static const unsigned int i2c2_d_pins[] = {
2238 /* SCL, SDA */
2239 RCAR_GP_PIN(6, 11), RCAR_GP_PIN(6, 12),
2240};
2241
2242static const unsigned int i2c2_d_mux[] = {
2243 SCL2_D_MARK, SDA2_D_MARK,
2244};
2245
2246static const unsigned int i2c2_e_pins[] = {
2247 /* SCL, SDA */
2248 RCAR_GP_PIN(3, 5), RCAR_GP_PIN(3, 0),
2249};
2250
2251static const unsigned int i2c2_e_mux[] = {
2252 SCL2_E_MARK, SDA2_E_MARK,
2253};
2254
2255static const unsigned int i2c4_pins[] = {
2256 /* SCL, SDA */
2257 RCAR_GP_PIN(0, 16), RCAR_GP_PIN(0, 17),
2258};
2259
2260static const unsigned int i2c4_mux[] = {
2261 SCL4_MARK, SDA4_MARK,
2262};
2263
2264static const unsigned int i2c5_pins[] = {
2265 /* SCL, SDA */
2266 RCAR_GP_PIN(1, 21), RCAR_GP_PIN(1, 22),
2267};
2268
2269static const unsigned int i2c5_mux[] = {
2270 SCL5_MARK, SDA5_MARK,
2271};
2272
2273static const unsigned int i2c6_a_pins[] = {
2274 /* SCL, SDA */
2275 RCAR_GP_PIN(1, 11), RCAR_GP_PIN(1, 8),
2276};
2277
2278static const unsigned int i2c6_a_mux[] = {
2279 SCL6_A_MARK, SDA6_A_MARK,
2280};
2281
2282static const unsigned int i2c6_b_pins[] = {
2283 /* SCL, SDA */
2284 RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 1),
2285};
2286
2287static const unsigned int i2c6_b_mux[] = {
2288 SCL6_B_MARK, SDA6_B_MARK,
2289};
2290
2291static const unsigned int i2c7_a_pins[] = {
2292 /* SCL, SDA */
2293 RCAR_GP_PIN(2, 24), RCAR_GP_PIN(2, 25),
2294};
2295
2296static const unsigned int i2c7_a_mux[] = {
2297 SCL7_A_MARK, SDA7_A_MARK,
2298};
2299
2300static const unsigned int i2c7_b_pins[] = {
2301 /* SCL, SDA */
2302 RCAR_GP_PIN(0, 13), RCAR_GP_PIN(0, 14),
2303};
2304
2305static const unsigned int i2c7_b_mux[] = {
2306 SCL7_B_MARK, SDA7_B_MARK,
2307};
2308
2309/* - INTC-EX ---------------------------------------------------------------- */
2310static const unsigned int intc_ex_irq0_pins[] = {
2311 /* IRQ0 */
2312 RCAR_GP_PIN(1, 0),
2313};
Marek Vasuteb13e0f2018-06-10 16:05:48 +02002314static const unsigned int intc_ex_irq0_mux[] = {
2315 IRQ0_MARK,
2316};
Marek Vasut88e81ec2019-03-04 22:39:51 +01002317static const unsigned int intc_ex_irq1_pins[] = {
2318 /* IRQ1 */
2319 RCAR_GP_PIN(1, 1),
2320};
2321static const unsigned int intc_ex_irq1_mux[] = {
2322 IRQ1_MARK,
2323};
2324static const unsigned int intc_ex_irq2_pins[] = {
2325 /* IRQ2 */
2326 RCAR_GP_PIN(1, 2),
2327};
2328static const unsigned int intc_ex_irq2_mux[] = {
2329 IRQ2_MARK,
2330};
2331static const unsigned int intc_ex_irq3_pins[] = {
2332 /* IRQ3 */
2333 RCAR_GP_PIN(1, 9),
2334};
2335static const unsigned int intc_ex_irq3_mux[] = {
2336 IRQ3_MARK,
2337};
2338static const unsigned int intc_ex_irq4_pins[] = {
2339 /* IRQ4 */
2340 RCAR_GP_PIN(1, 10),
2341};
2342static const unsigned int intc_ex_irq4_mux[] = {
2343 IRQ4_MARK,
2344};
2345static const unsigned int intc_ex_irq5_pins[] = {
2346 /* IRQ5 */
2347 RCAR_GP_PIN(0, 7),
2348};
2349static const unsigned int intc_ex_irq5_mux[] = {
2350 IRQ5_MARK,
2351};
Marek Vasuteb13e0f2018-06-10 16:05:48 +02002352
2353/* - MSIOF0 ----------------------------------------------------------------- */
2354static const unsigned int msiof0_clk_pins[] = {
2355 /* SCK */
2356 RCAR_GP_PIN(5, 10),
2357};
2358
2359static const unsigned int msiof0_clk_mux[] = {
2360 MSIOF0_SCK_MARK,
2361};
2362
2363static const unsigned int msiof0_sync_pins[] = {
2364 /* SYNC */
2365 RCAR_GP_PIN(5, 13),
2366};
2367
2368static const unsigned int msiof0_sync_mux[] = {
2369 MSIOF0_SYNC_MARK,
2370};
2371
2372static const unsigned int msiof0_ss1_pins[] = {
2373 /* SS1 */
2374 RCAR_GP_PIN(5, 14),
2375};
2376
2377static const unsigned int msiof0_ss1_mux[] = {
2378 MSIOF0_SS1_MARK,
2379};
2380
2381static const unsigned int msiof0_ss2_pins[] = {
2382 /* SS2 */
2383 RCAR_GP_PIN(5, 15),
2384};
2385
2386static const unsigned int msiof0_ss2_mux[] = {
2387 MSIOF0_SS2_MARK,
2388};
2389
2390static const unsigned int msiof0_txd_pins[] = {
2391 /* TXD */
2392 RCAR_GP_PIN(5, 12),
2393};
2394
2395static const unsigned int msiof0_txd_mux[] = {
2396 MSIOF0_TXD_MARK,
2397};
2398
2399static const unsigned int msiof0_rxd_pins[] = {
2400 /* RXD */
2401 RCAR_GP_PIN(5, 11),
2402};
2403
2404static const unsigned int msiof0_rxd_mux[] = {
2405 MSIOF0_RXD_MARK,
2406};
2407
2408/* - MSIOF1 ----------------------------------------------------------------- */
2409static const unsigned int msiof1_clk_pins[] = {
2410 /* SCK */
2411 RCAR_GP_PIN(1, 19),
2412};
2413
2414static const unsigned int msiof1_clk_mux[] = {
2415 MSIOF1_SCK_MARK,
2416};
2417
2418static const unsigned int msiof1_sync_pins[] = {
2419 /* SYNC */
2420 RCAR_GP_PIN(1, 16),
2421};
2422
2423static const unsigned int msiof1_sync_mux[] = {
2424 MSIOF1_SYNC_MARK,
2425};
2426
2427static const unsigned int msiof1_ss1_pins[] = {
2428 /* SS1 */
2429 RCAR_GP_PIN(1, 14),
2430};
2431
2432static const unsigned int msiof1_ss1_mux[] = {
2433 MSIOF1_SS1_MARK,
2434};
2435
2436static const unsigned int msiof1_ss2_pins[] = {
2437 /* SS2 */
2438 RCAR_GP_PIN(1, 15),
2439};
2440
2441static const unsigned int msiof1_ss2_mux[] = {
2442 MSIOF1_SS2_MARK,
2443};
2444
2445static const unsigned int msiof1_txd_pins[] = {
2446 /* TXD */
2447 RCAR_GP_PIN(1, 18),
2448};
2449
2450static const unsigned int msiof1_txd_mux[] = {
2451 MSIOF1_TXD_MARK,
2452};
2453
2454static const unsigned int msiof1_rxd_pins[] = {
2455 /* RXD */
2456 RCAR_GP_PIN(1, 17),
2457};
2458
2459static const unsigned int msiof1_rxd_mux[] = {
2460 MSIOF1_RXD_MARK,
2461};
2462
2463/* - MSIOF2 ----------------------------------------------------------------- */
2464static const unsigned int msiof2_clk_a_pins[] = {
2465 /* SCK */
2466 RCAR_GP_PIN(0, 8),
2467};
2468
2469static const unsigned int msiof2_clk_a_mux[] = {
2470 MSIOF2_SCK_A_MARK,
2471};
2472
2473static const unsigned int msiof2_sync_a_pins[] = {
2474 /* SYNC */
2475 RCAR_GP_PIN(0, 9),
2476};
2477
2478static const unsigned int msiof2_sync_a_mux[] = {
2479 MSIOF2_SYNC_A_MARK,
2480};
2481
2482static const unsigned int msiof2_ss1_a_pins[] = {
2483 /* SS1 */
2484 RCAR_GP_PIN(0, 15),
2485};
2486
2487static const unsigned int msiof2_ss1_a_mux[] = {
2488 MSIOF2_SS1_A_MARK,
2489};
2490
2491static const unsigned int msiof2_ss2_a_pins[] = {
2492 /* SS2 */
2493 RCAR_GP_PIN(0, 14),
2494};
2495
2496static const unsigned int msiof2_ss2_a_mux[] = {
2497 MSIOF2_SS2_A_MARK,
2498};
2499
2500static const unsigned int msiof2_txd_a_pins[] = {
2501 /* TXD */
2502 RCAR_GP_PIN(0, 11),
2503};
2504
2505static const unsigned int msiof2_txd_a_mux[] = {
2506 MSIOF2_TXD_A_MARK,
2507};
2508
2509static const unsigned int msiof2_rxd_a_pins[] = {
2510 /* RXD */
2511 RCAR_GP_PIN(0, 10),
2512};
2513
2514static const unsigned int msiof2_rxd_a_mux[] = {
2515 MSIOF2_RXD_A_MARK,
2516};
2517
2518static const unsigned int msiof2_clk_b_pins[] = {
2519 /* SCK */
2520 RCAR_GP_PIN(1, 13),
2521};
2522
2523static const unsigned int msiof2_clk_b_mux[] = {
2524 MSIOF2_SCK_B_MARK,
2525};
2526
2527static const unsigned int msiof2_sync_b_pins[] = {
2528 /* SYNC */
2529 RCAR_GP_PIN(1, 10),
2530};
2531
2532static const unsigned int msiof2_sync_b_mux[] = {
2533 MSIOF2_SYNC_B_MARK,
2534};
2535
2536static const unsigned int msiof2_ss1_b_pins[] = {
2537 /* SS1 */
2538 RCAR_GP_PIN(1, 16),
2539};
2540
2541static const unsigned int msiof2_ss1_b_mux[] = {
2542 MSIOF2_SS1_B_MARK,
2543};
2544
2545static const unsigned int msiof2_ss2_b_pins[] = {
2546 /* SS2 */
2547 RCAR_GP_PIN(1, 12),
2548};
2549
2550static const unsigned int msiof2_ss2_b_mux[] = {
2551 MSIOF2_SS2_B_MARK,
2552};
2553
2554static const unsigned int msiof2_txd_b_pins[] = {
2555 /* TXD */
2556 RCAR_GP_PIN(1, 15),
2557};
2558
2559static const unsigned int msiof2_txd_b_mux[] = {
2560 MSIOF2_TXD_B_MARK,
2561};
2562
2563static const unsigned int msiof2_rxd_b_pins[] = {
2564 /* RXD */
2565 RCAR_GP_PIN(1, 14),
2566};
2567
2568static const unsigned int msiof2_rxd_b_mux[] = {
2569 MSIOF2_RXD_B_MARK,
2570};
2571
2572/* - MSIOF3 ----------------------------------------------------------------- */
2573static const unsigned int msiof3_clk_a_pins[] = {
2574 /* SCK */
2575 RCAR_GP_PIN(0, 0),
2576};
2577
2578static const unsigned int msiof3_clk_a_mux[] = {
2579 MSIOF3_SCK_A_MARK,
2580};
2581
2582static const unsigned int msiof3_sync_a_pins[] = {
2583 /* SYNC */
2584 RCAR_GP_PIN(0, 1),
2585};
2586
2587static const unsigned int msiof3_sync_a_mux[] = {
2588 MSIOF3_SYNC_A_MARK,
2589};
2590
2591static const unsigned int msiof3_ss1_a_pins[] = {
2592 /* SS1 */
2593 RCAR_GP_PIN(0, 15),
2594};
2595
2596static const unsigned int msiof3_ss1_a_mux[] = {
2597 MSIOF3_SS1_A_MARK,
2598};
2599
2600static const unsigned int msiof3_ss2_a_pins[] = {
2601 /* SS2 */
2602 RCAR_GP_PIN(0, 4),
2603};
2604
2605static const unsigned int msiof3_ss2_a_mux[] = {
2606 MSIOF3_SS2_A_MARK,
2607};
2608
2609static const unsigned int msiof3_txd_a_pins[] = {
2610 /* TXD */
2611 RCAR_GP_PIN(0, 3),
2612};
2613
2614static const unsigned int msiof3_txd_a_mux[] = {
2615 MSIOF3_TXD_A_MARK,
2616};
2617
2618static const unsigned int msiof3_rxd_a_pins[] = {
2619 /* RXD */
2620 RCAR_GP_PIN(0, 2),
2621};
2622
2623static const unsigned int msiof3_rxd_a_mux[] = {
2624 MSIOF3_RXD_A_MARK,
2625};
2626
2627static const unsigned int msiof3_clk_b_pins[] = {
2628 /* SCK */
2629 RCAR_GP_PIN(1, 5),
2630};
2631
2632static const unsigned int msiof3_clk_b_mux[] = {
2633 MSIOF3_SCK_B_MARK,
2634};
2635
2636static const unsigned int msiof3_sync_b_pins[] = {
2637 /* SYNC */
2638 RCAR_GP_PIN(1, 4),
2639};
2640
2641static const unsigned int msiof3_sync_b_mux[] = {
2642 MSIOF3_SYNC_B_MARK,
2643};
2644
2645static const unsigned int msiof3_ss1_b_pins[] = {
2646 /* SS1 */
2647 RCAR_GP_PIN(1, 0),
2648};
2649
2650static const unsigned int msiof3_ss1_b_mux[] = {
2651 MSIOF3_SS1_B_MARK,
2652};
2653
2654static const unsigned int msiof3_txd_b_pins[] = {
2655 /* TXD */
2656 RCAR_GP_PIN(1, 7),
2657};
2658
2659static const unsigned int msiof3_txd_b_mux[] = {
2660 MSIOF3_TXD_B_MARK,
2661};
2662
2663static const unsigned int msiof3_rxd_b_pins[] = {
2664 /* RXD */
2665 RCAR_GP_PIN(1, 6),
2666};
2667
2668static const unsigned int msiof3_rxd_b_mux[] = {
2669 MSIOF3_RXD_B_MARK,
2670};
2671
2672/* - PWM0 --------------------------------------------------------------------*/
2673static const unsigned int pwm0_a_pins[] = {
2674 /* PWM */
2675 RCAR_GP_PIN(2, 22),
2676};
2677
2678static const unsigned int pwm0_a_mux[] = {
2679 PWM0_A_MARK,
2680};
2681
2682static const unsigned int pwm0_b_pins[] = {
2683 /* PWM */
2684 RCAR_GP_PIN(6, 3),
2685};
2686
2687static const unsigned int pwm0_b_mux[] = {
2688 PWM0_B_MARK,
2689};
2690
2691/* - PWM1 --------------------------------------------------------------------*/
2692static const unsigned int pwm1_a_pins[] = {
2693 /* PWM */
2694 RCAR_GP_PIN(2, 23),
2695};
2696
2697static const unsigned int pwm1_a_mux[] = {
2698 PWM1_A_MARK,
2699};
2700
2701static const unsigned int pwm1_b_pins[] = {
2702 /* PWM */
2703 RCAR_GP_PIN(6, 4),
2704};
2705
2706static const unsigned int pwm1_b_mux[] = {
2707 PWM1_B_MARK,
2708};
2709
2710/* - PWM2 --------------------------------------------------------------------*/
2711static const unsigned int pwm2_a_pins[] = {
2712 /* PWM */
2713 RCAR_GP_PIN(1, 0),
2714};
2715
2716static const unsigned int pwm2_a_mux[] = {
2717 PWM2_A_MARK,
2718};
2719
2720static const unsigned int pwm2_b_pins[] = {
2721 /* PWM */
2722 RCAR_GP_PIN(1, 4),
2723};
2724
2725static const unsigned int pwm2_b_mux[] = {
2726 PWM2_B_MARK,
2727};
2728
2729static const unsigned int pwm2_c_pins[] = {
2730 /* PWM */
2731 RCAR_GP_PIN(6, 5),
2732};
2733
2734static const unsigned int pwm2_c_mux[] = {
2735 PWM2_C_MARK,
2736};
2737
2738/* - PWM3 --------------------------------------------------------------------*/
2739static const unsigned int pwm3_a_pins[] = {
2740 /* PWM */
2741 RCAR_GP_PIN(1, 1),
2742};
2743
2744static const unsigned int pwm3_a_mux[] = {
2745 PWM3_A_MARK,
2746};
2747
2748static const unsigned int pwm3_b_pins[] = {
2749 /* PWM */
2750 RCAR_GP_PIN(1, 5),
2751};
2752
2753static const unsigned int pwm3_b_mux[] = {
2754 PWM3_B_MARK,
2755};
2756
2757static const unsigned int pwm3_c_pins[] = {
2758 /* PWM */
2759 RCAR_GP_PIN(6, 6),
2760};
2761
2762static const unsigned int pwm3_c_mux[] = {
2763 PWM3_C_MARK,
2764};
2765
2766/* - PWM4 --------------------------------------------------------------------*/
2767static const unsigned int pwm4_a_pins[] = {
2768 /* PWM */
2769 RCAR_GP_PIN(1, 3),
2770};
2771
2772static const unsigned int pwm4_a_mux[] = {
2773 PWM4_A_MARK,
2774};
2775
2776static const unsigned int pwm4_b_pins[] = {
2777 /* PWM */
2778 RCAR_GP_PIN(6, 7),
2779};
2780
2781static const unsigned int pwm4_b_mux[] = {
2782 PWM4_B_MARK,
2783};
2784
2785/* - PWM5 --------------------------------------------------------------------*/
2786static const unsigned int pwm5_a_pins[] = {
2787 /* PWM */
2788 RCAR_GP_PIN(2, 24),
2789};
2790
2791static const unsigned int pwm5_a_mux[] = {
2792 PWM5_A_MARK,
2793};
2794
2795static const unsigned int pwm5_b_pins[] = {
2796 /* PWM */
2797 RCAR_GP_PIN(6, 10),
2798};
2799
2800static const unsigned int pwm5_b_mux[] = {
2801 PWM5_B_MARK,
2802};
2803
2804/* - PWM6 --------------------------------------------------------------------*/
2805static const unsigned int pwm6_a_pins[] = {
2806 /* PWM */
2807 RCAR_GP_PIN(2, 25),
2808};
2809
2810static const unsigned int pwm6_a_mux[] = {
2811 PWM6_A_MARK,
2812};
2813
2814static const unsigned int pwm6_b_pins[] = {
2815 /* PWM */
2816 RCAR_GP_PIN(6, 11),
2817};
2818
2819static const unsigned int pwm6_b_mux[] = {
2820 PWM6_B_MARK,
2821};
2822
Lad Prabhakar14c9b042021-03-15 22:24:03 +00002823/* - QSPI0 ------------------------------------------------------------------ */
2824static const unsigned int qspi0_ctrl_pins[] = {
2825 /* QSPI0_SPCLK, QSPI0_SSL */
2826 RCAR_GP_PIN(2, 0), RCAR_GP_PIN(2, 5),
2827};
2828static const unsigned int qspi0_ctrl_mux[] = {
2829 QSPI0_SPCLK_MARK, QSPI0_SSL_MARK,
2830};
2831static const unsigned int qspi0_data2_pins[] = {
2832 /* QSPI0_MOSI_IO0, QSPI0_MISO_IO1 */
2833 RCAR_GP_PIN(2, 1), RCAR_GP_PIN(2, 2),
2834};
2835static const unsigned int qspi0_data2_mux[] = {
2836 QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK,
2837};
2838static const unsigned int qspi0_data4_pins[] = {
2839 /* QSPI0_MOSI_IO0, QSPI0_MISO_IO1 */
2840 RCAR_GP_PIN(2, 1), RCAR_GP_PIN(2, 2),
2841 /* QSPI0_IO2, QSPI0_IO3 */
2842 RCAR_GP_PIN(2, 3), RCAR_GP_PIN(2, 4),
2843};
2844static const unsigned int qspi0_data4_mux[] = {
2845 QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK,
2846 QSPI0_IO2_MARK, QSPI0_IO3_MARK,
2847};
2848/* - QSPI1 ------------------------------------------------------------------ */
2849static const unsigned int qspi1_ctrl_pins[] = {
2850 /* QSPI1_SPCLK, QSPI1_SSL */
2851 RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 11),
2852};
2853static const unsigned int qspi1_ctrl_mux[] = {
2854 QSPI1_SPCLK_MARK, QSPI1_SSL_MARK,
2855};
2856static const unsigned int qspi1_data2_pins[] = {
2857 /* QSPI1_MOSI_IO0, QSPI1_MISO_IO1 */
2858 RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 8),
2859};
2860static const unsigned int qspi1_data2_mux[] = {
2861 QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK,
2862};
2863static const unsigned int qspi1_data4_pins[] = {
2864 /* QSPI1_MOSI_IO0, QSPI1_MISO_IO1 */
2865 RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 8),
2866 /* QSPI1_IO2, QSPI1_IO3 */
2867 RCAR_GP_PIN(2, 9), RCAR_GP_PIN(2, 10),
2868};
2869static const unsigned int qspi1_data4_mux[] = {
2870 QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK,
2871 QSPI1_IO2_MARK, QSPI1_IO3_MARK,
2872};
2873
Marek Vasuteb13e0f2018-06-10 16:05:48 +02002874/* - SCIF0 ------------------------------------------------------------------ */
2875static const unsigned int scif0_data_a_pins[] = {
2876 /* RX, TX */
2877 RCAR_GP_PIN(5, 1), RCAR_GP_PIN(5, 2),
2878};
2879
2880static const unsigned int scif0_data_a_mux[] = {
2881 RX0_A_MARK, TX0_A_MARK,
2882};
2883
2884static const unsigned int scif0_clk_a_pins[] = {
2885 /* SCK */
2886 RCAR_GP_PIN(5, 0),
2887};
2888
2889static const unsigned int scif0_clk_a_mux[] = {
2890 SCK0_A_MARK,
2891};
2892
2893static const unsigned int scif0_ctrl_a_pins[] = {
2894 /* RTS, CTS */
2895 RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 3),
2896};
2897
2898static const unsigned int scif0_ctrl_a_mux[] = {
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02002899 RTS0_N_A_MARK, CTS0_N_A_MARK,
Marek Vasuteb13e0f2018-06-10 16:05:48 +02002900};
2901
2902static const unsigned int scif0_data_b_pins[] = {
2903 /* RX, TX */
2904 RCAR_GP_PIN(5, 17), RCAR_GP_PIN(5, 19),
2905};
2906
2907static const unsigned int scif0_data_b_mux[] = {
2908 RX0_B_MARK, TX0_B_MARK,
2909};
2910
2911static const unsigned int scif0_clk_b_pins[] = {
2912 /* SCK */
2913 RCAR_GP_PIN(5, 18),
2914};
2915
2916static const unsigned int scif0_clk_b_mux[] = {
2917 SCK0_B_MARK,
2918};
2919
2920/* - SCIF1 ------------------------------------------------------------------ */
2921static const unsigned int scif1_data_pins[] = {
2922 /* RX, TX */
2923 RCAR_GP_PIN(5, 5), RCAR_GP_PIN(5, 6),
2924};
2925
2926static const unsigned int scif1_data_mux[] = {
2927 RX1_MARK, TX1_MARK,
2928};
2929
2930static const unsigned int scif1_clk_pins[] = {
2931 /* SCK */
2932 RCAR_GP_PIN(5, 16),
2933};
2934
2935static const unsigned int scif1_clk_mux[] = {
2936 SCK1_MARK,
2937};
2938
2939static const unsigned int scif1_ctrl_pins[] = {
2940 /* RTS, CTS */
2941 RCAR_GP_PIN(5, 0), RCAR_GP_PIN(5, 7),
2942};
2943
2944static const unsigned int scif1_ctrl_mux[] = {
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02002945 RTS1_N_MARK, CTS1_N_MARK,
Marek Vasuteb13e0f2018-06-10 16:05:48 +02002946};
2947
2948/* - SCIF2 ------------------------------------------------------------------ */
2949static const unsigned int scif2_data_a_pins[] = {
2950 /* RX, TX */
2951 RCAR_GP_PIN(5, 9), RCAR_GP_PIN(5, 8),
2952};
2953
2954static const unsigned int scif2_data_a_mux[] = {
2955 RX2_A_MARK, TX2_A_MARK,
2956};
2957
2958static const unsigned int scif2_clk_a_pins[] = {
2959 /* SCK */
2960 RCAR_GP_PIN(5, 7),
2961};
2962
2963static const unsigned int scif2_clk_a_mux[] = {
2964 SCK2_A_MARK,
2965};
2966
2967static const unsigned int scif2_data_b_pins[] = {
2968 /* RX, TX */
2969 RCAR_GP_PIN(5, 12), RCAR_GP_PIN(5, 11),
2970};
2971
2972static const unsigned int scif2_data_b_mux[] = {
2973 RX2_B_MARK, TX2_B_MARK,
2974};
2975
2976/* - SCIF3 ------------------------------------------------------------------ */
2977static const unsigned int scif3_data_a_pins[] = {
2978 /* RX, TX */
2979 RCAR_GP_PIN(0, 5), RCAR_GP_PIN(0, 6),
2980};
2981
2982static const unsigned int scif3_data_a_mux[] = {
2983 RX3_A_MARK, TX3_A_MARK,
2984};
2985
2986static const unsigned int scif3_clk_a_pins[] = {
2987 /* SCK */
2988 RCAR_GP_PIN(0, 1),
2989};
2990
2991static const unsigned int scif3_clk_a_mux[] = {
2992 SCK3_A_MARK,
2993};
2994
2995static const unsigned int scif3_ctrl_a_pins[] = {
2996 /* RTS, CTS */
2997 RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 7),
2998};
2999
3000static const unsigned int scif3_ctrl_a_mux[] = {
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02003001 RTS3_N_A_MARK, CTS3_N_A_MARK,
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003002};
3003
3004static const unsigned int scif3_data_b_pins[] = {
3005 /* RX, TX */
3006 RCAR_GP_PIN(1, 8), RCAR_GP_PIN(1, 11),
3007};
3008
3009static const unsigned int scif3_data_b_mux[] = {
3010 RX3_B_MARK, TX3_B_MARK,
3011};
3012
3013static const unsigned int scif3_data_c_pins[] = {
3014 /* RX, TX */
3015 RCAR_GP_PIN(2, 23), RCAR_GP_PIN(2, 22),
3016};
3017
3018static const unsigned int scif3_data_c_mux[] = {
3019 RX3_C_MARK, TX3_C_MARK,
3020};
3021
3022static const unsigned int scif3_clk_c_pins[] = {
3023 /* SCK */
3024 RCAR_GP_PIN(2, 24),
3025};
3026
3027static const unsigned int scif3_clk_c_mux[] = {
3028 SCK3_C_MARK,
3029};
3030
3031/* - SCIF4 ------------------------------------------------------------------ */
3032static const unsigned int scif4_data_a_pins[] = {
3033 /* RX, TX */
3034 RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7),
3035};
3036
3037static const unsigned int scif4_data_a_mux[] = {
3038 RX4_A_MARK, TX4_A_MARK,
3039};
3040
3041static const unsigned int scif4_clk_a_pins[] = {
3042 /* SCK */
3043 RCAR_GP_PIN(1, 5),
3044};
3045
3046static const unsigned int scif4_clk_a_mux[] = {
3047 SCK4_A_MARK,
3048};
3049
3050static const unsigned int scif4_ctrl_a_pins[] = {
3051 /* RTS, CTS */
3052 RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 3),
3053};
3054
3055static const unsigned int scif4_ctrl_a_mux[] = {
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02003056 RTS4_N_A_MARK, CTS4_N_A_MARK,
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003057};
3058
3059static const unsigned int scif4_data_b_pins[] = {
3060 /* RX, TX */
3061 RCAR_GP_PIN(0, 13), RCAR_GP_PIN(0, 12),
3062};
3063
3064static const unsigned int scif4_data_b_mux[] = {
3065 RX4_B_MARK, TX4_B_MARK,
3066};
3067
3068static const unsigned int scif4_clk_b_pins[] = {
3069 /* SCK */
3070 RCAR_GP_PIN(0, 8),
3071};
3072
3073static const unsigned int scif4_clk_b_mux[] = {
3074 SCK4_B_MARK,
3075};
3076
3077static const unsigned int scif4_data_c_pins[] = {
3078 /* RX, TX */
3079 RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3),
3080};
3081
3082static const unsigned int scif4_data_c_mux[] = {
3083 RX4_C_MARK, TX4_C_MARK,
3084};
3085
3086static const unsigned int scif4_ctrl_c_pins[] = {
3087 /* RTS, CTS */
3088 RCAR_GP_PIN(0, 1), RCAR_GP_PIN(0, 0),
3089};
3090
3091static const unsigned int scif4_ctrl_c_mux[] = {
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02003092 RTS4_N_C_MARK, CTS4_N_C_MARK,
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003093};
3094
3095/* - SCIF5 ------------------------------------------------------------------ */
3096static const unsigned int scif5_data_a_pins[] = {
3097 /* RX, TX */
3098 RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 9),
3099};
3100
3101static const unsigned int scif5_data_a_mux[] = {
3102 RX5_A_MARK, TX5_A_MARK,
3103};
3104
3105static const unsigned int scif5_clk_a_pins[] = {
3106 /* SCK */
3107 RCAR_GP_PIN(1, 13),
3108};
3109
3110static const unsigned int scif5_clk_a_mux[] = {
3111 SCK5_A_MARK,
3112};
3113
3114static const unsigned int scif5_data_b_pins[] = {
3115 /* RX, TX */
3116 RCAR_GP_PIN(2, 25), RCAR_GP_PIN(2, 24),
3117};
3118
3119static const unsigned int scif5_data_b_mux[] = {
3120 RX5_B_MARK, TX5_B_MARK,
3121};
3122
3123static const unsigned int scif5_data_c_pins[] = {
3124 /* RX, TX */
3125 RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3),
3126};
3127
3128static const unsigned int scif5_data_c_mux[] = {
3129 RX5_C_MARK, TX5_C_MARK,
3130};
3131
3132/* - SCIF Clock ------------------------------------------------------------- */
3133static const unsigned int scif_clk_a_pins[] = {
3134 /* SCIF_CLK */
3135 RCAR_GP_PIN(5, 3),
3136};
3137
3138static const unsigned int scif_clk_a_mux[] = {
3139 SCIF_CLK_A_MARK,
3140};
3141
3142static const unsigned int scif_clk_b_pins[] = {
3143 /* SCIF_CLK */
3144 RCAR_GP_PIN(5, 7),
3145};
3146
3147static const unsigned int scif_clk_b_mux[] = {
3148 SCIF_CLK_B_MARK,
3149};
3150
3151/* - SDHI0 ------------------------------------------------------------------ */
3152static const unsigned int sdhi0_data1_pins[] = {
3153 /* D0 */
3154 RCAR_GP_PIN(3, 2),
3155};
3156
3157static const unsigned int sdhi0_data1_mux[] = {
3158 SD0_DAT0_MARK,
3159};
3160
3161static const unsigned int sdhi0_data4_pins[] = {
3162 /* D[0:3] */
3163 RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3),
3164 RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5),
3165};
3166
3167static const unsigned int sdhi0_data4_mux[] = {
3168 SD0_DAT0_MARK, SD0_DAT1_MARK,
3169 SD0_DAT2_MARK, SD0_DAT3_MARK,
3170};
3171
3172static const unsigned int sdhi0_ctrl_pins[] = {
3173 /* CLK, CMD */
3174 RCAR_GP_PIN(3, 0), RCAR_GP_PIN(3, 1),
3175};
3176
3177static const unsigned int sdhi0_ctrl_mux[] = {
3178 SD0_CLK_MARK, SD0_CMD_MARK,
3179};
3180
3181static const unsigned int sdhi0_cd_pins[] = {
3182 /* CD */
3183 RCAR_GP_PIN(3, 12),
3184};
3185
3186static const unsigned int sdhi0_cd_mux[] = {
3187 SD0_CD_MARK,
3188};
3189
3190static const unsigned int sdhi0_wp_pins[] = {
3191 /* WP */
3192 RCAR_GP_PIN(3, 13),
3193};
3194
3195static const unsigned int sdhi0_wp_mux[] = {
3196 SD0_WP_MARK,
3197};
3198
3199/* - SDHI1 ------------------------------------------------------------------ */
3200static const unsigned int sdhi1_data1_pins[] = {
3201 /* D0 */
3202 RCAR_GP_PIN(3, 8),
3203};
3204
3205static const unsigned int sdhi1_data1_mux[] = {
3206 SD1_DAT0_MARK,
3207};
3208
3209static const unsigned int sdhi1_data4_pins[] = {
3210 /* D[0:3] */
3211 RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9),
3212 RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11),
3213};
3214
3215static const unsigned int sdhi1_data4_mux[] = {
3216 SD1_DAT0_MARK, SD1_DAT1_MARK,
3217 SD1_DAT2_MARK, SD1_DAT3_MARK,
3218};
3219
3220static const unsigned int sdhi1_ctrl_pins[] = {
3221 /* CLK, CMD */
3222 RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7),
3223};
3224
3225static const unsigned int sdhi1_ctrl_mux[] = {
3226 SD1_CLK_MARK, SD1_CMD_MARK,
3227};
3228
3229static const unsigned int sdhi1_cd_pins[] = {
3230 /* CD */
3231 RCAR_GP_PIN(3, 14),
3232};
3233
3234static const unsigned int sdhi1_cd_mux[] = {
3235 SD1_CD_MARK,
3236};
3237
3238static const unsigned int sdhi1_wp_pins[] = {
3239 /* WP */
3240 RCAR_GP_PIN(3, 15),
3241};
3242
3243static const unsigned int sdhi1_wp_mux[] = {
3244 SD1_WP_MARK,
3245};
3246
3247/* - SDHI3 ------------------------------------------------------------------ */
3248static const unsigned int sdhi3_data1_pins[] = {
3249 /* D0 */
3250 RCAR_GP_PIN(4, 2),
3251};
3252
3253static const unsigned int sdhi3_data1_mux[] = {
3254 SD3_DAT0_MARK,
3255};
3256
3257static const unsigned int sdhi3_data4_pins[] = {
3258 /* D[0:3] */
3259 RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3),
3260 RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5),
3261};
3262
3263static const unsigned int sdhi3_data4_mux[] = {
3264 SD3_DAT0_MARK, SD3_DAT1_MARK,
3265 SD3_DAT2_MARK, SD3_DAT3_MARK,
3266};
3267
3268static const unsigned int sdhi3_data8_pins[] = {
3269 /* D[0:7] */
3270 RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3),
3271 RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5),
3272 RCAR_GP_PIN(4, 6), RCAR_GP_PIN(4, 7),
3273 RCAR_GP_PIN(4, 8), RCAR_GP_PIN(4, 9),
3274};
3275
3276static const unsigned int sdhi3_data8_mux[] = {
3277 SD3_DAT0_MARK, SD3_DAT1_MARK,
3278 SD3_DAT2_MARK, SD3_DAT3_MARK,
3279 SD3_DAT4_MARK, SD3_DAT5_MARK,
3280 SD3_DAT6_MARK, SD3_DAT7_MARK,
3281};
3282
3283static const unsigned int sdhi3_ctrl_pins[] = {
3284 /* CLK, CMD */
3285 RCAR_GP_PIN(4, 0), RCAR_GP_PIN(4, 1),
3286};
3287
3288static const unsigned int sdhi3_ctrl_mux[] = {
3289 SD3_CLK_MARK, SD3_CMD_MARK,
3290};
3291
3292static const unsigned int sdhi3_cd_pins[] = {
3293 /* CD */
3294 RCAR_GP_PIN(3, 12),
3295};
3296
3297static const unsigned int sdhi3_cd_mux[] = {
3298 SD3_CD_MARK,
3299};
3300
3301static const unsigned int sdhi3_wp_pins[] = {
3302 /* WP */
3303 RCAR_GP_PIN(3, 13),
3304};
3305
3306static const unsigned int sdhi3_wp_mux[] = {
3307 SD3_WP_MARK,
3308};
3309
3310static const unsigned int sdhi3_ds_pins[] = {
3311 /* DS */
3312 RCAR_GP_PIN(4, 10),
3313};
3314
3315static const unsigned int sdhi3_ds_mux[] = {
3316 SD3_DS_MARK,
3317};
3318
3319/* - SSI -------------------------------------------------------------------- */
3320static const unsigned int ssi0_data_pins[] = {
3321 /* SDATA */
3322 RCAR_GP_PIN(6, 2),
3323};
3324
3325static const unsigned int ssi0_data_mux[] = {
3326 SSI_SDATA0_MARK,
3327};
3328
3329static const unsigned int ssi01239_ctrl_pins[] = {
3330 /* SCK, WS */
3331 RCAR_GP_PIN(6, 0), RCAR_GP_PIN(6, 1),
3332};
3333
3334static const unsigned int ssi01239_ctrl_mux[] = {
3335 SSI_SCK01239_MARK, SSI_WS01239_MARK,
3336};
3337
3338static const unsigned int ssi1_data_pins[] = {
3339 /* SDATA */
3340 RCAR_GP_PIN(6, 3),
3341};
3342
3343static const unsigned int ssi1_data_mux[] = {
3344 SSI_SDATA1_MARK,
3345};
3346
3347static const unsigned int ssi1_ctrl_pins[] = {
3348 /* SCK, WS */
3349 RCAR_GP_PIN(3, 14), RCAR_GP_PIN(3, 15),
3350};
3351
3352static const unsigned int ssi1_ctrl_mux[] = {
3353 SSI_SCK1_MARK, SSI_WS1_MARK,
3354};
3355
3356static const unsigned int ssi2_data_pins[] = {
3357 /* SDATA */
3358 RCAR_GP_PIN(6, 4),
3359};
3360
3361static const unsigned int ssi2_data_mux[] = {
3362 SSI_SDATA2_MARK,
3363};
3364
3365static const unsigned int ssi2_ctrl_a_pins[] = {
3366 /* SCK, WS */
3367 RCAR_GP_PIN(5, 1), RCAR_GP_PIN(5, 2),
3368};
3369
3370static const unsigned int ssi2_ctrl_a_mux[] = {
3371 SSI_SCK2_A_MARK, SSI_WS2_A_MARK,
3372};
3373
3374static const unsigned int ssi2_ctrl_b_pins[] = {
3375 /* SCK, WS */
3376 RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 13),
3377};
3378
3379static const unsigned int ssi2_ctrl_b_mux[] = {
3380 SSI_SCK2_B_MARK, SSI_WS2_B_MARK,
3381};
3382
3383static const unsigned int ssi3_data_pins[] = {
3384 /* SDATA */
3385 RCAR_GP_PIN(6, 7),
3386};
3387
3388static const unsigned int ssi3_data_mux[] = {
3389 SSI_SDATA3_MARK,
3390};
3391
3392static const unsigned int ssi349_ctrl_pins[] = {
3393 /* SCK, WS */
3394 RCAR_GP_PIN(6, 5), RCAR_GP_PIN(6, 6),
3395};
3396
3397static const unsigned int ssi349_ctrl_mux[] = {
3398 SSI_SCK349_MARK, SSI_WS349_MARK,
3399};
3400
3401static const unsigned int ssi4_data_pins[] = {
3402 /* SDATA */
3403 RCAR_GP_PIN(6, 10),
3404};
3405
3406static const unsigned int ssi4_data_mux[] = {
3407 SSI_SDATA4_MARK,
3408};
3409
3410static const unsigned int ssi4_ctrl_pins[] = {
3411 /* SCK, WS */
3412 RCAR_GP_PIN(5, 14), RCAR_GP_PIN(5, 15),
3413};
3414
3415static const unsigned int ssi4_ctrl_mux[] = {
3416 SSI_SCK4_MARK, SSI_WS4_MARK,
3417};
3418
3419static const unsigned int ssi5_data_pins[] = {
3420 /* SDATA */
3421 RCAR_GP_PIN(6, 13),
3422};
3423
3424static const unsigned int ssi5_data_mux[] = {
3425 SSI_SDATA5_MARK,
3426};
3427
3428static const unsigned int ssi5_ctrl_pins[] = {
3429 /* SCK, WS */
3430 RCAR_GP_PIN(6, 11), RCAR_GP_PIN(6, 12),
3431};
3432
3433static const unsigned int ssi5_ctrl_mux[] = {
3434 SSI_SCK5_MARK, SSI_WS5_MARK,
3435};
3436
3437static const unsigned int ssi6_data_pins[] = {
3438 /* SDATA */
3439 RCAR_GP_PIN(6, 16),
3440};
3441
3442static const unsigned int ssi6_data_mux[] = {
3443 SSI_SDATA6_MARK,
3444};
3445
3446static const unsigned int ssi6_ctrl_pins[] = {
3447 /* SCK, WS */
3448 RCAR_GP_PIN(6, 14), RCAR_GP_PIN(6, 15),
3449};
3450
3451static const unsigned int ssi6_ctrl_mux[] = {
3452 SSI_SCK6_MARK, SSI_WS6_MARK,
3453};
3454
3455static const unsigned int ssi7_data_pins[] = {
3456 /* SDATA */
3457 RCAR_GP_PIN(5, 12),
3458};
3459
3460static const unsigned int ssi7_data_mux[] = {
3461 SSI_SDATA7_MARK,
3462};
3463
3464static const unsigned int ssi78_ctrl_pins[] = {
3465 /* SCK, WS */
3466 RCAR_GP_PIN(5, 10), RCAR_GP_PIN(5, 11),
3467};
3468
3469static const unsigned int ssi78_ctrl_mux[] = {
3470 SSI_SCK78_MARK, SSI_WS78_MARK,
3471};
3472
3473static const unsigned int ssi8_data_pins[] = {
3474 /* SDATA */
3475 RCAR_GP_PIN(5, 13),
3476};
3477
3478static const unsigned int ssi8_data_mux[] = {
3479 SSI_SDATA8_MARK,
3480};
3481
3482static const unsigned int ssi9_data_pins[] = {
3483 /* SDATA */
3484 RCAR_GP_PIN(5, 16),
3485};
3486
3487static const unsigned int ssi9_data_mux[] = {
3488 SSI_SDATA9_MARK,
3489};
3490
3491static const unsigned int ssi9_ctrl_a_pins[] = {
3492 /* SCK, WS */
3493 RCAR_GP_PIN(6, 4), RCAR_GP_PIN(6, 10),
3494};
3495
3496static const unsigned int ssi9_ctrl_a_mux[] = {
3497 SSI_SCK9_A_MARK, SSI_WS9_A_MARK,
3498};
3499
3500static const unsigned int ssi9_ctrl_b_pins[] = {
3501 /* SCK, WS */
3502 RCAR_GP_PIN(5, 5), RCAR_GP_PIN(5, 6),
3503};
3504
3505static const unsigned int ssi9_ctrl_b_mux[] = {
3506 SSI_SCK9_B_MARK, SSI_WS9_B_MARK,
3507};
3508
3509/* - TMU -------------------------------------------------------------------- */
3510static const unsigned int tmu_tclk1_a_pins[] = {
3511 /* TCLK */
3512 RCAR_GP_PIN(3, 12),
3513};
3514
3515static const unsigned int tmu_tclk1_a_mux[] = {
3516 TCLK1_A_MARK,
3517};
3518
3519static const unsigned int tmu_tclk1_b_pins[] = {
3520 /* TCLK */
3521 RCAR_GP_PIN(5, 17),
3522};
3523
3524static const unsigned int tmu_tclk1_b_mux[] = {
3525 TCLK1_B_MARK,
3526};
3527
3528static const unsigned int tmu_tclk2_a_pins[] = {
3529 /* TCLK */
3530 RCAR_GP_PIN(3, 13),
3531};
3532
3533static const unsigned int tmu_tclk2_a_mux[] = {
3534 TCLK2_A_MARK,
3535};
3536
3537static const unsigned int tmu_tclk2_b_pins[] = {
3538 /* TCLK */
3539 RCAR_GP_PIN(5, 18),
3540};
3541
3542static const unsigned int tmu_tclk2_b_mux[] = {
3543 TCLK2_B_MARK,
3544};
3545
3546/* - USB0 ------------------------------------------------------------------- */
3547static const unsigned int usb0_a_pins[] = {
3548 /* PWEN, OVC */
3549 RCAR_GP_PIN(6, 17), RCAR_GP_PIN(6, 9),
3550};
3551
3552static const unsigned int usb0_a_mux[] = {
3553 USB0_PWEN_A_MARK, USB0_OVC_A_MARK,
3554};
3555
3556static const unsigned int usb0_b_pins[] = {
3557 /* PWEN, OVC */
3558 RCAR_GP_PIN(6, 11), RCAR_GP_PIN(6, 12),
3559};
3560
3561static const unsigned int usb0_b_mux[] = {
3562 USB0_PWEN_B_MARK, USB0_OVC_B_MARK,
3563};
3564
3565static const unsigned int usb0_id_pins[] = {
3566 /* ID */
3567 RCAR_GP_PIN(5, 0)
3568};
3569
3570static const unsigned int usb0_id_mux[] = {
Hiroyuki Yokoyama947e20a2019-02-13 14:23:46 +09003571 USB0_ID_MARK,
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003572};
3573
3574/* - USB30 ------------------------------------------------------------------ */
3575static const unsigned int usb30_pins[] = {
3576 /* PWEN, OVC */
3577 RCAR_GP_PIN(6, 17), RCAR_GP_PIN(6, 9),
3578};
3579
3580static const unsigned int usb30_mux[] = {
3581 USB30_PWEN_MARK, USB30_OVC_MARK,
3582};
3583
3584static const unsigned int usb30_id_pins[] = {
3585 /* ID */
3586 RCAR_GP_PIN(5, 0),
3587};
3588
3589static const unsigned int usb30_id_mux[] = {
3590 USB3HS0_ID_MARK,
3591};
3592
3593/* - VIN4 ------------------------------------------------------------------- */
Marek Vasut88e81ec2019-03-04 22:39:51 +01003594static const unsigned int vin4_data18_a_pins[] = {
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003595 RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9),
3596 RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11),
3597 RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 13),
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003598 RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7),
3599 RCAR_GP_PIN(1, 3), RCAR_GP_PIN(1, 10),
3600 RCAR_GP_PIN(1, 13), RCAR_GP_PIN(1, 14),
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003601 RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 16),
3602 RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 18),
3603 RCAR_GP_PIN(1, 19), RCAR_GP_PIN(0, 1),
3604};
3605
Marek Vasut88e81ec2019-03-04 22:39:51 +01003606static const unsigned int vin4_data18_a_mux[] = {
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003607 VI4_DATA2_A_MARK, VI4_DATA3_A_MARK,
3608 VI4_DATA4_A_MARK, VI4_DATA5_A_MARK,
3609 VI4_DATA6_A_MARK, VI4_DATA7_A_MARK,
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003610 VI4_DATA10_MARK, VI4_DATA11_MARK,
3611 VI4_DATA12_MARK, VI4_DATA13_MARK,
3612 VI4_DATA14_MARK, VI4_DATA15_MARK,
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003613 VI4_DATA18_MARK, VI4_DATA19_MARK,
3614 VI4_DATA20_MARK, VI4_DATA21_MARK,
3615 VI4_DATA22_MARK, VI4_DATA23_MARK,
3616};
3617
Marek Vasut88e81ec2019-03-04 22:39:51 +01003618static const union vin_data vin4_data_a_pins = {
3619 .data24 = {
3620 RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7),
3621 RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9),
3622 RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11),
3623 RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 13),
3624 RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5),
3625 RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7),
3626 RCAR_GP_PIN(1, 3), RCAR_GP_PIN(1, 10),
3627 RCAR_GP_PIN(1, 13), RCAR_GP_PIN(1, 14),
3628 RCAR_GP_PIN(1, 9), RCAR_GP_PIN(1, 12),
3629 RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 16),
3630 RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 18),
3631 RCAR_GP_PIN(1, 19), RCAR_GP_PIN(0, 1),
3632 },
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003633};
3634
Marek Vasut88e81ec2019-03-04 22:39:51 +01003635static const union vin_data vin4_data_a_mux = {
3636 .data24 = {
3637 VI4_DATA0_A_MARK, VI4_DATA1_A_MARK,
3638 VI4_DATA2_A_MARK, VI4_DATA3_A_MARK,
3639 VI4_DATA4_A_MARK, VI4_DATA5_A_MARK,
3640 VI4_DATA6_A_MARK, VI4_DATA7_A_MARK,
3641 VI4_DATA8_MARK, VI4_DATA9_MARK,
3642 VI4_DATA10_MARK, VI4_DATA11_MARK,
3643 VI4_DATA12_MARK, VI4_DATA13_MARK,
3644 VI4_DATA14_MARK, VI4_DATA15_MARK,
3645 VI4_DATA16_MARK, VI4_DATA17_MARK,
3646 VI4_DATA18_MARK, VI4_DATA19_MARK,
3647 VI4_DATA20_MARK, VI4_DATA21_MARK,
3648 VI4_DATA22_MARK, VI4_DATA23_MARK,
3649 },
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003650};
3651
Marek Vasut88e81ec2019-03-04 22:39:51 +01003652static const unsigned int vin4_data18_b_pins[] = {
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003653 RCAR_GP_PIN(1, 21), RCAR_GP_PIN(1, 22),
3654 RCAR_GP_PIN(0, 5), RCAR_GP_PIN(0, 6),
3655 RCAR_GP_PIN(0, 16), RCAR_GP_PIN(0, 17),
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003656 RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7),
3657 RCAR_GP_PIN(1, 3), RCAR_GP_PIN(1, 10),
3658 RCAR_GP_PIN(1, 13), RCAR_GP_PIN(1, 14),
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003659 RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 16),
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003660 RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 18),
3661 RCAR_GP_PIN(1, 19), RCAR_GP_PIN(0, 1),
3662};
3663
Marek Vasut88e81ec2019-03-04 22:39:51 +01003664static const unsigned int vin4_data18_b_mux[] = {
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003665 VI4_DATA2_B_MARK, VI4_DATA3_B_MARK,
3666 VI4_DATA4_B_MARK, VI4_DATA5_B_MARK,
3667 VI4_DATA6_B_MARK, VI4_DATA7_B_MARK,
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003668 VI4_DATA10_MARK, VI4_DATA11_MARK,
3669 VI4_DATA12_MARK, VI4_DATA13_MARK,
3670 VI4_DATA14_MARK, VI4_DATA15_MARK,
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003671 VI4_DATA18_MARK, VI4_DATA19_MARK,
3672 VI4_DATA20_MARK, VI4_DATA21_MARK,
3673 VI4_DATA22_MARK, VI4_DATA23_MARK,
3674};
3675
Marek Vasut88e81ec2019-03-04 22:39:51 +01003676static const union vin_data vin4_data_b_pins = {
3677 .data24 = {
3678 RCAR_GP_PIN(1, 8), RCAR_GP_PIN(1, 11),
3679 RCAR_GP_PIN(1, 21), RCAR_GP_PIN(1, 22),
3680 RCAR_GP_PIN(0, 5), RCAR_GP_PIN(0, 6),
3681 RCAR_GP_PIN(0, 16), RCAR_GP_PIN(0, 17),
3682 RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5),
3683 RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7),
3684 RCAR_GP_PIN(1, 3), RCAR_GP_PIN(1, 10),
3685 RCAR_GP_PIN(1, 13), RCAR_GP_PIN(1, 14),
3686 RCAR_GP_PIN(1, 9), RCAR_GP_PIN(1, 12),
3687 RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 16),
3688 RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 18),
3689 RCAR_GP_PIN(1, 19), RCAR_GP_PIN(0, 1),
3690 },
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003691};
3692
Marek Vasut88e81ec2019-03-04 22:39:51 +01003693static const union vin_data vin4_data_b_mux = {
3694 .data24 = {
3695 VI4_DATA0_B_MARK, VI4_DATA1_B_MARK,
3696 VI4_DATA2_B_MARK, VI4_DATA3_B_MARK,
3697 VI4_DATA4_B_MARK, VI4_DATA5_B_MARK,
3698 VI4_DATA6_B_MARK, VI4_DATA7_B_MARK,
3699 VI4_DATA8_MARK, VI4_DATA9_MARK,
3700 VI4_DATA10_MARK, VI4_DATA11_MARK,
3701 VI4_DATA12_MARK, VI4_DATA13_MARK,
3702 VI4_DATA14_MARK, VI4_DATA15_MARK,
3703 VI4_DATA16_MARK, VI4_DATA17_MARK,
3704 VI4_DATA18_MARK, VI4_DATA19_MARK,
3705 VI4_DATA20_MARK, VI4_DATA21_MARK,
3706 VI4_DATA22_MARK, VI4_DATA23_MARK,
3707 },
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003708};
3709
3710static const unsigned int vin4_sync_pins[] = {
3711 /* HSYNC, VSYNC */
3712 RCAR_GP_PIN(2, 25), RCAR_GP_PIN(2, 24),
3713};
3714
3715static const unsigned int vin4_sync_mux[] = {
3716 VI4_HSYNC_N_MARK, VI4_VSYNC_N_MARK,
3717};
3718
3719static const unsigned int vin4_field_pins[] = {
3720 RCAR_GP_PIN(2, 23),
3721};
3722
3723static const unsigned int vin4_field_mux[] = {
3724 VI4_FIELD_MARK,
3725};
3726
3727static const unsigned int vin4_clkenb_pins[] = {
3728 RCAR_GP_PIN(1, 2),
3729};
3730
3731static const unsigned int vin4_clkenb_mux[] = {
3732 VI4_CLKENB_MARK,
3733};
3734
3735static const unsigned int vin4_clk_pins[] = {
3736 RCAR_GP_PIN(2, 22),
3737};
3738
3739static const unsigned int vin4_clk_mux[] = {
3740 VI4_CLK_MARK,
3741};
3742
3743/* - VIN5 ------------------------------------------------------------------- */
Marek Vasut88e81ec2019-03-04 22:39:51 +01003744static const union vin_data16 vin5_data_a_pins = {
3745 .data16 = {
3746 RCAR_GP_PIN(1, 1), RCAR_GP_PIN(1, 2),
3747 RCAR_GP_PIN(1, 19), RCAR_GP_PIN(1, 12),
3748 RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 16),
3749 RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 18),
3750 RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13),
3751 RCAR_GP_PIN(0, 9), RCAR_GP_PIN(0, 11),
3752 RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 10),
3753 RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3),
3754 },
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003755};
3756
Marek Vasut88e81ec2019-03-04 22:39:51 +01003757static const union vin_data16 vin5_data_a_mux = {
3758 .data16 = {
3759 VI5_DATA0_A_MARK, VI5_DATA1_A_MARK,
3760 VI5_DATA2_A_MARK, VI5_DATA3_A_MARK,
3761 VI5_DATA4_A_MARK, VI5_DATA5_A_MARK,
3762 VI5_DATA6_A_MARK, VI5_DATA7_A_MARK,
3763 VI5_DATA8_A_MARK, VI5_DATA9_A_MARK,
3764 VI5_DATA10_A_MARK, VI5_DATA11_A_MARK,
3765 VI5_DATA12_A_MARK, VI5_DATA13_A_MARK,
3766 VI5_DATA14_A_MARK, VI5_DATA15_A_MARK,
3767 },
Marek Vasuteb13e0f2018-06-10 16:05:48 +02003768};
3769
3770static const unsigned int vin5_data8_b_pins[] = {
3771 RCAR_GP_PIN(2, 23), RCAR_GP_PIN(0, 4),
3772 RCAR_GP_PIN(0, 7), RCAR_GP_PIN(0, 12),
3773 RCAR_GP_PIN(0, 13), RCAR_GP_PIN(0, 14),
3774 RCAR_GP_PIN(0, 16), RCAR_GP_PIN(0, 17),
3775};
3776
3777static const unsigned int vin5_data8_b_mux[] = {
3778 VI5_DATA0_B_MARK, VI5_DATA1_B_MARK,
3779 VI5_DATA2_B_MARK, VI5_DATA3_B_MARK,
3780 VI5_DATA4_B_MARK, VI5_DATA5_B_MARK,
3781 VI5_DATA6_B_MARK, VI5_DATA7_B_MARK,
3782};
3783
3784static const unsigned int vin5_sync_a_pins[] = {
3785 /* HSYNC_N, VSYNC_N */
3786 RCAR_GP_PIN(1, 8), RCAR_GP_PIN(1, 9),
3787};
3788
3789static const unsigned int vin5_sync_a_mux[] = {
3790 VI5_HSYNC_N_A_MARK, VI5_VSYNC_N_A_MARK,
3791};
3792
3793static const unsigned int vin5_field_a_pins[] = {
3794 RCAR_GP_PIN(1, 10),
3795};
3796
3797static const unsigned int vin5_field_a_mux[] = {
3798 VI5_FIELD_A_MARK,
3799};
3800
3801static const unsigned int vin5_clkenb_a_pins[] = {
3802 RCAR_GP_PIN(0, 1),
3803};
3804
3805static const unsigned int vin5_clkenb_a_mux[] = {
3806 VI5_CLKENB_A_MARK,
3807};
3808
3809static const unsigned int vin5_clk_a_pins[] = {
3810 RCAR_GP_PIN(1, 0),
3811};
3812
3813static const unsigned int vin5_clk_a_mux[] = {
3814 VI5_CLK_A_MARK,
3815};
3816
3817static const unsigned int vin5_clk_b_pins[] = {
3818 RCAR_GP_PIN(2, 22),
3819};
3820
3821static const unsigned int vin5_clk_b_mux[] = {
3822 VI5_CLK_B_MARK,
3823};
3824
Marek Vasut88e81ec2019-03-04 22:39:51 +01003825static const struct {
Lad Prabhakar14c9b042021-03-15 22:24:03 +00003826 struct sh_pfc_pin_group common[253];
3827#ifdef CONFIG_PINCTRL_PFC_R8A77990
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02003828 struct sh_pfc_pin_group automotive[21];
Lad Prabhakar14c9b042021-03-15 22:24:03 +00003829#endif
Marek Vasut88e81ec2019-03-04 22:39:51 +01003830} pinmux_groups = {
3831 .common = {
3832 SH_PFC_PIN_GROUP(audio_clk_a),
3833 SH_PFC_PIN_GROUP(audio_clk_b_a),
3834 SH_PFC_PIN_GROUP(audio_clk_b_b),
3835 SH_PFC_PIN_GROUP(audio_clk_b_c),
3836 SH_PFC_PIN_GROUP(audio_clk_c_a),
3837 SH_PFC_PIN_GROUP(audio_clk_c_b),
3838 SH_PFC_PIN_GROUP(audio_clk_c_c),
3839 SH_PFC_PIN_GROUP(audio_clkout_a),
3840 SH_PFC_PIN_GROUP(audio_clkout_b),
3841 SH_PFC_PIN_GROUP(audio_clkout1_a),
3842 SH_PFC_PIN_GROUP(audio_clkout1_b),
3843 SH_PFC_PIN_GROUP(audio_clkout1_c),
3844 SH_PFC_PIN_GROUP(audio_clkout2_a),
3845 SH_PFC_PIN_GROUP(audio_clkout2_b),
3846 SH_PFC_PIN_GROUP(audio_clkout2_c),
3847 SH_PFC_PIN_GROUP(audio_clkout3_a),
3848 SH_PFC_PIN_GROUP(audio_clkout3_b),
3849 SH_PFC_PIN_GROUP(audio_clkout3_c),
3850 SH_PFC_PIN_GROUP(avb_link),
3851 SH_PFC_PIN_GROUP(avb_magic),
3852 SH_PFC_PIN_GROUP(avb_phy_int),
3853 SH_PFC_PIN_GROUP(avb_mii),
3854 SH_PFC_PIN_GROUP(avb_avtp_pps),
Lad Prabhakare4db7392020-10-14 16:45:59 +01003855 SH_PFC_PIN_GROUP(avb_avtp_match),
3856 SH_PFC_PIN_GROUP(avb_avtp_capture),
Marek Vasut88e81ec2019-03-04 22:39:51 +01003857 SH_PFC_PIN_GROUP(can0_data),
3858 SH_PFC_PIN_GROUP(can1_data),
3859 SH_PFC_PIN_GROUP(can_clk),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02003860 SH_PFC_PIN_GROUP(canfd0_data),
3861 SH_PFC_PIN_GROUP(canfd1_data),
Marek Vasut88e81ec2019-03-04 22:39:51 +01003862 SH_PFC_PIN_GROUP(du_rgb666),
3863 SH_PFC_PIN_GROUP(du_rgb888),
3864 SH_PFC_PIN_GROUP(du_clk_in_0),
3865 SH_PFC_PIN_GROUP(du_clk_in_1),
3866 SH_PFC_PIN_GROUP(du_clk_out_0),
3867 SH_PFC_PIN_GROUP(du_sync),
3868 SH_PFC_PIN_GROUP(du_disp_cde),
3869 SH_PFC_PIN_GROUP(du_cde),
3870 SH_PFC_PIN_GROUP(du_disp),
3871 SH_PFC_PIN_GROUP(hscif0_data_a),
3872 SH_PFC_PIN_GROUP(hscif0_clk_a),
3873 SH_PFC_PIN_GROUP(hscif0_ctrl_a),
3874 SH_PFC_PIN_GROUP(hscif0_data_b),
3875 SH_PFC_PIN_GROUP(hscif0_clk_b),
3876 SH_PFC_PIN_GROUP(hscif1_data_a),
3877 SH_PFC_PIN_GROUP(hscif1_clk_a),
3878 SH_PFC_PIN_GROUP(hscif1_data_b),
3879 SH_PFC_PIN_GROUP(hscif1_clk_b),
3880 SH_PFC_PIN_GROUP(hscif1_ctrl_b),
3881 SH_PFC_PIN_GROUP(hscif2_data_a),
3882 SH_PFC_PIN_GROUP(hscif2_clk_a),
3883 SH_PFC_PIN_GROUP(hscif2_ctrl_a),
3884 SH_PFC_PIN_GROUP(hscif2_data_b),
3885 SH_PFC_PIN_GROUP(hscif3_data_a),
3886 SH_PFC_PIN_GROUP(hscif3_data_b),
3887 SH_PFC_PIN_GROUP(hscif3_clk_b),
3888 SH_PFC_PIN_GROUP(hscif3_data_c),
3889 SH_PFC_PIN_GROUP(hscif3_clk_c),
3890 SH_PFC_PIN_GROUP(hscif3_ctrl_c),
3891 SH_PFC_PIN_GROUP(hscif3_data_d),
3892 SH_PFC_PIN_GROUP(hscif3_data_e),
3893 SH_PFC_PIN_GROUP(hscif3_ctrl_e),
3894 SH_PFC_PIN_GROUP(hscif4_data_a),
3895 SH_PFC_PIN_GROUP(hscif4_clk_a),
3896 SH_PFC_PIN_GROUP(hscif4_ctrl_a),
3897 SH_PFC_PIN_GROUP(hscif4_data_b),
3898 SH_PFC_PIN_GROUP(hscif4_clk_b),
3899 SH_PFC_PIN_GROUP(hscif4_data_c),
3900 SH_PFC_PIN_GROUP(hscif4_data_d),
3901 SH_PFC_PIN_GROUP(hscif4_data_e),
3902 SH_PFC_PIN_GROUP(i2c1_a),
3903 SH_PFC_PIN_GROUP(i2c1_b),
3904 SH_PFC_PIN_GROUP(i2c1_c),
3905 SH_PFC_PIN_GROUP(i2c1_d),
3906 SH_PFC_PIN_GROUP(i2c2_a),
3907 SH_PFC_PIN_GROUP(i2c2_b),
3908 SH_PFC_PIN_GROUP(i2c2_c),
3909 SH_PFC_PIN_GROUP(i2c2_d),
3910 SH_PFC_PIN_GROUP(i2c2_e),
3911 SH_PFC_PIN_GROUP(i2c4),
3912 SH_PFC_PIN_GROUP(i2c5),
3913 SH_PFC_PIN_GROUP(i2c6_a),
3914 SH_PFC_PIN_GROUP(i2c6_b),
3915 SH_PFC_PIN_GROUP(i2c7_a),
3916 SH_PFC_PIN_GROUP(i2c7_b),
3917 SH_PFC_PIN_GROUP(intc_ex_irq0),
3918 SH_PFC_PIN_GROUP(intc_ex_irq1),
3919 SH_PFC_PIN_GROUP(intc_ex_irq2),
3920 SH_PFC_PIN_GROUP(intc_ex_irq3),
3921 SH_PFC_PIN_GROUP(intc_ex_irq4),
3922 SH_PFC_PIN_GROUP(intc_ex_irq5),
3923 SH_PFC_PIN_GROUP(msiof0_clk),
3924 SH_PFC_PIN_GROUP(msiof0_sync),
3925 SH_PFC_PIN_GROUP(msiof0_ss1),
3926 SH_PFC_PIN_GROUP(msiof0_ss2),
3927 SH_PFC_PIN_GROUP(msiof0_txd),
3928 SH_PFC_PIN_GROUP(msiof0_rxd),
3929 SH_PFC_PIN_GROUP(msiof1_clk),
3930 SH_PFC_PIN_GROUP(msiof1_sync),
3931 SH_PFC_PIN_GROUP(msiof1_ss1),
3932 SH_PFC_PIN_GROUP(msiof1_ss2),
3933 SH_PFC_PIN_GROUP(msiof1_txd),
3934 SH_PFC_PIN_GROUP(msiof1_rxd),
3935 SH_PFC_PIN_GROUP(msiof2_clk_a),
3936 SH_PFC_PIN_GROUP(msiof2_sync_a),
3937 SH_PFC_PIN_GROUP(msiof2_ss1_a),
3938 SH_PFC_PIN_GROUP(msiof2_ss2_a),
3939 SH_PFC_PIN_GROUP(msiof2_txd_a),
3940 SH_PFC_PIN_GROUP(msiof2_rxd_a),
3941 SH_PFC_PIN_GROUP(msiof2_clk_b),
3942 SH_PFC_PIN_GROUP(msiof2_sync_b),
3943 SH_PFC_PIN_GROUP(msiof2_ss1_b),
3944 SH_PFC_PIN_GROUP(msiof2_ss2_b),
3945 SH_PFC_PIN_GROUP(msiof2_txd_b),
3946 SH_PFC_PIN_GROUP(msiof2_rxd_b),
3947 SH_PFC_PIN_GROUP(msiof3_clk_a),
3948 SH_PFC_PIN_GROUP(msiof3_sync_a),
3949 SH_PFC_PIN_GROUP(msiof3_ss1_a),
3950 SH_PFC_PIN_GROUP(msiof3_ss2_a),
3951 SH_PFC_PIN_GROUP(msiof3_txd_a),
3952 SH_PFC_PIN_GROUP(msiof3_rxd_a),
3953 SH_PFC_PIN_GROUP(msiof3_clk_b),
3954 SH_PFC_PIN_GROUP(msiof3_sync_b),
3955 SH_PFC_PIN_GROUP(msiof3_ss1_b),
3956 SH_PFC_PIN_GROUP(msiof3_txd_b),
3957 SH_PFC_PIN_GROUP(msiof3_rxd_b),
3958 SH_PFC_PIN_GROUP(pwm0_a),
3959 SH_PFC_PIN_GROUP(pwm0_b),
3960 SH_PFC_PIN_GROUP(pwm1_a),
3961 SH_PFC_PIN_GROUP(pwm1_b),
3962 SH_PFC_PIN_GROUP(pwm2_a),
3963 SH_PFC_PIN_GROUP(pwm2_b),
3964 SH_PFC_PIN_GROUP(pwm2_c),
3965 SH_PFC_PIN_GROUP(pwm3_a),
3966 SH_PFC_PIN_GROUP(pwm3_b),
3967 SH_PFC_PIN_GROUP(pwm3_c),
3968 SH_PFC_PIN_GROUP(pwm4_a),
3969 SH_PFC_PIN_GROUP(pwm4_b),
3970 SH_PFC_PIN_GROUP(pwm5_a),
3971 SH_PFC_PIN_GROUP(pwm5_b),
3972 SH_PFC_PIN_GROUP(pwm6_a),
3973 SH_PFC_PIN_GROUP(pwm6_b),
Lad Prabhakar14c9b042021-03-15 22:24:03 +00003974 SH_PFC_PIN_GROUP(qspi0_ctrl),
3975 SH_PFC_PIN_GROUP(qspi0_data2),
3976 SH_PFC_PIN_GROUP(qspi0_data4),
3977 SH_PFC_PIN_GROUP(qspi1_ctrl),
3978 SH_PFC_PIN_GROUP(qspi1_data2),
3979 SH_PFC_PIN_GROUP(qspi1_data4),
Marek Vasut88e81ec2019-03-04 22:39:51 +01003980 SH_PFC_PIN_GROUP(scif0_data_a),
3981 SH_PFC_PIN_GROUP(scif0_clk_a),
3982 SH_PFC_PIN_GROUP(scif0_ctrl_a),
3983 SH_PFC_PIN_GROUP(scif0_data_b),
3984 SH_PFC_PIN_GROUP(scif0_clk_b),
3985 SH_PFC_PIN_GROUP(scif1_data),
3986 SH_PFC_PIN_GROUP(scif1_clk),
3987 SH_PFC_PIN_GROUP(scif1_ctrl),
3988 SH_PFC_PIN_GROUP(scif2_data_a),
3989 SH_PFC_PIN_GROUP(scif2_clk_a),
3990 SH_PFC_PIN_GROUP(scif2_data_b),
3991 SH_PFC_PIN_GROUP(scif3_data_a),
3992 SH_PFC_PIN_GROUP(scif3_clk_a),
3993 SH_PFC_PIN_GROUP(scif3_ctrl_a),
3994 SH_PFC_PIN_GROUP(scif3_data_b),
3995 SH_PFC_PIN_GROUP(scif3_data_c),
3996 SH_PFC_PIN_GROUP(scif3_clk_c),
3997 SH_PFC_PIN_GROUP(scif4_data_a),
3998 SH_PFC_PIN_GROUP(scif4_clk_a),
3999 SH_PFC_PIN_GROUP(scif4_ctrl_a),
4000 SH_PFC_PIN_GROUP(scif4_data_b),
4001 SH_PFC_PIN_GROUP(scif4_clk_b),
4002 SH_PFC_PIN_GROUP(scif4_data_c),
4003 SH_PFC_PIN_GROUP(scif4_ctrl_c),
4004 SH_PFC_PIN_GROUP(scif5_data_a),
4005 SH_PFC_PIN_GROUP(scif5_clk_a),
4006 SH_PFC_PIN_GROUP(scif5_data_b),
4007 SH_PFC_PIN_GROUP(scif5_data_c),
4008 SH_PFC_PIN_GROUP(scif_clk_a),
4009 SH_PFC_PIN_GROUP(scif_clk_b),
4010 SH_PFC_PIN_GROUP(sdhi0_data1),
4011 SH_PFC_PIN_GROUP(sdhi0_data4),
4012 SH_PFC_PIN_GROUP(sdhi0_ctrl),
4013 SH_PFC_PIN_GROUP(sdhi0_cd),
4014 SH_PFC_PIN_GROUP(sdhi0_wp),
4015 SH_PFC_PIN_GROUP(sdhi1_data1),
4016 SH_PFC_PIN_GROUP(sdhi1_data4),
4017 SH_PFC_PIN_GROUP(sdhi1_ctrl),
4018 SH_PFC_PIN_GROUP(sdhi1_cd),
4019 SH_PFC_PIN_GROUP(sdhi1_wp),
4020 SH_PFC_PIN_GROUP(sdhi3_data1),
4021 SH_PFC_PIN_GROUP(sdhi3_data4),
4022 SH_PFC_PIN_GROUP(sdhi3_data8),
4023 SH_PFC_PIN_GROUP(sdhi3_ctrl),
4024 SH_PFC_PIN_GROUP(sdhi3_cd),
4025 SH_PFC_PIN_GROUP(sdhi3_wp),
4026 SH_PFC_PIN_GROUP(sdhi3_ds),
4027 SH_PFC_PIN_GROUP(ssi0_data),
4028 SH_PFC_PIN_GROUP(ssi01239_ctrl),
4029 SH_PFC_PIN_GROUP(ssi1_data),
4030 SH_PFC_PIN_GROUP(ssi1_ctrl),
4031 SH_PFC_PIN_GROUP(ssi2_data),
4032 SH_PFC_PIN_GROUP(ssi2_ctrl_a),
4033 SH_PFC_PIN_GROUP(ssi2_ctrl_b),
4034 SH_PFC_PIN_GROUP(ssi3_data),
4035 SH_PFC_PIN_GROUP(ssi349_ctrl),
4036 SH_PFC_PIN_GROUP(ssi4_data),
4037 SH_PFC_PIN_GROUP(ssi4_ctrl),
4038 SH_PFC_PIN_GROUP(ssi5_data),
4039 SH_PFC_PIN_GROUP(ssi5_ctrl),
4040 SH_PFC_PIN_GROUP(ssi6_data),
4041 SH_PFC_PIN_GROUP(ssi6_ctrl),
4042 SH_PFC_PIN_GROUP(ssi7_data),
4043 SH_PFC_PIN_GROUP(ssi78_ctrl),
4044 SH_PFC_PIN_GROUP(ssi8_data),
4045 SH_PFC_PIN_GROUP(ssi9_data),
4046 SH_PFC_PIN_GROUP(ssi9_ctrl_a),
4047 SH_PFC_PIN_GROUP(ssi9_ctrl_b),
4048 SH_PFC_PIN_GROUP(tmu_tclk1_a),
4049 SH_PFC_PIN_GROUP(tmu_tclk1_b),
4050 SH_PFC_PIN_GROUP(tmu_tclk2_a),
4051 SH_PFC_PIN_GROUP(tmu_tclk2_b),
4052 SH_PFC_PIN_GROUP(usb0_a),
4053 SH_PFC_PIN_GROUP(usb0_b),
4054 SH_PFC_PIN_GROUP(usb0_id),
4055 SH_PFC_PIN_GROUP(usb30),
4056 SH_PFC_PIN_GROUP(usb30_id),
4057 VIN_DATA_PIN_GROUP(vin4_data, 8, _a),
4058 VIN_DATA_PIN_GROUP(vin4_data, 10, _a),
4059 VIN_DATA_PIN_GROUP(vin4_data, 12, _a),
4060 VIN_DATA_PIN_GROUP(vin4_data, 16, _a),
4061 SH_PFC_PIN_GROUP(vin4_data18_a),
4062 VIN_DATA_PIN_GROUP(vin4_data, 20, _a),
4063 VIN_DATA_PIN_GROUP(vin4_data, 24, _a),
4064 VIN_DATA_PIN_GROUP(vin4_data, 8, _b),
4065 VIN_DATA_PIN_GROUP(vin4_data, 10, _b),
4066 VIN_DATA_PIN_GROUP(vin4_data, 12, _b),
4067 VIN_DATA_PIN_GROUP(vin4_data, 16, _b),
4068 SH_PFC_PIN_GROUP(vin4_data18_b),
4069 VIN_DATA_PIN_GROUP(vin4_data, 20, _b),
4070 VIN_DATA_PIN_GROUP(vin4_data, 24, _b),
4071 SH_PFC_PIN_GROUP(vin4_sync),
4072 SH_PFC_PIN_GROUP(vin4_field),
4073 SH_PFC_PIN_GROUP(vin4_clkenb),
4074 SH_PFC_PIN_GROUP(vin4_clk),
4075 VIN_DATA_PIN_GROUP(vin5_data, 8, _a),
4076 VIN_DATA_PIN_GROUP(vin5_data, 10, _a),
4077 VIN_DATA_PIN_GROUP(vin5_data, 12, _a),
4078 VIN_DATA_PIN_GROUP(vin5_data, 16, _a),
4079 SH_PFC_PIN_GROUP(vin5_data8_b),
4080 SH_PFC_PIN_GROUP(vin5_sync_a),
4081 SH_PFC_PIN_GROUP(vin5_field_a),
4082 SH_PFC_PIN_GROUP(vin5_clkenb_a),
4083 SH_PFC_PIN_GROUP(vin5_clk_a),
4084 SH_PFC_PIN_GROUP(vin5_clk_b),
4085 },
Lad Prabhakar14c9b042021-03-15 22:24:03 +00004086#ifdef CONFIG_PINCTRL_PFC_R8A77990
Marek Vasut88e81ec2019-03-04 22:39:51 +01004087 .automotive = {
Marek Vasut88e81ec2019-03-04 22:39:51 +01004088 SH_PFC_PIN_GROUP(drif0_ctrl_a),
4089 SH_PFC_PIN_GROUP(drif0_data0_a),
4090 SH_PFC_PIN_GROUP(drif0_data1_a),
4091 SH_PFC_PIN_GROUP(drif0_ctrl_b),
4092 SH_PFC_PIN_GROUP(drif0_data0_b),
4093 SH_PFC_PIN_GROUP(drif0_data1_b),
4094 SH_PFC_PIN_GROUP(drif1_ctrl),
4095 SH_PFC_PIN_GROUP(drif1_data0),
4096 SH_PFC_PIN_GROUP(drif1_data1),
4097 SH_PFC_PIN_GROUP(drif2_ctrl_a),
4098 SH_PFC_PIN_GROUP(drif2_data0_a),
4099 SH_PFC_PIN_GROUP(drif2_data1_a),
4100 SH_PFC_PIN_GROUP(drif2_ctrl_b),
4101 SH_PFC_PIN_GROUP(drif2_data0_b),
4102 SH_PFC_PIN_GROUP(drif2_data1_b),
4103 SH_PFC_PIN_GROUP(drif3_ctrl_a),
4104 SH_PFC_PIN_GROUP(drif3_data0_a),
4105 SH_PFC_PIN_GROUP(drif3_data1_a),
4106 SH_PFC_PIN_GROUP(drif3_ctrl_b),
4107 SH_PFC_PIN_GROUP(drif3_data0_b),
4108 SH_PFC_PIN_GROUP(drif3_data1_b),
4109 }
Lad Prabhakar14c9b042021-03-15 22:24:03 +00004110#endif /* CONFIG_PINCTRL_PFC_R8A77990 */
Marek Vasuteb13e0f2018-06-10 16:05:48 +02004111};
4112
4113static const char * const audio_clk_groups[] = {
4114 "audio_clk_a",
4115 "audio_clk_b_a",
4116 "audio_clk_b_b",
4117 "audio_clk_b_c",
4118 "audio_clk_c_a",
4119 "audio_clk_c_b",
4120 "audio_clk_c_c",
4121 "audio_clkout_a",
4122 "audio_clkout_b",
4123 "audio_clkout1_a",
4124 "audio_clkout1_b",
4125 "audio_clkout1_c",
4126 "audio_clkout2_a",
4127 "audio_clkout2_b",
4128 "audio_clkout2_c",
4129 "audio_clkout3_a",
4130 "audio_clkout3_b",
4131 "audio_clkout3_c",
4132};
4133
4134static const char * const avb_groups[] = {
4135 "avb_link",
4136 "avb_magic",
4137 "avb_phy_int",
4138 "avb_mii",
4139 "avb_avtp_pps",
Lad Prabhakare4db7392020-10-14 16:45:59 +01004140 "avb_avtp_match",
4141 "avb_avtp_capture",
Marek Vasuteb13e0f2018-06-10 16:05:48 +02004142};
4143
4144static const char * const can0_groups[] = {
4145 "can0_data",
4146};
4147
4148static const char * const can1_groups[] = {
4149 "can1_data",
4150};
4151
4152static const char * const can_clk_groups[] = {
4153 "can_clk",
4154};
4155
4156static const char * const canfd0_groups[] = {
4157 "canfd0_data",
4158};
4159
4160static const char * const canfd1_groups[] = {
4161 "canfd1_data",
4162};
4163
Lad Prabhakar14c9b042021-03-15 22:24:03 +00004164#ifdef CONFIG_PINCTRL_PFC_R8A77990
Marek Vasuteb13e0f2018-06-10 16:05:48 +02004165static const char * const drif0_groups[] = {
4166 "drif0_ctrl_a",
4167 "drif0_data0_a",
4168 "drif0_data1_a",
4169 "drif0_ctrl_b",
4170 "drif0_data0_b",
4171 "drif0_data1_b",
4172};
4173
4174static const char * const drif1_groups[] = {
4175 "drif1_ctrl",
4176 "drif1_data0",
4177 "drif1_data1",
4178};
4179
4180static const char * const drif2_groups[] = {
4181 "drif2_ctrl_a",
4182 "drif2_data0_a",
4183 "drif2_data1_a",
4184 "drif2_ctrl_b",
4185 "drif2_data0_b",
4186 "drif2_data1_b",
4187};
4188
4189static const char * const drif3_groups[] = {
4190 "drif3_ctrl_a",
4191 "drif3_data0_a",
4192 "drif3_data1_a",
4193 "drif3_ctrl_b",
4194 "drif3_data0_b",
4195 "drif3_data1_b",
4196};
Lad Prabhakar14c9b042021-03-15 22:24:03 +00004197#endif /* CONFIG_PINCTRL_PFC_R8A77990 */
Marek Vasuteb13e0f2018-06-10 16:05:48 +02004198
4199static const char * const du_groups[] = {
4200 "du_rgb666",
4201 "du_rgb888",
Marek Vasut88e81ec2019-03-04 22:39:51 +01004202 "du_clk_in_0",
4203 "du_clk_in_1",
Marek Vasuteb13e0f2018-06-10 16:05:48 +02004204 "du_clk_out_0",
4205 "du_sync",
Marek Vasut88e81ec2019-03-04 22:39:51 +01004206 "du_disp_cde",
Marek Vasuteb13e0f2018-06-10 16:05:48 +02004207 "du_cde",
4208 "du_disp",
Marek Vasuteb13e0f2018-06-10 16:05:48 +02004209};
4210
4211static const char * const hscif0_groups[] = {
4212 "hscif0_data_a",
4213 "hscif0_clk_a",
4214 "hscif0_ctrl_a",
4215 "hscif0_data_b",
4216 "hscif0_clk_b",
4217};
4218
4219static const char * const hscif1_groups[] = {
4220 "hscif1_data_a",
4221 "hscif1_clk_a",
4222 "hscif1_data_b",
4223 "hscif1_clk_b",
4224 "hscif1_ctrl_b",
4225};
4226
4227static const char * const hscif2_groups[] = {
4228 "hscif2_data_a",
4229 "hscif2_clk_a",
4230 "hscif2_ctrl_a",
4231 "hscif2_data_b",
4232};
4233
4234static const char * const hscif3_groups[] = {
4235 "hscif3_data_a",
4236 "hscif3_data_b",
4237 "hscif3_clk_b",
4238 "hscif3_data_c",
4239 "hscif3_clk_c",
4240 "hscif3_ctrl_c",
4241 "hscif3_data_d",
4242 "hscif3_data_e",
4243 "hscif3_ctrl_e",
4244};
4245
4246static const char * const hscif4_groups[] = {
4247 "hscif4_data_a",
4248 "hscif4_clk_a",
4249 "hscif4_ctrl_a",
4250 "hscif4_data_b",
4251 "hscif4_clk_b",
4252 "hscif4_data_c",
4253 "hscif4_data_d",
4254 "hscif4_data_e",
4255};
4256
4257static const char * const i2c1_groups[] = {
4258 "i2c1_a",
4259 "i2c1_b",
4260 "i2c1_c",
4261 "i2c1_d",
4262};
4263
4264static const char * const i2c2_groups[] = {
4265 "i2c2_a",
4266 "i2c2_b",
4267 "i2c2_c",
4268 "i2c2_d",
4269 "i2c2_e",
4270};
4271
4272static const char * const i2c4_groups[] = {
4273 "i2c4",
4274};
4275
4276static const char * const i2c5_groups[] = {
4277 "i2c5",
4278};
4279
4280static const char * const i2c6_groups[] = {
4281 "i2c6_a",
4282 "i2c6_b",
4283};
4284
4285static const char * const i2c7_groups[] = {
4286 "i2c7_a",
4287 "i2c7_b",
4288};
4289
4290static const char * const intc_ex_groups[] = {
4291 "intc_ex_irq0",
Marek Vasut88e81ec2019-03-04 22:39:51 +01004292 "intc_ex_irq1",
4293 "intc_ex_irq2",
4294 "intc_ex_irq3",
4295 "intc_ex_irq4",
4296 "intc_ex_irq5",
Marek Vasuteb13e0f2018-06-10 16:05:48 +02004297};
4298
4299static const char * const msiof0_groups[] = {
4300 "msiof0_clk",
4301 "msiof0_sync",
4302 "msiof0_ss1",
4303 "msiof0_ss2",
4304 "msiof0_txd",
4305 "msiof0_rxd",
4306};
4307
4308static const char * const msiof1_groups[] = {
4309 "msiof1_clk",
4310 "msiof1_sync",
4311 "msiof1_ss1",
4312 "msiof1_ss2",
4313 "msiof1_txd",
4314 "msiof1_rxd",
4315};
4316
4317static const char * const msiof2_groups[] = {
4318 "msiof2_clk_a",
4319 "msiof2_sync_a",
4320 "msiof2_ss1_a",
4321 "msiof2_ss2_a",
4322 "msiof2_txd_a",
4323 "msiof2_rxd_a",
4324 "msiof2_clk_b",
4325 "msiof2_sync_b",
4326 "msiof2_ss1_b",
4327 "msiof2_ss2_b",
4328 "msiof2_txd_b",
4329 "msiof2_rxd_b",
4330};
4331
4332static const char * const msiof3_groups[] = {
4333 "msiof3_clk_a",
4334 "msiof3_sync_a",
4335 "msiof3_ss1_a",
4336 "msiof3_ss2_a",
4337 "msiof3_txd_a",
4338 "msiof3_rxd_a",
4339 "msiof3_clk_b",
4340 "msiof3_sync_b",
4341 "msiof3_ss1_b",
4342 "msiof3_txd_b",
4343 "msiof3_rxd_b",
4344};
4345
4346static const char * const pwm0_groups[] = {
4347 "pwm0_a",
4348 "pwm0_b",
4349};
4350
4351static const char * const pwm1_groups[] = {
4352 "pwm1_a",
4353 "pwm1_b",
4354};
4355
4356static const char * const pwm2_groups[] = {
4357 "pwm2_a",
4358 "pwm2_b",
4359 "pwm2_c",
4360};
4361
4362static const char * const pwm3_groups[] = {
4363 "pwm3_a",
4364 "pwm3_b",
4365 "pwm3_c",
4366};
4367
4368static const char * const pwm4_groups[] = {
4369 "pwm4_a",
4370 "pwm4_b",
4371};
4372
4373static const char * const pwm5_groups[] = {
4374 "pwm5_a",
4375 "pwm5_b",
4376};
4377
4378static const char * const pwm6_groups[] = {
4379 "pwm6_a",
4380 "pwm6_b",
4381};
4382
Lad Prabhakar14c9b042021-03-15 22:24:03 +00004383static const char * const qspi0_groups[] = {
4384 "qspi0_ctrl",
4385 "qspi0_data2",
4386 "qspi0_data4",
4387};
4388
4389static const char * const qspi1_groups[] = {
4390 "qspi1_ctrl",
4391 "qspi1_data2",
4392 "qspi1_data4",
4393};
4394
Marek Vasuteb13e0f2018-06-10 16:05:48 +02004395static const char * const scif0_groups[] = {
4396 "scif0_data_a",
4397 "scif0_clk_a",
4398 "scif0_ctrl_a",
4399 "scif0_data_b",
4400 "scif0_clk_b",
4401};
4402
4403static const char * const scif1_groups[] = {
4404 "scif1_data",
4405 "scif1_clk",
4406 "scif1_ctrl",
4407};
4408
4409static const char * const scif2_groups[] = {
4410 "scif2_data_a",
4411 "scif2_clk_a",
4412 "scif2_data_b",
4413};
4414
4415static const char * const scif3_groups[] = {
4416 "scif3_data_a",
4417 "scif3_clk_a",
4418 "scif3_ctrl_a",
4419 "scif3_data_b",
4420 "scif3_data_c",
4421 "scif3_clk_c",
4422};
4423
4424static const char * const scif4_groups[] = {
4425 "scif4_data_a",
4426 "scif4_clk_a",
4427 "scif4_ctrl_a",
4428 "scif4_data_b",
4429 "scif4_clk_b",
4430 "scif4_data_c",
4431 "scif4_ctrl_c",
4432};
4433
4434static const char * const scif5_groups[] = {
4435 "scif5_data_a",
4436 "scif5_clk_a",
4437 "scif5_data_b",
4438 "scif5_data_c",
4439};
4440
4441static const char * const scif_clk_groups[] = {
4442 "scif_clk_a",
4443 "scif_clk_b",
4444};
4445
4446static const char * const sdhi0_groups[] = {
4447 "sdhi0_data1",
4448 "sdhi0_data4",
4449 "sdhi0_ctrl",
4450 "sdhi0_cd",
4451 "sdhi0_wp",
4452};
4453
4454static const char * const sdhi1_groups[] = {
4455 "sdhi1_data1",
4456 "sdhi1_data4",
4457 "sdhi1_ctrl",
4458 "sdhi1_cd",
4459 "sdhi1_wp",
4460};
4461
4462static const char * const sdhi3_groups[] = {
4463 "sdhi3_data1",
4464 "sdhi3_data4",
4465 "sdhi3_data8",
4466 "sdhi3_ctrl",
4467 "sdhi3_cd",
4468 "sdhi3_wp",
4469 "sdhi3_ds",
4470};
4471
4472static const char * const ssi_groups[] = {
4473 "ssi0_data",
4474 "ssi01239_ctrl",
4475 "ssi1_data",
4476 "ssi1_ctrl",
4477 "ssi2_data",
4478 "ssi2_ctrl_a",
4479 "ssi2_ctrl_b",
4480 "ssi3_data",
4481 "ssi349_ctrl",
4482 "ssi4_data",
4483 "ssi4_ctrl",
4484 "ssi5_data",
4485 "ssi5_ctrl",
4486 "ssi6_data",
4487 "ssi6_ctrl",
4488 "ssi7_data",
4489 "ssi78_ctrl",
4490 "ssi8_data",
4491 "ssi9_data",
4492 "ssi9_ctrl_a",
4493 "ssi9_ctrl_b",
4494};
4495
4496static const char * const tmu_groups[] = {
4497 "tmu_tclk1_a",
4498 "tmu_tclk1_b",
4499 "tmu_tclk2_a",
4500 "tmu_tclk2_b",
4501};
4502
4503static const char * const usb0_groups[] = {
4504 "usb0_a",
4505 "usb0_b",
4506 "usb0_id",
4507};
4508
4509static const char * const usb30_groups[] = {
4510 "usb30",
4511 "usb30_id",
4512};
4513
4514static const char * const vin4_groups[] = {
4515 "vin4_data8_a",
4516 "vin4_data10_a",
4517 "vin4_data12_a",
4518 "vin4_data16_a",
Marek Vasut88e81ec2019-03-04 22:39:51 +01004519 "vin4_data18_a",
Marek Vasuteb13e0f2018-06-10 16:05:48 +02004520 "vin4_data20_a",
4521 "vin4_data24_a",
4522 "vin4_data8_b",
4523 "vin4_data10_b",
4524 "vin4_data12_b",
4525 "vin4_data16_b",
Marek Vasut88e81ec2019-03-04 22:39:51 +01004526 "vin4_data18_b",
Marek Vasuteb13e0f2018-06-10 16:05:48 +02004527 "vin4_data20_b",
4528 "vin4_data24_b",
Marek Vasuteb13e0f2018-06-10 16:05:48 +02004529 "vin4_sync",
4530 "vin4_field",
4531 "vin4_clkenb",
4532 "vin4_clk",
4533};
4534
4535static const char * const vin5_groups[] = {
4536 "vin5_data8_a",
Marek Vasuteb13e0f2018-06-10 16:05:48 +02004537 "vin5_data10_a",
4538 "vin5_data12_a",
4539 "vin5_data16_a",
4540 "vin5_data8_b",
4541 "vin5_sync_a",
4542 "vin5_field_a",
4543 "vin5_clkenb_a",
4544 "vin5_clk_a",
4545 "vin5_clk_b",
Marek Vasut68a77042018-04-26 13:09:20 +02004546};
4547
Marek Vasut88e81ec2019-03-04 22:39:51 +01004548static const struct {
Lad Prabhakar14c9b042021-03-15 22:24:03 +00004549 struct sh_pfc_function common[49];
4550#ifdef CONFIG_PINCTRL_PFC_R8A77990
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004551 struct sh_pfc_function automotive[4];
Lad Prabhakar14c9b042021-03-15 22:24:03 +00004552#endif
Marek Vasut88e81ec2019-03-04 22:39:51 +01004553} pinmux_functions = {
4554 .common = {
4555 SH_PFC_FUNCTION(audio_clk),
4556 SH_PFC_FUNCTION(avb),
4557 SH_PFC_FUNCTION(can0),
4558 SH_PFC_FUNCTION(can1),
4559 SH_PFC_FUNCTION(can_clk),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004560 SH_PFC_FUNCTION(canfd0),
4561 SH_PFC_FUNCTION(canfd1),
Marek Vasut88e81ec2019-03-04 22:39:51 +01004562 SH_PFC_FUNCTION(du),
4563 SH_PFC_FUNCTION(hscif0),
4564 SH_PFC_FUNCTION(hscif1),
4565 SH_PFC_FUNCTION(hscif2),
4566 SH_PFC_FUNCTION(hscif3),
4567 SH_PFC_FUNCTION(hscif4),
4568 SH_PFC_FUNCTION(i2c1),
4569 SH_PFC_FUNCTION(i2c2),
4570 SH_PFC_FUNCTION(i2c4),
4571 SH_PFC_FUNCTION(i2c5),
4572 SH_PFC_FUNCTION(i2c6),
4573 SH_PFC_FUNCTION(i2c7),
4574 SH_PFC_FUNCTION(intc_ex),
4575 SH_PFC_FUNCTION(msiof0),
4576 SH_PFC_FUNCTION(msiof1),
4577 SH_PFC_FUNCTION(msiof2),
4578 SH_PFC_FUNCTION(msiof3),
4579 SH_PFC_FUNCTION(pwm0),
4580 SH_PFC_FUNCTION(pwm1),
4581 SH_PFC_FUNCTION(pwm2),
4582 SH_PFC_FUNCTION(pwm3),
4583 SH_PFC_FUNCTION(pwm4),
4584 SH_PFC_FUNCTION(pwm5),
4585 SH_PFC_FUNCTION(pwm6),
Lad Prabhakar14c9b042021-03-15 22:24:03 +00004586 SH_PFC_FUNCTION(qspi0),
4587 SH_PFC_FUNCTION(qspi1),
Marek Vasut88e81ec2019-03-04 22:39:51 +01004588 SH_PFC_FUNCTION(scif0),
4589 SH_PFC_FUNCTION(scif1),
4590 SH_PFC_FUNCTION(scif2),
4591 SH_PFC_FUNCTION(scif3),
4592 SH_PFC_FUNCTION(scif4),
4593 SH_PFC_FUNCTION(scif5),
4594 SH_PFC_FUNCTION(scif_clk),
4595 SH_PFC_FUNCTION(sdhi0),
4596 SH_PFC_FUNCTION(sdhi1),
4597 SH_PFC_FUNCTION(sdhi3),
4598 SH_PFC_FUNCTION(ssi),
4599 SH_PFC_FUNCTION(tmu),
4600 SH_PFC_FUNCTION(usb0),
4601 SH_PFC_FUNCTION(usb30),
4602 SH_PFC_FUNCTION(vin4),
4603 SH_PFC_FUNCTION(vin5),
4604 },
Lad Prabhakar14c9b042021-03-15 22:24:03 +00004605#ifdef CONFIG_PINCTRL_PFC_R8A77990
Marek Vasut88e81ec2019-03-04 22:39:51 +01004606 .automotive = {
Marek Vasut88e81ec2019-03-04 22:39:51 +01004607 SH_PFC_FUNCTION(drif0),
4608 SH_PFC_FUNCTION(drif1),
4609 SH_PFC_FUNCTION(drif2),
4610 SH_PFC_FUNCTION(drif3),
4611 }
Lad Prabhakar14c9b042021-03-15 22:24:03 +00004612#endif /* CONFIG_PINCTRL_PFC_R8A77990 */
Marek Vasut68a77042018-04-26 13:09:20 +02004613};
4614
4615static const struct pinmux_cfg_reg pinmux_config_regs[] = {
4616#define F_(x, y) FN_##y
4617#define FM(x) FN_##x
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004618 { PINMUX_CFG_REG("GPSR0", 0xe6060100, 32, 1, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004619 0, 0,
4620 0, 0,
4621 0, 0,
4622 0, 0,
4623 0, 0,
4624 0, 0,
4625 0, 0,
4626 0, 0,
4627 0, 0,
4628 0, 0,
4629 0, 0,
4630 0, 0,
4631 0, 0,
4632 0, 0,
4633 GP_0_17_FN, GPSR0_17,
4634 GP_0_16_FN, GPSR0_16,
4635 GP_0_15_FN, GPSR0_15,
4636 GP_0_14_FN, GPSR0_14,
4637 GP_0_13_FN, GPSR0_13,
4638 GP_0_12_FN, GPSR0_12,
4639 GP_0_11_FN, GPSR0_11,
4640 GP_0_10_FN, GPSR0_10,
4641 GP_0_9_FN, GPSR0_9,
4642 GP_0_8_FN, GPSR0_8,
4643 GP_0_7_FN, GPSR0_7,
4644 GP_0_6_FN, GPSR0_6,
4645 GP_0_5_FN, GPSR0_5,
4646 GP_0_4_FN, GPSR0_4,
4647 GP_0_3_FN, GPSR0_3,
4648 GP_0_2_FN, GPSR0_2,
4649 GP_0_1_FN, GPSR0_1,
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004650 GP_0_0_FN, GPSR0_0, ))
Marek Vasut68a77042018-04-26 13:09:20 +02004651 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004652 { PINMUX_CFG_REG("GPSR1", 0xe6060104, 32, 1, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004653 0, 0,
4654 0, 0,
4655 0, 0,
4656 0, 0,
4657 0, 0,
4658 0, 0,
4659 0, 0,
4660 0, 0,
4661 0, 0,
4662 GP_1_22_FN, GPSR1_22,
4663 GP_1_21_FN, GPSR1_21,
4664 GP_1_20_FN, GPSR1_20,
4665 GP_1_19_FN, GPSR1_19,
4666 GP_1_18_FN, GPSR1_18,
4667 GP_1_17_FN, GPSR1_17,
4668 GP_1_16_FN, GPSR1_16,
4669 GP_1_15_FN, GPSR1_15,
4670 GP_1_14_FN, GPSR1_14,
4671 GP_1_13_FN, GPSR1_13,
4672 GP_1_12_FN, GPSR1_12,
4673 GP_1_11_FN, GPSR1_11,
4674 GP_1_10_FN, GPSR1_10,
4675 GP_1_9_FN, GPSR1_9,
4676 GP_1_8_FN, GPSR1_8,
4677 GP_1_7_FN, GPSR1_7,
4678 GP_1_6_FN, GPSR1_6,
4679 GP_1_5_FN, GPSR1_5,
4680 GP_1_4_FN, GPSR1_4,
4681 GP_1_3_FN, GPSR1_3,
4682 GP_1_2_FN, GPSR1_2,
4683 GP_1_1_FN, GPSR1_1,
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004684 GP_1_0_FN, GPSR1_0, ))
Marek Vasut68a77042018-04-26 13:09:20 +02004685 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004686 { PINMUX_CFG_REG("GPSR2", 0xe6060108, 32, 1, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004687 0, 0,
4688 0, 0,
4689 0, 0,
4690 0, 0,
4691 0, 0,
4692 0, 0,
4693 GP_2_25_FN, GPSR2_25,
4694 GP_2_24_FN, GPSR2_24,
4695 GP_2_23_FN, GPSR2_23,
4696 GP_2_22_FN, GPSR2_22,
4697 GP_2_21_FN, GPSR2_21,
4698 GP_2_20_FN, GPSR2_20,
4699 GP_2_19_FN, GPSR2_19,
4700 GP_2_18_FN, GPSR2_18,
4701 GP_2_17_FN, GPSR2_17,
4702 GP_2_16_FN, GPSR2_16,
4703 GP_2_15_FN, GPSR2_15,
4704 GP_2_14_FN, GPSR2_14,
4705 GP_2_13_FN, GPSR2_13,
4706 GP_2_12_FN, GPSR2_12,
4707 GP_2_11_FN, GPSR2_11,
4708 GP_2_10_FN, GPSR2_10,
4709 GP_2_9_FN, GPSR2_9,
4710 GP_2_8_FN, GPSR2_8,
4711 GP_2_7_FN, GPSR2_7,
4712 GP_2_6_FN, GPSR2_6,
4713 GP_2_5_FN, GPSR2_5,
4714 GP_2_4_FN, GPSR2_4,
4715 GP_2_3_FN, GPSR2_3,
4716 GP_2_2_FN, GPSR2_2,
4717 GP_2_1_FN, GPSR2_1,
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004718 GP_2_0_FN, GPSR2_0, ))
Marek Vasut68a77042018-04-26 13:09:20 +02004719 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004720 { PINMUX_CFG_REG("GPSR3", 0xe606010c, 32, 1, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004721 0, 0,
4722 0, 0,
4723 0, 0,
4724 0, 0,
4725 0, 0,
4726 0, 0,
4727 0, 0,
4728 0, 0,
4729 0, 0,
4730 0, 0,
4731 0, 0,
4732 0, 0,
4733 0, 0,
4734 0, 0,
4735 0, 0,
4736 0, 0,
4737 GP_3_15_FN, GPSR3_15,
4738 GP_3_14_FN, GPSR3_14,
4739 GP_3_13_FN, GPSR3_13,
4740 GP_3_12_FN, GPSR3_12,
4741 GP_3_11_FN, GPSR3_11,
4742 GP_3_10_FN, GPSR3_10,
4743 GP_3_9_FN, GPSR3_9,
4744 GP_3_8_FN, GPSR3_8,
4745 GP_3_7_FN, GPSR3_7,
4746 GP_3_6_FN, GPSR3_6,
4747 GP_3_5_FN, GPSR3_5,
4748 GP_3_4_FN, GPSR3_4,
4749 GP_3_3_FN, GPSR3_3,
4750 GP_3_2_FN, GPSR3_2,
4751 GP_3_1_FN, GPSR3_1,
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004752 GP_3_0_FN, GPSR3_0, ))
Marek Vasut68a77042018-04-26 13:09:20 +02004753 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004754 { PINMUX_CFG_REG("GPSR4", 0xe6060110, 32, 1, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004755 0, 0,
4756 0, 0,
4757 0, 0,
4758 0, 0,
4759 0, 0,
4760 0, 0,
4761 0, 0,
4762 0, 0,
4763 0, 0,
4764 0, 0,
4765 0, 0,
4766 0, 0,
4767 0, 0,
4768 0, 0,
4769 0, 0,
4770 0, 0,
4771 0, 0,
4772 0, 0,
4773 0, 0,
4774 0, 0,
4775 0, 0,
4776 GP_4_10_FN, GPSR4_10,
4777 GP_4_9_FN, GPSR4_9,
4778 GP_4_8_FN, GPSR4_8,
4779 GP_4_7_FN, GPSR4_7,
4780 GP_4_6_FN, GPSR4_6,
4781 GP_4_5_FN, GPSR4_5,
4782 GP_4_4_FN, GPSR4_4,
4783 GP_4_3_FN, GPSR4_3,
4784 GP_4_2_FN, GPSR4_2,
4785 GP_4_1_FN, GPSR4_1,
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004786 GP_4_0_FN, GPSR4_0, ))
Marek Vasut68a77042018-04-26 13:09:20 +02004787 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004788 { PINMUX_CFG_REG("GPSR5", 0xe6060114, 32, 1, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004789 0, 0,
4790 0, 0,
4791 0, 0,
4792 0, 0,
4793 0, 0,
4794 0, 0,
4795 0, 0,
4796 0, 0,
4797 0, 0,
4798 0, 0,
4799 0, 0,
4800 0, 0,
4801 GP_5_19_FN, GPSR5_19,
4802 GP_5_18_FN, GPSR5_18,
4803 GP_5_17_FN, GPSR5_17,
4804 GP_5_16_FN, GPSR5_16,
4805 GP_5_15_FN, GPSR5_15,
4806 GP_5_14_FN, GPSR5_14,
4807 GP_5_13_FN, GPSR5_13,
4808 GP_5_12_FN, GPSR5_12,
4809 GP_5_11_FN, GPSR5_11,
4810 GP_5_10_FN, GPSR5_10,
4811 GP_5_9_FN, GPSR5_9,
4812 GP_5_8_FN, GPSR5_8,
4813 GP_5_7_FN, GPSR5_7,
4814 GP_5_6_FN, GPSR5_6,
4815 GP_5_5_FN, GPSR5_5,
4816 GP_5_4_FN, GPSR5_4,
4817 GP_5_3_FN, GPSR5_3,
4818 GP_5_2_FN, GPSR5_2,
4819 GP_5_1_FN, GPSR5_1,
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004820 GP_5_0_FN, GPSR5_0, ))
Marek Vasut68a77042018-04-26 13:09:20 +02004821 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004822 { PINMUX_CFG_REG("GPSR6", 0xe6060118, 32, 1, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004823 0, 0,
4824 0, 0,
4825 0, 0,
4826 0, 0,
4827 0, 0,
4828 0, 0,
4829 0, 0,
4830 0, 0,
4831 0, 0,
4832 0, 0,
4833 0, 0,
4834 0, 0,
4835 0, 0,
4836 0, 0,
4837 GP_6_17_FN, GPSR6_17,
4838 GP_6_16_FN, GPSR6_16,
4839 GP_6_15_FN, GPSR6_15,
4840 GP_6_14_FN, GPSR6_14,
4841 GP_6_13_FN, GPSR6_13,
4842 GP_6_12_FN, GPSR6_12,
4843 GP_6_11_FN, GPSR6_11,
4844 GP_6_10_FN, GPSR6_10,
4845 GP_6_9_FN, GPSR6_9,
4846 GP_6_8_FN, GPSR6_8,
4847 GP_6_7_FN, GPSR6_7,
4848 GP_6_6_FN, GPSR6_6,
4849 GP_6_5_FN, GPSR6_5,
4850 GP_6_4_FN, GPSR6_4,
4851 GP_6_3_FN, GPSR6_3,
4852 GP_6_2_FN, GPSR6_2,
4853 GP_6_1_FN, GPSR6_1,
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004854 GP_6_0_FN, GPSR6_0, ))
Marek Vasut68a77042018-04-26 13:09:20 +02004855 },
4856#undef F_
4857#undef FM
4858
4859#define F_(x, y) x,
4860#define FM(x) FN_##x,
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004861 { PINMUX_CFG_REG("IPSR0", 0xe6060200, 32, 4, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004862 IP0_31_28
4863 IP0_27_24
4864 IP0_23_20
4865 IP0_19_16
4866 IP0_15_12
4867 IP0_11_8
4868 IP0_7_4
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004869 IP0_3_0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02004870 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004871 { PINMUX_CFG_REG("IPSR1", 0xe6060204, 32, 4, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004872 IP1_31_28
4873 IP1_27_24
4874 IP1_23_20
4875 IP1_19_16
4876 IP1_15_12
4877 IP1_11_8
4878 IP1_7_4
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004879 IP1_3_0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02004880 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004881 { PINMUX_CFG_REG("IPSR2", 0xe6060208, 32, 4, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004882 IP2_31_28
4883 IP2_27_24
4884 IP2_23_20
4885 IP2_19_16
4886 IP2_15_12
4887 IP2_11_8
4888 IP2_7_4
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004889 IP2_3_0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02004890 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004891 { PINMUX_CFG_REG("IPSR3", 0xe606020c, 32, 4, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004892 IP3_31_28
4893 IP3_27_24
4894 IP3_23_20
4895 IP3_19_16
4896 IP3_15_12
4897 IP3_11_8
4898 IP3_7_4
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004899 IP3_3_0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02004900 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004901 { PINMUX_CFG_REG("IPSR4", 0xe6060210, 32, 4, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004902 IP4_31_28
4903 IP4_27_24
4904 IP4_23_20
4905 IP4_19_16
4906 IP4_15_12
4907 IP4_11_8
4908 IP4_7_4
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004909 IP4_3_0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02004910 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004911 { PINMUX_CFG_REG("IPSR5", 0xe6060214, 32, 4, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004912 IP5_31_28
4913 IP5_27_24
4914 IP5_23_20
4915 IP5_19_16
4916 IP5_15_12
4917 IP5_11_8
4918 IP5_7_4
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004919 IP5_3_0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02004920 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004921 { PINMUX_CFG_REG("IPSR6", 0xe6060218, 32, 4, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004922 IP6_31_28
4923 IP6_27_24
4924 IP6_23_20
4925 IP6_19_16
4926 IP6_15_12
4927 IP6_11_8
4928 IP6_7_4
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004929 IP6_3_0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02004930 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004931 { PINMUX_CFG_REG("IPSR7", 0xe606021c, 32, 4, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004932 IP7_31_28
4933 IP7_27_24
4934 IP7_23_20
4935 IP7_19_16
4936 IP7_15_12
4937 IP7_11_8
4938 IP7_7_4
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004939 IP7_3_0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02004940 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004941 { PINMUX_CFG_REG("IPSR8", 0xe6060220, 32, 4, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004942 IP8_31_28
4943 IP8_27_24
4944 IP8_23_20
4945 IP8_19_16
4946 IP8_15_12
4947 IP8_11_8
4948 IP8_7_4
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004949 IP8_3_0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02004950 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004951 { PINMUX_CFG_REG("IPSR9", 0xe6060224, 32, 4, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004952 IP9_31_28
4953 IP9_27_24
4954 IP9_23_20
4955 IP9_19_16
4956 IP9_15_12
4957 IP9_11_8
4958 IP9_7_4
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004959 IP9_3_0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02004960 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004961 { PINMUX_CFG_REG("IPSR10", 0xe6060228, 32, 4, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004962 IP10_31_28
4963 IP10_27_24
4964 IP10_23_20
4965 IP10_19_16
4966 IP10_15_12
4967 IP10_11_8
4968 IP10_7_4
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004969 IP10_3_0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02004970 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004971 { PINMUX_CFG_REG("IPSR11", 0xe606022c, 32, 4, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004972 IP11_31_28
4973 IP11_27_24
4974 IP11_23_20
4975 IP11_19_16
4976 IP11_15_12
4977 IP11_11_8
4978 IP11_7_4
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004979 IP11_3_0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02004980 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004981 { PINMUX_CFG_REG("IPSR12", 0xe6060230, 32, 4, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004982 IP12_31_28
4983 IP12_27_24
4984 IP12_23_20
4985 IP12_19_16
4986 IP12_15_12
4987 IP12_11_8
4988 IP12_7_4
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004989 IP12_3_0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02004990 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004991 { PINMUX_CFG_REG("IPSR13", 0xe6060234, 32, 4, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02004992 IP13_31_28
4993 IP13_27_24
4994 IP13_23_20
4995 IP13_19_16
4996 IP13_15_12
4997 IP13_11_8
4998 IP13_7_4
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02004999 IP13_3_0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02005000 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02005001 { PINMUX_CFG_REG("IPSR14", 0xe6060238, 32, 4, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02005002 IP14_31_28
5003 IP14_27_24
5004 IP14_23_20
5005 IP14_19_16
5006 IP14_15_12
5007 IP14_11_8
5008 IP14_7_4
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02005009 IP14_3_0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02005010 },
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02005011 { PINMUX_CFG_REG("IPSR15", 0xe606023c, 32, 4, GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02005012 IP15_31_28
5013 IP15_27_24
5014 IP15_23_20
5015 IP15_19_16
5016 IP15_15_12
5017 IP15_11_8
5018 IP15_7_4
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02005019 IP15_3_0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02005020 },
5021#undef F_
5022#undef FM
5023
5024#define F_(x, y) x,
5025#define FM(x) FN_##x,
5026 { PINMUX_CFG_REG_VAR("MOD_SEL0", 0xe6060500, 32,
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02005027 GROUP(1, 2, 1, 2, 1, 1, 1, 1, 2, 3, 1, 1,
5028 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2),
5029 GROUP(
Marek Vasut68a77042018-04-26 13:09:20 +02005030 /* RESERVED 31 */
5031 0, 0,
5032 MOD_SEL0_30_29
5033 MOD_SEL0_28
5034 MOD_SEL0_27_26
5035 MOD_SEL0_25
5036 MOD_SEL0_24
5037 MOD_SEL0_23
5038 MOD_SEL0_22
5039 MOD_SEL0_21_20
5040 MOD_SEL0_19_18_17
5041 MOD_SEL0_16
5042 MOD_SEL0_15
5043 MOD_SEL0_14
5044 MOD_SEL0_13_12
5045 MOD_SEL0_11_10
5046 MOD_SEL0_9
5047 MOD_SEL0_8
5048 MOD_SEL0_7
5049 MOD_SEL0_6_5
5050 MOD_SEL0_4
5051 MOD_SEL0_3
5052 MOD_SEL0_2
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02005053 MOD_SEL0_1_0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02005054 },
5055 { PINMUX_CFG_REG_VAR("MOD_SEL1", 0xe6060504, 32,
Lad Prabhakare4db7392020-10-14 16:45:59 +01005056 GROUP(1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1,
5057 1, 2, 2, 2, 1, 1, 2, 1, 4),
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02005058 GROUP(
Lad Prabhakare4db7392020-10-14 16:45:59 +01005059 MOD_SEL1_31
5060 MOD_SEL1_30
Marek Vasut68a77042018-04-26 13:09:20 +02005061 MOD_SEL1_29
5062 MOD_SEL1_28
5063 /* RESERVED 27 */
5064 0, 0,
5065 MOD_SEL1_26
5066 MOD_SEL1_25
5067 MOD_SEL1_24_23_22
5068 MOD_SEL1_21_20_19
5069 MOD_SEL1_18
5070 MOD_SEL1_17
5071 MOD_SEL1_16
5072 MOD_SEL1_15
5073 MOD_SEL1_14_13
5074 MOD_SEL1_12_11
5075 MOD_SEL1_10_9
5076 MOD_SEL1_8
5077 MOD_SEL1_7
5078 MOD_SEL1_6_5
5079 MOD_SEL1_4
5080 /* RESERVED 3, 2, 1, 0 */
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02005081 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
Marek Vasut68a77042018-04-26 13:09:20 +02005082 },
5083 { },
5084};
5085
Marek Vasut46991d52018-10-31 20:34:51 +01005086enum ioctrl_regs {
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02005087 POCCTRL0,
5088 TDSELCTRL,
Marek Vasut46991d52018-10-31 20:34:51 +01005089};
5090
5091static const struct pinmux_ioctrl_reg pinmux_ioctrl_regs[] = {
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02005092 [POCCTRL0] = { 0xe6060380, },
5093 [TDSELCTRL] = { 0xe60603c0, },
Marek Vasut46991d52018-10-31 20:34:51 +01005094 { /* sentinel */ },
5095};
5096
Marek Vasut88e81ec2019-03-04 22:39:51 +01005097static int r8a77990_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin,
5098 u32 *pocctrl)
Marek Vasut46991d52018-10-31 20:34:51 +01005099{
5100 int bit = -EINVAL;
5101
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02005102 *pocctrl = pinmux_ioctrl_regs[POCCTRL0].reg;
Marek Vasut46991d52018-10-31 20:34:51 +01005103
5104 if (pin >= RCAR_GP_PIN(3, 0) && pin <= RCAR_GP_PIN(3, 11))
5105 bit = pin & 0x1f;
5106
5107 if (pin >= RCAR_GP_PIN(4, 0) && pin <= RCAR_GP_PIN(4, 10))
5108 bit = (pin & 0x1f) + 19;
5109
5110 return bit;
5111}
5112
Marek Vasut88e81ec2019-03-04 22:39:51 +01005113static const struct pinmux_bias_reg pinmux_bias_regs[] = {
5114 { PINMUX_BIAS_REG("PUEN0", 0xe6060400, "PUD0", 0xe6060440) {
5115 [0] = RCAR_GP_PIN(2, 23), /* RD# */
5116 [1] = RCAR_GP_PIN(2, 22), /* BS# */
5117 [2] = RCAR_GP_PIN(2, 21), /* AVB_PHY_INT */
5118 [3] = PIN_NUMBER('P', 5), /* AVB_MDC */
5119 [4] = PIN_NUMBER('P', 4), /* AVB_MDIO */
5120 [5] = RCAR_GP_PIN(2, 20), /* AVB_TXCREFCLK */
5121 [6] = PIN_NUMBER('N', 6), /* AVB_TD3 */
5122 [7] = PIN_NUMBER('N', 5), /* AVB_TD2 */
5123 [8] = PIN_NUMBER('N', 3), /* AVB_TD1 */
5124 [9] = PIN_NUMBER('N', 2), /* AVB_TD0 */
5125 [10] = PIN_NUMBER('N', 1), /* AVB_TXC */
5126 [11] = PIN_NUMBER('P', 3), /* AVB_TX_CTL */
5127 [12] = RCAR_GP_PIN(2, 19), /* AVB_RD3 */
5128 [13] = RCAR_GP_PIN(2, 18), /* AVB_RD2 */
5129 [14] = RCAR_GP_PIN(2, 17), /* AVB_RD1 */
5130 [15] = RCAR_GP_PIN(2, 16), /* AVB_RD0 */
5131 [16] = RCAR_GP_PIN(2, 15), /* AVB_RXC */
5132 [17] = RCAR_GP_PIN(2, 14), /* AVB_RX_CTL */
5133 [18] = RCAR_GP_PIN(2, 13), /* RPC_RESET# */
5134 [19] = RCAR_GP_PIN(2, 12), /* RPC_INT# */
5135 [20] = RCAR_GP_PIN(2, 11), /* QSPI1_SSL */
5136 [21] = RCAR_GP_PIN(2, 10), /* QSPI1_IO3 */
5137 [22] = RCAR_GP_PIN(2, 9), /* QSPI1_IO2 */
5138 [23] = RCAR_GP_PIN(2, 8), /* QSPI1_MISO/IO1 */
5139 [24] = RCAR_GP_PIN(2, 7), /* QSPI1_MOSI/IO0 */
5140 [25] = RCAR_GP_PIN(2, 6), /* QSPI1_SPCLK */
5141 [26] = RCAR_GP_PIN(2, 5), /* QSPI0_SSL */
5142 [27] = RCAR_GP_PIN(2, 4), /* QSPI0_IO3 */
5143 [28] = RCAR_GP_PIN(2, 3), /* QSPI0_IO2 */
5144 [29] = RCAR_GP_PIN(2, 2), /* QSPI0_MISO/IO1 */
5145 [30] = RCAR_GP_PIN(2, 1), /* QSPI0_MOSI/IO0 */
5146 [31] = RCAR_GP_PIN(2, 0), /* QSPI0_SPCLK */
5147 } },
5148 { PINMUX_BIAS_REG("PUEN1", 0xe6060404, "PUD1", 0xe6060444) {
5149 [0] = RCAR_GP_PIN(0, 4), /* D4 */
5150 [1] = RCAR_GP_PIN(0, 3), /* D3 */
5151 [2] = RCAR_GP_PIN(0, 2), /* D2 */
5152 [3] = RCAR_GP_PIN(0, 1), /* D1 */
5153 [4] = RCAR_GP_PIN(0, 0), /* D0 */
5154 [5] = RCAR_GP_PIN(1, 22), /* WE0# */
5155 [6] = RCAR_GP_PIN(1, 21), /* CS0# */
5156 [7] = RCAR_GP_PIN(1, 20), /* CLKOUT */
5157 [8] = RCAR_GP_PIN(1, 19), /* A19 */
5158 [9] = RCAR_GP_PIN(1, 18), /* A18 */
5159 [10] = RCAR_GP_PIN(1, 17), /* A17 */
5160 [11] = RCAR_GP_PIN(1, 16), /* A16 */
5161 [12] = RCAR_GP_PIN(1, 15), /* A15 */
5162 [13] = RCAR_GP_PIN(1, 14), /* A14 */
5163 [14] = RCAR_GP_PIN(1, 13), /* A13 */
5164 [15] = RCAR_GP_PIN(1, 12), /* A12 */
5165 [16] = RCAR_GP_PIN(1, 11), /* A11 */
5166 [17] = RCAR_GP_PIN(1, 10), /* A10 */
5167 [18] = RCAR_GP_PIN(1, 9), /* A9 */
5168 [19] = RCAR_GP_PIN(1, 8), /* A8 */
5169 [20] = RCAR_GP_PIN(1, 7), /* A7 */
5170 [21] = RCAR_GP_PIN(1, 6), /* A6 */
5171 [22] = RCAR_GP_PIN(1, 5), /* A5 */
5172 [23] = RCAR_GP_PIN(1, 4), /* A4 */
5173 [24] = RCAR_GP_PIN(1, 3), /* A3 */
5174 [25] = RCAR_GP_PIN(1, 2), /* A2 */
5175 [26] = RCAR_GP_PIN(1, 1), /* A1 */
5176 [27] = RCAR_GP_PIN(1, 0), /* A0 */
5177 [28] = PIN_NONE,
5178 [29] = PIN_NONE,
5179 [30] = RCAR_GP_PIN(2, 25), /* PUEN_EX_WAIT0 */
5180 [31] = RCAR_GP_PIN(2, 24), /* PUEN_RD/WR# */
5181 } },
5182 { PINMUX_BIAS_REG("PUEN2", 0xe6060408, "PUD2", 0xe6060448) {
5183 [0] = RCAR_GP_PIN(3, 1), /* SD0_CMD */
5184 [1] = RCAR_GP_PIN(3, 0), /* SD0_CLK */
5185 [2] = PIN_NUMBER('H', 1), /* ASEBRK */
5186 [3] = PIN_NONE,
5187 [4] = PIN_NUMBER('G', 2), /* TDI */
5188 [5] = PIN_NUMBER('F', 3), /* TMS */
5189 [6] = PIN_NUMBER('F', 4), /* TCK */
5190 [7] = PIN_NUMBER('F', 1), /* TRST# */
5191 [8] = PIN_NONE,
5192 [9] = PIN_NONE,
5193 [10] = PIN_NONE,
5194 [11] = PIN_NONE,
5195 [12] = PIN_NONE,
5196 [13] = PIN_NONE,
5197 [14] = PIN_NONE,
5198 [15] = PIN_NUMBER('G', 3), /* FSCLKST# */
5199 [16] = RCAR_GP_PIN(0, 17), /* SDA4 */
5200 [17] = RCAR_GP_PIN(0, 16), /* SCL4 */
5201 [18] = PIN_NONE,
5202 [19] = PIN_NONE,
5203 [20] = PIN_A_NUMBER('D', 3), /* PRESETOUT# */
5204 [21] = RCAR_GP_PIN(0, 15), /* D15 */
5205 [22] = RCAR_GP_PIN(0, 14), /* D14 */
5206 [23] = RCAR_GP_PIN(0, 13), /* D13 */
5207 [24] = RCAR_GP_PIN(0, 12), /* D12 */
5208 [25] = RCAR_GP_PIN(0, 11), /* D11 */
5209 [26] = RCAR_GP_PIN(0, 10), /* D10 */
5210 [27] = RCAR_GP_PIN(0, 9), /* D9 */
5211 [28] = RCAR_GP_PIN(0, 8), /* D8 */
5212 [29] = RCAR_GP_PIN(0, 7), /* D7 */
5213 [30] = RCAR_GP_PIN(0, 6), /* D6 */
5214 [31] = RCAR_GP_PIN(0, 5), /* D5 */
5215 } },
5216 { PINMUX_BIAS_REG("PUEN3", 0xe606040c, "PUD3", 0xe606044c) {
5217 [0] = RCAR_GP_PIN(5, 0), /* SCK0_A */
Eugeniu Roscaf0066b02019-07-09 18:27:11 +02005218 [1] = RCAR_GP_PIN(5, 4), /* RTS0#_A */
Marek Vasut88e81ec2019-03-04 22:39:51 +01005219 [2] = RCAR_GP_PIN(5, 3), /* CTS0#_A */
5220 [3] = RCAR_GP_PIN(5, 2), /* TX0_A */
5221 [4] = RCAR_GP_PIN(5, 1), /* RX0_A */
5222 [5] = PIN_NONE,
5223 [6] = PIN_NONE,
5224 [7] = RCAR_GP_PIN(3, 15), /* SD1_WP */
5225 [8] = RCAR_GP_PIN(3, 14), /* SD1_CD */
5226 [9] = RCAR_GP_PIN(3, 13), /* SD0_WP */
5227 [10] = RCAR_GP_PIN(3, 12), /* SD0_CD */
5228 [11] = RCAR_GP_PIN(4, 10), /* SD3_DS */
5229 [12] = RCAR_GP_PIN(4, 9), /* SD3_DAT7 */
5230 [13] = RCAR_GP_PIN(4, 8), /* SD3_DAT6 */
5231 [14] = RCAR_GP_PIN(4, 7), /* SD3_DAT5 */
5232 [15] = RCAR_GP_PIN(4, 6), /* SD3_DAT4 */
5233 [16] = RCAR_GP_PIN(4, 5), /* SD3_DAT3 */
5234 [17] = RCAR_GP_PIN(4, 4), /* SD3_DAT2 */
5235 [18] = RCAR_GP_PIN(4, 3), /* SD3_DAT1 */
5236 [19] = RCAR_GP_PIN(4, 2), /* SD3_DAT0 */
5237 [20] = RCAR_GP_PIN(4, 1), /* SD3_CMD */
5238 [21] = RCAR_GP_PIN(4, 0), /* SD3_CLK */
5239 [22] = RCAR_GP_PIN(3, 11), /* SD1_DAT3 */
5240 [23] = RCAR_GP_PIN(3, 10), /* SD1_DAT2 */
5241 [24] = RCAR_GP_PIN(3, 9), /* SD1_DAT1 */
5242 [25] = RCAR_GP_PIN(3, 8), /* SD1_DAT0 */
5243 [26] = RCAR_GP_PIN(3, 7), /* SD1_CMD */
5244 [27] = RCAR_GP_PIN(3, 6), /* SD1_CLK */
5245 [28] = RCAR_GP_PIN(3, 5), /* SD0_DAT3 */
5246 [29] = RCAR_GP_PIN(3, 4), /* SD0_DAT2 */
5247 [30] = RCAR_GP_PIN(3, 3), /* SD0_DAT1 */
5248 [31] = RCAR_GP_PIN(3, 2), /* SD0_DAT0 */
5249 } },
5250 { PINMUX_BIAS_REG("PUEN4", 0xe6060410, "PUD4", 0xe6060450) {
5251 [0] = RCAR_GP_PIN(6, 8), /* AUDIO_CLKA */
5252 [1] = RCAR_GP_PIN(6, 16), /* SSI_SDATA6 */
5253 [2] = RCAR_GP_PIN(6, 15), /* SSI_WS6 */
5254 [3] = RCAR_GP_PIN(6, 14), /* SSI_SCK6 */
5255 [4] = RCAR_GP_PIN(6, 13), /* SSI_SDATA5 */
5256 [5] = RCAR_GP_PIN(6, 12), /* SSI_WS5 */
5257 [6] = RCAR_GP_PIN(6, 11), /* SSI_SCK5 */
5258 [7] = RCAR_GP_PIN(6, 10), /* SSI_SDATA4 */
5259 [8] = RCAR_GP_PIN(6, 7), /* SSI_SDATA3 */
5260 [9] = RCAR_GP_PIN(6, 6), /* SSI_WS349 */
5261 [10] = RCAR_GP_PIN(6, 5), /* SSI_SCK349 */
5262 [11] = RCAR_GP_PIN(6, 4), /* SSI_SDATA2 */
5263 [12] = RCAR_GP_PIN(6, 3), /* SSI_SDATA1 */
5264 [13] = RCAR_GP_PIN(6, 2), /* SSI_SDATA0 */
5265 [14] = RCAR_GP_PIN(6, 1), /* SSI_WS01239 */
5266 [15] = RCAR_GP_PIN(6, 0), /* SSI_SCK01239 */
5267 [16] = PIN_NUMBER('T', 21), /* MLB_REF */
5268 [17] = RCAR_GP_PIN(5, 19), /* MLB_DAT */
5269 [18] = RCAR_GP_PIN(5, 18), /* MLB_SIG */
5270 [19] = RCAR_GP_PIN(5, 17), /* MLB_CLK */
5271 [20] = RCAR_GP_PIN(5, 16), /* SSI_SDATA9 */
5272 [21] = RCAR_GP_PIN(5, 15), /* MSIOF0_SS2 */
5273 [22] = RCAR_GP_PIN(5, 14), /* MSIOF0_SS1 */
5274 [23] = RCAR_GP_PIN(5, 13), /* MSIOF0_SYNC */
5275 [24] = RCAR_GP_PIN(5, 12), /* MSIOF0_TXD */
5276 [25] = RCAR_GP_PIN(5, 11), /* MSIOF0_RXD */
5277 [26] = RCAR_GP_PIN(5, 10), /* MSIOF0_SCK */
5278 [27] = RCAR_GP_PIN(5, 9), /* RX2_A */
5279 [28] = RCAR_GP_PIN(5, 8), /* TX2_A */
5280 [29] = RCAR_GP_PIN(5, 7), /* SCK2_A */
5281 [30] = RCAR_GP_PIN(5, 6), /* TX1 */
5282 [31] = RCAR_GP_PIN(5, 5), /* RX1 */
5283 } },
5284 { PINMUX_BIAS_REG("PUEN5", 0xe6060414, "PUD5", 0xe6060454) {
5285 [0] = PIN_NONE,
5286 [1] = PIN_NONE,
5287 [2] = PIN_NONE,
5288 [3] = PIN_NONE,
5289 [4] = PIN_NONE,
5290 [5] = PIN_NONE,
5291 [6] = PIN_NONE,
5292 [7] = PIN_NONE,
5293 [8] = PIN_NONE,
5294 [9] = PIN_NONE,
5295 [10] = PIN_NONE,
5296 [11] = PIN_NONE,
5297 [12] = PIN_NONE,
5298 [13] = PIN_NONE,
5299 [14] = PIN_NONE,
5300 [15] = PIN_NONE,
5301 [16] = PIN_NONE,
5302 [17] = PIN_NONE,
5303 [18] = PIN_NONE,
5304 [19] = PIN_NONE,
5305 [20] = PIN_NONE,
5306 [21] = PIN_NONE,
5307 [22] = PIN_NONE,
5308 [23] = PIN_NONE,
5309 [24] = PIN_NONE,
5310 [25] = PIN_NONE,
5311 [26] = PIN_NONE,
5312 [27] = PIN_NONE,
5313 [28] = PIN_NONE,
5314 [29] = PIN_NONE,
5315 [30] = RCAR_GP_PIN(6, 9), /* PUEN_USB30_OVC */
5316 [31] = RCAR_GP_PIN(6, 17), /* PUEN_USB30_PWEN */
5317 } },
5318 { /* sentinel */ },
5319};
5320
5321static unsigned int r8a77990_pinmux_get_bias(struct sh_pfc *pfc,
5322 unsigned int pin)
5323{
5324 const struct pinmux_bias_reg *reg;
5325 unsigned int bit;
5326
5327 reg = sh_pfc_pin_to_bias_reg(pfc, pin, &bit);
5328 if (!reg)
5329 return PIN_CONFIG_BIAS_DISABLE;
5330
5331 if (!(sh_pfc_read(pfc, reg->puen) & BIT(bit)))
5332 return PIN_CONFIG_BIAS_DISABLE;
5333 else if (sh_pfc_read(pfc, reg->pud) & BIT(bit))
5334 return PIN_CONFIG_BIAS_PULL_UP;
5335 else
5336 return PIN_CONFIG_BIAS_PULL_DOWN;
5337}
5338
5339static void r8a77990_pinmux_set_bias(struct sh_pfc *pfc, unsigned int pin,
5340 unsigned int bias)
5341{
5342 const struct pinmux_bias_reg *reg;
5343 u32 enable, updown;
5344 unsigned int bit;
5345
5346 reg = sh_pfc_pin_to_bias_reg(pfc, pin, &bit);
5347 if (!reg)
5348 return;
5349
5350 enable = sh_pfc_read(pfc, reg->puen) & ~BIT(bit);
5351 if (bias != PIN_CONFIG_BIAS_DISABLE)
5352 enable |= BIT(bit);
5353
5354 updown = sh_pfc_read(pfc, reg->pud) & ~BIT(bit);
5355 if (bias == PIN_CONFIG_BIAS_PULL_UP)
5356 updown |= BIT(bit);
5357
5358 sh_pfc_write(pfc, reg->pud, updown);
5359 sh_pfc_write(pfc, reg->puen, enable);
5360}
5361
Marek Vasut46991d52018-10-31 20:34:51 +01005362static const struct sh_pfc_soc_operations r8a77990_pinmux_ops = {
5363 .pin_to_pocctrl = r8a77990_pin_to_pocctrl,
Marek Vasut88e81ec2019-03-04 22:39:51 +01005364 .get_bias = r8a77990_pinmux_get_bias,
5365 .set_bias = r8a77990_pinmux_set_bias,
5366};
5367
5368#ifdef CONFIG_PINCTRL_PFC_R8A774C0
5369const struct sh_pfc_soc_info r8a774c0_pinmux_info = {
5370 .name = "r8a774c0_pfc",
5371 .ops = &r8a77990_pinmux_ops,
5372 .unlock_reg = 0xe6060000, /* PMMR */
5373
5374 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
5375
5376 .pins = pinmux_pins,
5377 .nr_pins = ARRAY_SIZE(pinmux_pins),
5378 .groups = pinmux_groups.common,
5379 .nr_groups = ARRAY_SIZE(pinmux_groups.common),
5380 .functions = pinmux_functions.common,
5381 .nr_functions = ARRAY_SIZE(pinmux_functions.common),
5382
5383 .cfg_regs = pinmux_config_regs,
5384 .bias_regs = pinmux_bias_regs,
5385 .ioctrl_regs = pinmux_ioctrl_regs,
5386
5387 .pinmux_data = pinmux_data,
5388 .pinmux_data_size = ARRAY_SIZE(pinmux_data),
Marek Vasut46991d52018-10-31 20:34:51 +01005389};
Marek Vasut88e81ec2019-03-04 22:39:51 +01005390#endif
Marek Vasut46991d52018-10-31 20:34:51 +01005391
Marek Vasut88e81ec2019-03-04 22:39:51 +01005392#ifdef CONFIG_PINCTRL_PFC_R8A77990
Marek Vasut68a77042018-04-26 13:09:20 +02005393const struct sh_pfc_soc_info r8a77990_pinmux_info = {
5394 .name = "r8a77990_pfc",
Marek Vasut46991d52018-10-31 20:34:51 +01005395 .ops = &r8a77990_pinmux_ops,
Marek Vasut68a77042018-04-26 13:09:20 +02005396 .unlock_reg = 0xe6060000, /* PMMR */
5397
5398 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
5399
5400 .pins = pinmux_pins,
5401 .nr_pins = ARRAY_SIZE(pinmux_pins),
Marek Vasut88e81ec2019-03-04 22:39:51 +01005402 .groups = pinmux_groups.common,
5403 .nr_groups = ARRAY_SIZE(pinmux_groups.common) +
5404 ARRAY_SIZE(pinmux_groups.automotive),
5405 .functions = pinmux_functions.common,
5406 .nr_functions = ARRAY_SIZE(pinmux_functions.common) +
5407 ARRAY_SIZE(pinmux_functions.automotive),
Marek Vasut68a77042018-04-26 13:09:20 +02005408
5409 .cfg_regs = pinmux_config_regs,
Marek Vasut88e81ec2019-03-04 22:39:51 +01005410 .bias_regs = pinmux_bias_regs,
Marek Vasut46991d52018-10-31 20:34:51 +01005411 .ioctrl_regs = pinmux_ioctrl_regs,
Marek Vasut68a77042018-04-26 13:09:20 +02005412
5413 .pinmux_data = pinmux_data,
5414 .pinmux_data_size = ARRAY_SIZE(pinmux_data),
5415};
Marek Vasut88e81ec2019-03-04 22:39:51 +01005416#endif