全志T507_Linux_應用筆記之GPIO接口合集

原創 2023-08-07 11:27:00

本文主要適用于飛凌 OKT507-C 平臺 Linux4.9.170 操作系統,其他平臺也可以參考,但是不同平臺之間會存在差異,需客戶自行修改以適應自己的使用。

一、uboot 階段的 GPIO 配置方法

如果您需要在 uboot 階段設置 GPIO 輸出高低電平,可以在設備樹中進行配置,可參考飛凌的 LVDS的電源引腳

目前支持 gpio0-gpio31 共計 32 個引腳進行配置。關于 pinctrl 的含義請參考網盤資料\原廠資料目錄的《T507_pinctrl 接口使用說明文檔.pdf》。

二、內核階段的 GPIO 配置方法

以用于 UART5_TX 的 PH2 引腳為例,做一下 gpio 配置的介紹。

1、關閉所使用引腳默認配置的功能:

修改設備樹,將 PH2 原功能關閉后,該引腳可用作普通 GPIO。
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.dtsi

2、測試方法

計算 gpio 對應引腳的數值=(n-1)*32+x
(設 A 為 1,B 為 2,以此類推,PH2 中 H 對應的是 8,x 表示 2)

PH2 對應的數值為:(8-1)x32+2=226

?PH2 設置為輸出:

echo 226 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio226/direction
echo 1 > /sys/class/gpio/gpio226/value    //此時用萬用表測 PH2 引腳的電壓,應該為高電平

echo 0 > /sys/class/gpio/gpio226/value    //此時用萬用表測 PH2 引腳的電壓,應該為低電平

?PH2 設置為輸入:
echo 226 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio226/direction    //設置為輸入模式
?系統取消導出:
echo 226 > /sys/class/gpio/unexport

三、去掉 io 擴展芯片并保留擴展引腳功能的實現

擴展芯片上的 io 口被 wifi、藍牙、mipi 攝像頭 tp2854、dvp 攝像頭和 lineout 口電源使能引腳引用,若想保留這些功能,就要把這些引腳復用到核心板的引腳。

本文以選用開發板上 lcd 所用引腳為例,用戶可根據自己的實際情況選擇。關閉所用引腳使用的功能,將其配置到所用功能的設備樹中。方法參考如下:

1、選用引腳

2、關掉 gpio_ext 及復用引腳原來功能

修改設備樹,將 lcd 功能關閉后,該組引腳可用作普通 GPIO。
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C Common.dtsi
2.1 關掉 io 擴展芯片功能
因為擴展芯片已經拆除,所以要關掉擴展芯片節點

2.2 關閉需要復用引腳功能

關閉 lcd 功能,本文以選用 lcd 上的引腳用作功能復用,用戶需根據實際情況關閉所用引腳功能。
lcd_used 改為 0

Lcd0 節點添加 status = “disabled”;

3、更改設備節點中引用的 gpio

3.1 mipi-5640 引腳配置
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi

3.2 TP2854 引腳配置

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

注意:mipi5640 和 tp2854 共用一個 mipi 接口,兩個功能都用到了 MIPI_PWRDN 引腳,實際使用時只能選擇一種功能,因此本文在兩個功能測試時選的同一個引腳。

3.3 dvp-5640 引腳配置

3.4 wifi 引腳配置

3.5 藍牙引腳配置

3.6 音頻引腳

4、測試方法

測試方法參考《OKT507-C_Linux_用戶使用手冊》。

四、OKT507 增加 GPIO 按鍵

本文添加了兩個 GPIO 按鍵,以 PE5、PE6 兩個引腳為例,引腳選擇可參考用戶資料中的《FETT507-C引腳復用對照表.xlsx》。

1、GPIO 按鍵添加方法

1.1 添加內核配置
注意:
客戶在進行配置前,需要對
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/configs/sun50iw9p1smp_longan_defconfig 文件提前做好備份。
vi OKT507-linux-sdk/kernel/linux-4.9/.config
1.2 添加 key 節點
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

1.3 添加引腳定義
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi

1.4 關閉沖突功能

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
1.5 驅動修改
vi OKT507-linux-sdk/kernel/linux-4.9/drivers/input/keyboard/gpio_keys.c

2、測試方法

終端窗口輸入 evtest,選擇 7
本文所提供的所有服務內容旨在協助用戶加速產品的研發進度,在服務過程中所提供的任何程序、文檔、測試結果、方案、支持等資料和信息,都僅供參考,用戶有權不使用或自行參考修改,不提供任何的完整性、可靠性等保證,若在用戶使用過程中因任何原因造成的特別的、偶然的或間接的損失,本公司不承擔任何責任。




相關產品 >

  • OKT507-C 開發板

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

    了解詳情
    OKT507-C 開發板
  • FETT507-C核心板

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

推薦閱讀 換一批 換一批