Lines Matching +full:pin +full:- +full:val
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
60 qcom_tlmm_pin_lookup(struct qcom_tlmm_softc *sc, int pin) in qcom_tlmm_pin_lookup() argument
62 if (pin >= sc->gpio_npins) in qcom_tlmm_pin_lookup()
65 return &sc->gpio_pins[pin]; in qcom_tlmm_pin_lookup()
70 struct gpio_pin *pin, unsigned int flags) in qcom_tlmm_pin_configure() argument
79 pin->gp_flags &= ~(GPIO_PIN_INPUT|GPIO_PIN_OUTPUT); in qcom_tlmm_pin_configure()
84 * function pin here, set the output in qcom_tlmm_pin_configure()
85 * pin value before we flip on oe_output. in qcom_tlmm_pin_configure()
87 pin->gp_flags |= GPIO_PIN_OUTPUT; in qcom_tlmm_pin_configure()
89 pin->gp_pin); in qcom_tlmm_pin_configure()
91 pin->gp_flags |= GPIO_PIN_INPUT; in qcom_tlmm_pin_configure()
93 pin->gp_pin); in qcom_tlmm_pin_configure()
98 * Set pull-up / pull-down configuration in qcom_tlmm_pin_configure()
101 pin->gp_flags |= GPIO_PIN_PULLUP; in qcom_tlmm_pin_configure()
102 qcom_tlmm_ipq4018_hw_pin_set_pupd_config(sc, pin->gp_pin, in qcom_tlmm_pin_configure()
105 pin->gp_flags |= GPIO_PIN_PULLDOWN; in qcom_tlmm_pin_configure()
106 qcom_tlmm_ipq4018_hw_pin_set_pupd_config(sc, pin->gp_pin, in qcom_tlmm_pin_configure()
110 pin->gp_flags |= GPIO_PIN_PULLUP | GPIO_PIN_PULLDOWN; in qcom_tlmm_pin_configure()
111 qcom_tlmm_ipq4018_hw_pin_set_pupd_config(sc, pin->gp_pin, in qcom_tlmm_pin_configure()
114 pin->gp_flags &= ~(GPIO_PIN_PULLUP | GPIO_PIN_PULLDOWN); in qcom_tlmm_pin_configure()
115 qcom_tlmm_ipq4018_hw_pin_set_pupd_config(sc, pin->gp_pin, in qcom_tlmm_pin_configure()
127 return (sc->busdev); in qcom_tlmm_get_bus()
135 *maxpin = sc->gpio_npins - 1; in qcom_tlmm_pin_max()
140 qcom_tlmm_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps) in qcom_tlmm_pin_getcaps() argument
145 p = qcom_tlmm_pin_lookup(sc, pin); in qcom_tlmm_pin_getcaps()
150 *caps = p->gp_caps; in qcom_tlmm_pin_getcaps()
157 qcom_tlmm_pin_getflags(device_t dev, uint32_t pin, uint32_t *flags) in qcom_tlmm_pin_getflags() argument
160 uint32_t ret = 0, val; in qcom_tlmm_pin_getflags() local
164 if (pin >= sc->gpio_npins) in qcom_tlmm_pin_getflags()
171 /* Lookup function - see what it is, whether we're a GPIO line */ in qcom_tlmm_pin_getflags()
172 ret = qcom_tlmm_ipq4018_hw_pin_get_function(sc, pin, &val); in qcom_tlmm_pin_getflags()
177 ret = qcom_tlmm_ipq4018_hw_pin_get_oe_state(sc, pin, &is_output); in qcom_tlmm_pin_getflags()
185 /* Lookup pull-up / pull-down state */ in qcom_tlmm_pin_getflags()
186 ret = qcom_tlmm_ipq4018_hw_pin_get_pupd_config(sc, pin, in qcom_tlmm_pin_getflags()
211 qcom_tlmm_pin_getname(device_t dev, uint32_t pin, char *name) in qcom_tlmm_pin_getname() argument
216 p = qcom_tlmm_pin_lookup(sc, pin); in qcom_tlmm_pin_getname()
221 memcpy(name, p->gp_name, GPIOMAXNAME); in qcom_tlmm_pin_getname()
228 qcom_tlmm_pin_setflags(device_t dev, uint32_t pin, uint32_t flags) in qcom_tlmm_pin_setflags() argument
233 p = qcom_tlmm_pin_lookup(sc, pin); in qcom_tlmm_pin_setflags()
245 qcom_tlmm_pin_set(device_t dev, uint32_t pin, unsigned int value) in qcom_tlmm_pin_set() argument
250 if (pin >= sc->gpio_npins) in qcom_tlmm_pin_set()
254 ret = qcom_tlmm_ipq4018_hw_pin_set_output_value(sc, pin, value); in qcom_tlmm_pin_set()
261 qcom_tlmm_pin_get(device_t dev, uint32_t pin, unsigned int *val) in qcom_tlmm_pin_get() argument
266 if (pin >= sc->gpio_npins) in qcom_tlmm_pin_get()
270 ret = qcom_tlmm_ipq4018_hw_pin_get_input_value(sc, pin, val); in qcom_tlmm_pin_get()
277 qcom_tlmm_pin_toggle(device_t dev, uint32_t pin) in qcom_tlmm_pin_toggle() argument
282 if (pin >= sc->gpio_npins) in qcom_tlmm_pin_toggle()
286 ret = qcom_tlmm_ipq4018_hw_pin_toggle_output_value(sc, pin); in qcom_tlmm_pin_toggle()