Home | History | Annotate | Download | only in ic

Lines Matching defs:ib

162 igpio_find_bank_setup(struct igpio_bank *ib, int barno)
167 if (strcmp(ib->ib_sc->sc_acpi_hid, ibs->ibs_acpi_hid) != 0)
182 struct igpio_bank *ib;
185 ib = &sc->sc_banks[i];
186 if (pin >= ib->ib_setup->ibs_first_pin &&
187 pin <= ib->ib_setup->ibs_last_pin)
191 ib = NULL;
193 return ib;
197 igpio_bank_pin(struct igpio_bank *ib, int pin)
199 return pin - ib->ib_setup->ibs_first_pin;
236 struct igpio_bank *ib = &sc->sc_banks[i];
243 ib->ib_barno = i;
244 ib->ib_sc = sc;
246 mutex_init(&ib->ib_mtx, MUTEX_DEFAULT, IPL_VM);
261 ib->ib_revid = val >> 16;
263 DPRINTF(("revid[%d] = #%x\n", i, ib->ib_revid));
265 if (ib->ib_revid > 0x94) {
266 ib->ib_cap |= IGPIO_PINCTRL_FEATURE_DEBOUNCE;
267 ib->ib_cap |= IGPIO_PINCTRL_FEATURE_1K_PD;
280 ib->ib_cap |=
284 ib->ib_cap |= IGPIO_PINCTRL_FEATURE_PWM;
287 ib->ib_cap |= IGPIO_PINCTRL_FEATURE_BLINK;
290 ib->ib_cap |= IGPIO_PINCTRL_FEATURE_EXP;
296 DPRINTF(("cap[%d] = #%x\n", i, ib->ib_cap));
300 ib->ib_padbar = val;
301 DPRINTF(("padbar[%d] = #%x\n", i, ib->ib_padbar));
302 if (ib->ib_padbar > sc->sc_length[i]) {
304 ib->ib_padbar, sc->sc_length[i]);
308 ib->ib_setup = igpio_find_bank_setup(ib, i);
309 if (ib->ib_setup == NULL) {
314 ibs = ib->ib_setup;
322 ib->ib_intr =
323 kmem_zalloc(sizeof(*ib->ib_intr) * npins, KM_SLEEP);
379 struct igpio_bank *ib = &sc->sc_banks[i];
380 struct igpio_bank_setup *ibs = ib->ib_setup;
383 if (ib->ib_intr != NULL) {
384 kmem_free(ib->ib_intr, sizeof(*ib->ib_intr) * npins);
385 ib->ib_intr = NULL;
403 igpio_pincfg(struct igpio_bank *ib, int pin, int reg)
405 int nregs = (ib->ib_cap & IGPIO_PINCTRL_FEATURE_DEBOUNCE) ? 4 : 2;
408 pincfg = ib->ib_padbar + reg + (pin * nregs * 4);
411 __func__, ib->ib_barno, pin, reg, (void *)pincfg));
418 igpio_find_group(struct igpio_bank *ib, int pin)
420 struct igpio_bank_setup *ibs = ib->ib_setup;
444 igpio_groupcfg(struct igpio_bank *ib, int pin)
446 struct igpio_bank_setup *ibs = ib->ib_setup;
450 if ((ipg = igpio_find_group(ib, pin)) == NULL)
453 groupcfg = ib->ib_padbar
470 struct igpio_bank *ib = igpio_find_bank(sc, pin);
474 pin = igpio_bank_pin(ib, pin);
475 cfg0 = igpio_pincfg(ib, pin, IGPIO_PADCFG0);
477 mutex_enter(&ib->ib_mtx);
479 val = bus_space_read_4(sc->sc_bst, sc->sc_bsh[ib->ib_barno], cfg0);
481 ib->ib_barno, pin, val, igpio_padcfg0_print(val, 0)));
488 mutex_exit(&ib->ib_mtx);
497 struct igpio_bank *ib = igpio_find_bank(sc, pin);
501 pin = igpio_bank_pin(ib, pin);
502 cfg0 = igpio_pincfg(ib, pin, IGPIO_PADCFG0);
504 mutex_enter(&ib->ib_mtx);
506 val = bus_space_read_4(sc->sc_bst, sc->sc_bsh[ib->ib_barno], cfg0);
514 __func__, ib->ib_barno, pin, value,
518 bus_space_write_4(sc->sc_bst, sc->sc_bsh[ib->ib_barno], cfg0, newval);
520 mutex_exit(&ib->ib_mtx);
529 struct igpio_bank *ib = igpio_find_bank(sc, pin);
534 pin = igpio_bank_pin(ib, pin);
535 cfg0 = igpio_pincfg(ib, pin, IGPIO_PADCFG0);
536 cfg1 = igpio_pincfg(ib, pin, IGPIO_PADCFG1);
538 mutex_enter(&ib->ib_mtx);
540 val0 = bus_space_read_4(sc->sc_bst, sc->sc_bsh[ib->ib_barno], cfg0);
541 val1 = bus_space_read_4(sc->sc_bst, sc->sc_bsh[ib->ib_barno], cfg1);
587 "val1 #%x -> #%x\n", __func__, ib->ib_barno, pin, flags,
592 bus_space_write_4(sc->sc_bst, sc->sc_bsh[ib->ib_barno], cfg0, newval0);
593 bus_space_write_4(sc->sc_bst, sc->sc_bsh[ib->ib_barno], cfg1, newval1);
595 mutex_exit(&ib->ib_mtx);
605 struct igpio_bank *ib = igpio_find_bank(sc, pin);
610 pin = igpio_bank_pin(ib, pin);
611 cfg0 = igpio_pincfg(ib, pin, IGPIO_PADCFG0);
613 ii = &ib->ib_intr[pin];
617 ii->ii_bank = ib;
619 mutex_enter(&ib->ib_mtx);
621 val = bus_space_read_4(sc->sc_bst, sc->sc_bsh[ib->ib_barno], cfg0);
667 __func__, ib->ib_barno, pin,
671 bus_space_write_4(sc->sc_bst, sc->sc_bsh[ib->ib_barno], cfg0, newval);
673 mutex_exit(&ib->ib_mtx);
682 struct igpio_bank *ib;
692 ib = igpio_find_bank(sc, pin);
693 pin = igpio_bank_pin(ib, pin);
694 cfg0 = igpio_pincfg(ib, pin, IGPIO_PADCFG0);
696 mutex_enter(&ib->ib_mtx);
698 val = bus_space_read_4(sc->sc_bst, sc->sc_bsh[ib->ib_barno], cfg0);
708 __func__, ib->ib_barno, pin,
712 bus_space_write_4(sc->sc_bst, sc->sc_bsh[ib->ib_barno], cfg0, newval);
714 mutex_exit(&ib->ib_mtx);
743 struct igpio_bank *ib = &sc->sc_banks[i];
744 struct igpio_bank_setup *ibs = ib->ib_setup;
748 mutex_enter(&ib->ib_mtx);
763 offset = ib->ib_padbar + ipg->ipg_groupno * 4;
785 func = ib->ib_intr[pin].ii_func;
786 arg = ib->ib_intr[pin].ii_arg;
801 mutex_exit(&ib->ib_mtx);