天嵌 ARM开发社区

 找回密码
 注册
查看: 3722|回复: 4

AT070TN92时序问题

[复制链接]
myzhyzhy 发表于 2013-1-15 17:22:07 | 显示全部楼层 |阅读模式
Kernel_2.6.35.7_TQ210_for_Linux_v1.0/arch/arm/mach-s5pv210/mach-tq210.c
你们用的屏AT070TN92
屏的时序:
#elif defined(CONFIG_FB_AT070TN92)
static struct s3cfb_lcd lte480wv = {
        .width          = 800,
        .height         = 480,
        .bpp            = 24,
        .freq           = 28,
        .clkval_f       = 6,//3
        .timing = {
                .h_fp   = 14,
                .h_bp   = 27,
                .h_sw   = 20,
                .v_fp   = 22,
                .v_fpe  = 1,
                .v_bp   = 10,
                .v_bpe  = 1,
                .v_sw   = 13,
        },

        .polarity = {
                .rise_vclk      = 0,
                .inv_hsync      = 1,
                .inv_vsync      = 1,
                .inv_vden       = 0,
        },
};
能否解释一下
.h_fp   = 14,
是怎样算出来,和LCD手册上对不上
亚瑟王 发表于 2013-1-15 17:27:13 | 显示全部楼层
我们修改了驱动,直接使用了.clkval_f 的值。
embedsky_lhh 发表于 2013-1-16 09:53:25 | 显示全部楼层
这个不一定要跟手册相同的,而且在通常情况下,一般不可能跟芯片手册一模一样,手册上给的值都是典型值和一个范围,如果你的pixclock跟手册上的完全匹配,那才有可能都用典型值,所以又一定的调整是正常
 楼主| myzhyzhy 发表于 2013-1-16 10:03:37 | 显示全部楼层
我是新手,能不能解释清楚一点
                clkdiv = s3c_fb_calc_pixclk(sfb, var->pixclock);

                data = sfb->pdata->vidcon0;
                data &= ~(VIDCON0_CLKVAL_F_MASK | VIDCON0_CLKDIR);

                if (clkdiv > 1)
                        data |= VIDCON0_CLKVAL_F(clkdiv-1) | VIDCON0_CLKDIR;
                else
                        data &= ~VIDCON0_CLKDIR;        /* 1:1 clock */

                /* write the timing data to the panel */

                data |= VIDCON0_ENVID | VIDCON0_ENVID_F;
                writel(data, regs + VIDCON0);

                data = VIDTCON0_VBPD(var->upper_margin - 1) |
                       VIDTCON0_VFPD(var->lower_margin - 1) |
                       VIDTCON0_VSPW(var->vsync_len - 1);

                writel(data, regs + VIDTCON0);

                data = VIDTCON1_HBPD(var->left_margin - 1) |
                       VIDTCON1_HFPD(var->right_margin - 1) |
                       VIDTCON1_HSPW(var->hsync_len - 1);

                writel(data, regs + VIDTCON1);

                data = VIDTCON2_LINEVAL(var->yres - 1) |
                       VIDTCON2_HOZVAL(var->xres - 1);
                writel(data, regs + VIDTCON2);
不管你怎样分都应在AT070TN92手册上
DCLK Frequency fclk 26.4 33.3 46.8 MHz
范围中对不对

AT070TN92手册上
HS Front Porch thfp 16 210 354 DCLKg
.h_fp   = 14,
比AT070TN92最小值还小
真是不明白,能不能讲得祥细点
亚瑟王 发表于 2013-1-17 19:23:36 | 显示全部楼层
myzhyzhy 发表于 2013-1-16 10:03
我是新手,能不能解释清楚一点
                clkdiv = s3c_fb_calc_pixclk(sfb, var->pixclock);

在2楼我已经回答了啊,使用了.clkval_f来直接修改的div值,所以频率上是最接近的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-19 04:57 , Processed in 1.046875 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表