Lines Matching refs:pin

38  * Pins are mapped to logical pin number as follows:
215 lpc_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps)
219 if (pin > LPC_GPIO_NPINS)
222 map = lpc_gpio_get_pinmap(pin);
229 lpc_gpio_pin_getflags(device_t dev, uint32_t pin, uint32_t *flags)
236 if (pin > LPC_GPIO_NPINS)
239 map = lpc_gpio_get_pinmap(pin);
241 /* Check whether it's bidirectional pin */
251 dir = (state & (1 << LPC_GPIO_PIN_BIT(map, pin)));
255 dir = (state & (1 << LPC_GPIO_PIN_BIT(map, pin)));
259 dir = (state & (1 << LPC_GPIO_PIN_BIT(map, pin)));
263 dir = (state & (1 << (25 + LPC_GPIO_PIN_IDX(map, pin))));
275 lpc_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags)
281 if (pin > LPC_GPIO_NPINS)
284 map = lpc_gpio_get_pinmap(pin);
286 /* Check whether it's bidirectional pin */
299 state = (1 << LPC_GPIO_PIN_IDX(map, pin));
304 state = (1 << LPC_GPIO_PIN_IDX(map, pin));
309 state = (1 << LPC_GPIO_PIN_IDX(map, pin));
314 state = (1 << (25 + (pin - map->lp_start_idx)));
324 lpc_gpio_pin_getname(device_t dev, uint32_t pin, char *name)
329 map = lpc_gpio_get_pinmap(pin);
330 idx = LPC_GPIO_PIN_IDX(map, pin);
337 map->lp_start_bit + LPC_GPIO_PIN_IDX(map, pin));
355 lpc_gpio_pin_get(device_t dev, uint32_t pin, uint32_t *value)
362 map = lpc_gpio_get_pinmap(pin);
364 if (lpc_gpio_pin_getflags(dev, pin, &flags))
377 *value = !!(state & (1 << LPC_GPIO_PIN_BIT(map, pin)));
381 *value = !!(state & (1 << LPC_GPIO_PIN_BIT(map, pin)));
384 *value = !!(state & (1 << LPC_GPIO_PIN_BIT(map, pin)));
391 LPC_GPIO_PIN_IDX(map, pin))));
394 LPC_GPIO_PIN_IDX(map, pin))));
397 *value = !!(state & (1 << LPC_GPIO_PIN_BIT(map, pin)));
404 lpc_gpio_pin_set(device_t dev, uint32_t pin, uint32_t value)
410 map = lpc_gpio_get_pinmap(pin);
412 if (lpc_gpio_pin_getflags(dev, pin, &flags))
418 state = (1 << LPC_GPIO_PIN_BIT(map, pin));
435 state = (1 << (25 + LPC_GPIO_PIN_IDX(map, pin)));
446 lpc_gpio_pin_toggle(device_t dev, uint32_t pin)
451 map = lpc_gpio_get_pinmap(pin);
453 if (lpc_gpio_pin_getflags(dev, pin, &flags))
466 lpc_gpio_get_pinmap(int pin)
471 if (pin >= map->lp_start_idx &&
472 pin < map->lp_start_idx + map->lp_pin_count)
476 panic("pin number %d out of range", pin);
480 lpc_gpio_set_flags(device_t dev, int pin, int flags)
485 return lpc_gpio_pin_setflags(lpc_gpio_sc->lg_dev, pin, flags);
489 lpc_gpio_set_state(device_t dev, int pin, int state)
494 return lpc_gpio_pin_set(lpc_gpio_sc->lg_dev, pin, state);
498 lpc_gpio_get_state(device_t dev, int pin, int *state)
503 return lpc_gpio_pin_get(lpc_gpio_sc->lg_dev, pin, state);