ESP8089 sdio premalloc default config
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / esp8089 / esp_driver / sdio_stub.c
1 /* Copyright (c) 2008 -2014 Espressif System.
2  *
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License version 2 as
5  * published by the Free Software Foundation.
6  *
7  *
8  *  sdio stub code for RK
9  */
10
11 //#include <mach/gpio.h>
12 //#include <mach/iomux.h>
13
14 #define ESP8089_DRV_VERSION "2.25"
15 //extern int rk29sdk_wifi_power(int on); libing
16 extern int rockchip_wifi_power(int on);
17 //extern int rk29sdk_wifi_set_carddetect(int val); libing
18 extern int rockchip_wifi_set_carddetect(int val);
19 //extern int esp_sdio_init(void);
20 //extern void esp_sdio_exit(void)  ;
21
22 extern int rk29sdk_wifi_power(int on);
23 extern int rk29sdk_wifi_set_carddetect(int val);
24
25 void sif_platform_rescan_card(unsigned insert)
26 {
27                 //rk29sdk_wifi_set_carddetect(insert); libing
28         rockchip_wifi_set_carddetect(insert);
29 }
30
31 void sif_platform_reset_target(void)
32 {
33         if(sif_get_bt_config() == 1 && sif_get_retry_config() == 0){
34                 if(sif_get_rst_config() == 1){
35                         //TODO, use gpio to reset target
36                 }// else {
37                 //      iomux_set(GPIO3_D2);
38                 //      gpio_request(RK30_PIN3_PD2, "esp8089-sdio-wifi");
39
40                 //      mdelay(100);
41                 //      gpio_direction_output(RK30_PIN3_PD2, 0);
42                 //      mdelay(50);
43                 //      gpio_direction_output(RK30_PIN3_PD2, 1);
44         //      }
45         } else {
46                 //rk29sdk_wifi_set_carddetect(0);
47                 //rk29sdk_wifi_power(0); //libing
48                         rockchip_wifi_power(0);
49                 //rk29sdk_wifi_power(1); //libing
50                 rockchip_wifi_power(1);
51                 //rk29sdk_wifi_set_carddetect(1);
52         }
53 }
54
55 void sif_platform_target_poweroff(void)
56 {
57         printk("=======================================================\n");
58         printk("==== Dislaunching Wi-Fi driver! (Powered by Rockchip) ====\n");
59         printk("=======================================================\n");
60         printk("Espressif ESP8089 SDIO WiFi driver (Powered by Rockchip, Ver2.25(03/10/2015),Drv: %s) exit.\n", ESP8089_DRV_VERSION);
61
62         //rk29sdk_wifi_set_carddetect(0);
63         if(sif_get_bt_config() != 1)
64                 //rk29sdk_wifi_power(0); libing
65                         rockchip_wifi_power(0);
66 }
67
68 void sif_platform_target_poweron(void)
69 {
70         printk("=======================================================\n");
71         printk("==== Launching Wi-Fi driver! (Powered by Rockchip) ====\n");
72         printk("=======================================================\n");
73         printk("Espressif ESP8089 SDIO WiFi driver (Powered by Rockchip, Ver2.25(03/10/2015),Drv: %s) init.\n", ESP8089_DRV_VERSION);
74
75         if(sif_get_bt_config() == 1){
76                 sif_platform_reset_target();
77         }
78         
79         //rk29sdk_wifi_power(1); libing
80         rockchip_wifi_power(1);
81         //rk29sdk_wifi_set_carddetect(1);
82 }
83
84 void sif_platform_target_speed(int high_speed)
85 {
86 }
87
88 void sif_platform_check_r1_ready(struct esp_pub *epub)
89 {
90 }
91
92
93 #ifdef ESP_ACK_INTERRUPT
94 //extern void sdmmc_ack_interrupt(struct mmc_host *mmc); libing
95
96 void sif_platform_ack_interrupt(struct esp_pub *epub)
97 {
98         struct esp_sdio_ctrl *sctrl = NULL;
99         struct sdio_func *func = NULL;
100
101        // ASSERT(epub != NULL);
102         sctrl = (struct esp_sdio_ctrl *)epub->sif;
103         func = sctrl->func;
104        // ASSERT(func != NULL);
105
106         //sdmmc_ack_interrupt(func->card->host);libing
107
108 }
109 #endif //ESP_ACK_INTERRUPT
110