wifi: build together with rkwifi, esp8089, rtl8188eu driver, avoid config change
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / esp8089 / sdio_stub.c
1 /*
2  * Copyright (c) 2013 Espressif System.
3  *
4  *  sdio stub code for RK
5  */
6
7 //#include <mach/gpio.h> libing
8 //#include <mach/iomux.h> libing
9
10 #define ESP8089_DRV_VERSION "2.20"
11 //extern int rk29sdk_wifi_power(int on); libing
12 extern int rockchip_wifi_power(int on);
13 //extern int rk29sdk_wifi_set_carddetect(int val); libing
14 extern int rockchip_wifi_set_carddetect(int val);
15 extern int esp_sdio_init(void);
16 extern void esp_sdio_exit(void)  ;
17
18 #if 1
19 int rockchip_wifi_init_module_esp8089(void)
20 {
21                 
22 return esp_sdio_init();         
23 }
24
25 void rockchip_wifi_exit_module_esp8089(void)
26 {
27         esp_sdio_exit(); 
28                  
29 }
30 #endif
31 void sif_platform_rescan_card(unsigned insert)
32 {
33                 //rk29sdk_wifi_set_carddetect(insert); libing
34         rockchip_wifi_set_carddetect(insert);
35 }
36
37 void sif_platform_reset_target(void)
38 {
39         if(sif_get_bt_config() == 1 && sif_get_retry_config() == 0){
40                 if(sif_get_rst_config() == 1){
41                         //TODO, use gpio to reset target
42                 }// else {
43                 //      iomux_set(GPIO3_D2);
44                 //      gpio_request(RK30_PIN3_PD2, "esp8089-sdio-wifi");
45
46                 //      mdelay(100);
47                 //      gpio_direction_output(RK30_PIN3_PD2, 0);
48                 //      mdelay(50);
49                 //      gpio_direction_output(RK30_PIN3_PD2, 1);
50         //      }
51         } else {
52                 //rk29sdk_wifi_set_carddetect(0);
53                 //rk29sdk_wifi_power(0); //libing
54                         rockchip_wifi_power(0);
55                 //rk29sdk_wifi_power(1); //libing
56                 rockchip_wifi_power(1);
57                 //rk29sdk_wifi_set_carddetect(1);
58         }
59 }
60
61 void sif_platform_target_poweroff(void)
62 {
63         printk("=======================================================\n");
64         printk("==== Dislaunching Wi-Fi driver! (Powered by Rockchip) ====\n");
65         printk("=======================================================\n");
66         printk("Espressif ESP8089 SDIO WiFi driver (Powered by Rockchip,Ver %s) init.\n", ESP8089_DRV_VERSION);
67
68         //rk29sdk_wifi_set_carddetect(0);
69         if(sif_get_bt_config() != 1)
70                 //rk29sdk_wifi_power(0); libing
71                         rockchip_wifi_power(0);
72 }
73
74 void sif_platform_target_poweron(void)
75 {
76         printk("=======================================================\n");
77         printk("==== Launching Wi-Fi driver! (Powered by Rockchip) ====\n");
78         printk("=======================================================\n");
79         printk("Espressif ESP8089 SDIO WiFi driver (Powered by Rockchip,Ver %s) init.\n", ESP8089_DRV_VERSION);
80
81         if(sif_get_bt_config() == 1){
82                 sif_platform_reset_target();
83         }
84         
85         //rk29sdk_wifi_power(1); libing
86         rockchip_wifi_power(1);
87         //rk29sdk_wifi_set_carddetect(1);
88 }
89
90 void sif_platform_target_speed(int high_speed)
91 {
92 }
93
94 void sif_platform_check_r1_ready(struct esp_pub *epub)
95 {
96 }
97
98
99 #ifdef ESP_ACK_INTERRUPT
100 //extern void sdmmc_ack_interrupt(struct mmc_host *mmc); libing
101
102 void sif_platform_ack_interrupt(struct esp_pub *epub)
103 {
104         struct esp_sdio_ctrl *sctrl = NULL;
105         struct sdio_func *func = NULL;
106
107         ASSERT(epub != NULL);
108         sctrl = (struct esp_sdio_ctrl *)epub->sif;
109         func = sctrl->func;
110         ASSERT(func != NULL);
111
112         //sdmmc_ack_interrupt(func->card->host);libing
113
114 }
115 #endif //ESP_ACK_INTERRUPT
116 EXPORT_SYMBOL(rockchip_wifi_init_module_esp8089);
117 EXPORT_SYMBOL(rockchip_wifi_exit_module_esp8089);
118
119 //module_init(esp_sdio_init);
120 //module_exit(esp_sdio_exit);