Ejemplo n.º 1
0
static void configure_vop(void)
{
	write32(&rk3288_grf->iomux_lcdc, IOMUX_LCDC);

	/* lcdc(vop) iodomain select 1.8V */
	write32(&rk3288_grf->io_vsel, RK_SETBITS(1 << 0));

	switch (board_id()) {
	case 0:
		rk808_configure_switch(2, 1);	/* VCC18_LCD */
		rk808_configure_ldo(7, 2500);	/* VCC10_LCD_PWREN_H */
		rk808_configure_switch(1, 1);	/* VCC33_LCD */
		break;
	default:
		gpio_output(GPIO(2, B, 5), 1);	/* AVDD_1V8_DISP_EN */
		rk808_configure_ldo(7, 2500);	/* VCC10_LCD_PWREN_H */
		gpio_output(GPIO(7, B, 6), 1);	/* LCD_EN */
		rk808_configure_switch(1, 1);	/* VCC33_LCD */

		/* enable edp HPD */
		gpio_input_pulldown(GPIO(7, B, 3));
		write32(&rk3288_grf->iomux_edp_hotplug, IOMUX_EDP_HOTPLUG);
		break;
	}
}
Ejemplo n.º 2
0
static void configure_vop(void)
{
	write32(&rk3288_grf->iomux_lcdc, IOMUX_LCDC);

	/* lcdc(vop) iodomain select 1.8V */
	write32(&rk3288_grf->io_vsel, RK_SETBITS(1 << 0));

	rk808_configure_ldo(8, 1800);	/* VCC18_LCD (HDMI_AVDD_1V8) */
	rk808_configure_ldo(7, 1000);	/* VDD10_LCD (HDMI_AVDD_1V0) */
	rk808_configure_switch(1, 1);	/* VCC33_LCD */
}
Ejemplo n.º 3
0
static void sdmmc_power(int enable)
{
	switch (board_id()) {
	case 0:
		/* VCC33_SD is tied to VCC33_SYS and is always on */
		break;
	default:
		rk808_configure_ldo(4, enable ? 3300 : 0); /* VCC33_SD_LDO */
		rk808_configure_ldo(5, enable ? 3300 : 0); /* VCCIO_SD */
		break;
	}
}
Ejemplo n.º 4
0
static void configure_sdmmc(void)
{
	writel(IOMUX_SDMMC0, &rk3288_grf->iomux_sdmmc0);

	/* use sdmmc0 io, disable JTAG function */
	writel(RK_CLRBITS(1 << 12), &rk3288_grf->soc_con0);

	rk808_configure_ldo(PMIC_BUS, 4, 3300); /* VCCIO_SD */
	rk808_configure_ldo(PMIC_BUS, 5, 3300); /* VCC33_SD */

	gpio_input(GPIO(7, A, 5));		/* SD_DET */
}
Ejemplo n.º 5
0
static void configure_sdmmc(void)
{
	write32(&rk3288_grf->iomux_sdmmc0, IOMUX_SDMMC0);

	/* use sdmmc0 io, disable JTAG function */
	write32(&rk3288_grf->soc_con0, RK_CLRBITS(1 << 12));

	/* Note: these power rail definitions are copied in romstage.c */
	rk808_configure_ldo(4, 3300); /* VCCIO_SD */
	rk808_configure_ldo(5, 3300); /* VCC33_SD */

	gpio_input(GPIO(7, A, 5));		/* SD_DET */
}
Ejemplo n.º 6
0
static void configure_hdmi(void)
{
	rk808_configure_switch(2, 1);	/* VCC18_LCD (HDMI_AVDD_1V8) */
	rk808_configure_ldo(7, 1000);	/* VDD10_LCD (HDMI_AVDD_1V0) */
	rk808_configure_switch(1, 1);	/* VCC33_LCD */

	/* set POWER_HDMI_ON */
	gpio_output(GPIO(7, A, 2), 1);
}
Ejemplo n.º 7
0
static void configure_sdmmc(void)
{
	writel(IOMUX_SDMMC0, &rk3288_grf->iomux_sdmmc0);

	/* use sdmmc0 io, disable JTAG function */
	writel(RK_CLRBITS(1 << 12), &rk3288_grf->soc_con0);

	switch (board_id()) {
	case 0:
		rk808_configure_ldo(PMIC_BUS, 8, 3300);	/* VCCIO_SD */
		gpio_output(GPIO(7, C, 5), 1);		/* SD_EN */
		break;
	default:
		rk808_configure_ldo(PMIC_BUS, 4, 3300); /* VCCIO_SD */
		rk808_configure_ldo(PMIC_BUS, 5, 3300); /* VCC33_SD */
		break;
	}

	gpio_input(GPIO(7, A, 5));		/* SD_DET */
}
Ejemplo n.º 8
0
static void configure_vop(void)
{
	writel(IOMUX_LCDC, &rk3288_grf->iomux_lcdc);

	/* lcdc(vop) iodomain select 1.8V */
	writel(RK_SETBITS(1 << 0), &rk3288_grf->io_vsel);

	switch (board_id()) {
	case 0:
		rk808_configure_ldo(PMIC_BUS, 4, 1800); /* VCC18_LCD */
		rk808_configure_ldo(PMIC_BUS, 6, 1000); /* VCC10_LCD */
		gpio_output(GPIO(7, B, 7), 1); /* LCD_EN */
		break;
	default:
		rk808_configure_switch(PMIC_BUS, 2, 1); /* VCC18_LCD */
		rk808_configure_ldo(PMIC_BUS, 7, 2500); /* VCC10_LCD_PWREN_H */
		rk808_configure_switch(PMIC_BUS, 1, 1); /* VCC33_LCD */
		break;
	}
}
Ejemplo n.º 9
0
static void configure_vop(void)
{
	writel(IOMUX_LCDC, &rk3288_grf->iomux_lcdc);

	/* lcdc(vop) iodomain select 1.8V */
	writel(RK_SETBITS(1 << 0), &rk3288_grf->io_vsel);

	rk808_configure_switch(PMIC_BUS, 2, 1);	/* VCC18_LCD */
	rk808_configure_ldo(PMIC_BUS, 7, 2500);	/* VCC10_LCD_PWREN_H */
	rk808_configure_switch(PMIC_BUS, 1, 1);	/* VCC33_LCD */
}
Ejemplo n.º 10
0
static void configure_codec(void)
{
	writel(IOMUX_I2C2, &rk3288_grf->iomux_i2c2);	/* CODEC I2C */
	i2c_init(2, 400000);	/* CODEC I2C */

	writel(IOMUX_I2S, &rk3288_grf->iomux_i2s);
	writel(IOMUX_I2SCLK, &rk3288_grf->iomux_i2sclk);

	switch (board_id()) {
	case 0:
		rk808_configure_ldo(PMIC_BUS, 5, 1800);	/* VCC18_CODEC */
		break;
	default:
		rk808_configure_ldo(PMIC_BUS, 6, 1800);	/* VCC18_CODEC */
		break;
	}

	/* AUDIO IO domain 1.8V voltage selection */
	writel(RK_SETBITS(1 << 6), &rk3288_grf->io_vsel);
	rkclk_configure_i2s(12288000);
}
Ejemplo n.º 11
0
static void configure_sdmmc(void)
{
	write32(&rk3288_grf->iomux_sdmmc0, IOMUX_SDMMC0);

	/* use sdmmc0 io, disable JTAG function */
	write32(&rk3288_grf->soc_con0, RK_CLRBITS(1 << 12));

	/* Note: these power rail definitions are copied in romstage.c */
	switch (board_id()) {
	case 0:
		rk808_configure_ldo(8, 3300);	/* VCCIO_SD */
		gpio_output(GPIO(7, C, 5), 1);		/* SD_EN */
		break;
	default:
		rk808_configure_ldo(4, 3300); /* VCCIO_SD */
		rk808_configure_ldo(5, 3300); /* VCC33_SD */
		break;
	}

	gpio_input(GPIO(7, A, 5));		/* SD_DET */
}
Ejemplo n.º 12
0
static void configure_codec(void)
{
	write32(&rk3288_grf->iomux_i2c2, IOMUX_I2C2);	/* CODEC I2C */
	i2c_init(2, 400*KHz);				/* CODEC I2C */

	write32(&rk3288_grf->iomux_i2s, IOMUX_I2S);
	write32(&rk3288_grf->iomux_i2sclk, IOMUX_I2SCLK);

	switch (board_id()) {
	case 0:
		rk808_configure_ldo(5, 1800);	/* VCC18_CODEC */
		break;
	default:
		rk808_configure_ldo(6, 1800);	/* VCC18_CODEC */
		break;
	}

	/* AUDIO IO domain 1.8V voltage selection */
	write32(&rk3288_grf->io_vsel, RK_SETBITS(1 << 6));
	rkclk_configure_i2s(12288000);
}
Ejemplo n.º 13
0
static void configure_hdmi(void)
{
	rk808_configure_switch(2, 1);	/* VCC18_LCD (HDMI_AVDD_1V8) */
	rk808_configure_ldo(7, 1000);	/* VDD10_LCD (HDMI_AVDD_1V0) */
	rk808_configure_switch(1, 1);	/* VCC33_LCD */

	/* set POWER_HDMI_ON */
	gpio_output(GPIO(7, A, 2), 1);

	/* HDMI I2C */
	write32(&rk3288_grf->iomux_i2c5sda, IOMUX_HDMI_EDP_I2C_SDA);
	write32(&rk3288_grf->iomux_i2c5scl, IOMUX_HDMI_EDP_I2C_SCL);
}
Ejemplo n.º 14
0
static void configure_hdmi(void)
{
	rk808_configure_switch(2, 1);	/* VCC18_LCD (HDMI_AVDD_1V8) */
	rk808_configure_ldo(7, 1000);	/* VDD10_LCD (HDMI_AVDD_1V0) */

	/* set POWER_HDMI_EN */
	switch (board_id()) {
	case 0:
		gpio_output(GPIO(7, A, 2), 1);
		break;
	default:
		gpio_output(GPIO(5, C, 3), 1);
		break;
	}
}
Ejemplo n.º 15
0
static void sdmmc_power(int enable)
{
	rk808_configure_ldo(4, enable ? 3300 : 0); /* VCC33_SD_LDO */
	rk808_configure_ldo(5, enable ? 3300 : 0); /* VCCIO_SD */
}
Ejemplo n.º 16
0
static void sdmmc_power_off(void)
{
	rk808_configure_ldo(4, 0); /* VCCIO_SD */
	rk808_configure_ldo(5, 0); /* VCC33_SD */
}