Lines Matching refs:ssc
75 #define BWI_SDIO_REG_OFFSET(ssc, reg) \
76 ((reg) | ((ssc)->sc_sel_regwin & 0x7000))
159 struct bwi_sdio_softc * const ssc = device_private(self);
160 struct bwi_softc * const sc = &ssc->sc_base;
185 ssc->sc_sf = sf;
186 mutex_init(&ssc->sc_lock, MUTEX_DEFAULT, IPL_NONE);
188 sdmmc_io_set_blocklen(ssc->sc_sf, 64);
189 if (sdmmc_io_function_enable(ssc->sc_sf) != 0) {
194 bwi_sdio_parse_cis(ssc);
196 ih = sdmmc_intr_establish(parent, bwi_sdio_intr, ssc,
209 sdmmc_intr_enable(ssc->sc_sf);
213 bwi_sdio_parse_cis(struct bwi_sdio_softc *ssc)
215 struct sdmmc_function *sf0 = ssc->sc_sf->sc->sc_fn0;
216 struct bwi_sdio_sprom *sprom = &ssc->sc_sprom;
220 reg = sdmmc_cisptr(ssc->sc_sf);
290 struct bwi_sdio_softc * const ssc = priv;
292 bwi_intr(&ssc->sc_base);
300 struct bwi_sdio_softc * const ssc = priv;
304 mutex_enter(&ssc->sc_lock);
305 if (reg == BWI_PCIR_SEL_REGWIN && ssc->sc_sel_regwin != val) {
306 sdmmc_io_write_1(ssc->sc_sf, BWI_SDIO_FUNC1_SBADDRLOW,
308 sdmmc_io_write_1(ssc->sc_sf, BWI_SDIO_FUNC1_SBADDRMID,
310 sdmmc_io_write_1(ssc->sc_sf, BWI_SDIO_FUNC1_SBADDRHI,
312 ssc->sc_sel_regwin = val;
314 mutex_exit(&ssc->sc_lock);
320 struct bwi_sdio_softc * const ssc = priv;
325 return ssc->sc_sel_regwin;
335 struct bwi_sdio_softc * const ssc = priv;
337 mutex_enter(&ssc->sc_lock);
338 sdmmc_io_write_multi_1(ssc->sc_sf,
339 BWI_SDIO_REG_OFFSET(ssc, reg) | BWI_SDIO_REG_32BIT_ACCESS,
341 mutex_exit(&ssc->sc_lock);
348 struct bwi_sdio_softc * const ssc = priv;
350 mutex_enter(&ssc->sc_lock);
351 sdmmc_io_read_multi_1(ssc->sc_sf,
352 BWI_SDIO_REG_OFFSET(ssc, reg) | BWI_SDIO_REG_32BIT_ACCESS,
354 mutex_exit(&ssc->sc_lock);
360 struct bwi_sdio_softc * const ssc = priv;
364 mutex_enter(&ssc->sc_lock);
365 sdmmc_io_write_2(ssc->sc_sf, BWI_SDIO_REG_OFFSET(ssc, reg), val);
366 mutex_exit(&ssc->sc_lock);
370 bwi_sdio_reg_read_sprom(struct bwi_sdio_softc *ssc, uint32_t reg)
372 struct bwi_sdio_sprom *sprom = &ssc->sc_sprom;
373 struct sdmmc_cis *cis = &ssc->sc_sf->cis;
406 struct bwi_sdio_softc * const ssc = priv;
412 return bwi_sdio_reg_read_sprom(ssc, reg - BWI_SPROM_START);
415 mutex_enter(&ssc->sc_lock);
416 val = sdmmc_io_read_2(ssc->sc_sf, BWI_SDIO_REG_OFFSET(ssc, reg));
417 mutex_exit(&ssc->sc_lock);
427 struct bwi_sdio_softc * const ssc = priv;
431 mutex_enter(&ssc->sc_lock);
432 sdmmc_io_write_4(ssc->sc_sf,
433 BWI_SDIO_REG_OFFSET(ssc, reg) | BWI_SDIO_REG_32BIT_ACCESS, val);
435 sdmmc_io_read_4(ssc->sc_sf, 0);
436 mutex_exit(&ssc->sc_lock);
442 struct bwi_sdio_softc * const ssc = priv;
445 mutex_enter(&ssc->sc_lock);
446 val = sdmmc_io_read_4(ssc->sc_sf,
447 BWI_SDIO_REG_OFFSET(ssc, reg) | BWI_SDIO_REG_32BIT_ACCESS);
448 mutex_exit(&ssc->sc_lock);