
#define NOT_USED     0
#define FLOAT        1
#define UNSIGNED16   2
#define SIGNED16     3
#define UNSIGNED32   4
#define SIGNED32     5

// Shutdown +15V and -15V. +/-15V is power for current sensors. It also goes to Auxiliary connector.
#define ENABLE_15V            (GpioDataRegs.GPDCLEAR.bit.GPIO124 = 1)
#define DISABLE_15V           (GpioDataRegs.GPDSET.bit.GPIO124 = 1)
#define ENABLE_N15V           (GpioDataRegs.GPDCLEAR.bit.GPIO125 = 1)
#define DISABLE_N15V          (GpioDataRegs.GPDSET.bit.GPIO125 = 1)

// LED
#define LED_R_ON              (GpioDataRegs.GPCSET.bit.GPIO65 = 1)
#define LED_R_OFF             (GpioDataRegs.GPCCLEAR.bit.GPIO65 = 1)
#define LED_R_TOGGLE          (GpioDataRegs.GPCTOGGLE.bit.GPIO65 = 1)
#define LED_Y_ON              (GpioDataRegs.GPBSET.bit.GPIO52 = 1)
#define LED_Y_OFF             (GpioDataRegs.GPBCLEAR.bit.GPIO52 = 1)
#define LED_Y_TOGGLE          (GpioDataRegs.GPBTOGGLE.bit.GPIO52 = 1)
#define LED_G_ON              (GpioDataRegs.GPBSET.bit.GPIO41 = 1)
#define LED_G_OFF             (GpioDataRegs.GPBCLEAR.bit.GPIO41 = 1)
#define LED_G_TOGGLE          (GpioDataRegs.GPBTOGGLE.bit.GPIO41 = 1)

#define LED_CASE1_ON          (GpioDataRegs.GPASET.bit.GPIO10 = 1)
#define LED_CASE1_OFF         (GpioDataRegs.GPACLEAR.bit.GPIO10 = 1)
#define LED_CASE1_TOGGLE      (GpioDataRegs.GPATOGGLE.bit.GPIO10 = 1)
#define LED_CASE2_ON          (GpioDataRegs.GPASET.bit.GPIO11 = 1)
#define LED_CASE2_OFF         (GpioDataRegs.GPACLEAR.bit.GPIO11 = 1)
#define LED_CASE2_TOGGLE      (GpioDataRegs.GPATOGGLE.bit.GPIO11 = 1)

// GPIOs for FAULTS
#define FAULT_PHA             GpioDataRegs.GPADAT.bit.GPIO6
#define FAULT_PHB             GpioDataRegs.GPADAT.bit.GPIO7
#define FAULT_PHC             GpioDataRegs.GPADAT.bit.GPIO8
#define FAULT_GLOBAL          GpioDataRegs.GPADAT.bit.GPIO15

// Gate drive power supply enables - pull high for enable, low to disable
#define EN_PS_PH_A            (GpioDataRegs.GPESET.bit.GPIO131 = 1)
#define DIS_PS_PH_A           (GpioDataRegs.GPECLEAR.bit.GPIO131 = 1)
#define EN_PS_PH_B            (GpioDataRegs.GPCSET.bit.GPIO66 = 1)
#define DIS_PS_PH_B           (GpioDataRegs.GPCCLEAR.bit.GPIO66 = 1)
#define EN_PS_PH_C            (GpioDataRegs.GPASET.bit.GPIO14 = 1)
#define DIS_PS_PH_C           (GpioDataRegs.GPACLEAR.bit.GPIO14 = 1)

// Logic Enable signal enables diff receiver for PWM signal on the gate drive board.
#define EN_PWM_PH_A            (GpioDataRegs.GPASET.bit.GPIO27 = 1)
#define DIS_PWM_PH_A           (GpioDataRegs.GPACLEAR.bit.GPIO27 = 1)
#define EN_PWM_PH_B            (GpioDataRegs.GPCSET.bit.GPIO64 = 1)
#define DIS_PWM_PH_B           (GpioDataRegs.GPCCLEAR.bit.GPIO64 = 1)
#define EN_PWM_PH_C            (GpioDataRegs.GPESET.bit.GPIO130 = 1)
#define DIS_PWM_PH_C           (GpioDataRegs.GPECLEAR.bit.GPIO130 = 1)

// Gate driver chip fault rest input, active high
#define RST_FLT_PH_A           (GpioDataRegs.GPASET.bit.GPIO25 = 1)
#define NOT_RST_FLT_PH_A       (GpioDataRegs.GPACLEAR.bit.GPIO25 = 1)
#define RST_FLT_PH_B           (GpioDataRegs.GPAET.bit.GPIO626 = 1)
#define NOT_RST_FLT_PH_B       (GpioDataRegs.GPACLEAR.bit.GPIO26 = 1)
#define RST_FLT_PH_C           (GpioDataRegs.GPBSET.bit.GPIO63 = 1)
#define NOT_RST_FLT_PH_C       (GpioDataRegs.GPBCLEAR.bit.GPIO63 = 1)

//DIGITAL OUTPUT A
#define DIG_OUTA              GpioDataRegs.GPBDAT.bit.GPIO57      // DIG_OUTa    GPIO-57
#define DIG_OUTA_HI           (GpioDataRegs.GPBSET.bit.GPIO57 = 1)
#define DIG_OUTA_LOW          (GpioDataRegs.GPBCLEAR.bit.GPIO57 = 1)

//DIGITAL OUTPUT C
#define DIG_OUTC              GpioDataRegs.GPBDAT.bit.GPIO58      // DIG_OUTc    GPIO-58
#define DIG_OUTC_HI           (GpioDataRegs.GPBSET.bit.GPIO58 = 1)
#define DIG_OUTC_LOW          (GpioDataRegs.GPBCLEAR.bit.GPIO58 = 1)

//DIGITAL OUTPUT B
#define DIG_OUTB              GpioDataRegs.GPBDAT.bit.GPIO59      // DIG_OUTb    GPIO-59
#define DIG_OUTBb_HI          (GpioDataRegs.GPBSET.bit.GPIO59 = 1)
#define DIG_OUTB_LOW          (GpioDataRegs.GPBCLEAR.bit.GPIO59 = 1)

//WHITE LED -- GPIO55
#define WHITE_LED             GpioDataRegs.GPBDAT.bit.GPIO55
#define WHITE_LED_ON          (GpioDataRegs.GPBSET.bit.GPIO55 = 1)
#define WHITE_LED_OFF         (GpioDataRegs.GPBCLEAR.bit.GPIO55 = 1)
#define WHITE_LED_TOGGLE      (GpioDataRegs.GPBTOGGLE.bit.GPIO55 = 1)

//BLUE LED -- GPIO56
#define BLUE_LED               GpioDataRegs.GPBDAT.bit.GPIO56
#define BLUE_LED_ON           (GpioDataRegs.GPBSET.bit.GPIO56 = 1)
#define BLUE_LED_OFF          (GpioDataRegs.GPBCLEAR.bit.GPIO56 = 1)
#define BLUE_LED_TOGGLE       (GpioDataRegs.GPBTOGGLE.bit.GPIO56 = 1)

//GPIO49 - AMUX_A0
#define AMUX_A0               GpioDataRegs.GPBDAT.bit.GPIO49
#define AMUX_A0_HI            (GpioDataRegs.GPBSET.bit.GPIO49 = 1)
#define AMUX_A0_LOW           (GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1)

//GPIO50 - AMUX_A1
#define AMUX_A1               GpioDataRegs.GPBDAT.bit.GPIO50
#define AMUX_A1_HI            (GpioDataRegs.GPBSET.bit.GPIO50 = 1)
#define AMUX_A1_LOW           (GpioDataRegs.GPBCLEAR.bit.GPIO50 = 1)

#define AMUX_SEL_CH1          GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1; GpioDataRegs.GPBCLEAR.bit.GPIO50 = 1
#define AMUX_SEL_CH2          GpioDataRegs.GPBSET.bit.GPIO49 = 1; GpioDataRegs.GPBCLEAR.bit.GPIO50 = 1
#define AMUX_SEL_CH3          GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1; GpioDataRegs.GPBSET.bit.GPIO50 = 1
#define AMUX_SEL_CH4          GpioDataRegs.GPBSET.bit.GPIO49 = 1; GpioDataRegs.GPBSET.bit.GPIO50 = 1

