void configure_i2c_pins(uint32_t instance) { switch(instance) { case I2C0_IDX: /* I2C0 */ /* PORTB_PCR2 */ PORT_HAL_SetMuxMode(PORTB,2u,kPortMuxAlt2); PORT_HAL_SetPassiveFilterCmd(PORTB,2u,false); PORT_HAL_SetPullMode(PORTB,2u,kPortPullUp); PORT_HAL_SetPullCmd(PORTB,2u,true); /* PORTB_PCR1 */ PORT_HAL_SetMuxMode(PORTB,1u,kPortMuxAlt2); PORT_HAL_SetPassiveFilterCmd(PORTB,1u,false); PORT_HAL_SetPullMode(PORTB,1u,kPortPullUp); PORT_HAL_SetPullCmd(PORTB,1u,true); break; case I2C1_IDX: /* I2C1 */ /* PORTC_PCR1 */ PORT_HAL_SetMuxMode(PORTC,1u,kPortMuxAlt2); PORT_HAL_SetPassiveFilterCmd(PORTC,1u,false); /* PORTC_PCR2 */ PORT_HAL_SetMuxMode(PORTC,2u,kPortMuxAlt2); PORT_HAL_SetPassiveFilterCmd(PORTC,2u,false); break; default: break; } }
void configure_gpio_pins(uint32_t instance) { switch(instance) { case HW_PORTA: /* HW_PORTA */ /* Affects PORTA_PCR4 register */ PORT_HAL_SetPassiveFilterCmd(PORTA_BASE,4u,false); PORT_HAL_SetMuxMode(PORTA_BASE,4u,kPortMuxAsGpio); PORT_HAL_SetPullMode(PORTA_BASE,4u,kPortPullUp); PORT_HAL_SetPullCmd(PORTA_BASE,4u,true); break; case HW_PORTB: /* HW_PORTB */ /* Affects PORTB_PCR21 register */ PORT_HAL_SetDriveStrengthMode(PORTB_BASE,21u,kPortLowDriveStrength); PORT_HAL_SetMuxMode(PORTB_BASE,21u,kPortMuxAsGpio); PORT_HAL_SetSlewRateMode(PORTB_BASE,21u,kPortSlowSlewRate); /* Affects PORTB_PCR22 register */ PORT_HAL_SetDriveStrengthMode(PORTB_BASE,22u,kPortLowDriveStrength); PORT_HAL_SetMuxMode(PORTB_BASE,22u,kPortMuxAsGpio); PORT_HAL_SetSlewRateMode(PORTB_BASE,22u,kPortSlowSlewRate); break; case HW_PORTC: /* HW_PORTC */ /* Affects PORTC_PCR0 register */ PORT_HAL_SetMuxMode(PORTC_BASE,0u,kPortMuxAsGpio); /* Affects PORTC_PCR6 register */ PORT_HAL_SetPassiveFilterCmd(PORTC_BASE,6u,false); PORT_HAL_SetMuxMode(PORTC_BASE,6u,kPortMuxAsGpio); PORT_HAL_SetPullMode(PORTC_BASE,6u,kPortPullUp); PORT_HAL_SetPullCmd(PORTC_BASE,6u,true); /* Affects PORTC_PCR8 register */ PORT_HAL_SetMuxMode(PORTC_BASE,8u,kPortMuxAsGpio); /* Affects PORTC_PCR9 register */ PORT_HAL_SetMuxMode(PORTC_BASE,9u,kPortMuxAsGpio); /* Affects PORTC_PCR12 register */ PORT_HAL_SetMuxMode(PORTC_BASE,12u,kPortMuxAsGpio); /* Affects PORTC_PCR13 register */ PORT_HAL_SetMuxMode(PORTC_BASE,13u,kPortMuxAsGpio); /* Affects PORTC_PCR16 register */ PORT_HAL_SetMuxMode(PORTC_BASE,16u,kPortMuxAsGpio); PORT_HAL_SetMuxMode(PORTC_BASE,10u,kPortMuxAsGpio); PORT_HAL_SetMuxMode(PORTC_BASE,2u,kPortMuxAsGpio); break; case HW_PORTE: /* HW_PORTE */ /* Affects PORTE_PCR6 register */ PORT_HAL_SetMuxMode(PORTE_BASE,6u,kPortMuxAsGpio); /* Affects PORTE_PCR26 register */ PORT_HAL_SetDriveStrengthMode(PORTE_BASE,26u,kPortLowDriveStrength); PORT_HAL_SetMuxMode(PORTE_BASE,26u,kPortMuxAsGpio); PORT_HAL_SetSlewRateMode(PORTE_BASE,26u,kPortSlowSlewRate); break; default: break; } }
/*FUNCTION********************************************************************** * * Function Name : GPIO_DRV_InputPinInit * Description : Initialize one GPIO input pin used by board. * *END**************************************************************************/ void GPIO_DRV_InputPinInit(const gpio_input_pin_user_config_t *inputPin) { /* Get actual port and pin number.*/ uint32_t port = GPIO_EXTRACT_PORT(inputPin->pinName); uint32_t pin = GPIO_EXTRACT_PIN(inputPin->pinName); uint32_t gpioBaseAddr = g_gpioBaseAddr[port]; uint32_t portBaseAddr = g_portBaseAddr[port]; /* Un-gate port clock*/ CLOCK_SYS_EnablePortClock(port); /* Set current pin as digital input.*/ GPIO_HAL_SetPinDir(gpioBaseAddr, pin, kGpioDigitalInput); /* Configure GPIO input features. */ PORT_HAL_SetPullCmd(portBaseAddr, pin, inputPin->config.isPullEnable); PORT_HAL_SetPullMode(portBaseAddr, pin, inputPin->config.pullSelect); PORT_HAL_SetPassiveFilterCmd(portBaseAddr, pin, inputPin->config.isPassiveFilterEnabled); #if FSL_FEATURE_PORT_HAS_DIGITAL_FILTER PORT_HAL_SetDigitalFilterCmd(portBaseAddr, pin, inputPin->config.isDigitalFilterEnabled); #endif PORT_HAL_SetPinIntMode(portBaseAddr, pin, inputPin->config.interrupt); /* Configure NVIC */ if ((inputPin->config.interrupt) && (g_portIrqId[port])) { /* Enable GPIO interrupt.*/ INT_SYS_EnableIRQ(g_portIrqId[port]); } }
void configure_gpio_pins(uint32_t instance) { switch(instance) { case PORTA_IDX: /* PORTA_IDX */ /* Affects PORTA_PCR4 register */ PORT_HAL_SetPassiveFilterCmd(PORTA,4u,false); PORT_HAL_SetMuxMode(PORTA,4u,kPortMuxAsGpio); PORT_HAL_SetPullMode(PORTA,4u,kPortPullUp); PORT_HAL_SetPullCmd(PORTA,4u,true); /* Affects PORTA_PCR13 register */ PORT_HAL_SetDriveStrengthMode(PORTA,13u,kPortLowDriveStrength); PORT_HAL_SetMuxMode(PORTA,13u,kPortMuxAsGpio); PORT_HAL_SetSlewRateMode(PORTA,13u,kPortSlowSlewRate); break; case PORTB_IDX: /* PORTB_IDX */ /* Affects PORTB_PCR18 register */ PORT_HAL_SetDriveStrengthMode(PORTB,18u,kPortLowDriveStrength); PORT_HAL_SetMuxMode(PORTB,18u,kPortMuxAsGpio); PORT_HAL_SetSlewRateMode(PORTB,18u,kPortSlowSlewRate); /* Affects PORTB_PCR19 register */ PORT_HAL_SetDriveStrengthMode(PORTB,19u,kPortLowDriveStrength); PORT_HAL_SetMuxMode(PORTB,19u,kPortMuxAsGpio); PORT_HAL_SetSlewRateMode(PORTB,19u,kPortSlowSlewRate); break; case PORTC_IDX: /* PORTC_IDX */ /* PORTC_PCR1 */ PORT_HAL_SetMuxMode(PORTC,1u,kPortMuxAsGpio); /* Affects PORTC_PCR2 register */ PORT_HAL_SetPassiveFilterCmd(PORTC,2u,false); PORT_HAL_SetMuxMode(PORTC,2u,kPortMuxAsGpio); PORT_HAL_SetPullMode(PORTC,2u,kPortPullUp); PORT_HAL_SetPullCmd(PORTC,2u,true); /* Affects PORTC_PCR3 register */ PORT_HAL_SetPassiveFilterCmd(PORTC,3u,false); PORT_HAL_SetMuxMode(PORTC,3u,kPortMuxAsGpio); PORT_HAL_SetPullMode(PORTC,3u,kPortPullUp); PORT_HAL_SetPullCmd(PORTC,3u,true); break; default: break; } }
void configure_i2c_pins(uint32_t instance) { switch(instance) { case 0: /* I2C0 */ /* PORTB_PCR2 */ PORT_HAL_SetMuxMode(PORTB_BASE,2u,kPortMuxAlt2); PORT_HAL_SetPullCmd(PORTB_BASE, 2u, true); PORT_HAL_SetPullMode(PORTB_BASE, 2u, kPortPullUp); PORT_HAL_SetPassiveFilterCmd(PORTB_BASE, 2u, false); /* PORTB_PCR3 */ PORT_HAL_SetMuxMode(PORTB_BASE,3u,kPortMuxAlt2); PORT_HAL_SetPullCmd(PORTB_BASE, 3u, true); PORT_HAL_SetPullMode(PORTB_BASE, 3u, kPortPullUp); PORT_HAL_SetPassiveFilterCmd(PORTB_BASE, 3u, false); break; case 1: /* PORTE_PCR0 */ PORT_HAL_SetMuxMode(PORTE_BASE,0u,kPortMuxAlt6); PORT_HAL_SetPullCmd(PORTE_BASE, 0u, true); PORT_HAL_SetPullMode(PORTE_BASE, 0u, kPortPullUp); PORT_HAL_SetPassiveFilterCmd(PORTE_BASE, 0u, false); /* PORTE_PCR1 */ PORT_HAL_SetMuxMode(PORTE_BASE,1u,kPortMuxAlt6); PORT_HAL_SetPullCmd(PORTE_BASE, 1u, true); PORT_HAL_SetPullMode(PORTE_BASE, 1u, kPortPullUp); PORT_HAL_SetPassiveFilterCmd(PORTE_BASE, 1u, false); break; case 2: break; case 3: break; case 4: break; default: break; } }
/*FUNCTION********************************************************************** * * Function Name : GPIO_DRV_InputPinInit * Description : Initialize one GPIO input pin used by board. * *END**************************************************************************/ void GPIO_DRV_InputPinInit(const gpio_input_pin_user_config_t *inputPin) { /* Get actual port and pin number.*/ uint32_t port = GPIO_EXTRACT_PORT(inputPin->pinName); uint32_t pin = GPIO_EXTRACT_PIN(inputPin->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 input.*/ GPIO_HAL_SetPinDir(gpioBase, pin, kGpioDigitalInput); /* Configure GPIO input features. */ #if FSL_FEATURE_PORT_HAS_PULL_ENABLE PORT_HAL_SetPullCmd(portBase, pin, inputPin->config.isPullEnable); #endif #if FSL_FEATURE_PORT_HAS_PULL_SELECTION PORT_HAL_SetPullMode(portBase, pin, inputPin->config.pullSelect); #endif #if FSL_FEATURE_PORT_HAS_PASSIVE_FILTER PORT_HAL_SetPassiveFilterCmd(portBase, pin, inputPin->config.isPassiveFilterEnabled); #endif #if FSL_FEATURE_PORT_HAS_DIGITAL_FILTER PORT_HAL_SetDigitalFilterCmd(portBase, pin, inputPin->config.isDigitalFilterEnabled); #endif #if FSL_FEATURE_GPIO_HAS_INTERRUPT_VECTOR PORT_HAL_SetPinIntMode(portBase, pin, inputPin->config.interrupt); /* Configure NVIC */ if ((inputPin->config.interrupt) && (g_portIrqId[port])) { /* Enable GPIO interrupt.*/ INT_SYS_EnableIRQ(g_portIrqId[port]); } #endif }