static int __init rk29sdk_wifi_bt_gpio_control_init(void) { rk29sdk_init_wifi_mem(); rk29_mux_api_set(rk_platform_wifi_gpio.power_n.iomux.name, rk_platform_wifi_gpio.power_n.iomux.fgpio); if (rk_platform_wifi_gpio.power_n.io != INVALID_GPIO) { if (gpio_request(rk_platform_wifi_gpio.power_n.io, "wifi_power")) { pr_info("%s: request wifi power gpio failed\n", __func__); return -1; } } #ifdef RK30SDK_WIFI_GPIO_RESET_N if (rk_platform_wifi_gpio.reset_n.io != INVALID_GPIO) { if (gpio_request(rk_platform_wifi_gpio.reset_n.io, "wifi reset")) { pr_info("%s: request wifi reset gpio failed\n", __func__); gpio_free(rk_platform_wifi_gpio.power_n.io); return -1; } } #endif if (rk_platform_wifi_gpio.power_n.io != INVALID_GPIO) gpio_direction_output(rk_platform_wifi_gpio.power_n.io, !(rk_platform_wifi_gpio.power_n.enable) ); #ifdef RK30SDK_WIFI_GPIO_RESET_N if (rk_platform_wifi_gpio.reset_n.io != INVALID_GPIO) gpio_direction_output(rk_platform_wifi_gpio.reset_n.io, !(rk_platform_wifi_gpio.reset_n.enable) ); #endif #if defined(CONFIG_SDMMC1_RK29) && !defined(CONFIG_SDMMC_RK29_OLD) #if !defined(CONFIG_MT5931) && !defined(CONFIG_MT5931_MT6622) #if !(!!SDMMC_USE_NEW_IOMUX_API) rk29_mux_api_set(rksdmmc1_gpio_init.data1_gpio.iomux.name, rksdmmc1_gpio_init.data1_gpio.iomux.fgpio); #endif gpio_request(rksdmmc1_gpio_init.data1_gpio.io, "mmc1-data1"); gpio_direction_output(rksdmmc1_gpio_init.data1_gpio.io,GPIO_LOW);//set mmc1-data1 to low. #if !(!!SDMMC_USE_NEW_IOMUX_API) rk29_mux_api_set(rksdmmc1_gpio_init.data2_gpio.iomux.name, rksdmmc1_gpio_init.data2_gpio.iomux.fgpio); #endif gpio_request(rksdmmc1_gpio_init.data2_gpio.io, "mmc1-data2"); gpio_direction_output(rksdmmc1_gpio_init.data2_gpio.io,GPIO_LOW);//set mmc1-data2 to low. #if !(!!SDMMC_USE_NEW_IOMUX_API) rk29_mux_api_set(rksdmmc1_gpio_init.data3_gpio.iomux.name, rksdmmc1_gpio_init.data3_gpio.iomux.fgpio); #endif gpio_request(rksdmmc1_gpio_init.data3_gpio.io, "mmc1-data3"); gpio_direction_output(rksdmmc1_gpio_init.data3_gpio.io,GPIO_LOW);//set mmc1-data3 to low. #endif rk29_sdmmc_gpio_open(1, 0); //added by xbw at 2011-10-13 #endif pr_info("%s: init finished\n",__func__); return 0; }
static int __init rk29sdk_wifi_bt_gpio_control_init(void) { rk29sdk_init_wifi_mem(); #if 0 rk29_mux_api_set(GPIO3D0_SDMMC1PWREN_NAME, GPIO3D_GPIO3D0); if (gpio_request(RK30SDK_WIFI_GPIO_POWER_N, "wifi_power")) { pr_info("%s: request wifi power gpio failed\n", __func__); return -1; } /*if (gpio_request(RK29SDK_WIFI_GPIO_RESET_N, "wifi reset")) { pr_info("%s: request wifi reset gpio failed\n", __func__); gpio_free(RK30SDK_WIFI_GPIO_POWER_N); return -1; } if (gpio_request(RK29SDK_BT_GPIO_RESET_N, "bt reset")) { pr_info("%s: request bt reset gpio failed\n", __func__); gpio_free(RK29SDK_WIFI_GPIO_RESET_N); return -1; }*/ gpio_direction_output(RK30SDK_WIFI_GPIO_POWER_N, GPIO_LOW); //gpio_direction_output(RK29SDK_WIFI_GPIO_RESET_N, GPIO_LOW); //gpio_direction_output(RK29SDK_BT_GPIO_RESET_N, GPIO_LOW); #endif #if defined(CONFIG_SDMMC1_RK29) && !defined(CONFIG_SDMMC_RK29_OLD) rk29_mux_api_set(GPIO3C2_SDMMC1DATA1_NAME, GPIO3C_GPIO3C2); gpio_request(RK30_PIN3_PC2, "mmc1-data1"); gpio_direction_output(RK30_PIN3_PC2,GPIO_LOW);//set mmc1-data1 to low. rk29_mux_api_set(GPIO3C3_SDMMC1DATA2_NAME, GPIO3C_GPIO3C3); gpio_request(RK30_PIN3_PC3, "mmc1-data2"); gpio_direction_output(RK30_PIN3_PC3,GPIO_LOW);//set mmc1-data2 to low. rk29_mux_api_set(GPIO3C4_SDMMC1DATA3_NAME, GPIO3C_GPIO3C4); gpio_request(RK30_PIN3_PC4, "mmc1-data3"); gpio_direction_output(RK30_PIN3_PC4,GPIO_LOW);//set mmc1-data3 to low. rk29_sdmmc_gpio_open(1, 0); //added by xbw at 2011-10-13 #endif pr_info("%s: init finished\n",__func__); return 0; }
static int __init rk29sdk_wifi_bt_gpio_control_init(void) { rk29sdk_init_wifi_mem(); #if !(!!SDMMC_USE_NEW_IOMUX_API) rk29_mux_api_set(rk_platform_wifi_gpio.power_n.iomux.name, rk_platform_wifi_gpio.power_n.iomux.fgpio); #endif #ifdef CONFIG_MACH_RK_FAC if(wifi_pwr!=-1) port_output_init(wifi_pwr, 1, "wifi_pwr"); #else if (rk_platform_wifi_gpio.power_n.io != INVALID_GPIO) { if (gpio_request(rk_platform_wifi_gpio.power_n.io, "wifi_power")) { pr_info("%s: request wifi power gpio failed\n", __func__); return -1; } } #endif #ifdef RK30SDK_WIFI_GPIO_RESET_N if (rk_platform_wifi_gpio.reset_n.io != INVALID_GPIO) { if (gpio_request(rk_platform_wifi_gpio.reset_n.io, "wifi reset")) { pr_info("%s: request wifi reset gpio failed\n", __func__); gpio_free(rk_platform_wifi_gpio.power_n.io); return -1; } } #endif #ifdef CONFIG_MACH_RK_FAC if(wifi_pwr!=-1) port_output_off(wifi_pwr); #else if (rk_platform_wifi_gpio.power_n.io != INVALID_GPIO) gpio_direction_output(rk_platform_wifi_gpio.power_n.io, !(rk_platform_wifi_gpio.power_n.enable) ); #endif #ifdef RK30SDK_WIFI_GPIO_RESET_N if (rk_platform_wifi_gpio.reset_n.io != INVALID_GPIO) gpio_direction_output(rk_platform_wifi_gpio.reset_n.io, !(rk_platform_wifi_gpio.reset_n.enable) ); #endif #if defined(CONFIG_ARCH_RK319X)|| defined(CONFIG_USE_SDMMC0_FOR_WIFI_DEVELOP_BOARD) ////////////////////////////////////////////////////////////////////////////////////////// //mmc0--used for Wifi; mmc1--used for sd-card in project RK3190 gpio_request(rksdmmc0_gpio_init.data1_gpio.io, "mmc0-data1"); gpio_direction_output(rksdmmc0_gpio_init.data1_gpio.io,GPIO_LOW);//set mmc1-data1 to low. gpio_request(rksdmmc1_gpio_init.data2_gpio.io, "mmc0-data2"); gpio_direction_output(rksdmmc1_gpio_init.data2_gpio.io,GPIO_LOW);//set mmc1-data2 to low. gpio_request(rksdmmc0_gpio_init.data3_gpio.io, "mmc0-data3"); gpio_direction_output(rksdmmc0_gpio_init.data3_gpio.io,GPIO_LOW);//set mmc1-data3 to low. rk29_sdmmc_gpio_open(0, 0); printk("%d..%s ====test ===\n",__LINE__, __FUNCTION__); ////////////////////////////////////////////////////////////////////////////////////////// #else //--#if defined(CONFIG_ARCH_RK319X) #if defined(CONFIG_SDMMC1_RK29) && !defined(CONFIG_SDMMC_RK29_OLD) #if !defined(CONFIG_MT5931) && !defined(CONFIG_MT5931_MT6622) #if !(!!SDMMC_USE_NEW_IOMUX_API) rk29_mux_api_set(rksdmmc1_gpio_init.data1_gpio.iomux.name, rksdmmc1_gpio_init.data1_gpio.iomux.fgpio); #endif gpio_request(rksdmmc1_gpio_init.data1_gpio.io, "mmc1-data1"); gpio_direction_output(rksdmmc1_gpio_init.data1_gpio.io,GPIO_LOW);//set mmc1-data1 to low. #if !(!!SDMMC_USE_NEW_IOMUX_API) rk29_mux_api_set(rksdmmc1_gpio_init.data2_gpio.iomux.name, rksdmmc1_gpio_init.data2_gpio.iomux.fgpio); #endif gpio_request(rksdmmc1_gpio_init.data2_gpio.io, "mmc1-data2"); gpio_direction_output(rksdmmc1_gpio_init.data2_gpio.io,GPIO_LOW);//set mmc1-data2 to low. #if !(!!SDMMC_USE_NEW_IOMUX_API) rk29_mux_api_set(rksdmmc1_gpio_init.data3_gpio.iomux.name, rksdmmc1_gpio_init.data3_gpio.iomux.fgpio); #endif gpio_request(rksdmmc1_gpio_init.data3_gpio.io, "mmc1-data3"); gpio_direction_output(rksdmmc1_gpio_init.data3_gpio.io,GPIO_LOW);//set mmc1-data3 to low. #endif rk29_sdmmc_gpio_open(1, 0); //added by xbw at 2011-10-13 #endif #endif//--#else //--#if defined(CONFIG_ARCH_RK319X) pr_info("%s: init finished\n",__func__); return 0; }