Re: [PATCH v2] media: rc: gpio-ir-recv: add support for device treeparsing

From: Sebastian Hesselbarth
Date: Fri Feb 08 2013 - 19:45:52 EST


On 02/09/2013 01:03 AM, Mauro Carvalho Chehab wrote:
Em Fri, 8 Feb 2013 21:38:07 +0100
Sebastian Hesselbarth<sebastian.hesselbarth@xxxxxxxxx> escreveu:

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 an optional property allow linux specific support for rc
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@xxxxxxxxx>
---
Changelog

v1->v2:
- get rid of ptr returned by _get_devtree_pdata()
- check for of_node instead for NULL pdata
- remove unneccessary double check for gpios property
- remove unneccessary #ifdef CONFIG_OF around match table

Cc: Grant Likely<grant.likely@xxxxxxxxxxxx>
Cc: Rob Herring<rob.herring@xxxxxxxxxxx>
Cc: Rob Landley<rob@xxxxxxxxxxx>
Cc: Mauro Carvalho Chehab<mchehab@xxxxxxxxxx>
Cc: Sebastian Hesselbarth<sebastian.hesselbarth@xxxxxxxxx>
Cc: Benoit Thebaudeau<benoit.thebaudeau@xxxxxxxxxxxx>
Cc: David Hardeman<david@xxxxxxxxxxx>
Cc: Trilok Soni<tsoni@xxxxxxxxxxxxxx>
Cc: Sylwester Nawrocki<s.nawrocki@xxxxxxxxxxx>
Cc: Matus Ujhelyi<ujhelyi.m@xxxxxxxxx>
Cc: devicetree-discuss@xxxxxxxxxxxxxxxx
Cc: linux-doc@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: linux-media@xxxxxxxxxxxxxxx
---
.../devicetree/bindings/media/gpio-ir-receiver.txt | 16 ++++++
drivers/media/rc/gpio-ir-recv.c | 57 ++++++++++++++++++++
2 files changed, 73 insertions(+)
create mode 100644 Documentation/devicetree/bindings/media/gpio-ir-receiver.txt

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..8589f30
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/gpio-ir-receiver.txt
@@ -0,0 +1,16 @@
+Device-Tree bindings for GPIO IR receiver
+
+Required properties:
+ - compatible = "gpio-ir-receiver";
+ - gpios: OF device-tree gpio specification.
+
+Optional properties:
+ - linux,rc-map-name: Linux specific remote control map name.
+
+Example node:
+
+ ir: ir-receiver {
+ compatible = "gpio-ir-receiver";
+ gpios =<&gpio0 19 1>;
+ linux,rc-map-name = "rc-rc6-mce";

Please change this to:
linux,rc-map-name = RC_MAP_RC6_MCE;

(as defined at include/media/rc-map.h).

Mauro,

this is not possible in device tree bindings. Device tree properties
can only carry numeric or string types (and some other stuff) but no
OS specific enumerations. So using strings is the only option here.

The idea of having those strings defined at the same header file is to:

Unfortunately, device tree blobs don't know about linux header files.

That leaves two options:
- allow the user to supply a string of the map in his device tree description
and risk that there may be a broken map name
- remove linux,rc-map-name from DT binding and let the user configure in
from user space (which is propably best choice anyway)

I tried both, DT supplied map name and ir-keytable from userspace
both work fine.

Sebastian

- make sure that the same keyboard is spelled at the same way on
all places;

- avoid people to duplicate IR keytables, using different names;

- help userspace to get the right table. In the future, the
plan is to remove all keytables from kernelspace, keeping there just the
name of the keytable. The existing userspace code (ir-keytables, part
of v4l-utils) use the keytable name to dynamically load the right table
in runtime and to switch the IR core to only handle the protocol that
it is associated with the loaded keytable.



--
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/