All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Dooks <ben-linux@fluff.org>
To: Alexey Charkov <alchark@gmail.com>
Cc: vt8500-wm8505-linux-kernel@googlegroups.com,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-input@vger.kernel.org
Subject: Re: [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042
Date: Sat, 30 Oct 2010 23:23:39 +0100	[thread overview]
Message-ID: <4CCC9AEB.7060101@fluff.org> (raw)
In-Reply-To: <1287608139-21354-3-git-send-email-alchark@gmail.com>

On 20/10/10 21:55, Alexey Charkov wrote:
> VIA and WonderMedia Systems-on-Chip feature a standard i8042-compatible
> keyboard and mouse controller. This adds necessary glue to enable use
> of the standard driver with these systems.
> 
> Signed-off-by: Alexey Charkov <alchark@gmail.com>
> ---
> 
> Please review and state whether this could be acceptable for a merge
> to mainline in the coming 2.6.37 window. If possible, I would deeply
> appreciate a merge to a relevant git tree for integration prior to
> asking Linus to pull the changes. I could rebase the code if needed,
> currently this is against Linus' master branch.
> 
> This patch relies on the basic architecture support for VT8500/WM8505
> to be in place, as introduced by PATCH 1/6 in this series.
> 
> Due credits go to the community for providing feedback, advice and
> testing.
> 
> NB: The development is being done at:
> http://gitorious.org/linux-on-via-vt8500/vt8500-kernel
> 
> Relevant code may be pulled from a git tree in there.
> 
>  drivers/input/serio/Kconfig        |    3 +-
>  drivers/input/serio/i8042-vt8500.h |   71 ++++++++++++++++++++++++++++++++++++
>  drivers/input/serio/i8042.h        |    2 +
>  3 files changed, 75 insertions(+), 1 deletions(-)
>  create mode 100644 drivers/input/serio/i8042-vt8500.h
> 
> diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig
> index 3bfe8fa..2b86774 100644
> --- a/drivers/input/serio/Kconfig
> +++ b/drivers/input/serio/Kconfig
> @@ -21,7 +21,8 @@ if SERIO
>  config SERIO_I8042
>  	tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86
>  	default y
> -	depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && \
> +	depends on !PARISC && \
> +		  (!ARM || ARCH_SHARK || ARCH_VT8500 || FOOTBRIDGE_HOST) && \
>  		   (!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN

this looks like someone could do with a HAS_SERIO_I8042 Kconfig entry
and have the relevant archs select it instead of having this mess.


>  	help
>  	  i8042 is the chip over which the standard AT keyboard and PS/2
> diff --git a/drivers/input/serio/i8042-vt8500.h b/drivers/input/serio/i8042-vt8500.h
> new file mode 100644
> index 0000000..d30df82
> --- /dev/null
> +++ b/drivers/input/serio/i8042-vt8500.h
> @@ -0,0 +1,71 @@
> +#ifndef _I8042_VT8500_H
> +#define _I8042_VT8500_H
> +
> +#include <mach/irqs.h>
> +#include <mach/vt8500.h>
> +
> +/*
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License version 2 as published by
> + * the Free Software Foundation.
> + */
> +
> +static void __iomem *regbase;
> +
> +/*
> + * Names.
> + */
> +
> +#define I8042_KBD_PHYS_DESC "vt8500ps2/serio0"
> +#define I8042_AUX_PHYS_DESC "vt8500ps2/serio1"
> +#define I8042_MUX_PHYS_DESC "vt8500ps2/serio%d"
> +
> +/*
> + * IRQs.
> + */
> +
> +#define I8042_KBD_IRQ	IRQ_PS2KBD
> +#define I8042_AUX_IRQ	IRQ_PS2MOUSE
> +
> +
> +/*
> + * Register numbers.
> + */
> +
> +#define I8042_COMMAND_REG	(regbase + 0x4)
> +#define I8042_STATUS_REG	(regbase + 0x4)
> +#define I8042_DATA_REG		(regbase + 0x0)
> +
> +static inline int i8042_read_data(void)
> +{
> +	return readl(I8042_DATA_REG);
> +}
> +
> +static inline int i8042_read_status(void)
> +{
> +	return readl(I8042_STATUS_REG);
> +}
> +
> +static inline void i8042_write_data(int val)
> +{
> +	writel(val, I8042_DATA_REG);
> +}
> +
> +static inline void i8042_write_command(int val)
> +{
> +	writel(val, I8042_COMMAND_REG);
> +}
> +
> +static inline int i8042_platform_init(void)
> +{
> +	i8042_reset = 1;
> +	regbase = ioremap(VT8500_PS2_BASE, SZ_1K);
> +	return 0;
> +}
> +
> +static inline void i8042_platform_exit(void)
> +{
> +	iounmap(regbase);
> +}
> +
> +#endif /* _I8042_VT8500_H */
> diff --git a/drivers/input/serio/i8042.h b/drivers/input/serio/i8042.h
> index cbc1beb..bdb2aeb 100644
> --- a/drivers/input/serio/i8042.h
> +++ b/drivers/input/serio/i8042.h
> @@ -16,6 +16,8 @@
>  
>  #if defined(CONFIG_MACH_JAZZ)
>  #include "i8042-jazzio.h"
> +#elif defined(CONFIG_ARCH_VT8500)
> +#include "i8042-vt8500.h"
>  #elif defined(CONFIG_SGI_HAS_I8042)
>  #include "i8042-ip22io.h"
>  #elif defined(CONFIG_SNI_RM)

yeurk... how about having a core i8042 implementation and having
a structure with the necessary callbacks for the code, so that
we don't end up having to select what is builtin for the system
we're compiling for?

-- 
Ben

WARNING: multiple messages have this Message-ID (diff)
From: ben-linux@fluff.org (Ben Dooks)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042
Date: Sat, 30 Oct 2010 23:23:39 +0100	[thread overview]
Message-ID: <4CCC9AEB.7060101@fluff.org> (raw)
In-Reply-To: <1287608139-21354-3-git-send-email-alchark@gmail.com>

On 20/10/10 21:55, Alexey Charkov wrote:
> VIA and WonderMedia Systems-on-Chip feature a standard i8042-compatible
> keyboard and mouse controller. This adds necessary glue to enable use
> of the standard driver with these systems.
> 
> Signed-off-by: Alexey Charkov <alchark@gmail.com>
> ---
> 
> Please review and state whether this could be acceptable for a merge
> to mainline in the coming 2.6.37 window. If possible, I would deeply
> appreciate a merge to a relevant git tree for integration prior to
> asking Linus to pull the changes. I could rebase the code if needed,
> currently this is against Linus' master branch.
> 
> This patch relies on the basic architecture support for VT8500/WM8505
> to be in place, as introduced by PATCH 1/6 in this series.
> 
> Due credits go to the community for providing feedback, advice and
> testing.
> 
> NB: The development is being done at:
> http://gitorious.org/linux-on-via-vt8500/vt8500-kernel
> 
> Relevant code may be pulled from a git tree in there.
> 
>  drivers/input/serio/Kconfig        |    3 +-
>  drivers/input/serio/i8042-vt8500.h |   71 ++++++++++++++++++++++++++++++++++++
>  drivers/input/serio/i8042.h        |    2 +
>  3 files changed, 75 insertions(+), 1 deletions(-)
>  create mode 100644 drivers/input/serio/i8042-vt8500.h
> 
> diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig
> index 3bfe8fa..2b86774 100644
> --- a/drivers/input/serio/Kconfig
> +++ b/drivers/input/serio/Kconfig
> @@ -21,7 +21,8 @@ if SERIO
>  config SERIO_I8042
>  	tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86
>  	default y
> -	depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && \
> +	depends on !PARISC && \
> +		  (!ARM || ARCH_SHARK || ARCH_VT8500 || FOOTBRIDGE_HOST) && \
>  		   (!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN

this looks like someone could do with a HAS_SERIO_I8042 Kconfig entry
and have the relevant archs select it instead of having this mess.


>  	help
>  	  i8042 is the chip over which the standard AT keyboard and PS/2
> diff --git a/drivers/input/serio/i8042-vt8500.h b/drivers/input/serio/i8042-vt8500.h
> new file mode 100644
> index 0000000..d30df82
> --- /dev/null
> +++ b/drivers/input/serio/i8042-vt8500.h
> @@ -0,0 +1,71 @@
> +#ifndef _I8042_VT8500_H
> +#define _I8042_VT8500_H
> +
> +#include <mach/irqs.h>
> +#include <mach/vt8500.h>
> +
> +/*
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License version 2 as published by
> + * the Free Software Foundation.
> + */
> +
> +static void __iomem *regbase;
> +
> +/*
> + * Names.
> + */
> +
> +#define I8042_KBD_PHYS_DESC "vt8500ps2/serio0"
> +#define I8042_AUX_PHYS_DESC "vt8500ps2/serio1"
> +#define I8042_MUX_PHYS_DESC "vt8500ps2/serio%d"
> +
> +/*
> + * IRQs.
> + */
> +
> +#define I8042_KBD_IRQ	IRQ_PS2KBD
> +#define I8042_AUX_IRQ	IRQ_PS2MOUSE
> +
> +
> +/*
> + * Register numbers.
> + */
> +
> +#define I8042_COMMAND_REG	(regbase + 0x4)
> +#define I8042_STATUS_REG	(regbase + 0x4)
> +#define I8042_DATA_REG		(regbase + 0x0)
> +
> +static inline int i8042_read_data(void)
> +{
> +	return readl(I8042_DATA_REG);
> +}
> +
> +static inline int i8042_read_status(void)
> +{
> +	return readl(I8042_STATUS_REG);
> +}
> +
> +static inline void i8042_write_data(int val)
> +{
> +	writel(val, I8042_DATA_REG);
> +}
> +
> +static inline void i8042_write_command(int val)
> +{
> +	writel(val, I8042_COMMAND_REG);
> +}
> +
> +static inline int i8042_platform_init(void)
> +{
> +	i8042_reset = 1;
> +	regbase = ioremap(VT8500_PS2_BASE, SZ_1K);
> +	return 0;
> +}
> +
> +static inline void i8042_platform_exit(void)
> +{
> +	iounmap(regbase);
> +}
> +
> +#endif /* _I8042_VT8500_H */
> diff --git a/drivers/input/serio/i8042.h b/drivers/input/serio/i8042.h
> index cbc1beb..bdb2aeb 100644
> --- a/drivers/input/serio/i8042.h
> +++ b/drivers/input/serio/i8042.h
> @@ -16,6 +16,8 @@
>  
>  #if defined(CONFIG_MACH_JAZZ)
>  #include "i8042-jazzio.h"
> +#elif defined(CONFIG_ARCH_VT8500)
> +#include "i8042-vt8500.h"
>  #elif defined(CONFIG_SGI_HAS_I8042)
>  #include "i8042-ip22io.h"
>  #elif defined(CONFIG_SNI_RM)

yeurk... how about having a core i8042 implementation and having
a structure with the necessary callbacks for the code, so that
we don't end up having to select what is builtin for the system
we're compiling for?

-- 
Ben

  parent reply	other threads:[~2010-10-30 22:23 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-20 20:55 [PATCH 1/6] ARM: Add basic architecture support for VIA/WonderMedia 85xx SoC's Alexey Charkov
2010-10-20 20:55 ` Alexey Charkov
2010-10-20 20:55 ` [PATCH 2/6] serial: Add support for UART on VIA VT8500 and compatibles Alexey Charkov
2010-10-20 20:55   ` Alexey Charkov
2010-10-20 21:16   ` Greg KH
2010-10-20 21:16     ` Greg KH
2010-10-20 21:31     ` Alexey Charkov
2010-10-20 21:31       ` Alexey Charkov
2010-10-20 22:38       ` Greg KH
2010-10-20 22:38         ` Greg KH
2010-10-20 22:48         ` Alexey Charkov
2010-10-20 22:48           ` Alexey Charkov
2010-10-20 20:55 ` [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042 Alexey Charkov
2010-10-20 20:55   ` Alexey Charkov
2010-10-20 21:15   ` Dmitry Torokhov
2010-10-20 21:15     ` Dmitry Torokhov
2010-10-20 21:24     ` Alexey Charkov
2010-10-20 21:24       ` Alexey Charkov
2010-10-20 21:24       ` Alexey Charkov
2010-10-20 22:14     ` [PATCH 3/6 v2] " Alexey Charkov
2010-10-20 22:14       ` Alexey Charkov
2010-10-20 23:46       ` Dmitry Torokhov
2010-10-20 23:46         ` Dmitry Torokhov
2010-10-30 22:23   ` Ben Dooks [this message]
2010-10-30 22:23     ` [PATCH 3/6] " Ben Dooks
2010-11-01 18:31     ` Alexey Charkov
2010-11-01 18:31       ` Alexey Charkov
2010-11-01 18:31       ` Alexey Charkov
2010-10-20 20:55 ` [PATCH 4/6] usb: Add support for VIA VT8500 and compatibles in EHCI HCD Alexey Charkov
2010-10-20 20:55   ` Alexey Charkov
2010-10-20 21:17   ` Greg KH
2010-10-20 21:17     ` Greg KH
2010-10-20 22:41     ` Alexey Charkov
2010-10-20 22:41       ` Alexey Charkov
2010-10-20 22:47       ` Greg KH
2010-10-20 22:47         ` Greg KH
2010-10-20 22:54         ` Alexey Charkov
2010-10-20 22:54           ` Alexey Charkov
2010-10-20 20:55 ` [PATCH 5/6] rtc: Add support for the RTC in VIA VT8500 and compatibles Alexey Charkov
2010-10-20 20:55   ` Alexey Charkov
2010-10-20 20:55 ` [PATCH 6/6] ARM: Add support for the display controllers in VT8500 and WM8505 Alexey Charkov
2010-10-20 20:55   ` Alexey Charkov
2010-10-21  8:05 ` [PATCH 1/6] ARM: Add basic architecture support for VIA/WonderMedia 85xx SoC's Arnd Bergmann
2010-10-21  8:05   ` Arnd Bergmann
2010-10-21  9:52   ` Alexey Charkov
2010-10-21  9:52     ` Alexey Charkov
2010-10-21 12:01     ` Arnd Bergmann
2010-10-21 12:01       ` Arnd Bergmann
2010-10-21 21:08       ` Alexey Charkov
2010-10-21 21:08         ` Alexey Charkov
2010-10-22  9:02         ` Arnd Bergmann
2010-10-22  9:02           ` Arnd Bergmann
2010-10-22 13:52           ` Alexey Charkov
2010-10-22 13:52             ` Alexey Charkov
2010-10-22 14:48             ` Arnd Bergmann
2010-10-22 14:48               ` Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4CCC9AEB.7060101@fluff.org \
    --to=ben-linux@fluff.org \
    --cc=alchark@gmail.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vt8500-wm8505-linux-kernel@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.