17 return BRAIN_PIN_TOTAL_PINS;
29 if (brainPin > BRAIN_PIN_LAST)
65 char physicalPinName[32];
66 strncpy(physicalPinName,
hwPhysicalPinName(brainPin),
sizeof(physicalPinName) - 1);
67 criticalError(
"Pin \"%s\" (%s) required by \"%s\" but is used by \"%s\"",
95#include "memstreams.h"
117 if (pin_diag == PIN_OK) {
119 }
else if (pin_diag != PIN_UNKNOWN) {
121 pin_diag & PIN_DRIVER_OFF ?
"driver_off " :
"",
122 pin_diag & PIN_OPEN ?
"open_load " :
"",
123 pin_diag & PIN_SHORT_TO_GND ?
"short_to_gnd " :
"",
124 pin_diag & PIN_SHORT_TO_BAT ?
"short_to_bat " :
"",
125 pin_diag & PIN_OVERLOAD ?
"overload " :
"",
126 pin_diag & PIN_DRIVER_OVERTEMP ?
"overtemp":
"");
141 int totalPinsUsed = 0;
148 static char pin_state[64];
155 efiPrintf(
"pin %s%d (%s): %s %s",
portname(port),
pin, boardPinName, pin_user, pin_state);
160 #if (BOARD_EXT_GPIOCHIPS > 0)
162 static char pin_error[64];
174 efiPrintf(
"ext %s: %s diagnostic: %s",
175 pin_name, pin_user ? pin_user :
"free", pin_error);
180 efiPrintf(
"ext %s.%d: %s diagnostic: %s",
190 efiPrintf(
"Total pins used: %d", totalPinsUsed);
219 int hwPin =
getHwPin(
"hostname", brainPin);
222 #if (BOARD_EXT_GPIOCHIPS > 0)
243 if (boardSpecificPinName !=
nullptr) {
244 return boardSpecificPinName;
256#if (BOARD_TLE8888_COUNT > 0)
264 if ((brainPin <
Gpio::A0) || (brainPin > BRAIN_PIN_ONCHIP_LAST))
272 if (brainPin > BRAIN_PIN_ONCHIP_LAST)
285#ifndef EFI_BOOTLOADER
PinRepository pinRepository
typedef __attribute__
Ignition Mode.
const char *& getBrainUsedPin(size_t idx)
const char * PIN_USED[BRAIN_PIN_TOTAL_PINS]
void addConsoleAction(const char *token, Void callback)
Register console action without parameters.
const char * gpiochips_getChipName(brain_pin_e pin)
Get external chip name.
void gpiochips_debug(void)
const char * gpiochips_getPinName(brain_pin_e pin)
Get external chip port name.
brain_pin_diag_e gpiochips_getDiag(brain_pin_e pin)
Get diagnostic for given gpio.
int gpiochips_getPinOffset(brain_pin_e pin)
ioportid_t getHwPort(const char *msg, brain_pin_e brainPin)
ioportmask_t getHwPin(const char *msg, brain_pin_e brainPin)
const char * portname(ioportid_t GPIOx)
Console package entry point header.
void firmwareError(ObdCode code, const char *fmt,...)
const char * getBoardSpecificPinName(brain_pin_e brainPin)
uint32_t ioportmask_t
Digital I/O port sized unsigned type.
GPIO_TypeDef * ioportid_t
Port Identifier.
@ CUSTOM_ERR_PIN_ALREADY_USED_1
int brainPin_to_index(Gpio brainPin)
const char *& getBrainUsedPin(size_t index)
static char portNameBuffer[20]
const char * hwPhysicalPinName(Gpio brainPin)
void gpio_pin_markUnused(ioportid_t port, ioportmask_t pin)
void initPinRepository(void)
void pinDiag2string(char *buffer, size_t size, brain_pin_diag_e pin_diag)
const char * hwOnChipPhysicalPinName(ioportid_t hwPort, int hwPin)
const char * hwPortname(brain_pin_e brainPin)
static brain_pin_e index_to_brainPin(unsigned int i)
bool brain_pin_markUsed(Gpio brainPin, const char *msg)
static MemoryStream portNameStream
bool brain_pin_is_onchip(brain_pin_e brainPin)
void brain_pin_markUnused(brain_pin_e brainPin)
const char * getPinFunction(brain_input_pin_e brainPin)
bool isBrainPinValid(brain_pin_e brainPin)
PinRepository pinRepository CCM_OPTIONAL
bool brain_pin_is_ext(brain_pin_e brainPin)
static size_t getBrainPinTotalNum()
bool gpio_pin_markUsed(ioportid_t port, ioportmask_t pin, const char *msg)
size_t getBrainPinOnchipNum()
int getBrainPinIndex(Gpio brainPin)
int getPortPinIndex(ioportid_t port, ioportmask_t pin)
void debugBrainPin(char *buffer, size_t size, brain_pin_e brainPin)
ioportid_t getBrainPinPort(brain_pin_e brainPin)
static BigBufferHandle buffer