diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1997-07-24 01:55:37 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1997-07-24 01:55:37 +0000 |
commit | e940c15ebb25269923db9a8a912727046cfffa77 (patch) | |
tree | 0e4bbd46c2d69a129bfc30bd4e1f8dce132ba64b /arch | |
parent | 79fa43ce85955f44a4b6fd7b5134743f12c225b0 (diff) |
Cleanup the architecture specifics of keyboard and PS/2 mouse drivers.
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/deskstation/hw-access.c | 34 | ||||
-rw-r--r-- | arch/mips/deskstation/setup.c | 3 | ||||
-rw-r--r-- | arch/mips/jazz/hw-access.c | 34 | ||||
-rw-r--r-- | arch/mips/jazz/setup.c | 3 | ||||
-rw-r--r-- | arch/mips/sgi/kernel/setup.c | 37 | ||||
-rw-r--r-- | arch/mips/sni/hw-access.c | 35 | ||||
-rw-r--r-- | arch/mips/sni/setup.c | 3 |
7 files changed, 145 insertions, 4 deletions
diff --git a/arch/mips/deskstation/hw-access.c b/arch/mips/deskstation/hw-access.c index 418bac5f6..8b1bd0e3b 100644 --- a/arch/mips/deskstation/hw-access.c +++ b/arch/mips/deskstation/hw-access.c @@ -5,10 +5,13 @@ * License. See the file "COPYING" in the main directory of this archive * for more details. * - * Copyright (C) 1996 by Ralf Baechle + * Copyright (C) 1996, 1997 by Ralf Baechle + * + * $Id: hw-access.c,v 1.2 1997/07/23 17:40:54 ralf Exp $ */ #include <linux/config.h> #include <linux/delay.h> +#include <linux/kbdcntrlr.h> #include <linux/kernel.h> #include <linux/linkage.h> #include <linux/types.h> @@ -194,3 +197,32 @@ struct feature deskstation_rpc44_feature = { rtc_write_data }; #endif + +static unsigned char dtc_read_input(void) +{ + return inb(KBD_DATA_REG); +} + +static void dtc_write_output(unsigned char val) +{ + outb(val, KBD_DATA_REG); +} + +static void dtc_write_command(unsigned char val) +{ + outb(val, KBD_CNTL_REG); +} + +static unsigned char dtc_read_status(void) +{ + return inb(KBD_STATUS_REG); +} + +static void dtc_rm200_keyboard_setup(void) +{ + kbd_read_input = dtc_read_input; + kbd_write_output = dtc_write_output; + kbd_write_command = dtc_write_command; + kbd_read_status = dtc_read_status; + request_region(0x60, 16, "keyboard"); +} diff --git a/arch/mips/deskstation/setup.c b/arch/mips/deskstation/setup.c index 8b70a656c..939730b91 100644 --- a/arch/mips/deskstation/setup.c +++ b/arch/mips/deskstation/setup.c @@ -6,6 +6,8 @@ * for more details. * * Copyright (C) 1996, 1997 by Ralf Baechle + * + * $Id: setup.c,v 1.2 1997/07/23 17:40:54 ralf Exp $ */ #include <linux/config.h> #include <linux/init.h> @@ -102,6 +104,7 @@ __initfunc(void deskstation_setup(void)) #endif } fd_cacheflush = deskstation_fd_cacheflush; + keyboard_setup = dtc_keyboard_setup; request_region(0x00,0x20,"dma1"); request_region(0x40,0x20,"timer"); request_region(0x70,0x10,"rtc"); diff --git a/arch/mips/jazz/hw-access.c b/arch/mips/jazz/hw-access.c index 52a61165f..482e50cb2 100644 --- a/arch/mips/jazz/hw-access.c +++ b/arch/mips/jazz/hw-access.c @@ -5,7 +5,7 @@ * License. See the file "COPYING" in the main directory of this archive * for more details. * - * Copyright (C) 1995, 1996 by Ralf Baechle + * Copyright (C) 1995, 1996, 1997 by Ralf Baechle */ #include <linux/delay.h> #include <linux/linkage.h> @@ -15,6 +15,7 @@ #include <asm/vector.h> #include <asm/jazz.h> #include <asm/jazzdma.h> +#include <asm/keyboard.h> #include <asm/pgtable.h> #include <asm/mc146818rtc.h> @@ -146,3 +147,34 @@ struct feature jazz_feature = { rtc_read_data, rtc_write_data }; + +static volatile keyboard_hardware *jazz_kh = JAZZ_KEYBOARD_ADDRESS; + +static unsigned char jazz_read_input(void) +{ + return jazz_kh->data; +} + +static void jazz_write_output(unsigned char val) +{ + jazz_kh->data = val; +} + +static void jazz_write_command(unsigned char val) +{ + jazz_kh->command = val; +} + +static unsigned char jazz_read_status(void) +{ + return jazz_kh->command; +} + +void jazz_keyboard_setup(void) +{ + kbd_read_input = jazz_read_input; + kbd_write_output = jazz_write_output; + kbd_write_command = jazz_write_command; + kbd_read_status = jazz_read_status; + request_region(0x60, 16, "keyboard"); +} diff --git a/arch/mips/jazz/setup.c b/arch/mips/jazz/setup.c index e7550e7ad..3b9924ef5 100644 --- a/arch/mips/jazz/setup.c +++ b/arch/mips/jazz/setup.c @@ -12,6 +12,7 @@ #include <linux/sched.h> #include <linux/interrupt.h> #include <asm/bootinfo.h> +#include <asm/keyboard.h> #include <asm/irq.h> #include <asm/jazz.h> #include <asm/ptrace.h> @@ -32,6 +33,7 @@ static struct irqaction irq2 = { no_action, 0, 0, "cascade", NULL, NULL}; extern asmlinkage void jazz_handle_int(void); extern asmlinkage void jazz_fd_cacheflush(const void *addr, size_t size); extern struct feature jazz_feature; +extern void jazz_keyboard_setup(void); extern void jazz_machine_restart(char *command); extern void jazz_machine_halt(void); @@ -96,6 +98,7 @@ __initfunc(void jazz_setup(void)) irq_setup = jazz_irq_setup; fd_cacheflush = jazz_fd_cacheflush; + keyboard_setup = jazz_keyboard_setup; feature = &jazz_feature; // Will go away port_base = JAZZ_PORT_BASE; isa_slot_offset = 0xe3000000; diff --git a/arch/mips/sgi/kernel/setup.c b/arch/mips/sgi/kernel/setup.c index f3e329656..04cdb6235 100644 --- a/arch/mips/sgi/kernel/setup.c +++ b/arch/mips/sgi/kernel/setup.c @@ -1,7 +1,9 @@ -/* $Id: setup.c,v 1.2 1997/06/28 22:47:44 ralf Exp $ +/* * setup.c: SGI specific setup, including init of the feature struct. * * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com) + * + * $Id: setup.c,v 1.4 1997/07/23 17:59:23 ralf Exp $ */ #ifndef __GOGOGO__ #error "... about to fuckup your Indy?" @@ -9,6 +11,8 @@ #include <linux/kernel.h> #include <linux/sched.h> +#include <asm/addrspace.h> +#include <asm/keyboard.h> #include <asm/reboot.h> #include <asm/vector.h> #include <asm/sgialib.h> @@ -26,6 +30,36 @@ extern void sgi_machine_power_off(void); struct feature sgi_feature = { }; +static volatile struct hpc_keyb *sgi_kh = (struct hpc_keyb *) (KSEG1 + 0x1fbd9800 + 64); + +static unsigned char sgi_read_input(void) +{ + return sgi_kh->data; +} + +static void sgi_write_output(unsigned char val) +{ + sgi_kh->data = val; +} + +static void sgi_write_command(unsigned char val) +{ + sgi_kh->command = val; +} + +static unsigned char sgi_read_status(void) +{ + return sgi_kh->command; +} + +static void sgi_keyboard_setup(void) +{ + kbd_read_input = sgi_read_input; + kbd_write_output = sgi_write_output; + kbd_write_command = sgi_write_command; + kbd_read_status = sgi_read_status; +} + static void sgi_irq_setup(void) { sgint_init(); @@ -52,6 +86,7 @@ void sgi_setup(void) irq_setup = sgi_irq_setup; feature = &sgi_feature; + keyboard_setup = sgi_keyboard_setup; _machine_restart = sgi_machine_restart; _machine_halt = sgi_machine_halt; diff --git a/arch/mips/sni/hw-access.c b/arch/mips/sni/hw-access.c index 39cbec410..5ffa6fdd9 100644 --- a/arch/mips/sni/hw-access.c +++ b/arch/mips/sni/hw-access.c @@ -5,9 +5,12 @@ * License. See the file "COPYING" in the main directory of this archive * for more details. * - * Copyright (C) 1996 by Ralf Baechle + * Copyright (C) 1996, 1997 by Ralf Baechle + * + * $Id: hw-access.c,v 1.2 1997/07/23 17:41:07 ralf Exp $ */ #include <linux/delay.h> +#include <linux/kbdcntrlr.h> #include <linux/kernel.h> #include <linux/linkage.h> #include <linux/types.h> @@ -15,6 +18,7 @@ #include <asm/bootinfo.h> #include <asm/cachectl.h> #include <asm/dma.h> +#include <asm/keyboard.h> #include <asm/io.h> #include <asm/irq.h> #include <asm/mc146818rtc.h> @@ -157,3 +161,32 @@ struct feature sni_rm200_pci_feature = { rtc_read_data, rtc_write_data }; + +static unsigned char sni_read_input(void) +{ + return inb(KBD_DATA_REG); +} + +static void sni_write_output(unsigned char val) +{ + outb(val, KBD_DATA_REG); +} + +static void sni_write_command(unsigned char val) +{ + outb(val, KBD_CNTL_REG); +} + +static unsigned char sni_read_status(void) +{ + return inb(KBD_STATUS_REG); +} + +void sni_rm200_keyboard_setup(void) +{ + kbd_read_input = sni_read_input; + kbd_write_output = sni_write_output; + kbd_write_command = sni_write_command; + kbd_read_status = sni_read_status; + request_region(0x60, 16, "keyboard"); +} diff --git a/arch/mips/sni/setup.c b/arch/mips/sni/setup.c index 7fa76a490..b73c857b4 100644 --- a/arch/mips/sni/setup.c +++ b/arch/mips/sni/setup.c @@ -15,6 +15,7 @@ #include <linux/timex.h> #include <linux/pci.h> #include <asm/bootinfo.h> +#include <asm/keyboard.h> #include <asm/io.h> #include <asm/irq.h> #include <asm/processor.h> @@ -36,6 +37,7 @@ static struct irqaction irq2 = { no_action, 0, 0, "cascade", NULL, NULL}; extern asmlinkage void sni_rm200_pci_handle_int(void); extern asmlinkage void sni_fd_cacheflush(const void *addr, size_t size); extern struct feature sni_rm200_pci_feature; +extern void sni_rm200_keyboard_setup(void); extern void sni_machine_restart(char *command); extern void sni_machine_halt(void); @@ -127,6 +129,7 @@ __initfunc(void sni_rm200_pci_setup(void)) fd_cacheflush = sni_fd_cacheflush; // Will go away feature = &sni_rm200_pci_feature; port_base = SNI_PORT_BASE; + keyboard_setup = sni_rm200_keyboard_setup; /* * Setup (E)ISA I/O memory access stuff |