예제 #1
0
static void board_gokey_early_suspend(struct early_suspend *h)
{

	struct omap_hwmod *uart4_hwmod;
	struct omap_hwmod *mcbsp3_hwmod;

	/* correct uart4 hwmod flag settings for gokey board. */
	uart4_hwmod = omap_hwmod_lookup("uart4");
	if (likely(uart4_hwmod))
		uart4_hwmod->flags = HWMOD_SWSUP_SIDLE;

	if (!cpufreq_lpmode.wifi_enabled  && !cpufreq_lpmode.bt_enabled
		&& is_playback_lpmode_available()
		&& (gokey_get_charging_type() != USB_EVENT_VBUS)) {
		cpu_down(1);
		omap4_init_power_states(omap443x_gokey_mp3_lpmode_params_table);
		update_cpuidle_params();
		cpufreq_lpmode.lp_mode_enabled = true;
		omap_cpufreq_max_limit(DVFS_LOCK_ID_PM, PM_LPMODE_DVFS_FREQ);
	} else
		cpufreq_lpmode.lp_mode_enabled = false;
	if (!is_playback_lpmode_available()) {
		/* correct mcbsp3 hwmod flag settings for gokey board. */
		mcbsp3_hwmod = omap_hwmod_lookup("mcbsp3");
		if (likely(mcbsp3_hwmod))
			mcbsp3_hwmod->flags = HWMOD_SWSUP_SIDLE;
	}
}
static int check_charger_type(void)
{
	int cable_type = CABLE_TYPE_NONE;
	char *cable_type_str[] = {"NONE", "USB", "AC"};

	cable_type = gokey_get_charging_type();

	pr_info("%s: Charger type is [%s]\n",
			__func__, cable_type_str[cable_type]);

	return cable_type;
}