356b7789a4bbd771289a364a3bf2cbfcbe9ecfc8
[openwrt.git] / target / linux / brcm2708 / patches-4.4 / 0106-dts-Added-overlay-for-gpio_ir_recv-driver.patch
1 From d97e7fdedbc15a25985dfa73f7e1c63e2b4ca4c8 Mon Sep 17 00:00:00 2001
2 From: Holger Steinhaus <hsteinhaus@gmx.de>
3 Date: Sat, 14 Nov 2015 18:37:43 +0100
4 Subject: [PATCH 106/127] dts: Added overlay for gpio_ir_recv driver
5
6 ---
7  arch/arm/boot/dts/overlays/Makefile            |  1 +
8  arch/arm/boot/dts/overlays/README              | 18 ++++++++++-
9  arch/arm/boot/dts/overlays/gpio-ir-overlay.dts | 45 ++++++++++++++++++++++++++
10  3 files changed, 63 insertions(+), 1 deletion(-)
11  create mode 100644 arch/arm/boot/dts/overlays/gpio-ir-overlay.dts
12
13 --- a/arch/arm/boot/dts/overlays/Makefile
14 +++ b/arch/arm/boot/dts/overlays/Makefile
15 @@ -16,6 +16,7 @@ dtb-$(RPI_DT_OVERLAYS) += ads7846-overla
16  dtb-$(RPI_DT_OVERLAYS) += bmp085_i2c-sensor-overlay.dtb
17  dtb-$(RPI_DT_OVERLAYS) += dht11-overlay.dtb
18  dtb-$(RPI_DT_OVERLAYS) += enc28j60-overlay.dtb
19 +dtb-$(RPI_DT_OVERLAYS) += gpio-ir-overlay.dtb
20  dtb-$(RPI_DT_OVERLAYS) += gpio-poweroff-overlay.dtb
21  dtb-$(RPI_DT_OVERLAYS) += hifiberry-amp-overlay.dtb
22  dtb-$(RPI_DT_OVERLAYS) += hifiberry-dac-overlay.dtb
23 --- a/arch/arm/boot/dts/overlays/README
24 +++ b/arch/arm/boot/dts/overlays/README
25 @@ -196,6 +196,22 @@ Params: int_pin                  GPIO us
26          speed                    SPI bus speed (default 12000000)
27  
28  
29 +Name:   gpio-ir
30 +Info:   Use GPIO pin as rc-core style infrared receiver input. The rc-core-
31 +        based gpio_ir_recv driver maps received keys directly to a
32 +        /dev/input/event* device, all decoding is done by the kernel - LIRC is
33 +        not required! The key mapping and other decoding parameters can be
34 +        configured by "ir-keytable" tool.
35 +Load:   dtoverlay=gpio-ir,<param>=<val>
36 +Params: gpio_pin                 Input pin number. Default is 18.
37 +
38 +        gpio_pull                Desired pull-up/down state (off, down, up)
39 +                                 Default is "down".
40 +
41 +        rc-map-name              Default rc keymap (can also be changed by
42 +                                 ir-keytable), defaults to "rc-rc6-mce"
43 +
44 +
45  Name:   gpio-poweroff
46  Info:   Drives a GPIO high or low on reboot
47  Load:   dtoverlay=gpio-poweroff,<param>=<val>
48 @@ -308,7 +324,7 @@ Params: <None>
49  Name:   lirc-rpi
50  Info:   Configures lirc-rpi (Linux Infrared Remote Control for Raspberry Pi)
51          Consult the module documentation for more details.
52 -Load:   dtoverlay=lirc-rpi,<param>=<val>,...
53 +Load:   dtoverlay=lirc-rpi,<param>=<val>
54  Params: gpio_out_pin             GPIO for output (default "17")
55  
56          gpio_in_pin              GPIO for input (default "18")
57 --- /dev/null
58 +++ b/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts
59 @@ -0,0 +1,45 @@
60 +// Definitions for ir-gpio module
61 +/dts-v1/;
62 +/plugin/;
63 +
64 +/ {
65 +        compatible = "brcm,bcm2708";
66 +
67 +        fragment@0 {
68 +                target-path = "/";
69 +                __overlay__ {
70 +                        gpio_ir: ir-receiver {
71 +                                compatible = "gpio-ir-receiver";
72 +
73 +                                // pin number, high or low
74 +                                gpios = <&gpio 18 1>;
75 +
76 +                                // parameter for keymap name
77 +                                linux,rc-map-name = "rc-rc6-mce";
78 +
79 +                                status = "okay";
80 +                        };
81 +                };
82 +        };
83 +
84 +        fragment@1 {
85 +                target = <&gpio>;
86 +                __overlay__ {
87 +                        gpio_ir_pins: gpio_ir_pins {
88 +                                brcm,pins = <18>;                       // pin 18
89 +                                brcm,function = <0>;                    // in
90 +                                brcm,pull = <1>;                        // down
91 +                        };
92 +                };
93 +        };
94 +
95 +        __overrides__ {
96 +                // parameters
97 +                gpio_pin =      <&gpio_ir>,"gpios:4",
98 +                                        <&gpio_ir_pins>,"brcm,pins:0",
99 +                                        <&gpio_ir_pins>,"brcm,pull:0";  // pin number
100 +                gpio_pull = <&gpio_ir_pins>,"brcm,pull:0";              // pull-up/down state
101 +
102 +                rc-map-name = <&gpio_ir>,"linux,rc-map-name";           // default rc map
103 +        };
104 +};