2008/12/1

Neo FreeRunner 新手手冊 (5) 透過 sysfs 作硬體開關控制


Neng-Yu Tu (Tony Tu)


在 Openmoko 的官方網頁中, FreeRunner 是基於以下的規格需求所開發出來:
http://wiki.openmoko.org/wiki/Neo1973_GTA02_Hardware

在此網頁中, 包含 3 個重點, 分別是:

* 規格設定條件
* 硬體選擇
* 簡要的改版 - 生產紀錄

簡單來說, 在 FreeRunner 中包含了以下的硬體.

* Samsung S3C2442 B54 MCP (含 64 MB SDRAM, 256 MB NAND), running @400Mhz
* 外接一顆 64 MB SDRAM
* ST 8 MB NOR flash
* NXP PCF50633 04 N3 電源管理 IC
* 2顆 LED, Aux 紅色, Power 藍/橘
* S-Media 圖形加速器
* u-blox 4 A-GPS
* microSD card (插槽) (目前 community 測試最大支援到 16 G 的 SDHC microSD 卡)
* 2 顆 ST 3-axis 的 accelerometer (8G/2G 敏感度及 interrupt 模式)
* Atheros AR6001GZ Wi-Fi, firmware version 2.0.0.89 (Accton module)
* CSR BC4 Bluetooth v2.0 (Delta module)
* USB host (同時可提供 5V power, 不需外接電源)
* Calypso GSM/GPRS modem
* 支援聰明電池 (coulomb battery), 可模擬 HDQ 協定的硬體 GPIO 設計
* 硬體可讀版號, 會對應從 u-boot 傳到 kernel 的 ATAG 值 (0350 = v5 版, 0360 = v6 版)

FreeRunner 的完整電路圖, 也可以從 Openmoko 網站下載:

http://downloads.openmoko.org/developer/schematics/

大部分的硬體, 都可以透過 /sysfs 來作開關及讀取一些基本資料. 詳細的內容, 可參閱 wiki 下的網址. http://wiki.openmoko.org/wiki/GTA02_sysfs 同時, sysfs 對應的位置會因為 upstream 相容性改變, 2.6.28 開始, 因為 upstream 的關係, 目錄位址開始變更. 但是基本使用方式及原則是不變的, 可以用 find 指令來找相關的位置.

舉例來說:

<開關 Aux 鍵的 LED>
要開關 Aux key LED, 可以直接使用以下命令:
echo "255" > /sys/devices/platform/gta02-led.0/leds/gta02-aux:red/brightness
或是
echo "0" > /sys/devices/platform/gta02-led.0/leds/gta02-aux:red/brightness

<讀取電池的充電狀態>
讀取 PMU 的的充電狀態是快充還是其他狀態:
cat /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/chgmode

<讀取電池電量> 讀出的數值以百分比表示
cat /sys/devices/platform/bq27000-battery.0/power_supply/bat/capacity

<讀取硬體版本>
root@om-gta02:~# cat /sys/devices/platform/neo1973-version.0/pcb

利用 sysfs, 就可以利用 script 開關硬體, 或是執行簡單的系統測試. 但是例如像是 wi-fi 模組是直接透過 SDIO 連接, 就無法用硬體的方式 power off 模組, 只能用軟體的方式執行 power off 命令.

沒有留言:

 
Creative Commons License
著作 係採用創用 CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款授權.