Re: [PATCH v3 5/5] i8042: Add i8042_dt.h glue for DT support

From: Roman Volkov
Date: Sat Jun 13 2015 - 14:00:24 EST


Something prevents me from following the thread, replying to myself.

> Ð Sat, 14 Mar 2015 20:20:38 -0700
> Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> wrote:
>
> >
> > Hi Roman,
> >
> > On Mon, Feb 16, 2015 at 12:11:43AM +0300, Roman Volkov wrote:
> > > Documentation for 'intel,8042' DT compatible node.
> > >
> > > Signed-off-by: Tony Prisk <linux@xxxxxxxxxxxxxxx>
> > > Signed-off-by: Roman Volkov <v1ron@xxxxxxxxx>
> > > ---
> > > .../devicetree/bindings/input/intel-8042.txt | 26
> > > ++++++++++++++++++++++ 1 file changed, 26 insertions(+)
> > > create mode 100644
> > > Documentation/devicetree/bindings/input/intel-8042.txt
> > >
> > > diff --git
> > > a/Documentation/devicetree/bindings/input/intel-8042.txt
> > > b/Documentation/devicetree/bindings/input/intel-8042.txt new file
> > > mode 100644 index 0000000..ab8a3e0 --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/input/intel-8042.txt
> > > @@ -0,0 +1,26 @@
> > > +Intel 8042 Keyboard Controller
> > > +
> > > +Required properties:
> > > +- compatible: should be "intel,8042"
> > > +- regs: memory for keyboard controller
> > > +- interrupts: usually, two interrupts should be specified
> > > (keyboard and aux).
> > > + However, only one interrupt is also allowed in case of
> > > absence of the
> > > + physical port in the controller. The i8042 driver must be
> > > loaded with
> > > + nokbd/noaux option in this case.
> > > +- interrupt-names: interrupt names corresponding to numbers in
> > > the list.
> > > + "kbd" is the keyboard interrupt and "aux" is the
> > > auxiliary (mouse)
> > > + interrupt.
> > > +- command-reg: offset in memory for command register
> > > +- status-reg: offset in memory for status register
> > > +- data-reg: offset in memory for data register
> > > +
> > > +Example:
> > > + i8042@d8008800 {
> > > + compatible = "intel,8042";
> > > + regs = <0xd8008800 0x100>;
> > > + interrupts = <23>, <4>;
> > > + interrupt-names = "kbd", "aux";
> > > + command-reg = <0x04>;
> > > + status-reg = <0x04>;
> > > + data-reg = <0x00>;
> > > + };
> >
> > No, we already have existing OF bindings for i8042 on sparc and
> > powerpc, I do not think we need to invent a brand new one.
> >
> > Thanks.
> >

I have looked more into that header (i8042-sparcio.h). Probably 8042 is
broken for SPARCs, because there is the platform_driver registered twice
with the same name "i8042". One driver is registered by
platform_create_bundle() from i8042.c and another from
platform_driver_register() from the i8042_sparcio.h. Kernel prints a
message "Error: Driver 'i8042' is already registered, aborting...".

I have not tested SPARC version of the kernel, just used the same code
for ARM, to rewrite my patch set.

There is no bindings at all for i8042, because a binding requires
the 'compatible' property to be defined, according to ePAPR. In the
SPARC header there is an ancient surrogate with searching by name
instead of the 'compatible' property (I understand, no standards were
defined for that hardware those days).

Regards,
Roman
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/