顯示具有 gpio 標籤的文章。 顯示所有文章
顯示具有 gpio 標籤的文章。 顯示所有文章

2013年12月1日 星期日

修正LED狀態、使用 Timer 和 gpio Trigger 及編入 STx7105 內建音效支援

在測試 retain_state_suspended 時,
發現 suspend 時不維持 LED 狀態(0)會變成全亮,
原因是 active_low 設定錯了,
要設定為 0 才符合實際狀態,
Heartbeat trigger 也變成比較像心跳那樣閃兩下,
而不是變暗兩次。
連帶 script 中控制亮暗也要變更,
(ledctl2.sh ver 2.1 http://sh4twbox.googlecode.com/files/ledctl2.sh
如果只更換 script 沒換 kernel,
燈號控制會部份失效。

修正部份的程式碼:https://github.com/rexct/kernel-pdk7105/commit/f10f9203a5301bb87b044ab4c333d625205f6d4a

2013年11月24日 星期日

讓網樂通的LED像心跳一樣閃動

之前 github中branch leds 中的程式碼完全正確,
問題的確是在 kernel config中。
只要在 menuconfig 時選擇以下項目
Device Drivers  --->
  LED Support  --->
    LED Class Support
    LED Support for GPIO connected LEDs
      Platform device bindings for GPIO LEDs (NEW)
及需要的 Trigger (預設用到的有 Heartbeat 和 ide-disk),

或手動把
# CONFIG_LEDS_CLASS is not set
改成
CONFIG_LEDS_CLASS=y

再加入以下兩個就不會消失了
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_GPIO_PLATFORM=y

還無法註冊成platform device 的 LEDs 附加測速

上一篇 網樂通 reset 按鈕設定成 platform device 提到LED問題,
除了註冊裝置的程式碼是無效的註解外,
GPIO 腳位定義不對,
但是改完後還是沒出現該有的裝置。

原因可能是在手動加入的 kernel .config 項目被自動刪除。
還不能動的原始碼另開一個 branch https://github.com/rexct/kernel-pdk7105/tree/leds

最後加映可能是加上 fdma 韌體、加入編譯參數 CFLAGS="-m4a -pipe -O3 -ffast-math" 以及更新 cross-compile 環境到 2013/11/03 時,
對執行速度的影響。

網樂通 reset 按鈕設定成 platform device

原本以為將原本完全沒設定的 reset 按鈕註冊成 platform device 會是最困難的,
之前先試著改紅外線遙控喚醒卻不好找到問題。
找了些gpio key的資料後,
順利把 reset 按鈕設定成 platform device。
除了在 dmesg 中出現下面訊息外,

evbug.c: Event. Dev: input0, Type: 1, Code: 28, Value: 1
evbug.c: Event. Dev: input0, Type: 0, Code: 0, Value: 0
evbug.c: Event. Dev: input0, Type: 1, Code: 28, Value: 0
evbug.c: Event. Dev: input0, Type: 0, Code: 0, Value: 0

意外的順利用來喚醒 suspend to ram 的系統,
雖然沒有遙控器喚醒方便,
但已經比之前只能用 WoL 和 TTL 訊號實用多了。
修改已經更新到 https://github.com/rexct/kernel-pdk7105

2013年8月23日 星期五

繼續挖GPIO

在GPIO LED初步完成控制後,下一步找 reset 按鈕。

同樣在 board/st/pdk7105/swUpdate.c 中找到 reset 按鈕相關:
static int check_key_press(void)
{
        int count,cur_key,next_key,led;

        led=0x00;
        count=7;
        cur_key=STPIO_GET_PIN(PIO0_BASSADDRESS, 1);


2013年8月22日 星期四

控制網樂通LED

昨天早上突然興起要繼續包Archlinux的package,
因為miniDlna相依性太複雜,
先從簡單的ushare開始。


很幸運的發現 make 的參數可以設定要不要支援DLNA,
不支援就可以不用管libdlna了。
因為libdlna需要ffmpeg,
ffmpeg又拖了一大串相依套件。

很高興的編完了 libupnp,
結果sh4twbox的套件庫裡原本就有,
所以又是再做一次蠢事。
之前還有Apach、apr、vsftp等。