public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Q40 input api support.
@ 2002-01-31 18:19 James Simmons
  2002-01-31 18:47 ` Info on dn_keyb.c James Simmons
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: James Simmons @ 2002-01-31 18:19 UTC (permalink / raw)
  To: linux-m68k; +Cc: Linux Kernel Mailing List


This patch ports q40 PS/2 controller support over to the input api. Please
try it out. It is against the latest dave jones tree.

   . ---
   |o_o |
   |:_/ |   Give Micro$oft the Bird!!!!
  //   \ \  Use Linux!!!!
 (|     | )
 /'_   _/`\
 ___)=(___/

diff -urN -X /home/jsimmons/dontdiff linux-2.5.2-dj7/drivers/input/serio/Config.in linux/drivers/input/serio/Config.in
--- linux-2.5.2-dj7/drivers/input/serio/Config.in	Tue Jan 29 17:36:39 2002
+++ linux/drivers/input/serio/Config.in	Thu Jan 31 11:06:02 2002
@@ -7,6 +7,7 @@
 dep_tristate '  i8042 PC Keyboard controller' CONFIG_SERIO_I8042 $CONFIG_SERIO $CONFIG_ISA
 dep_tristate '  Serial port line discipline' CONFIG_SERIO_SERPORT $CONFIG_SERIO 
 dep_tristate '  ct82c710 Aux port controller' CONFIG_SERIO_CT82C710 $CONFIG_SERIO $CONFIG_ISA
+dep_tristate '  Q40 keyboard controller' CONFIG_SERIO_Q40KBD $CONFIG_SERIO
 dep_tristate '  Parallel port keyboard adapter' CONFIG_SERIO_PARKBD $CONFIG_SERIO $CONFIG_PARPORT
 
 if [ "$CONFIG_ARCH_ACORN" = "y" ]; then
diff -urN -X /home/jsimmons/dontdiff linux-2.5.2-dj7/drivers/input/serio/Makefile linux/drivers/input/serio/Makefile
--- linux-2.5.2-dj7/drivers/input/serio/Makefile	Tue Jan 29 17:36:39 2002
+++ linux/drivers/input/serio/Makefile	Thu Jan 31 10:49:53 2002
@@ -18,6 +18,7 @@
 obj-$(CONFIG_SERIO_SERPORT)	+= serport.o
 obj-$(CONFIG_SERIO_CT82C710)	+= ct82c710.o
 obj-$(CONFIG_SERIO_RPCKBD)	+= rpckbd.o
+obj-$(CONFIG_SERIO_Q40KBD)	+= q40kbd.o
 
 # The global Rules.make.
 
diff -urN -X /home/jsimmons/dontdiff linux-2.5.2-dj7/drivers/input/serio/q40kbd.c linux/drivers/input/serio/q40kbd.c
--- linux-2.5.2-dj7/drivers/input/serio/q40kbd.c	Wed Dec 31 16:00:00 1969
+++ linux/drivers/input/serio/q40kbd.c	Thu Jan 31 10:41:56 2002
@@ -0,0 +1,104 @@
+/*
+ * $Id: q40kbd.c,v 1.9 2002/01/23 06:20:52 jsimmons Exp $
+ *
+ *  Copyright (c) 2000-2001 Vojtech Pavlik
+ *
+ *  Based on the work of:
+ *	unknown author
+ */
+
+/*
+ * Q40 PS/2 keyboard controller driver for Linux/m68k
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Should you need to contact me, the author, you can do so either by
+ * e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail:
+ * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
+ */
+
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/serio.h>
+
+#include <asm/keyboard.h>
+#include <asm/bitops.h>
+#include <asm/io.h>
+#include <asm/uaccess.h>
+#include <asm/q40_master.h>
+#include <asm/irq.h>
+#include <asm/q40ints.h>
+
+MODULE_AUTHOR("Vojtech Pavlik <vojtech@ucw.cz>");
+MODULE_DESCRIPTION("Q40 PS/2 keyboard controller driver");
+MODULE_LICENSE("GPL");
+
+static inline void q40kbd_write(unsigned char val)
+{
+	/* FIXME! We need a way how to write to the keyboard! */
+}
+
+static struct serio q40kbd_port =
+{
+	type:   SERIO_8042,
+	write:  q40kbd_write,
+	name:	"Q40 PS/2 kbd port",
+	phys:	"isa0060/serio0",
+};
+
+static void q40kbd_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+{
+	unsigned long flags;
+
+	if (IRQ_KEYB_MASK & master_inb(INTERRUPT_REG))
+		if (q40kbd_port.dev)
+                         q40kbd_port.dev->interrupt(&q40kbd_port, master_inb(KEYCODE_REG), 0);
+
+	master_outb(-1, KEYBOARD_UNLOCK_REG);
+}
+
+void __init q40kbd_init(void)
+{
+	int maxread = 100;
+
+	/* Get the keyboard controller registers (incomplete decode) */
+	request_region(0x60, 16, "q40kbd");
+
+	/* allocate the IRQ */
+	request_irq(Q40_IRQ_KEYBOARD, keyboard_interrupt, 0, "q40kbd", NULL);
+
+	/* flush any pending input. */
+	while (maxread-- && (IRQ_KEYB_MASK & master_inb(INTERRUPT_REG)))
+		master_inb(KEYCODE_REG);
+	
+	/* off we go */
+	master_outb(-1,KEYBOARD_UNLOCK_REG);
+	master_outb(1,KEY_IRQ_ENABLE_REG);
+
+	register_serio_port(&q40kbd_port);
+	printk(KERN_INFO "serio: Q40 PS/2 kbd port irq %d\n", Q40_IRQ_KEYBOARD);
+}
+
+void __exit q40kbd_exit(void)
+{
+	unregister_serio_port(&q40kbd_port);
+	free_irq(Q40_IRQ_KEYBOARD, NULL);
+	release_region(0x60, 16);	
+}
+
+module_init(q40kbd_init);
+module_exit(q40kbd_exit);


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Info on dn_keyb.c
  2002-01-31 18:19 [PATCH] Q40 input api support James Simmons
@ 2002-01-31 18:47 ` James Simmons
  2002-01-31 20:57 ` [PATCH] Q40 input api support Geert Uytterhoeven
  2002-02-01  0:15 ` [PATCH] Q40 input api support Richard Zidlicky
  2 siblings, 0 replies; 16+ messages in thread
From: James Simmons @ 2002-01-31 18:47 UTC (permalink / raw)
  To: linux-m68k; +Cc: Linux Kernel Mailing List


How is in charge of it and where can I get docs on the hardware so I can
port the driver to the input api? 


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] Q40 input api support.
  2002-01-31 18:19 [PATCH] Q40 input api support James Simmons
  2002-01-31 18:47 ` Info on dn_keyb.c James Simmons
@ 2002-01-31 20:57 ` Geert Uytterhoeven
  2002-01-31 23:12   ` James Simmons
  2002-01-31 23:14   ` Atari keyboard? James Simmons
  2002-02-01  0:15 ` [PATCH] Q40 input api support Richard Zidlicky
  2 siblings, 2 replies; 16+ messages in thread
From: Geert Uytterhoeven @ 2002-01-31 20:57 UTC (permalink / raw)
  To: James Simmons, Vojtech Pavlik
  Cc: Linux/m68k, Linux Kernel Mailing List, Richard Zidlicky

On Thu, 31 Jan 2002, James Simmons wrote:
> This patch ports q40 PS/2 controller support over to the input api. Please
> try it out. It is against the latest dave jones tree.

> diff -urN -X /home/jsimmons/dontdiff linux-2.5.2-dj7/drivers/input/serio/q40kbd.c linux/drivers/input/serio/q40kbd.c
> --- linux-2.5.2-dj7/drivers/input/serio/q40kbd.c	Wed Dec 31 16:00:00 1969
> +++ linux/drivers/input/serio/q40kbd.c	Thu Jan 31 10:41:56 2002
> @@ -0,0 +1,104 @@
> +/*
> + * $Id: q40kbd.c,v 1.9 2002/01/23 06:20:52 jsimmons Exp $
> + *
> + *  Copyright (c) 2000-2001 Vojtech Pavlik
> + *
> + *  Based on the work of:
> + *	unknown author

Richard Zidlicky <Richard.Zidlicky@stud.informatik.uni-erlangen.de>

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] Q40 input api support.
  2002-01-31 20:57 ` [PATCH] Q40 input api support Geert Uytterhoeven
@ 2002-01-31 23:12   ` James Simmons
  2002-01-31 23:48     ` [PATCH] amiga keyboard input II James Simmons
  2002-01-31 23:14   ` Atari keyboard? James Simmons
  1 sibling, 1 reply; 16+ messages in thread
From: James Simmons @ 2002-01-31 23:12 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Vojtech Pavlik, Linux/m68k, Linux Kernel Mailing List,
	Richard Zidlicky


> > diff -urN -X /home/jsimmons/dontdiff linux-2.5.2-dj7/drivers/input/serio/q40kbd.c linux/drivers/input/serio/q40kbd.c
> > --- linux-2.5.2-dj7/drivers/input/serio/q40kbd.c	Wed Dec 31 16:00:00 1969
> > +++ linux/drivers/input/serio/q40kbd.c	Thu Jan 31 10:41:56 2002
> > @@ -0,0 +1,104 @@
> > +/*
> > + * $Id: q40kbd.c,v 1.9 2002/01/23 06:20:52 jsimmons Exp $
> > + *
> > + *  Copyright (c) 2000-2001 Vojtech Pavlik
> > + *
> > + *  Based on the work of:
> > + *	unknown author
> 
> Richard Zidlicky <Richard.Zidlicky@stud.informatik.uni-erlangen.de>

Added. Now to have it tested :-)


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Atari keyboard?
  2002-01-31 20:57 ` [PATCH] Q40 input api support Geert Uytterhoeven
  2002-01-31 23:12   ` James Simmons
@ 2002-01-31 23:14   ` James Simmons
  2002-02-01  7:15     ` Vojtech Pavlik
  2002-02-01 11:50     ` Michael Schmitz
  1 sibling, 2 replies; 16+ messages in thread
From: James Simmons @ 2002-01-31 23:14 UTC (permalink / raw)
  To: Geert Uytterhoeven; +Cc: Vojtech Pavlik, Linux/m68k, Linux Kernel Mailing List


Also I need info on these keyboards as well to port them over. 

   . ---
   |o_o |
   |:_/ |   Give Micro$oft the Bird!!!!
  //   \ \  Use Linux!!!!
 (|     | )
 /'_   _/`\
 ___)=(___/



^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH] amiga keyboard input II
  2002-01-31 23:12   ` James Simmons
@ 2002-01-31 23:48     ` James Simmons
  2002-02-01  9:13       ` Geert Uytterhoeven
  0 siblings, 1 reply; 16+ messages in thread
From: James Simmons @ 2002-01-31 23:48 UTC (permalink / raw)
  To: Geert Uytterhoeven; +Cc: Linux/m68k, Linux Kernel Mailing List


Here is the second patch with much improvements I got from this list.
Anyone want to try it out? You need to enable input support and Keyboard
Interface. Then go down and select Amiga keyboard. This is against the
Dave Jones tree.

   . ---
   |o_o |
   |:_/ |   Give Micro$oft the Bird!!!!
  //   \ \  Use Linux!!!!
 (|     | )
 /'_   _/`\
 ___)=(___/

diff -urN -X /home/jsimmons/dontdiff linux-2.5.2-dj7/drivers/input/keyboard/Config.in linux/drivers/input/keyboard/Config.in
--- linux-2.5.2-dj7/drivers/input/keyboard/Config.in	Tue Jan 29 17:36:39 2002
+++ linux/drivers/input/keyboard/Config.in	Thu Jan 31 16:38:00 2002
@@ -12,3 +12,7 @@
 if [ "$CONFIG_SH_DREAMCAST" = "y" ]; then
    dep_tristate '  Maple bus keyboard support' CONFIG_KEYBOARD_MAPLE $CONFIG_INPUT $CONFIG_INPUT_KEYBOARD $CONFIG_MAPLE
 fi
+
+if [ "$CONFIG_AMIGA" = "y" ]; then
+   dep_tristate '  Amiga keyboard' CONFIG_KEYBOARD_AMIKBD $CONFIG_INPUT $CONFIG_INPUT_KEYBOARD
+fi
diff -urN -X /home/jsimmons/dontdiff linux-2.5.2-dj7/drivers/input/keyboard/Makefile linux/drivers/input/keyboard/Makefile
--- linux-2.5.2-dj7/drivers/input/keyboard/Makefile	Tue Jan 29 17:36:39 2002
+++ linux/drivers/input/keyboard/Makefile	Thu Jan 31 16:38:00 2002
@@ -13,6 +13,7 @@
 obj-$(CONFIG_KEYBOARD_PS2SERKBD)	+= ps2serkbd.o
 obj-$(CONFIG_KEYBOARD_SUNKBD)		+= sunkbd.o
 obj-$(CONFIG_KEYBOARD_XTKBD)		+= xtkbd.o
+obj-$(CONFIG_KEYBOARD_AMIGA)		+= amikbd.o
 
 # The global Rules.make.
 
diff -urN -X /home/jsimmons/dontdiff linux-2.5.2-dj7/drivers/input/keyboard/amikbd.c linux/drivers/input/keyboard/amikbd.c
--- linux-2.5.2-dj7/drivers/input/keyboard/amikbd.c	Wed Dec 31 16:00:00 1969
+++ linux/drivers/input/keyboard/amikbd.c	Thu Jan 31 16:38:27 2002
@@ -0,0 +1,140 @@
+/*
+ * $Id: amikbd.c,v 1.11 2002/01/31 23:05:28 jsimmons Exp $
+ *
+ *  Copyright (c) 2000-2001 Vojtech Pavlik
+ *
+ *  Based on the work of:
+ *	Hamish Macdonald
+ */
+
+/*
+ * Amiga keyboard driver for Linux/m68k
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Should you need to contact me, the author, you can do so either by
+ * e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail:
+ * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
+ */
+
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/input.h>
+
+#include <asm/amigaints.h>
+#include <asm/amigahw.h>
+#include <asm/irq.h>
+
+MODULE_AUTHOR("Vojtech Pavlik <vojtech@ucw.cz>");
+MODULE_DESCRIPTION("Amiga keyboard driver");
+MODULE_LICENSE("GPL");
+
+static unsigned char amikbd_keycode[0x78] = {
+	 41,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 43,  0, 82,
+	 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,  0, 79, 80, 81,
+	 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,  0,  0, 75, 76, 77,
+	  0, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,  0, 83, 71, 72, 73,
+	 57, 14, 15, 96, 28,  1,111,  0,  0,  0, 74,  0,103,108,106,105,
+	 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 98, 55, 78, 87,
+	 42, 54, 58, 29, 56,100
+}
+
+static char *amikbd_messages[] = {
+	KERN_ALERT "amikbd: Ctrl-Amiga-Amiga reset warning!!\n",
+	KERN_WARNING "amikbd: keyboard lost sync\n",
+	KERN_WARNING "amikbd: keyboard buffer overflow\n",
+	KERN_WARNING "amikbd: keyboard controller failure\n",
+	KERN_ERR "amikbd: keyboard selftest failure\n",
+	KERN_INFO "amikbd: initiate power-up key stream\n",
+	KERN_INFO "amikbd: terminate power-up key stream\n",
+	KERN_WARNING "amikbd: keyboard interrupt\n"
+};
+
+static struct input_dev amikbd_dev;
+
+static char *amikbd_name = "Amiga keyboard";
+static char *amikbd_phys = "amikbd/input0";
+
+static void amikbd_interrupt(int irq, void *dummy, struct pt_regs *fp)
+{
+	unsigned char scancode, down;
+
+	scancode = ~ciaa.sdr;		/* get and invert scancode (keyboard is active low) */
+	ciaa.cra |= 0x40;		/* switch SP pin to output for handshake */
+	udelay(85);			/* wait until 85 us have expired */
+	ciaa.cra &= ~0x40;		/* switch CIA serial port to input mode */
+
+	scancode = scancode >> 1;	/* lowest bit is release bit */
+	down = scancode & 1;
+
+	if (scancode < 0x78) {		/* scancodes < 0x78 are keys */
+
+		scancode = amikbd_keycode[scancode];
+	
+		if (scancode == KEY_CAPS) {	/* CapsLock is a toggle switch key on Amiga */
+			input_report_key(&amikbd_dev, scancode, 1);
+			input_report_key(&amikbd_dev, scancode, 0);
+			return;
+		}
+		
+		input_report_key(&amikbd_dev, scancode, down);
+
+		return;
+	}
+
+	printk(amikbd_messages[scancode - 0x78]);	/* scancodes >= 0x78 are error codes */
+}
+
+static int __init amikbd_init(void)
+{
+	int i;
+
+	if (!AMIGAHW_PRESENT(AMI_KEYBOARD))
+		return -EIO;
+
+	amikbd_dev.evbit[0] = BIT(EV_KEY) | BIT(EV_REP);	
+	amikbd_dev.keycode = amikbd_keycode;
+	
+ 	for (i = 0; i < 0x78; i++)
+		if (amikbd_keycode[i])
+			set_bit(amikbd_keycode[i], amikbd_dev.keybit);
+
+	ciaa.cra &= ~0x41;	 /* serial data in, turn off TA */
+	request_irq(IRQ_AMIGA_CIAA_SP, amikbd_interrupt, 0, "amikbd", NULL);
+
+	amikbd_dev.name = amikbd_name;
+	amikbd_dev.phys = amikbd_phys;
+	amikbd_dev.idbus = BUS_AMIGA;
+	amikbd_dev.idvendor = 0x0001;
+	amikbd_dev.idproduct = 0x0001;
+	amikbd_dev.idversion = 0x0100;
+
+	input_register_device(&amikbd_dev);
+
+	printk(KERN_INFO "input: %s\n", amikbd_name);
+
+	return 0;
+}
+
+static void __exit amikbd_exit(void)
+{
+	input_unregister_device(&amikbd_dev);
+	free_irq(IRQ_AMIGA_CIAA_SP, amikbd_interrupt);
+}
+
+module_init(amikbd_init);
+module_exit(amikbd_exit);


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] Q40 input api support.
  2002-01-31 18:19 [PATCH] Q40 input api support James Simmons
  2002-01-31 18:47 ` Info on dn_keyb.c James Simmons
  2002-01-31 20:57 ` [PATCH] Q40 input api support Geert Uytterhoeven
@ 2002-02-01  0:15 ` Richard Zidlicky
  2002-02-01  0:39   ` James Simmons
  2002-02-01 15:55   ` Vojtech Pavlik
  2 siblings, 2 replies; 16+ messages in thread
From: Richard Zidlicky @ 2002-02-01  0:15 UTC (permalink / raw)
  To: James Simmons; +Cc: linux-m68k, Linux Kernel Mailing List

On Thu, Jan 31, 2002 at 10:19:46AM -0800, James Simmons wrote:
> 
> This patch ports q40 PS/2 controller support over to the input api. Please
> try it out. It is against the latest dave jones tree.

thanks, I will look at this over the weekend. Where do I get the DJ
tree?

> +static inline void q40kbd_write(unsigned char val)
> +{
> +	/* FIXME! We need a way how to write to the keyboard! */
> +}

absolutely no way to write to the keyboard.

> +
> +static struct serio q40kbd_port =
> +{
> +	type:   SERIO_8042,
> +	write:  q40kbd_write,
> +	name:	"Q40 PS/2 kbd port",
> +	phys:	"isa0060/serio0",
> +};
> +
> +static void q40kbd_interrupt(int irq, void *dev_id, struct pt_regs *regs)
> +{
> +	unsigned long flags;
> +
> +	if (IRQ_KEYB_MASK & master_inb(INTERRUPT_REG))
> +		if (q40kbd_port.dev)
> +                         q40kbd_port.dev->interrupt(&q40kbd_port, master_inb(KEYCODE_REG), 0);
                                             ^^^^^^^^^
where is this defined?

> +void __init q40kbd_init(void)
> +{
> +	int maxread = 100;
> +
> +	/* Get the keyboard controller registers (incomplete decode) */
> +	request_region(0x60, 16, "q40kbd");
> +
> +	/* allocate the IRQ */
> +	request_irq(Q40_IRQ_KEYBOARD, keyboard_interrupt, 0, "q40kbd", NULL);
				      ^^^^^^^^^^^^^^^^^^
should that be q40kbd_interrupt ?

Bye
Richard

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] Q40 input api support.
  2002-02-01  0:15 ` [PATCH] Q40 input api support Richard Zidlicky
@ 2002-02-01  0:39   ` James Simmons
  2002-02-01 15:57     ` Vojtech Pavlik
  2002-02-01 15:55   ` Vojtech Pavlik
  1 sibling, 1 reply; 16+ messages in thread
From: James Simmons @ 2002-02-01  0:39 UTC (permalink / raw)
  To: Richard Zidlicky; +Cc: linux-m68k, Linux Kernel Mailing List


> > This patch ports q40 PS/2 controller support over to the input api. Please
> > try it out. It is against the latest dave jones tree.
> 
> thanks, I will look at this over the weekend. Where do I get the DJ
> tree?

ftp://ftp.kernel.org/pub/linux/kernel/people/davej/patches/2.5


> > +static inline void q40kbd_write(unsigned char val)
> > +{
> > +	/* FIXME! We need a way how to write to the keyboard! */
> > +}
> 
> absolutely no way to write to the keyboard.

That solves that.

> > +	if (IRQ_KEYB_MASK & master_inb(INTERRUPT_REG))
> > +		if (q40kbd_port.dev)
> > +                         q40kbd_port.dev->interrupt(&q40kbd_port, master_inb(KEYCODE_REG), 0);
>                                              ^^^^^^^^^
> where is this defined?

The way it works with the new input code is that it modularized the
keyboard/mice from the controller chipsets. This file, q40kbd.c is the 
file to sets up the controller chip. For the Q40 we have this as for the
ix86 we have i8042.c. As for the mouse and keyboard driver themselves you
pick PS/2 mouse support and AT keyboard support. These drivers are the
same ones as the ix86 drivers for the mice and keyboard. In theory they
should work on both platforms. Note the check for dev. This field is
filled in when we register the keyboard if it is present.

> > +	/* allocate the IRQ */
> > +	request_irq(Q40_IRQ_KEYBOARD, keyboard_interrupt, 0, "q40kbd", NULL);
> 				      ^^^^^^^^^^^^^^^^^^
> should that be q40kbd_interrupt ?

Yes. Fixed. 


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Atari keyboard?
  2002-01-31 23:14   ` Atari keyboard? James Simmons
@ 2002-02-01  7:15     ` Vojtech Pavlik
  2002-02-01 11:50     ` Michael Schmitz
  1 sibling, 0 replies; 16+ messages in thread
From: Vojtech Pavlik @ 2002-02-01  7:15 UTC (permalink / raw)
  To: James Simmons
  Cc: Geert Uytterhoeven, Vojtech Pavlik, Linux/m68k,
	Linux Kernel Mailing List

On Thu, Jan 31, 2002 at 03:14:15PM -0800, James Simmons wrote:
> 
> Also I need info on these keyboards as well to port them over. 
 
See ruby/linux/Documentation/input/atarikbd.txt

-- 
Vojtech Pavlik
SuSE Labs

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] amiga keyboard input II
  2002-01-31 23:48     ` [PATCH] amiga keyboard input II James Simmons
@ 2002-02-01  9:13       ` Geert Uytterhoeven
  0 siblings, 0 replies; 16+ messages in thread
From: Geert Uytterhoeven @ 2002-02-01  9:13 UTC (permalink / raw)
  To: James Simmons; +Cc: Linux/m68k, Linux Kernel Mailing List

On Thu, 31 Jan 2002, James Simmons wrote:
> Here is the second patch with much improvements I got from this list.
> Anyone want to try it out? You need to enable input support and Keyboard
> Interface. Then go down and select Amiga keyboard. This is against the
> Dave Jones tree.

> diff -urN -X /home/jsimmons/dontdiff linux-2.5.2-dj7/drivers/input/keyboard/amikbd.c linux/drivers/input/keyboard/amikbd.c
> --- linux-2.5.2-dj7/drivers/input/keyboard/amikbd.c	Wed Dec 31 16:00:00 1969
> +++ linux/drivers/input/keyboard/amikbd.c	Thu Jan 31 16:38:27 2002

> +	scancode = scancode >> 1;	/* lowest bit is release bit */
> +	down = scancode & 1;

Still to be reordered

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Atari keyboard?
  2002-01-31 23:14   ` Atari keyboard? James Simmons
  2002-02-01  7:15     ` Vojtech Pavlik
@ 2002-02-01 11:50     ` Michael Schmitz
  1 sibling, 0 replies; 16+ messages in thread
From: Michael Schmitz @ 2002-02-01 11:50 UTC (permalink / raw)
  To: James Simmons
  Cc: Geert Uytterhoeven, Vojtech Pavlik, Linux/m68k,
	Linux Kernel Mailing List

> Also I need info on these keyboards as well to port them over.

I'd ask Andreas Schwab if there's any questions left after reading the
docs Vojtech mentioned. I'll be happy to test as soon as you have a patch
(and I've rebuilt my test system from the latest disaster),

	Michael


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] Q40 input api support.
  2002-02-01  0:15 ` [PATCH] Q40 input api support Richard Zidlicky
  2002-02-01  0:39   ` James Simmons
@ 2002-02-01 15:55   ` Vojtech Pavlik
  2002-02-01 19:43     ` Richard Zidlicky
  1 sibling, 1 reply; 16+ messages in thread
From: Vojtech Pavlik @ 2002-02-01 15:55 UTC (permalink / raw)
  To: Richard Zidlicky; +Cc: James Simmons, linux-m68k, Linux Kernel Mailing List

On Fri, Feb 01, 2002 at 01:15:43AM +0100, Richard Zidlicky wrote:
> On Thu, Jan 31, 2002 at 10:19:46AM -0800, James Simmons wrote:
> > 
> > This patch ports q40 PS/2 controller support over to the input api. Please
> > try it out. It is against the latest dave jones tree.
> 
> thanks, I will look at this over the weekend. Where do I get the DJ
> tree?
> 
> > +static inline void q40kbd_write(unsigned char val)
> > +{
> > +	/* FIXME! We need a way how to write to the keyboard! */
> > +}
> 
> absolutely no way to write to the keyboard.

Really? Too bad. So no way to set LEDs, no way to detect the keyboard,
no way to set it to "Scancode Set 3"?

We'll need to modify the atkbd driver then ... 

> > +static void q40kbd_interrupt(int irq, void *dev_id, struct pt_regs *regs)
> > +{
> > +	unsigned long flags;
> > +
> > +	if (IRQ_KEYB_MASK & master_inb(INTERRUPT_REG))
> > +		if (q40kbd_port.dev)
> > +                         q40kbd_port.dev->interrupt(&q40kbd_port, master_inb(KEYCODE_REG), 0);
>                                              ^^^^^^^^^
> where is this defined?

include/linux/serio.h: struct serio_dev

> > +void __init q40kbd_init(void)
> > +{
> > +	int maxread = 100;
> > +
> > +	/* Get the keyboard controller registers (incomplete decode) */
> > +	request_region(0x60, 16, "q40kbd");
> > +
> > +	/* allocate the IRQ */
> > +	request_irq(Q40_IRQ_KEYBOARD, keyboard_interrupt, 0, "q40kbd", NULL);
> 				      ^^^^^^^^^^^^^^^^^^
> should that be q40kbd_interrupt ?

Yes, it should.

-- 
Vojtech Pavlik
SuSE Labs

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] Q40 input api support.
  2002-02-01  0:39   ` James Simmons
@ 2002-02-01 15:57     ` Vojtech Pavlik
  0 siblings, 0 replies; 16+ messages in thread
From: Vojtech Pavlik @ 2002-02-01 15:57 UTC (permalink / raw)
  To: James Simmons; +Cc: Richard Zidlicky, linux-m68k, Linux Kernel Mailing List

On Thu, Jan 31, 2002 at 04:39:11PM -0800, James Simmons wrote:

> > > This patch ports q40 PS/2 controller support over to the input api. Please
> > > try it out. It is against the latest dave jones tree.
> > 
> > thanks, I will look at this over the weekend. Where do I get the DJ
> > tree?
> 
> ftp://ftp.kernel.org/pub/linux/kernel/people/davej/patches/2.5
> 
> 
> > > +static inline void q40kbd_write(unsigned char val)
> > > +{
> > > +	/* FIXME! We need a way how to write to the keyboard! */
> > > +}
> > 
> > absolutely no way to write to the keyboard.
> 
> That solves that.

It doesn't. atkbd.c won't detect the keyboard if it can't talk to it.

> > > +	if (IRQ_KEYB_MASK & master_inb(INTERRUPT_REG))
> > > +		if (q40kbd_port.dev)
> > > +                         q40kbd_port.dev->interrupt(&q40kbd_port, master_inb(KEYCODE_REG), 0);
> >                                              ^^^^^^^^^
> > where is this defined?
> 
> The way it works with the new input code is that it modularized the
> keyboard/mice from the controller chipsets. This file, q40kbd.c is the 
> file to sets up the controller chip. For the Q40 we have this as for the
> ix86 we have i8042.c. As for the mouse and keyboard driver themselves you
> pick PS/2 mouse support and AT keyboard support. These drivers are the
> same ones as the ix86 drivers for the mice and keyboard. In theory they
> should work on both platforms. Note the check for dev. This field is
> filled in when we register the keyboard if it is present.
> 
> > > +	/* allocate the IRQ */
> > > +	request_irq(Q40_IRQ_KEYBOARD, keyboard_interrupt, 0, "q40kbd", NULL);
> > 				      ^^^^^^^^^^^^^^^^^^
> > should that be q40kbd_interrupt ?
> 
> Yes. Fixed. 

-- 
Vojtech Pavlik
SuSE Labs

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] Q40 input api support.
  2002-02-01 15:55   ` Vojtech Pavlik
@ 2002-02-01 19:43     ` Richard Zidlicky
  2002-02-01 19:45       ` Vojtech Pavlik
  0 siblings, 1 reply; 16+ messages in thread
From: Richard Zidlicky @ 2002-02-01 19:43 UTC (permalink / raw)
  To: Vojtech Pavlik; +Cc: James Simmons, linux-m68k, Linux Kernel Mailing List


> > > +static inline void q40kbd_write(unsigned char val)
> > > +{
> > > +	/* FIXME! We need a way how to write to the keyboard! */
> > > +}
> > 
> > absolutely no way to write to the keyboard.
> 
> Really? Too bad. So no way to set LEDs, no way to detect the keyboard,
> no way to set it to "Scancode Set 3"?

no way to control LED's, keyboard is assumed present, scancode set 
is AT

Richard


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] Q40 input api support.
  2002-02-01 19:43     ` Richard Zidlicky
@ 2002-02-01 19:45       ` Vojtech Pavlik
  2002-02-01 20:23         ` Richard Zidlicky
  0 siblings, 1 reply; 16+ messages in thread
From: Vojtech Pavlik @ 2002-02-01 19:45 UTC (permalink / raw)
  To: Richard Zidlicky; +Cc: James Simmons, linux-m68k, Linux Kernel Mailing List

On Fri, Feb 01, 2002 at 08:43:04PM +0100, Richard Zidlicky wrote:

> 
> > > > +static inline void q40kbd_write(unsigned char val)
> > > > +{
> > > > +	/* FIXME! We need a way how to write to the keyboard! */
> > > > +}
> > > 
> > > absolutely no way to write to the keyboard.
> > 
> > Really? Too bad. So no way to set LEDs, no way to detect the keyboard,
> > no way to set it to "Scancode Set 3"?
> 
> no way to control LED's, keyboard is assumed present, scancode set 
> is AT

Ok, in that case we'll need to pass a flag to atkbd.c (via the serio
layer) telling it not to try any detection / initialization of the
keyboard.

-- 
Vojtech Pavlik
SuSE Labs

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] Q40 input api support.
  2002-02-01 19:45       ` Vojtech Pavlik
@ 2002-02-01 20:23         ` Richard Zidlicky
  0 siblings, 0 replies; 16+ messages in thread
From: Richard Zidlicky @ 2002-02-01 20:23 UTC (permalink / raw)
  To: Vojtech Pavlik; +Cc: James Simmons, linux-m68k, Linux Kernel Mailing List

> 
> On Fri, Feb 01, 2002 at 08:43:04PM +0100, Richard Zidlicky wrote:
> 
> > 
> > > > > +static inline void q40kbd_write(unsigned char val)
> > > > > +{
> > > > > +	/* FIXME! We need a way how to write to the keyboard! */
> > > > > +}
> > > > 
> > > > absolutely no way to write to the keyboard.
> > > 
> > > Really? Too bad. So no way to set LEDs, no way to detect the keyboard,
> > > no way to set it to "Scancode Set 3"?
> > 
> > no way to control LED's, keyboard is assumed present, scancode set 
> > is AT
> 
> Ok, in that case we'll need to pass a flag to atkbd.c (via the serio
> layer) telling it not to try any detection / initialization of the
> keyboard.

that looks fine.

Richard


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2002-02-01 20:24 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-01-31 18:19 [PATCH] Q40 input api support James Simmons
2002-01-31 18:47 ` Info on dn_keyb.c James Simmons
2002-01-31 20:57 ` [PATCH] Q40 input api support Geert Uytterhoeven
2002-01-31 23:12   ` James Simmons
2002-01-31 23:48     ` [PATCH] amiga keyboard input II James Simmons
2002-02-01  9:13       ` Geert Uytterhoeven
2002-01-31 23:14   ` Atari keyboard? James Simmons
2002-02-01  7:15     ` Vojtech Pavlik
2002-02-01 11:50     ` Michael Schmitz
2002-02-01  0:15 ` [PATCH] Q40 input api support Richard Zidlicky
2002-02-01  0:39   ` James Simmons
2002-02-01 15:57     ` Vojtech Pavlik
2002-02-01 15:55   ` Vojtech Pavlik
2002-02-01 19:43     ` Richard Zidlicky
2002-02-01 19:45       ` Vojtech Pavlik
2002-02-01 20:23         ` Richard Zidlicky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox