コード例 #1
0
/* Customer function to control hw specific wlan gpios */
void
dhd_customer_gpio_wlan_ctrl(int onoff)
{
	switch (onoff) {
		case WLAN_RESET_OFF:
			WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n",
				__FUNCTION__));
#ifdef FIH_HW
			bcm4330_wifi_suspend();  //FIH-ADD+
#endif
#ifdef CUSTOMER_HW
			bcm_wlan_power_off(2);
#endif /* CUSTOMER_HW */
#ifdef CUSTOMER_HW2
			wifi_set_power(0, 0);
#endif
			//WL_ERROR(("=========== WLAN placed in RESET ========\n"));
		break;

		case WLAN_RESET_ON:
			WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n",
				__FUNCTION__));
#ifdef FIH_HW
			bcm4330_wifi_resume();  //FIH-ADD+
#endif
#ifdef CUSTOMER_HW
			bcm_wlan_power_on(2);
#endif /* CUSTOMER_HW */
#ifdef CUSTOMER_HW2
			wifi_set_power(1, 0);
#endif
			//WL_ERROR(("=========== WLAN going back to live  ========\n"));
		break;

		case WLAN_POWER_OFF:
			WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n",
				__FUNCTION__));
#ifdef FIH_HW
			wifi_power(0);  //FIH-ADD+
#endif
#ifdef CUSTOMER_HW
			bcm_wlan_power_off(1);
#endif /* CUSTOMER_HW */
		break;

		case WLAN_POWER_ON:
			WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n",
				__FUNCTION__));
#ifdef FIH_HW
			wifi_power(1);  //FIH-ADD+
#endif
#ifdef CUSTOMER_HW
			bcm_wlan_power_on(1);
			/* Lets customer power to get stable */
			OSL_DELAY(200);
#endif /* CUSTOMER_HW */
		break;
	}
}
コード例 #2
0
/* set the GPIO to low after awaking the TNET from ELP */
int hPlatform_hardResetTnetw(void)
{
	int err;

	// Turn power OFF
	if ((err = wifi_power(0)) == 0) {
		msleep(150);
		// Turn power ON
		err = wifi_power(1);
		msleep(150);
	}
	return err;
}
コード例 #3
0
int hPlatform_DevicePowerOn (void)
{

    int err = 0;

    err = wifi_power(1);
    //mdelay(150);

    return err;
}
コード例 #4
0
int hPlatform_DevicePowerOffSetLongerDelay (void)
{

    int err = 0;

    err = wifi_power(0);

	mdelay(500);

    return err;
}
コード例 #5
0
void sdio_function_cleanup(void)
{
	sd_trace(("%s Enter\n", __FUNCTION__));

	sdio_unregister_driver(&bcmsdh_sdmmc_driver);

#ifdef ANDROID_SPECIFIC
	wifi_power(FALSE);
#endif

	if (gInstance)
		kfree(gInstance);
}
コード例 #6
0
int hPlatform_DevicePowerOff (void *tnet_drv)
{
	TWlanDrvIfObj *drv = tnet_drv;
	int err = 0;

	err = wifi_power(0);
	if (wakeup_state) {
		set_irq_wake(drv->irq, 0);
		wakeup_state = 0;
	}

	return err;
}
コード例 #7
0
int hPlatform_DevicePowerOn (void *tnet_drv)
{
	TWlanDrvIfObj *drv = tnet_drv;
	int err = 0;

	err = wifi_power(1);
	msleep(30);
	if (!err && !wakeup_state) {
		set_irq_wake(drv->irq, 1);
		wakeup_state = 1;
	}

	return err;
}
コード例 #8
0
/*
 * module init
*/
int sdio_function_init(void)
{
	int error = 0;
	sd_trace(("bcmsdh_sdmmc: %s Enter\n", __FUNCTION__));

	gInstance = kzalloc(sizeof(BCMSDH_SDMMC_INSTANCE), GFP_KERNEL);
	if (!gInstance)
		return -ENOMEM;

#ifdef ANDROID_SPECIFIC
	wifi_power(TRUE);
#endif
	error = sdio_register_driver(&bcmsdh_sdmmc_driver);
	return error;
}