}GPIOInfo_t; #define GPIO_ITEM(a,b,c,d) \ {.index = (a),\ .gpio_number = (b), \ .gpio_descripion = (#a), \ .gpio_direction = (c), \ .init_value = (d), } static GPIOInfo_t GPIO_List[]= { // GPIO_ITEM(GPIO_136, 136,DIRECTION_OUT,0), //configure GPIO 135 134 as input at trainner board // GPIO_ITEM(GPIO_140, 140,DIRECTION_OUT,1), //configure GPIO 138 139 as output at trainner board // GPIO_ITEM(GPIO_INT, 94,DIRECTION_IN,0), GPIO_ITEM(GPIO_RST, 93,DIRECTION_OUT,1),//init high }; static GPIOInfo_t * GetGPIOInfo(int gpio) { int i; for(i =0; i< ARRAY_SIZE(GPIO_List);i++) { if(gpio == GPIO_List[i].index) { return &GPIO_List[i]; } } return NULL; }
{ GpioIndex_t index; int gpio_number; char gpio_descripion[40]; GPIODirection_t gpio_direction; int init_value; } GPIOInfo_t; #define GPIO_ITEM(a,b,c,d) \ {.index = (a),\ .gpio_number = (b), \ .gpio_descripion = (#a), \ .gpio_direction = (c), \ .init_value = (d), } static GPIOInfo_t GPIO_List[]= { GPIO_ITEM(GPIO_INT, 137,DIRECTION_IN,0), GPIO_ITEM(GPIO_RST, 138,DIRECTION_OUT,1), /* GPIO_ITEM(GPIO_M2U_VBUS_CTRL, 139,DIRECTION_OUT,1), GPIO_ITEM(GPIO_V_INT, 132,DIRECTION_IN,0), GPIO_ITEM(GPIO_REQ_IN, 136,DIRECTION_IN,0), GPIO_ITEM(GPIO_GNT, 135,DIRECTION_OUT,1), GPIO_ITEM(GPIO_MHL_USB, 131,DIRECTION_OUT,1), GPIO_ITEM(GPIO_SRC_VBUS_ON, 133,DIRECTION_OUT,0), GPIO_ITEM(GPIO_SINK_VBUS_ON, 134,DIRECTION_OUT,0), GPIO_ITEM(GPIO_VBUS_EN, 130,DIRECTION_IN,0), */ }; static GPIOInfo_t * GetGPIOInfo(int gpio) { int i;