* matrix_keyboard based driver @ 2011-11-21 13:52 Christian Gmeiner 2011-11-21 17:27 ` Dmitry Torokhov 0 siblings, 1 reply; 3+ messages in thread From: Christian Gmeiner @ 2011-11-21 13:52 UTC (permalink / raw) To: linux-input Hi all, today I started with a basic matrix_keyboard based keypad driver. It seems to work quite well but I have some questions. Is it possible to define following values from user space? * debounce time in [ms] * auto repeat time in [ms] * multi click abort time in [ms] I am also not sure about the default keymap I should use in the platform_data. At the moment it looks like: static const uint32_t ot200_keymap[] = { KEY(0, 1, 0x01), KEY(0, 2, 0x02), KEY(0, 3, 0x03), KEY(0, 4, 0x04), KEY(0, 5, 0x05), KEY(0, 6, 0x06), KEY(0, 7, 0x07), KEY(0, 8, 0x08), KEY(0, 9, 0x09), ... ... KEY(9, 6, 0x96), KEY(9, 7, 0x97), KEY(9, 8, 0x98), KEY(9, 9, 0x99), }; I need to configure the mapping from userspace and it is be done via loadkeys if I am not wrong. Does the input core handle cases like SHIFT key and CAPS lock? thanks -- Christian Gmeiner, MSc ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: matrix_keyboard based driver 2011-11-21 13:52 matrix_keyboard based driver Christian Gmeiner @ 2011-11-21 17:27 ` Dmitry Torokhov 2011-11-22 12:52 ` Christian Gmeiner 0 siblings, 1 reply; 3+ messages in thread From: Dmitry Torokhov @ 2011-11-21 17:27 UTC (permalink / raw) To: Christian Gmeiner; +Cc: linux-input Hi CHristian, On Mon, Nov 21, 2011 at 02:52:17PM +0100, Christian Gmeiner wrote: > Hi all, > > today I started with a basic matrix_keyboard based keypad driver. It > seems to work quite > well but I have some questions. > > Is it possible to define following values from user space? > > * debounce time in [ms] No as it is mostly hardware property, not user preference. > * auto repeat time in [ms] Yes: EVIOCSREP (kbdrate or similar). Note that X ignores kernel autorepeat and implements its own. > * multi click abort time in [ms] I have no idea what that is, so apparently no ;) > > I am also not sure about the default keymap I should use in the > platform_data. At > the moment it looks like: > > static const uint32_t ot200_keymap[] = { > KEY(0, 1, 0x01), > KEY(0, 2, 0x02), > KEY(0, 3, 0x03), > KEY(0, 4, 0x04), > KEY(0, 5, 0x05), > KEY(0, 6, 0x06), > KEY(0, 7, 0x07), > KEY(0, 8, 0x08), > KEY(0, 9, 0x09), > ... > ... > KEY(9, 6, 0x96), > KEY(9, 7, 0x97), > KEY(9, 8, 0x98), > KEY(9, 9, 0x99), The last items in triplets should be KEY_* constant defined in include/linux/input.h > }; > > I need to configure the mapping from userspace and it is be done via loadkeys > if I am not wrong. To adjust mapping of the input device itself one should use 'setkeycode' or some other utility issuing EVIOCGKEYCODE/EVIOCSKEYCODE ioctls. loadkeys adjusts higher level keymap used by the console. > Does the input core handle cases like SHIFT key and > CAPS lock? No, that is the task for higher layers (console, X, etc...). Thanks. -- Dmitry ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: matrix_keyboard based driver 2011-11-21 17:27 ` Dmitry Torokhov @ 2011-11-22 12:52 ` Christian Gmeiner 0 siblings, 0 replies; 3+ messages in thread From: Christian Gmeiner @ 2011-11-22 12:52 UTC (permalink / raw) To: Dmitry Torokhov; +Cc: linux-input Hi Dmitry, 2011/11/21 Dmitry Torokhov <dmitry.torokhov@gmail.com>: > Hi CHristian, > > On Mon, Nov 21, 2011 at 02:52:17PM +0100, Christian Gmeiner wrote: >> Hi all, >> >> today I started with a basic matrix_keyboard based keypad driver. It >> seems to work quite >> well but I have some questions. >> >> Is it possible to define following values from user space? >> >> * debounce time in [ms] > > No as it is mostly hardware property, not user preference. Okay... lets see If i need to do this in hardware. > >> * auto repeat time in [ms] > > Yes: EVIOCSREP (kbdrate or similar). Note that X ignores kernel > autorepeat and implements its own. Fine. > >> * multi click abort time in [ms] > > I have no idea what that is, so apparently no ;) At the moment I have a uinput based user space program, which gets the matrix coordinates and send back the pressed key. And there it is possible to enter a handy-like input method. press 3 times in a short time the letter 1 on the keypad and the uinput based program sends a 'c' to the kernel. > >> >> I am also not sure about the default keymap I should use in the >> platform_data. At >> the moment it looks like: >> >> static const uint32_t ot200_keymap[] = { >> KEY(0, 1, 0x01), >> KEY(0, 2, 0x02), >> KEY(0, 3, 0x03), >> KEY(0, 4, 0x04), >> KEY(0, 5, 0x05), >> KEY(0, 6, 0x06), >> KEY(0, 7, 0x07), >> KEY(0, 8, 0x08), >> KEY(0, 9, 0x09), >> ... >> ... >> KEY(9, 6, 0x96), >> KEY(9, 7, 0x97), >> KEY(9, 8, 0x98), >> KEY(9, 9, 0x99), > > The last items in triplets should be KEY_* constant defined in > include/linux/input.h > Okay.. this should be doable... my company offers a way to have their own mapping of some universal keys on the keypad. for instance it is possible to assign to a key the action to sending ALT + TAB. >> }; >> >> I need to configure the mapping from userspace and it is be done via loadkeys >> if I am not wrong. > > To adjust mapping of the input device itself one should use 'setkeycode' > or some other utility issuing EVIOCGKEYCODE/EVIOCSKEYCODE ioctls. > So these two ioctls are changing the last value in the triplets of the keymap? >> static const uint32_t ot200_keymap[] = { >> KEY(0, 1, 0x01), In this case 0x01 will get replaced? > loadkeys adjusts higher level keymap used by the console. > ah okay. >> Does the input core handle cases like SHIFT key and >> CAPS lock? > > No, that is the task for higher layers (console, X, etc...). > Need to play a little bit with I think. thanks -- Christian Gmeiner, MSc -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-11-22 12:53 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-11-21 13:52 matrix_keyboard based driver Christian Gmeiner 2011-11-21 17:27 ` Dmitry Torokhov 2011-11-22 12:52 ` Christian Gmeiner
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).