GSLX680驅動的移植實踐

將gslX680觸摸屏驅動移植到自己的開發板上(對應的源碼文件gslX680.c),並且實現可以使用make menuconfig進行動態的加載和卸載因爲觸摸屏設備屬於一種典型的輸入設備,所以他的驅動源碼最好是放在 drivers\input\touchscreen這個目錄下,這樣是最規範的。

(1)定義一個宏名,譬如CONFIG_TOUCHSCREEN_GSLX680

(2)mach文件中添加board_info
在代碼中使用宏來條件編譯 驅動源碼的實現是基於I2C總線方式的,所以分爲I2C設備驅動註冊和I2C設備註冊兩個方面。gslX680.c文件只是實現了設備驅動的註冊,而將設備的註冊放在了mach文件中, 當然設備和設備驅動的註冊是可以放在一個文件中的,這都沒有錯,只是不太符合規範,所以這其實就體現出了一種使用的靈活性。所以就存在一個匹配問題,那當然就是名字了,一定要保證他們能夠匹配的上。

static struct i2c_board_info i2c_devs1[] __initdata = {
#ifdef CONFIG_VIDEO_TV20
        {
                I2C_BOARD_INFO("s5p_ddc", (0x74>>1)),
        },
#endif
#ifdef CONFIG_TOUCHSCREEN_GSLX680
        {
                I2C_BOARD_INFO("gslX680", 0x40),
        },
#endif

(3)在Makefile中使用宏來條件配置

    在drivers\input\touchscreen目錄下的Makefile文件中加入條件編譯控制語句:

 obj-$(CONFIG_TOUCHSCREEN_GSLX680) += gslX680.o  gsl_point_id

    gsl_point_id是一個預編譯好的函數庫文件,裏面有很多的函數是被gslX680.c文件調用的,所以一定要加上。

(4)在Kconfig項目中添加宏的配置項

config TOUCHSCREEN_GSLX680
        tristate "9tripod GSL1680 Touch Panel Controller"
        depends on I2C
        help
          This enables support for FocalTech over I2C based touchscreens.

(5)make menuconfig並選擇Y或者N

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章