Lines Matching +full:gpio +full:- +full:cfg

34  * Exposes pinmux module to pinctrl-compatible interface
66 { -1, 0 }
72 bus_space_read_2((sc)->sc_bst, (sc)->sc_bsh, (reg))
74 bus_space_write_2((sc)->sc_bst, (sc)->sc_bsh, (reg), (val))
76 bus_space_read_4((sc)->sc_bst, (sc)->sc_bsh, (reg))
78 bus_space_write_4((sc)->sc_bst, (sc)->sc_bsh, (reg), (val))
81 * ti_padconf_devmap - Array of pins, should be defined one per SoC
90 * ti_pinmux_padconf_from_name - searches the list of pads and returns entry
102 padconf = ti_pinmux_dev->padconf; in ti_pinmux_padconf_from_name()
103 while (padconf->ballname != NULL) { in ti_pinmux_padconf_from_name()
104 if (strcmp(ballname, padconf->ballname) == 0) in ti_pinmux_padconf_from_name()
113 * ti_pinmux_padconf_set_internal - sets the muxmode and state for a pad/pin
135 reg_val = (uint16_t)(state & ti_pinmux_dev->padconf_sate_mask); in ti_pinmux_padconf_set_internal()
139 if ((padconf->muxmodes[mode] != NULL) && in ti_pinmux_padconf_set_internal()
140 (strcmp(padconf->muxmodes[mode], muxmode) == 0)) { in ti_pinmux_padconf_set_internal()
152 reg_val |= (uint16_t)(mode & ti_pinmux_dev->padconf_muxmode_mask); in ti_pinmux_padconf_set_internal()
155 device_printf(sc->sc_dev, "setting internal %x for %s\n", in ti_pinmux_padconf_set_internal()
157 /* write the register value (16-bit writes) */ in ti_pinmux_padconf_set_internal()
158 ti_pinmux_write_2(sc, padconf->reg_off, reg_val); in ti_pinmux_padconf_set_internal()
164 * ti_pinmux_padconf_set - sets the muxmode and state for a pad/pin
194 * ti_pinmux_padconf_get - gets the muxmode and state for a pad/pin
222 /* read the register value (16-bit reads) */ in ti_pinmux_padconf_get()
223 reg_val = ti_pinmux_read_2(ti_pinmux_sc, padconf->reg_off); in ti_pinmux_padconf_get()
227 *state = (reg_val & ti_pinmux_dev->padconf_sate_mask); in ti_pinmux_padconf_get()
231 *muxmode = padconf->muxmodes[(reg_val & ti_pinmux_dev->padconf_muxmode_mask)]; in ti_pinmux_padconf_get()
237 * ti_pinmux_padconf_set_gpiomode - converts a pad to GPIO mode.
238 * @gpio: the GPIO pin number (0-195)
251 ti_pinmux_padconf_set_gpiomode(uint32_t gpio, unsigned int state) in ti_pinmux_padconf_set_gpiomode() argument
259 /* find the gpio pin in the padconf array */ in ti_pinmux_padconf_set_gpiomode()
260 padconf = ti_pinmux_dev->padconf; in ti_pinmux_padconf_set_gpiomode()
261 while (padconf->ballname != NULL) { in ti_pinmux_padconf_set_gpiomode()
262 if (padconf->gpio_pin == gpio) in ti_pinmux_padconf_set_gpiomode()
266 if (padconf->ballname == NULL) in ti_pinmux_padconf_set_gpiomode()
270 reg_val = (uint16_t)(state & ti_pinmux_dev->padconf_sate_mask); in ti_pinmux_padconf_set_gpiomode()
273 reg_val |= (uint16_t)(padconf->gpio_mode & ti_pinmux_dev->padconf_muxmode_mask); in ti_pinmux_padconf_set_gpiomode()
275 /* write the register value (16-bit writes) */ in ti_pinmux_padconf_set_gpiomode()
276 ti_pinmux_write_2(ti_pinmux_sc, padconf->reg_off, reg_val); in ti_pinmux_padconf_set_gpiomode()
282 * ti_pinmux_padconf_get_gpiomode - gets the current GPIO mode of the pin
283 * @gpio: the GPIO pin number (0-195)
293 * EINVAL if pin requested is outside valid range or not configured as GPIO.
296 ti_pinmux_padconf_get_gpiomode(uint32_t gpio, unsigned int *state) in ti_pinmux_padconf_get_gpiomode() argument
304 /* find the gpio pin in the padconf array */ in ti_pinmux_padconf_get_gpiomode()
305 padconf = ti_pinmux_dev->padconf; in ti_pinmux_padconf_get_gpiomode()
306 while (padconf->ballname != NULL) { in ti_pinmux_padconf_get_gpiomode()
307 if (padconf->gpio_pin == gpio) in ti_pinmux_padconf_get_gpiomode()
311 if (padconf->ballname == NULL) in ti_pinmux_padconf_get_gpiomode()
315 reg_val = ti_pinmux_read_2(ti_pinmux_sc, padconf->reg_off); in ti_pinmux_padconf_get_gpiomode()
317 /* check to make sure the pins is configured as GPIO in the first state */ in ti_pinmux_padconf_get_gpiomode()
318 if ((reg_val & ti_pinmux_dev->padconf_muxmode_mask) != padconf->gpio_mode) in ti_pinmux_padconf_get_gpiomode()
321 /* read and store the reset of the state, i.e. pull-up, pull-down, etc */ in ti_pinmux_padconf_get_gpiomode()
323 *state = (reg_val & ti_pinmux_dev->padconf_sate_mask); in ti_pinmux_padconf_get_gpiomode()
331 struct pincfg *cfgtuples, *cfg; in ti_pinmux_configure_pins() local
338 ntuples = OF_getencprop_alloc_multi(cfgnode, "pinctrl-single,pins", in ti_pinmux_configure_pins()
347 for (i = 0, cfg = cfgtuples; i < ntuples; i++, cfg++) { in ti_pinmux_configure_pins()
352 name, cfg->reg, cfg->conf); in ti_pinmux_configure_pins()
355 /* write the register value (16-bit writes) */ in ti_pinmux_configure_pins()
356 ti_pinmux_write_2(sc, cfg->reg, cfg->conf); in ti_pinmux_configure_pins()
374 if (!ofw_bus_is_compatible(dev, "pinctrl-single")) in ti_pinmux_probe()
398 * ti_pinmux_attach - attaches the pinmux to the simplebus
414 sc->sc_dev = dev; in ti_pinmux_attach()
416 if (bus_alloc_resources(dev, ti_pinmux_res_spec, sc->sc_res)) { in ti_pinmux_attach()
421 sc->sc_bst = rman_get_bustag(sc->sc_res[0]); in ti_pinmux_attach()
422 sc->sc_bsh = rman_get_bushandle(sc->sc_res[0]); in ti_pinmux_attach()
427 fdt_pinctrl_register(dev, "pinctrl-single,pins"); in ti_pinmux_attach()