Lines Matching defs:gpin
292 struct tegra_gpio_pin *gpin;
312 gpin = kmem_zalloc(sizeof(*gpin), KM_SLEEP);
313 gpin->pin_bank = gbank;
314 gpin->pin_no = pin;
315 gpin->pin_flags = flags;
316 gpin->pin_actlo = actlo;
318 tegra_gpio_pin_ctl(&gpin->pin_bank, gpin->pin_no, gpin->pin_flags);
320 return gpin;
326 struct tegra_gpio_pin *gpin = priv;
328 tegra_gpio_release(gpin);
334 struct tegra_gpio_pin *gpin = priv;
337 val = tegra_gpio_read(gpin);
339 if (!raw && gpin->pin_actlo)
348 struct tegra_gpio_pin *gpin = priv;
350 if (!raw && gpin->pin_actlo)
353 tegra_gpio_write(gpin, val);
390 struct tegra_gpio_pin *gpin;
407 gpin = kmem_alloc(sizeof(*gpin), KM_SLEEP);
408 gpin->pin_bank = bank;
409 gpin->pin_no = pin;
410 gpin->pin_flags = flags;
412 tegra_gpio_pin_ctl(&gpin->pin_bank, gpin->pin_no, gpin->pin_flags);
414 return gpin;
418 tegra_gpio_release(struct tegra_gpio_pin *gpin)
420 tegra_gpio_pin_ctl(&gpin->pin_bank, gpin->pin_no, GPIO_PIN_INPUT);
421 kmem_free(gpin, sizeof(*gpin));
425 tegra_gpio_read(struct tegra_gpio_pin *gpin)
429 if (gpin->pin_flags & GPIO_PIN_INPUT) {
430 ret = tegra_gpio_pin_read(&gpin->pin_bank, gpin->pin_no);
432 const uint32_t v = GPIO_READ(&gpin->pin_bank, GPIO_OUT_REG);
433 ret = (v >> gpin->pin_no) & 1;
440 tegra_gpio_write(struct tegra_gpio_pin *gpin, int val)
442 KASSERT((gpin->pin_flags & GPIO_PIN_OUTPUT) != 0);
444 tegra_gpio_pin_write(&gpin->pin_bank, gpin->pin_no, val);