fipmodule
fipmodule (fipmodule.o) is a remote control and front panel driver module.
Version: 2.3
Status: Done
Description
FIP stands for "Front Interface Panel". fipmodule offers a standard way to deal with the keys, LEDs and IR sensor, using /dev/fip device. A GPLed version of this module for the MG-35 is here. A user mode driver is available here.
Usage
Loading the module
To insert the module, use the insmod command:
Unloading the module
To remove the module, use the rmmod command:
Key codes
These codes are used by the ADD_KEY, INS_KEY and GET_KEY device commands.
Low word
| 0x807F | keypad |
| 0x7F80 | IR key |
High word
| Enter | EA15 |
| Up | ED12 |
| Down | EC13 |
| Right | E916 |
| Power | FF00 (action taken by fip processor!) |
| Play | B649 |
| Stop | B748 |
| Menu | A758 |
| Title | E817 |
| Setup | EE11 |
| Angle | A659 |
| Repeat | A857 |
| A+B | F40b |
| Slow | B24d |
| File Info | F609 |
| Time Search | A55a |
| Br Cont | F30C |
| Media Type | A35C |
| Main Page | E41B |
| Rew | EF10 |
| FF | B14E |
| Prev | E01F |
| Next | Bc43 |
| Video | F906 |
| Audio | F807 |
| Subtitle | FD02 |
| ScrSize | Fc03 |
| 1 | E31C |
| 2 | E21D |
| 3 | E11E |
| Vol + | B54A |
| 4 | BF40 |
| 5 | BE41 |
| 6 | BD42 |
| Vol - | F708 |
| 7 | BB44 |
| 8 | Ba45 |
| 9 | B946 |
| Mute | A956 |
| 0 | B847 |
| Cancel | FA05 |
Device Commands
The currently defined IOCTL's (device commands) are as follows (+0x450000):
| IOCTL | Name | Description |
| 1 | GET_KEY | Retrieve the last pressed key code |
| 2 | GET_LEDS | Retrieve the current LED state |
| 3 | SET_LEDS | Update the current LED state |
| 4 | ADD_KEY | Identify a key as 'repeating' |
| 5 | INS_KEY | Fake a key press |
| 6 | POWER_DOWN | Turn off power to the mainboard |
| 7 | GET_VERSION | Return the interface version for the FIP board |
| 8 | READ_DATA | Return the current value of the FIP 'data' register |
| 9 | GET_CONTROL | Return the current value of the FIP 'control' register |
| 10 | SET_CONTROL | Update the value of the FIP 'control' register |
| 11 | GET_TIMER | Return the current value of the FIP 'timer' register |
| 12 | SET_TIMER | Update the value of the FIP 'timer' register |
Reading keys: GET_KEY (1)
Here is how to read the FIP keys (C snippet):
#define READ_KEY_NB 0x00450001 // read key non-blocking
fp = fopen("/dev/fip", "rw");
result = ioctl(fileno(fp), READ_KEY_NB, &key);
|
Download
License
GPL
Todo
History
Version 2.3 - [2008-07, John]
- Debugged ADD_KEY/FIND_KEY/fip_ir_sm2
- Key repeating now works properly
Version 2.2 - [2008-04, John]
- Added FIOC_INS_KEY for programmatically inserting keys into the FIP stream
Version 2.1 - [2008-02, John]
- Re-written for GPL release
Version 2.0 - [2007, Airlink Tech]
- Upgraded to FIP interrupt handler #2
Comments (0)
You don't have permission to comment on this page.