T113 i2c gpio拓展芯片xl9555開發(fā)應(yīng)用筆記
內(nèi)核添加支持
設(shè)備樹引用
應(yīng)用調(diào)用
內(nèi)核添加支持
xl9555可使用 pca9555驅(qū)動(dòng),在設(shè)備樹使能pca9555節(jié)點(diǎn),參考如下:
內(nèi)核驅(qū)動(dòng):/kernel/drivers/gpio/gpio-pca953x.c
make menuconfig配置編譯 CONFIG_GPIO_PCA953X=y
或拷貝出來手動(dòng)編譯成模塊加載
注意這里的i2c地址由硬件A0-A2接線決定
設(shè)備樹引用
例如把XL9555_IO P07,P11擴(kuò)展成LED燈,在設(shè)備樹中可做如下引用。
注意xl9555沒有P08,P09,因此P10對應(yīng)gpio_ext 8 ,P11對應(yīng)gpio_ext 9 ,以此列推。
P0-- gpio_ext 0
P1-- gpio_ext 1
P2-- gpio_ext 2
P3-- gpio_ext 3
P4-- gpio_ext 4
P5-- gpio_ext 5
P6-- gpio_ext 6
P7-- gpio_ext 7
P10-- gpio_ext 8
P11-- gpio_ext 9
P12-- gpio_ext 10
系統(tǒng)啟動(dòng)后可使用標(biāo)準(zhǔn)控制LED方法控制
控制高低
echo 1 > /sys/class/leds/led1/brightness
echo 1 > /sys/class/leds/led2/brightness
閃爍
echo timer > /sys/class/leds/led1/trigger
echo timer > /sys/class/leds/led2/trigger
應(yīng)用調(diào)用
在 /sys/class/gpio 目錄下生成1組新的引腳gpiochip400
root@/ # ls /sys/class/gpio
export gpio402 gpio403 gpiochip0 gpiochip400 unexport
此時(shí)可像操作soc內(nèi)部引腳的方法控制具體的GPIO
注意這里的xl9555的 Pn對應(yīng) GPIO的 400+n
xl9555沒有P08,P09,因此P10對應(yīng)gpio_ext 8 ,P11對應(yīng)gpio_ext 9 ,以此列推。
例如控制XL9555_IO的 P07,P11
可用如下指令
P07 400+7=407
echo 407 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio407/direction
echo 1 > /sys/class/gpio/gpio407/value
P11 400+11-2=409
echo 409 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio409/direction
echo 1 > /sys/class/gpio/gpio409/value
-
芯片
+關(guān)注
關(guān)注
454文章
50460瀏覽量
421967 -
嵌入式
+關(guān)注
關(guān)注
5071文章
19026瀏覽量
303502 -
GPIO
+關(guān)注
關(guān)注
16文章
1196瀏覽量
51931
發(fā)布評論請先 登錄
相關(guān)推薦
評論