AM263x MCU+ SDK  08.02.01
pinmux/am263x/pinmux.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2021 Texas Instruments Incorporated
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *
11  * Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the
14  * distribution.
15  *
16  * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  *
32  */
33 
63 #ifndef PINMUX_AM263X_H_
64 #define PINMUX_AM263X_H_
65 
66 /* ========================================================================== */
67 /* Include Files */
68 /* ========================================================================== */
69 
70 #include <stdint.h>
71 
72 #ifdef __cplusplus
73 extern "C" {
74 #endif
75 
76 /* ========================================================================== */
77 /* Macros & Typedefs */
78 /* ========================================================================== */
79 
85 #define PINMUX_DOMAIN_ID_MAIN (0U)
86 
89 #define PINMUX_END (-1)
90 
91 #define PIN_MODE(mode) ((uint32_t) mode)
92 
94 #define PIN_FORCE_INPUT_ENABLE (((uint32_t) 0x1U) << 4U)
95 
96 #define PIN_FORCE_INPUT_DISABLE (((uint32_t) 0x3U) << 4U)
97 
98 #define PIN_FORCE_OUTPUT_ENABLE (((uint32_t) 0x1U) << 6U)
99 
100 #define PIN_FORCE_OUTPUT_DISABLE (((uint32_t) 0x3U) << 6U)
101 
103 #define PIN_PULL_DISABLE (((uint32_t) 0x1U) << 8U)
104 
105 #define PIN_PULL_UP (((uint32_t) 0x1U) << 9U)
106 
107 #define PIN_PULL_DOWN (((uint32_t) 0x0U) << 9U)
108 
110 #define PIN_SLEW_RATE_HIGH (((uint32_t) 0x0U) << 10U)
111 
112 #define PIN_SLEW_RATE_LOW (((uint32_t) 0x1U) << 10U)
113 
115 #define PIN_GPIO_R5SS0_0 (((uint32_t) 0x0U) << 16U)
116 
117 #define PIN_GPIO_R5SS0_1 (((uint32_t) 0x1U) << 16U)
118 
119 #define PIN_GPIO_R5SS1_0 (((uint32_t) 0x2U) << 16U)
120 
121 #define PIN_GPIO_R5SS1_1 (((uint32_t) 0x3U) << 16U)
122 
124 #define PIN_QUAL_SYNC (((uint32_t) 0x0U) << 18U)
125 
126 #define PIN_QUAL_3SAMPLE (((uint32_t) 0x1U) << 18U)
127 
128 #define PIN_QUAL_6SAMPLE (((uint32_t) 0x2U) << 18U)
129 
130 #define PIN_QUAL_ASYNC (((uint32_t) 0x3U) << 18U)
131 
133 #define PIN_INVERT (((uint32_t) 0x1U) << 20U)
134 
135 #define PIN_NON_INVERT (((uint32_t) 0x0U) << 20U)
136 
137 
144 #define PIN_QSPI_CSN0 (0x00000000U)
145 #define PIN_QSPI_CSN1 (0x00000004U)
146 #define PIN_QSPI_CLK (0x00000008U)
147 #define PIN_QSPI_D0 (0x0000000CU)
148 #define PIN_QSPI_D1 (0x00000010U)
149 #define PIN_QSPI_D2 (0x00000014U)
150 #define PIN_QSPI_D3 (0x00000018U)
151 #define PIN_MCAN0_RX (0x0000001CU)
152 #define PIN_MCAN0_TX (0x00000020U)
153 #define PIN_MCAN1_RX (0x00000024U)
154 #define PIN_MCAN1_TX (0x00000028U)
155 #define PIN_SPI0_CS0 (0x0000002CU)
156 #define PIN_SPI0_CLK (0x00000030U)
157 #define PIN_SPI0_D0 (0x00000034U)
158 #define PIN_SPI0_D1 (0x00000038U)
159 #define PIN_SPI1_CS0 (0x0000003CU)
160 #define PIN_SPI1_CLK (0x00000040U)
161 #define PIN_SPI1_D0 (0x00000044U)
162 #define PIN_SPI1_D1 (0x00000048U)
163 #define PIN_LIN1_RXD (0x0000004CU)
164 #define PIN_LIN1_TXD (0x00000050U)
165 #define PIN_LIN2_RXD (0x00000054U)
166 #define PIN_LIN2_TXD (0x00000058U)
167 #define PIN_I2C1_SCL (0x0000005CU)
168 #define PIN_I2C1_SDA (0x00000060U)
169 #define PIN_UART0_RTSN (0x00000064U)
170 #define PIN_UART0_CTSN (0x00000068U)
171 #define PIN_UART0_RXD (0x0000006CU)
172 #define PIN_UART0_TXD (0x00000070U)
173 #define PIN_RGMII1_RXC (0x00000074U)
174 #define PIN_RGMII1_RX_CTL (0x00000078U)
175 #define PIN_RGMII1_RD0 (0x0000007CU)
176 #define PIN_RGMII1_RD1 (0x00000080U)
177 #define PIN_RGMII1_RD2 (0x00000084U)
178 #define PIN_RGMII1_RD3 (0x00000088U)
179 #define PIN_RGMII1_TXC (0x0000008CU)
180 #define PIN_RGMII1_TX_CTL (0x00000090U)
181 #define PIN_RGMII1_TD0 (0x00000094U)
182 #define PIN_RGMII1_TD1 (0x00000098U)
183 #define PIN_RGMII1_TD2 (0x0000009CU)
184 #define PIN_RGMII1_TD3 (0x000000A0U)
185 #define PIN_MDIO_MDIO (0x000000A4U)
186 #define PIN_MDIO_MDC (0x000000A8U)
187 #define PIN_EPWM0_A (0x000000ACU)
188 #define PIN_EPWM0_B (0x000000B0U)
189 #define PIN_EPWM1_A (0x000000B4U)
190 #define PIN_EPWM1_B (0x000000B8U)
191 #define PIN_EPWM2_A (0x000000BCU)
192 #define PIN_EPWM2_B (0x000000C0U)
193 #define PIN_EPWM3_A (0x000000C4U)
194 #define PIN_EPWM3_B (0x000000C8U)
195 #define PIN_EPWM4_A (0x000000CCU)
196 #define PIN_EPWM4_B (0x000000D0U)
197 #define PIN_EPWM5_A (0x000000D4U)
198 #define PIN_EPWM5_B (0x000000D8U)
199 #define PIN_EPWM6_A (0x000000DCU)
200 #define PIN_EPWM6_B (0x000000E0U)
201 #define PIN_EPWM7_A (0x000000E4U)
202 #define PIN_EPWM7_B (0x000000E8U)
203 #define PIN_EPWM8_A (0x000000ECU)
204 #define PIN_EPWM8_B (0x000000F0U)
205 #define PIN_EPWM9_A (0x000000F4U)
206 #define PIN_EPWM9_B (0x000000F8U)
207 #define PIN_EPWM10_A (0x000000FCU)
208 #define PIN_EPWM10_B (0x00000100U)
209 #define PIN_EPWM11_A (0x00000104U)
210 #define PIN_EPWM11_B (0x00000108U)
211 #define PIN_EPWM12_A (0x0000010CU)
212 #define PIN_EPWM12_B (0x00000110U)
213 #define PIN_EPWM13_A (0x00000114U)
214 #define PIN_EPWM13_B (0x00000118U)
215 #define PIN_EPWM14_A (0x0000011CU)
216 #define PIN_EPWM14_B (0x00000120U)
217 #define PIN_EPWM15_A (0x00000124U)
218 #define PIN_EPWM15_B (0x00000128U)
219 #define PIN_UART1_RXD (0x0000012CU)
220 #define PIN_UART1_TXD (0x00000130U)
221 #define PIN_MMC_CLK (0x00000134U)
222 #define PIN_MMC_CMD (0x00000138U)
223 #define PIN_MMC_DAT0 (0x0000013CU)
224 #define PIN_MMC_DAT1 (0x00000140U)
225 #define PIN_MMC_DAT2 (0x00000144U)
226 #define PIN_MMC_DAT3 (0x00000148U)
227 #define PIN_MMC_SDWP (0x0000014CU)
228 #define PIN_MMC_SDCD (0x00000150U)
229 #define PIN_PR0_MDIO_MDIO (0x00000154U)
230 #define PIN_PR0_MDIO_MDC (0x00000158U)
231 #define PIN_PR0_PRU0_GPIO5 (0x0000015CU)
232 #define PIN_PR0_PRU0_GPIO9 (0x00000160U)
233 #define PIN_PR0_PRU0_GPIO10 (0x00000164U)
234 #define PIN_PR0_PRU0_GPIO8 (0x00000168U)
235 #define PIN_PR0_PRU0_GPIO6 (0x0000016CU)
236 #define PIN_PR0_PRU0_GPIO4 (0x00000170U)
237 #define PIN_PR0_PRU0_GPIO0 (0x00000174U)
238 #define PIN_PR0_PRU0_GPIO1 (0x00000178U)
239 #define PIN_PR0_PRU0_GPIO2 (0x0000017CU)
240 #define PIN_PR0_PRU0_GPIO3 (0x00000180U)
241 #define PIN_PR0_PRU0_GPIO16 (0x00000184U)
242 #define PIN_PR0_PRU0_GPIO15 (0x00000188U)
243 #define PIN_PR0_PRU0_GPIO11 (0x0000018CU)
244 #define PIN_PR0_PRU0_GPIO12 (0x00000190U)
245 #define PIN_PR0_PRU0_GPIO13 (0x00000194U)
246 #define PIN_PR0_PRU0_GPIO14 (0x00000198U)
247 #define PIN_PR0_PRU1_GPIO5 (0x0000019CU)
248 #define PIN_PR0_PRU1_GPIO9 (0x000001A0U)
249 #define PIN_PR0_PRU1_GPIO10 (0x000001A4U)
250 #define PIN_PR0_PRU1_GPIO8 (0x000001A8U)
251 #define PIN_PR0_PRU1_GPIO6 (0x000001ACU)
252 #define PIN_PR0_PRU1_GPIO4 (0x000001B0U)
253 #define PIN_PR0_PRU1_GPIO0 (0x000001B4U)
254 #define PIN_PR0_PRU1_GPIO1 (0x000001B8U)
255 #define PIN_PR0_PRU1_GPIO2 (0x000001BCU)
256 #define PIN_PR0_PRU1_GPIO3 (0x000001C0U)
257 #define PIN_PR0_PRU1_GPIO16 (0x000001C4U)
258 #define PIN_PR0_PRU1_GPIO15 (0x000001C8U)
259 #define PIN_PR0_PRU1_GPIO11 (0x000001CCU)
260 #define PIN_PR0_PRU1_GPIO12 (0x000001D0U)
261 #define PIN_PR0_PRU1_GPIO13 (0x000001D4U)
262 #define PIN_PR0_PRU1_GPIO14 (0x000001D8U)
263 #define PIN_PR0_PRU1_GPIO19 (0x000001DCU)
264 #define PIN_PR0_PRU1_GPIO18 (0x000001E0U)
265 #define PIN_EXT_REFCLK0 (0x000001E4U)
266 #define PIN_SDFM0_CLK0 (0x000001E8U)
267 #define PIN_SDFM0_D0 (0x000001ECU)
268 #define PIN_SDFM0_CLK1 (0x000001F0U)
269 #define PIN_SDFM0_D1 (0x000001F4U)
270 #define PIN_SDFM0_CLK2 (0x000001F8U)
271 #define PIN_SDFM0_D2 (0x000001FCU)
272 #define PIN_SDFM0_CLK3 (0x00000200U)
273 #define PIN_SDFM0_D3 (0x00000204U)
274 #define PIN_EQEP0_A (0x00000208U)
275 #define PIN_EQEP0_B (0x0000020CU)
276 #define PIN_EQEP0_STROBE (0x00000210U)
277 #define PIN_EQEP0_INDEX (0x00000214U)
278 #define PIN_I2C0_SDA (0x00000218U)
279 #define PIN_I2C0_SCL (0x0000021CU)
280 #define PIN_MCAN2_TX (0x00000220U)
281 #define PIN_MCAN2_RX (0x00000224U)
282 #define PIN_CLKOUT0 (0x00000228U)
283 #define PIN_RESET_REQZ (0x0000022CU)
284 #define PIN_SAFETY_ERRORN (0x00000230U)
285 #define PIN_TDI (0x00000234U)
286 #define PIN_TDO (0x00000238U)
287 #define PIN_TMS (0x0000023CU)
288 #define PIN_TCK (0x00000240U)
289 #define PIN_QSPI_CLKLB (0x00000244U)
290 
293 /* ========================================================================== */
294 /* Structures and Enums */
295 /* ========================================================================== */
296 
298 typedef struct Pinmux_PerCfg
299 {
300  int16_t offset;
304  uint32_t settings;
315 
316 /* ========================================================================== */
317 /* Global Variables Declarations */
318 /* ========================================================================== */
319 
320 /* None */
321 
322 /* ========================================================================== */
323 /* Function Declarations */
324 /* ========================================================================== */
325 
336 void Pinmux_config(const Pinmux_PerCfg_t *pinmuxCfg, uint32_t domainId);
337 
338 /* ========================================================================== */
339 /* Static Function Definitions */
340 /* ========================================================================== */
341 
342 /* None */
343 
344 #ifdef __cplusplus
345 }
346 #endif
347 
348 #endif /* #ifndef PINMUX_AM64X_H_ */
349 
Pinmux_PerCfg_t
Structure defining the pin configuration parameters.
Definition: pinmux/am263x/pinmux.h:299
Pinmux_config
void Pinmux_config(const Pinmux_PerCfg_t *pinmuxCfg, uint32_t domainId)
This API configures the pinmux based on the domain.
Pinmux_PerCfg_t::offset
int16_t offset
Definition: pinmux/am263x/pinmux.h:300
Pinmux_PerCfg_t::settings
uint32_t settings
Definition: pinmux/am263x/pinmux.h:304