免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1827 | 回复: 0
打印 上一主题 下一主题

spi接口触摸屏ads7846驱动(Z) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-22 08:51 |只看该作者 |倒序浏览
   实际上2440和2410几乎是一样的。原来在linux 2.6.23.12上我都已经全部弄好了。那时候还修补了一个SPI传输代码中的一个BUG,现在发现新内核都已经改过来了。
    ADS7846的平台数据可以参考at-91目录中的一些板子定义。
    在linux 2.6.26.3上,发现2410的SPI结构稍有改变。看了网上的文章说2410不支持spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info));函数的调用。开始有点误导了我,因为原来确实不用这样子做,可现在发现

static struct s3c2410_spi_info s3c2440_spi_platdata = {
    .pin_cs = S3C2410_GPG2,
    .num_cs = 1,
    //.board_info = spi_board_info,
    //.board_size = ARRAY_SIZE(spi_board_info),
....
};

其中的成员board_info和size已经删除了,那怎么去初始化呢?看了看内核document中关于SPI的文档,还是说用spi_register_board_info。

static int ads7846_pendown_state(void)
{
    return !s3c2410_gpio_getpin(S3C2410_GPG11); //EINT19
}


static struct ads7846_platform_data ads_info = {
        .model            = 7846,
        .vref_delay_usecs    = 100,
        //.x_min            = 150,
        //.x_max            = 3830,
        //.y_min            = 190,
        //.y_max            = 3830,
        .x_plate_ohms        = 580,
        .y_plate_ohms        = 440,
        .pressure_max        = 15000,
        .debounce_max        = 1,
        .debounce_rep        = 0,
        .debounce_tol        = (~0),        
        .get_pendown_state    = &ads7846_pendown_state,
    };
static struct spi_board_info spi_board_info[] = { //__initdata
    {
        .modalias    = "ads7846",
        .platform_data    = &ads_info,
        .mode        = SPI_MODE_0,
        .irq        = IRQ_EINT19,
        .max_speed_hz    = 120000 /* max sample rate at 3V */ * 16,
        .bus_num    = 0,     // 表示选用的是那一组SPI (2410有两组SPI0,SPI1)
        .chip_select    = 0,// S3C2410_GPG2,//0,

    },
};
其实证明是可以用了。所以基本上还是比较容易的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP