Let neutral mode be set in talonfx

This becomes useful when we need a motor to be on coast mode for testing
or bringup

Signed-off-by: Maxwell Henderson <mxwhenderson@gmail.com>
Change-Id: Iad4fc08cbf5e3eedb110e77437e5c43fe1c2941f
diff --git a/frc971/wpilib/talonfx.cc b/frc971/wpilib/talonfx.cc
index 5e77618..7959f2f 100644
--- a/frc971/wpilib/talonfx.cc
+++ b/frc971/wpilib/talonfx.cc
@@ -8,6 +8,7 @@
                  double stator_current_limit, double supply_current_limit)
     : talon_(device_id, canbus),
       device_id_(device_id),
+      neutral_mode_(ctre::phoenix6::signals::NeutralModeValue::Brake),
       inverted_(inverted),
       device_temp_(talon_.GetDeviceTemp()),
       supply_voltage_(talon_.GetSupplyVoltage()),
@@ -63,7 +64,7 @@
   current_limits.SupplyCurrentLimitEnable = true;
 
   ctre::phoenix6::configs::MotorOutputConfigs output_configs;
-  output_configs.NeutralMode = ctre::phoenix6::signals::NeutralModeValue::Brake;
+  output_configs.NeutralMode = neutral_mode_;
   output_configs.DutyCycleNeutralDeadband = 0;
 
   output_configs.Inverted = inverted_;
diff --git a/frc971/wpilib/talonfx.h b/frc971/wpilib/talonfx.h
index a3e3066..1f64b5b 100644
--- a/frc971/wpilib/talonfx.h
+++ b/frc971/wpilib/talonfx.h
@@ -79,6 +79,10 @@
     supply_current_limit_ = supply_current_limit;
   }
 
+  void set_neutral_mode(ctre::phoenix6::signals::NeutralModeValue value) {
+    neutral_mode_ = value;
+  }
+
   static double SafeSpeed(double voltage) {
     return (::aos::Clip(voltage, -kMaxBringupPower, kMaxBringupPower) / 12.0);
   }
@@ -87,6 +91,7 @@
   ctre::phoenix6::hardware::TalonFX talon_;
   int device_id_;
 
+  ctre::phoenix6::signals::NeutralModeValue neutral_mode_;
   ctre::phoenix6::signals::InvertedValue inverted_;
 
   ctre::phoenix6::StatusSignal<units::temperature::celsius_t> device_temp_;