#ifndef LINUX_GPIO_GPIOCALLBACKS_H_ #define LINUX_GPIO_GPIOCALLBACKS_H_ #include <fsfw_hal/common/gpio/gpioDefinitions.h> #include <fsfw_hal/common/gpio/GpioIF.h> namespace gpioCallbacks { /** * @brief This function initializes the GPIOs used to control the SN74LVC138APWR decoders on * the TCS Board and the interface board. */ void initSpiCsDecoder(GpioIF* gpioComIF); /** * @brief This function implements the decoding to multiply gpios by using the decoder * chips SN74LVC138APWR on the TCS board and the interface board. */ void spiCsDecoderCallback(gpioId_t gpioId, gpio::GpioOperation gpioOp, int value, void* args); /** * @brief This function sets mux bits 1-3 to a state which will only enable the decoder * on the TCS board which is named to IC1 in the schematic. */ void enableDecoderTcsIc1(); /** * @brief This function sets mux bits 1-3 to a state which will only enable the decoder * on the TCS board which is named to IC2 in the schematic. */ void enableDecoderTcsIc2(); /** * @brief This function sets mux bits 1-3 to a state which will only enable the decoder * on the inteface board board which is named to IC21 in the schematic. */ void enableDecoderInterfaceBoardIc1(); /** * @brief This function sets mux bits 1-3 to a state which will only enable the decoder * on the inteface board board which is named to IC22 in the schematic. */ void enableDecoderInterfaceBoardIc2(); /** * @brief Enables the reaction wheel chip select decoder (IC3). */ void enableRwDecoder(); /** * @brief This function disables all decoder. */ void disableAllDecoder(); /** The following functions enable the appropriate channel of the currently enabled decoder */ void selectY0(); void selectY1(); void selectY2(); void selectY3(); void selectY4(); void selectY5(); void selectY6(); void selectY7(); } #endif /* LINUX_GPIO_GPIOCALLBACKS_H_ */