From: wdc Date: Fri, 10 Jun 2011 04:26:53 +0000 (+0800) Subject: rk29_phone: 解决先激活蓝牙,再激活wifi时,提示出错的问题,增加对gpio WIFI_RST的控制 X-Git-Tag: firefly_0821_release~10211 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=3e84f43c06491f17951dd8eaf2b4cf1a459aeb09;p=firefly-linux-kernel-4.4.55.git rk29_phone: 解决先激活蓝牙,再激活wifi时,提示出错的问题,增加对gpio WIFI_RST的控制 --- diff --git a/arch/arm/mach-rk29/board-rk29-a22.c b/arch/arm/mach-rk29/board-rk29-a22.c old mode 100644 new mode 100755 index d46125925c36..47800e6f62db --- a/arch/arm/mach-rk29/board-rk29-a22.c +++ b/arch/arm/mach-rk29/board-rk29-a22.c @@ -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); } diff --git a/arch/arm/mach-rk29/board-rk29-phonesdk.c b/arch/arm/mach-rk29/board-rk29-phonesdk.c index ff96ccb625ea..fc8f4c76a46a 100755 --- a/arch/arm/mach-rk29/board-rk29-phonesdk.c +++ b/arch/arm/mach-rk29/board-rk29-phonesdk.c @@ -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); }