reducing GPIO code duplication
This commit is contained in:
parent
c1cdf77f3a
commit
61f840fcc3
|
@ -729,3 +729,18 @@ ioportmask_t getHwPin(const char *msg, brain_pin_e brainPin) {
|
||||||
return EFI_ERROR_CODE;
|
return EFI_ERROR_CODE;
|
||||||
}
|
}
|
||||||
#endif // EFI_PROD_CODE
|
#endif // EFI_PROD_CODE
|
||||||
|
|
||||||
|
#if EFI_GPIO_HARDWARE && !EFI_UNIT_TEST
|
||||||
|
ioportid_t getHwPort(const char *msg, brain_pin_e brainPin) {
|
||||||
|
(void)msg;
|
||||||
|
|
||||||
|
if (!isBrainPinValid(brainPin)) {
|
||||||
|
/*
|
||||||
|
* https://github.com/dron0gus please help
|
||||||
|
firmwareError(ObdCode::CUSTOM_ERR_INVALID_PIN, "%s: Invalid Gpio: %d", msg, brainPin);
|
||||||
|
*/
|
||||||
|
return GPIO_NULL;
|
||||||
|
}
|
||||||
|
return getGpioPorts()[(brainPin - Gpio::A0) / PORT_SIZE];
|
||||||
|
}
|
||||||
|
#endif // EFI_GPIO_HARDWARE
|
||||||
|
|
|
@ -152,6 +152,7 @@ private:
|
||||||
|
|
||||||
EXTERNC ioportmask_t getHwPin(const char *msg, brain_pin_e brainPin);
|
EXTERNC ioportmask_t getHwPin(const char *msg, brain_pin_e brainPin);
|
||||||
EXTERNC ioportid_t getHwPort(const char *msg, brain_pin_e brainPin);
|
EXTERNC ioportid_t getHwPort(const char *msg, brain_pin_e brainPin);
|
||||||
|
ioportid_t * getGpioPorts();
|
||||||
const char *portname(ioportid_t GPIOx);
|
const char *portname(ioportid_t GPIOx);
|
||||||
|
|
||||||
#endif /* EFI_GPIO_HARDWARE */
|
#endif /* EFI_GPIO_HARDWARE */
|
||||||
|
|
|
@ -102,14 +102,6 @@ int getBrainPinIndex(ioportid_t port, ioportmask_t pin) {
|
||||||
return portIndex * PORT_SIZE + pin;
|
return portIndex * PORT_SIZE + pin;
|
||||||
}
|
}
|
||||||
|
|
||||||
ioportid_t getHwPort(const char *msg, brain_pin_e brainPin) {
|
|
||||||
if (!isBrainPinValid(brainPin)) {
|
|
||||||
firmwareError(ObdCode::CUSTOM_ERR_INVALID_PIN, "%s: Invalid Gpio: %d", msg, brainPin);
|
|
||||||
return GPIO_NULL;
|
|
||||||
}
|
|
||||||
return ports[(brainPin - Gpio::A0) / PORT_SIZE];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parse string representation of physical pin into brain_pin_e ordinal.
|
* Parse string representation of physical pin into brain_pin_e ordinal.
|
||||||
*
|
*
|
||||||
|
|
|
@ -52,7 +52,7 @@ static int getPortIndex(ioportid_t port) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ioportid_t getBrainPinPort(brain_pin_e brainPin) {
|
ioportid_t getBrainPinPort(brain_pin_e brainPin) {
|
||||||
return ports[(brainPin - Gpio::A0) / PORT_SIZE];
|
return getGpioPorts()[(brainPin - Gpio::A0) / PORT_SIZE];
|
||||||
}
|
}
|
||||||
|
|
||||||
int getBrainPinIndex(brain_pin_e brainPin) {
|
int getBrainPinIndex(brain_pin_e brainPin) {
|
||||||
|
@ -64,14 +64,6 @@ int getPortPinIndex(ioportid_t port, ioportmask_t pin) {
|
||||||
return portIndex * PORT_SIZE + pin;
|
return portIndex * PORT_SIZE + pin;
|
||||||
}
|
}
|
||||||
|
|
||||||
ioportid_t getHwPort(const char *msg, brain_pin_e brainPin) {
|
|
||||||
if (!isBrainPinValid(brainPin)) {
|
|
||||||
firmwareError(ObdCode::CUSTOM_ERR_INVALID_PIN, "%s: Invalid Gpio: %d", msg, brainPin);
|
|
||||||
return GPIO_NULL;
|
|
||||||
}
|
|
||||||
return ports[(brainPin - Gpio::A0) / PORT_SIZE];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parse string representation of physical pin into Gpio ordinal.
|
* Parse string representation of physical pin into Gpio ordinal.
|
||||||
*
|
*
|
||||||
|
|
|
@ -53,6 +53,10 @@ static ioportid_t ports[] = {GPIOA,
|
||||||
#endif /* STM32_HAS_GPIOK */
|
#endif /* STM32_HAS_GPIOK */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ioportid_t * getGpioPorts() {
|
||||||
|
return ports;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated - use hwPortname() instead
|
* @deprecated - use hwPortname() instead
|
||||||
*/
|
*/
|
||||||
|
@ -139,7 +143,7 @@ static int getPortIndex(ioportid_t port) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ioportid_t getBrainPinPort(brain_pin_e brainPin) {
|
ioportid_t getBrainPinPort(brain_pin_e brainPin) {
|
||||||
return ports[(brainPin - Gpio::A0) / PORT_SIZE];
|
return getGpioPorts()[(brainPin - Gpio::A0) / PORT_SIZE];
|
||||||
}
|
}
|
||||||
|
|
||||||
int getBrainPinIndex(brain_pin_e brainPin) {
|
int getBrainPinIndex(brain_pin_e brainPin) {
|
||||||
|
@ -151,19 +155,6 @@ int getPortPinIndex(ioportid_t port, ioportmask_t pin) {
|
||||||
return portIndex * PORT_SIZE + pin;
|
return portIndex * PORT_SIZE + pin;
|
||||||
}
|
}
|
||||||
|
|
||||||
ioportid_t getHwPort(const char *msg, brain_pin_e brainPin) {
|
|
||||||
(void)msg;
|
|
||||||
|
|
||||||
if (!isBrainPinValid(brainPin)) {
|
|
||||||
/*
|
|
||||||
* https://github.com/dron0gus please help
|
|
||||||
firmwareError(ObdCode::CUSTOM_ERR_INVALID_PIN, "%s: Invalid Gpio: %d", msg, brainPin);
|
|
||||||
*/
|
|
||||||
return GPIO_NULL;
|
|
||||||
}
|
|
||||||
return ports[(brainPin - Gpio::A0) / PORT_SIZE];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parse string representation of physical pin into Gpio ordinal.
|
* Parse string representation of physical pin into Gpio ordinal.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue