• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/arm/broadcom/bcm2835/

Lines Matching refs:pin

97 	uint32_t		pin;
171 bcm_gpio_pin_is_ro(struct bcm_gpio_softc *sc, int pin)
176 if (pin == sc->sc_ro_pins[i])
182 bcm_gpio_get_function(struct bcm_gpio_softc *sc, uint32_t pin)
186 /* Five banks, 10 pins per bank, 3 bits per pin. */
187 bank = pin / 10;
188 offset = (pin - bank * 10) * 3;
271 bcm_gpio_set_function(struct bcm_gpio_softc *sc, uint32_t pin, uint32_t f)
278 /* Five banks, 10 pins per bank, 3 bits per pin. */
279 bank = pin / 10;
280 offset = (pin - bank * 10) * 3;
289 bcm_gpio_set_pud(struct bcm_gpio_softc *sc, uint32_t pin, uint32_t state)
296 bank = BCM_GPIO_BANK(pin);
298 BCM_GPIO_WRITE(sc, BCM_GPIO_GPPUDCLK(bank), BCM_GPIO_MASK(pin));
304 bcm_gpio_set_alternate(device_t dev, uint32_t pin, uint32_t nfunc)
312 /* Set the pin function. */
313 bcm_gpio_set_function(sc, pin, nfunc);
315 /* Update the pin flags. */
317 if (sc->sc_gpio_pins[i].gp_pin == pin)
327 bcm_gpio_pin_configure(struct bcm_gpio_softc *sc, struct gpio_pin *pin,
337 pin->gp_flags &= ~(GPIO_PIN_INPUT|GPIO_PIN_OUTPUT);
339 pin->gp_flags |= GPIO_PIN_OUTPUT;
340 bcm_gpio_set_function(sc, pin->gp_pin,
343 pin->gp_flags |= GPIO_PIN_INPUT;
344 bcm_gpio_set_function(sc, pin->gp_pin,
350 pin->gp_flags &= ~(GPIO_PIN_PULLUP|GPIO_PIN_PULLDOWN);
353 pin->gp_flags |= GPIO_PIN_PULLUP;
354 bcm_gpio_set_pud(sc, pin->gp_pin, BCM_GPIO_PULLUP);
356 pin->gp_flags |= GPIO_PIN_PULLDOWN;
357 bcm_gpio_set_pud(sc, pin->gp_pin, BCM_GPIO_PULLDOWN);
360 bcm_gpio_set_pud(sc, pin->gp_pin, BCM_GPIO_NONE);
384 bcm_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps)
390 if (sc->sc_gpio_pins[i].gp_pin == pin)
405 bcm_gpio_pin_getflags(device_t dev, uint32_t pin, uint32_t *flags)
411 if (sc->sc_gpio_pins[i].gp_pin == pin)
426 bcm_gpio_pin_getname(device_t dev, uint32_t pin, char *name)
432 if (sc->sc_gpio_pins[i].gp_pin == pin)
447 bcm_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags)
453 if (sc->sc_gpio_pins[i].gp_pin == pin)
461 if (bcm_gpio_pin_is_ro(sc, pin))
470 bcm_gpio_pin_set(device_t dev, uint32_t pin, unsigned int value)
477 if (sc->sc_gpio_pins[i].gp_pin == pin)
483 if (bcm_gpio_pin_is_ro(sc, pin))
486 bank = BCM_GPIO_BANK(pin);
491 BCM_GPIO_WRITE(sc, reg, BCM_GPIO_MASK(pin));
498 bcm_gpio_pin_get(device_t dev, uint32_t pin, unsigned int *val)
505 if (sc->sc_gpio_pins[i].gp_pin == pin)
510 bank = BCM_GPIO_BANK(pin);
514 *val = (reg_data & BCM_GPIO_MASK(pin)) ? 1 : 0;
520 bcm_gpio_pin_toggle(device_t dev, uint32_t pin)
527 if (sc->sc_gpio_pins[i].gp_pin == pin)
533 if (bcm_gpio_pin_is_ro(sc, pin))
536 bank = BCM_GPIO_BANK(pin);
538 if (data & BCM_GPIO_MASK(pin))
542 BCM_GPIO_WRITE(sc, reg, BCM_GPIO_MASK(pin));
560 /* Get the current pin function. */
561 nfunc = bcm_gpio_get_function(sc, sc_sysctl->pin);
568 if (bcm_gpio_pin_is_ro(sc, sc_sysctl->pin))
570 /* Parse the user supplied string and check for a valid pin function. */
574 /* Update the pin alternate function. */
575 bcm_gpio_set_alternate(sc->sc_dev, sc_sysctl->pin, nfunc);
591 * Add per-pin sysctl tree/handlers.
596 pin_node = SYSCTL_ADD_NODE(ctx, tree, OID_AUTO, "pin",
610 sc_sysctl->pin = sc->sc_gpio_pins[i].gp_pin;
792 "pin %d", j);
1207 uint32_t pin;
1246 pin = pins[i];
1247 bcm_gpio_set_alternate(dev, pin, function);
1249 device_printf(dev, "set pin %d to func %d", pin, function);
1256 bcm_gpio_pin_setflags(dev, pin, 0);
1259 bcm_gpio_pin_setflags(dev, pin, GPIO_PIN_PULLUP);
1262 bcm_gpio_pin_setflags(dev, pin, GPIO_PIN_PULLDOWN);
1265 printf("%s: invalid pull value for pin %d: %d\n",
1266 name, pin, pulls[i]);