Linux 驅(qū)動(dòng)開(kāi)發(fā) / gpio子系統(tǒng) / 快速入門(mén)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
一、gpio?與?pinctrl
二、內(nèi)核里如何引用?gpio
三、gpio?子系統(tǒng)框架
四、應(yīng)用層如何訪問(wèn)?gpio
一、gpio 與 pinctrl
本文主要關(guān)注 gpio 子系統(tǒng),但是老吳認(rèn)為必要先說(shuō)明一下 pinctrl 子系統(tǒng)和 gpio 子系統(tǒng)的之間關(guān)系。pinctrl 的作用:- 引腳復(fù)用,例如某個(gè)引腳即可用作為普通的gpio,也可以作為UART的TX;
- 引腳配置,一般包括上下拉、驅(qū)動(dòng)能力等;
- 作為輸入功能時(shí),支持讀引腳值;
- 作為輸出功能時(shí),支持輸出高低電平;
- 部分 gpio 還負(fù)責(zé)接收中斷;
文檔 | 簡(jiǎn)介 |
---|---|
index.rst | 文檔目錄和源碼清單 |
intro.rst | gpio 簡(jiǎn)介 |
driver.rst | 描述如何編寫(xiě) gpio controller driver |
consumer.rst | 描述 gpio consumer 如何使用 gpio |
board.rst | 描述設(shè)備如何申請(qǐng) gpio |
drivers-on-gpio.rst | 列舉一些使用了gpio子系統(tǒng)的常見(jiàn)驅(qū)動(dòng),例如 leds-gpio.c、gpio_keys.c 等 |
legacy.rst | 描述 legacy gpio 接口 |
二、內(nèi)核里如何引用 gpio
2 個(gè)步驟:
1) 設(shè)備樹(shù)里添加 gpio mappings
示例:foo_device {
compatible = "packt,gpio-descriptor-sample";
led-gpios = <