mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 12:57:06 +09:00
rk29_phone: 解决先激活蓝牙,再激活wifi时,提示出错的问题,增加对gpio WIFI_RST的控制
This commit is contained in:
10
arch/arm/mach-rk29/board-rk29-a22.c
Normal file → Executable file
10
arch/arm/mach-rk29/board-rk29-a22.c
Normal file → Executable file
@@ -2280,8 +2280,8 @@ static int rk29sdk_wifi_bt_gpio_control_init(void)
|
||||
}
|
||||
|
||||
gpio_direction_output(RK29SDK_WIFI_BT_GPIO_POWER_N, GPIO_LOW);
|
||||
gpio_direction_output(RK29SDK_WIFI_GPIO_RESET_N, GPIO_HIGH);
|
||||
gpio_direction_output(RK29SDK_BT_GPIO_RESET_N, GPIO_HIGH);
|
||||
gpio_direction_output(RK29SDK_WIFI_GPIO_RESET_N, GPIO_LOW);
|
||||
gpio_direction_output(RK29SDK_BT_GPIO_RESET_N, GPIO_LOW);
|
||||
|
||||
pr_info("%s: init finished\n",__func__);
|
||||
|
||||
@@ -2292,18 +2292,20 @@ static int rk29sdk_wifi_power(int on)
|
||||
{
|
||||
pr_info("%s: %d\n", __func__, on);
|
||||
if (on){
|
||||
gpio_set_value(RK29SDK_WIFI_BT_GPIO_POWER_N, on);
|
||||
gpio_set_value(RK29SDK_WIFI_BT_GPIO_POWER_N, GPIO_HIGH);
|
||||
gpio_set_value(RK29SDK_WIFI_GPIO_RESET_N, GPIO_HIGH);
|
||||
mdelay(100);
|
||||
pr_info("wifi turn on power\n");
|
||||
}else{
|
||||
if (!rk29sdk_bt_power_state){
|
||||
gpio_set_value(RK29SDK_WIFI_BT_GPIO_POWER_N, on);
|
||||
gpio_set_value(RK29SDK_WIFI_BT_GPIO_POWER_N, GPIO_LOW);
|
||||
mdelay(100);
|
||||
pr_info("wifi shut off power\n");
|
||||
}else
|
||||
{
|
||||
pr_info("wifi shouldn't shut off power, bt is using it!\n");
|
||||
}
|
||||
gpio_set_value(RK29SDK_WIFI_GPIO_RESET_N, GPIO_LOW);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -2178,8 +2178,8 @@ static int rk29sdk_wifi_bt_gpio_control_init(void)
|
||||
}
|
||||
|
||||
gpio_direction_output(RK29SDK_WIFI_BT_GPIO_POWER_N, GPIO_LOW);
|
||||
gpio_direction_output(RK29SDK_WIFI_GPIO_RESET_N, GPIO_HIGH);
|
||||
gpio_direction_output(RK29SDK_BT_GPIO_RESET_N, GPIO_HIGH);
|
||||
gpio_direction_output(RK29SDK_WIFI_GPIO_RESET_N, GPIO_LOW);
|
||||
gpio_direction_output(RK29SDK_BT_GPIO_RESET_N, GPIO_LOW);
|
||||
|
||||
pr_info("%s: init finished\n",__func__);
|
||||
|
||||
@@ -2190,18 +2190,20 @@ static int rk29sdk_wifi_power(int on)
|
||||
{
|
||||
pr_info("%s: %d\n", __func__, on);
|
||||
if (on){
|
||||
gpio_set_value(RK29SDK_WIFI_BT_GPIO_POWER_N, on);
|
||||
gpio_set_value(RK29SDK_WIFI_BT_GPIO_POWER_N, GPIO_HIGH);
|
||||
gpio_set_value(RK29SDK_WIFI_GPIO_RESET_N, GPIO_HIGH);
|
||||
mdelay(100);
|
||||
pr_info("wifi turn on power\n");
|
||||
}else{
|
||||
if (!rk29sdk_bt_power_state){
|
||||
gpio_set_value(RK29SDK_WIFI_BT_GPIO_POWER_N, on);
|
||||
gpio_set_value(RK29SDK_WIFI_BT_GPIO_POWER_N, GPIO_LOW);
|
||||
mdelay(100);
|
||||
pr_info("wifi shut off power\n");
|
||||
}else
|
||||
{
|
||||
pr_info("wifi shouldn't shut off power, bt is using it!\n");
|
||||
}
|
||||
gpio_set_value(RK29SDK_WIFI_GPIO_RESET_N, GPIO_LOW);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user