giuliomoro@16: #ifndef MATRIX_GPIO_MAPPING_H giuliomoro@16: #define MATRIX_GPIO_MAPPING_H giuliomoro@16: giuliomoro@16: #define NUM_MATRIX_GPIOS 16 giuliomoro@16: extern short int matrixGpioPins[NUM_MATRIX_GPIOS]; giuliomoro@16: //GPIO_INPUT and GPIO_OUTPUT values when calling the setDigitalDirection() macro. giuliomoro@16: //TODO: these are inverted with respect to INPUT_PIN and OUTPUT_PIN defined in GPIOcontrol.h, giuliomoro@16: //which might lead to unexpected results in case someone uses those in place of these or viceversa giuliomoro@16: #define GPIO_INPUT 1 giuliomoro@16: #define GPIO_OUTPUT 0 giuliomoro@17: #define GPIO_HIGH 1 giuliomoro@17: #define GPIO_LOW 0 giuliomoro@16: //mapping GPIO numbers to header pins giuliomoro@16: //if you want to use different pins/ordering, define here new pins. The ordering here is NOT binding giuliomoro@16: #define P8_07_GPIO_NO 66 giuliomoro@16: #define P8_08_GPIO_NO 67 giuliomoro@16: #define P8_09_GPIO_NO 69 giuliomoro@16: #define P8_10_GPIO_NO 68 giuliomoro@16: #define P8_11_GPIO_NO 45 giuliomoro@16: #define P8_12_GPIO_NO 44 giuliomoro@16: #define P9_12_GPIO_NO 60 giuliomoro@16: #define P9_14_GPIO_NO 50 giuliomoro@16: #define P8_15_GPIO_NO 47 giuliomoro@16: #define P8_16_GPIO_NO 46 giuliomoro@16: #define P9_16_GPIO_NO 51 giuliomoro@16: #define P8_18_GPIO_NO 65 giuliomoro@16: #define P8_27_GPIO_NO 86 giuliomoro@16: #define P8_28_GPIO_NO 88 giuliomoro@16: #define P8_29_GPIO_NO 87 giuliomoro@16: #define P8_30_GPIO_NO 89 giuliomoro@16: giuliomoro@16: //mapping pin headers to bits in the matrixGpio word. giuliomoro@16: //used in the declaration of short int matrixGpioPins[NUM_MATRIX_GPIOS] below, which is used in PRU::prepareGPIO to export the pins giuliomoro@16: //if you want to use different pins, declare them above and use them here giuliomoro@16: //The ordering here is NOT binding, but if you want to use a different ordering, please change it here as well as below and in the PRU, for consistency giuliomoro@16: #define GPIO_NO_BIT_0 P8_07_GPIO_NO giuliomoro@16: #define GPIO_NO_BIT_1 P8_08_GPIO_NO giuliomoro@16: #define GPIO_NO_BIT_2 P8_09_GPIO_NO giuliomoro@16: #define GPIO_NO_BIT_3 P8_10_GPIO_NO giuliomoro@16: #define GPIO_NO_BIT_4 P8_11_GPIO_NO giuliomoro@16: #define GPIO_NO_BIT_5 P8_12_GPIO_NO giuliomoro@16: #define GPIO_NO_BIT_6 P9_12_GPIO_NO giuliomoro@16: #define GPIO_NO_BIT_7 P9_14_GPIO_NO giuliomoro@16: #define GPIO_NO_BIT_8 P8_15_GPIO_NO giuliomoro@16: #define GPIO_NO_BIT_9 P8_16_GPIO_NO giuliomoro@16: #define GPIO_NO_BIT_10 P9_16_GPIO_NO giuliomoro@16: #define GPIO_NO_BIT_11 P8_18_GPIO_NO giuliomoro@16: #define GPIO_NO_BIT_12 P8_27_GPIO_NO giuliomoro@16: #define GPIO_NO_BIT_13 P8_28_GPIO_NO giuliomoro@16: #define GPIO_NO_BIT_14 P8_29_GPIO_NO giuliomoro@16: #define GPIO_NO_BIT_15 P8_30_GPIO_NO giuliomoro@16: giuliomoro@16: //mapping bits in the matrixGpio word to pin headers, so that pin header name can be used instead of but number giuliomoro@16: //The ordering here IS binding. If you want to use different pins/ordering, please do it above as well as here and in the PRU, for consistency giuliomoro@16: #define P8_07 0 giuliomoro@16: #define P8_08 1 giuliomoro@16: #define P8_09 2 giuliomoro@16: #define P8_10 3 giuliomoro@16: #define P8_11 4 giuliomoro@16: #define P8_12 5 giuliomoro@16: #define P9_12 6 giuliomoro@16: #define P9_14 7 giuliomoro@16: #define P8_15 8 giuliomoro@16: #define P8_16 9 giuliomoro@16: #define P9_16 10 giuliomoro@16: #define P8_18 11 giuliomoro@16: #define P8_27 12 giuliomoro@16: #define P8_28 13 giuliomoro@16: #define P8_29 14 giuliomoro@16: #define P8_30 15 giuliomoro@16: giuliomoro@16: #endif