1/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * (C) Copyright 2013
4 * Texas Instruments Incorporated
5 *
6 * Nishant Kamat <nskamat@ti.com>
7 * Lokesh Vutla <lokeshvutla@ti.com>
8 */
9#ifndef _MUX_DRA7XX_H_
10#define _MUX_DRA7XX_H_
11
12#include <asm/types.h>
13
14#define PULL_ENA		(0 << 16)
15#define PULL_DIS		(1 << 16)
16#define PULL_UP			(1 << 17)
17#define INPUT_EN		(1 << 18)
18#define SLEWCONTROL		(1 << 19)
19
20/* Active pin states */
21#define PIN_OUTPUT		(0 | PULL_DIS)
22#define PIN_OUTPUT_PULLUP	(PULL_UP)
23#define PIN_OUTPUT_PULLDOWN	(0)
24#define PIN_INPUT		(INPUT_EN | PULL_DIS)
25#define PIN_INPUT_SLEW		(INPUT_EN | SLEWCONTROL)
26#define PIN_INPUT_PULLUP	(PULL_ENA | INPUT_EN | PULL_UP)
27#define PIN_INPUT_PULLDOWN	(PULL_ENA | INPUT_EN)
28
29#define M0	0
30#define M1	1
31#define M2	2
32#define M3	3
33#define M4	4
34#define M5	5
35#define M6	6
36#define M7	7
37#define M8	8
38#define M9	9
39#define M10	10
40#define M11	11
41#define M12	12
42#define M13	13
43#define M14	14
44#define M15	15
45
46#define MODE_SELECT		(1 << 8)
47#define DELAYMODE_SHIFT		4
48
49#define MANUAL_MODE	MODE_SELECT
50
51#define VIRTUAL_MODE0	(MODE_SELECT | (0x0 << DELAYMODE_SHIFT))
52#define VIRTUAL_MODE1	(MODE_SELECT | (0x1 << DELAYMODE_SHIFT))
53#define VIRTUAL_MODE2	(MODE_SELECT | (0x2 << DELAYMODE_SHIFT))
54#define VIRTUAL_MODE3	(MODE_SELECT | (0x3 << DELAYMODE_SHIFT))
55#define VIRTUAL_MODE4	(MODE_SELECT | (0x4 << DELAYMODE_SHIFT))
56#define VIRTUAL_MODE5	(MODE_SELECT | (0x5 << DELAYMODE_SHIFT))
57#define VIRTUAL_MODE6	(MODE_SELECT | (0x6 << DELAYMODE_SHIFT))
58#define VIRTUAL_MODE7	(MODE_SELECT | (0x7 << DELAYMODE_SHIFT))
59#define VIRTUAL_MODE8	(MODE_SELECT | (0x8 << DELAYMODE_SHIFT))
60#define VIRTUAL_MODE9	(MODE_SELECT | (0x9 << DELAYMODE_SHIFT))
61#define VIRTUAL_MODE10	(MODE_SELECT | (0xa << DELAYMODE_SHIFT))
62#define VIRTUAL_MODE11	(MODE_SELECT | (0xb << DELAYMODE_SHIFT))
63#define VIRTUAL_MODE12	(MODE_SELECT | (0xc << DELAYMODE_SHIFT))
64#define VIRTUAL_MODE13	(MODE_SELECT | (0xd << DELAYMODE_SHIFT))
65#define VIRTUAL_MODE14	(MODE_SELECT | (0xe << DELAYMODE_SHIFT))
66#define VIRTUAL_MODE15	(MODE_SELECT | (0xf << DELAYMODE_SHIFT))
67
68#define SAFE_MODE	M15
69
70#define GPMC_AD0	0x000
71#define GPMC_AD1	0x004
72#define GPMC_AD2	0x008
73#define GPMC_AD3	0x00C
74#define GPMC_AD4	0x010
75#define GPMC_AD5	0x014
76#define GPMC_AD6	0x018
77#define GPMC_AD7	0x01C
78#define GPMC_AD8	0x020
79#define GPMC_AD9	0x024
80#define GPMC_AD10	0x028
81#define GPMC_AD11	0x02C
82#define GPMC_AD12	0x030
83#define GPMC_AD13	0x034
84#define GPMC_AD14	0x038
85#define GPMC_AD15	0x03C
86#define GPMC_A0		0x040
87#define GPMC_A1		0x044
88#define GPMC_A2		0x048
89#define GPMC_A3		0x04C
90#define GPMC_A4		0x050
91#define GPMC_A5		0x054
92#define GPMC_A6		0x058
93#define GPMC_A7		0x05C
94#define GPMC_A8		0x060
95#define GPMC_A9		0x064
96#define GPMC_A10	0x068
97#define GPMC_A11	0x06C
98#define GPMC_A12	0x070
99#define GPMC_A13	0x074
100#define GPMC_A14	0x078
101#define GPMC_A15	0x07C
102#define GPMC_A16	0x080
103#define GPMC_A17	0x084
104#define GPMC_A18	0x088
105#define GPMC_A19	0x08C
106#define GPMC_A20	0x090
107#define GPMC_A21	0x094
108#define GPMC_A22	0x098
109#define GPMC_A23	0x09C
110#define GPMC_A24	0x0A0
111#define GPMC_A25	0x0A4
112#define GPMC_A26	0x0A8
113#define GPMC_A27	0x0AC
114#define GPMC_CS1	0x0B0
115#define GPMC_CS0	0x0B4
116#define GPMC_CS2	0x0B8
117#define GPMC_CS3	0x0BC
118#define GPMC_CLK	0x0C0
119#define GPMC_ADVN_ALE	0x0C4
120#define GPMC_OEN_REN	0x0C8
121#define GPMC_WEN	0x0CC
122#define GPMC_BEN0	0x0D0
123#define GPMC_BEN1	0x0D4
124#define GPMC_WAIT0	0x0D8
125#define VIN1A_CLK0	0x0DC
126#define VIN1B_CLK1	0x0E0
127#define VIN1A_DE0	0x0E4
128#define VIN1A_FLD0	0x0E8
129#define VIN1A_HSYNC0	0x0EC
130#define VIN1A_VSYNC0	0x0F0
131#define VIN1A_D0	0x0F4
132#define VIN1A_D1	0x0F8
133#define VIN1A_D2	0x0FC
134#define VIN1A_D3	0x100
135#define VIN1A_D4	0x104
136#define VIN1A_D5	0x108
137#define VIN1A_D6	0x10C
138#define VIN1A_D7	0x110
139#define VIN1A_D8	0x114
140#define VIN1A_D9	0x118
141#define VIN1A_D10	0x11C
142#define VIN1A_D11	0x120
143#define VIN1A_D12	0x124
144#define VIN1A_D13	0x128
145#define VIN1A_D14	0x12C
146#define VIN1A_D15	0x130
147#define VIN1A_D16	0x134
148#define VIN1A_D17	0x138
149#define VIN1A_D18	0x13C
150#define VIN1A_D19	0x140
151#define VIN1A_D20	0x144
152#define VIN1A_D21	0x148
153#define VIN1A_D22	0x14C
154#define VIN1A_D23	0x150
155#define VIN2A_CLK0	0x154
156#define VIN2A_DE0	0x158
157#define VIN2A_FLD0	0x15C
158#define VIN2A_HSYNC0	0x160
159#define VIN2A_VSYNC0	0x164
160#define VIN2A_D0	0x168
161#define VIN2A_D1	0x16C
162#define VIN2A_D2	0x170
163#define VIN2A_D3	0x174
164#define VIN2A_D4	0x178
165#define VIN2A_D5	0x17C
166#define VIN2A_D6	0x180
167#define VIN2A_D7	0x184
168#define VIN2A_D8	0x188
169#define VIN2A_D9	0x18C
170#define VIN2A_D10	0x190
171#define VIN2A_D11	0x194
172#define VIN2A_D12	0x198
173#define VIN2A_D13	0x19C
174#define VIN2A_D14	0x1A0
175#define VIN2A_D15	0x1A4
176#define VIN2A_D16	0x1A8
177#define VIN2A_D17	0x1AC
178#define VIN2A_D18	0x1B0
179#define VIN2A_D19	0x1B4
180#define VIN2A_D20	0x1B8
181#define VIN2A_D21	0x1BC
182#define VIN2A_D22	0x1C0
183#define VIN2A_D23	0x1C4
184#define VOUT1_CLK	0x1C8
185#define VOUT1_DE	0x1CC
186#define VOUT1_FLD	0x1D0
187#define VOUT1_HSYNC	0x1D4
188#define VOUT1_VSYNC	0x1D8
189#define VOUT1_D0	0x1DC
190#define VOUT1_D1	0x1E0
191#define VOUT1_D2	0x1E4
192#define VOUT1_D3	0x1E8
193#define VOUT1_D4	0x1EC
194#define VOUT1_D5	0x1F0
195#define VOUT1_D6	0x1F4
196#define VOUT1_D7	0x1F8
197#define VOUT1_D8	0x1FC
198#define VOUT1_D9	0x200
199#define VOUT1_D10	0x204
200#define VOUT1_D11	0x208
201#define VOUT1_D12	0x20C
202#define VOUT1_D13	0x210
203#define VOUT1_D14	0x214
204#define VOUT1_D15	0x218
205#define VOUT1_D16	0x21C
206#define VOUT1_D17	0x220
207#define VOUT1_D18	0x224
208#define VOUT1_D19	0x228
209#define VOUT1_D20	0x22C
210#define VOUT1_D21	0x230
211#define VOUT1_D22	0x234
212#define VOUT1_D23	0x238
213#define MDIO_MCLK	0x23C
214#define MDIO_D		0x240
215#define RMII_MHZ_50_CLK	0x244
216#define UART3_RXD	0x248
217#define UART3_TXD	0x24C
218#define RGMII0_TXC	0x250
219#define RGMII0_TXCTL	0x254
220#define RGMII0_TXD3	0x258
221#define RGMII0_TXD2	0x25C
222#define RGMII0_TXD1	0x260
223#define RGMII0_TXD0	0x264
224#define RGMII0_RXC	0x268
225#define RGMII0_RXCTL	0x26C
226#define RGMII0_RXD3	0x270
227#define RGMII0_RXD2	0x274
228#define RGMII0_RXD1	0x278
229#define RGMII0_RXD0	0x27C
230#define USB1_DRVVBUS	0x280
231#define USB2_DRVVBUS	0x284
232#define GPIO6_14	0x288
233#define GPIO6_15	0x28C
234#define GPIO6_16	0x290
235#define XREF_CLK0	0x294
236#define XREF_CLK1	0x298
237#define XREF_CLK2	0x29C
238#define XREF_CLK3	0x2A0
239#define MCASP1_ACLKX	0x2A4
240#define MCASP1_FSX	0x2A8
241#define MCASP1_ACLKR	0x2AC
242#define MCASP1_FSR	0x2B0
243#define MCASP1_AXR0	0x2B4
244#define MCASP1_AXR1	0x2B8
245#define MCASP1_AXR2	0x2BC
246#define MCASP1_AXR3	0x2C0
247#define MCASP1_AXR4	0x2C4
248#define MCASP1_AXR5	0x2C8
249#define MCASP1_AXR6	0x2CC
250#define MCASP1_AXR7	0x2D0
251#define MCASP1_AXR8	0x2D4
252#define MCASP1_AXR9	0x2D8
253#define MCASP1_AXR10	0x2DC
254#define MCASP1_AXR11	0x2E0
255#define MCASP1_AXR12	0x2E4
256#define MCASP1_AXR13	0x2E8
257#define MCASP1_AXR14	0x2EC
258#define MCASP1_AXR15	0x2F0
259#define MCASP2_ACLKX	0x2F4
260#define MCASP2_FSX	0x2F8
261#define MCASP2_ACLKR	0x2FC
262#define MCASP2_FSR	0x300
263#define MCASP2_AXR0	0x304
264#define MCASP2_AXR1	0x308
265#define MCASP2_AXR2	0x30C
266#define MCASP2_AXR3	0x310
267#define MCASP2_AXR4	0x314
268#define MCASP2_AXR5	0x318
269#define MCASP2_AXR6	0x31C
270#define MCASP2_AXR7	0x320
271#define MCASP3_ACLKX	0x324
272#define MCASP3_FSX	0x328
273#define MCASP3_AXR0	0x32C
274#define MCASP3_AXR1	0x330
275#define MCASP4_ACLKX	0x334
276#define MCASP4_FSX	0x338
277#define MCASP4_AXR0	0x33C
278#define MCASP4_AXR1	0x340
279#define MCASP5_ACLKX	0x344
280#define MCASP5_FSX	0x348
281#define MCASP5_AXR0	0x34C
282#define MCASP5_AXR1	0x350
283#define MMC1_CLK	0x354
284#define MMC1_CMD	0x358
285#define MMC1_DAT0	0x35C
286#define MMC1_DAT1	0x360
287#define MMC1_DAT2	0x364
288#define MMC1_DAT3	0x368
289#define MMC1_SDCD	0x36C
290#define MMC1_SDWP	0x370
291#define GPIO6_10	0x374
292#define GPIO6_11	0x378
293#define MMC3_CLK	0x37C
294#define MMC3_CMD	0x380
295#define MMC3_DAT0	0x384
296#define MMC3_DAT1	0x388
297#define MMC3_DAT2	0x38C
298#define MMC3_DAT3	0x390
299#define MMC3_DAT4	0x394
300#define MMC3_DAT5	0x398
301#define MMC3_DAT6	0x39C
302#define MMC3_DAT7	0x3A0
303#define SPI1_SCLK	0x3A4
304#define SPI1_D1		0x3A8
305#define SPI1_D0		0x3AC
306#define SPI1_CS0	0x3B0
307#define SPI1_CS1	0x3B4
308#define SPI1_CS2	0x3B8
309#define SPI1_CS3	0x3BC
310#define SPI2_SCLK	0x3C0
311#define SPI2_D1		0x3C4
312#define SPI2_D0		0x3C8
313#define SPI2_CS0	0x3CC
314#define DCAN1_TX	0x3D0
315#define DCAN1_RX	0x3D4
316#define DCAN2_TX	0x3D8
317#define DCAN2_RX	0x3DC
318#define UART1_RXD	0x3E0
319#define UART1_TXD	0x3E4
320#define UART1_CTSN	0x3E8
321#define UART1_RTSN	0x3EC
322#define UART2_RXD	0x3F0
323#define UART2_TXD	0x3F4
324#define UART2_CTSN	0x3F8
325#define UART2_RTSN	0x3FC
326#define I2C1_SDA	0x400
327#define I2C1_SCL	0x404
328#define I2C2_SDA	0x408
329#define I2C2_SCL	0x40C
330#define I2C3_SDA	0x410
331#define I2C3_SCL	0x414
332#define WAKEUP0		0x418
333#define WAKEUP1		0x41C
334#define WAKEUP2		0x420
335#define WAKEUP3		0x424
336#define ON_OFF		0x428
337#define RTC_PORZ	0x42C
338#define TMS		0x430
339#define TDI		0x434
340#define TDO		0x438
341#define TCLK		0x43C
342#define TRSTN		0x440
343#define RTCK		0x444
344#define EMU0		0x448
345#define EMU1		0x44C
346#define EMU2		0x450
347#define EMU3		0x454
348#define EMU4		0x458
349#define RESETN		0x45C
350#define NMIN_DSP	0x460
351#define RSTOUTN		0x464
352
353#define MCAN_SEL_ALT_MASK	0x6000
354#define MCAN_SEL		0x2000
355
356#endif /* _MUX_DRA7XX_H_ */
357