File: [local] / sys / arch / vax / dec / wskbdmap_lk201.c (download)
Revision 1.1.1.1 (vendor branch), Tue Mar 4 16:08:36 2008 UTC (16 years, 4 months ago) by nbrk
Branch: OPENBSD_4_2_BASE, MAIN
CVS Tags: jornada-partial-support-wip, HEAD Changes since 1.1: +0 -0 lines
Import of OpenBSD 4.2 release kernel tree with initial code to support
Jornada 720/728, StrongARM 1110-based handheld PC.
At this point kernel roots on NFS and boots into vfs_mountroot() and traps.
What is supported:
- glass console, Jornada framebuffer (jfb) works in 16bpp direct color mode
(needs some palette tweaks for non black/white/blue colors, i think)
- saic, SA11x0 interrupt controller (needs cleanup)
- sacom, SA11x0 UART (supported only as boot console for now)
- SA11x0 GPIO controller fully supported (but can't handle multiple interrupt
handlers on one gpio pin)
- sassp, SSP port on SA11x0 that attaches spibus
- Jornada microcontroller (jmcu) to control kbd, battery, etc throught
the SPI bus (wskbd attaches on jmcu, but not tested)
- tod functions seem work
- initial code for SA-1111 (chip companion) : this is TODO
Next important steps, i think:
- gpio and intc on sa1111
- pcmcia support for sa11x0 (and sa1111 help logic)
- REAL root on nfs when we have PCMCIA support (we may use any of supported pccard NICs)
- root on wd0! (using already supported PCMCIA-ATA)
|
/* $OpenBSD: wskbdmap_lk201.c,v 1.7 2006/11/27 16:10:41 miod Exp $ */
/* $NetBSD: wskbdmap_lk201.c,v 1.4 2000/12/02 16:57:41 ragge Exp $ */
#include <sys/types.h>
#include <dev/wscons/wsksymdef.h>
#include <dev/wscons/wsksymvar.h>
#include <vax/dec/wskbdmap_lk201.h>
#define KC(n) KS_KEYCODE((n) - MIN_LK201_KEY)
static const keysym_t lkkbd_keydesc_us[] = {
/* pos command normal shifted */
KC(86), KS_Cmd_Screen0, KS_f1,
KC(87), KS_Cmd_Screen1, KS_f2,
KC(88), KS_Cmd_Screen2, KS_f3,
KC(89), KS_Cmd_Screen3, KS_f4,
KC(90), KS_Cmd_Screen4, KS_f5,
KC(100), KS_Cmd_Screen5, KS_f6,
KC(101), KS_Cmd_Screen6, KS_f7,
KC(102), KS_Cmd_Screen7, KS_f8,
KC(103), KS_Cmd_Screen8, KS_f9,
KC(104), KS_Cmd_Screen9, KS_f10,
KC(113), KS_Cmd_Debugger, KS_Escape, /* F11 */
KC(114), KS_f12,
KC(115), KS_f13,
KC(116), KS_f14,
KC(124), KS_Help,
KC(125), KS_Cmd, KS_Execute,
KC(128), KS_f17,
KC(129), KS_f18,
KC(130), KS_f19,
KC(131), KS_f20,
KC(138), KS_Find,
KC(139), KS_Insert,
KC(140), KS_KP_Delete,
KC(141), KS_Select,
KC(142), KS_Prior,
KC(143), KS_Next,
KC(146), KS_KP_0,
KC(148), KS_KP_Decimal,
KC(149), KS_KP_Enter,
KC(150), KS_KP_1,
KC(151), KS_KP_2,
KC(152), KS_KP_3,
KC(153), KS_KP_4,
KC(154), KS_KP_5,
KC(155), KS_KP_6,
KC(156), KS_KP_Separator,
KC(157), KS_KP_7,
KC(158), KS_KP_8,
KC(159), KS_KP_9,
KC(160), KS_KP_Subtract,
KC(161), KS_KP_F1,
KC(162), KS_KP_F2,
KC(163), KS_KP_F3,
KC(164), KS_KP_F4,
KC(167), KS_Left,
KC(168), KS_Right,
KC(169), KS_Down,
KC(170), KS_Up,
KC(171), KS_Shift_R, /* LK 401 */
KC(172), KS_Cmd2, KS_Alt_L, /* LK 401 */
KC(173), KS_Multi_key, /* right compose */ /* LK 401 */
KC(174), KS_Shift_L,
KC(175), KS_Cmd1, KS_Control_L,
KC(176), KS_Caps_Lock,
KC(177), KS_Multi_key, /* (left) compose */ /* LK 401 */
KC(178), KS_Cmd2, KS_Alt_R, /* LK 401 */
KC(188), KS_Delete,
KC(189), KS_Return,
KC(190), KS_Tab,
KC(191), KS_grave, KS_asciitilde,
KC(192), KS_1, KS_exclam,
KC(193), KS_q,
KC(194), KS_a,
KC(195), KS_z,
KC(197), KS_2, KS_at,
KC(198), KS_w,
KC(199), KS_s,
KC(200), KS_x,
KC(201), KS_less, KS_greater,
KC(203), KS_3, KS_numbersign,
KC(204), KS_e,
KC(205), KS_d,
KC(206), KS_c,
KC(208), KS_4, KS_dollar,
KC(209), KS_r,
KC(210), KS_f,
KC(211), KS_v,
KC(212), KS_space,
KC(214), KS_5, KS_percent,
KC(215), KS_t,
KC(216), KS_g,
KC(217), KS_b,
KC(219), KS_6, KS_asciicircum,
KC(220), KS_y,
KC(221), KS_h,
KC(222), KS_n,
KC(224), KS_7, KS_ampersand,
KC(225), KS_u,
KC(226), KS_j,
KC(227), KS_m,
KC(229), KS_8, KS_asterisk,
KC(230), KS_i,
KC(231), KS_k,
KC(232), KS_comma, KS_less,
KC(234), KS_9, KS_parenleft,
KC(235), KS_o,
KC(236), KS_l,
KC(237), KS_period, KS_greater,
KC(239), KS_0, KS_parenright,
KC(240), KS_p,
KC(242), KS_semicolon, KS_colon,
KC(243), KS_slash, KS_question,
KC(245), KS_equal, KS_plus,
KC(246), KS_bracketright, KS_braceright,
KC(247), KS_backslash, KS_bar,
KC(249), KS_minus, KS_underscore,
KC(250), KS_bracketleft, KS_braceleft,
KC(251), KS_apostrophe, KS_quotedbl,
/* remapped Compose key (177) for LK 201 */
KC(252), KS_Cmd2, KS_Alt_L, KS_Multi_key
};
static const keysym_t lkkbd_keydesc_de[] = {
/* pos command normal shifted XXXXXXX */
KC(178), KS_Cmd2, KS_Mode_switch,
KC(191), KS_dead_tilde, KS_dead_circumflex,
KC(195), KS_y,
KC(197), KS_2, KS_quotedbl,
KC(203), KS_3, KS_section,
KC(219), KS_6, KS_ampersand,
KC(220), KS_z,
KC(224), KS_7, KS_slash,
KC(229), KS_8, KS_parenleft,
KC(232), KS_comma, KS_semicolon,
KC(234), KS_9, KS_parenright,
KC(237), KS_period, KS_colon,
KC(239), KS_0, KS_equal,
KC(242), KS_odiaeresis, KS_Odiaeresis,
KS_braceright, KS_braceleft,
KC(243), KS_minus, KS_underscore,
KC(245), KS_dead_acute, KS_dead_grave,
KC(246), KS_plus, KS_asterisk,
KC(247), KS_numbersign, KS_apostrophe,
KC(249), KS_ssharp, KS_question, KS_bar,
KC(250), KS_udiaeresis, KS_Udiaeresis,
KS_at, KS_backslash,
KC(251), KS_adiaeresis, KS_Adiaeresis,
KS_bracketright,KS_bracketleft,
/* remapped Compose key (177) for LK 201 */
KC(252), KS_Cmd2, KS_Mode_switch, KS_Multi_key
};
static const keysym_t lkkbd_keydesc_de_nodead[] = {
/* pos command normal shifted XXXXXXX */
KC(191), KS_asciitilde, KS_asciicircum,
KC(245), KS_apostrophe, KS_grave,
};
static const keysym_t lkkbd_keydesc_fr[] = {
KC(178), KS_Cmd2, KS_Mode_switch,
KC(192), KS_ampersand, KS_1,
KC(193), KS_a,
KC(194), KS_q,
KC(195), KS_w,
KC(197), KS_eacute, KS_2, KS_bar,
KC(198), KS_z,
KC(203), KS_quotedbl, KS_3,
KC(208), KS_apostrophe, KS_4,
KC(214), KS_parenleft, KS_5,
KC(219), KS_section, KS_6, KS_bracketleft,
KC(224), KS_egrave, KS_7, KS_bracketright,
KC(227), KS_comma, KS_question,
KC(229), KS_exclam, KS_8,
KC(232), KS_semicolon, KS_period,
KC(234), KS_ccedilla, KS_9, KS_braceleft,
KC(237), KS_colon, KS_slash,
KC(239), KS_agrave, KS_0, KS_braceright,
KC(242), KS_m,
KC(243), KS_equal, KS_plus,
KC(245), KS_minus, KS_underscore,
KC(246), KS_dollar, KS_asterisk,
KC(247), KS_numbersign, KS_at,
KC(249), KS_parenright, KS_degree,
KC(250), KS_dead_circumflex, KS_dead_diaeresis,
KC(251), KS_ugrave, KS_percent, KS_backslash,
/* remapped Compose key (177) for LK 201 */
KC(252), KS_Cmd2, KS_Mode_switch, KS_Multi_key
};
static const keysym_t lkkbd_keydesc_pt[] = {
KC(191), KS_backslash, KS_bar,
KC(219), KS_6, KS_quotedbl,
KC(232), KS_comma, KS_semicolon,
KC(237), KS_period, KS_colon,
KC(242), KS_ccedilla,
KC(247), KS_bracketleft, KS_braceleft,
KC(250), KS_dead_acute, KS_dead_grave,
KC(251), KS_dead_tilde, KS_dead_circumflex,
};
#define KBD_MAP(name, base, map) \
{ name, base, sizeof(map)/sizeof(keysym_t), map }
const struct wscons_keydesc lkkbd_keydesctab[] = {
KBD_MAP(KB_US, 0, lkkbd_keydesc_us),
KBD_MAP(KB_DE, KB_US, lkkbd_keydesc_de),
KBD_MAP(KB_DE | KB_NODEAD, KB_DE, lkkbd_keydesc_de_nodead),
KBD_MAP(KB_FR, KB_US, lkkbd_keydesc_fr),
KBD_MAP(KB_PT, KB_US, lkkbd_keydesc_pt),
{0, 0, 0, 0}
};
#undef KBD_MAP
#undef KC