int ti_wifi_power(int on) { printk(KERN_INFO "[WLAN]%s: %d\n", __func__, on); if (on) { config_gpio_table(wifi_on_gpio_table, ARRAY_SIZE(wifi_on_gpio_table)); /* control osc */ htc_wifi_bt_fast_clk_ctl(CLK_ON, ID_WIFI); msleep(100); gpio_set_value(BLISS_GPIO_WIFI_SHUTDOWN_N, 1); /* WIFI_SHUTDOWN */ msleep(15); gpio_set_value(BLISS_GPIO_WIFI_SHUTDOWN_N, 0); msleep(1); gpio_set_value(BLISS_GPIO_WIFI_SHUTDOWN_N, 1); msleep(70); } else { gpio_set_value(BLISS_GPIO_WIFI_SHUTDOWN_N,0); msleep(1); config_gpio_table(wifi_off_gpio_table, ARRAY_SIZE(wifi_off_gpio_table)); msleep(10); /* control osc */ htc_wifi_bt_fast_clk_ctl(CLK_OFF, ID_WIFI); } msleep(250); printk(KERN_INFO "[WLAN]%s: ---\n", __func__); return 0; }
int ti_wifi_power(int on) { const unsigned SDC4_HDRV_PULL_CTL_ADDR = (unsigned) MSM_TLMM_BASE + 0x20A0; printk(KERN_INFO "%s: %d\n", __func__, on); if (on) { htc_wifi_bt_fast_clk_ctl(on, ID_WIFI); mdelay(100); htc_wifi_bt_sleep_clk_ctl(on, ID_WIFI); mdelay(100); gpio_set_value(RUBY_GPIO_WIFI_SHUTDOWN_N, 1); msleep(15); gpio_set_value(RUBY_GPIO_WIFI_SHUTDOWN_N, 0); msleep(1); gpio_set_value(RUBY_GPIO_WIFI_SHUTDOWN_N, 1); msleep(70); config_gpio_table(wifi_on_gpio_table, ARRAY_SIZE(wifi_on_gpio_table)); mdelay(200); writel(0x1FDB, SDC4_HDRV_PULL_CTL_ADDR); } else { writel(0x1FDB, SDC4_HDRV_PULL_CTL_ADDR); config_gpio_table(wifi_off_gpio_table, ARRAY_SIZE(wifi_off_gpio_table)); gpio_set_value(RUBY_GPIO_WIFI_SHUTDOWN_N, on); mdelay(1); htc_wifi_bt_sleep_clk_ctl(on, ID_WIFI); mdelay(1); htc_wifi_bt_fast_clk_ctl(on, ID_WIFI); } mdelay(120); return 0; }
static void ruby_config_bt_on(void) { config_bt_table(ruby_bt_on_table, ARRAY_SIZE(ruby_bt_on_table)); mdelay(4); htc_wifi_bt_fast_clk_ctl(CLK_ON, ID_BT); mdelay(4); gpio_set_value(RUBY_GPIO_BT_EN, 0); mdelay(4); gpio_set_value(RUBY_GPIO_BT_EN, 1); }
static void bliss_config_bt_off(void) { /* BT_EN */ gpio_set_value(BLISS_GPIO_BT_EN, 0); mdelay(4); /* control osc */ htc_wifi_bt_fast_clk_ctl(CLK_OFF, ID_BT); mdelay(4); /* set bt off configuration*/ config_bt_table(bliss_bt_off_table, ARRAY_SIZE(bliss_bt_off_table)); mdelay(4); }
static void ruby_config_bt_off(void) { gpio_set_value(RUBY_GPIO_BT_EN, 0); mdelay(4); htc_wifi_bt_fast_clk_ctl(CLK_OFF, ID_BT); mdelay(4); config_bt_table(ruby_bt_off_table, ARRAY_SIZE(ruby_bt_off_table)); mdelay(4); gpio_set_value(RUBY_GPIO_BT_UART1_RTS, 1); mdelay(4); gpio_set_value(RUBY_GPIO_BT_UART1_TX, 1); mdelay(4); }