Merge tag 'v5.15.57' into rpi-5.15.y
[platform/kernel/linux-rpi.git] / arch / arm / boot / dts / overlays / rotary-encoder-overlay.dts
1 // Device tree overlay for GPIO connected rotary encoder.
2 /dts-v1/;
3 /plugin/;
4
5 / {
6         compatible = "brcm,bcm2835";
7
8         fragment@0 {
9                 target = <&gpio>;
10                 __overlay__ {
11                         rotary_pins: rotary_pins@4 {
12                                 brcm,pins = <4 17>; /* gpio 4 17 */
13                                 brcm,function = <0 0>; /* input */
14                                 brcm,pull = <2 2>; /* pull-up */
15                         };
16
17                 };
18         };
19
20         fragment@1 {
21                 target-path = "/";
22                 __overlay__ {
23                         rotary: rotary@4 {
24                                 compatible = "rotary-encoder";
25                                 status = "okay";
26                                 pinctrl-names = "default";
27                                 pinctrl-0 = <&rotary_pins>;
28                                 gpios = <&gpio 4 0>, <&gpio 17 0>;
29                                 linux,axis = <0>; /* REL_X */
30                                 rotary-encoder,encoding = "gray";
31                                 rotary-encoder,steps = <24>; /* 24 default */
32                                 rotary-encoder,steps-per-period = <1>; /* corresponds to full period mode. See README */
33                         };
34                 };
35
36         };  
37
38         __overrides__ {
39                 pin_a =             <&rotary>,"gpios:4",
40                                     <&rotary_pins>,"brcm,pins:0",
41                                     /* modify reg values to allow multiple instantiation */
42                                     <&rotary>,"reg:0",
43                                     <&rotary_pins>,"reg:0";
44                 pin_b =             <&rotary>,"gpios:16",
45                                     <&rotary_pins>,"brcm,pins:4";
46                 relative_axis =     <&rotary>,"rotary-encoder,relative-axis?";
47                 linux_axis =        <&rotary>,"linux,axis:0";
48                 rollover =          <&rotary>,"rotary-encoder,rollover?";
49                 steps-per-period =  <&rotary>,"rotary-encoder,steps-per-period:0";
50                 steps =             <&rotary>,"rotary-encoder,steps:0";
51                 wakeup =            <&rotary>,"wakeup-source?";
52                 encoding =          <&rotary>,"rotary-encoder,encoding";
53                 /* legacy parameters*/
54                 rotary0_pin_a =     <&rotary>,"gpios:4",
55                                     <&rotary_pins>,"brcm,pins:0";
56                 rotary0_pin_b =     <&rotary>,"gpios:16",
57                                     <&rotary_pins>,"brcm,pins:4";
58         };
59 };