首页>
技术资讯>
详情

WinCE下的TVP5146调试助手

2016-05-12 来源:佚名 阅读量: 0
关键词: WINCE

    这两天在调试TVP5146的驱动程序,之前一直都是LF在负责,现在刚刚接手,很多细节都不清楚。不管三七二十一,先做了一个用于读写TVP5146所有内部寄存器的小工具,通过它可以实时修改其中的任意一个寄存器,而不必编译驱动或内核。

    实现了这个小工具后,首先切换了一下输入的通道,工作得很好,又从AVIN模式切换到DVD模式,也能看见画面了,虽然有些闪烁,而这就是接下来需要解决的细节问题。

    从网上找到了一份Linux下的参考代码,原厂发布出来的,看上去很靠谱,收藏在这,以备不时之需。

    /*

    *

    *

    * Copyright (C) 2006 Texas Instruments Inc

    *

    * This program is free software; you can redistribute it and/or modify

    * it under the terms of the GNU General Public License as published by

    * the Free Software Foundation; either version 2 of the License, or

    * (at your option) any later version.

    *

    * This program is distributed in the hope that it will be useful,

    * but WITHOUT ANY WARRANTY; without even the implied warranty of

    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

    * GNU General Public License for more details.

    *

    * You should have received a copy of the GNU General Public License

    * along with this program; if not, write to the Free Software

    * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

    */

    /* tvp5146.c */

    //phoenix

    //modified 2008.01.04 PM 15:00

    //linger

    //last modified 2007.12.27 PM 17:00

    //last modified 2007.11.30 PM 18:00

    //last modified 2007.11.29 PM 18:00

    #include <linux/config.h>

    #include <linux/init.h>

    #include <linux/fs.h>

    #include <linux/vmalloc.h>

    #include <linux/slab.h>

    #include <linux/proc_fs.h>

    #include <linux/ctype.h>

    #include <linux/delay.h>

    #include <linux/i2c.h>

    #include <linux/videodev.h>

    #include <media/tvp5146.h>            //phoenix 2008/05/14    dvs6446 updates to

    dvevm_1_20

    #include <asm/arch/gio.h>         //linger 2007.11.8

    #define debug_print(x…)    //printk(x)

    static struct i2c_client tvp5146_i2c_client;

    static struct i2c_driver tvp5146_i2c_driver;

    static int tvp5146_i2c_registration = 0;

    struct device *tvp5146_i2c_dev;

    static int i2c_read_reg(struct i2c_client *client, u8 reg, u8 * val);

    static int i2c_write_reg(struct i2c_client *client, u8 reg, u8 val);

    static int configtvp5146(void *arg);

    static int clrtvp5146lostlock(void);

    static int enabletvp5146agc(int arg);

    static int getctrl(void *arg);

    static int gettvp5146status(void *arg);

    static int powerdowntvp5146(int powerdownenable);

    static int queryctrl(void *arg);

    static int resettvp5146(void);

    static int setctrl(void *arg);

    static int settvp5146amuxmode(int mode);

    static int settvp5146brightness(int arg);

    static int settvp5146contrast(int arg);

    static int settvp5146hue(int arg);

    static int settvp5146saturation(int arg);

    static int settvp5146std(int arg);

    //static int setup656sync(int enable);

    static int setup656sync(tvp5146_params * tvp5146params);

    /*

    * ======== tvp5146_init  ========

    */

    /* This functi

热门推荐 查看更多