/** * @brief Configure platform GPIOs needed by the MHL device. * *****************************************************************************/ halReturn_t HalGpioInit(void) { int status; int i ,j; #if 0 // pinmux need not be configed here in aml platform. by Jets, Nov/25/2013 HalSetPinMux(); #endif aml_get_gpio(); for(i =0; i< ARRAY_SIZE(GPIO_List);i++) { /* Request GPIO . */ status = gpio_request(GPIO_List[i].gpio_number, GPIO_List[i].gpio_descripion); if (status < 0 && status != -EBUSY) { SII_DEBUG_PRINT(MSG_ERR,"HalInit gpio_request for GPIO %d (H/W Reset) failed, status: %d\n", GPIO_List[i].gpio_number, status); for(j = 0; j < i;j++) { gpio_free(GPIO_List[j].gpio_number); } return HAL_RET_FAILURE; } if(GPIO_List[i].gpio_direction == DIRECTION_OUT) { status = gpio_direction_output(GPIO_List[i].gpio_number, GPIO_List[i].init_value); } else { status = gpio_direction_input(GPIO_List[i].gpio_number); } if (status < 0) { SII_DEBUG_PRINT(MSG_ERR,"HalInit gpio_direction_output for GPIO %d (H/W Reset) failed, status: %d\n", GPIO_List[i].gpio_number, status); for(j = 0; j <= i;j++) { gpio_free(GPIO_List[j].gpio_number); } return HAL_RET_FAILURE; } // SII_DEBUG_PRINT(SII_OSAL_DEBUG_TRACE,"initialize %s successfully\n",GPIO_List[i].gpio_descripion); } return HAL_RET_SUCCESS; }
halReturn_t HalGpioInit(void) { int status; int i ,j; HalSetPinMux(); for(i =0; i< ARRAY_SIZE(GPIO_List); i++) { status = gpio_request(GPIO_List[i].gpio_number, GPIO_List[i].gpio_descripion); if (status < 0 && status != -EBUSY) { SII_DEBUG_PRINT(SII_OSAL_DEBUG_TRACE,"HalInit gpio_request for GPIO %d (H/W Reset) failed, status: %d\n", GPIO_List[i].gpio_number, status); for(j = 0; j < i; j++) { gpio_free(GPIO_List[j].gpio_number); } return HAL_RET_FAILURE; } if(GPIO_List[i].gpio_direction == DIRECTION_OUT) { status = gpio_direction_output(GPIO_List[i].gpio_number, GPIO_List[i].init_value); } else { status = gpio_direction_input(GPIO_List[i].gpio_number); } if (status < 0) { SII_DEBUG_PRINT(SII_OSAL_DEBUG_TRACE,"HalInit gpio_direction_output for GPIO %d (H/W Reset) failed, status: %d\n", GPIO_List[i].gpio_number, status); for(j = 0; j <= i; j++) { gpio_free(GPIO_List[j].gpio_number); } return HAL_RET_FAILURE; } SII_DEBUG_PRINT(SII_OSAL_DEBUG_TRACE,"initialize %s successfully\n",GPIO_List[i].gpio_descripion); } return HAL_RET_SUCCESS; }