Re: [PATCH 1/5] i8042: intel-8042 DT documentation

2015-02-10 Thread Roman Volkov
В Tue, 3 Feb 2015 11:32:02 -0800
Dmitry Torokhov  пишет:

> On Tue, Feb 03, 2015 at 11:38:16AM +, Mark Rutland wrote:
> > On Mon, Feb 02, 2015 at 09:48:46PM +, Roman Volkov wrote:
> > > Documentation for 'intel,8042' DT compatible node.
> > > 
> > > Signed-off-by: Tony Prisk 
> > > Signed-off-by: Roman Volkov 
> > > ---
> > >  .../devicetree/bindings/input/intel-8042.txt   | 29
> > > ++ 1 file changed, 29 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 000..2aea7ec --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/input/intel-8042.txt
> > > @@ -0,0 +1,29 @@
> > > +* Intel 8042 Keyboard Controller
> > > +
> > > +Required properties:
> > > +- compatible: should be "intel,8042"
> > > +- regs: memory for keyboard controller
> > > +- interrupts: two interrupts should be specified (keyboard and
> > > aux)
> > 
> > Is it possible only one of these is wired up?
> 
> Yes, and we should support this case. The core of i8042 does.
> 

Do we need to just read these IRQ numbers and leave them negative if
absent? Will it be acceptable? This would look like:

i8042_kbd_irq = platform_get_irq_byname(pdev, "kbd");

Testing shows it prints "Invalid argument" error -22 when an IRQ is
absent and we are not using nokbd/noaux module options.

> 
> > 
> > It might be worth using interrupt-names.
> > 
> > > +- command-reg: offset in memory for command register
> > > +- status-reg: offset in memory for status register
> > > +- data-reg: offset in memory for data register
> > > +
> > > +Optional properties:
> > > +- init-reset: Controller should be reset on init and cleanup
> > 
> > Why is this necessary? Can't we just always reset it?
> 
> We do not reset by default on x86 because BIOS takes care of this for
> us and quite often firmware that emulates i8042 gets confused if we
> try to reset it too. Non non-x86 we reset by default. I think we
> should do the same for OF case  (reset) and not use this property.
> 
> > 
> > > +
> > > +Optional Linux-specific properties:
> > > +- linux,kbd_phys_desc: defaults to i8042/serio0
> > > +- linux,aux_phys_desc: defaults to i8042/serio1
> > > +- linux,mux_phys_desc: defaults to i8042/serio%d
> > 
> > As a general note, s/_/-/ in property names please.
> > 
> > That said, I don't follow why we should have these at all. I don't
> > understand what the description is intended to mean.
> > 
> > In general we want to avoid Linux-specific properties. If a DTB
> > needs to know about the inernals of an OS it's likely to be fragile
> > and broken over time.
> 
> Right, the desc were carried over from older days to keep dmesg
> familiar. With OF it is new platforms so just settle on a generic
> description and use it instead of allowing to specify through DT.
> 
> > 
> > > +
> > > +
> > > +Example:
> > > + keyboard@d8008800 {
> > > + compatible = "intel,8042";
> > > + reg = <0xd8008800 0x100>;
> > > + interrupts = <23 4>;
> > 
> > If this is intended to be two interrupts, please bracket them
> > individually, e.g.
> > 
> > interrupts = <23>, <4>;
> > 
> > > + command-reg = <0x04>;
> > > + status-reg = <0x04>;
> > 
> > Same address?
> > 
> > > + data-reg = <0x00>;
> > > + mux-ports = <2>;
> > 
> > This wasn't documented above.
> 
> I think active MUX is purely x86 concept, I have never heard of it
> being used anywhere else.
> 
> Thanks.
> 

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/5] i8042: intel-8042 DT documentation

2015-02-03 Thread Dmitry Torokhov
On Tue, Feb 03, 2015 at 11:38:16AM +, Mark Rutland wrote:
> On Mon, Feb 02, 2015 at 09:48:46PM +, Roman Volkov wrote:
> > Documentation for 'intel,8042' DT compatible node.
> > 
> > Signed-off-by: Tony Prisk 
> > Signed-off-by: Roman Volkov 
> > ---
> >  .../devicetree/bindings/input/intel-8042.txt   | 29 
> > ++
> >  1 file changed, 29 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 000..2aea7ec
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/input/intel-8042.txt
> > @@ -0,0 +1,29 @@
> > +* Intel 8042 Keyboard Controller
> > +
> > +Required properties:
> > +- compatible: should be "intel,8042"
> > +- regs: memory for keyboard controller
> > +- interrupts: two interrupts should be specified (keyboard and aux)
> 
> Is it possible only one of these is wired up?

Yes, and we should support this case. The core of i8042 does.


> 
> It might be worth using interrupt-names.
> 
> > +- command-reg: offset in memory for command register
> > +- status-reg: offset in memory for status register
> > +- data-reg: offset in memory for data register
> > +
> > +Optional properties:
> > +- init-reset: Controller should be reset on init and cleanup
> 
> Why is this necessary? Can't we just always reset it?

We do not reset by default on x86 because BIOS takes care of this for us
and quite often firmware that emulates i8042 gets confused if we try to
reset it too. Non non-x86 we reset by default. I think we should do the
same for OF case  (reset) and not use this property.

> 
> > +
> > +Optional Linux-specific properties:
> > +- linux,kbd_phys_desc: defaults to i8042/serio0
> > +- linux,aux_phys_desc: defaults to i8042/serio1
> > +- linux,mux_phys_desc: defaults to i8042/serio%d
> 
> As a general note, s/_/-/ in property names please.
> 
> That said, I don't follow why we should have these at all. I don't
> understand what the description is intended to mean.
> 
> In general we want to avoid Linux-specific properties. If a DTB needs to
> know about the inernals of an OS it's likely to be fragile and broken
> over time.

Right, the desc were carried over from older days to keep dmesg
familiar. With OF it is new platforms so just settle on a generic
description and use it instead of allowing to specify through DT.

> 
> > +
> > +
> > +Example:
> > +   keyboard@d8008800 {
> > +   compatible = "intel,8042";
> > +   reg = <0xd8008800 0x100>;
> > +   interrupts = <23 4>;
> 
> If this is intended to be two interrupts, please bracket them
> individually, e.g.
> 
>   interrupts = <23>, <4>;
> 
> > +   command-reg = <0x04>;
> > +   status-reg = <0x04>;
> 
> Same address?
> 
> > +   data-reg = <0x00>;
> > +   mux-ports = <2>;
> 
> This wasn't documented above.

I think active MUX is purely x86 concept, I have never heard of it being
used anywhere else.

Thanks.

-- 
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/5] i8042: intel-8042 DT documentation

2015-02-03 Thread Mark Rutland
On Mon, Feb 02, 2015 at 09:48:46PM +, Roman Volkov wrote:
> Documentation for 'intel,8042' DT compatible node.
> 
> Signed-off-by: Tony Prisk 
> Signed-off-by: Roman Volkov 
> ---
>  .../devicetree/bindings/input/intel-8042.txt   | 29 
> ++
>  1 file changed, 29 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 000..2aea7ec
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/intel-8042.txt
> @@ -0,0 +1,29 @@
> +* Intel 8042 Keyboard Controller
> +
> +Required properties:
> +- compatible: should be "intel,8042"
> +- regs: memory for keyboard controller
> +- interrupts: two interrupts should be specified (keyboard and aux)

Is it possible only one of these is wired up?

It might be worth using interrupt-names.

> +- command-reg: offset in memory for command register
> +- status-reg: offset in memory for status register
> +- data-reg: offset in memory for data register
> +
> +Optional properties:
> +- init-reset: Controller should be reset on init and cleanup

Why is this necessary? Can't we just always reset it?

> +
> +Optional Linux-specific properties:
> +- linux,kbd_phys_desc: defaults to i8042/serio0
> +- linux,aux_phys_desc: defaults to i8042/serio1
> +- linux,mux_phys_desc: defaults to i8042/serio%d

As a general note, s/_/-/ in property names please.

That said, I don't follow why we should have these at all. I don't
understand what the description is intended to mean.

In general we want to avoid Linux-specific properties. If a DTB needs to
know about the inernals of an OS it's likely to be fragile and broken
over time.

> +
> +
> +Example:
> + keyboard@d8008800 {
> + compatible = "intel,8042";
> + reg = <0xd8008800 0x100>;
> + interrupts = <23 4>;

If this is intended to be two interrupts, please bracket them
individually, e.g.

interrupts = <23>, <4>;

> + command-reg = <0x04>;
> + status-reg = <0x04>;

Same address?

> + data-reg = <0x00>;
> + mux-ports = <2>;

This wasn't documented above.

Thanks,
Mark.

> + };
> -- 
> 2.2.2
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/5] i8042: intel-8042 DT documentation

2015-02-02 Thread Roman Volkov
В Tue,  3 Feb 2015 00:48:46 +0300
Roman Volkov  пишет:

> Documentation for 'intel,8042' DT compatible node.
> 
> Signed-off-by: Tony Prisk 
> Signed-off-by: Roman Volkov 
> ---
>  .../devicetree/bindings/input/intel-8042.txt   | 29
> ++ 1 file changed, 29 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 000..2aea7ec
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/intel-8042.txt
> @@ -0,0 +1,29 @@
> +* Intel 8042 Keyboard Controller
> +
> +Required properties:
> +- compatible: should be "intel,8042"
> +- regs: memory for keyboard controller
> +- interrupts: two interrupts should be specified (keyboard and aux)
> +- command-reg: offset in memory for command register
> +- status-reg: offset in memory for status register
> +- data-reg: offset in memory for data register
> +
> +Optional properties:
> +- init-reset: Controller should be reset on init and cleanup
> +
> +Optional Linux-specific properties:
> +- linux,kbd_phys_desc: defaults to i8042/serio0
> +- linux,aux_phys_desc: defaults to i8042/serio1
> +- linux,mux_phys_desc: defaults to i8042/serio%d
> +
> +
> +Example:
> + keyboard@d8008800 {
> + compatible = "intel,8042";
> + reg = <0xd8008800 0x100>;
> + interrupts = <23 4>;
> + command-reg = <0x04>;
> + status-reg = <0x04>;
> + data-reg = <0x00>;
> + mux-ports = <2>;
> + };

Hi,

This patch set is to enable the Open Firmware Device Tree support for
the i8042 controller. Yes, some ARM SoC boards are still using i8042. As
an example, it is the vt8500 architecture.

I've tested this on my wm8505 machine in both configurations: as a
module and built-in. Also a modification of this driver is available
at https://github.com/linux-wmt/linux-vtwm. This should not affect x86
and similar architectures without the DT enabled in the config.

Regards,
Roman.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/5] i8042: intel-8042 DT documentation

2015-02-02 Thread Roman Volkov
Documentation for 'intel,8042' DT compatible node.

Signed-off-by: Tony Prisk 
Signed-off-by: Roman Volkov 
---
 .../devicetree/bindings/input/intel-8042.txt   | 29 ++
 1 file changed, 29 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 000..2aea7ec
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/intel-8042.txt
@@ -0,0 +1,29 @@
+* Intel 8042 Keyboard Controller
+
+Required properties:
+- compatible: should be "intel,8042"
+- regs: memory for keyboard controller
+- interrupts: two interrupts should be specified (keyboard and aux)
+- command-reg: offset in memory for command register
+- status-reg: offset in memory for status register
+- data-reg: offset in memory for data register
+
+Optional properties:
+- init-reset: Controller should be reset on init and cleanup
+
+Optional Linux-specific properties:
+- linux,kbd_phys_desc: defaults to i8042/serio0
+- linux,aux_phys_desc: defaults to i8042/serio1
+- linux,mux_phys_desc: defaults to i8042/serio%d
+
+
+Example:
+   keyboard@d8008800 {
+   compatible = "intel,8042";
+   reg = <0xd8008800 0x100>;
+   interrupts = <23 4>;
+   command-reg = <0x04>;
+   status-reg = <0x04>;
+   data-reg = <0x00>;
+   mux-ports = <2>;
+   };
-- 
2.2.2

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html