Пример #1
0
static struct s5p_gpio_bank *s5p_gpio_get_bank(unsigned int gpio)
{
	const struct gpio_info *data;
	unsigned int upto;
	int i, count;

	data = get_gpio_data();
	count = get_bank_num();
	upto = 0;

	for (i = 0; i < count; i++) {
		debug("i=%d, upto=%d\n", i, upto);
		if (gpio < data->max_gpio) {
			struct s5p_gpio_bank *bank;
			bank = (struct s5p_gpio_bank *)data->reg_addr;
			bank += (gpio - upto) / GPIO_PER_BANK;
			debug("gpio=%d, bank=%p\n", gpio, bank);
			return bank;
		}

		upto = data->max_gpio;
		data++;
	}

	return NULL;
}
Пример #2
0
uint16_t GpioController_Read(uint16_t gpio_num)
{
	uint16_t gpio_bank = get_bank_num(gpio_num);
	uint16_t gpio_pin = get_pin_num(gpio_num);
	return GpioDriver_Read(gpioDrivers[gpio_bank], gpio_pin);
}
Пример #3
0
void GpioController_SetDir(uint16_t gpio_num, uint16_t gpio_dir)
{
	uint16_t gpio_bank = get_bank_num(gpio_num);
	uint16_t gpio_pin = get_pin_num(gpio_num);
	GpioDriver_SetDir(gpioDrivers[gpio_bank], gpio_pin, gpio_dir);
}
Пример #4
0
void GpioController_SetVal(uint16_t gpio_num, uint16_t gpio_val)
{
	uint16_t gpio_bank = get_bank_num(gpio_num);
	uint16_t gpio_pin = get_pin_num(gpio_num);
	GpioDriver_SetVal(gpioDrivers[gpio_bank], gpio_pin, gpio_val);
}
Пример #5
0
void GpioController_SetOutputEn(uint16_t gpio_num, uint16_t gpio_en)
{
	uint16_t gpio_bank = get_bank_num(gpio_num);
	uint16_t gpio_pin = get_pin_num(gpio_num);
	GpioDriver_SetOutputEn(gpioDrivers[gpio_bank], gpio_pin, gpio_en);
}