核心GPIO操作庫函式

2021-08-08 03:43:12 字數 1641 閱讀 8912

gpio _request (int gpio, char *name);
函式作用:

明確:

硬體gpio對於核心來說像記憶體一樣,都是一種寶貴的資源,所以如果軟體要訪問,首先應該向核心去申請硬體gpio資源;

明確:

每乙個硬體gpio由廠家定義好了乙個名稱,例如gpc0_3,但是在核心中,核心會重新給這個硬體gpio給定義軟體編號(身份證號),例如:

s5pv210_gpc0(3);

gpio:gpf1_3,gpc0_4對應的軟體編號為:s5pv210_gpf1(3),s5pv210_gpc0(4)

引數說明:

gpio:硬體gpio對應的軟體編號

name:標籤,字串

gpio_free(int gpio);
功能:如果gpio資源不再使用,一定要釋放

gpio:硬體gpio對應的軟體編號

gpio_direction_output(int gpio, int value);
功能:配置gpio為輸出,並且輸出value值

gpio:硬體gpio對應的軟體編號

value:輸出的狀態(1,0)

gpio_direction_input(int gpio);
功能:配置gpio為輸入

gpio:硬體gpio對應的軟體編號

gpio_set_value(int gpio, int value);
功能:設定gpio的狀態,前提gpio為輸出口

gpio:硬體gpio對應的軟體編號

value:輸出的狀態(1,0)

int gpio_get_value(int gpio);
功能:獲取gpio的狀態

返回值就是gpio的狀態值

涉及的標頭檔案:

#include 

#include

使用者需求:

1.載入驅動模組,點亮所有的燈;

2.解除安裝驅動模組,關閉所有的燈;

led1->硬體gpio:gpc1_3->軟體編號:s5pv210_gpc1(3)

led2->硬體gpio: gpc1_4->軟體編號:s5pv210_gpc1(4)

#include 

#include

#include

#include

//宣告描述led硬體相關的資料結構

struct led_resource ;

//定義初始化2個led的硬體資訊

static

struct led_resource led_info = ,

[1] =

};static

int led_init(void)

return0;}

static

void led_exit(void)

}module_init(led_init);

module_exit(led_exit);

module_license("gpl");

linux核心裡的GPIO操作函式

1.gpio set value unsigned gpio,int value 用來設定gpio暫存器的值 2.gpio direction output unsigned gpio,int value 用來設定gpio為輸出功能,同時設定gpio輸出的值。一般來說,設定乙個gpio口為輸出,先執...

linux kernel操作GPIO函式

include int gpio request unsigned gpio,const char label 功能 申請乙個gpio 引數 gpio 管腳號 label 管腳名,可以為空 null 返回值 成功返回0,失敗返回錯誤碼 int gpio direction output unsign...

Linux核心 GPIO操作部分API

核心中關於gpio的操作api主要集中在和中,前者主要是gpio直接與裝置樹相關的操作,在linux 裝置樹操作api中已經記錄過,後者主要是針對gpio本身的操作,常用的有下面幾個。linux gpio.h gpio request one request a single gpio with i...