rk3288 裝置樹點燈

2021-08-15 21:35:33 字數 2017 閱讀 2835

gpio常用系統呼叫函式:位於include/linux/gpio.h

1,申請gpio

static inline int gpio_request(unsigned gpio,consr char *label)

2,設定gpio電平

static inline void gpio_set_value(unsigned ine gpio,int value)

3,獲取gpio電平

static inline int gpio_get_value(unsigned gpio)

4,設定gpio為輸出,並設定電平

static inline int gpio_direction_output(unsigned gpio,int value)

5,設定gpio為輸入

static inline int gpio_direction_input(unsigned gpio)

6、裝置樹下新增自己的節點

hello-gpio

return 0;    

}static ssize_t drv_gpio_write(struct file *file, const char __user *buf, size_t count, loff_t * ppos)//應用層呼叫

if(!gpio_is_valid(gpio5_c3))

/*  if(!gpio_is_valid(gpio0_c1))

if(!gpio_is_valid(gpio1_d2))

ret =gpio_request(gpio,"drv_gpio");

if(ret!=0)*/

ret =gpio_request(gpio5_c3,"drv_gpio");

if(ret!=0)

/*ret =gpio_request(gpio0_c1,"drv_gpio");

if(ret!=0)

ret =gpio_request(gpio1_d2,"drv_gpio");

if(ret!=0)*/

//gpio_direction_output(gpio,gpio_high);

gpio_direction_output(gpio5_c3,gpio_high); //配置gpio為輸出 且為高

//gpio_direction_output(gpio0_c1,gpio_high);

//gpio_direction_output(gpio1_d2,gpio_low);

/*for(i=0;i<=4;i++)

*/printk(kern_info  "%s-%d: enter\n",__function__,__line__);

major = register_chrdev(0, "rockchip_hello", &drv_gpio_fops); //建立裝置節點

drv_gpio_class = class_create(this_module, "rockchip_hello");

drv_gpio_class_dev = device_create(drv_gpio_class, null, mkdev(major, 0), null, "xyz"); /* /dev/xyz */

return 0;

}static int drv_gpio_remove(struct platform_device *pdev)

static const struct of_device_id of_rockchip_gpio_match=,

};static struct platform_driver rockchip_gpio_driver=,

};static  int __init drv_gpio_init(void)

*/return 0;

}static void __exit drv_gpio_exit(void)

subsys_initcall(drv_gpio_init);

module_exit(drv_gpio_exit);

module_license("gpl");

rk3288 裝置樹語法學習

裝置資源以前都是用.c檔案,但是隨著時間的推移。冗餘 越來越多,所以用裝置樹來替代資源檔案的指定。裝置樹在linux裡的檢視 ls sys firmware devicetree fdt devicetree 目錄下是以目錄結構呈現的dtb檔案,根節點對應base目錄,每個節點對應乙個目錄,每個檔案...

rk3288編譯環境

在mtk原來5.1的編譯環境基礎上,編譯rk3288 5.1 kernel 報錯。安裝 sudo apt get install lzop後面還有乙個git的錯誤,網上一大把。補充 openjdk的安裝起因 編譯環境一直用得好好的,今天突然編譯,提示jdk版本太低了,真是撞邪了。jdk大家經常安裝,...

RK3288公升級韌體

公升級韌體 閱讀 8880 本文介紹了如何將主機上的韌體檔案,通過 micro usb otg 線,燒錄到開發板的快閃儲存器中。公升級時,需要根據主機作業系統和韌體型別來選擇合適的公升級方式。韌體檔案一般有兩種 主機作業系統支援 之前燒寫 rk 的韌體,需要用到以下兩種工具 後來 rk 發布了 an...