/*FUNCTION********************************************************************** * * Function Name : GPIO_DRV_WritePinOutput * Description : Set output level of individual GPIO pin to logic 1 or 0. * *END**************************************************************************/ void GPIO_DRV_WritePinOutput(uint32_t pinName, uint32_t output) { GPIO_Type * gpioBase = g_gpioBase[GPIO_EXTRACT_PORT(pinName)]; uint32_t pin = GPIO_EXTRACT_PIN(pinName); GPIO_HAL_WritePinOutput(gpioBase, pin, output); }
/*FUNCTION********************************************************************** * * Function Name : GPIO_DRV_WritePinOutput * Description : Set output level of individual GPIO pin to logic 1 or 0. * *END**************************************************************************/ void GPIO_DRV_WritePinOutput(uint32_t pinName, uint32_t output) { uint32_t gpioBaseAddr = g_gpioBaseAddr[GPIO_EXTRACT_PORT(pinName)]; uint32_t pin = GPIO_EXTRACT_PIN(pinName); GPIO_HAL_WritePinOutput(gpioBaseAddr, pin, output); }
/*FUNCTION********************************************************************** * * Function Name : GPIO_DRV_OutputPinInit * Description : Initialize one GPIO output pin used by board. * *END**************************************************************************/ void GPIO_DRV_OutputPinInit(const gpio_output_pin_user_config_t *outputPin) { /* Get actual port and pin number.*/ uint32_t port = GPIO_EXTRACT_PORT(outputPin->pinName); uint32_t pin = GPIO_EXTRACT_PIN(outputPin->pinName); GPIO_Type * gpioBase = g_gpioBase[port]; PORT_Type * portBase = g_portBase[port]; /* Un-gate port clock*/ CLOCK_SYS_EnablePortClock(port); /* Set current pin as gpio.*/ PORT_HAL_SetMuxMode(portBase, pin, kPortMuxAsGpio); /* Set current pin as digital output.*/ GPIO_HAL_SetPinDir(gpioBase, pin, kGpioDigitalOutput); /* Configure GPIO output features. */ GPIO_HAL_WritePinOutput(gpioBase, pin, outputPin->config.outputLogic); #if FSL_FEATURE_PORT_HAS_SLEW_RATE PORT_HAL_SetSlewRateMode(portBase, pin, outputPin->config.slewRate); #endif #if FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH PORT_HAL_SetDriveStrengthMode(portBase, pin, outputPin->config.driveStrength); #endif #if FSL_FEATURE_PORT_HAS_OPEN_DRAIN PORT_HAL_SetOpenDrainCmd(portBase, pin, outputPin->config.isOpenDrainEnabled); #endif }
__LINK_C error_t hw_gpio_clr(pin_id_t pin_id) { GPIO_HAL_WritePinOutput(GPIO_BASE(pin_id.port), pin_id.pin, 0); return SUCCESS; }