/* gpio bank summary:
** bank gpios style slpcon extint group
* a 8 4bit yes 1
* b 7 4bit yes 1
* c 8 4bit yes 2
* d 5 4bit yes 3
* e 5 4bit yes none
* f 16 2bit yes 4 [1]
* g 7 4bit yes 5
* h 10 4bit[2] yes 6
* i 16 2bit yes none
* j 12 2bit yes none
* k 16 4bit[2] no none
* l 15 4bit[2] no none
* m 6 4bit no irq_eint
* n 16 2bit no irq_eint
* o 16 2bit yes 7
* p 15 2bit yes 8
* q 9 2bit yes 9
** [1] bankf pins 14,15 do not form part of the external interrupt sources
* [2] bank has two control registers, gpxcon0 and gpxcon1
*/三星gpio的input和output屬於不同的function,
一般用這兩個來控制:
s3c_gpio_setpull(s3c64xx_gpn(0), s3c_gpio_pull_up);
s3c_gpio_cfgpin(s3c64xx_gpn(0), s3c_gpio_sfn(0));
分析和先是用這兩個來初始化,再用gpio_direction_output來設定高低。
但是後來發現,直接呼叫
s3c_gpio_setpull + gpio_direction_input
或者gpio_direction_output
可以替換s3c_gpio_cfgpin的功能,因為這兩個函式實際上會呼叫chip->gpio_input/gpio_output
而這個chip結構體在plat-s3c64xx/gpiolib.c中有實現並註冊進去了。
if (gpio_is_valid(s3c64xx_gpe(0)))
gpio_direction_output(s3c64xx_gpe(0), 1);
}gpio_set_value(s3c64xx_gpe(0), 1);
gpio_free(s3c64xx_gpe(0));
s3c好像不能用gpio_set_value。
但據別人說可以,到底是否可以待以後觀察。
在armsys6410的kernel中用這個函式來使能wifi,發現編譯的核心在跑起來後在probe的時候,core dump掉了。
需要跟蹤整個gpio的機制。
是可以使用的,如果要找gpio_set_value這個函式,不能找gpio_set_value函式,要找gpio_set_value這個巨集,這個巨集定義在mach/gpio.h中。
但是在armsys6410 2.6.28的核心中一用這個函式在mach_smdk6410.c中就會死掉。
原因不明。
/*申請乙個gpio,其實就是檢查該gpio是否空閒,如果空閒就可以使用並將該gpio相應的bit置位
(在gpio_in_use中)。
*//*
釋放乙個gpio,其實就是清除gpio相應的控制bit位(在gpio_in_use中)。
*/
三星的中斷及GPIO口中斷的申請
s3c gpio cfgpin hdphone gpiopin,s3c gpio sfn 2 配置gpio11為外中斷 s3c gpio setpull hdphone gpiopin,s3c gpio pull none 不上拉也不下拉,硬體預設拉高 set irq type hdphone ei...
GPIO相關知識
1.維基百科gpio 2.gpio部落格資料 一 知識點 gpio是general purpose input output的縮寫,是乙個在積體電路上的通用pin,它在執行時作為輸入pin或輸出pin受控於使用者。gpio沒有預定義的目標 輸入或輸出 預設為未使用。gpio的能力有 gpio pin...
三星記憶體編碼 三星記憶體編號命名揭秘
首先來解釋一下四段號碼的大概含義。a部分我想不用解釋了吧,標明的是生產企業的名稱 samsung b部分說明的是該記憶體模組的生產日期,以三個阿拉伯數字的形式表現。其中第乙個阿拉伯數字表明,生產的年份,後面兩位數字表明是在該年的第 xx周生產的。例如,上圖中的 就該表示該模組是在 年的第周生產的。如...