Exemple #1
0
static inline int wait_for_signal(uint32_t port, uint32_t mask,
				  int value, int timeout_us)
{
	uint32_t start = get_time().le.lo;

	while ((get_time().le.lo - start) < timeout_us) {
		if ((!!(STM32_GPIO_IDR(port) & mask)) == value)
			return EC_SUCCESS;
	}

	return EC_ERROR_TIMEOUT;
}
Exemple #2
0
uint16_t *gpio_get_level_reg(enum gpio_signal signal, uint32_t *mask)
{
	*mask = gpio_list[signal].mask;
	return (uint16_t *)&STM32_GPIO_IDR(gpio_list[signal].port);
}
Exemple #3
0
test_mockable int gpio_get_level(enum gpio_signal signal)
{
	return !!(STM32_GPIO_IDR(gpio_list[signal].port) &
		  gpio_list[signal].mask);
}