只需5步,教你添加GPIO按鍵

原創(chuàng) 2022-10-24 14:08:00 T507 全志T507

本文硬件平臺采用飛凌嵌入式T507開發(fā)板,主要講解T507的GPIO配置相關知識點,本文使用的思路和方法僅供參考使用,其它arm開發(fā)板雖然芯片不同,但思路和方法有很多的共性,希望對您在板卡的使用中能夠有所幫助,更多ARM開發(fā)板相關資訊,關注飛凌嵌入式。 如對本文講解有不明之處,您也可以聯(lián)系飛凌的技術支持團隊咨詢了解。

  全志t507

硬件平臺:OKT507-C開發(fā)板  操作系統(tǒng): Linux4.9

本文將為大家介紹如何在飛凌OKT507-C開發(fā)板(基于全志T507設計)上添加兩個GPIO按鍵,希望能夠對各位工程師有所幫助,本文章以PE5、PE6兩個引腳為例。話不多說,下面我們進入主題。

一、GPIO按鍵添加方法

1. 添加內核配置

Linux內核源代碼中集成了很多功能,一般的用戶只會用到其中的部分功能。用戶從中挑選自己需要的功能,這就叫內核配置。下面我們開始進行配置。

注意:

(1)在進行配置前,需要對

OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/configs/sun50iw9p1smp_longan_dcfconfig文件提前做好備份;

(2)以下所有圖中的紅框為修改后的內容。

vi OKT507-linux-sdk/kernel/linux-4.9/.config

2. 添加key節(jié)點

添加結點需要我們到t507設備樹中進行添加,設備樹是一個描述硬件的數據結構,甚至你可以將其看成一個大結構體(這個結構體就是平臺,成員就是具體的設備),將硬件的配置從linux內核的源碼中提取出來。

下面打開我們的T507設備樹文件,如下:

vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi

其中按鍵鍵值設置如下。

相關鍵值可通過查看input-event-codes.h文件確定。

vi OKT507-linux-sdk/kernel/linux-4.9/include/uapi/linux/input-event-codes.h

3. 添加引腳定義

添加引腳定義需要用到pinctrl,下面給大家簡單介紹下pinctrl。pinctrl就是系統(tǒng)中pin引腳的控制。

假如在使用到GPIO、I2C等功能時,若按引腳逐一地去找對應的寄存器進行配置非常浪費時間和精力,所以內核引入了pinctrl子系統(tǒng),把引腳的復用和配置抽象出來,只需要芯片廠商把自家芯片的支持進去,就可以很方便的配置引腳。

下面打開我們的pinctrl文件,如下:

vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi

4. 關閉沖突功能

因為t507有些功能結點使用的引腳與我們這次復用的引腳發(fā)生沖突,會發(fā)生引腳不生效的錯誤,所以我們一定要檢查好,然后將其關閉。  

如下打開設備樹文件:

vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi

vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi

注意:

因攝像頭csi復用的引腳與我們這里的沖突,雖然前面將狀態(tài)disabled了,pinctrl這里也有可能會造成沖突,為了避免不必要的麻煩,我們也將這里注釋掉。


5. 驅動修改

gpio-keys是基于input子系統(tǒng)實現的一個通用按鍵驅動,該驅動基于platform_driver架構,實現了驅動和設備分離,符合Linux設備驅動模型的思想,也符合linux驅動實現模型,即driver和device分離模型。

一般按鍵驅動,都是基于gpio-keys進行開發(fā)的。驅動文件如下:

vi OKT507-linux-sdk/kernel/linux-4.9/drivers/input/keyboard/gpio_keys.c

二、測試方法

終端窗口輸入evtest,選擇 7。


從上圖紅框可以看出,通過evtest測試工具將內核設備讀取并打印設備描述的事件,到這里,GPIO按鍵就做完了,可以用它來實現很多的功能,比如說按一下切換燈的狀態(tài),蜂鳴器響等。

當然不只是這些啦,我們還可以利用它去實現很多其他功能,歡迎各位聰明的工程師小伙伴自行發(fā)揮!

以上就是小編為大家?guī)淼脑陲w凌T507開發(fā)板上添加GPIO按鍵的全過程,想要了解有關OKT507-C開發(fā)板更多的功能和詳情,可以點擊下圖查看t507詳情。

 

相關產品 >

  • OKT507-C 開發(fā)板

    CPU: T507 工業(yè)級處理器,超低功耗,10年+生命周期|推薦全志工業(yè)級T507開發(fā)板系列,飛凌OKT507-C開發(fā)板采用全志T507 四核工業(yè)級處理器 T507設計開發(fā),Cortex-A53架構,工業(yè)級寬溫,性能強,低功耗,是一款高性價比的工業(yè)級產品,提供豐富的開發(fā)設計資料,提供產品規(guī)格書,軟硬件手冊等,全志的T507適用于車載電子、電力、醫(yī)療、工業(yè)控制、物聯(lián)網、智能終端等領域。

    了解詳情
    OKT507-C 開發(fā)板
  • FETT507-C核心板

    推薦T507,全志T507核心板采用工業(yè)級處理器設計開發(fā),提供T507規(guī)格書,T507各類設計資料。FETT507-C核心板集成全志T507四核工業(yè)級處理器設計開發(fā),Cortex-A53架構,主頻1.5GHz,集成G31 GPU,內存2GB DDR3L,存儲8GB eMMC。整板工業(yè)級運行溫寬,支持絕大部分當前流行的視頻及圖片格式解碼,具有穩(wěn)定可靠的工業(yè)級產品性能、低功耗以及豐富的用戶接口等優(yōu)勢,搭載Linux、Android、Ubuntu*操作系統(tǒng),適用于車載電子、電力、醫(yī)療、工業(yè)控制、物聯(lián)網、智能終端等領域 了解詳情
    FETT507-C核心板

推薦閱讀 換一批 換一批