{ 237, LOW, FN_GPIO_INPUT | FN_I2C | FN_ANALOG }, // Output disabled { 213, HIGH, FN_GPIO_INPUT_PULLUP }, // Pullup enabled { 213, LOW, FN_GPIO_INPUT_PULLDOWN }, // Pulldown enabled { 213, NONE, FN_GPIO_OUTPUT | FN_GPIO_INPUT_HIZ | FN_I2C | FN_ANALOG }, // Pullup disabled { 165, PIN_MODE_0, FN_GPIO | FN_ANALOG }, { 28, PIN_MODE_1, FN_I2C }, // I2C mode { 214, HIGH, FN_GPIO | FN_I2C | FN_ANALOG } // Tristate enabled for all pins }; // Sorted by Linux GPIO ID PinDescription g_APinDescription[] = { // gpiolib alias fastinf ardid Initial FixdSt ptMuxDesc, MuxCount type Handle extPU iAlt pAlt { 12, NONE, 3, 3, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc3, MUX_SIZE(MuxDesc3), FN_GPIO, -1, 1, 0, NULL }, // Arduino IO3 { 13, NONE, 5, 5, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc5, MUX_SIZE(MuxDesc5), FN_GPIO, -1, 1, 0, NULL }, // Arduino IO5 { 14, NONE, 18, 18, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc18, MUX_SIZE(MuxDesc18), FN_GPIO, -1, 1, 0, NULL }, // Arduino IO18 (AIN4) { 40, NONE, 13, 13, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc13, MUX_SIZE(MuxDesc13), FN_GPIO, -1, 1, 0, NULL }, // Arduino IO13 { 41, NONE, 10, 10, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc10, MUX_SIZE(MuxDesc10), FN_GPIO, -1, 1, 0, NULL }, // Arduino IO10 { 42, NONE, 12, 12, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc12, MUX_SIZE(MuxDesc12), FN_GPIO, -1, 1, 0, NULL }, // Arduino IO12 { 43, NONE, 11, 11, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc11, MUX_SIZE(MuxDesc11), FN_GPIO, -1, 1, 0, NULL }, // Arduino IO11 { 44, NONE, 14, 14, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc14, MUX_SIZE(MuxDesc14), FN_GPIO, -1, 1, 0, NULL }, // Arduino IO14 (AIN0) { 45, NONE, 15, 15, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc15, MUX_SIZE(MuxDesc15), FN_GPIO, -1, 1, 0, NULL }, // Arduino IO15 (AIN1) { 46, NONE, 16, 16, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc16, MUX_SIZE(MuxDesc16), FN_GPIO, -1, 1, 0, NULL }, // Arduino IO16 (AIN2) { 47, NONE, 17, 17, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc17, MUX_SIZE(MuxDesc17), FN_GPIO, -1, 1, 0, NULL }, // Arduino IO17 (AIN3) { 48, NONE, 7, 7, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc7, MUX_SIZE(MuxDesc7), FN_GPIO, -1, 1, 0, NULL }, // Arduino IO7 { 49, NONE, 8, 8, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc8, MUX_SIZE(MuxDesc8), FN_GPIO, -1, 1, 0, NULL }, // Arduino IO8 { 128, NONE, 2, 2, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc2, MUX_SIZE(MuxDesc2), FN_GPIO, -1, 1, 0, NULL }, // Arduino IO2 { 129, NONE, 4, 4, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc4, MUX_SIZE(MuxDesc4), FN_GPIO, -1, 1, 0, NULL }, // Arduino IO4 { 130, NONE, 0, 0, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc0, MUX_SIZE(MuxDesc0), FN_GPIO, -1, 1, 0, NULL }, // Arduino IO0
FastIOInfo FastIOInfoPin5 = { FAST_IO_MODE_PIO, GPIO_FAST_IO5, CW_GPIO_LVL, CW_GPIO_LVL }; FastIOInfo FastIOInfoPin6 = { FAST_IO_MODE_PIO, GPIO_FAST_IO6, CW_GPIO_LVL, CW_GPIO_LVL }; FastIOInfo FastIOInfoPin7 = { FAST_IO_MODE_PIO, GPIO_FAST_IO7, RW_GPIO_LVL, RW_GPIO_LVL }; FastIOInfo FastIOInfoPin8 = { FAST_IO_MODE_PIO, GPIO_FAST_IO8, RW_GPIO_LVL, RW_GPIO_LVL }; FastIOInfo FastIOInfoPin9 = { FAST_IO_MODE_PIO, GPIO_FAST_IO9, RW_GPIO_LVL, RW_GPIO_LVL }; FastIOInfo FastIOInfoPin11 = { FAST_IO_MODE_PIO, GPIO_FAST_IO11, RW_GPIO_LVL, RW_GPIO_LVL }; FastIOInfo FastIOInfoPin4 = { FAST_IO_MODE_PIO, GPIO_FAST_IO4, RW_GPIO_LVL, RW_GPIO_LVL }; FastIOInfo FastIOInfoPin13 = { FAST_IO_MODE_PIO, GPIO_FAST_IO13, RW_GPIO_LVL, RW_GPIO_LVL }; /* * The following 6 pins are for Fast mode MMIO access. The pins are the same * as slow mode, they just use MMIO register access for fast mode and sysfs for slow mode. */ // gpiolib alias fastinf ardid Initial FixdSt ptMuxDesc, MuxCount type Handle extPU iAlt pAlt PinDescription AltPin0 = { 11, NONE, &FastIOInfoPin0, 0, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc0, MUX_SIZE(MuxDesc0), FN_GPIO, -1, 1, 0, NULL }; // Arduino IO0 or UART0_RXD PinDescription AltPin1 = { 12, NONE, &FastIOInfoPin1, 1, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc1, MUX_SIZE(MuxDesc1), FN_GPIO, -1, 1, 0, NULL }; // Arduino IO1 or UART0_TXD PinDescription AltPin2 = { 13, NONE, &FastIOInfoPin2, 2, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc2, MUX_SIZE(MuxDesc2), FN_GPIO, -1, 1, 0, NULL }; // Arduino IO2 or UART1_RXD PinDescription AltPin3 = { 14, NONE, &FastIOInfoPin3, 3, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc3, MUX_SIZE(MuxDesc3), FN_GPIO, -1, 1, 0, NULL }; // Arduino IO3 or UART1_TXD or PWM pin #1 PinDescription AltPin10 = { 10, NONE, &FastIOInfoPin10, 10, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc10, MUX_SIZE(MuxDesc10), FN_GPIO, -1, 1, 0, NULL }; // Arduino IO10 or SPI1_SS_B or PWM pin #5 PinDescription AltPin12 = { 15, NONE, &FastIOInfoPin12, 12, FN_GPIO_INPUT_HIZ, NONE, (mux_sel_t*)&MuxDesc12, MUX_SIZE(MuxDesc12), FN_GPIO, -1, 1, 0, NULL }; // Arduino IO12 or SPI1_MISO /* * The following 8 pins are for Fast mode PIO access. The pins are the same * as slow mode, they just use PIO register access for fast mode and sysfs for slow mode. */