1/*-
2 * SPDX-License-Identifier: BSD-2-Clause
3 *
4 * Copyright (c) 2013 Ruslan Bukin <br@bsdpad.com>
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 *    notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 *    notice, this list of conditions and the following disclaimer in the
14 *    documentation and/or other materials provided with the distribution.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 */
28
29#define	IOMUXC(n)	(n * 0x04)
30#define	IOMUXCN		135
31#define	IOMUXC_PTA6	0x000	/* Software MUX Pad Control Register 0 */
32#define	IOMUXC_PTA8	0x004	/* Software MUX Pad Control Register 1 */
33#define	IOMUXC_PTA9	0x008	/* Software MUX Pad Control Register 2 */
34#define	IOMUXC_PTA10	0x00C	/* Software MUX Pad Control Register 3 */
35#define	IOMUXC_PTA11	0x010	/* Software MUX Pad Control Register 4 */
36#define	IOMUXC_PTA12	0x014	/* Software MUX Pad Control Register 5 */
37#define	IOMUXC_PTA16	0x018	/* Software MUX Pad Control Register 6 */
38#define	IOMUXC_PTA17	0x01C	/* Software MUX Pad Control Register 7 */
39#define	IOMUXC_PTA18	0x020	/* Software MUX Pad Control Register 8 */
40#define	IOMUXC_PTA19	0x024	/* Software MUX Pad Control Register 9 */
41#define	IOMUXC_PTA20	0x028	/* Software MUX Pad Control Register 10 */
42#define	IOMUXC_PTA21	0x02C	/* Software MUX Pad Control Register 11 */
43#define	IOMUXC_PTA22	0x030	/* Software MUX Pad Control Register 12 */
44#define	IOMUXC_PTA23	0x034	/* Software MUX Pad Control Register 13 */
45#define	IOMUXC_PTA24	0x038	/* Software MUX Pad Control Register 14 */
46#define	IOMUXC_PTA25	0x03C	/* Software MUX Pad Control Register 15 */
47#define	IOMUXC_PTA26	0x040	/* Software MUX Pad Control Register 16 */
48#define	IOMUXC_PTA27	0x044	/* Software MUX Pad Control Register 17 */
49#define	IOMUXC_PTA28	0x048	/* Software MUX Pad Control Register 18 */
50#define	IOMUXC_PTA29	0x04C	/* Software MUX Pad Control Register 19 */
51#define	IOMUXC_PTA30	0x050	/* Software MUX Pad Control Register 20 */
52#define	IOMUXC_PTA31	0x054	/* Software MUX Pad Control Register 21 */
53#define	IOMUXC_PTB0	0x058	/* Software MUX Pad Control Register 22 */
54#define	IOMUXC_PTB1	0x05C	/* Software MUX Pad Control Register 23 */
55#define	IOMUXC_PTB2	0x060	/* Software MUX Pad Control Register 24 */
56#define	IOMUXC_PTB3	0x064	/* Software MUX Pad Control Register 25 */
57#define	IOMUXC_PTB4	0x068	/* Software MUX Pad Control Register 26 */
58#define	IOMUXC_PTB5	0x06C	/* Software MUX Pad Control Register 27 */
59#define	IOMUXC_PTB6	0x070	/* Software MUX Pad Control Register 28 */
60#define	IOMUXC_PTB7	0x074	/* Software MUX Pad Control Register 29 */
61#define	IOMUXC_PTB8	0x078	/* Software MUX Pad Control Register 30 */
62#define	IOMUXC_PTB9	0x07C	/* Software MUX Pad Control Register 31 */
63#define	IOMUXC_PTB10	0x080	/* Software MUX Pad Control Register 32 */
64#define	IOMUXC_PTB11	0x084	/* Software MUX Pad Control Register 33 */
65#define	IOMUXC_PTB12	0x088	/* Software MUX Pad Control Register 34 */
66#define	IOMUXC_PTB13	0x08C	/* Software MUX Pad Control Register 35 */
67#define	IOMUXC_PTB14	0x090	/* Software MUX Pad Control Register 36 */
68#define	IOMUXC_PTB15	0x094	/* Software MUX Pad Control Register 37 */
69#define	IOMUXC_PTB16	0x098	/* Software MUX Pad Control Register 38 */
70#define	IOMUXC_PTB17	0x09C	/* Software MUX Pad Control Register 39 */
71#define	IOMUXC_PTB18	0x0A0	/* Software MUX Pad Control Register 40 */
72#define	IOMUXC_PTB19	0x0A4	/* Software MUX Pad Control Register 41 */
73#define	IOMUXC_PTB20	0x0A8	/* Software MUX Pad Control Register 42 */
74#define	IOMUXC_PTB21	0x0AC	/* Software MUX Pad Control Register 43 */
75#define	IOMUXC_PTB22	0x0B0	/* Software MUX Pad Control Register 44 */
76#define	IOMUXC_PTC0	0x0B4	/* Software MUX Pad Control Register 45 */
77#define	IOMUXC_PTC1	0x0B8	/* Software MUX Pad Control Register 46 */
78#define	IOMUXC_PTC2	0x0BC	/* Software MUX Pad Control Register 47 */
79#define	IOMUXC_PTC3	0x0C0	/* Software MUX Pad Control Register 48 */
80#define	IOMUXC_PTC4	0x0C4	/* Software MUX Pad Control Register 49 */
81#define	IOMUXC_PTC5	0x0C8	/* Software MUX Pad Control Register 50 */
82#define	IOMUXC_PTC6	0x0CC	/* Software MUX Pad Control Register 51 */
83#define	IOMUXC_PTC7	0x0D0	/* Software MUX Pad Control Register 52 */
84#define	IOMUXC_PTC8	0x0D4	/* Software MUX Pad Control Register 53 */
85#define	IOMUXC_PTC9	0x0D8	/* Software MUX Pad Control Register 54 */
86#define	IOMUXC_PTC10	0x0DC	/* Software MUX Pad Control Register 55 */
87#define	IOMUXC_PTC11	0x0E0	/* Software MUX Pad Control Register 56 */
88#define	IOMUXC_PTC12	0x0E4	/* Software MUX Pad Control Register 57 */
89#define	IOMUXC_PTC13	0x0E8	/* Software MUX Pad Control Register 58 */
90#define	IOMUXC_PTC14	0x0EC	/* Software MUX Pad Control Register 59 */
91#define	IOMUXC_PTC15	0x0F0	/* Software MUX Pad Control Register 60 */
92#define	IOMUXC_PTC16	0x0F4	/* Software MUX Pad Control Register 61 */
93#define	IOMUXC_PTC17	0x0F8	/* Software MUX Pad Control Register 62 */
94#define	IOMUXC_PTD31	0x0FC	/* Software MUX Pad Control Register 63 */
95#define	IOMUXC_PTD30	0x100	/* Software MUX Pad Control Register 64 */
96#define	IOMUXC_PTD29	0x104	/* Software MUX Pad Control Register 65 */
97#define	IOMUXC_PTD28	0x108	/* Software MUX Pad Control Register 66 */
98#define	IOMUXC_PTD27	0x10C	/* Software MUX Pad Control Register 67 */
99#define	IOMUXC_PTD26	0x110	/* Software MUX Pad Control Register 68 */
100#define	IOMUXC_PTD25	0x114	/* Software MUX Pad Control Register 69 */
101#define	IOMUXC_PTD24	0x118	/* Software MUX Pad Control Register 70 */
102#define	IOMUXC_PTD23	0x11C	/* Software MUX Pad Control Register 71 */
103#define	IOMUXC_PTD22	0x120	/* Software MUX Pad Control Register 72 */
104#define	IOMUXC_PTD21	0x124	/* Software MUX Pad Control Register 73 */
105#define	IOMUXC_PTD20	0x128	/* Software MUX Pad Control Register 74 */
106#define	IOMUXC_PTD19	0x12C	/* Software MUX Pad Control Register 75 */
107#define	IOMUXC_PTD18	0x130	/* Software MUX Pad Control Register 76 */
108#define	IOMUXC_PTD17	0x134	/* Software MUX Pad Control Register 77 */
109#define	IOMUXC_PTD16	0x138	/* Software MUX Pad Control Register 78 */
110#define	IOMUXC_PTD0	0x13C	/* Software MUX Pad Control Register 79 */
111#define	IOMUXC_PTD1	0x140	/* Software MUX Pad Control Register 80 */
112#define	IOMUXC_PTD2	0x144	/* Software MUX Pad Control Register 81 */
113#define	IOMUXC_PTD3	0x148	/* Software MUX Pad Control Register 82 */
114#define	IOMUXC_PTD4	0x14C	/* Software MUX Pad Control Register 83 */
115#define	IOMUXC_PTD5	0x150	/* Software MUX Pad Control Register 84 */
116#define	IOMUXC_PTD6	0x154	/* Software MUX Pad Control Register 85 */
117#define	IOMUXC_PTD7	0x158	/* Software MUX Pad Control Register 86 */
118#define	IOMUXC_PTD8	0x15C	/* Software MUX Pad Control Register 87 */
119#define	IOMUXC_PTD9	0x160	/* Software MUX Pad Control Register 88 */
120#define	IOMUXC_PTD10	0x164	/* Software MUX Pad Control Register 89 */
121#define	IOMUXC_PTD11	0x168	/* Software MUX Pad Control Register 90 */
122#define	IOMUXC_PTD12	0x16C	/* Software MUX Pad Control Register 91 */
123#define	IOMUXC_PTD13	0x170	/* Software MUX Pad Control Register 92 */
124#define	IOMUXC_PTB23	0x174	/* Software MUX Pad Control Register 93 */
125#define	IOMUXC_PTB24	0x178	/* Software MUX Pad Control Register 94 */
126#define	IOMUXC_PTB25	0x17C	/* Software MUX Pad Control Register 95 */
127#define	IOMUXC_PTB26	0x180	/* Software MUX Pad Control Register 96 */
128#define	IOMUXC_PTB27	0x184	/* Software MUX Pad Control Register 97 */
129#define	IOMUXC_PTB28	0x188	/* Software MUX Pad Control Register 98 */
130#define	IOMUXC_PTC26	0x18C	/* Software MUX Pad Control Register 99 */
131#define	IOMUXC_PTC27	0x190	/* Software MUX Pad Control Register 100 */
132#define	IOMUXC_PTC28	0x194	/* Software MUX Pad Control Register 101 */
133#define	IOMUXC_PTC29	0x198	/* Software MUX Pad Control Register 102 */
134#define	IOMUXC_PTC30	0x19C	/* Software MUX Pad Control Register 103 */
135#define	IOMUXC_PTC31	0x1A0	/* Software MUX Pad Control Register 104 */
136#define	IOMUXC_PTE0	0x1A4	/* Software MUX Pad Control Register 105 */
137#define	IOMUXC_PTE1	0x1A8	/* Software MUX Pad Control Register 106 */
138#define	IOMUXC_PTE2	0x1AC	/* Software MUX Pad Control Register 107 */
139#define	IOMUXC_PTE3	0x1B0	/* Software MUX Pad Control Register 108 */
140#define	IOMUXC_PTE4	0x1B4	/* Software MUX Pad Control Register 109 */
141#define	IOMUXC_PTE5	0x1B8	/* Software MUX Pad Control Register 110 */
142#define	IOMUXC_PTE6	0x1BC	/* Software MUX Pad Control Register 111 */
143#define	IOMUXC_PTE7	0x1C0	/* Software MUX Pad Control Register 112 */
144#define	IOMUXC_PTE8	0x1C4	/* Software MUX Pad Control Register 113 */
145#define	IOMUXC_PTE9	0x1C8	/* Software MUX Pad Control Register 114 */
146#define	IOMUXC_PTE10	0x1CC	/* Software MUX Pad Control Register 115 */
147#define	IOMUXC_PTE11	0x1D0	/* Software MUX Pad Control Register 116 */
148#define	IOMUXC_PTE12	0x1D4	/* Software MUX Pad Control Register 117 */
149#define	IOMUXC_PTE13	0x1D8	/* Software MUX Pad Control Register 118 */
150#define	IOMUXC_PTE14	0x1DC	/* Software MUX Pad Control Register 119 */
151#define	IOMUXC_PTE15	0x1E0	/* Software MUX Pad Control Register 120 */
152#define	IOMUXC_PTE16	0x1E4	/* Software MUX Pad Control Register 121 */
153#define	IOMUXC_PTE17	0x1E8	/* Software MUX Pad Control Register 122 */
154#define	IOMUXC_PTE18	0x1EC	/* Software MUX Pad Control Register 123 */
155#define	IOMUXC_PTE19	0x1F0	/* Software MUX Pad Control Register 124 */
156#define	IOMUXC_PTE20	0x1F4	/* Software MUX Pad Control Register 125 */
157#define	IOMUXC_PTE21	0x1F8	/* Software MUX Pad Control Register 126 */
158#define	IOMUXC_PTE22	0x1FC	/* Software MUX Pad Control Register 127 */
159#define	IOMUXC_PTE23	0x200	/* Software MUX Pad Control Register 128 */
160#define	IOMUXC_PTE24	0x204	/* Software MUX Pad Control Register 129 */
161#define	IOMUXC_PTE25	0x208	/* Software MUX Pad Control Register 130 */
162#define	IOMUXC_PTE26	0x20C	/* Software MUX Pad Control Register 131 */
163#define	IOMUXC_PTE27	0x210	/* Software MUX Pad Control Register 132 */
164#define	IOMUXC_PTE28	0x214	/* Software MUX Pad Control Register 133 */
165#define	IOMUXC_PTA7	0x218	/* Software MUX Pad Control Register 134 */
166