int wmt_detect_sdio_pwr_ctrl (int on) { int retval = -1; #ifdef MTK_WCN_COMBO_CHIP_SUPPORT if (0 == on) { /*power off SDIO slot*/ retval = board_sdio_ctrl(1, 0); } else { /*power on SDIO slot*/ retval = board_sdio_ctrl(1, 1); } #else WMT_DETECT_WARN_FUNC("WMT-DETECT: MTK_WCN_COMBO_CHIP_SUPPORT is not set\n"); #endif return retval; }
static long wmt_detect_unlocked_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { int retval = 0; WMT_DETECT_INFO_FUNC("cmd (%d),arg(%ld)\n", cmd,arg); switch(cmd){ case COMBO_IOCTL_GET_CHIP_ID: /*just get chipid from sdio-detect module*/ /*check if external combo chip exists or not*/ /*if yes, just return combo chip id*/ /*if no, get soc chipid*/ retval = mtk_wcn_wmt_chipid_query(); break; case COMBO_IOCTL_SET_CHIP_ID: mtk_wcn_wmt_set_chipid(arg); break; case COMBO_IOCTL_EXT_CHIP_PWR_ON: retval = wmt_detect_ext_chip_pwr_on(); break; case COMBO_IOCTL_EXT_CHIP_DETECT: retval = wmt_detect_ext_chip_detect(); break; case COMBO_IOCTL_EXT_CHIP_PWR_OFF: retval = wmt_detect_ext_chip_pwr_off(); break; case COMBO_IOCTL_DO_SDIO_AUDOK: retval = sdio_detect_do_autok(arg); break; case COMBO_IOCTL_GET_SOC_CHIP_ID: retval = wmt_plat_get_soc_chipid(); /*get soc chipid by HAL interface*/ break; case COMBO_IOCTL_MODULE_CLEANUP: #if (MTK_WCN_REMOVE_KO) /*deinit SDIO-DETECT module*/ retval = sdio_detect_exit(); #else WMT_DETECT_INFO_FUNC("no MTK_WCN_REMOVE_KO defined\n"); #endif break; case COMBO_IOCTL_DO_MODULE_INIT: #if (MTK_WCN_REMOVE_KO) /*deinit SDIO-DETECT module*/ retval = do_connectivity_driver_init(arg); #else WMT_DETECT_INFO_FUNC("no MTK_WCN_REMOVE_KO defined\n"); #endif break; default: WMT_DETECT_WARN_FUNC("unknown cmd (%d)\n", cmd); retval = 0; break; } return retval; }