您的位置:首页 > 运维架构 > Linux

linux4-4设备树学习的小小感悟以及源码下载

2017-06-10 07:50 363 查看
设备树的学习基本就是按照转载的博客写代码,然后自己感悟,现在应该算是对设备树有所了解了,正如很多网上说的那样,在没有设备树之前,很多设备的信息都是mach-xxxx.c中添加进去,例如要添加一个i2c设备就要在开发板mach文件中添加一个i2c_board_info结构体,其中.platform_data中表明所要使用的资源:

#ifdef CONFIG_TOUCHSCREEN_FT5X0X
#include <plat/ft5x0x_touch.h>
static struct ft5x0x_i2c_platform_data ft5x0x_pdata = {
.gpio_irq       = EXYNOS4_GPX1(6),
.irq_cfg        = S3C_GPIO_SFN(0xf),
.screen_max_x   = 800,
.screen_max_y   = 1280,
.pressure_max   = 255,
};
#endif

static struct i2c_board_info i2c_devs1[] __initdata = {
#ifdef CONFIG_TOUCHSCREEN_FT5X0X
{
I2C_BOARD_INFO("ft5x0x_ts", (0x70 >> 1)),
.platform_data = &ft5x0x_pdata,
},
#endif
{
I2C_BOARD_INFO("wm8994", 0x1a),
.platform_data  = &wm8994_platform_data,
},
};


但是到了设备树,这些都是在设备树中进行说明就可以了(如下所示),不需要再添加这么多代码,而且在后续有其他类似的开发板添加起来也方便

touch_demo {
compatible = "tiny4412,touch_demo";
interrupts = <6 0>;
interrupt-parent = <&gpx1>;
status = "okay";
};


最后大家如果感兴趣,可以到我的github上下载这些驱动的源码,毕竟转载的博客中有些设备驱动好像还是有点问题:

github地址:https://github.com/xiaojimmychen/tiny4412_driver
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tiny4412 linux驱动
相关文章推荐