static void rk3288_fb_init(struct fb_rk3288_pdata_t * pdat) { gpio_set_cfg(RK3288_GPIO1_D0, 0x1); gpio_set_cfg(RK3288_GPIO1_D1, 0x1); gpio_set_cfg(RK3288_GPIO1_D2, 0x1); gpio_set_cfg(RK3288_GPIO1_D3, 0x1); gpio_set_rate(RK3288_GPIO1_D0, GPIO_RATE_FAST); gpio_set_rate(RK3288_GPIO1_D1, GPIO_RATE_FAST); gpio_set_rate(RK3288_GPIO1_D2, GPIO_RATE_FAST); gpio_set_rate(RK3288_GPIO1_D3, GPIO_RATE_FAST); gpio_set_drv(RK3288_GPIO1_D0, GPIO_DRV_STRONG); gpio_set_drv(RK3288_GPIO1_D1, GPIO_DRV_STRONG); gpio_set_drv(RK3288_GPIO1_D2, GPIO_DRV_STRONG); gpio_set_drv(RK3288_GPIO1_D3, GPIO_DRV_STRONG); rk3288_vop_set_interface(pdat); rk3288_vop_set_mode(pdat); rk3288_vop_set_timing(pdat); rk3288_vop_set_polarity(pdat); rk3288_vop_update_config(pdat); rk3288_vop_set_win0(pdat); rk3288_vop_set_win0_address(pdat, pdat->vram[0]); rk3288_vop_update_config(pdat); rk3288_lvds_enable(pdat, 0); }
void exynos_cfg_lcd_gpio(void) { unsigned int i, f3_end = 4; for (i = 0; i < 8; i++) { /* set GPF0,1,2[0:7] for RGB Interface and Data lines (32bit) */ gpio_cfg_pin(EXYNOS4_GPIO_F00 + i, S5P_GPIO_FUNC(2)); gpio_cfg_pin(EXYNOS4_GPIO_F10 + i, S5P_GPIO_FUNC(2)); gpio_cfg_pin(EXYNOS4_GPIO_F20 + i, S5P_GPIO_FUNC(2)); /* pull-up/down disable */ gpio_set_pull(EXYNOS4_GPIO_F00 + i, S5P_GPIO_PULL_NONE); gpio_set_pull(EXYNOS4_GPIO_F10 + i, S5P_GPIO_PULL_NONE); gpio_set_pull(EXYNOS4_GPIO_F20 + i, S5P_GPIO_PULL_NONE); /* drive strength to max (24bit) */ gpio_set_drv(EXYNOS4_GPIO_F00 + i, S5P_GPIO_DRV_4X); gpio_set_rate(EXYNOS4_GPIO_F00 + i, S5P_GPIO_DRV_SLOW); gpio_set_drv(EXYNOS4_GPIO_F10 + i, S5P_GPIO_DRV_4X); gpio_set_rate(EXYNOS4_GPIO_F10 + i, S5P_GPIO_DRV_SLOW); gpio_set_drv(EXYNOS4_GPIO_F20 + i, S5P_GPIO_DRV_4X); gpio_set_rate(EXYNOS4_GPIO_F00 + i, S5P_GPIO_DRV_SLOW); } for (i = EXYNOS4_GPIO_F30; i < (EXYNOS4_GPIO_F30 + f3_end); i++) { /* set GPF3[0:3] for RGB Interface and Data lines (32bit) */ gpio_cfg_pin(i, S5P_GPIO_FUNC(2)); /* pull-up/down disable */ gpio_set_pull(i, S5P_GPIO_PULL_NONE); /* drive strength to max (24bit) */ gpio_set_drv(i, S5P_GPIO_DRV_4X); gpio_set_rate(i, S5P_GPIO_DRV_SLOW); } /* gpio pad configuration for LCD reset. */ gpio_request(EXYNOS4_GPIO_Y45, "lcd_reset"); gpio_cfg_pin(EXYNOS4_GPIO_Y45, S5P_GPIO_OUTPUT); }