/****************************************************************************** * * Copyright(c) 2020-2030 Seekwave Corporation. * *****************************************************************************/ #ifndef __BOOT_CONFIG_H__ #define __BOOT_CONFIG_H__ #include #include #include #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__ */