void halInitButton(void) { uint8_t i; /* Configure GPIO for BUTTONSs */ ButtonResourceType *buttons = (ButtonResourceType *) boardDescription->io->buttons; for (i = 0; i < boardDescription->buttons; i++) { halGpioConfig(PORTx_PIN(buttons[i].gpioPort, buttons[i].gpioPin), GPIOCFG_IN_PUD); halGpioSet(PORTx_PIN(buttons[i].gpioPort, buttons[i].gpioPin), GPIOOUT_PULLUP); } }/* end halInitButton() */
void halClearLed(HalBoardLed led) { halGpioSet(led, 1); }
void halSetLed(HalBoardLed led) { halGpioSet(led, 0); }
void set_pin_digital(uint32_t pin, bool v) { halGpioConfig(pin, GPIOCFG_IN); halGpioSet(pin, v); }
void halBoardPowerUp(void) { /* Set everything to input value */ GPIO_PACFGL = (GPIOCFG_IN <<PA0_CFG_BIT)| (GPIOCFG_IN <<PA1_CFG_BIT)| (GPIOCFG_IN <<PA2_CFG_BIT)| (GPIOCFG_IN <<PA3_CFG_BIT); GPIO_PACFGH = (GPIOCFG_IN <<PA4_CFG_BIT)| /* PTI EN */ (GPIOCFG_IN <<PA5_CFG_BIT)| /* PTI_DATA */ (GPIOCFG_IN <<PA6_CFG_BIT)| (GPIOCFG_IN <<PA7_CFG_BIT); GPIO_PBCFGL = (GPIOCFG_IN <<PB0_CFG_BIT)| (GPIOCFG_OUT_ALT <<PB1_CFG_BIT)| /* Uart TX */ (GPIOCFG_IN <<PB2_CFG_BIT)| /* Uart RX */ (GPIOCFG_IN <<PB3_CFG_BIT); GPIO_PBCFGH = (GPIOCFG_IN <<PB4_CFG_BIT)| (GPIOCFG_IN <<PB5_CFG_BIT)| (GPIOCFG_IN <<PB6_CFG_BIT)| (GPIOCFG_IN <<PB7_CFG_BIT); GPIO_PCCFGL = (GPIOCFG_IN <<PC0_CFG_BIT)| (GPIOCFG_IN <<PC1_CFG_BIT)| (GPIOCFG_IN <<PC2_CFG_BIT)| (GPIOCFG_IN <<PC3_CFG_BIT); GPIO_PCCFGH = (GPIOCFG_IN <<PC4_CFG_BIT)| (GPIOCFG_IN <<PC5_CFG_BIT)| #ifdef EMBERZNET_HAL (CFG_C6 <<PC6_CFG_BIT)| /* OSC32K */ (CFG_C7 <<PC7_CFG_BIT); /* OSC32K */ #else (GPIOCFG_IN <<PC6_CFG_BIT)| /* OSC32K */ (GPIOCFG_IN <<PC7_CFG_BIT); /* OSC32K */ #endif /* Configure GPIO for I2C access */ if ((boardDescription->flags & BOARD_HAS_MEMS) || (boardDescription->flags & BOARD_HAS_EEPROM)) { halGpioConfig(PORTA_PIN(1), GPIOCFG_OUT_ALT_OD); halGpioConfig(PORTA_PIN(2), GPIOCFG_OUT_ALT_OD); } /* Configure GPIO for ADC access (temp sensor) */ if (boardDescription->flags & BOARD_HAS_TEMP_SENSOR) { halGpioConfig(PORTx_PIN(boardDescription->temperatureSensor->gpioPort, boardDescription->temperatureSensor->gpioPin), GPIOCFG_ANALOG); } /* Configure GPIO for LEDs */ { LedResourceType *leds = (LedResourceType *) boardDescription->io->leds; int8u i; for (i = 0; i < boardDescription->leds; i++) { /* LED default off */ halGpioConfig(PORTx_PIN(leds[i].gpioPort, leds[i].gpioPin), GPIOCFG_OUT); halGpioSet(PORTx_PIN(leds[i].gpioPort, leds[i].gpioPin), 1); } } /* Configure GPIO for BUTTONSs */ { ButtonResourceType *buttons = (ButtonResourceType *) boardDescription->io->buttons; int8u i; for (i = 0; i < boardDescription->buttons; i++) { halGpioConfig(PORTx_PIN(buttons[i].gpioPort, buttons[i].gpioPin), GPIOCFG_IN_PUD); halGpioSet(PORTx_PIN(buttons[i].gpioPort, buttons[i].gpioPin), GPIOOUT_PULLUP); } } /* Configure GPIO for power amplifier */ if (boardDescription->flags & BOARD_HAS_PA) { /* SiGe Ant Sel (default ceramic antenna) */ halGpioConfig(PORTB_PIN(5), GPIOCFG_OUT); halGpioSet(PORTB_PIN(5), 1); /* SiGe Standby (default out of standby) */ halGpioConfig(PORTB_PIN(6), GPIOCFG_OUT); halGpioSet(PORTB_PIN(6), 1); /* SiGe LNA (default LNA off )*/ halGpioConfig(PORTB_PIN(7), GPIOCFG_OUT); halGpioSet(PORTB_PIN(7), 0); /* SiGe nTX Active */ halGpioConfig(PORTC_PIN(5), GPIOCFG_OUT_ALT); } }
void halBoardPowerDown(void) { /* Set everything to input value */ GPIO_PACFGL = (GPIOCFG_IN <<PA0_CFG_BIT)| (GPIOCFG_IN <<PA1_CFG_BIT)| (GPIOCFG_IN <<PA2_CFG_BIT)| (GPIOCFG_IN <<PA3_CFG_BIT); GPIO_PACFGH = (GPIOCFG_IN <<PA4_CFG_BIT)| /* PTI EN */ (GPIOCFG_IN <<PA5_CFG_BIT)| /* PTI_DATA */ (GPIOCFG_IN <<PA6_CFG_BIT)| (GPIOCFG_IN <<PA7_CFG_BIT); GPIO_PBCFGL = (GPIOCFG_IN <<PB0_CFG_BIT)| (GPIOCFG_IN <<PB1_CFG_BIT)| /* Uart TX */ (GPIOCFG_IN <<PB2_CFG_BIT)| /* Uart RX */ (GPIOCFG_IN <<PB3_CFG_BIT); GPIO_PBCFGH = (GPIOCFG_IN <<PB4_CFG_BIT)| (GPIOCFG_IN <<PB5_CFG_BIT)| (GPIOCFG_IN <<PB6_CFG_BIT)| (GPIOCFG_IN <<PB7_CFG_BIT); GPIO_PCCFGL = (GPIOCFG_IN <<PC0_CFG_BIT)| (GPIOCFG_IN <<PC1_CFG_BIT)| (GPIOCFG_IN <<PC2_CFG_BIT)| (GPIOCFG_IN <<PC3_CFG_BIT); GPIO_PCCFGH = (GPIOCFG_IN <<PC4_CFG_BIT)| (GPIOCFG_IN <<PC5_CFG_BIT)| #ifdef EMBERZNET_HAL (CFG_C6 <<PC6_CFG_BIT)| /* OSC32K */ (CFG_C7 <<PC7_CFG_BIT); /* OSC32K */ #else (GPIOCFG_IN <<PC6_CFG_BIT)| /* OSC32K */ (GPIOCFG_IN <<PC7_CFG_BIT); /* OSC32K */ #endif /* Configure GPIO for BUTTONSs */ { ButtonResourceType *buttons = (ButtonResourceType *) boardDescription->io->buttons; int8u i; for (i = 0; i < boardDescription->buttons; i++) { halGpioConfig(PORTx_PIN(buttons[i].gpioPort, buttons[i].gpioPin), GPIOCFG_IN_PUD); halGpioSet(PORTx_PIN(buttons[i].gpioPort, buttons[i].gpioPin), GPIOOUT_PULLUP); } } /* Configure GPIO for LEDs */ { LedResourceType *leds = (LedResourceType *) boardDescription->io->leds; int8u i; for (i = 0; i < boardDescription->leds; i++) { /* LED default off */ halGpioConfig(PORTx_PIN(leds[i].gpioPort, leds[i].gpioPin), GPIOCFG_OUT); halGpioSet(PORTx_PIN(leds[i].gpioPort, leds[i].gpioPin), 1); } } /* Configure GPIO for power amplifier */ if (boardDescription->flags & BOARD_HAS_PA) { /* SiGe Ant Sel to output */ halGpioConfig(PORTB_PIN(5), GPIOCFG_OUT); halGpioSet(PORTB_PIN(5), 1); /* SiGe Standby */ halGpioConfig(PORTB_PIN(6), GPIOCFG_OUT); halGpioSet(PORTB_PIN(6), 0); } }