lin
2025-07-31 065ea569db06206874bbfa18eb25ff6121aec09b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/******************************************************************************
 *
 * Copyright(c) 2020-2030  Seekwave Corporation.
 *
 *****************************************************************************/
#ifndef __BOOT_CONFIG_H__
#define __BOOT_CONFIG_H__
#include <linux/types.h>
#include <linux/gpio.h>
#include <linux/delay.h>
 
#ifdef CONFIG_SKW_NO_CONFIG
#define  MODEM_ENABLE_GPIO       202
#define  HOST_WAKEUP_GPIO_IN     -1
#define  MODEM_WAKEUP_GPIO_OUT  -1
#else
//#define  MODEM_ENABLE_GPIO       -1
#error "WIFI CHIP_EN Is Not Configured Pls Check The Config!!!"
#define  HOST_WAKEUP_GPIO_IN     -1
#define  MODEM_WAKEUP_GPIO_OUT  -1
#endif
#define  SEEKWAVE_NV_NAME  "SEEKWAVE_NV_SWT6621S.bin"
//#define CONFIG_SEEKWAVE_FIRMWARE_LOAD
//#define  SKW_IRAM_FILE_PATH  "/vendor/firmware/SWT6621S_IRAM_USB.bin"
//#define  SKW_DRAM_FILE_PATH  "/vendor/firmware/SWT6621S_DRAM_USB.bin"
#define  SKW_POWER_OFF_VALUE   0
 
//#define SKW_SUPPORT_MMC_NONREMOVABLE //support the host mmc card is not removable but sdcard is removable default
#define CONFIG_SEEKWAVE_PLD_RELEASE 1
#define SKW_DUMP_BUFFER_SIZE     (1200*1024)
#define POWERON_DELAY_TIME  200
#define  SKW_DMA_TYPE_CFG   ADMA
#define  SKW_BT_ANTENNA_CFG   0
 
#define CONFIG_NO_SERVICE_PD 0 // default ps mode cp not poweroff
 
 
/***********************************************************
**CONFIG_SKW_HOST_SUPPORT_ADMA 1 : use ADMA    0 : use SDMA
**
***********************************************************/
//#define CONFIG_SKW_HOST_SUPPORT_ADMA
 
#if defined(CONFIG_SKW_HOST_SUPPORT_ADMA)
#define TX_DMA_TYPE        TX_ADMA
#else
#define TX_DMA_TYPE        TX_SDMA
#endif
//#define CONFIG_SKW_HOST_PLATFORM_AMLOGIC 1
//#define CONFIG_SKW_HOST_PLATFORM_FULLHAN
 
//#define  USB_POWEROFF_IN_LOWPOWER  1
#define SKW_CHIP_POWEROFF(gpiono) \
{ \
   if(gpiono >= 0) { \
       gpio_set_value(gpiono>>1, (gpiono&0x01)); \
   } \
}
 
#define SKW_CHIP_POWERON(gpiono) \
{ \
   if(gpiono >= 0) { \
   gpio_set_value(gpiono>>1, 1-(gpiono&0x01)); \
   } \
}
#define SKW_MMC_HOST_SD_INDEX  1 //default sd index is 1 if not 1 pls set to 0 or 2
 
#if defined(CONFIG_SKW_HOST_PLATFORM_FULLHAN)
#define SKW_MMC_HOST_SD_INDEX  1 //default sd index is 1 if not 1 pls set to 0 or 2
extern void fh_sdio_card_scan(int sd_id); //fullhan sdio card scan
#endif
#if defined(CONFIG_SKW_HOST_PLATFORM_AMLOGIC)
extern void extern_wifi_set_enable(int is_on);
#elif defined(CONFIG_SKW_HOST_PLATFORM_ALLWINER)
extern void sunxi_wlan_set_power(int on);
extern void sunxi_mmc_rescan_card(unsigned ids);
#elif defined(CONFIG_SKW_HOST_PLATFORM_ROCKCHIP)
extern int rockchip_wifi_power(int on);
extern int rockchip_wifi_set_carddetect(int val);
#else
extern int skw_chipen_gpio_reset(int on);
static inline int skw_chip_power_ops(int on)
{
   return skw_chipen_gpio_reset(on);
}
#endif
 
static inline void skw_chip_set_power(int on)
{
#if defined(CONFIG_SKW_HOST_PLATFORM_AMLOGIC)
   extern_wifi_set_enable(on);
#elif defined(CONFIG_SKW_HOST_PLATFORM_ALLWINER)
   sunxi_wlan_set_power(on);
#elif defined(CONFIG_SKW_HOST_PLATFORM_ROCKCHIP)
   rockchip_wifi_power(on);
#elif defined(CONFIG_SKW_HOST_PLATFORM_HISI_BIGFISH)
   hi_drv_gpio_set_dir_bit(MODEM_ENABLE_GPIO, 0);
   hi_drv_gpio_write_bit(MODEM_ENABLE_GPIO, on);
#else
   skw_chip_power_ops(on);
#endif
 
}
static inline void skw_chip_power_reset(void)
{
#if defined(CONFIG_SKW_HOST_PLATFORM_AMLOGIC)
   printk("amlogic skw chip power reset !!\n");
   extern_wifi_set_enable(0);
   msleep(POWERON_DELAY_TIME);
   extern_wifi_set_enable(1);
#elif defined(CONFIG_SKW_HOST_PLATFORM_ALLWINER)
   printk("allwinner skw chip power reset !!\n");
   sunxi_wlan_set_power(0);
   msleep(POWERON_DELAY_TIME);
   sunxi_wlan_set_power(1);
#elif defined(CONFIG_SKW_HOST_PLATFORM_ROCKCHIP)
   printk("rockchip skw chip power reset !!\n");
   rockchip_wifi_power(0);
   msleep(POWERON_DELAY_TIME);
   rockchip_wifi_power(1);
#elif defined(CONFIG_SKW_HOST_PLATFORM_HISI_BIGFISH)
   printk("hisi skw chip power reset !!\n");
   hi_drv_gpio_set_dir_bit(MODEM_ENABLE_GPIO,0);
   hi_drv_gpio_write_bit(MODEM_ENABLE_GPIO,0);
   msleep(POWERON_DELAY_TIME);
   hi_drv_gpio_write_bit(MODEM_ENABLE_GPIO,1);
#else
   printk("self skw chip power reset !!\n");
   skw_chip_power_ops(0);
   msleep(POWERON_DELAY_TIME);
   skw_chip_power_ops(1);
#endif
}
#endif /* __BOOT_CONFIG_H__ */