int lcd_io_enable(void) { if(RK_LCD_STANDBY_PIN != INVALID_GPIO){ gpio_set_value(RK_LCD_STANDBY_PIN, RK_LCD_STANDBY_VALUE); mdelay(5); } if(RK_LCD_EN_PIN != INVALID_GPIO){ gpio_set_value(RK_LCD_EN_PIN, RK_LCD_EN_VALUE); } if(RK_LCD_RESET_PIN != INVALID_GPIO){ mdelay(50); gpio_set_value(RK_LCD_RESET_PIN, RK_LCD_RESET_VALUE); } if(LCD_CS_PIN != INVALID_GPIO){ gpio_set_value(LCD_CS_PIN, LCD_CS_VALUE); } td043_init(); return 0; }
static void LCD_panel_init(__u32 sel) { td043_init(sel); }
int lcd_io_init(void) { int ret = 0; if(RK_LCD_STANDBY_PIN != INVALID_GPIO){ rk30_mux_api_set(RK_LCD_STANDBY_MUX_NAME, RK_LCD_STANDBY_MUX_MODE); ret = gpio_request(RK_LCD_STANDBY_PIN, NULL); if(ret !=0){ printk(KERN_ERR "request lcd standby pin failed!\n"); }else{ gpio_direction_output(RK_LCD_STANDBY_PIN, GPIO_HIGH); gpio_set_value(RK_LCD_STANDBY_PIN, RK_LCD_STANDBY_VALUE); mdelay(5); } } if(RK_LCD_EN_PIN != INVALID_GPIO){ rk30_mux_api_set(RK_LCD_EN_MUX_NAME, RK_LCD_EN_MUX_MODE); ret = gpio_request(RK_LCD_EN_PIN, NULL); if (ret != 0){ printk(KERN_ERR "request lcd en2 pin fail!\n"); } else{ gpio_direction_output(RK_LCD_EN_PIN, 1); gpio_set_value(RK_LCD_EN_PIN, RK_LCD_EN_VALUE); } } if(RK_LCD_RESET_PIN != INVALID_GPIO){ rk30_mux_api_set(RK_LCD_RESET_MUX_NAME, RK_LCD_RESET_MUX_MODE); ret = gpio_request(RK_LCD_RESET_PIN, NULL); if(ret !=0){ printk(KERN_ERR "request lcd reset pin failed!\n"); }else{ mdelay(50); gpio_pull_updown(RK_LCD_RESET_PIN, GPIOPullUp); gpio_direction_output(RK_LCD_RESET_PIN, GPIO_HIGH); gpio_set_value(RK_LCD_RESET_PIN, RK_LCD_RESET_VALUE); } } if(LCD_CS_PIN != INVALID_GPIO){ rk30_mux_api_set(LCD_CS_MUX_NAME, LCD_CS_MUX_MODE); ret = gpio_request(LCD_CS_PIN, NULL); if (ret != 0){ printk(KERN_ERR "request lcd en pin fail!\n"); } else{ gpio_direction_output(LCD_CS_PIN, 1); gpio_set_value(LCD_CS_PIN, LCD_CS_VALUE); } } if(LCD_SPI_CS_PIN != INVALID_GPIO){ rk30_mux_api_set(LCD_SPI_CS_MUX_NAME, LCD_SPI_CS_MUX_MODE); ret = gpio_request(LCD_SPI_CS_PIN, NULL); if (ret != 0){ printk(KERN_ERR "request lcd spi cs pin fail!\n"); }else{ gpio_direction_output(LCD_SPI_CS_PIN, 1); gpio_set_value(LCD_SPI_CS_PIN, GPIO_LOW); } } if(LCD_SPI_SCL_PIN != INVALID_GPIO){ rk30_mux_api_set(LCD_SPI_SCL_MUX_NAME, LCD_SPI_SCL_MUX_MODE); ret = gpio_request(LCD_SPI_SCL_PIN, NULL); if (ret != 0){ printk(KERN_ERR "request lcd spi scl pin fail!\n"); }else{ gpio_direction_output(LCD_SPI_SCL_PIN, 1); gpio_set_value(LCD_SPI_SCL_PIN, GPIO_LOW); } } if(LCD_SPI_SDA_PIN != INVALID_GPIO){ rk30_mux_api_set(LCD_SPI_SDA_MUX_NAME, LCD_SPI_SDA_MUX_MODE); ret = gpio_request(LCD_SPI_SDA_PIN, NULL); if (ret != 0){ printk(KERN_ERR "request lcd spi sda pin fail!\n"); }else{ gpio_direction_output(LCD_SPI_SDA_PIN, 1); gpio_set_value(LCD_SPI_SDA_PIN, GPIO_LOW); } } td043_init(); return 0; }