1 // Demo overlay for the gpio-fsm driver
5 #include <dt-bindings/gpio/gpio-fsm.h>
7 #define BUTTON1 GF_IP(0)
8 #define BUTTON2 GF_SW(0)
9 #define RED GF_OP(0) // GPIO7
10 #define AMBER GF_OP(1) // GPIO8
11 #define GREEN GF_OP(2) // GPIO25
14 compatible = "brcm,bcm2835";
20 compatible = "rpi,gpio-fsm";
26 gpio-line-names = "button2";
27 input-gpios = <&gpio 6 1>; // BUTTON1 (active-low)
28 output-gpios = <&gpio 7 0>, // RED
30 <&gpio 25 0>; // GREEN
31 shutdown-timeout-ms = <2000>;
35 set = <RED 1>, <AMBER 0>, <GREEN 0>;
36 start2 = <GF_DELAY 250>;
40 set = <RED 0>, <AMBER 1>;
45 set = <RED 0>, <AMBER 0>, <GREEN 1>;
46 ready_wait = <BUTTON1 0>;
47 shutdown1 = <GF_SHUTDOWN 0>;
51 // Clear the soft GPIO
53 ready = <GF_DELAY 1000>;
54 shutdown1 = <GF_SHUTDOWN 0>;
58 stopping = <BUTTON1 1>, <BUTTON2 1>;
59 shutdown1 = <GF_SHUTDOWN 0>;
63 set = <GREEN 0>, <AMBER 1>;
64 stopped = <GF_DELAY 1000>;
68 set = <AMBER 0>, <RED 1>;
69 get_set = <GF_DELAY 3000>;
70 shutdown1 = <GF_SHUTDOWN 0>;
79 set = <RED 0>, <AMBER 0>, <GREEN 1>;
80 shutdown2 = <GF_SHUTDOWN 250>;
84 set = <AMBER 1>, <GREEN 0>;
85 shutdown3 = <GF_SHUTDOWN 250>;
89 set = <RED 1>, <AMBER 0>;
90 shutdown4 = <GF_SHUTDOWN 250>;
95 set = <RED 0>, <AMBER 0>, <GREEN 0>;
102 fsm_debug = <&fsm_demo>,"debug:0";