Lines Matching refs:gpio
309 int gpio_request(unsigned int gpio, const char *label) in gpio_request() argument
311 if (gpio >= MAX_NUM_GPIOS) in gpio_request()
314 if (gpio_registry[gpio].is_registered) in gpio_request()
317 gpio_registry[gpio].is_registered = 1; in gpio_request()
318 strncpy(gpio_registry[gpio].name, label, GPIO_NAME_SIZE); in gpio_request()
319 gpio_registry[gpio].name[GPIO_NAME_SIZE - 1] = 0; in gpio_request()
321 davinci_configure_pin_mux(&gpio_pinmux[gpio], 1); in gpio_request()
326 int gpio_free(unsigned int gpio) in gpio_free() argument
328 if (gpio >= MAX_NUM_GPIOS) in gpio_free()
331 if (!gpio_registry[gpio].is_registered) in gpio_free()
334 gpio_registry[gpio].is_registered = 0; in gpio_free()
335 gpio_registry[gpio].name[0] = '\0'; in gpio_free()
341 static int _gpio_direction_output(struct davinci_gpio *bank, unsigned int gpio, int value) in _gpio_direction_output() argument
343 clrbits_le32(&bank->dir, 1U << GPIO_BIT(gpio)); in _gpio_direction_output()
344 gpio_set_value(gpio, value); in _gpio_direction_output()
348 static int _gpio_direction_input(struct davinci_gpio *bank, unsigned int gpio) in _gpio_direction_input() argument
350 setbits_le32(&bank->dir, 1U << GPIO_BIT(gpio)); in _gpio_direction_input()
354 static int _gpio_get_value(struct davinci_gpio *bank, unsigned int gpio) in _gpio_get_value() argument
357 ip = in_le32(&bank->in_data) & (1U << GPIO_BIT(gpio)); in _gpio_get_value()
361 static int _gpio_set_value(struct davinci_gpio *bank, unsigned int gpio, int value) in _gpio_set_value() argument
364 bank->set_data = 1U << GPIO_BIT(gpio); in _gpio_set_value()
366 bank->clr_data = 1U << GPIO_BIT(gpio); in _gpio_set_value()
371 static int _gpio_get_dir(struct davinci_gpio *bank, unsigned int gpio) in _gpio_get_dir() argument
373 return in_le32(&bank->dir) & (1U << GPIO_BIT(gpio)); in _gpio_get_dir()
380 unsigned int gpio, dir, val; in gpio_info() local
383 for (gpio = 0; gpio < MAX_NUM_GPIOS; ++gpio) { in gpio_info()
384 bank = GPIO_BANK(gpio); in gpio_info()
385 dir = _gpio_get_dir(bank, gpio); in gpio_info()
386 val = gpio_get_value(gpio); in gpio_info()
389 gpio, dir ? " in" : "out", val, in gpio_info()
390 gpio_registry[gpio].is_registered ? 'x' : ' ', in gpio_info()
391 gpio_registry[gpio].name); in gpio_info()
395 int gpio_direction_input(unsigned int gpio) in gpio_direction_input() argument
399 bank = GPIO_BANK(gpio); in gpio_direction_input()
400 return _gpio_direction_input(bank, gpio); in gpio_direction_input()
403 int gpio_direction_output(unsigned int gpio, int value) in gpio_direction_output() argument
407 bank = GPIO_BANK(gpio); in gpio_direction_output()
408 return _gpio_direction_output(bank, gpio, value); in gpio_direction_output()
411 int gpio_get_value(unsigned int gpio) in gpio_get_value() argument
415 bank = GPIO_BANK(gpio); in gpio_get_value()
416 return _gpio_get_value(bank, gpio); in gpio_get_value()
419 int gpio_set_value(unsigned int gpio, int value) in gpio_set_value() argument
423 bank = GPIO_BANK(gpio); in gpio_set_value()
424 return _gpio_set_value(bank, gpio, value); in gpio_set_value()