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

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

控制 LED 的 script

檔案 http://sh4twbox.googlecode.com/files/ledctl2.sh

只能用在註冊成 Platform Device 的 LED 燈上。


ledctl2.sh {show | red | blue | purple | off | s | r | b | p | o}
ledctl2.sh set {on | off | keep | k | TRIGGER} [on | off | keep | k | TRIGGER]
2013/12/07:修改 script 配合修正過的LED控制狀態

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