最近處理類似Lynx Point的GPIO interface
看規格應該是Intel series 7 但和Series 5基本上一致
前面GPIO 0~15看來可以設定為Interrupt pin 甚至NMI
基本上透過PM_BASE那邊可以設定ROUTE enable到GPE
linux kernel driver目前看來,沒什麼現成的Generic driver
我某種原因跟linux gpio driver內所謂的lynx-point 完全不一樣, 原因就不知了
但要掛GPIO interrupt看來沒有現成driver可以走gpio to irq
只能透過ACPI GPE去實現
題要一下用法
GPIO0~15對應過去GPE基本上看來都是+ 0x10
也就是GPE 0x10~0x1F
acpi gpe handler(可以想像成原本的irq handler)
return ACPI_INTERRUPT_HANDLED | ACPI_REENABLE_GPE;
才會有下一個觸發
最簡單就
acpi_install_gpe_handler(NULL,
GPE_num,
ACPI_GPE_LEVEL_TRIGGERED,
&GpeHandler,
NULL);
如果要變化 trigger 方向可以利用GPIO BASE內的GP_INV
參考
http://www.serverphorums.com/read.php?12,907659,907659
http://fwengineer.blogspot.tw/2013/01/acpi.html
http://boy-asmc.blogspot.tw/2011/03/eckbsmi.html
http://datacenterswitching.blogspot.tw/2014/02/interrupts-routing-in-x86.html
http://biosengineer.blogspot.tw/2007/10/sci-check-list.html
沒有留言:
張貼留言