35#ifndef MSP432E4_GPIO_H
36#define MSP432E4_GPIO_H
48#define GPIOA GPIOA_BASE
50#define GPIOB GPIOB_BASE
52#define GPIOC GPIOC_BASE
54#define GPIOD GPIOD_BASE
56#define GPIOE GPIOE_BASE
58#define GPIOF GPIOF_BASE
60#define GPIOG GPIOG_BASE
62#define GPIOH GPIOH_BASE
64#define GPIOJ GPIOJ_BASE
66#define GPIOK GPIOK_BASE
68#define GPIOL GPIOL_BASE
70#define GPIOM GPIOM_BASE
72#define GPION GPION_BASE
74#define GPIOP GPIOP_BASE
76#define GPIOQ GPIOQ_BASE
99#define GPIO_ALL (0xFF)
130#define GPIO_AF_DISABLE 0x0
137#define GPIO_DATA(port) (&MMIO32((port) + 0x000))
139#define GPIO_DIR(port) MMIO32((port) + 0x400)
141#define GPIO_IS(port) MMIO32((port) + 0x404)
143#define GPIO_IBE(port) MMIO32((port) + 0x408)
145#define GPIO_IEV(port) MMIO32((port) + 0x40C)
147#define GPIO_IM(port) MMIO32((port) + 0x410)
149#define GPIO_RIS(port) MMIO32((port) + 0x414)
151#define GPIO_MIS(port) MMIO32((port) + 0x418)
153#define GPIO_ICR(port) MMIO32((port) + 0x41C)
155#define GPIO_AFSEL(port) MMIO32((port) + 0x420)
157#define GPIO_DR2R(port) MMIO32((port) + 0x500)
159#define GPIO_DR4R(port) MMIO32((port) + 0x504)
161#define GPIO_DR8R(port) MMIO32((port) + 0x508)
163#define GPIO_ODR(port) MMIO32((port) + 0x50C)
165#define GPIO_PUR(port) MMIO32((port) + 0x510)
167#define GPIO_PDR(port) MMIO32((port) + 0x514)
169#define GPIO_SLR(port) MMIO32((port) + 0x518)
171#define GPIO_DEN(port) MMIO32((port) + 0x51C)
173#define GPIO_LOCK(port) MMIO32((port) + 0x520)
175#define GPIO_CR(port) MMIO32((port) + 0x524)
177#define GPIO_AMSEL(port) MMIO32((port) + 0x528)
179#define GPIO_PCTL(port) MMIO32((port) + 0x52C)
181#define GPIO_ADCCTL(port) MMIO32((port) + 0x530)
183#define GPIO_DMACTL(port) MMIO32((port) + 0x534)
185#define GPIO_SI(port) MMIO32((port) + 0x538)
187#define GPIO_DR12R(port) MMIO32((port) + 0x53C)
190#define GPIO_WAKEPEN(port) MMIO32((port) + 0x540)
193#define GPIO_WAKELVL(port) MMIO32((port) + 0x544)
196#define GPIO_WAKESTAT(port) MMIO32((port) + 0x548)
198#define GPIO_PP(port) MMIO32((port) + 0xFC0)
200#define GPIO_PC(port) MMIO32((port) + 0xFC4)
203#define GPIO_PERIPH_ID0(port) MMIO32((port) + 0xFE0)
205#define GPIO_PERIPH_ID1(port) MMIO32((port) + 0xFE4)
207#define GPIO_PERIPH_ID2(port) MMIO32((port) + 0xFE8)
209#define GPIO_PERIPH_ID3(port) MMIO32((port) + 0xFEC)
211#define GPIO_PERIPH_ID4(port) MMIO32((port) + 0xFD0)
213#define GPIO_PERIPH_ID5(port) MMIO32((port) + 0xFD4)
215#define GPIO_PERIPH_ID6(port) MMIO32((port) + 0xFD8)
217#define GPIO_PERIPH_ID7(port) MMIO32((port) + 0xFDC)
220#define GPIO_PCELL_ID0(port) MMIO32((port) + 0xFF0)
222#define GPIO_PCELL_ID1(port) MMIO32((port) + 0xFF4)
224#define GPIO_PCELL_ID2(port) MMIO32((port) + 0xFF8)
226#define GPIO_PCELL_ID3(port) MMIO32((port) + 0xFFC)
233#define GPIO_IM_DMAIME (1 << 8)
240#define GPIO_RIS_DMARIS (1 << 8)
247#define GPIO_MIS_DMAMIS (1 << 8)
254#define GPIO_ICR_DMAIC (1 << 8)
261#define GPIO_LOCK_UNLOCK_CODE (0x4C4F434B)
263#define GPIO_LOCK_STATUS (1 << 0)
270#define GPIO_PCTL_AF(pin, af) ((af) << ((pin) * 4))
272#define GPIO_PCTL_MASK(pin) GPIO_PCTL_AF((pin), 0xf)
279#define GPIO_SI_SUM (1 << 0)
287#define GPIO_WAKEPEN_WAKEP7 (1 << 7)
289#define GPIO_WAKEPEN_WAKEP6 (1 << 6)
291#define GPIO_WAKEPEN_WAKEP5 (1 << 5)
293#define GPIO_WAKEPEN_WAKEP4 (1 << 4)
300#define GPIO_WAKELVL_WAKELVL7 (1 << 7)
302#define GPIO_WAKELVL_WAKELVL6 (1 << 6)
304#define GPIO_WAKELVL_WAKELVL5 (1 << 5)
306#define GPIO_WAKELVL_WAKELVL4 (1 << 4)
313#define GPIO_WAKESTAT_STAT7 (1 << 7)
315#define GPIO_WAKESTAT_STAT6 (1 << 6)
317#define GPIO_WAKESTAT_STAT5 (1 << 5)
319#define GPIO_WAKESTAT_STAT4 (1 << 4)
326#define GPIO_PP_EDE (1 << 0)
333#define GPIO_PC_EDM(n, mode) ((mode) << (2 * (n)))
335#define GPIO_PC_EDM_MASK(n) (0x3 << (2 * (n)))
337#define GPIO_PC_EDM_NORMAL 0x0
340#define GPIO_PC_EDM_ADD_6MA 0x1
343#define GPIO_PC_EDM_FULL_RANGE 0x3
354#define GPIO_AF_PA0_U0RX GPIO_AF1
356#define GPIO_AF_PA0_I2C9SCL GPIO_AF2
358#define GPIO_AF_PA0_T0CCP0 GPIO_AF3
360#define GPIO_AF_PA0_CAN0RX GPIO_AF7
371#define GPIO_AF_PA1_U0TX GPIO_AF1
373#define GPIO_AF_PA1_I2C9SDA GPIO_AF2
375#define GPIO_AF_PA1_T0CCP1 GPIO_AF3
377#define GPIO_AF_PA1_CAN0TX GPIO_AF7
388#define GPIO_AF_PA2_U4RX GPIO_AF1
390#define GPIO_AF_PA2_I2C8SCL GPIO_AF2
392#define GPIO_AF_PA2_T1CCP0 GPIO_AF3
394#define GPIO_AF_PA2_SSI0CLK GPIO_AF15
405#define GPIO_AF_PA3_U4TX GPIO_AF1
407#define GPIO_AF_PA3_I2C8SDA GPIO_AF2
409#define GPIO_AF_PA3_T1CCP1 GPIO_AF3
411#define GPIO_AF_PA3_SSI0FSS GPIO_AF15
422#define GPIO_AF_PA4_U3RX GPIO_AF1
424#define GPIO_AF_PA4_I2C7SCL GPIO_AF2
426#define GPIO_AF_PA4_T2CCP0 GPIO_AF3
428#define GPIO_AF_PA4_SSI0XDAT0 GPIO_AF15
439#define GPIO_AF_PA5_U3TX GPIO_AF1
441#define GPIO_AF_PA5_I2C7SDA GPIO_AF2
443#define GPIO_AF_PA5_T2CCP1 GPIO_AF3
445#define GPIO_AF_PA5_SSI0XDAT1 GPIO_AF15
456#define GPIO_AF_PA6_U2RX GPIO_AF1
458#define GPIO_AF_PA6_I2C6SCL GPIO_AF2
460#define GPIO_AF_PA6_T3CCP0 GPIO_AF3
462#define GPIO_AF_PA6_USB0EPEN GPIO_AF5
464#define GPIO_AF_PA6_SSI0XDAT2 GPIO_AF13
466#define GPIO_AF_PA6_EN0RXCK GPIO_AF14
468#define GPIO_AF_PA6_EPI0S8 GPIO_AF15
479#define GPIO_AF_PA7_U2TX GPIO_AF1
481#define GPIO_AF_PA7_I2C6SDA GPIO_AF2
483#define GPIO_AF_PA7_T3CCP1 GPIO_AF3
485#define GPIO_AF_PA7_USB0PFLT GPIO_AF5
487#define GPIO_AF_PA7_USB0EPEN GPIO_AF11
489#define GPIO_AF_PA7_SSI0XDAT3 GPIO_AF13
491#define GPIO_AF_PA7_EPI0S9 GPIO_AF15
502#define GPIO_AF_PB0_U1RX GPIO_AF1
504#define GPIO_AF_PB0_I2C5SCL GPIO_AF2
506#define GPIO_AF_PB0_T4CCP0 GPIO_AF3
508#define GPIO_AF_PB0_CAN1RX GPIO_AF7
519#define GPIO_AF_PB1_U1TX GPIO_AF1
521#define GPIO_AF_PB1_I2C5SDA GPIO_AF2
523#define GPIO_AF_PB1_T4CCP1 GPIO_AF3
525#define GPIO_AF_PB1_CAN1TX GPIO_AF7
536#define GPIO_AF_PB2_I2C0SCL GPIO_AF2
538#define GPIO_AF_PB2_T5CCP0 GPIO_AF3
540#define GPIO_AF_PB2_EN0MDC GPIO_AF5
543#define GPIO_AF_PB2_USB0STP GPIO_AF14
545#define GPIO_AF_PB2_EPI0S27 GPIO_AF15
556#define GPIO_AF_PB3_I2C0SDA GPIO_AF2
558#define GPIO_AF_PB3_T5CCP1 GPIO_AF3
560#define GPIO_AF_PB3_EN0MDIO GPIO_AF5
562#define GPIO_AF_PB3_USB0CLK GPIO_AF14
564#define GPIO_AF_PB3_EPI0S28 GPIO_AF15
575#define GPIO_AF_PB4_U0CTS GPIO_AF1
577#define GPIO_AF_PB4_I2C5SCL GPIO_AF2
579#define GPIO_AF_PB4_SSI1FSS GPIO_AF15
590#define GPIO_AF_PB5_U0RTS GPIO_AF1
592#define GPIO_AF_PB5_I2C5SDA GPIO_AF2
594#define GPIO_AF_PB5_SSI1CLK GPIO_AF15
605#define GPIO_AF_PB6_I2C6SCL GPIO_AF1
607#define GPIO_AF_PB6_T6CCP0 GPIO_AF3
618#define GPIO_AF_PB7_I2C6SDA GPIO_AF1
620#define GPIO_AF_PB7_T6CCP1 GPIO_AF3
631#define GPIO_AF_PC0_TCK GPIO_AF1
642#define GPIO_AF_PC1_TMS GPIO_AF1
653#define GPIO_AF_PC2_TDI GPIO_AF1
664#define GPIO_AF_PC3_TDO GPIO_AF1
675#define GPIO_AF_PC4_U7RX GPIO_AF1
677#define GPIO_AF_PC4_T7CCP0 GPIO_AF3
679#define GPIO_AF_PC4_EPI0S7 GPIO_AF15
690#define GPIO_AF_PC5_U7TX GPIO_AF1
692#define GPIO_AF_PC5_T7CCP1 GPIO_AF3
694#define GPIO_AF_PC5_RTCCLK GPIO_AF7
696#define GPIO_AF_PC5_EPI0S6 GPIO_AF15
707#define GPIO_AF_PC6_U5RX GPIO_AF1
709#define GPIO_AF_PC6_EPI0S5 GPIO_AF15
720#define GPIO_AF_PC7_U5TX GPIO_AF1
722#define GPIO_AF_PC7_EPI0S4 GPIO_AF15
733#define GPIO_AF_PD0_I2C7SCL GPIO_AF2
735#define GPIO_AF_PD0_T0CCP0 GPIO_AF3
737#define GPIO_AF_PD0_C0O GPIO_AF5
739#define GPIO_AF_PD0_SSI2XDAT1 GPIO_AF15
750#define GPIO_AF_PD1_I2C7SDA GPIO_AF2
752#define GPIO_AF_PD1_T0CCP1 GPIO_AF3
754#define GPIO_AF_PD1_C1O GPIO_AF5
756#define GPIO_AF_PD1_SSI2XDAT0 GPIO_AF15
767#define GPIO_AF_PD2_I2C8SCL GPIO_AF2
769#define GPIO_AF_PD2_T1CCP0 GPIO_AF3
771#define GPIO_AF_PD2_C2O GPIO_AF5
773#define GPIO_AF_PD2_SSI2FSS GPIO_AF15
784#define GPIO_AF_PD3_I2C8SDA GPIO_AF2
786#define GPIO_AF_PD3_T1CCP1 GPIO_AF3
788#define GPIO_AF_PD3_SSI2CLK GPIO_AF15
799#define GPIO_AF_PD4_U2RX GPIO_AF1
801#define GPIO_AF_PD4_T3CCP0 GPIO_AF3
803#define GPIO_AF_PD4_SSI1XDAT2 GPIO_AF15
814#define GPIO_AF_PD5_U2TX GPIO_AF1
816#define GPIO_AF_PD5_T3CCP1 GPIO_AF3
818#define GPIO_AF_PD5_SSI1XDAT3 GPIO_AF15
829#define GPIO_AF_PD6_U2RTS GPIO_AF1
831#define GPIO_AF_PD6_T4CCP0 GPIO_AF3
833#define GPIO_AF_PD6_USB0EPEN GPIO_AF5
835#define GPIO_AF_PD6_SSI2XDAT3 GPIO_AF15
846#define GPIO_AF_PD7_U2CTS GPIO_AF1
848#define GPIO_AF_PD7_T4CCP1 GPIO_AF3
850#define GPIO_AF_PD7_USB0PFLT GPIO_AF5
852#define GPIO_AF_PD7_NMI GPIO_AF8
854#define GPIO_AF_PD7_SSI2XDAT2 GPIO_AF15
865#define GPIO_AF_PE0_U1RTS GPIO_AF1
876#define GPIO_AF_PE1_U1DSR GPIO_AF1
887#define GPIO_AF_PE2_U1DCD GPIO_AF1
898#define GPIO_AF_PE3_U1DTR GPIO_AF1
900#define GPIO_AF_PE3_OWIRE GPIO_AF5
911#define GPIO_AF_PE4_U1RI GPIO_AF1
913#define GPIO_AF_PE4_SSI1XDAT0 GPIO_AF15
924#define GPIO_AF_PE5_SSI1XDAT1 GPIO_AF15
935#define GPIO_AF_PE6_U0CTS GPIO_AF1
937#define GPIO_AF_PE6_I2C9SCL GPIO_AF2
948#define GPIO_AF_PE7_U0RTS GPIO_AF1
950#define GPIO_AF_PE7_I2C9SDA GPIO_AF2
952#define GPIO_AF_PE7_NMI GPIO_AF8
963#define GPIO_AF_PF0_EN0LED0 GPIO_AF5
965#define GPIO_AF_PF0_M0PWM0 GPIO_AF6
967#define GPIO_AF_PF0_SSI3XDAT1 GPIO_AF14
969#define GPIO_AF_PF0_TRD2 GPIO_AF15
980#define GPIO_AF_PF1_EN0LED2 GPIO_AF5
982#define GPIO_AF_PF1_M0PWM1 GPIO_AF6
984#define GPIO_AF_PF1_SSI3XDAT0 GPIO_AF14
986#define GPIO_AF_PF1_TRD1 GPIO_AF15
997#define GPIO_AF_PF2_EN0MDC GPIO_AF5
999#define GPIO_AF_PF2_M0PWM2 GPIO_AF6
1001#define GPIO_AF_PF2_SSI3FSS GPIO_AF14
1003#define GPIO_AF_PF2_TRD0 GPIO_AF15
1014#define GPIO_AF_PF3_EN0MDIO GPIO_AF5
1016#define GPIO_AF_PF3_M0PWM3 GPIO_AF6
1018#define GPIO_AF_PF3_SSI3CLK GPIO_AF14
1020#define GPIO_AF_PF3_TRCLK GPIO_AF15
1031#define GPIO_AF_PF4_EN0LED1 GPIO_AF5
1033#define GPIO_AF_PF4_M0FAULT0 GPIO_AF6
1035#define GPIO_AF_PF4_SSI3XDAT2 GPIO_AF14
1037#define GPIO_AF_PF4_TRD3 GPIO_AF15
1048#define GPIO_AF_PF5_SSI3XDAT3 GPIO_AF14
1059#define GPIO_AF_PF6_LCDMCLK GPIO_AF15
1070#define GPIO_AF_PF7_LCDDATA02 GPIO_AF15
1081#define GPIO_AF_PG0_I2C1SCL GPIO_AF2
1083#define GPIO_AF_PG0_EN0PPS GPIO_AF5
1085#define GPIO_AF_PG0_M0PWM4 GPIO_AF6
1087#define GPIO_AF_PG0_EPI0S11 GPIO_AF15
1098#define GPIO_AF_PG1_I2C1SDA GPIO_AF2
1100#define GPIO_AF_PG1_M0PWM5 GPIO_AF6
1102#define GPIO_AF_PG1_EPI0S10 GPIO_AF15
1113#define GPIO_AF_PG2_I2C2SCL GPIO_AF2
1115#define GPIO_AF_PG2_EN0TXCK GPIO_AF14
1117#define GPIO_AF_PG2_SSI2XDAT3 GPIO_AF15
1128#define GPIO_AF_PG3_I2C2SDA GPIO_AF2
1130#define GPIO_AF_PG3_EN0TXEN GPIO_AF14
1132#define GPIO_AF_PG3_SSI2XDAT2 GPIO_AF15
1143#define GPIO_AF_PG4_U0CTS GPIO_AF1
1145#define GPIO_AF_PG4_I2C3SCL GPIO_AF2
1147#define GPIO_AF_PG4_OWIRE GPIO_AF5
1149#define GPIO_AF_PG4_EN0TXD0 GPIO_AF14
1151#define GPIO_AF_PG4_SSI2XDAT1 GPIO_AF15
1162#define GPIO_AF_PG5_U0RTS GPIO_AF1
1164#define GPIO_AF_PG5_I2C3SDA GPIO_AF2
1166#define GPIO_AF_PG5_OWALT GPIO_AF5
1168#define GPIO_AF_PG5_EN0TXD1 GPIO_AF14
1170#define GPIO_AF_PG5_SSI2XDAT0 GPIO_AF15
1181#define GPIO_AF_PG6_I2C4SCL GPIO_AF2
1183#define GPIO_AF_PG6_OWIRE GPIO_AF5
1185#define GPIO_AF_PG6_EN0RXER GPIO_AF14
1187#define GPIO_AF_PG6_SSI2FSS GPIO_AF15
1198#define GPIO_AF_PG7_I2C4SDA GPIO_AF2
1200#define GPIO_AF_PG7_OWIRE GPIO_AF5
1202#define GPIO_AF_PG7_EN0RXDV GPIO_AF14
1204#define GPIO_AF_PG7_SSI2CLK GPIO_AF15
1215#define GPIO_AF_PH0_U0RTS GPIO_AF1
1217#define GPIO_AF_PH0_EPI0S0 GPIO_AF15
1228#define GPIO_AF_PH1_U0CTS GPIO_AF1
1230#define GPIO_AF_PH1_EPI0S1 GPIO_AF15
1241#define GPIO_AF_PH2_U0DCD GPIO_AF1
1243#define GPIO_AF_PH2_EPI0S2 GPIO_AF15
1254#define GPIO_AF_PH3_U0DSR GPIO_AF1
1256#define GPIO_AF_PH3_EPI0S3 GPIO_AF15
1267#define GPIO_AF_PH4_U0DTR GPIO_AF1
1278#define GPIO_AF_PH5_U0RI GPIO_AF1
1280#define GPIO_AF_PH5_EN0PPS GPIO_AF15
1291#define GPIO_AF_PH6_U5RX GPIO_AF1
1293#define GPIO_AF_PH6_U7RX GPIO_AF2
1304#define GPIO_AF_PH7_U5TX GPIO_AF1
1306#define GPIO_AF_PH7_U7TX GPIO_AF2
1317#define GPIO_AF_PJ0_U3RX GPIO_AF1
1319#define GPIO_AF_PJ0_EN0PPS GPIO_AF5
1330#define GPIO_AF_PJ1_U3TX GPIO_AF1
1341#define GPIO_AF_PJ2_U2RTS GPIO_AF1
1343#define GPIO_AF_PJ2_LCDDATA14 GPIO_AF15
1354#define GPIO_AF_PJ3_U2CTS GPIO_AF1
1356#define GPIO_AF_PJ3_LCDDATA15 GPIO_AF15
1367#define GPIO_AF_PJ4_U3RTS GPIO_AF1
1369#define GPIO_AF_PJ4_LCDDATA16 GPIO_AF15
1380#define GPIO_AF_PJ5_U3CTS GPIO_AF1
1382#define GPIO_AF_PJ5_LCDDATA17 GPIO_AF15
1393#define GPIO_AF_PJ6_U4RTS GPIO_AF1
1395#define GPIO_AF_PJ6_LCDAC GPIO_AF15
1406#define GPIO_AF_PJ7_U4CTS GPIO_AF1
1417#define GPIO_AF_PK0_U4RX GPIO_AF1
1419#define GPIO_AF_PK0_EPI0S0 GPIO_AF15
1430#define GPIO_AF_PK1_U4TX GPIO_AF1
1432#define GPIO_AF_PK1_EPI0S1 GPIO_AF15
1443#define GPIO_AF_PK2_U4RTS GPIO_AF1
1445#define GPIO_AF_PK2_EPI0S2 GPIO_AF15
1456#define GPIO_AF_PK3_U4CTS GPIO_AF1
1458#define GPIO_AF_PK3_EPI0S3 GPIO_AF15
1469#define GPIO_AF_PK4_I2C3SCL GPIO_AF2
1471#define GPIO_AF_PK4_EN0LED0 GPIO_AF5
1473#define GPIO_AF_PK4_M0PWM6 GPIO_AF6
1475#define GPIO_AF_PK4_EN0INTRN GPIO_AF7
1477#define GPIO_AF_PK4_EN0RXD3 GPIO_AF14
1479#define GPIO_AF_PK4_EPI0S32 GPIO_AF15
1490#define GPIO_AF_PK5_I2C3SDA GPIO_AF2
1492#define GPIO_AF_PK5_EN0LED2 GPIO_AF5
1494#define GPIO_AF_PK5_M0PWM7 GPIO_AF6
1496#define GPIO_AF_PK5_EN0RXD2 GPIO_AF14
1498#define GPIO_AF_PK5_EPI0S31 GPIO_AF15
1509#define GPIO_AF_PK6_I2C4SCL GPIO_AF2
1511#define GPIO_AF_PK6_EN0LED1 GPIO_AF5
1513#define GPIO_AF_PK6_M0FAULT1 GPIO_AF6
1515#define GPIO_AF_PK6_EN0TXD2 GPIO_AF14
1517#define GPIO_AF_PK6_EPI0S25 GPIO_AF15
1528#define GPIO_AF_PK7_U0RI GPIO_AF1
1530#define GPIO_AF_PK7_I2C4SDA GPIO_AF2
1532#define GPIO_AF_PK7_RTCCLK GPIO_AF5
1534#define GPIO_AF_PK7_M0FAULT2 GPIO_AF6
1536#define GPIO_AF_PK7_EN0TXD3 GPIO_AF14
1538#define GPIO_AF_PK7_EPI0S24 GPIO_AF15
1549#define GPIO_AF_PL0_I2C2SDA GPIO_AF2
1551#define GPIO_AF_PL0_M0FAULT3 GPIO_AF6
1553#define GPIO_AF_PL0_USB0D0 GPIO_AF14
1555#define GPIO_AF_PL0_EPI0S16 GPIO_AF15
1566#define GPIO_AF_PL1_I2C2SCL GPIO_AF2
1568#define GPIO_AF_PL1_PHA0 GPIO_AF6
1570#define GPIO_AF_PL1_USB0D1 GPIO_AF14
1572#define GPIO_AF_PL1_EPI0S17 GPIO_AF15
1583#define GPIO_AF_PL2_C0O GPIO_AF5
1585#define GPIO_AF_PL2_PHB0 GPIO_AF6
1587#define GPIO_AF_PL2_USB0D2 GPIO_AF14
1589#define GPIO_AF_PL2_EPI0S18 GPIO_AF15
1600#define GPIO_AF_PL3_C1O GPIO_AF5
1602#define GPIO_AF_PL3_IDX0 GPIO_AF6
1604#define GPIO_AF_PL3_USB0D3 GPIO_AF14
1606#define GPIO_AF_PL3_EPI0S19 GPIO_AF15
1617#define GPIO_AF_PL4_T0CCP0 GPIO_AF3
1619#define GPIO_AF_PL4_USB0D4 GPIO_AF14
1621#define GPIO_AF_PL4_EPI0S26 GPIO_AF15
1632#define GPIO_AF_PL5_T0CCP1 GPIO_AF3
1634#define GPIO_AF_PL5_USB0D5 GPIO_AF14
1636#define GPIO_AF_PL5_EPI0S33 GPIO_AF15
1647#define GPIO_AF_PL6_T1CCP0 GPIO_AF3
1658#define GPIO_AF_PL7_T1CCP1 GPIO_AF3
1669#define GPIO_AF_PM0_T2CCP0 GPIO_AF3
1671#define GPIO_AF_PM0_EPI0S15 GPIO_AF15
1682#define GPIO_AF_PM1_T2CCP1 GPIO_AF3
1684#define GPIO_AF_PM1_EPI0S14 GPIO_AF15
1695#define GPIO_AF_PM2_T3CCP0 GPIO_AF3
1697#define GPIO_AF_PM2_EPI0S13 GPIO_AF15
1708#define GPIO_AF_PM3_T3CCP1 GPIO_AF3
1710#define GPIO_AF_PM3_EPI0S12 GPIO_AF15
1721#define GPIO_AF_PM4_U0CTS GPIO_AF1
1723#define GPIO_AF_PM4_T4CCP0 GPIO_AF3
1725#define GPIO_AF_PM4_EN0RREF_CLK GPIO_AF14
1736#define GPIO_AF_PM5_U0DCD GPIO_AF1
1738#define GPIO_AF_PM5_T4CCP1 GPIO_AF3
1749#define GPIO_AF_PM6_U0DSR GPIO_AF1
1751#define GPIO_AF_PM6_T5CCP0 GPIO_AF3
1753#define GPIO_AF_PM6_EN0CRS GPIO_AF14
1764#define GPIO_AF_PM7_U0RI GPIO_AF1
1766#define GPIO_AF_PM7_T5CCP1 GPIO_AF3
1768#define GPIO_AF_PM7_EN0COL GPIO_AF14
1779#define GPIO_AF_PN0_U1RTS GPIO_AF1
1790#define GPIO_AF_PN1_U1CTS GPIO_AF1
1801#define GPIO_AF_PN2_U1DCD GPIO_AF1
1803#define GPIO_AF_PN2_U2RTS GPIO_AF2
1805#define GPIO_AF_PN2_EPI0S29 GPIO_AF15
1816#define GPIO_AF_PN3_U1DSR GPIO_AF1
1818#define GPIO_AF_PN3_U2CTS GPIO_AF2
1820#define GPIO_AF_PN3_EPI0S30 GPIO_AF15
1831#define GPIO_AF_PN4_U1DTR GPIO_AF1
1833#define GPIO_AF_PN4_U3RTS GPIO_AF2
1835#define GPIO_AF_PN4_I2C2SDA GPIO_AF3
1837#define GPIO_AF_PN4_EPI0S34 GPIO_AF15
1848#define GPIO_AF_PN5_U1RI GPIO_AF1
1850#define GPIO_AF_PN5_U3CTS GPIO_AF2
1852#define GPIO_AF_PN5_I2C2SCL GPIO_AF3
1854#define GPIO_AF_PN5_EPI0S35 GPIO_AF15
1865#define GPIO_AF_PN6_U4RTS GPIO_AF2
1867#define GPIO_AF_PN6_EN0TXER GPIO_AF14
1869#define GPIO_AF_PN6_LCDDATA13 GPIO_AF15
1880#define GPIO_AF_PN7_U1RTS GPIO_AF1
1882#define GPIO_AF_PN7_U4CTS GPIO_AF2
1884#define GPIO_AF_PN7_LCDDATA12 GPIO_AF15
1895#define GPIO_AF_PP0_U6RX GPIO_AF1
1897#define GPIO_AF_PP0_T6CCP0 GPIO_AF5
1899#define GPIO_AF_PP0_EN0INTRN GPIO_AF7
1901#define GPIO_AF_PP0_SSI3XDAT2 GPIO_AF15
1912#define GPIO_AF_PP1_U6TX GPIO_AF1
1914#define GPIO_AF_PP1_T6CCP1 GPIO_AF5
1916#define GPIO_AF_PP1_SSI3XDAT3 GPIO_AF15
1927#define GPIO_AF_PP2_U0DTR GPIO_AF1
1929#define GPIO_AF_PP2_USB0NXT GPIO_AF14
1931#define GPIO_AF_PP2_EPI0S29 GPIO_AF15
1942#define GPIO_AF_PP3_U1CTS GPIO_AF1
1944#define GPIO_AF_PP3_U0DCD GPIO_AF2
1946#define GPIO_AF_PP3_RTCCLK GPIO_AF7
1949#define GPIO_AF_PP3_USB0DIR GPIO_AF14
1951#define GPIO_AF_PP3_EPI0S30 GPIO_AF15
1962#define GPIO_AF_PP4_U3RTS GPIO_AF1
1964#define GPIO_AF_PP4_U0DSR GPIO_AF2
1966#define GPIO_AF_PP4_OWIRE GPIO_AF4
1968#define GPIO_AF_PP4_USB0D7 GPIO_AF14
1979#define GPIO_AF_PP5_U3CTS GPIO_AF1
1981#define GPIO_AF_PP5_I2C2SCL GPIO_AF2
1983#define GPIO_AF_PP5_OWALT GPIO_AF4
1985#define GPIO_AF_PP5_USB0D6 GPIO_AF14
1996#define GPIO_AF_PP6_U1DCD GPIO_AF1
1998#define GPIO_AF_PP6_I2C2SDA GPIO_AF2
2009#define GPIO_AF_PP7_OWIRE GPIO_AF5
2020#define GPIO_AF_PQ0_T6CCP0 GPIO_AF3
2022#define GPIO_AF_PQ0_SSI3CLK GPIO_AF14
2024#define GPIO_AF_PQ0_EPI0S20 GPIO_AF15
2035#define GPIO_AF_PQ1_T6CCP1 GPIO_AF3
2037#define GPIO_AF_PQ1_SSI3FSS GPIO_AF14
2039#define GPIO_AF_PQ1_EPI0S21 GPIO_AF15
2050#define GPIO_AF_PQ2_T7CCP0 GPIO_AF3
2052#define GPIO_AF_PQ2_SSI3XDAT0 GPIO_AF14
2054#define GPIO_AF_PQ2_EPI0S22 GPIO_AF15
2065#define GPIO_AF_PQ3_T7CCP1 GPIO_AF3
2067#define GPIO_AF_PQ3_SSI3XDAT1 GPIO_AF14
2069#define GPIO_AF_PQ3_EPI0S23 GPIO_AF15
2080#define GPIO_AF_PQ4_U1RX GPIO_AF1
2082#define GPIO_AF_PQ4_DIVSCLK GPIO_AF7
2093#define GPIO_AF_PQ5_U1TX GPIO_AF1
2095#define GPIO_AF_PQ5_EN0RXD0 GPIO_AF14
2106#define GPIO_AF_PQ6_U1DTR GPIO_AF1
2108#define GPIO_AF_PQ6_EN0RXD1 GPIO_AF14
2119#define GPIO_AF_PQ7_U1RI GPIO_AF1
2130#define GPIO_AF_PR0_U4TX GPIO_AF1
2132#define GPIO_AF_PR0_I2C1SCL GPIO_AF2
2134#define GPIO_AF_PR0_M0PWM0 GPIO_AF6
2136#define GPIO_AF_PR0_LCDCP GPIO_AF15
2147#define GPIO_AF_PR1_U4RX GPIO_AF1
2149#define GPIO_AF_PR1_I2C1SDA GPIO_AF2
2151#define GPIO_AF_PR1_M0PWM1 GPIO_AF6
2153#define GPIO_AF_PR1_LCDFP GPIO_AF15
2164#define GPIO_AF_PR2_I2C2SCL GPIO_AF2
2166#define GPIO_AF_PR2_M0PWM2 GPIO_AF6
2168#define GPIO_AF_PR2_LCDLP GPIO_AF15
2179#define GPIO_AF_PR3_I2C2SDA GPIO_AF2
2181#define GPIO_AF_PR3_M0PWM3 GPIO_AF6
2183#define GPIO_AF_PR3_LCDDATA03 GPIO_AF15
2194#define GPIO_AF_PR4_I2C3SCL GPIO_AF2
2196#define GPIO_AF_PR4_T0CCP0 GPIO_AF3
2198#define GPIO_AF_PR4_M0PWM4 GPIO_AF6
2200#define GPIO_AF_PR4_LCDDATA00 GPIO_AF15
2211#define GPIO_AF_PR5_U1RX GPIO_AF1
2213#define GPIO_AF_PR5_I2C3SDA GPIO_AF2
2215#define GPIO_AF_PR5_T0CCP1 GPIO_AF3
2217#define GPIO_AF_PR5_M0PWM5 GPIO_AF6
2219#define GPIO_AF_PR5_LCDDATA01 GPIO_AF15
2230#define GPIO_AF_PR6_U1TX GPIO_AF1
2232#define GPIO_AF_PR6_I2C4SCL GPIO_AF2
2234#define GPIO_AF_PR6_T1CCP0 GPIO_AF3
2236#define GPIO_AF_PR6_M0PWM6 GPIO_AF6
2238#define GPIO_AF_PR6_LCDDATA04 GPIO_AF15
2249#define GPIO_AF_PR7_I2C4SDA GPIO_AF2
2251#define GPIO_AF_PR7_T1CCP1 GPIO_AF3
2253#define GPIO_AF_PR7_M0PWM7 GPIO_AF6
2255#define GPIO_AF_PR7_EN0TXEN GPIO_AF14
2257#define GPIO_AF_PR7_LCDDATA05 GPIO_AF15
2268#define GPIO_AF_PS0_T2CCP0 GPIO_AF3
2270#define GPIO_AF_PS0_M0FAULT0 GPIO_AF6
2272#define GPIO_AF_PS0_LCDDATA20 GPIO_AF15
2283#define GPIO_AF_PS1_T2CCP1 GPIO_AF3
2285#define GPIO_AF_PS1_M0FAULT1 GPIO_AF6
2287#define GPIO_AF_PS1_LCDDATA21 GPIO_AF15
2298#define GPIO_AF_PS2_U1DSR GPIO_AF1
2300#define GPIO_AF_PS2_T3CCP0 GPIO_AF3
2302#define GPIO_AF_PS2_M0FAULT2 GPIO_AF6
2304#define GPIO_AF_PS2_LCDDATA22 GPIO_AF15
2315#define GPIO_AF_PS3_T3CCP1 GPIO_AF3
2317#define GPIO_AF_PS3_M0FAULT3 GPIO_AF6
2319#define GPIO_AF_PS3_LCDDATA23 GPIO_AF15
2330#define GPIO_AF_PS4_T4CCP0 GPIO_AF3
2332#define GPIO_AF_PS4_PHA0 GPIO_AF6
2334#define GPIO_AF_PS4_EN0TXD0 GPIO_AF14
2336#define GPIO_AF_PS4_LCDDATA06 GPIO_AF15
2347#define GPIO_AF_PS5_T4CCP1 GPIO_AF3
2349#define GPIO_AF_PS5_PHB0 GPIO_AF6
2351#define GPIO_AF_PS5_EN0TXD1 GPIO_AF14
2353#define GPIO_AF_PS5_LCDDATA07 GPIO_AF15
2364#define GPIO_AF_PS6_T5CCP0 GPIO_AF3
2366#define GPIO_AF_PS6_IDX0 GPIO_AF6
2368#define GPIO_AF_PS6_EN0RXER GPIO_AF14
2370#define GPIO_AF_PS6_LCDDATA08 GPIO_AF15
2381#define GPIO_AF_PS7_T5CCP1 GPIO_AF3
2383#define GPIO_AF_PS7_EN0RXDV GPIO_AF14
2385#define GPIO_AF_PS7_LCDDATA09 GPIO_AF15
2396#define GPIO_AF_PT0_T6CCP0 GPIO_AF3
2398#define GPIO_AF_PT0_CAN0RX GPIO_AF7
2400#define GPIO_AF_PT0_EN0RXD0 GPIO_AF14
2402#define GPIO_AF_PT0_LCDDATA10 GPIO_AF15
2413#define GPIO_AF_PT1_T6CCP1 GPIO_AF3
2415#define GPIO_AF_PT1_CAN0TX GPIO_AF7
2417#define GPIO_AF_PT1_EN0RXD1 GPIO_AF14
2419#define GPIO_AF_PT1_LCDDATA11 GPIO_AF15
2430#define GPIO_AF_PT2_T7CCP0 GPIO_AF3
2432#define GPIO_AF_PT2_CAN1RX GPIO_AF7
2434#define GPIO_AF_PT2_LCDDATA18 GPIO_AF15
2445#define GPIO_AF_PT3_T7CCP1 GPIO_AF3
2447#define GPIO_AF_PT3_CAN1TX GPIO_AF7
2449#define GPIO_AF_PT3_LCDDATA19 GPIO_AF15
2505void gpio_set_af(uint32_t gpioport, uint8_t alt_func_num, uint8_t gpios);
2508void gpio_set(uint32_t gpioport, uint8_t gpios);
2509void gpio_clear(uint32_t gpioport, uint8_t gpios);
2510uint8_t
gpio_get(uint32_t gpioport, uint8_t gpios);
2511void gpio_toggle(uint32_t gpioport, uint8_t gpios);
void gpio_unlock_commit(uint32_t gpioport, uint8_t gpios)
General Purpose Input/Outputs Unlock The Commit Control.
void gpio_set_af(uint32_t gpioport, uint8_t alt_func_num, uint8_t gpios)
General Purpose Input/Outputs Set Alternate Function Selection.
gpio_drive_strength
GPIO Drive Strength Definitions.
void gpio_clear(uint32_t gpioport, uint8_t gpios)
General Purpose Input/Outputs Clear a Group of Pins Atomic.
void gpio_clear_interrupt_flag(uint32_t gpioport, uint8_t gpios)
General Purpose Input/Outputs Mark Interrupt as Serviced.
void gpio_port_write(uint32_t gpioport, uint8_t data)
General Purpose Input/Outputs Write to a Port.
gpio_mode
GPIO Mode Definitions.
void gpio_enable_interrupts(uint32_t gpioport, uint8_t gpios)
General Purpose Input/Outputs Enable Interrupts on specified pins.
void gpio_configure_trigger(uint32_t gpioport, enum gpio_trigger trigger, uint8_t gpios)
General Purpose Input/Outputs Configure Interrupt Trigger.
uint8_t gpio_is_interrupt_source(uint32_t gpioport, uint8_t gpios)
General Purpose Input/Outputs Determine if interrupt is generated by the given pin.
void gpio_mode_setup(uint32_t gpioport, enum gpio_mode mode, enum gpio_pull_up_down pull_up_down, uint8_t gpios)
General Purpose Input/Outputs Set Pin Mode.
uint8_t gpio_port_read(uint32_t gpioport)
General Purpose Input/Outputs Read from a Port.
uint8_t gpio_get(uint32_t gpioport, uint8_t gpios)
General Purpose Input/Outputs Read a Group of Pins.
void gpio_disable_interrupts(uint32_t gpioport, uint8_t gpios)
General Purpose Input/Outputs Disable interrupts on specified pins.
gpio_pull_up_down
GPIO Pull-Up/Pull-Down Definitions.
void gpio_toggle(uint32_t gpioport, uint8_t gpios)
General Purpose Input/Outputs Toggle a Group of Pins.
gpio_output_type
GPIO Output Type Definitions.
void gpio_set(uint32_t gpioport, uint8_t gpios)
General Purpose Input/Outputs Set a Group of Pins Atomic.
gpio_trigger
GPIO Trigger Level/Edge Definitions.
void gpio_set_output_options(uint32_t gpioport, enum gpio_output_type otype, enum gpio_drive_strength drive, enum gpio_slew_ctl slewctl, uint8_t gpios)
General Purpose Input/Outputs Set Output Options.
gpio_slew_ctl
GPIO Slew Control Definitions.
@ GPIO_DRIVE_6MA
6mA drive
@ GPIO_DRIVE_8MA
8mA drive
@ GPIO_DRIVE_10MA
10mA drive
@ GPIO_DRIVE_12MA
12mA drive
@ GPIO_DRIVE_2MA
2mA drive
@ GPIO_DRIVE_4MA
4mA drive
@ GPIO_MODE_ANALOG
Configure pin as analog function.
@ GPIO_MODE_INPUT
Configure pin as input.
@ GPIO_MODE_OUTPUT
Configure pin as output.
@ GPIO_PUPD_PULLUP
Pull the pin high.
@ GPIO_PUPD_PULLDOWN
Pull the pin low.
@ GPIO_PUPD_NONE
Do not pull the pin high or low.
@ GPIO_OTYPE_OD
Open drain configuration.
@ GPIO_OTYPE_PP
Push-pull configuration.
@ GPIO_TRIG_EDGE_BOTH
Both edges trigger.
@ GPIO_TRIG_EDGE_FALL
Falling edge trigger.
@ GPIO_TRIG_LVL_LOW
Level trigger, signal low.
@ GPIO_TRIG_LVL_HIGH
Level trigger, signal high.
@ GPIO_TRIG_EDGE_RISE
Rising edge trigger.
@ GPIO_SLEW_CTL_ENABLE
Slew rate control enable.
@ GPIO_SLEW_CTL_DISABLE
Slew rate control disable.