overlays: ghost-amp: Add DAC mute control
authorPhil Elwell <phil@raspberrypi.com>
Fri, 16 Apr 2021 08:31:17 +0000 (09:31 +0100)
committerPhil Elwell <phil@raspberrypi.com>
Fri, 16 Apr 2021 14:10:36 +0000 (15:10 +0100)
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
arch/arm/boot/dts/overlays/ghost-amp-overlay.dts

index f051dfb..dbedb4b 100644 (file)
@@ -4,10 +4,11 @@
 
 #include <dt-bindings/gpio/gpio-fsm.h>
 
-#define ENABLE GF_SW(0)
-#define FAULT  GF_IP(0) // GPIO5
-#define RELAY1 GF_OP(0) // GPIO22
-#define RELAY2 GF_OP(1) // GPIO23
+#define ENABLE   GF_SW(0)
+#define FAULT    GF_IP(0) // GPIO5
+#define RELAY1   GF_OP(0) // GPIO22
+#define RELAY2   GF_OP(1) // GPIO23
+#define RELAYSSR GF_OP(2) // GPIO24
 
 / {
        compatible = "brcm,bcm2835";
                                gpio-line-names = "enable";
                                input-gpios  = <&gpio 5 1>;  // FAULT (active low)
                                output-gpios = <&gpio 22 0>, // RELAY1
-                                              <&gpio 23 0>; // RELAY2
+                                              <&gpio 23 0>, // RELAY2
+                                              <&gpio 24 0>; // RELAYSSR
                                shutdown-timeout-ms = <1000>;
 
                                amp_off {
                                        start_state;
                                        shutdown_state;
 
-                                       set = <RELAY2 0>,
+                                       set = <RELAYSSR 0>,
+                                             <RELAY2 0>,
                                              <RELAY1 0>;
                                        amp_on_1 = <ENABLE 1>;
                                        fault = <FAULT 1>;
                                };
 
                                amp_on {
-                                       set = <RELAY2 1>;
+                                       set = <RELAY2 1>,
+                                             <RELAYSSR 1>;
                                        amp_on_wait = <ENABLE 0>;
                                        fault = <FAULT 1>;
                                };
 
                                amp_on_wait {
+                                       set = <RELAYSSR 0>;
                                        amp_off_1 = <GF_DELAY (30*60*1000)>,
                                                    <GF_SHUTDOWN 0>;
                                        amp_on = <ENABLE 1>;
                                // Keep this a distinct state to prevent
                                // changes and for the diagnostic output
                                fault {
-                                       set = <RELAY2 0>,
+                                       set = <RELAYSSR 0>,
+                                             <RELAY2 0>,
                                              <RELAY1 0>;
                                        amp_off = <FAULT 0>;
                                        shutdown_state;
                target = <&gpio>;
                __overlay__ {
                        ghost_amp_pins: ghost_amp_pins {
-                               brcm,pins = <5 22 23>;
-                               brcm,function = <0 1 1>; /* in out out */
-                               brcm,pull = <2 0 0>; /* up none none */
+                               brcm,pins = <5 22 23 24>;
+                               brcm,function = <0 1 1 1>; /* in out out out */
+                               brcm,pull = <2 0 0 0>; /* up none none none */
                        };
                };
        };