2021-03-13 14:42:30 +01:00
|
|
|
#ifndef LINUX_GPIO_GPIOCALLBACKS_H_
|
|
|
|
#define LINUX_GPIO_GPIOCALLBACKS_H_
|
|
|
|
|
2021-04-01 15:42:51 +02:00
|
|
|
#include <fsfw_hal/common/gpio/gpioDefinitions.h>
|
|
|
|
#include <fsfw_hal/common/gpio/GpioIF.h>
|
2021-03-13 14:42:30 +01:00
|
|
|
|
|
|
|
|
|
|
|
namespace gpioCallbacks {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief This function initializes the GPIOs used to control the SN74LVC138APWR decoders on
|
2021-05-03 11:59:33 +02:00
|
|
|
* the TCS Board and the interface board.
|
2021-03-13 14:42:30 +01:00
|
|
|
*/
|
2021-05-03 11:59:33 +02:00
|
|
|
void initSpiCsDecoder(GpioIF* gpioComIF);
|
2021-03-13 14:42:30 +01:00
|
|
|
|
|
|
|
/**
|
2021-05-03 11:59:33 +02:00
|
|
|
* @brief This function implements the decoding to multiply gpios by using the decoder
|
|
|
|
* chips SN74LVC138APWR on the TCS board and the interface board.
|
2021-03-13 14:42:30 +01:00
|
|
|
*/
|
2021-05-03 11:59:33 +02:00
|
|
|
void spiCsDecoderCallback(gpioId_t gpioId, gpio::GpioOperation gpioOp, int value, void* args);
|
2021-05-02 13:48:39 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @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 enableDecoderInterfaceBoardIc21();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @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 enableDecoderInterfaceBoardIc22();
|
|
|
|
|
|
|
|
/** 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();
|
2021-03-13 14:42:30 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
#endif /* LINUX_GPIO_GPIOCALLBACKS_H_ */
|