Missing Key-codes from input.h file.

Dharam Kumar dharam.kumar.gupta at gmail.com
Wed Jun 27 01:50:46 EDT 2012

On Tue, Jun 26, 2012 at 1:13 PM, Matthias Brugger
<matthias.bgg at googlemail.com> wrote:
> On 06/26/2012 08:47 AM, Dharam Kumar wrote:
>> On Tue, Jun 26, 2012 at 12:02 PM, anish kumar
>> <anish198519851985 at gmail.com> wrote:
>>> On Mon, 2012-06-25 at 23:24 +0530, Dharam Kumar wrote:
>>>> On Mon, Jun 25, 2012 at 10:47 PM, anish kumar
>>>> <anish198519851985 at gmail.com> wrote:
>>>>> On Mon, 2012-06-25 at 18:52 +0530, Dharam Kumar wrote:
>>>>>> Hi,
>>>>>> I'm working on a module which is an input device and hence it needs to
>>>>>> report certain key events.
>>>>>> While browsing through the <linux/input.h>, I did find most of the
>>>>>> key-codes(which I need to use)already defined but not all.
>>>>>> Few of the KEY_xxx which i could not find are:
>>>>>> a.) A Key for going to the previous channel.
>>>>>> b.) Keys for Moving upper-right, lower-right, upper-left and
>>>>>> lower-left direction(probably a GUI(grid of icons),where you move
>>>>>> diagonally)
>>>>>> d.) A key for Subpicture (this 'subpicture' key is deeined in
>>>>>> CEA-931C).
>>>>> I think you are interested in the user space implementation of
>>>>> the keys reported by the input subsystem of kernel.
>>>>> Keys reported by the driver->input subsystem->reported to user space.
>>>>> I am not sure about linux way of reporting keys but in android the key
>>>>> is reported at a particular sysfs file and this sysfs file is read by
>>>>> eventhub.cpp.This file in turn is responsible for sending the events
>>>>> to particular application and it is the responsibility of the
>>>>> application how they interpret this keys.It can interpret events by
>>>>> moving diagonally a pointer/touch or going left/right.
>>>> Thanks Anish ! To be clear, i just want to know the key-code
>>>> which will be used by the Input Subsytem of the Kernel.
>>>> For example, in <linux/input.h> file you will find a lot of #defines
>>>> like the below,mapping different kind of key events to some key-code
>>>> or value :
>>>> #define KEY_UP                 0xXYZ
>>>> #define KEY_DOWN         0xABC and so on...
>>>> Now, I'm looking for key events like:
>>>> #define KEY_PREVIOUSCHANNEL   <???>
>>>> #define KEY_RIGHTUP                         <???>
>>>> #define kEY_RIGHTLEFT                     <???>
>>>> #define kEY_SUBPICTURE                 <???> and so on...
>>>> You are probably right , that Userspace reads the key-events/key-codes
>>>> from certain sysfs entries exported by Android Linux Kernel and these
>>>> key-codes/events will be handled accordingly by the respective
>>>> Framework/Application. But  I'm really not interested in how and what
>>>> Userspace gets from Kernel.
>>>> I'm interested in what values the Kernel or input subsystem will
>>>> provide to such keys..
>>> Do you have such keys in your device KEY_RIGHTUP?
>> Yes, my device is supposed to support such keys:
>> RIGHTUP --> moves cursor upper-right direction.
>> RIGHTDOWN ---> moves cursor lower-right direction.
>> and similar keys for upper-left and lower-left cursor direction.
>> Sadly, I could not find any #define in input.h file for such key events.
> From your response I interpret that you have some kind of custom key-pad, or
> anything similar which is not a standard keyboard.
You are right that it is not a standard keyboard. In fact, these are
Remote Controller(or Remote Control) keys as  defined in MHL
Now, MHL Specs is closely related to HDMI specifications.Hence, my
assumption is that such keys might be the part of HDMI-CEC
specifications and would have been picked from there to MHL Specs.

Although the current MHL specs does not shed much light on how these
'missing' Remote Control Keys will be handled by the device, what is
still notable that these remote controller keys(if 'they' are part of
HDMI-CEC standards) has not been added to Linux Kernel.
As you said, it is highly possible that nobody had encountered the use
of these keys. In any case, I need to dig more.

Thanks for your response !

> If there are no such defines in the Kernel, it's probably because no one has
> had the need for them up to now.
> I think the implementation should be done as Anish described beforehand.
> Anyway you can add some defines to your Kernel if this is a requirement for
> you.
> Regards,
> Matthias
>>>>> Not sure if this is what you are interested in but would have been
>>>>> better if you had described the problem in more detail.
>>>>>> Does anybody have any idea about this?
>>>>>> -
>>>>>> Dharam
>>>>>> _______________________________________________
>>>>>> Kernelnewbies mailing list
>>>>>> Kernelnewbies at kernelnewbies.org
>>>>>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>> _______________________________________________
>> Kernelnewbies mailing list
>> Kernelnewbies at kernelnewbies.org
>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

More information about the Kernelnewbies mailing list