gpio linux ʵÏÖÄ£ÐÍ
ÔÎĵØÖ·£ºhttp://lhsblog01.blog.163.com/blog/static/1020045192010221104237126/
GPIOÊÇÓëÓ²¼þÌåϵÃÜÇÐÏà¹ØµÄ£¬linuxÌṩһ¸öÄ£ÐÍÀ´ÈÃÇý¶¯Í³Ò»´¦ÀíGPIO£¬¼´¸÷¸ö°å¿¨¶¼ÓÐʵÏÖ×Ô¼ºµÄgpio_chip¿ØÖÆÄ£¿é£ºrequest, free, input,output, get,set,irq...
È»ºó°Ñ¿ØÖÆÄ£¿é×¢²áµ½ÄÚºËÖУ¬Õâʱ»á¸Ä±äÈ«¾ÖgpioÊý×飺gpio_desc[].
µ±Óû§ÇëÇógpioʱ£¬¾Í»áµ½Õâ¸öÊý×éÖÐÕÒµ½£¬²¢µ÷ÓÃÕâ¸öGPIO¶ÔÓ¦µÄgpio_chipµÄ´¦Àíº¯Êý¡£
gpioʵÏÖΪһ×é¿ÉÓÃµÄ gpio_chip, ÓÉÇý¶¯´«Èë¶ÔÓ¦ gpioµÄÈ«¾ÖÐòºÅ È¥ request, dataout ,datain, free. Õâʱ»áµ÷ÓÃgpio_chipÖоßÌåµÄʵÏÖ¡£
¼Ä´æÆ÷¶Áдº¯Êý: __raw_writel() __raw_writeb() __raw_readl() __raw_readb()
gpioÊÇÒ»×é¿É¿Ø¼þµÄ½Å£¬Óɶà¸ö¼Ä´æÆ÷ͬʱ¿ØÖÆ¡£Í¨¹ýÉèÖöÔÓ¦µÄ¼Ä´æÆ÷¿ÉÒÔ´ïµ½ÉèÖÃGPIO¿Ú¶ÔӦ״̬Ó빦ÄÜ¡£
Êý¾Ý״̬£¬ÊäÈëÊä³ö·½Ïò£¬ÇåÁ㣬Öжϣ¨ÄǸö±ßÑØ´¥·¢£©£¬ Ò»°ãÊÇÒ»×飨bank£©Ò»×éµÄ¡£
//****************linux ÖÐ GPIOÄ£ÐÍ****************************************//
×¢²á·½·¨£º
1£ºstruct gpio_chip: ±íʾһ¸ögpio controller.ͨ¹ýÕâ¸ö½á¹¹³éÏó»¯ËùÓÐµÄ GPIOÔ´£¬¶øÈðåÉÏÆäËüµÄÄ£¿é¿ÉÒÔÓÃÏàͬµÄ½Ó¿Úµ÷ÓÃʹÓÃÕâЩGPIO¡£
2: struct gpio_desc: ±íʾһ¸ögpio¿Ú£¬º¬¶ÔÓ¦µÄ gpio_chip.
3: ARCH_NR_GPIOS£º Óë°åÏà¹ØµÄGPIO¿ÚÊýÁ¿£¬¼´ÊÇÈ«¾ÖGPIOÊý×飺static struct gpio_desc gpio_desc[ARCH_NR_GPIOS];
4£º ×¢²á gpio_chipʱ£¬¾ÍÊǸù¾Ý chip µÄÊý¾Ý ÐÞ¸ÄÈ«¾Ö GPIOÊý×éÖÐ gpio_desc ×ֶΣ¨chip, flags£©¡£
//************* twl4030 ÖÐ GPIOµÄʵÏÖ *******************//
Ê×ÏÈ twl4030ÖÐµÄ GPIOÄ£¿é: ÔÚ twl4030µÄÇý¶¯×¢²áʱ£¬probeÖУ¬Éú³ÉÁËGPIO¶ÔÓ¦µÄ i2c_client Óë platform_device.
twl4030£¬µ±¼ÓÔØGPIOµÄÇý¶¯(Æ¥Åäplatform_device)ʱ£¬Ê×ÏȽøÐжÔÓ¦µÄÉèÖã¬GPIOÉèÖá£
È»ºóÉèÖýṹ£º gpio_chip: twl_gpiochip: gpio_twl4030_pulls,pio_twl4030_debounce,
×¢²á Ö®£ºret = gpiochip_add(&twl_gpiochip);//Ìí¼Óµ½È«¾ÖµÄ gpio_descÊý×éÖС£¼´ÊÇÉèÖ
Ïà¹ØÎĵµ£º
·½±ãµÄlinuxÃüÁîÊÖ²á
À´Ô´: ChinaUnix²©¿Í ¡¡ÈÕÆÚ£º 2006.07.24 00:31¡¡(¹²ÓÐ0ÌõÆÀÂÛ) ÎÒÒªÆÀÂÛ
NO
·ÖÀà
PS1
ÃüÁîÃû
Ó÷¨¼°²ÎÊý
¹¦ÄÜ×¢½â
¶ÔÓ¦Õ½Ú
1
Îļþ¹ÜÀí
#
ls
ls -a
Áгöµ±Ç°Ä¿Â¼ÏµÄËùÓÐÎļþ£¬°üÀ¨ÒÔ.Í·µÄÒþº¬Îļþ
Îļþ¹ÜÀí
#
ls
ls -l»òll
Áгöµ±Ç°Ä¿Â¼ÏÂÎļþµÄÏêϸР......
£¨1£©ÈýÐǵĴ¥ÃþÆÁÇý¶¯s3c-ts.c£º
s3c_ts_init-¡·platform_driver_register(&s3c_ts_driver)£»
static struct platform_driver s3c_ts_driver = {
.probe = s3c_ts_probe,
.dri ......
Linux»·¾³ÏµÄÈí¼þ°²×°£¬²¢²»ÊÇÒ»¼þÈÝÒ×µÄÊÂÇé;Èç¹ûͨ¹ýÔ´´úÂë±àÒëºóÔÚ°²×°£¬µ±È»ÊÂÇé¾Í¸üΪ¸´ÔÓһЩ;ÏÖÔÚ°²×°¸÷ÖÖÈí¼þµÄ½Ì³Ì¶¼·Ç³£ÆÕ±é;µ«Íò±ä²»ÀëÆäÖУ¬¶Ô»ù´¡ÖªÊ¶µÄÔúÊµÕÆÎÕ£¬°²×°¸÷ÖÖÈí¼þµÄÎÊÌâ¾ÍÓÈжø½âÁË¡£Configure½Å±¾ÅäÖù¤¾ß¾ÍÊÇ»ù´¡Ö®Ò»£¬ËüÊÇautoconfµÄ¹¤¾ßµÄ»ù±¾Ó¦Óá£
ÓëһЩ¼¼ÇÉÏà±È£¬ConfigureÏԵûù´¡Ò» ......
1.Ôö¼ÓÓ²¼þ
Ôö¼ÓµÄideÓ²ÅÌǰ׺Ϊhd£¬scsiÓ²ÅÌǰ׺Ϊsd£»µÚÒ»¿éÓ²ÅÌΪhda»òsda£¬µÚ¶þ¿éÓ²ÅÌΪhdb»òsdb,ÒÔ´ËÀàÍÆ¡£
2.ÓÃpvcreate´´½¨physical volumn
pvcreate /dev/sdb1 /dev/sdb2
´Ë´¦ËùÓõķÖÇøÊǵڶþ²½ÖвÙ×÷µÄÀàÐÍΪ8eµÄ·ÖÇø£¬pvcreateµÄ²ÎÊý¿ÉÒÔΪ1¸ö»ò¶à¸ö£»´´½¨Íê³Éºó¿ÉÒÔÓÃpvdisplay -vÀ´²é¿´´´½¨µÄÇé¿ö£¬ÓÃpvre ......