Site Tools



Peripheral Control (ec_odm)

/dev/ec_odm is a device that is OEM specific, so the following info will be AC100/AZ100 specific. Through /dev/ec_odm you can control many things like touchpad, or leds. It doesn't seem to exist in nVidia's sources and ATM no toshiba sources.

Files in /proc/test_program/* (see below) provides a high-level access to EC-ODM.

You can access /dev/ec_odm with the program test-ec (sourcecode: test-ec.c). Usage: ./test-ec 0xc0043006 2 (to turn off backlight)

So, there are multiple ioctl IDs, and all of these commands take an int as parameter

Tested parameters:

LEDs: 0xc0043002 . This handles notification (side) LED. Values from 0 to 7 are different effects 8 disables the led.

TouchPad: 0xc0043003 . This disables/enables touchpad, and touchpad scroll. 0 get touchpad status 1 enables touchpad 2 disables touchpad 3 get scroll status 4 enable scroll 5 disable scroll

Only 5/4 seem to work accurately.

Do not use the backlight command before the previous backlight command has finished. Doing so may cause wrong behaviour. Append (wtf is that name?) : 0xc0043006 : 0 is called shutdown but doesn't seem to do anything 1 enables it 2 turn off the backlight

Untested parameters:

EC: 0xc0043004 getRecoveryPin: 0 setRecoveryPin: enable=1,disable=2 setLidControl: enable=0xc, disable=0xd setPowerButtonControl: enable=0xa; disable=0xb

Keyboard: 0xc0043001 getKeyboardLayout: 1 setKeyboardLayout: unknown

DMI: 0xc0043000 setTestProgramByte getTestProgramByte setWifiChannelSet getWifiChannelSet getKeyboardInfo setKeyboardInfo getOEMStrings getUUID getSerialNumber getVersion getProductName getManufacture setOEMStrings setUUID (!!!) setSerialNumber (!!!) setVersion setProductName setManufacture

UOC: (reversed from uoc binary): 0xc0043005 enable usb over-current (6) enable power button event (0,5) (seems to be *2* ints ??) enable ac event(0,1) enable power button wakeup event (9, 10) enable lid switch (wakeup event?) (9, 12) enable home key (9, 14) enable led switch(0,3)

/proc/test_program: ec_timer batteryCellNumber batteryManufacturer battery tpwheel ⇒ echo 1 or 0 into for enabling / disabling touchpad wheel edid suspend hdmi wifi3g ⇒ echo 1 or 0 into for enabling / disabling Wifi coldboot ecctl loopback light led disable_button lsensor usb SD-test uuid ec_version

peripheralcontrol.txt · Last modified: 2011/08/11 18:48 by ggrandou