From: chenzhiwo Date: Wed, 17 May 2017 08:34:57 +0000 (+0800) Subject: Add device tree overlay for GPIO connected rotary encoder. X-Git-Tag: archive/raspbian/4.9.82-1+deb9u3+rpi1_jessie~5^2~222 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=07217c257ade47eec5adf0a0f3f31cb18d2cdad3;p=linux-4.9.git Add device tree overlay for GPIO connected rotary encoder. See Documentation/input/rotary-encoder.txt for more information. --- diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile index b62edf6ce17e..9368f6281dd8 100644 --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -75,6 +75,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ pwm-2chan.dtbo \ qca7000.dtbo \ raspidac3.dtbo \ + rotary-encoder.dtbo \ rpi-backlight.dtbo \ rpi-cirrus-wm5102.dtbo \ rpi-dac.dtbo \ diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README index b3aadaa6cfaf..95600381448b 100644 --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -1115,6 +1115,15 @@ Load: dtoverlay=raspidac3 Params: +Name: rotary-encoder +Info: Overlay for GPIO connected rotary encoder. +Load: dtoverlay=rotary-encoder,= +Params: rotary0_pin_a GPIO connected to rotary encoder channel A + (default 4). + rotary0_pin_b GPIO connected to rotary encoder channel B + (default 17). + + Name: rpi-backlight Info: Raspberry Pi official display backlight driver Load: dtoverlay=rpi-backlight diff --git a/arch/arm/boot/dts/overlays/rotary-encoder-overlay.dts b/arch/arm/boot/dts/overlays/rotary-encoder-overlay.dts new file mode 100644 index 000000000000..c0c6bccff60c --- /dev/null +++ b/arch/arm/boot/dts/overlays/rotary-encoder-overlay.dts @@ -0,0 +1,43 @@ +// Device tree overlay for GPIO connected rotary encoder. +/dts-v1/; +/plugin/; + +/ { + compatible = "brcm,bcm2708"; + + fragment@0 { + target = <&gpio>; + __overlay__ { + rotary0_pins: rotary0_pins { + brcm,pins = <4 17>; /* gpio 4 17 */ + brcm,function = <0 0>; /* input */ + brcm,pull = <2 2>; /* pull-up */ + }; + + }; + }; + + fragment@1 { + target-path = "/"; + __overlay__ { + rotary0: rotary@0 { + compatible = "rotary-encoder"; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&rotary0_pins>; + gpios = <&gpio 4 0>, <&gpio 17 0>; + linux,axis = <0>; /* REL_X */ + rotary-encoder,encoding = "gray"; + rotary-encoder,relative-axis; + }; + }; + + }; + + __overrides__ { + rotary0_pin_a = <&rotary0>,"gpios:4", + <&rotary0_pins>,"brcm,pins:0"; + rotary0_pin_b = <&rotary0>,"gpios:16", + <&rotary0_pins>,"brcm,pins:4"; + }; +};