Thread (17 messages) 17 messages, 4 authors, 2013-02-09

Re: [PATCH RESEND] media: rc: gpio-ir-recv: add support for device tree parsing

From: Mauro Carvalho Chehab <hidden>
Date: 2013-02-08 19:06:37
Also in: linux-media, lkml

Em Fri, 8 Feb 2013 19:12:31 +0100
Sebastian Hesselbarth [off-list ref] escreveu:
On Fri, Feb 8, 2013 at 6:57 PM, Mauro Carvalho Chehab
[off-list ref] wrote:
quoted
Em Wed, 06 Feb 2013 18:18:22 +0100
Sebastian Hesselbarth [off-list ref] escreveu:
quoted
On 02/06/2013 02:48 PM, Sylwester Nawrocki wrote:
quoted
On 02/06/2013 09:03 AM, Sebastian Hesselbarth wrote:
quoted
This patch adds device tree parsing for gpio_ir_recv platform_data and
the mandatory binding documentation. It basically follows what we already
have for e.g. gpio_keys. All required device tree properties are OS
independent but optional properties allow linux specific support for rc
protocols and maps.

There was a similar patch sent by Matus Ujhelyi but that discussion
died after the first reviews.

Signed-off-by: Sebastian Hesselbarth<sebastian.hesselbarth@gmail.com>
---
...
quoted
diff --git a/Documentation/devicetree/bindings/media/gpio-ir-receiver.txt b/Documentation/devicetree/bindings/media/gpio-ir-receiver.txt
new file mode 100644
index 0000000..937760c
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/gpio-ir-receiver.txt
@@ -0,0 +1,20 @@
+Device-Tree bindings for GPIO IR receiver
+
+Required properties:
+  - compatible = "gpio-ir-receiver";
+  - gpios: OF device-tree gpio specification.
+
+Optional properties:
+  - linux,allowed-rc-protocols: Linux specific u64 bitmask of allowed
+      rc protocols.
You likely need to specify in these bindings documentation which bit
corresponds to which RC protocol.

I'm not very familiar with the RC internals, but why it has to be
specified statically in the device tree, when decoding seems to be
mostly software defined ? I might be missing something though..
Sylwester,

I am not familiar with RC internals either. Maybe somebody with more
insight in media/rc can clarify the specific needs for the rc subsystem.
I was just transferring the DT support approach taken by gpio_keys to
gpio_ir_recv as I will be using it on mach-dove/cubox soon.
The allowed rc protocol field are there for devices with hardware IR
support, where only a limited set of remote protocols can be decoded.

For software decoders RC_BIT_ALL is the proper setup. Users of course
can change it via sysfs at runtime, or a software decoder may be
disabled at compilation time by not selecting its CONFIG_* var.
Mauro,

thanks for the clarification! So for v2 of the patch, you all agree on removing
linux,allowed-rc-protocols from device node properties?
Yes.
quoted
quoted
quoted
Couldn't this be configured at run time, with all protocols allowed
as the default ?
Actually, this is how the internal rc code works. If there is nothing
defined for allowed_protocols it assumes that all protocols are supported.
That is why above node properties are optional.

About the binding documentation of allowed_protocols, rc_map, or the
default behavior of current linux code, I don't think they will stay
in-sync for long.
Why not? The rc_map name is used either by Kernelspace or by Userspace,
in order to provide the IR keycode name that matches a given keytable.

There's no plans to change it, even in the long term.
Actually, I wasn't referring to changing names or bitmasks but updating
the binding documentation with new allowed protocols or supported map
names.

For linux,rc-map-name property it should be enough to just write that it
relates to linux rc subsystem rc_map name - how to actually
set it to a useful name is documented in rc subsystem.
It should be one of the names that are there at include/media/rc-map.h.
And if the
property is not set at all, DT parsing in gpio_ir_recv assumes the
subsystem (or gpio_ir_recv platform) default, IIRC "rc-none".
The right default should be "rc-empty", but please use the macro RC_MAP_EMPTY
instead.
I'll respin a v2 without allowed-protocols property soon.

Sebastian

-- 

Cheers,
Mauro
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help