From b2098820d69e208a10bb4cccfc88efc066ca2b27 Mon Sep 17 00:00:00 2001 From: uch Date: Sun, 12 Dec 1999 17:08:37 +0000 Subject: [PATCH] Telios keyboard support. --- sys/arch/hpcmips/conf/TX3922 | 32 +++++++++++++++++++++---------- sys/arch/hpcmips/dev/skbdkeymap.h | 29 +++++++++++++++++++++++++--- sys/arch/hpcmips/tx/tx39.c | 26 +++++++++++++++++++++---- 3 files changed, 70 insertions(+), 17 deletions(-) diff --git a/sys/arch/hpcmips/conf/TX3922 b/sys/arch/hpcmips/conf/TX3922 index cf20add75dcf..3b2f6bc65391 100644 --- a/sys/arch/hpcmips/conf/TX3922 +++ b/sys/arch/hpcmips/conf/TX3922 @@ -2,7 +2,7 @@ # Distribution kernel (TX3922 based model) kernel config file # -# $NetBSD: TX3922,v 1.2 1999/12/08 15:56:03 uch Exp $ +# $NetBSD: TX3922,v 1.3 1999/12/12 17:08:37 uch Exp $ # include "arch/hpcmips/conf/std.hpcmips" @@ -60,9 +60,23 @@ tx39uart* at txsim? txcom0 at tx39uart? slot 0 txcom1 at tx39uart? slot 1 -txcsbus* at tx39biu? platform ? +txcsbus1 at tx39biu? platform SHARP_TELIOS +txcsbus2 at tx39biu? platform VICTOR_INTERLINK + +options USE_POLL # m38813,tc5165 requires this + +# +# SHARP Telios keyboard driver +# chip select: CS1, IRQ: 3:12/4:12 +tc5165buf* at txcsbus1 iocs 1 iocsbase 0 iocssize 0x100 iocswidth 16 irq1 108 +skbd* at tc5165buf? + +# +# VICTOR InterLink keyboard driver +# chip select: CARD1 IRQ ??? +m38813c* at txcsbus2 iocs 8 iocswidth 16 iocsbase 0 iocssize 8 +skbd* at m38813c? -options USE_POLL # m38813 requires this # # TC6358TB(Plum2) # register space: CS3, @@ -87,9 +101,10 @@ plumiobus* at plum? #txisab* at txcsbus? iocs 2 iocswidth 16 irq1 103 # CARD1 io/attr connect #txisab* at txcsbus? iocs 8 iocswidth 16 irq1 103 -m38813c* at txcsbus? iocs 8 iocswidth 16 iocsbase 0 iocssize 8 irq1 103 -skbd* at m38813c? -wskbd* at skbd? mux 1 +# ISA bus support +#isa* at plumisab? +#isa* at txisab? + # USB bus support #usb* at ohci? @@ -105,13 +120,10 @@ wskbd* at skbd? mux 1 #ukbd* at uhub? port ? configuration ? interface ? #wskbd* at ukbd? console ? mux 1 -# ISA bus support -#isa* at plumisab? -#isa* at txisab? - # WS console uses SUN or VT100 terminal emulation fb* at plumvideo? wsdisplay* at fb? +wskbd* at skbd? mux 1 options WSEMUL_VT100 options WSDISPLAY_DEFAULTSCREENS=4 diff --git a/sys/arch/hpcmips/dev/skbdkeymap.h b/sys/arch/hpcmips/dev/skbdkeymap.h index 7b7338e7b2c8..28fb38740830 100644 --- a/sys/arch/hpcmips/dev/skbdkeymap.h +++ b/sys/arch/hpcmips/dev/skbdkeymap.h @@ -1,4 +1,4 @@ -/* $NetBSD: skbdkeymap.h,v 1.1 1999/12/08 15:49:18 uch Exp $ */ +/* $NetBSD: skbdkeymap.h,v 1.2 1999/12/12 17:08:37 uch Exp $ */ /* * Copyright (c) 1999, by UCHIYAMA Yasushi @@ -25,8 +25,8 @@ * SUCH DAMAGE. * */ -#define UNK -1 /* unknown */ -#define IGN -2 /* ignore */ +#define UNK 255 /* unknown */ +#define IGN 254 /* ignore */ const u_int8_t default_keymap[] = { /* 0 1 2 3 4 5 6 7 */ @@ -48,6 +48,26 @@ const u_int8_t default_keymap[] = { /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK }; +const u_int8_t tc5165_telios_jp_keymap[] = { +/* 0 1 2 3 4 5 6 7 */ +/* 0 */ 58, 15, IGN, 1, IGN, IGN, IGN, IGN, +/* 1 */ IGN, IGN, IGN, IGN, 54, 42, IGN, IGN, +/* 2 */ 31, 18, 4, IGN, IGN, 32, 45, 59, +/* 3 */ 33, 19, 5, 61, IGN, 46, 123, 60, +/* 4 */ 35, 21, 8, 64, IGN, 48, 49, 63, +/* 5 */ 17, 16, 3, IGN, 2, 30, 44, 41, +/* 6 */ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN, +/* 7 */ IGN, IGN, IGN, IGN, IGN, IGN, 56, IGN, +/* 8 */ 34, 20, 7, IGN, 6, 47, 57, 62, +/* 9 */ IGN, IGN, IGN, IGN, IGN, IGN, 29, IGN, +/*10 */ 27, 125, 13, 75, 80, 40, 115, 68, +/*11 */ 39, 26, 25, IGN, 12, 52, 53, 67, +/*12 */ 37, 24, 11, IGN, 10, 38, 51, 66, +/*13 */ 23, 22, 9, IGN, IGN, 36, 50, 65, +/*14 */ 156, 43, 14, 72, 77, IGN, IGN, 211, +/*15 */ IGN, IGN, IGN, IGN, IGN, IGN, 221, IGN +}; + const u_int8_t p7416_compaq_c_jp_keymap[] = { /* 0 1 2 3 4 5 6 7 */ /* 0 */ 38, 50, 49, 48, 47, 46, 45, 44, @@ -99,5 +119,8 @@ const struct skbd_keymap_table { {{{PLATID_WILD, PLATID_MACH_VICTOR_INTERLINK}}, m38813c_keymap, KB_JP}, + {{{PLATID_WILD, PLATID_MACH_SHARP_TELIOS}}, + tc5165_telios_jp_keymap, KB_JP}, + {{{0, 0}}, NULL, 0} }; diff --git a/sys/arch/hpcmips/tx/tx39.c b/sys/arch/hpcmips/tx/tx39.c index facd1219a6c0..ca2cb09bd632 100644 --- a/sys/arch/hpcmips/tx/tx39.c +++ b/sys/arch/hpcmips/tx/tx39.c @@ -1,4 +1,4 @@ -/* $NetBSD: tx39.c,v 1.5 1999/12/08 15:54:11 uch Exp $ */ +/* $NetBSD: tx39.c,v 1.6 1999/12/12 17:08:37 uch Exp $ */ /* * Copyright (c) 1999, by UCHIYAMA Yasushi @@ -29,6 +29,7 @@ #include "opt_tx39_debug.h" #include "m38813c.h" #include "p7416buf.h" +#include "tc5165buf.h" #include #include @@ -38,6 +39,9 @@ #include /* bootinfo */ #include /* platform */ +#include +#include + #include #include @@ -66,6 +70,9 @@ #if NM38813C > 0 #include #endif +#if NTC5165BUF > 0 +#include +#endif extern unsigned nullclkread __P((void)); extern unsigned (*clkread) __P((void)); @@ -265,6 +272,8 @@ void tx_cons_init() { int slot; +#define CONSPLATIDMATCH(p) \ + platid_match(&platid, &platid_mask_MACH_##p) #ifdef SERIALCONSSLOT slot = SERIALCONSSLOT; @@ -279,11 +288,20 @@ tx_cons_init() } } else { #if NP7416BUF > 0 - if(p7416buf_cnattach(TX39_SYSADDR_CS3)) { + if(CONSPLATIDMATCH(COMPAQ_C) && + p7416buf_cnattach(TX39_SYSADDR_CS3)) { panic("tx_cons_init: can't init console"); } -#elif NM38813C > 0 - if(m38813c_cnattach(TX39_SYSADDR_CARD1)) { +#endif +#if NM38813C > 0 + if(CONSPLATIDMATCH(VICTOR_INTERLINK) && + m38813c_cnattach(TX39_SYSADDR_CARD1)) { + panic("tx_cons_init: can't init console"); + } +#endif +#if NTC5165BUF > 0 + if(CONSPLATIDMATCH(SHARP_TELIOS) && + tc5165buf_cnattach(TX39_SYSADDR_CS1)) { panic("tx_cons_init: can't init console"); } #endif