天天看點

linux4-4裝置樹學習的小小感悟以及源碼下載下傳

裝置樹的學習基本就是按照轉載的部落格寫代碼,然後自己感悟,現在應該算是對裝置樹有所了解了,正如很多網上說的那樣,在沒有裝置樹之前,很多裝置的資訊都是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(),
    .irq_cfg        = S3C_GPIO_SFN(),
    .screen_max_x   = ,
    .screen_max_y   = ,
    .pressure_max   = ,
};
#endif

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

但是到了裝置樹,這些都是在裝置樹中進行說明就可以了(如下所示),不需要再添加這麼多代碼,而且在後續有其他類似的開發闆添加起來也友善

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

最後大家如果感興趣,可以到我的github上下載下傳這些驅動的源碼,畢竟轉載的部落格中有些裝置驅動好像還是有點問題:

github位址:https://github.com/xiaojimmychen/tiny4412_driver