libopencm3
A free/libre/open-source firmware library for various ARM Cortex-M3 microcontrollers.
iomuxc.h
Go to the documentation of this file.
1/** @defgroup VF6xx_iomuxc_defines IO MUX Controller Defines
2 *
3 * @brief <b>Defined Constants and Types for the VF6xx IO MUX Controller</b>
4 *
5 * @ingroup VF6xx_defines
6 *
7 * @version 1.0.0
8 *
9 * @author @htmlonly &copy; @endhtmlonly 2014
10 * Stefan Agner <stefan@agner.ch>
11 *
12 * @date 03 July 2014
13 *
14 * LGPL License Terms @ref lgpl_license
15 * */
16/*
17 * This file is part of the libopencm3 project.
18 *
19 * Copyright (C) 2014 Stefan Agner <stefan@agner.ch>
20 *
21 * This library is free software: you can redistribute it and/or modify
22 * it under the terms of the GNU Lesser General Public License as published by
23 * the Free Software Foundation, either version 3 of the License, or
24 * (at your option) any later version.
25 *
26 * This library is distributed in the hope that it will be useful,
27 * but WITHOUT ANY WARRANTY; without even the implied warranty of
28 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29 * GNU Lesser General Public License for more details.
30 *
31 * You should have received a copy of the GNU Lesser General Public License
32 * along with this library. If not, see <http://www.gnu.org/licenses/>.
33 */
34
35#ifndef LIBOPENCM3_VF6XX_IOMUXC_H
36#define LIBOPENCM3_VF6XX_IOMUXC_H
37
40
41/* --- Convenience macros -------------------------------------------------- */
42
43/****************************************************************************/
44/** @defgroup iomuxc_reg IO MUX Controller register
45@ingroup VF6xx_iomuxc_defines
46
47@{*/
48#define IOMUXC(pad) MMIO32(IOMUXC_BASE + (0x4 * (pad)))
49
50#define IOMUXC_PAD(mode, speed, dse, pus, flags) \
51 ((IOMUXC_##mode) << IOMUXC_MUX_MODE_SHIFT | \
52 (IOMUXC_##speed) << IOMUXC_SPEED_SHIFT | \
53 (IOMUXC_##dse) << IOMUXC_DSE_SHIFT | \
54 (IOMUXC_##pus) << IOMUXC_PUS_SHIFT | \
55 (flags))
56
57
58/* --- GPIO registers ------------------------------------------------------ */
59
60#define IOMUXC_MUX_MODE_SHIFT 20
61#define IOMUXC_MUX_MODE_MASK (0x7 << 20)
62#define IOMUXC_MUX_MODE_ALT0 0x0
63#define IOMUXC_MUX_MODE_ALT1 0x1
64#define IOMUXC_MUX_MODE_ALT2 0x2
65#define IOMUXC_MUX_MODE_ALT3 0x3
66#define IOMUXC_MUX_MODE_ALT4 0x4
67#define IOMUXC_MUX_MODE_ALT5 0x5
68#define IOMUXC_MUX_MODE_ALT6 0x6
69#define IOMUXC_MUX_MODE_ALT7 0x7
70#define IOMUXC_SPEED_SHIFT 12
71#define IOMUXC_SPEED_MASK (0x3 << 12)
72#define IOMUXC_SPEED_LOW 0x0
73#define IOMUXC_SPEED_MEDIUM 0x1
74#define IOMUXC_SPEED_HIGH 0x3
75#define IOMUXC_SRE (0x1 << 11)
76#define IOMUXC_ODE (0x1 << 10)
77#define IOMUXC_HYS (0x1 << 9)
78#define IOMUXC_DSE_SHIFT 6
79#define IOMUXC_DSE_MASK (0x7 << 6)
80#define IOMUXC_DSE_OFF 0x0
81#define IOMUXC_DSE_150OHM 0x1
82#define IOMUXC_DSE_75OHM 0x2
83#define IOMUXC_DSE_50OHM 0x3
84#define IOMUXC_DSE_37OHM 0x4
85#define IOMUXC_DSE_30OHM 0x5
86#define IOMUXC_DSE_25OHM 0x6
87#define IOMUXC_DSE_20OHM 0x7
88#define IOMUXC_PUS_SHIFT 4
89#define IOMUXC_PUS_MASK (0x3 << 4)
90#define IOMUXC_PUS_PD_100KOHM 0x0
91#define IOMUXC_PUS_PU_47KOHM 0x1
92#define IOMUXC_PUS_PU_100KOHM 0x2
93#define IOMUXC_PUS_PU_22KOHM 0x3
94#define IOMUXC_PKE (0x1 << 3)
95#define IOMUXC_PUE (0x1 << 2)
96#define IOMUXC_OBE (0x1 << 1)
97#define IOMUXC_IBE (0x1 << 0)
98
99
100/* --- Type definitions ---------------------------------------------------- */
101/*---------------------------------------------------------------------------*/
102/** @brief IO-MUX Pads
103
104Pads available by the IO-MUX controller
105*/
106
243};
244
245
246/* --- Function prototypes ------------------------------------------------- */
247
249
251
252void iomuxc_mux(enum vf6xx_pad pad, uint32_t muxc);
253
255
256#endif
#define END_DECLS
Definition: common.h:34
#define BEGIN_DECLS
Definition: common.h:33
void iomuxc_mux(enum vf6xx_pad pad, uint32_t muxc)
Set GPIO.
Definition: iomuxc.c:51
vf6xx_pad
IO-MUX Pads.
Definition: iomuxc.h:107
@ PTB27
Definition: iomuxc.h:205
@ PTB9
Definition: iomuxc.h:139
@ PTC4
Definition: iomuxc.h:157
@ PTD31
Definition: iomuxc.h:171
@ PTC7
Definition: iomuxc.h:160
@ PTC8
Definition: iomuxc.h:161
@ PTB24
Definition: iomuxc.h:202
@ PTE0
Definition: iomuxc.h:213
@ PTD30
Definition: iomuxc.h:172
@ PTE17
Definition: iomuxc.h:230
@ PTC26
Definition: iomuxc.h:207
@ PTB11
Definition: iomuxc.h:141
@ PTB20
Definition: iomuxc.h:150
@ PTA20
Definition: iomuxc.h:118
@ PTD10
Definition: iomuxc.h:197
@ PTC9
Definition: iomuxc.h:162
@ PTD27
Definition: iomuxc.h:175
@ PTE16
Definition: iomuxc.h:229
@ PTA9
Definition: iomuxc.h:110
@ PTE4
Definition: iomuxc.h:217
@ PTD28
Definition: iomuxc.h:174
@ PTE27
Definition: iomuxc.h:240
@ PTD13
Definition: iomuxc.h:200
@ PTB26
Definition: iomuxc.h:204
@ PTD5
Definition: iomuxc.h:192
@ PTC28
Definition: iomuxc.h:209
@ PTC2
Definition: iomuxc.h:155
@ PTD4
Definition: iomuxc.h:191
@ PTB6
Definition: iomuxc.h:136
@ PTD25
Definition: iomuxc.h:177
@ PTD29
Definition: iomuxc.h:173
@ PTB2
Definition: iomuxc.h:132
@ PTE13
Definition: iomuxc.h:226
@ PTD9
Definition: iomuxc.h:196
@ PTE20
Definition: iomuxc.h:233
@ PTB5
Definition: iomuxc.h:135
@ PTB19
Definition: iomuxc.h:149
@ PTC5
Definition: iomuxc.h:158
@ PTE2
Definition: iomuxc.h:215
@ PTE15
Definition: iomuxc.h:228
@ PTD2
Definition: iomuxc.h:189
@ PTC17
Definition: iomuxc.h:170
@ PTB15
Definition: iomuxc.h:145
@ PTE26
Definition: iomuxc.h:239
@ PTE18
Definition: iomuxc.h:231
@ PTA30
Definition: iomuxc.h:128
@ PTA17
Definition: iomuxc.h:115
@ PTC10
Definition: iomuxc.h:163
@ PTA11
Definition: iomuxc.h:112
@ PTE10
Definition: iomuxc.h:223
@ PTD3
Definition: iomuxc.h:190
@ PTB16
Definition: iomuxc.h:146
@ PTE23
Definition: iomuxc.h:236
@ PTD26
Definition: iomuxc.h:176
@ PTD20
Definition: iomuxc.h:182
@ PTB28
Definition: iomuxc.h:206
@ PTE12
Definition: iomuxc.h:225
@ PTD6
Definition: iomuxc.h:193
@ PTA23
Definition: iomuxc.h:121
@ PTD7
Definition: iomuxc.h:194
@ PTB10
Definition: iomuxc.h:140
@ PTB18
Definition: iomuxc.h:148
@ PTC15
Definition: iomuxc.h:168
@ PTB8
Definition: iomuxc.h:138
@ PTC30
Definition: iomuxc.h:211
@ PTC16
Definition: iomuxc.h:169
@ PTE1
Definition: iomuxc.h:214
@ PTA18
Definition: iomuxc.h:116
@ PTB4
Definition: iomuxc.h:134
@ PTA31
Definition: iomuxc.h:129
@ PTB1
Definition: iomuxc.h:131
@ PTA27
Definition: iomuxc.h:125
@ PTC0
Definition: iomuxc.h:153
@ PTA10
Definition: iomuxc.h:111
@ PTE7
Definition: iomuxc.h:220
@ PTA21
Definition: iomuxc.h:119
@ PTB21
Definition: iomuxc.h:151
@ PTE21
Definition: iomuxc.h:234
@ PTD21
Definition: iomuxc.h:181
@ PTD19
Definition: iomuxc.h:183
@ PTC31
Definition: iomuxc.h:212
@ PTC14
Definition: iomuxc.h:167
@ PTB0
Definition: iomuxc.h:130
@ PTE3
Definition: iomuxc.h:216
@ PTC12
Definition: iomuxc.h:165
@ PTB13
Definition: iomuxc.h:143
@ PTC1
Definition: iomuxc.h:154
@ PTE6
Definition: iomuxc.h:219
@ PTC13
Definition: iomuxc.h:166
@ PTA29
Definition: iomuxc.h:127
@ PTD23
Definition: iomuxc.h:179
@ PTD0
Definition: iomuxc.h:187
@ PTE19
Definition: iomuxc.h:232
@ PTA8
Definition: iomuxc.h:109
@ PTD18
Definition: iomuxc.h:184
@ PTE22
Definition: iomuxc.h:235
@ PTE25
Definition: iomuxc.h:238
@ PTA22
Definition: iomuxc.h:120
@ PTD11
Definition: iomuxc.h:198
@ PTA24
Definition: iomuxc.h:122
@ PTD16
Definition: iomuxc.h:186
@ PTC11
Definition: iomuxc.h:164
@ PTB23
Definition: iomuxc.h:201
@ PTD22
Definition: iomuxc.h:180
@ PTA25
Definition: iomuxc.h:123
@ PTA28
Definition: iomuxc.h:126
@ PTD24
Definition: iomuxc.h:178
@ PTB22
Definition: iomuxc.h:152
@ PTA12
Definition: iomuxc.h:113
@ PTE8
Definition: iomuxc.h:221
@ PTB14
Definition: iomuxc.h:144
@ PTA16
Definition: iomuxc.h:114
@ PTB7
Definition: iomuxc.h:137
@ PTA6
Definition: iomuxc.h:108
@ PTB25
Definition: iomuxc.h:203
@ PTE14
Definition: iomuxc.h:227
@ PTD12
Definition: iomuxc.h:199
@ PTE24
Definition: iomuxc.h:237
@ PTE5
Definition: iomuxc.h:218
@ PTE28
Definition: iomuxc.h:241
@ PTD1
Definition: iomuxc.h:188
@ PTB3
Definition: iomuxc.h:133
@ PTB17
Definition: iomuxc.h:147
@ PTC27
Definition: iomuxc.h:208
@ PTC29
Definition: iomuxc.h:210
@ PTC3
Definition: iomuxc.h:156
@ PTA26
Definition: iomuxc.h:124
@ PTD17
Definition: iomuxc.h:185
@ PTA7
Definition: iomuxc.h:242
@ PTC6
Definition: iomuxc.h:159
@ PTB12
Definition: iomuxc.h:142
@ PTD8
Definition: iomuxc.h:195
@ PTA19
Definition: iomuxc.h:117
@ PTE11
Definition: iomuxc.h:224
@ PTE9
Definition: iomuxc.h:222