static void aic3008_powerinit(void)
{
	int value = htc_get_pcbid_info();

	if (value >= PROJECT_PHASE_XA) {
		power_config("AUD_MCLK_EN", TEGRA_GPIO_PX7, INIT_OUTPUT_HIGH);
		power_config("AUD_MCLK_EN", TEGRA_GPIO_PX7, GPIO_OUTPUT);
		power_config("AUD_AIC3008_RST#", TEGRA_GPIO_PW5, INIT_OUTPUT_HIGH);
		power_config("AUD_AIC3008_RST#", TEGRA_GPIO_PW5, GPIO_OUTPUT);
		power_config("v_aud_a1v8", TEGRA_GPIO_PD2, REGULATOR_METHOD);
		power_config("v_aud_3v3", TEGRA_GPIO_PB2, REGULATOR_METHOD);
	} else AUD_ERR("%s: no pcbid satisfy.", __func__);

	power_config("AUD_MCLK", TEGRA_GPIO_PW4, INIT_OUTPUT_LOW);
	sfio_deconfig("AUD_MCLK", TEGRA_GPIO_PW4);
	power_config("AUD_SPK_EN", TEGRA_GPIO_PP6, INIT_OUTPUT_LOW);
	sfio_deconfig("AUD_SPK_EN", TEGRA_GPIO_PP6);
	power_config("AUD_LINEOUT_EN", TEGRA_GPIO_PP7, INIT_OUTPUT_LOW);
	sfio_deconfig("AUD_LINEOUT_EN", TEGRA_GPIO_PP7);
	common_init();

	spin_lock_init(&aic3008_power.spin_lock);
	aic3008_power.isPowerOn = true;

	return;
}
void common_deconfig(void)
{
	sfio_deconfig("AUD_I2S_WS", TEGRA_GPIO_PA2);
	sfio_deconfig("AUD_I2S_SCK", TEGRA_GPIO_PA3);
	sfio_deconfig("AUD_I2S_DOUT", TEGRA_GPIO_PA4);
	sfio_deconfig("AUD_I2S_DIN", TEGRA_GPIO_PA5);
	sfio_deconfig("AUD_SPI_MOSI", TEGRA_GPIO_PX0);
	sfio_deconfig("AUD_SPI_MISO", TEGRA_GPIO_PX1);
	sfio_deconfig("AUD_SPI_SCK", TEGRA_GPIO_PX2);
	sfio_deconfig("AUD_SPI_CS#", TEGRA_GPIO_PX3);
}
Esempio n. 3
0
static void aic3008_powerinit(void)
{
	if (pcbid >= PROJECT_PHASE_XD) {
		power_config("AUD_MCLK_EN", TEGRA_GPIO_PN1, INIT_OUTPUT_HIGH);
	} else if (pcbid >= PROJECT_PHASE_XA && pcbid <= PROJECT_PHASE_XC) {
		power_config("AUD_MCLK_EN", TEGRA_GPIO_PX7, INIT_OUTPUT_HIGH);
	} else AUD_ERR("%s: no pcbid satisfy.", __func__);
	power_config("AUD_AIC3008_RST#", TEGRA_GPIO_PW5, INIT_OUTPUT_HIGH);
	power_config("v_aud_a1v8", TEGRA_GPIO_PD2, REGULATOR_METHOD);
	power_config("v_aud_3v3", TEGRA_GPIO_PB2, REGULATOR_METHOD);

	power_config("AUD_MCLK", TEGRA_GPIO_PW4, INIT_OUTPUT_LOW);
	sfio_deconfig("AUD_MCLK", TEGRA_GPIO_PW4);
	power_config("AUD_SPK_EN", TEGRA_GPIO_PP6, INIT_OUTPUT_LOW);
	sfio_deconfig("AUD_SPK_EN", TEGRA_GPIO_PP6);
	power_config("AUD_LINEOUT_EN", TEGRA_GPIO_PP7, INIT_OUTPUT_LOW);
	sfio_deconfig("AUD_LINEOUT_EN", TEGRA_GPIO_PP7);
	common_init();

	spin_lock_init(&aic3008_power_ctl->spin_lock);
	aic3008_power_ctl->isPowerOn = true;

	return;
}
Esempio n. 4
0
static void aic3008_powerinit(void)
{
	power_config("AUD_MCLK_EN", TEGRA_GPIO_PX7, INIT_OUTPUT_HIGH);
	power_config("AUD_AIC3008_RST#", TEGRA_GPIO_PW5, INIT_OUTPUT_HIGH);

	power_config("AUD_MCLK", TEGRA_GPIO_PW4, INIT_OUTPUT_LOW);
	sfio_deconfig("AUD_MCLK", TEGRA_GPIO_PW4);

	if (pcbid >= PROJECT_PHASE_XB || board_get_sku_tag() == 0x34600) {
		power_config("AUD_HP_GAIN_CONTROL", TEGRA_GPIO_PD1, INIT_OUTPUT_LOW);
		power_config("AUD_SPK_RST#", TEGRA_GPIO_PP6, INIT_OUTPUT_HIGH);
		power_config("AUD_HEADPHONE_EN", TEGRA_GPIO_PP7, INIT_OUTPUT_LOW);
	} else {
		power_config("AUD_SPK_EN", TEGRA_GPIO_PP6, INIT_OUTPUT_LOW);
		power_config("AUD_LINEOUT_EN", TEGRA_GPIO_PP7, INIT_OUTPUT_LOW);
	}

	common_init();

	spin_lock_init(&aic3008_power_ctl->spin_lock);
	aic3008_power_ctl->isPowerOn = true;

	return;
}