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