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; } }
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); }
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_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 */ }
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 */ }
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); }
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; } }
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; } }
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)); /* * BL_EN gates VCC_LCD. This might be changed in future revisions * of the board so that the display can be stablized before we * turn on the backlight. * * To minimize display corruption, turn off LCDC_BL before * powering on the backlight. */ switch (board_id()) { case 0: gpio_output(GPIO(7, A, 3), 1); break; default: gpio_output(GPIO(7, A, 2), 1); break; } gpio_output(GPIO_LCDC_BL, 0); rk808_configure_switch(1, 1); /* VCC33_LCD */ /* EDP_HPD setup */ switch (board_id()) { case 0: /* not present */ break; default: /* Unlike other Veyrons, Danger has external pull resistors on * EDP_HPD. Default for GPIO(7, B, 3) is pull-down, set to * float. */ gpio_input(GPIO(7, B, 3)); write32(&rk3288_grf->iomux_edp_hotplug, IOMUX_EDP_HOTPLUG); break; } }