Fujitsu lifebook application panel
This page is the 'newer' techinfo page. The application panel is accessed using the system management bus. Before I discovered that, I used raw i/o sequences to talk to it. You can still look at the old page by following the link to the old tech page.
Even more interesting are datasheets from O2 Micro. Full datasheets containing smbus commands are not available from their site. Never mind, I found them anyway for the oz163t (cd buttons and lcd) and oz992c (application buttons and led). Contact me if you want the datasheets.
But these ic's are used in the Fujitsu C-4110 and some other models. There is at least one other ic that's used in application panels.
In most lifebook models, the application panel is connected to the system management bus. There is a certain model (I'll call it model X) that uses i/o ports 0x472 and 0x477. This model has a led and application buttons. This project however currently only covers the system management bus part.
BIOS configuration parameters
In the BIOS of a Fujitsu lifebook, the string FJKEYINF can be found. This indicates the start of the application panel configuration block. This string can be found on a 16-byte boundary of the BIOS (the last hex digit of the startaddress of this string is zero).
After the 8-byte string, max. 6 device parameter blocks follow, each 4 byte long. Each device parameter block consists of the following:
The original driver also checks for the presence of the string FUJITSU and fails if some checksum is not correct. If you really want to know the details, mail me and I'll find it out.
Application panel configuration block example
For example, the Fujitsu lifebook C-6175 has the following configuration block:FJKEYINF string paramblk1 paramblk2
/---------------------\ /---------\ /---------\
46 4a 4b 45 59 49 4e 46 01 01 01 30 04 01 01 30 |FJKEYINF...0...0|
First the string FJKEYINF, then two device configuration blocks. The first block has device_type 1, which indicates an "Application buttons" device. This device is enabled and uses the system management bus at device 0x30. The second device is a LED which is enabled and uses the system management device 0x30 (Yes, they have the same devicenumbers but input devices use different function numbers than output devices).
Device access using the system management bus
I'm not explaining here how the system management bus works (see the link page for more information on that), but how to talk to the application panel devices connected to the system management bus.
The slave device number is known from the BIOS application panel configuration block. This is the 'raw' slave device, so don't shiftleft it to make room for the R/W bit. The lowest bit is (hopefully :) always zero. (If you don't understand this, just ignore it or read the smbus specification)
The system management bus commands that are used to access the application panel are word writes & reads. Maybe other functions are supported too, but I didn't succeed (I haven't tried that hard however). The word write & read commands have a slave address (see above), a command value (which indicates the action that should be taken) and a data byte. Next table shows what command values should be used.