* [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042
[not found] <1287608139-21354-1-git-send-email-alchark@gmail.com>
@ 2010-10-20 20:55 ` Alexey Charkov
2010-10-20 21:15 ` Dmitry Torokhov
2010-10-30 22:23 ` [PATCH 3/6] " Ben Dooks
0 siblings, 2 replies; 11+ messages in thread
From: Alexey Charkov @ 2010-10-20 20:55 UTC (permalink / raw)
To: vt8500-wm8505-linux-kernel
Cc: linux-arm-kernel, Alexey Charkov, Dmitry Torokhov, linux-input,
linux-kernel
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
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)
--
1.7.3.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042
2010-10-20 20:55 ` [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042 Alexey Charkov
@ 2010-10-20 21:15 ` Dmitry Torokhov
2010-10-20 21:24 ` Alexey Charkov
2010-10-20 22:14 ` [PATCH 3/6 v2] " Alexey Charkov
2010-10-30 22:23 ` [PATCH 3/6] " Ben Dooks
1 sibling, 2 replies; 11+ messages in thread
From: Dmitry Torokhov @ 2010-10-20 21:15 UTC (permalink / raw)
To: Alexey Charkov
Cc: vt8500-wm8505-linux-kernel, linux-arm-kernel, linux-input,
linux-kernel
On Wednesday, October 20, 2010 01:55:35 pm 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.
What tree this code will be coming through through?
> +
> +static inline int i8042_platform_init(void)
> +{
> + i8042_reset = 1;
= true; - it's a boolean.
> + regbase = ioremap(VT8500_PS2_BASE, SZ_1K);
Error handling?
Thanks.
--
Dmitry
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042
2010-10-20 21:15 ` Dmitry Torokhov
@ 2010-10-20 21:24 ` Alexey Charkov
2010-10-20 22:14 ` [PATCH 3/6 v2] " Alexey Charkov
1 sibling, 0 replies; 11+ messages in thread
From: Alexey Charkov @ 2010-10-20 21:24 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: vt8500-wm8505-linux-kernel, linux-arm-kernel, linux-input,
linux-kernel
2010/10/21 Dmitry Torokhov <dmitry.torokhov@gmail.com>
>
> On Wednesday, October 20, 2010 01:55:35 pm 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.
>
> What tree this code will be coming through through?
>
Should be Russel King's ARM tree, probably. The whole series is CC'd
to linux-arm-kernel and to the relevant subsystems maintainers, as I
was instructed to do at a previous submission attempt.
> > +
> > +static inline int i8042_platform_init(void)
> > +{
> > + i8042_reset = 1;
>
> = true; - it's a boolean.
>
Got it, thanks.
> > + regbase = ioremap(VT8500_PS2_BASE, SZ_1K);
>
> Error handling?
>
Ok, I've missed this. Will be fixed.
> Thanks.
>
> --
> Dmitry
Thanks for your review, Dmitry! Are there any other issues with this
or is it otherwise good enough to receive your Ack?
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 3/6 v2] input: Add support for VIA VT8500 and compatibles in i8042
2010-10-20 21:15 ` Dmitry Torokhov
2010-10-20 21:24 ` Alexey Charkov
@ 2010-10-20 22:14 ` Alexey Charkov
2010-10-20 23:46 ` Dmitry Torokhov
1 sibling, 1 reply; 11+ messages in thread
From: Alexey Charkov @ 2010-10-20 22:14 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: Alexey Charkov, vt8500-wm8505-linux-kernel, linux-arm-kernel,
linux-input, linux-kernel
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>
---
This is to incorporate fixes to issues noted by Dmitry at the first attempt.
drivers/input/serio/Kconfig | 3 +-
drivers/input/serio/i8042-vt8500.h | 74 ++++++++++++++++++++++++++++++++++++
drivers/input/serio/i8042.h | 2 +
3 files changed, 78 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
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..6a709b6
--- /dev/null
+++ b/drivers/input/serio/i8042-vt8500.h
@@ -0,0 +1,74 @@
+#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 = true;
+ regbase = ioremap(VT8500_PS2_BASE, SZ_1K);
+ if (!regbase)
+ return -ENODEV;
+
+ 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)
--
1.7.3.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 3/6 v2] input: Add support for VIA VT8500 and compatibles in i8042
2010-10-20 22:14 ` [PATCH 3/6 v2] " Alexey Charkov
@ 2010-10-20 23:46 ` Dmitry Torokhov
0 siblings, 0 replies; 11+ messages in thread
From: Dmitry Torokhov @ 2010-10-20 23:46 UTC (permalink / raw)
To: Alexey Charkov
Cc: vt8500-wm8505-linux-kernel, linux-arm-kernel, linux-input,
linux-kernel
On Thu, Oct 21, 2010 at 02:14:49AM +0400, 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>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
Thanks.
--
Dmitry
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042
2010-10-20 20:55 ` [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042 Alexey Charkov
2010-10-20 21:15 ` Dmitry Torokhov
@ 2010-10-30 22:23 ` Ben Dooks
2010-11-01 18:31 ` Alexey Charkov
1 sibling, 1 reply; 11+ messages in thread
From: Ben Dooks @ 2010-10-30 22:23 UTC (permalink / raw)
To: Alexey Charkov
Cc: vt8500-wm8505-linux-kernel, Dmitry Torokhov, linux-kernel,
linux-arm-kernel, linux-input
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
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042
2010-10-30 22:23 ` [PATCH 3/6] " Ben Dooks
@ 2010-11-01 18:31 ` Alexey Charkov
0 siblings, 0 replies; 11+ messages in thread
From: Alexey Charkov @ 2010-11-01 18:31 UTC (permalink / raw)
To: Ben Dooks
Cc: vt8500-wm8505-linux-kernel, Dmitry Torokhov, linux-kernel,
linux-arm-kernel, linux-input
2010/10/31 Ben Dooks <ben-linux@fluff.org>:
> 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.
>
>
True, it would make things much cleaner. However, that's probably out
of scope of adding VT8500 support here, thus not for me to decide :)
<snip>
>
> 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?
>
I would really like to see this implemented as a standard platform
driver (accepting resources and platform_data as necessary). This
would be a way cleaner approach, with less code duplication and less
patching of the driver itself whenever a new platform is to be added.
However, I don't know how that kind of a change would affect other
arches.
> --
> Ben
>
Thanks,
Alexey
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 3/6 v2] input: Add support for VIA VT8500 and compatibles in i8042
[not found] <1289147348-31969-1-git-send-email-alchark@gmail.com>
@ 2010-11-07 16:28 ` Alexey Charkov
2010-11-12 22:54 ` Alexey Charkov
0 siblings, 1 reply; 11+ messages in thread
From: Alexey Charkov @ 2010-11-07 16:28 UTC (permalink / raw)
To: linux-arm-kernel
Cc: vt8500-wm8505-linux-kernel, Alexey Charkov, Dmitry Torokhov,
Tony Lindgren, Feng Tang, Janusz Krzysztofik,
Dmitry Eremin-Solenikov, linux-input, linux-kernel
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 (if appropriate) commit to a relevant git tree for
further integration in 2.6.38.
Previous version of this code was 'Acked-by: Dmitry Torokhov <dtor@mail.ru>'
This one only differs by using runtime-selected IRQ definitions instead
of static compile-time preprocessor macros.
Relevant register and interrupt definitions are provided by PATCH 1/6 in
this series, so one would need that to make use of this code.
drivers/input/serio/Kconfig | 3 +-
drivers/input/serio/i8042-vt8500.h | 74 ++++++++++++++++++++++++++++++++++++
drivers/input/serio/i8042.h | 2 +
3 files changed, 78 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 6256233..ff799f3 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
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..4ff9e1c
--- /dev/null
+++ b/drivers/input/serio/i8042-vt8500.h
@@ -0,0 +1,74 @@
+#ifndef _I8042_VT8500_H
+#define _I8042_VT8500_H
+
+#include <mach/mmio_regs.h>
+#include <mach/irq_defs.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 (wmt_current_irqs->ps2kbd)
+#define I8042_AUX_IRQ (wmt_current_irqs->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 = true;
+ regbase = ioremap(wmt_current_regs->ps2, SZ_1K);
+ if (!regbase)
+ return -ENODEV;
+
+ 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)
--
1.7.3.2
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 3/6 v2] input: Add support for VIA VT8500 and compatibles in i8042
2010-11-07 16:28 ` [PATCH 3/6 v2] " Alexey Charkov
@ 2010-11-12 22:54 ` Alexey Charkov
2010-11-12 23:30 ` Dmitry Torokhov
0 siblings, 1 reply; 11+ messages in thread
From: Alexey Charkov @ 2010-11-12 22:54 UTC (permalink / raw)
To: linux-arm-kernel
Cc: vt8500-wm8505-linux-kernel, Alexey Charkov, Dmitry Torokhov,
Tony Lindgren, Feng Tang, Janusz Krzysztofik,
Dmitry Eremin-Solenikov, linux-input, linux-kernel
2010/11/7 Alexey Charkov <alchark@gmail.com>:
> 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 (if appropriate) commit to a relevant git tree for
> further integration in 2.6.38.
>
> Previous version of this code was 'Acked-by: Dmitry Torokhov <dtor@mail.ru>'
> This one only differs by using runtime-selected IRQ definitions instead
> of static compile-time preprocessor macros.
>
> Relevant register and interrupt definitions are provided by PATCH 1/6 in
> this series, so one would need that to make use of this code.
>
> drivers/input/serio/Kconfig | 3 +-
> drivers/input/serio/i8042-vt8500.h | 74 ++++++++++++++++++++++++++++++++++++
> drivers/input/serio/i8042.h | 2 +
> 3 files changed, 78 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 6256233..ff799f3 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
> 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..4ff9e1c
> --- /dev/null
> +++ b/drivers/input/serio/i8042-vt8500.h
> @@ -0,0 +1,74 @@
> +#ifndef _I8042_VT8500_H
> +#define _I8042_VT8500_H
> +
> +#include <mach/mmio_regs.h>
> +#include <mach/irq_defs.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 (wmt_current_irqs->ps2kbd)
> +#define I8042_AUX_IRQ (wmt_current_irqs->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 = true;
> + regbase = ioremap(wmt_current_regs->ps2, SZ_1K);
> + if (!regbase)
> + return -ENODEV;
> +
> + 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)
> --
> 1.7.3.2
>
>
Any comments about this?
Thanks,
Alexey
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/6 v2] input: Add support for VIA VT8500 and compatibles in i8042
2010-11-12 22:54 ` Alexey Charkov
@ 2010-11-12 23:30 ` Dmitry Torokhov
2010-11-13 0:00 ` Alexey Charkov
0 siblings, 1 reply; 11+ messages in thread
From: Dmitry Torokhov @ 2010-11-12 23:30 UTC (permalink / raw)
To: Alexey Charkov
Cc: linux-arm-kernel, vt8500-wm8505-linux-kernel, Tony Lindgren,
Feng Tang, Janusz Krzysztofik, Dmitry Eremin-Solenikov,
linux-input, linux-kernel
On Sat, Nov 13, 2010 at 01:54:14AM +0300, Alexey Charkov wrote:
> 2010/11/7 Alexey Charkov <alchark@gmail.com>:
> > 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 (if appropriate) commit to a relevant git tree for
> > further integration in 2.6.38.
> >
> > Previous version of this code was 'Acked-by: Dmitry Torokhov <dtor@mail.ru>'
> > This one only differs by using runtime-selected IRQ definitions instead
> > of static compile-time preprocessor macros.
> >
> > Relevant register and interrupt definitions are provided by PATCH 1/6 in
> > this series, so one would need that to make use of this code.
> >
> > drivers/input/serio/Kconfig | 3 +-
> > drivers/input/serio/i8042-vt8500.h | 74 ++++++++++++++++++++++++++++++++++++
> > drivers/input/serio/i8042.h | 2 +
> > 3 files changed, 78 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 6256233..ff799f3 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
> > 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..4ff9e1c
> > --- /dev/null
> > +++ b/drivers/input/serio/i8042-vt8500.h
> > @@ -0,0 +1,74 @@
> > +#ifndef _I8042_VT8500_H
> > +#define _I8042_VT8500_H
> > +
> > +#include <mach/mmio_regs.h>
> > +#include <mach/irq_defs.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 (wmt_current_irqs->ps2kbd)
> > +#define I8042_AUX_IRQ (wmt_current_irqs->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 = true;
> > + regbase = ioremap(wmt_current_regs->ps2, SZ_1K);
> > + if (!regbase)
> > + return -ENODEV;
> > +
> > + 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)
> > --
> > 1.7.3.2
> >
> >
>
> Any comments about this?
>
Looks good to me (ignoring the fact that whole i8042 initialization
needs to be reworked and pushed into arch/board code which is out of
scope of these series).
I expect it will be merged with the rest of VT8500 patches through
whatever tree takes them.
Thanks.
--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/6 v2] input: Add support for VIA VT8500 and compatibles in i8042
2010-11-12 23:30 ` Dmitry Torokhov
@ 2010-11-13 0:00 ` Alexey Charkov
0 siblings, 0 replies; 11+ messages in thread
From: Alexey Charkov @ 2010-11-13 0:00 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: linux-arm-kernel, vt8500-wm8505-linux-kernel, Tony Lindgren,
Feng Tang, Janusz Krzysztofik, Dmitry Eremin-Solenikov,
linux-input, linux-kernel
2010/11/13 Dmitry Torokhov <dmitry.torokhov@gmail.com>:
> Looks good to me (ignoring the fact that whole i8042 initialization
> needs to be reworked and pushed into arch/board code which is out of
> scope of these series).
>
> I expect it will be merged with the rest of VT8500 patches through
> whatever tree takes them.
Thanks, Dmitry!
Best regards,
Alexey
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2010-11-13 0:00 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1287608139-21354-1-git-send-email-alchark@gmail.com>
2010-10-20 20:55 ` [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042 Alexey Charkov
2010-10-20 21:15 ` Dmitry Torokhov
2010-10-20 21:24 ` Alexey Charkov
2010-10-20 22:14 ` [PATCH 3/6 v2] " Alexey Charkov
2010-10-20 23:46 ` Dmitry Torokhov
2010-10-30 22:23 ` [PATCH 3/6] " Ben Dooks
2010-11-01 18:31 ` Alexey Charkov
[not found] <1289147348-31969-1-git-send-email-alchark@gmail.com>
2010-11-07 16:28 ` [PATCH 3/6 v2] " Alexey Charkov
2010-11-12 22:54 ` Alexey Charkov
2010-11-12 23:30 ` Dmitry Torokhov
2010-11-13 0:00 ` Alexey Charkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).