diff --git a/Documentation/dontdiff b/Documentation/dontdiff
index 7b9551fc6fe3ffdea3523b1571da44748059d312..1380324253274149a9a08dc483490bf46775fe79 100644
--- a/Documentation/dontdiff
+++ b/Documentation/dontdiff
@@ -121,7 +121,6 @@ kxgettext
 lkc_defs.h
 lex.c*
 lex.*.c
-lk201-map.c
 logo_*.c
 logo_*_clut224.c
 logo_*_mono.c
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 6b663bec4752af5c8102c97fc2b8316e17bb9f02..14164c2b8791f00f13ae22b5c74e7b750ba7df11 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -279,7 +279,6 @@ core-$(CONFIG_MACH_DECSTATION)	+= arch/mips/dec/
 cflags-$(CONFIG_MACH_DECSTATION)+= -Iinclude/asm-mips/mach-dec
 libs-$(CONFIG_MACH_DECSTATION)	+= arch/mips/dec/prom/
 load-$(CONFIG_MACH_DECSTATION)	+= 0xffffffff80040000
-CLEAN_FILES			+= drivers/tc/lk201-map.c
 
 #
 # Wind River PPMC Board (4KC + GT64120)
diff --git a/drivers/tc/.gitignore b/drivers/tc/.gitignore
deleted file mode 100644
index acc0e1e6a650489da7fc08e78d55d6e71bc428d9..0000000000000000000000000000000000000000
--- a/drivers/tc/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-lk201-map.c
diff --git a/drivers/tc/Makefile b/drivers/tc/Makefile
index c899246bd3627ffc991f28e9ff1e2aa90f720c65..623b21063228467c85808fada2124326a6f7e3b5 100644
--- a/drivers/tc/Makefile
+++ b/drivers/tc/Makefile
@@ -5,18 +5,3 @@
 # Object file lists.
 
 obj-$(CONFIG_TC) += tc.o tc-driver.o
-obj-$(CONFIG_VT) += lk201.o lk201-map.o lk201-remap.o
-
-$(obj)/lk201-map.o: $(obj)/lk201-map.c
-
-# Uncomment if you're changing the keymap and have an appropriate
-# loadkeys version for the map. By default, we'll use the shipped
-# versions.
-# GENERATE_KEYMAP := 1
-
-ifdef GENERATE_KEYMAP
-
-$(obj)/lk201-map.c: $(obj)/%.c: $(src)/%.map
-	loadkeys --mktable $< > $@
-
-endif
diff --git a/drivers/tc/lk201-map.c_shipped b/drivers/tc/lk201-map.c_shipped
deleted file mode 100644
index 4d2aba597343b88d4eff6f8e698e918716402850..0000000000000000000000000000000000000000
--- a/drivers/tc/lk201-map.c_shipped
+++ /dev/null
@@ -1,265 +0,0 @@
-
-/* Do not edit this file! It was automatically generated by   */
-/*    loadkeys --mktable defkeymap.map > defkeymap.c          */
-
-#include <linux/types.h>
-#include <linux/keyboard.h>
-#include <linux/kd.h>
-
-u_short plain_map[NR_KEYS] = {
-	0xf200,	0xf100,	0xf101,	0xf102,	0xf103,	0xf104,	0xf105,	0xf106,
-	0xf107,	0xf108,	0xf109,	0xf10a,	0xf10b,	0xf10c,	0xf10d,	0xf11b,
-	0xf11c,	0xf110,	0xf111,	0xf112,	0xf113,	0xf060,	0xf031,	0xf032,
-	0xf033,	0xf034,	0xf035,	0xf036,	0xf037,	0xf038,	0xf039,	0xf030,
-	0xf02d,	0xf03d,	0xf07f,	0xf114,	0xf115,	0xf116,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf009,	0xfb71,	0xfb77,	0xfb65,	0xfb72,	0xfb74,
-	0xfb79,	0xfb75,	0xfb69,	0xfb6f,	0xfb70,	0xf05b,	0xf05d,	0xf201,
-	0xf117,	0xf118,	0xf119,	0xf307,	0xf308,	0xf309,	0xf30b,	0xf702,
-	0xf207,	0xfb61,	0xfb73,	0xfb64,	0xfb66,	0xfb67,	0xfb68,	0xfb6a,
-	0xfb6b,	0xfb6c,	0xf03b,	0xf027,	0xf05c,	0xf603,	0xf304,	0xf305,
-	0xf306,	0xf200,	0xf700,	0xf03e,	0xfb7a,	0xfb78,	0xfb63,	0xfb76,
-	0xfb62,	0xfb6e,	0xfb6d,	0xf02c,	0xf02e,	0xf02f,	0xf200,	0xf601,
-	0xf600,	0xf602,	0xf301,	0xf302,	0xf303,	0xf30e,	0xf200,	0xf703,
-	0xf020,	0xf200,	0xf200,	0xf300,	0xf310,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-};
-
-static u_short shift_map[NR_KEYS] = {
-	0xf200,	0xf100,	0xf101,	0xf102,	0xf103,	0xf104,	0xf105,	0xf106,
-	0xf107,	0xf108,	0xf109,	0xf10a,	0xf10b,	0xf10c,	0xf10d,	0xf203,
-	0xf11c,	0xf110,	0xf111,	0xf112,	0xf113,	0xf07e,	0xf021,	0xf040,
-	0xf023,	0xf024,	0xf025,	0xf05e,	0xf026,	0xf02a,	0xf028,	0xf029,
-	0xf05f,	0xf02b,	0xf07f,	0xf114,	0xf115,	0xf116,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf009,	0xfb51,	0xfb57,	0xfb45,	0xfb52,	0xfb54,
-	0xfb59,	0xfb55,	0xfb49,	0xfb4f,	0xfb50,	0xf07b,	0xf07d,	0xf201,
-	0xf117,	0xf20b,	0xf20a,	0xf307,	0xf308,	0xf309,	0xf30b,	0xf702,
-	0xf207,	0xfb41,	0xfb53,	0xfb44,	0xfb46,	0xfb47,	0xfb48,	0xfb4a,
-	0xfb4b,	0xfb4c,	0xf03a,	0xf022,	0xf07c,	0xf603,	0xf304,	0xf305,
-	0xf306,	0xf200,	0xf700,	0xf03c,	0xfb5a,	0xfb58,	0xfb43,	0xfb56,
-	0xfb42,	0xfb4e,	0xfb4d,	0xf03c,	0xf03e,	0xf03f,	0xf200,	0xf601,
-	0xf600,	0xf602,	0xf301,	0xf302,	0xf303,	0xf30e,	0xf200,	0xf703,
-	0xf020,	0xf200,	0xf200,	0xf300,	0xf310,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-};
-
-static u_short altgr_map[NR_KEYS] = {
-	0xf200,	0xf100,	0xf101,	0xf102,	0xf103,	0xf104,	0xf105,	0xf106,
-	0xf107,	0xf108,	0xf109,	0xf10a,	0xf10b,	0xf10c,	0xf10d,	0xf202,
-	0xf11c,	0xf110,	0xf111,	0xf112,	0xf113,	0xf200,	0xf200,	0xf040,
-	0xf200,	0xf024,	0xf200,	0xf200,	0xf07b,	0xf05b,	0xf05d,	0xf07d,
-	0xf05c,	0xf200,	0xf200,	0xf114,	0xf115,	0xf116,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xfb71,	0xfb77,	0xf918,	0xfb72,	0xfb74,
-	0xfb79,	0xfb75,	0xfb69,	0xfb6f,	0xfb70,	0xf200,	0xf07e,	0xf201,
-	0xf117,	0xf118,	0xf119,	0xf911,	0xf912,	0xf913,	0xf30b,	0xf702,
-	0xf207,	0xf914,	0xfb73,	0xf917,	0xf919,	0xfb67,	0xfb68,	0xfb6a,
-	0xfb6b,	0xfb6c,	0xf200,	0xf200,	0xf200,	0xf603,	0xf90e,	0xf90f,
-	0xf910,	0xf200,	0xf700,	0xf200,	0xfb7a,	0xfb78,	0xf916,	0xfb76,
-	0xf915,	0xfb6e,	0xfb6d,	0xf200,	0xf200,	0xf200,	0xf200,	0xf601,
-	0xf600,	0xf602,	0xf90b,	0xf90c,	0xf90d,	0xf30e,	0xf200,	0xf703,
-	0xf200,	0xf200,	0xf200,	0xf90a,	0xf310,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-};
-
-static u_short ctrl_map[NR_KEYS] = {
-	0xf200,	0xf100,	0xf101,	0xf102,	0xf103,	0xf104,	0xf105,	0xf106,
-	0xf107,	0xf108,	0xf109,	0xf10a,	0xf10b,	0xf10c,	0xf10d,	0xf204,
-	0xf11c,	0xf110,	0xf111,	0xf112,	0xf113,	0xf81b,	0xf200,	0xf000,
-	0xf01b,	0xf01c,	0xf01d,	0xf01e,	0xf01f,	0xf07f,	0xf200,	0xf200,
-	0xf01f,	0xf200,	0xf008,	0xf114,	0xf115,	0xf116,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf011,	0xf017,	0xf005,	0xf012,	0xf014,
-	0xf019,	0xf015,	0xf009,	0xf00f,	0xf010,	0xf01b,	0xf01d,	0xf201,
-	0xf117,	0xf118,	0xf119,	0xf307,	0xf308,	0xf309,	0xf30b,	0xf702,
-	0xf207,	0xf001,	0xf013,	0xf004,	0xf006,	0xf007,	0xf008,	0xf00a,
-	0xf00b,	0xf00c,	0xf200,	0xf007,	0xf01c,	0xf603,	0xf304,	0xf305,
-	0xf306,	0xf200,	0xf700,	0xf200,	0xf01a,	0xf018,	0xf003,	0xf016,
-	0xf002,	0xf00e,	0xf00d,	0xf200,	0xf20e,	0xf07f,	0xf200,	0xf601,
-	0xf600,	0xf602,	0xf301,	0xf302,	0xf303,	0xf30e,	0xf200,	0xf703,
-	0xf000,	0xf200,	0xf200,	0xf300,	0xf310,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-};
-
-static u_short shift_ctrl_map[NR_KEYS] = {
-	0xf200,	0xf100,	0xf101,	0xf102,	0xf103,	0xf104,	0xf105,	0xf106,
-	0xf107,	0xf108,	0xf109,	0xf10a,	0xf10b,	0xf10c,	0xf10d,	0xf200,
-	0xf11c,	0xf110,	0xf111,	0xf112,	0xf113,	0xf200,	0xf200,	0xf000,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf01f,	0xf200,	0xf200,	0xf114,	0xf115,	0xf116,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf011,	0xf017,	0xf005,	0xf012,	0xf014,
-	0xf019,	0xf015,	0xf009,	0xf00f,	0xf010,	0xf200,	0xf200,	0xf201,
-	0xf117,	0xf118,	0xf119,	0xf307,	0xf308,	0xf309,	0xf30b,	0xf702,
-	0xf207,	0xf001,	0xf013,	0xf004,	0xf006,	0xf007,	0xf008,	0xf00a,
-	0xf00b,	0xf00c,	0xf200,	0xf200,	0xf200,	0xf603,	0xf304,	0xf305,
-	0xf306,	0xf200,	0xf700,	0xf200,	0xf01a,	0xf018,	0xf003,	0xf016,
-	0xf002,	0xf00e,	0xf00d,	0xf200,	0xf200,	0xf200,	0xf200,	0xf601,
-	0xf600,	0xf602,	0xf301,	0xf302,	0xf303,	0xf30e,	0xf200,	0xf703,
-	0xf200,	0xf200,	0xf200,	0xf300,	0xf310,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-};
-
-static u_short alt_map[NR_KEYS] = {
-	0xf200,	0xf500,	0xf501,	0xf502,	0xf503,	0xf504,	0xf505,	0xf506,
-	0xf507,	0xf508,	0xf509,	0xf50a,	0xf50b,	0xf50c,	0xf50d,	0xf200,
-	0xf11c,	0xf510,	0xf511,	0xf512,	0xf513,	0xf01b,	0xf831,	0xf832,
-	0xf833,	0xf834,	0xf835,	0xf836,	0xf837,	0xf838,	0xf839,	0xf830,
-	0xf82d,	0xf83d,	0xf87f,	0xf114,	0xf115,	0xf116,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf809,	0xf871,	0xf877,	0xf865,	0xf872,	0xf874,
-	0xf879,	0xf875,	0xf869,	0xf86f,	0xf870,	0xf85b,	0xf85d,	0xf80d,
-	0xf117,	0xf118,	0xf119,	0xf907,	0xf908,	0xf909,	0xf30b,	0xf702,
-	0xf207,	0xf861,	0xf873,	0xf864,	0xf866,	0xf867,	0xf868,	0xf86a,
-	0xf86b,	0xf86c,	0xf83b,	0xf827,	0xf85c,	0xf603,	0xf904,	0xf905,
-	0xf906,	0xf200,	0xf700,	0xf200,	0xf87a,	0xf878,	0xf863,	0xf876,
-	0xf862,	0xf86e,	0xf86d,	0xf82c,	0xf82e,	0xf82f,	0xf200,	0xf210,
-	0xf600,	0xf211,	0xf901,	0xf902,	0xf903,	0xf30e,	0xf200,	0xf703,
-	0xf820,	0xf200,	0xf200,	0xf900,	0xf310,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-};
-
-static u_short ctrl_alt_map[NR_KEYS] = {
-	0xf200,	0xf500,	0xf501,	0xf502,	0xf503,	0xf504,	0xf505,	0xf506,
-	0xf507,	0xf508,	0xf509,	0xf50a,	0xf50b,	0xf50c,	0xf50d,	0xf200,
-	0xf11c,	0xf510,	0xf511,	0xf512,	0xf513,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf114,	0xf115,	0xf20c,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf811,	0xf817,	0xf805,	0xf812,	0xf814,
-	0xf819,	0xf815,	0xf809,	0xf80f,	0xf810,	0xf200,	0xf200,	0xf201,
-	0xf117,	0xf118,	0xf119,	0xf307,	0xf308,	0xf309,	0xf30b,	0xf702,
-	0xf207,	0xf801,	0xf813,	0xf804,	0xf806,	0xf807,	0xf808,	0xf80a,
-	0xf80b,	0xf80c,	0xf200,	0xf200,	0xf200,	0xf603,	0xf304,	0xf305,
-	0xf306,	0xf200,	0xf700,	0xf200,	0xf81a,	0xf818,	0xf803,	0xf816,
-	0xf802,	0xf80e,	0xf80d,	0xf200,	0xf200,	0xf200,	0xf200,	0xf601,
-	0xf600,	0xf602,	0xf301,	0xf302,	0xf303,	0xf30e,	0xf200,	0xf703,
-	0xf200,	0xf200,	0xf200,	0xf300,	0xf20c,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-};
-
-ushort *key_maps[MAX_NR_KEYMAPS] = {
-	plain_map, shift_map, altgr_map, 0,
-	ctrl_map, shift_ctrl_map, 0, 0,
-	alt_map, 0, 0, 0,
-	ctrl_alt_map,	0
-};
-
-unsigned int keymap_count = 7;
-
-
-/*
- * Philosophy: most people do not define more strings, but they who do
- * often want quite a lot of string space. So, we statically allocate
- * the default and allocate dynamically in chunks of 512 bytes.
- */
-
-char func_buf[] = {
-	'\033', '[', '[', 'A', 0, 
-	'\033', '[', '[', 'B', 0, 
-	'\033', '[', '[', 'C', 0, 
-	'\033', '[', '[', 'D', 0, 
-	'\033', '[', '[', 'E', 0, 
-	'\033', '[', '1', '7', '~', 0, 
-	'\033', '[', '1', '8', '~', 0, 
-	'\033', '[', '1', '9', '~', 0, 
-	'\033', '[', '2', '0', '~', 0, 
-	'\033', '[', '2', '1', '~', 0, 
-	'\033', '[', '2', '3', '~', 0, 
-	'\033', '[', '2', '4', '~', 0, 
-	'\033', '[', '2', '5', '~', 0, 
-	'\033', '[', '2', '6', '~', 0, 
-	'\033', '[', '2', '8', '~', 0, 
-	'\033', '[', '2', '9', '~', 0, 
-	'\033', '[', '3', '1', '~', 0, 
-	'\033', '[', '3', '2', '~', 0, 
-	'\033', '[', '3', '3', '~', 0, 
-	'\033', '[', '3', '4', '~', 0, 
-	'\033', '[', '1', '~', 0, 
-	'\033', '[', '2', '~', 0, 
-	'\033', '[', '3', '~', 0, 
-	'\033', '[', '4', '~', 0, 
-	'\033', '[', '5', '~', 0, 
-	'\033', '[', '6', '~', 0, 
-	'\033', '[', 'M', 0, 
-	'\033', '[', 'P', 0, 
-};
-
-
-char *funcbufptr = func_buf;
-int funcbufsize = sizeof(func_buf);
-int funcbufleft = 0;          /* space left */
-
-char *func_table[MAX_NR_FUNC] = {
-	func_buf + 0,
-	func_buf + 5,
-	func_buf + 10,
-	func_buf + 15,
-	func_buf + 20,
-	func_buf + 25,
-	func_buf + 31,
-	func_buf + 37,
-	func_buf + 43,
-	func_buf + 49,
-	func_buf + 55,
-	func_buf + 61,
-	func_buf + 67,
-	func_buf + 73,
-	func_buf + 79,
-	func_buf + 85,
-	func_buf + 91,
-	func_buf + 97,
-	func_buf + 103,
-	func_buf + 109,
-	func_buf + 115,
-	func_buf + 120,
-	func_buf + 125,
-	func_buf + 130,
-	func_buf + 135,
-	func_buf + 140,
-	func_buf + 145,
-	0,
-	0,
-	func_buf + 149,
-	0,
-};
-
-struct kbdiacruc accent_table[MAX_DIACR] = {
-	{'`', 'A', 'À'},	{'`', 'a', 'à'},
-	{'\'', 'A', 'Á'},	{'\'', 'a', 'á'},
-	{'^', 'A', 'Â'},	{'^', 'a', 'â'},
-	{'~', 'A', 'Ã'},	{'~', 'a', 'ã'},
-	{'"', 'A', 'Ä'},	{'"', 'a', 'ä'},
-	{'O', 'A', 'Å'},	{'o', 'a', 'å'},
-	{'0', 'A', 'Å'},	{'0', 'a', 'å'},
-	{'A', 'A', 'Å'},	{'a', 'a', 'å'},
-	{'A', 'E', 'Æ'},	{'a', 'e', 'æ'},
-	{',', 'C', 'Ç'},	{',', 'c', 'ç'},
-	{'`', 'E', 'È'},	{'`', 'e', 'è'},
-	{'\'', 'E', 'É'},	{'\'', 'e', 'é'},
-	{'^', 'E', 'Ê'},	{'^', 'e', 'ê'},
-	{'"', 'E', 'Ë'},	{'"', 'e', 'ë'},
-	{'`', 'I', 'Ì'},	{'`', 'i', 'ì'},
-	{'\'', 'I', 'Í'},	{'\'', 'i', 'í'},
-	{'^', 'I', 'Î'},	{'^', 'i', 'î'},
-	{'"', 'I', 'Ï'},	{'"', 'i', 'ï'},
-	{'-', 'D', 'Ð'},	{'-', 'd', 'ð'},
-	{'~', 'N', 'Ñ'},	{'~', 'n', 'ñ'},
-	{'`', 'O', 'Ò'},	{'`', 'o', 'ò'},
-	{'\'', 'O', 'Ó'},	{'\'', 'o', 'ó'},
-	{'^', 'O', 'Ô'},	{'^', 'o', 'ô'},
-	{'~', 'O', 'Õ'},	{'~', 'o', 'õ'},
-	{'"', 'O', 'Ö'},	{'"', 'o', 'ö'},
-	{'/', 'O', 'Ø'},	{'/', 'o', 'ø'},
-	{'`', 'U', 'Ù'},	{'`', 'u', 'ù'},
-	{'\'', 'U', 'Ú'},	{'\'', 'u', 'ú'},
-	{'^', 'U', 'Û'},	{'^', 'u', 'û'},
-	{'"', 'U', 'Ü'},	{'"', 'u', 'ü'},
-	{'\'', 'Y', 'Ý'},	{'\'', 'y', 'ý'},
-	{'T', 'H', 'Þ'},	{'t', 'h', 'þ'},
-	{'s', 's', 'ß'},	{'"', 'y', 'ÿ'},
-	{'s', 'z', 'ß'},	{'i', 'j', 'ÿ'},
-};
-
-unsigned int accent_table_size = 68;
diff --git a/drivers/tc/lk201-map.map b/drivers/tc/lk201-map.map
deleted file mode 100644
index 2c636b4b7823e1c66919a287596ca2a94cb45707..0000000000000000000000000000000000000000
--- a/drivers/tc/lk201-map.map
+++ /dev/null
@@ -1,356 +0,0 @@
-# Default kernel keymap. This uses 7 modifier combinations.
-keymaps 0-2,4-5,8,12
-# Change the above line into
-#	keymaps 0-2,4-6,8,12
-# in case you want the entries
-#	altgr   control keycode  83 = Boot
-#	altgr   control keycode 111 = Boot
-# below.
-#
-# In fact AltGr is used very little, and one more keymap can
-# be saved by mapping AltGr to Alt (and adapting a few entries):
-# keycode 100 = Alt
-#
-keycode   0x15 = grave		tilde
-	alt     keycode   0x15 = Escape
-	control keycode   0x15 = Meta_Escape
-keycode   0x16 = one              exclam
-	alt     keycode   0x16 = Meta_one
-keycode   0x17 = two              at               at
-	control	keycode   0x17 = nul
-	shift	control	keycode   0x17 = nul
-	alt	keycode   0x17 = Meta_two
-keycode   0x18 = three            numbersign
-	control keycode   0x18 = Escape
-	alt     keycode   0x18 = Meta_three
-keycode   0x19 = four             dollar           dollar
-	control keycode   0x19 = Control_backslash
-	alt     keycode   0x19 = Meta_four
-keycode   0x1a = five             percent
-	control keycode   0x1a = Control_bracketright
-	alt     keycode   0x1a = Meta_five
-keycode   0x1b = six              asciicircum
-	control keycode   0x1b = Control_asciicircum
-	alt     keycode   0x1b = Meta_six
-keycode   0x1c = seven            ampersand        braceleft
-	control keycode   0x1c = Control_underscore
-	alt     keycode   0x1c = Meta_seven
-keycode   0x1d = eight            asterisk         bracketleft
-	control keycode   0x1d = Delete
-	alt     keycode   0x1d = Meta_eight
-keycode  0x1e = nine             parenleft        bracketright
-	alt     keycode  0x1e = Meta_nine
-keycode  0x1f = zero             parenright       braceright
-	alt     keycode  0x1f = Meta_zero
-keycode  0x20 = minus            underscore       backslash
-	control	keycode  0x20 = Control_underscore
-	shift	control	keycode  0x20 = Control_underscore
-	alt	keycode  0x20 = Meta_minus
-keycode  0x21 = equal            plus
-	alt     keycode  0x21 = Meta_equal
-keycode  0x22 = Delete           Delete
-	control keycode  0x22 = BackSpace
-	alt     keycode  0x22 = Meta_Delete
-keycode  0x2a = Tab              Tab
-	alt     keycode  0x2a = Meta_Tab
-keycode  0x2b = q
-keycode  0x2c = w
-keycode  0x2d = e
-	altgr   keycode  0x2d = Hex_E
-keycode  0x2e = r
-keycode  0x2f = t
-keycode  0x30 = y
-keycode  0x31 = u
-keycode  0x32 = i
-keycode  0x33 = o
-keycode  0x34 = p
-keycode  0x35 = bracketleft      braceleft
-	control keycode  0x35 = Escape
-	alt     keycode  0x35 = Meta_bracketleft
-keycode  0x36 = bracketright     braceright       asciitilde
-	control keycode  0x36 = Control_bracketright
-	alt     keycode  0x36 = Meta_bracketright
-keycode  0x37 = Return
-	alt     keycode  0x37 = Meta_Control_m
-keycode  0x3f = Control
-keycode  0x41 = a
-	altgr   keycode  0x41 = Hex_A
-keycode  0x42 = s
-keycode  0x43 = d
-	altgr   keycode  0x43 = Hex_D
-keycode  0x44 = f
-	altgr   keycode  0x44 = Hex_F
-keycode  0x45 = g
-keycode  0x46 = h
-keycode  0x47 = j
-keycode  0x48 = k
-keycode  0x49 = l
-keycode  0x4a = semicolon        colon
-	alt     keycode  0x4a = Meta_semicolon
-keycode  0x4b = apostrophe       quotedbl
-	control keycode  0x4b = Control_g
-	alt     keycode  0x4b = Meta_apostrophe
-# keycode  41 = grave            asciitilde
-#	control keycode  41 = nul
-#	alt     keycode  41 = Meta_grave
-keycode  0x52 = Shift
-keycode  0x4c = backslash        bar
-	control keycode  0x4c = Control_backslash
-	alt     keycode  0x4c = Meta_backslash
-keycode  0x53 = greater	less
-keycode  0x54 = z
-keycode  0x55 = x
-keycode  0x56 = c
-	altgr   keycode  0x56 = Hex_C
-keycode  0x57 = v
-keycode  0x58 = b
-	altgr   keycode  0x58 = Hex_B
-keycode  0x59 = n
-keycode  0x5a = m
-keycode  0x5b = comma            less
-	alt     keycode  0x5b = Meta_comma
-keycode  0x5c = period           greater
-	control keycode  0x5c = Compose
-	alt     keycode  0x5c = Meta_period
-keycode  0x5d = slash            question
-	control keycode  0x5d = Delete
-	alt     keycode  0x5d = Meta_slash
-
-keycode  0x67 = Alt
-keycode  0x68 = space            space
-	control keycode  0x68 = nul
-	alt     keycode  0x68 = Meta_space
-keycode  0x40 = Caps_Lock
-keycode  0x01 = F1
-	control keycode  0x01 = F1
-	alt     keycode  0x01 = Console_1
-	control alt     keycode  0x01 = Console_1
-keycode  0x02 = F2
-	control keycode  0x02 = F2
-	alt     keycode  0x02 = Console_2
-	control alt     keycode  0x02 = Console_2
-keycode  0x03 = F3
-	control keycode  0x03 = F3
-	alt     keycode  0x03 = Console_3
-	control alt     keycode  0x03 = Console_3
-keycode  0x04 = F4
-	control keycode  0x04 = F4
-	alt     keycode  0x04 = Console_4
-	control alt     keycode  0x04 = Console_4
-keycode  0x05 = F5
-	control keycode  0x05 = F5
-	alt     keycode  0x05 = Console_5
-	control alt     keycode  0x05 = Console_5
-keycode  0x06 = F6
-	control keycode  0x06 = F6
-	alt     keycode  0x06 = Console_6
-	control alt     keycode  0x06 = Console_6
-keycode  0x07 = F7
-	control keycode  0x07 = F7
-	alt     keycode  0x07 = Console_7
-	control alt     keycode  0x07 = Console_7
-keycode  0x08 = F8
-	control keycode  0x08 = F8
-	alt     keycode  0x08 = Console_8
-	control alt     keycode  0x08 = Console_8
-keycode  0x09 = F9
-	control keycode  0x09 = F9
-	alt     keycode  0x09 = Console_9
-	control alt     keycode  0x09 = Console_9
-keycode  0x0a = F10
-	control keycode  0x0a = F10
-	alt     keycode  0x0a = Console_10
-	control alt     keycode  0x0a = Console_10
-keycode  0x0b = F11
-	control keycode  0x0b = F11
-	alt     keycode  0x0b = Console_11
-	control alt     keycode  0x0b = Console_11
-keycode  0x0c = F12
-	control keycode  0x0c = F12
-	alt     keycode  0x0c = Console_12
-	control alt     keycode  0x0c = Console_12
-keycode  0x0d = F13
-	control keycode  0x0d = F13
-	alt     keycode  0x0d = Console_13
-	control alt     keycode  0x0d = Console_13
-keycode  0x0e = F14
-	control keycode  0x0e = F14
-	alt     keycode  0x0e = Console_14
-	control alt     keycode  0x0e = Console_14
-
-keycode  0x11 = F17
-	control keycode  0x11 = F17
-	alt     keycode  0x11 = Console_17
-	control alt     keycode  0x11 = Console_17
-keycode  0x12 = F18
-	control keycode  0x12 = F18
-	alt     keycode  0x12 = Console_18
-	control alt     keycode  0x12 = Console_18
-keycode  0x13 = F19
-	control keycode  0x13 = F19
-	alt     keycode  0x13 = Console_19
-	control alt     keycode  0x13 = Console_19
-keycode  0x14 = F20
-	control keycode  0x14 = F20
-	alt     keycode  0x14 = Console_20
-	control alt     keycode  0x14 = Console_20
-
-
-keycode  0x3b = KP_7
-	alt     keycode  0x3b = Ascii_7
-	altgr   keycode  0x3b = Hex_7
-keycode  0x3c = KP_8
-	alt     keycode  0x3c = Ascii_8
-	altgr   keycode  0x3c = Hex_8
-keycode  0x3d = KP_9
-	alt     keycode  0x3d = Ascii_9
-	altgr   keycode  0x3d = Hex_9
-keycode  0x3e = KP_Subtract
-keycode  0x4e = KP_4
-	alt     keycode  0x4e = Ascii_4
-	altgr   keycode  0x4e = Hex_4
-keycode  0x4f = KP_5
-	alt     keycode  0x4f = Ascii_5
-	altgr   keycode  0x4f = Hex_5
-keycode  0x50 = KP_6
-	alt     keycode  0x50 = Ascii_6
-	altgr   keycode  0x50 = Hex_6
-keycode  0x62 = KP_1
-	alt     keycode  0x62 = Ascii_1
-	altgr   keycode  0x62 = Hex_1
-keycode  0x63 = KP_2
-	alt     keycode  0x63 = Ascii_2
-	altgr   keycode  0x63 = Hex_2
-keycode  0x64 = KP_3
-	alt     keycode  0x64 = Ascii_3
-	altgr   keycode  0x64 = Hex_3
-keycode  0x6b = KP_0
-	alt     keycode  0x6b = Ascii_0
-	altgr   keycode  0x6b = Hex_0
-keycode  0x6c = KP_Period
-#	altgr   control keycode  0x6c = Boot
-	control alt     keycode  0x6c = Boot
-keycode  0x65 = KP_Enter
-
-keycode  0x3f = Control
-
-# keycode 100 = AltGr
-
-keycode 0x23 = Find
-keycode 0x4d = Up
-keycode 0x39 = Prior
-	shift   keycode 0x39 = Scroll_Backward
-keycode 0x5f = Left
-	alt     keycode 0x5f = Decr_Console
-keycode 0x61 = Right
-	alt     keycode 0x61 = Incr_Console
-keycode 0x38 = Select
-keycode 0x60 = Down
-keycode 0x3a = Next
-	shift   keycode 0x3a = Scroll_Forward
-keycode 0x24 = Insert
-keycode 0x25 = Remove
-#	altgr   control keycode 0x25 = Boot
-	control alt     keycode 0x25 = Boot
-
-keycode 0x0f = Help      Show_Memory      Show_Registers
-	control keycode  0x0f = Show_State
-
-keycode 0x10 = Do
-
-string F1 = "\033[[A"
-string F2 = "\033[[B"
-string F3 = "\033[[C"
-string F4 = "\033[[D"
-string F5 = "\033[[E"
-string F6 = "\033[17~"
-string F7 = "\033[18~"
-string F8 = "\033[19~"
-string F9 = "\033[20~"
-string F10 = "\033[21~"
-string F11 = "\033[23~"
-string F12 = "\033[24~"
-string F13 = "\033[25~"
-string F14 = "\033[26~"
-string F15 = "\033[28~"
-string F16 = "\033[29~"
-string F17 = "\033[31~"
-string F18 = "\033[32~"
-string F19 = "\033[33~"
-string F20 = "\033[34~"
-string Find = "\033[1~"
-string Insert = "\033[2~"
-string Remove = "\033[3~"
-string Select = "\033[4~"
-string Prior = "\033[5~"
-string Next = "\033[6~"
-string Macro = "\033[M"
-string Pause = "\033[P"
-compose '`' 'A' to 'À'
-compose '`' 'a' to 'à'
-compose '\'' 'A' to 'Á'
-compose '\'' 'a' to 'á'
-compose '^' 'A' to 'Â'
-compose '^' 'a' to 'â'
-compose '~' 'A' to 'Ã'
-compose '~' 'a' to 'ã'
-compose '"' 'A' to 'Ä'
-compose '"' 'a' to 'ä'
-compose 'O' 'A' to 'Å'
-compose 'o' 'a' to 'å'
-compose '0' 'A' to 'Å'
-compose '0' 'a' to 'å'
-compose 'A' 'A' to 'Å'
-compose 'a' 'a' to 'å'
-compose 'A' 'E' to 'Æ'
-compose 'a' 'e' to 'æ'
-compose ',' 'C' to 'Ç'
-compose ',' 'c' to 'ç'
-compose '`' 'E' to 'È'
-compose '`' 'e' to 'è'
-compose '\'' 'E' to 'É'
-compose '\'' 'e' to 'é'
-compose '^' 'E' to 'Ê'
-compose '^' 'e' to 'ê'
-compose '"' 'E' to 'Ë'
-compose '"' 'e' to 'ë'
-compose '`' 'I' to 'Ì'
-compose '`' 'i' to 'ì'
-compose '\'' 'I' to 'Í'
-compose '\'' 'i' to 'í'
-compose '^' 'I' to 'Î'
-compose '^' 'i' to 'î'
-compose '"' 'I' to 'Ï'
-compose '"' 'i' to 'ï'
-compose '-' 'D' to 'Ð'
-compose '-' 'd' to 'ð'
-compose '~' 'N' to 'Ñ'
-compose '~' 'n' to 'ñ'
-compose '`' 'O' to 'Ò'
-compose '`' 'o' to 'ò'
-compose '\'' 'O' to 'Ó'
-compose '\'' 'o' to 'ó'
-compose '^' 'O' to 'Ô'
-compose '^' 'o' to 'ô'
-compose '~' 'O' to 'Õ'
-compose '~' 'o' to 'õ'
-compose '"' 'O' to 'Ö'
-compose '"' 'o' to 'ö'
-compose '/' 'O' to 'Ø'
-compose '/' 'o' to 'ø'
-compose '`' 'U' to 'Ù'
-compose '`' 'u' to 'ù'
-compose '\'' 'U' to 'Ú'
-compose '\'' 'u' to 'ú'
-compose '^' 'U' to 'Û'
-compose '^' 'u' to 'û'
-compose '"' 'U' to 'Ü'
-compose '"' 'u' to 'ü'
-compose '\'' 'Y' to 'Ý'
-compose '\'' 'y' to 'ý'
-compose 'T' 'H' to 'Þ'
-compose 't' 'h' to 'þ'
-compose 's' 's' to 'ß'
-compose '"' 'y' to 'ÿ'
-compose 's' 'z' to 'ß'
-compose 'i' 'j' to 'ÿ'
diff --git a/drivers/tc/lk201-remap.c b/drivers/tc/lk201-remap.c
deleted file mode 100644
index d39098c2720ed584db4cfafe1573eba0b69e041d..0000000000000000000000000000000000000000
--- a/drivers/tc/lk201-remap.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Keyboard mappings for DEC LK201/401/501 keyboards
- *
- * 17.05.99 Michael Engel (engel@unix-ag.org)
- *
- * DEC US keyboards generate keycodes in the range 0x55 - 0xfb
- *
- * This conflicts with Linux scancode conventions which define
- * 0x00-0x7f as "normal" and 0x80-0xff as "shifted" scancodes, so we
- * have to remap the keycodes to 0x00-0x7f with the scancodeRemap
- * array. The generated scancode is simply the number of the key counted
- * from the left upper to the right lower corner of the keyboard ...
- *
- * These scancodes are then being remapped (I hope ;-)) with the
- * lk501*map[] arrays which define scancode -> Linux code mapping
- *
- * Oh man is this horrible ;-)
- *
- * Scancodes with dual labels exist for keyboards as follows:
- *
- * code:  left label          / right label
- *
- * 0x73:  LKx01, LK421        / LK443, LK444
- * 0x74:  LKx01, LK421        / LK443, LK444
- * 0x7c:  LKx01, LK421        / LK443, LK444
- * 0x8a:  LKx01, LK421        / LK443, LK444
- * 0x8b:  LKx01, LK421        / LK443, LK444
- * 0x8c:  LKx01, LK421        / LK443, LK444
- * 0x8d:  LKx01, LK421        / LK443, LK444
- * 0x8e:  LKx01, LK421        / LK443, LK444
- * 0x8f:  LKx01, LK421        / LK443, LK444
- * 0x9c:  LKx01, LK421        / LK443, LK444
- * 0xa1:  LKx01, LK421        / LK443, LK444
- * 0xa2:  LKx01, LK421        / LK443, LK444
- * 0xa3:  LKx01, LK421        / LK443, LK444
- * 0xa4:  LKx01, LK421        / LK443, LK444
- * 0xad:         LK421        / LK443, LK444
- * 0xc9:  LKx01, LK421, LK443 /        LK444
- * 0xf7:  LKx01,        LK443 /        LK444
- */
-
-unsigned char scancodeRemap[256] = {
-/* ----- 								*/
-/*  0 */ 0,		0,		0,		0,
-/* ----- 								*/
-/*  4 */ 0,		0,		0,		0,
-/* ----- 								*/
-/*  8 */ 0,		0,		0,		0,
-/* ----- 								*/
-/*  c */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 10 */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 14 */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 18 */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 1c */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 20 */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 24 */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 28 */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 2c */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 30 */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 34 */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 38 */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 3c */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 40 */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 44 */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 48 */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 4c */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 50 */ 0,		0,		0,		0,
-/* ----- 	 	ESC		F1		F2 		*/
-/* 54 */ 0,		0,		0x01,  		0x02,
-/* ----- F3		F4		F5				*/
-/* 58 */ 0x03,  	0x04,		0x05,		0,
-/* ----- 								*/
-/* 5c */ 0,		0,		0,		0,
-/* ----- 								*/
-/* 60 */ 0,		0,		0,		0,
-/* ----- F6		F7		F8		F9		*/
-/* 64 */ 0x06,		0x07,		0x08,		0x09,
-/* ----- F10								*/
-/* 68 */ 0x0a,		0,		0,		0,
-/* ----- 								*/
-/* 6c */ 0,		0,		0,		0,
-/* ----- 		F11   		F12		F13/PRNT SCRN	*/
-/* 70 */ 0,		0x0b,  		0x0c,		0x0d,
-/* ----- F14/SCRL LCK							*/
-/* 74 */ 0x0e,		0,		0,		0,
-/* ----- 								*/
-/* 78 */ 0,		0,		0,		0,
-/* ----- HELP/PAUSE	DO						*/
-/* 7c */ 0x0f,		0x10,		0,		0,
-/* ----- F17		F18		F19		F20		*/
-/* 80 */ 0x11,		0x12,		0x13,		0x14,
-/* ----- 								*/
-/* 84 */ 0,		0,		0,		0,
-/* ----- 				FIND/INSERT	INSERT/HOME	*/
-/* 88 */ 0,		0,		0x23,		0x24,
-/* ----- REMOVE/PG UP	SELECT/DELETE	PREVIOUS/END	NEXT/PG DN	*/
-/* 8c */ 0x25,		0x38,		0x39,		0x3a,
-/* ----- 				KP 0				*/
-/* 90 */ 0,		0,		0x6b,		0,
-/* ----- KP .		KP ENTER	KP 1		KP 2		*/
-/* 94 */ 0x6c,		0x65,		0x62,		0x63,
-/* ----- KP 3		KP 4		KP 5		KP 6		*/
-/* 98 */ 0x64,		0x4e,		0x4f,		0x50,
-/* ----- KP ,/KP +	KP 7		KP 8		KP 9		*/
-/* 9c */ 0x51,		0x3b,		0x3c,		0x3d,
-/* ----- KP -		KP F1/NUM LCK	KP F2/KP /	KP F3/KP *	*/
-/* a0 */ 0x3e,		0x26,		0x27,		0x28,
-/* ----- KP F4/KP -					LEFT		*/
-/* a4 */ 0x29,		0,		0,		0x5f,
-/* ----- RIGHT		DOWN		UP		SHIFT Rt	*/
-/* a8 */ 0x61,		0x60, 		0x4d,		0x5e,
-/* ----- ALT		COMP Rt/CTRL Rt	SHIFT		CONTROL		*/
-/* ac */ 0,		0,		0x52,		0x3f,
-/* ----- CAPS		COMPOSE		ALT Rt				*/
-/* b0 */ 0x40,		0x67,		0,		0,
-/* ----- 								*/
-/* b4 */ 0,		0,		0,		0,
-/* ----- 								*/
-/* b8 */ 0,		0,		0,		0,
-/* ----- BKSP		RET		TAB		`		*/
-/* bc */ 0x22,		0x37,		0x2a,		0x15,
-/* ----- 1		q		a		z		*/
-/* c0 */ 0x16,		0x2b,		0x41,		0x54,
-/* ----- 		2		w		s		*/
-/* c4 */ 0,		0x17,		0x2c,		0x42,
-/* ----- x		</\\				3		*/
-/* c8 */ 0x55,		0x53,		0,		0x18,
-/* ----- e		d		c				*/
-/* cc */ 0x2d,		0x43,		0x56,		0,
-/* ----- 4		r		f		v		*/
-/* d0 */ 0x19,		0x2e,		0x44,		0x57,
-/* ----- SPACE				5		t		*/
-/* d4 */ 0x68,		0,		0x1a,		0x2f,
-/* ----- g		b				6		*/
-/* d8 */ 0x45,		0x58,		0,		0x1b,
-/* ----- y		h		n				*/
-/* dc */ 0x30,		0x46,		0x59,		0,
-/* ----- 7		u		j		m		*/
-/* e0 */ 0x1c,		0x31,		0x47,		0x5a,
-/* ----- 		8		i		k		*/
-/* e4 */ 0,		0x1d,		0x32,		0x48,
-/* ----- ,				9		o		*/
-/* e8 */ 0x5b,		0,		0x1e,		0x33,
-/* ----- l		.				0		*/
-/* ec */ 0x49,		0x5c,		0,		0x1f,
-/* ----- p				;		/		*/
-/* f0 */ 0x34,		0,		0x4a,		0x5d,
-/* ----- 		=		]		\\/\'		*/
-/* f4 */ 0,		0x21,		0x36,		0x4c,
-/* ----- 		-		[		\'		*/
-/* f8 */ 0,		0x20,		0x35,		0x4b,
-/* ----- 								*/
-/* fc */ 0,		0,		0,		0,
-};
-
diff --git a/drivers/tc/lk201.c b/drivers/tc/lk201.c
deleted file mode 100644
index a90c255f079d40477ff56a287353af51117117c0..0000000000000000000000000000000000000000
--- a/drivers/tc/lk201.c
+++ /dev/null
@@ -1,439 +0,0 @@
-/*
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1999-2002 Harald Koerfgen <hkoerfg@web.de>
- * Copyright (C) 2001, 2002, 2003, 2004  Maciej W. Rozycki
- */
-
-
-#include <linux/errno.h>
-#include <linux/tty.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/delay.h>
-#include <linux/kbd_ll.h>
-#include <linux/kbd_kern.h>
-#include <linux/vt_kern.h>
-
-#include <asm/keyboard.h>
-#include <asm/dec/tc.h>
-#include <asm/dec/machtype.h>
-#include <asm/dec/serial.h>
-
-#include "lk201.h"
-
-/*
- * Only handle DECstations that have an LK201 interface.
- * Maxine uses LK501 at the Access.Bus and various DECsystems
- * have no keyboard interface at all.
- */
-#define LK_IFACE	(mips_machtype == MACH_DS23100    || \
-			 mips_machtype == MACH_DS5000_200 || \
-			 mips_machtype == MACH_DS5000_1XX || \
-			 mips_machtype == MACH_DS5000_2X0)
-/*
- * These use the Z8530 SCC.  Others use the DZ11.
- */
-#define LK_IFACE_ZS	(mips_machtype == MACH_DS5000_1XX || \
-			 mips_machtype == MACH_DS5000_2X0)
-
-/* Simple translation table for the SysRq keys */
-
-#ifdef CONFIG_MAGIC_SYSRQ
-/*
- * Actually no translation at all, at least until we figure out
- * how to define SysRq for LK201 and friends. --macro
- */
-unsigned char lk201_sysrq_xlate[128];
-unsigned char *kbd_sysrq_xlate = lk201_sysrq_xlate;
-
-unsigned char kbd_sysrq_key = -1;
-#endif
-
-#define KEYB_LINE	3
-
-static int __init lk201_init(void *);
-static void __init lk201_info(void *);
-static void lk201_rx_char(unsigned char, unsigned char);
-
-static struct dec_serial_hook lk201_hook = {
-	.init_channel	= lk201_init,
-	.init_info	= lk201_info,
-	.rx_char	= NULL,
-	.poll_rx_char	= NULL,
-	.poll_tx_char	= NULL,
-	.cflags		= B4800 | CS8 | CSTOPB | CLOCAL,
-};
-
-/*
- * This is used during keyboard initialisation
- */
-static unsigned char lk201_reset_string[] = {
-	LK_CMD_SET_DEFAULTS,
-	LK_CMD_MODE(LK_MODE_RPT_DOWN, 1),
-	LK_CMD_MODE(LK_MODE_RPT_DOWN, 2),
-	LK_CMD_MODE(LK_MODE_RPT_DOWN, 3),
-	LK_CMD_MODE(LK_MODE_RPT_DOWN, 4),
-	LK_CMD_MODE(LK_MODE_DOWN_UP, 5),
-	LK_CMD_MODE(LK_MODE_DOWN_UP, 6),
-	LK_CMD_MODE(LK_MODE_RPT_DOWN, 7),
-	LK_CMD_MODE(LK_MODE_RPT_DOWN, 8),
-	LK_CMD_MODE(LK_MODE_RPT_DOWN, 9),
-	LK_CMD_MODE(LK_MODE_RPT_DOWN, 10),
-	LK_CMD_MODE(LK_MODE_RPT_DOWN, 11),
-	LK_CMD_MODE(LK_MODE_RPT_DOWN, 12),
-	LK_CMD_MODE(LK_MODE_DOWN, 13),
-	LK_CMD_MODE(LK_MODE_RPT_DOWN, 14),
-	LK_CMD_DIS_KEYCLK,
-	LK_CMD_ENB_BELL, LK_PARAM_VOLUME(4),
-};
-
-static void *lk201_handle;
-
-static int lk201_send(unsigned char ch)
-{
-	if (lk201_hook.poll_tx_char(lk201_handle, ch)) {
-		printk(KERN_ERR "lk201: transmit timeout\n");
-		return -EIO;
-	}
-	return 0;
-}
-
-static inline int lk201_get_id(void)
-{
-	return lk201_send(LK_CMD_REQ_ID);
-}
-
-static int lk201_reset(void)
-{
-	int i, r;
-
-	for (i = 0; i < sizeof(lk201_reset_string); i++) {
-		r = lk201_send(lk201_reset_string[i]);
-		if (r < 0)
-			return r;
-	}
-	return 0;
-}
-
-static void lk201_report(unsigned char id[6])
-{
-	char *report = "lk201: keyboard attached, ";
-
-	switch (id[2]) {
-	case LK_STAT_PWRUP_OK:
-		printk(KERN_INFO "%sself-test OK\n", report);
-		break;
-	case LK_STAT_PWRUP_KDOWN:
-		/* The keyboard will resend the power-up ID
-		   after all keys are released, so we don't
-		   bother handling the error specially.  Still
-		   there may be a short-circuit inside.
-		 */
-		printk(KERN_ERR "%skey down (stuck?), code: 0x%02x\n",
-		       report, id[3]);
-		break;
-	case LK_STAT_PWRUP_ERROR:
-		printk(KERN_ERR "%sself-test failure\n", report);
-		break;
-	default:
-		printk(KERN_ERR "%sunknown error: 0x%02x\n",
-		       report, id[2]);
-	}
-}
-
-static void lk201_id(unsigned char id[6])
-{
-	/*
-	 * Report whether there is an LK201 or an LK401
-	 * The LK401 has ALT keys...
-	 */
-	switch (id[4]) {
-	case 1:
-		printk(KERN_INFO "lk201: LK201 detected\n");
-		break;
-	case 2:
-		printk(KERN_INFO "lk201: LK401 detected\n");
-		break;
-	case 3:
-		printk(KERN_INFO "lk201: LK443 detected\n");
-		break;
-	case 4:
-		printk(KERN_INFO "lk201: LK421 detected\n");
-		break;
-	default:
-		printk(KERN_WARNING
-		       "lk201: unknown keyboard detected, ID %d\n", id[4]);
-		printk(KERN_WARNING "lk201: ... please report to "
-		       "<linux-mips@linux-mips.org>\n");
-	}
-}
-
-#define DEFAULT_KEYB_REP_DELAY	(250/5)	/* [5ms] */
-#define DEFAULT_KEYB_REP_RATE	30	/* [cps] */
-
-static struct kbd_repeat kbdrate = {
-	DEFAULT_KEYB_REP_DELAY,
-	DEFAULT_KEYB_REP_RATE
-};
-
-static void parse_kbd_rate(struct kbd_repeat *r)
-{
-	if (r->delay <= 0)
-		r->delay = kbdrate.delay;
-	if (r->rate <= 0)
-		r->rate = kbdrate.rate;
-
-	if (r->delay < 5)
-		r->delay = 5;
-	if (r->delay > 630)
-		r->delay = 630;
-	if (r->rate < 12)
-		r->rate = 12;
-	if (r->rate > 127)
-		r->rate = 127;
-	if (r->rate == 125)
-		r->rate = 124;
-}
-
-static int write_kbd_rate(struct kbd_repeat *rep)
-{
-	int delay, rate;
-	int i;
-
-	delay = rep->delay / 5;
-	rate = rep->rate;
-	for (i = 0; i < 4; i++) {
-		if (lk201_hook.poll_tx_char(lk201_handle,
-					    LK_CMD_RPT_RATE(i)))
-			return 1;
-		if (lk201_hook.poll_tx_char(lk201_handle,
-					    LK_PARAM_DELAY(delay)))
-			return 1;
-		if (lk201_hook.poll_tx_char(lk201_handle,
-					    LK_PARAM_RATE(rate)))
-			return 1;
-	}
-	return 0;
-}
-
-static int lk201_kbd_rate(struct kbd_repeat *rep)
-{
-	if (rep == NULL)
-		return -EINVAL;
-
-	parse_kbd_rate(rep);
-
-	if (write_kbd_rate(rep)) {
-		memcpy(rep, &kbdrate, sizeof(struct kbd_repeat));
-		return -EIO;
-	}
-
-	memcpy(&kbdrate, rep, sizeof(struct kbd_repeat));
-
-	return 0;
-}
-
-static void lk201_kd_mksound(unsigned int hz, unsigned int ticks)
-{
-	if (!ticks)
-		return;
-
-	/*
-	 * Can't set frequency and we "approximate"
-	 * duration by volume. ;-)
-	 */
-	ticks /= HZ / 32;
-	if (ticks > 7)
-		ticks = 7;
-	ticks = 7 - ticks;
-
-	if (lk201_hook.poll_tx_char(lk201_handle, LK_CMD_ENB_BELL))
-		return;
-	if (lk201_hook.poll_tx_char(lk201_handle, LK_PARAM_VOLUME(ticks)))
-		return;
-	if (lk201_hook.poll_tx_char(lk201_handle, LK_CMD_BELL))
-		return;
-}
-
-void kbd_leds(unsigned char leds)
-{
-	unsigned char l = 0;
-
-	if (!lk201_handle)		/* FIXME */
-		return;
-
-	/* FIXME -- Only Hold and Lock LEDs for now. --macro */
-	if (leds & LED_SCR)
-		l |= LK_LED_HOLD;
-	if (leds & LED_CAP)
-		l |= LK_LED_LOCK;
-
-	if (lk201_hook.poll_tx_char(lk201_handle, LK_CMD_LEDS_ON))
-		return;
-	if (lk201_hook.poll_tx_char(lk201_handle, LK_PARAM_LED_MASK(l)))
-		return;
-	if (lk201_hook.poll_tx_char(lk201_handle, LK_CMD_LEDS_OFF))
-		return;
-	if (lk201_hook.poll_tx_char(lk201_handle, LK_PARAM_LED_MASK(~l)))
-		return;
-}
-
-int kbd_setkeycode(unsigned int scancode, unsigned int keycode)
-{
-	return -EINVAL;
-}
-
-int kbd_getkeycode(unsigned int scancode)
-{
-	return -EINVAL;
-}
-
-int kbd_translate(unsigned char scancode, unsigned char *keycode,
-		  char raw_mode)
-{
-	*keycode = scancode;
-	return 1;
-}
-
-char kbd_unexpected_up(unsigned char keycode)
-{
-	return 0x80;
-}
-
-static void lk201_rx_char(unsigned char ch, unsigned char fl)
-{
-	static unsigned char id[6];
-	static int id_i;
-
-	static int shift_state = 0;
-	static int prev_scancode;
-	unsigned char c = scancodeRemap[ch];
-
-	if (fl != TTY_NORMAL && fl != TTY_OVERRUN) {
-		printk(KERN_ERR "lk201: keyboard receive error: 0x%02x\n", fl);
-		return;
-	}
-
-	/* Assume this is a power-up ID. */
-	if (ch == LK_STAT_PWRUP_ID && !id_i) {
-		id[id_i++] = ch;
-		return;
-	}
-
-	/* Handle the power-up sequence. */
-	if (id_i) {
-		id[id_i++] = ch;
-		if (id_i == 4) {
-			/* OK, the power-up concluded. */
-			lk201_report(id);
-			if (id[2] == LK_STAT_PWRUP_OK)
-				lk201_get_id();
-			else {
-				id_i = 0;
-				printk(KERN_ERR "lk201: keyboard power-up "
-				       "error, skipping initialization\n");
-			}
-		} else if (id_i == 6) {
-			/* We got the ID; report it and start operation. */
-			id_i = 0;
-			lk201_id(id);
-			lk201_reset();
-		}
-		return;
-	}
-
-	/* Everything else is a scancode/status response. */
-	id_i = 0;
-	switch (ch) {
-	case LK_STAT_RESUME_ERR:
-	case LK_STAT_ERROR:
-	case LK_STAT_INHIBIT_ACK:
-	case LK_STAT_TEST_ACK:
-	case LK_STAT_MODE_KEYDOWN:
-	case LK_STAT_MODE_ACK:
-		break;
-	case LK_KEY_LOCK:
-		shift_state ^= LK_LOCK;
-		handle_scancode(c, (shift_state & LK_LOCK) ? 1 : 0);
-		break;
-	case LK_KEY_SHIFT:
-		shift_state ^= LK_SHIFT;
-		handle_scancode(c, (shift_state & LK_SHIFT) ? 1 : 0);
-		break;
-	case LK_KEY_CTRL:
-		shift_state ^= LK_CTRL;
-		handle_scancode(c, (shift_state & LK_CTRL) ? 1 : 0);
-		break;
-	case LK_KEY_COMP:
-		shift_state ^= LK_COMP;
-		handle_scancode(c, (shift_state & LK_COMP) ? 1 : 0);
-		break;
-	case LK_KEY_RELEASE:
-		if (shift_state & LK_SHIFT)
-			handle_scancode(scancodeRemap[LK_KEY_SHIFT], 0);
-		if (shift_state & LK_CTRL)
-			handle_scancode(scancodeRemap[LK_KEY_CTRL], 0);
-		if (shift_state & LK_COMP)
-			handle_scancode(scancodeRemap[LK_KEY_COMP], 0);
-		if (shift_state & LK_LOCK)
-			handle_scancode(scancodeRemap[LK_KEY_LOCK], 0);
-		shift_state = 0;
-		break;
-	case LK_KEY_REPEAT:
-		handle_scancode(prev_scancode, 1);
-		break;
-	default:
-		prev_scancode = c;
-		handle_scancode(c, 1);
-		break;
-	}
-	tasklet_schedule(&keyboard_tasklet);
-}
-
-static void __init lk201_info(void *handle)
-{
-}
-
-static int __init lk201_init(void *handle)
-{
-	/* First install handlers. */
-	lk201_handle = handle;
-	kbd_rate = lk201_kbd_rate;
-	kd_mksound = lk201_kd_mksound;
-
-	lk201_hook.rx_char = lk201_rx_char;
-
-	/* Then just issue a reset -- the handlers will do the rest. */
-	lk201_send(LK_CMD_POWER_UP);
-
-	return 0;
-}
-
-void __init kbd_init_hw(void)
-{
-	/* Maxine uses LK501 at the Access.Bus. */
-	if (!LK_IFACE)
-		return;
-
-	printk(KERN_INFO "lk201: DECstation LK keyboard driver v0.05.\n");
-
-	if (LK_IFACE_ZS) {
-		/*
-		 * kbd_init_hw() is being called before
-		 * rs_init() so just register the kbd hook
-		 * and let zs_init do the rest :-)
-		 */
-		if (!register_dec_serial_hook(KEYB_LINE, &lk201_hook))
-			unregister_dec_serial_hook(KEYB_LINE);
-	} else {
-		/*
-		 * TODO: modify dz.c to allow similar hooks
-		 * for LK201 handling on DS2100, DS3100, and DS5000/200
-		 */
-		printk(KERN_ERR "lk201: support for DZ11 not yet ready.\n");
-	}
-}
diff --git a/drivers/tc/lk201.h b/drivers/tc/lk201.h
deleted file mode 100644
index 99f3203c41b86c80d87c60de28cd1ff83425a12a..0000000000000000000000000000000000000000
--- a/drivers/tc/lk201.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- *	Commands to the keyboard processor
- */
-
-#define LK_PARAM		0x80	/* start/end parameter list */
-
-#define LK_CMD_RESUME		0x8b	/* resume transmission to the host */
-#define LK_CMD_INHIBIT		0x89	/* stop transmission to the host */
-#define LK_CMD_LEDS_ON		0x13	/* light LEDs */
-					/* 1st param: led bitmask */
-#define LK_CMD_LEDS_OFF		0x11	/* turn off LEDs */
-					/* 1st param: led bitmask */
-#define LK_CMD_DIS_KEYCLK	0x99	/* disable the keyclick */
-#define LK_CMD_ENB_KEYCLK	0x1b	/* enable the keyclick */
-					/* 1st param: volume */
-#define LK_CMD_DIS_CTLCLK	0xb9	/* disable the Ctrl keyclick */
-#define LK_CMD_ENB_CTLCLK	0xbb	/* enable the Ctrl keyclick */
-#define LK_CMD_SOUND_CLK	0x9f	/* emit a keyclick */
-#define LK_CMD_DIS_BELL		0xa1	/* disable the bell */
-#define LK_CMD_ENB_BELL		0x23	/* enable the bell */
-					/* 1st param: volume */
-#define LK_CMD_BELL		0xa7	/* emit a bell */
-#define LK_CMD_TMP_NORPT	0xd1	/* disable typematic */
-					/* for the currently pressed key */
-#define LK_CMD_ENB_RPT		0xe3	/* enable typematic */
-					/* for RPT_DOWN groups */
-#define LK_CMD_DIS_RPT		0xe1	/* disable typematic */
-					/* for RPT_DOWN groups */
-#define LK_CMD_RPT_TO_DOWN	0xd9	/* set RPT_DOWN groups to DOWN */
-#define LK_CMD_REQ_ID		0xab	/* request the keyboard ID */
-#define LK_CMD_POWER_UP		0xfd	/* init power-up sequence */
-#define LK_CMD_TEST_MODE	0xcb	/* enter the factory test mode */
-#define LK_CMD_TEST_EXIT	0x80	/* exit the factory test mode */
-#define LK_CMD_SET_DEFAULTS	0xd3	/* set power-up defaults */
-
-#define LK_CMD_MODE(m,div)	(LK_PARAM|(((div)&0xf)<<3)|(((m)&0x3)<<1))
-					/* select the repeat mode */
-					/* for the selected key group */
-#define LK_CMD_MODE_AR(m,div)	((((div)&0xf)<<3)|(((m)&0x3)<<1))
-					/* select the repeat mode */
-					/* and the repeat register */
-					/* for the selected key group */
-					/* 1st param: register number */
-#define LK_CMD_RPT_RATE(r)	(0x78|(((r)&0x3)<<1))
-					/* set the delay and repeat rate */
-					/* for the selected repeat register */
-					/* 1st param: initial delay */
-					/* 2nd param: repeat rate */
-
-/* there are 4 leds, represent them in the low 4 bits of a byte */
-#define LK_PARAM_LED_MASK(ledbmap)	(LK_PARAM|((ledbmap)&0xf))
-#define LK_LED_WAIT		0x1	/* Wait LED */
-#define LK_LED_COMP		0x2	/* Compose LED */
-#define LK_LED_LOCK		0x4	/* Lock LED */
-#define LK_LED_HOLD		0x8	/* Hold Screen LED */
-
-/* max volume is 0, lowest is 0x7 */
-#define LK_PARAM_VOLUME(v)		(LK_PARAM|((v)&0x7))
-
-/* mode set command details, div is a key group number */
-#define LK_MODE_DOWN		0x0	/* make only */
-#define LK_MODE_RPT_DOWN	0x1	/* make and typematic */
-#define LK_MODE_DOWN_UP		0x3	/* make and release */
-
-/* there are 4 repeat registers */
-#define LK_PARAM_AR(r)		(LK_PARAM|((v)&0x3))
-
-/*
- * Mappings between key groups and keycodes are as follows:
- *
- *  1: 0xbf - 0xff -- alphanumeric,
- *  2: 0x91 - 0xa5 -- numeric keypad,
- *  3: 0xbc        -- Backspace,
- *  4: 0xbd - 0xbe -- Tab, Return,
- *  5: 0xb0 - 0xb2 -- Lock, Compose Character,
- *  6: 0xad - 0xaf -- Ctrl, Shift,
- *  7: 0xa6 - 0xa8 -- Left Arrow, Right Arrow,
- *  8: 0xa9 - 0xac -- Up Arrow, Down Arrow, Right Shift,
- *  9: 0x88 - 0x90 -- editor keypad,
- * 10: 0x56 - 0x62 -- F1 - F5,
- * 11: 0x63 - 0x6e -- F6 - F10,
- * 12: 0x6f - 0x7a -- F11 - F14,
- * 13: 0x7b - 0x7d -- Help, Do,
- * 14: 0x7e - 0x87 -- F17 - F20.
- *
- * Notes:
- * 1. Codes in the 0x00 - 0x40 range are reserved.
- * 2. The assignment of the 0x41 - 0x55 range is undiscovered, probably 10.
- */
-
-/* delay is 5 - 630 ms; 0x00 and 0x7f are reserved */
-#define LK_PARAM_DELAY(t)	((t)&0x7f)
-
-/* rate is 12 - 127 Hz; 0x00 - 0x0b and 0x7d (power-up!) are reserved */
-#define LK_PARAM_RATE(r)	(LK_PARAM|((r)&0x7f))
-
-#define LK_SHIFT 1<<0
-#define LK_CTRL 1<<1
-#define LK_LOCK 1<<2
-#define LK_COMP 1<<3
-
-#define LK_KEY_SHIFT		0xae
-#define LK_KEY_CTRL		0xaf
-#define LK_KEY_LOCK		0xb0
-#define LK_KEY_COMP		0xb1
-
-#define LK_KEY_RELEASE		0xb3	/* all keys released */
-#define LK_KEY_REPEAT		0xb4	/* repeat the last key */
-
-/* status responses */
-#define LK_STAT_RESUME_ERR	0xb5	/* keystrokes lost while inhibited */
-#define LK_STAT_ERROR		0xb6	/* an invalid command received */
-#define LK_STAT_INHIBIT_ACK	0xb7	/* transmission inhibited */
-#define LK_STAT_TEST_ACK	0xb8	/* the factory test mode entered */
-#define LK_STAT_MODE_KEYDOWN	0xb9	/* a key is down on a change */
-					/* to the DOWN_UP mode; */
-					/* the keycode follows */
-#define LK_STAT_MODE_ACK	0xba	/* the mode command succeeded */
-
-#define LK_STAT_PWRUP_ID	0x01	/* the power-up response start mark */
-#define LK_STAT_PWRUP_OK	0x00	/* the power-up self test OK */
-#define LK_STAT_PWRUP_KDOWN	0x3d	/* a key was down during the test */
-#define LK_STAT_PWRUP_ERROR	0x3e	/* keyboard self test failure */
-
-extern unsigned char scancodeRemap[256];