友坚Android210更新---支持7寸电阻屏和电容屏

友坚恒天Android210更新---支持7寸电阻屏和电容屏

Topic:Android210 支持7寸电阻屏和电容屏(作者:Android210)

//--------------------------------------------------------------------------------------------

// 作者:urbetter(www.urbetter.com

// 版权:Android210

// 平台:友坚Android210开发板

// 注意事项:未经作者同意,商业网站不能转载,更不得在转载的时候擅自修改、删除文章的任何部分

//----------------------------------------------------------------------------------------------

分享下友坚恒天最新上市三星cortex-A8开发板之安卓210评估板 功能全面 价格实惠 完善的源码资料加速您的开发进程 

安卓210评估板详细参数分享: 

内核:SamSung ARM Cortex-A8 S5PV210

主频:1Ghz

内存:512M Bytes DDR2

Flash512M Bytes SLC NAND FLASH

系统:Android4.0.3

显示屏:7 800*480,支持10.1寸高清屏

触摸屏:7 5点电容式触摸屏

存储空间:支持32G SD卡扩展

选配功能:摄像头,UT_AVINGPS,蓝牙,wifi3G

重力感应:支持

外设接口:高清HDMIRJ45(有线)网口,音频输入输出,

USB-OTGUSB-HOST,串口,LCDIICSPI/ADGPIO

其他特性:支持MPEG-4/MPEG2H264/H263VC-1的视频编解码1080P@30fps

          2D图形加速,最大支持8000*8000

          3D图形加速(SGX540,OGL-1.1&2.0OpenVG1.0

          JPEG硬件编解码,最大支持8192*8192

另附:

andriod210评估板安卓4.0体验版资料分享,有需要的朋友可以免费下载喔!http://www.urbetter.com/main.asp

添加向导

进入内核目录arch/arm/mach-s5pv210/ 打开mach-s5pv210.c 文件,

添加代码如下:

==========找到如下代码==========

#ifdef CONFIG_TOUCHSCREEN_EGALAX

static struct i2c_gpio_platform_data i2c5_platdata = {

        .sda_pin                = S5PV210_GPB(6),

        .scl_pin                = S5PV210_GPB(7),

        .udelay                 = 2,

        .sda_is_open_drain      = 0,

        .scl_is_open_drain      = 0,

        .scl_is_output_only     = 0.

};

在这段代码的前面加入如下代码:

#if defined(CONFIG_TOUCHSCREEN_S3C)

static struct s3c_ts_mach_info s3c_ts_platform __initdata = {

.delay                  = 10000,

.presc                  = 49,

.oversampling_shift     = 2,

.resol_bit              = 12,

.s3c_adc_con            = ADC_TYPE_2,

};

/* Touch srcreen */

static struct resource s3c_ts_resource[] = {

[0] = {

.start = S3C_PA_ADC1,

.end   = S3C_PA_ADC1 + SZ_4K - 1,

.flags = IORESOURCE_MEM,

},

[1] = {

.start = IRQ_PENDN1,

.end   = IRQ_PENDN1,

.flags = IORESOURCE_IRQ,

},

[2] = {

.start = IRQ_ADC1,

.end   = IRQ_ADC1,

.flags = IORESOURCE_IRQ,

}

};

struct platform_device s3c_device_ts1 = {

.name   = "s3c-ts",

.id   = -1,

.num_resources   = ARRAY_SIZE(s3c_ts_resource),

.resource   = s3c_ts_resource,

};

void __init s3c_ts_set_platdata(struct s3c_ts_mach_info *pd)

{

struct s3c_ts_mach_info *npd;

npd = kmalloc(sizeof(*npd), GFP_KERNEL);

if (npd) {

memcpy(npd, pd, sizeof(*npd));

s3c_device_ts1.dev.platform_data = npd;

} else {

pr_err("no memory for Touchscreen platform data\n");

}

}

#endif

找到函数static void __init smdkv210_machine_init(void)

==找到如下代码=====

s3c24xx_ts_set_platdata(&s3c_ts_platform);

修改如下:

#if defined (CONFIG_TOUCHSCREEN_S3C)

s3c_ts_set_platdata(&s3c_ts_platform);

#else

s3c24xx_ts_set_platdata(&s3c_ts_platform);

#endif

D.找如下代码:

#ifndef CONFIG_TOUCHSCREEN_S3C

static struct s3c2410_ts_mach_info s3c_ts_platform __initdata = {

.delay = 10000,

.presc = 49,

.oversampling_shift = 2,

.cal_x_max              = 800,

        .cal_y_max              = 480,

        .cal_param              = {

                -13357, -85, 53858048, -95, -8493, 32809514, 65536

        },

};

#endif 注意红色的为添加的。

找到下面的代码:

static struct platform_device *smdkv210_devices[] __initdata = {

&s3c_device_adc,

&s3c_device_cfcon,

&s3c_device_fb,

&s3c_device_hsmmc0,

&s3c_device_hsmmc1,

&s3c_device_hsmmc2,

&s3c_device_hsmmc3,

&s3c_device_i2c0,

&s3c_device_i2c1,

&s3c_device_i2c2,

&s3c_device_gpio_i2c3,

#ifdef CONFIG_TOUCHSCREEN_EGALAX

&s3c_device_i2c5,

#endif

&s3c_device_rtc,

&s3c_device_ts,

&s3c_device_wdt,

#ifdef CONFIG_SND_SAMSUNG_AC97

&s5pv210_device_ac97,

#endif

#ifdef CONFIG_SND_SAMSUNG_I2S

&s5pv210_device_iis0,

&s5pv210_device_iis1,

&s5pv210_device_iis2,

#endif

&s5pv210_device_spdif,

#ifdef CONFIG_SND_SAMSUNG_PCM

#ifdef CONFIG_SND_SAMSUNG_PCM_USE_I2S1_MCLK

&s5pv210_device_pcm0,

#endif

#endif  /*end of CONFIG_SND_SAMSUNG_PCM*/

&samsung_asoc_dma,

&samsung_device_keypad,

&smdkv210_dm9000,

&smdkv210_lcd_lte480wv,

&s3c_device_timer[0],

&smdkv210_backlight_device,

&s5p_device_ehci,

&s5p_device_ohci,

#ifdef CONFIG_USB_GADGET

&s3c_device_usbgadget,

#endif

#ifdef CONFIG_VIDEO_FIMC

        &s3c_device_fimc0,

        &s3c_device_fimc1,

        &s3c_device_fimc2,

#endif

#ifdef CONFIG_VIDEO_FIMC_MIPI

&s3c_device_csis,

#endif

#ifdef CONFIG_VIDEO_JPEG_V2

&s3c_device_jpeg,

#endif

#ifdef CONFIG_VIDEO_MFC50

        &s3c_device_mfc,

#endif

#ifdef CONFIG_ANDROID_PMEM

&pmem_gpu1_device,

#endif

#ifdef CONFIG_SPI_S3C64XX

&s5pv210_device_spi0,

&s5pv210_device_spi1,

#endif

#ifdef CONFIG_REGULATOR

        &smdkv210_b_pwr_5v,

#endif

#ifdef CONFIG_S5PV210_POWER_DOMAIN

        &s5pv210_pd_tv,

        &s5pv210_pd_lcd,

        &s5pv210_pd_g3d,

        &s5pv210_pd_mfc,

        &s5pv210_pd_audio,

#endif

&s3c_device_g3d,

#ifdef CONFIG_VIDEO_G2D

        &s3c_device_g2d,

#endif

#ifdef CONFIG_VIDEO_TV20

        &s5p_device_tvout,

        &s5p_device_cec,

        &s5p_device_hpd,

#endif

#ifdef CONFIG_MTD_NAND

&s3c_device_nand,   

#endif

//================

#ifdef CONFIG_TOUCHSCREEN_S3C

&s3c_device_ts1

#endif

//===============红色部分为添加的代码

};

2.进入arch/arm/plat-samsung/include/plat目录找到打开ts.h文件,

找到如下代码:

#ifndef __ASM_ARM_TS_H

#define __ASM_ARM_TS_H

struct s3c2410_ts_mach_info {

       int             delay;

       int             presc;

       int             oversampling_shift;

int cal_x_max;

int cal_y_max;

int cal_param[7];

void    (*cfg_gpio)(struct platform_device *dev);

};

extern void s3c24xx_ts_set_platdata(struct s3c2410_ts_mach_info *);

extern void s3c24xx_ts1_set_platdata(struct s3c2410_ts_mach_info *);

/* defined by architecture to configure gpio */

extern void s3c24xx_ts_cfg_gpio(struct platform_device *dev); 

#if defined (CONFIG_TOUCHSCREEN_S3C)

//=========================

enum s3c_adc_type {

     ADC_TYPE_0,  

     ADC_TYPE_1, /* S3C2416, S3C2450 */

     ADC_TYPE_2, /* S3C64XX, S5PC1XX */

  };

struct s3c_ts_mach_info {

     int                 delay;

     int                 presc; 

     int                 oversampling_shift;

     int         resol_bit;   

     enum s3c_adc_type   s3c_adc_con;

  };   

  

 struct s3c_ts_info {

     struct input_dev    *dev;

     long            xp; 

     long            yp;

     int             count;

     int             shift;

     char            phys[32];

     int         resol_bit;

     enum s3c_adc_type   s3c_adc_con;

  };       

//=========================

#endif  红色部分为添加的代码

#endif /* __ASM_ARM_TS_H */

3.编译内核支持7寸电阻屏

          

           

4.把文件夹下面的的文件放在相应的文件夹下面,即完成电阻触摸屏驱动的加载。

/*===========================================================*/

//如有错误,请留言指正;同时希望有更好的方法与大家交流和分享,让我们大家一起学习,共同进步!

你可能感兴趣的:(android)