Exemple #1
0
/***************************************************************************//**
 * @brief gpio_direction
*******************************************************************************/
int32_t gpio_direction(uint8_t pin, uint8_t direction)
{
#ifdef _XPARAMETERS_PS_H_
	XGpioPs_SetDirectionPin(&gpio_instance, pin, direction);
	XGpioPs_SetOutputEnablePin(&gpio_instance, pin, 1);
#else
	uint32_t channel = 1;
	uint32_t config	 = 0;

	/* We assume that pin 32 is the first pin from channel 2 */
	if (pin >= 32) {
		channel = 2;
		pin -= 32;
	}

	config = XGpio_GetDataDirection(&gpio_instance, channel);
	if (direction) {
		config &= ~(1 << pin);
	} else {
		config |= (1 << pin);
	}
	XGpio_SetDataDirection(&gpio_instance, channel, config);
#endif

	return 0;
}
Exemple #2
0
void IO_SetDirection(u8 bit, u8 dir)
{
	u32 mask;
	mask = XGpio_GetDataDirection(&gpio, 1);

	if(dir==IO_DIR_OUTPUT)
		mask &= (~(1u<<bit));
	else if(dir==IO_DIR_INPUT)
		mask |= (1u<<bit);

	XGpio_SetDataDirection(&gpio, 1, mask);
}