linuxyant 发表于 2011-09-19 10:55

机子启动时白屏一下

我在android下弄个lcd的驱动
但是我驱动的时候白屏了一下,但是我的时序也对的
请谁遇到过这样的问题帮忙说下,一下就是我的代码
#include <debug.h>
#include <stdlib.h>
#include <string.h>
#include <tcc_lcd.h>

#ifdef TD070RDH11
#include <dev/gpio.h>



static int tm070rdh11_panel_init(struct lcd_panel *panel)
{
        struct lcd_platform_data *pdata = &(panel->dev);

        printf("%s : %d\n", __func__, 0);
        tcclcd_gpio_config(pdata->display_on, 1);
        tcclcd_gpio_config(pdata->power_on, 1);
        tcclcd_gpio_config(pdata->bl_on, 1);
        tcclcd_gpio_config(pdata->reset, 1);

       
        tcclcd_gpio_set_value(pdata->display_on, 0);
        tcclcd_gpio_set_value(pdata->power_on, 0);

        tcclcd_gpio_set_value(pdata->bl_on, 0);
        tcclcd_gpio_set_value(pdata->reset, 0);
        return 0;
}

static int tm070rdh11_set_power(struct lcd_panel *panel, int on)
{
        struct lcd_platform_data *pdata = &(panel->dev);

        printf("%s : %d ~ \n", __func__, on);

        //VSYNC option
#if !defined(_M801_88_)
        BITCSET(HwGPIOF->GPFN1, HwPORTCFG_GPFN6_MASK ,HwPORTCFG_GPFN6(0));
        BITCSET(HwGPIOF->GPEN, Hw13 ,0);
#endif

        if (on) {
                tcclcd_gpio_set_value(pdata->reset, 1);
                lcd_delay_us(1000);

                tcclcd_gpio_set_value(pdata->power_on, 1);
                lcd_delay_us(1000);
                tcclcd_gpio_set_value(pdata->reset, 0);
                lcd_delay_us(1000);
                tcclcd_gpio_set_value(pdata->reset, 1);

                mdelay(10);

                lcdc_initialize(1, panel);

                LCDC_IO_Set(1, panel->bus_width);

                // lcd port current
                BITCSET(HwGPIOC->GPCD0,0xFFFFFFFF, 0xAAAAAAAA);               
                BITCSET(HwGPIOC->GPCD1,0x00FFFFFF, 0x00FFAAAA);

                BITCSET(HwGPIOC->GPFN3, HwPORTCFG_GPFN0_MASK , HwPORTCFG_GPFN0(0));
                BITCSET(HwGPIOC->GPEN, Hw24 ,Hw24);
                BITCSET(HwGPIOC->GPDAT, Hw24 ,0);

                mdelay(16);

        }
        else
        {
                tcclcd_gpio_set_value(pdata->display_on, 0);
                mdelay(10);
                tcclcd_gpio_set_value(pdata->reset, 0);
                tcclcd_gpio_set_value(pdata->power_on, 0);
                LCDC_IO_Disable(0, panel->bus_width);
        }

        return 0;
}


static int tm070rdh11_set_backlight_level(struct lcd_panel *panel, int level)
{
        struct lcd_platform_data *pdata = &(panel->dev);

        printf("%s : %d\n", __func__, level);

        if (level == 0) {
                tcclcd_gpio_set_value(pdata->bl_on, 0);
        } else {
                tcclcd_gpio_set_value(pdata->bl_on, 1);
        }
       
        return 0;
}


static struct lcd_panel tm070rdh11_panel = {
        .name                = "TD070RDH11",
        .manufacturer        = "OPTOELECTRONICS",
        .id                = PANEL_ID_TD070RDH11,
        .xres                = 800,
        .yres                = 480,
        .width                = 154,
        .height                = 85,
        .bpp                = 24,
        .clk_freq        = 300000,
        .clk_div        = 2,
        .bus_width        = 24,

        .lpw                = 47,
        .lpc                = 800,
        .lswc                = 39,
        .lewc                = 39,

        .vdb                = 0,
        .vdf                = 0,
       
        .fpw1                = 2,
        .flc1                = 480,
        .fswc1                = 28,
        .fewc1                = 12,
       
        .fpw2                = 2,
        .flc2                = 480,
        .fswc2                = 28,
        .fewc2                = 12,
//烙矫        .sync_invert        = IV_INVERT | IH_INVERT | IP_INVERT,
        .sync_invert        = IV_INVERT | IH_INVERT,

        .init                = tm070rdh11_panel_init,
        .set_power        = tm070rdh11_set_power,
        .set_backlight_level = tm070rdh11_set_backlight_level,
};

struct lcd_panel *tccfb_get_panel(void)
{
        return &tm070rdh11_panel;
}
#endif//TD070RDH11

man-fire 发表于 2011-09-28 16:28

{:3_199:} 围观,求解。。。

kangear 发表于 2012-09-23 13:54

高人在哪里?:wink:

mich_mq 发表于 2012-11-09 11:53

先开lcd,再开背光
页: [1]
查看完整版本: 机子启动时白屏一下