Lines Matching full:sd
94 static int sdioh_sdmmc_get_cisaddr(sdioh_info_t *sd, uint32 regaddr);
126 uint sd_power = 1; /* Default to SD Slot powered ON */
127 uint sd_clock = 1; /* Default to SD Clock turned ON */
151 int sdioh_sdmmc_card_regread(sdioh_info_t *sd, int func, uint32 regaddr, int regsize, uint32 *data);
155 void sdioh_sdmmc_card_enable_func_f3(sdioh_info_t *sd, struct sdio_func *func) in sdioh_sdmmc_card_enable_func_f3() argument
157 sd->func[3] = func; in sdioh_sdmmc_card_enable_func_f3()
158 sd_info(("%s sd->func[3] %p\n", __FUNCTION__, sd->func[3])); in sdioh_sdmmc_card_enable_func_f3()
162 void sdmmc_set_clock_rate(sdioh_info_t *sd, uint hz);
163 uint sdmmc_get_clock_rate(sdioh_info_t *sd);
164 void sdmmc_set_clock_divisor(sdioh_info_t *sd, uint sd_div);
167 sdioh_sdmmc_card_enablefuncs(sdioh_info_t *sd) in sdioh_sdmmc_card_enablefuncs() argument
176 sd->com_cis_ptr = sdioh_sdmmc_get_cisaddr(sd, SDIOD_CCCR_CISPTR_0); in sdioh_sdmmc_card_enablefuncs()
177 sd->func_cis_ptr[0] = sd->com_cis_ptr; in sdioh_sdmmc_card_enablefuncs()
178 sd_info(("%s: Card's Common CIS Ptr = 0x%x\n", __FUNCTION__, sd->com_cis_ptr)); in sdioh_sdmmc_card_enablefuncs()
182 func <= sd->num_funcs; func++, fbraddr += SDIOD_FBR_SIZE) { in sdioh_sdmmc_card_enablefuncs()
183 sd->func_cis_ptr[func] = sdioh_sdmmc_get_cisaddr(sd, SDIOD_FBR_CISPTR_0 + fbraddr); in sdioh_sdmmc_card_enablefuncs()
185 __FUNCTION__, func, sd->func_cis_ptr[func])); in sdioh_sdmmc_card_enablefuncs()
188 sd->func_cis_ptr[0] = sd->com_cis_ptr; in sdioh_sdmmc_card_enablefuncs()
189 sd_info(("%s: Card's Common CIS Ptr = 0x%x\n", __FUNCTION__, sd->com_cis_ptr)); in sdioh_sdmmc_card_enablefuncs()
192 sdio_claim_host(sd->func[1]); in sdioh_sdmmc_card_enablefuncs()
193 err_ret = sdio_enable_func(sd->func[1]); in sdioh_sdmmc_card_enablefuncs()
194 sdio_release_host(sd->func[1]); in sdioh_sdmmc_card_enablefuncs()
208 sdioh_info_t *sd = NULL; in sdioh_attach() local
218 if ((sd = (sdioh_info_t *)MALLOC(osh, sizeof(sdioh_info_t))) == NULL) { in sdioh_attach()
222 bzero((char *)sd, sizeof(sdioh_info_t)); in sdioh_attach()
223 sd->osh = osh; in sdioh_attach()
224 sd->fake_func0.num = 0; in sdioh_attach()
225 sd->fake_func0.card = func->card; in sdioh_attach()
226 sd->func[0] = &sd->fake_func0; in sdioh_attach()
227 sd->func[1] = func->card->sdio_func[0]; in sdioh_attach()
228 sd->func[2] = func->card->sdio_func[1]; in sdioh_attach()
231 sd->func[3] = NULL; in sdioh_attach()
249 sd->num_funcs = 2; in sdioh_attach()
250 sd->sd_blockmode = TRUE; in sdioh_attach()
251 sd->use_client_ints = TRUE; in sdioh_attach()
252 sd->client_block_size[0] = 64; in sdioh_attach()
253 sd->use_rxchain = CUSTOM_RXCHAIN; in sdioh_attach()
254 if (sd->func[1] == NULL || sd->func[2] == NULL) { in sdioh_attach()
258 sdio_set_drvdata(sd->func[1], sd); in sdioh_attach()
260 sdio_claim_host(sd->func[1]); in sdioh_attach()
261 sd->client_block_size[1] = sd_f1_blocksize; in sdioh_attach()
262 err_ret = sdio_set_block_size(sd->func[1], sd_f1_blocksize); in sdioh_attach()
263 sdio_release_host(sd->func[1]); in sdioh_attach()
269 sdio_claim_host(sd->func[2]); in sdioh_attach()
270 sd->client_block_size[2] = sd_f2_blocksize; in sdioh_attach()
271 err_ret = sdio_set_block_size(sd->func[2], sd_f2_blocksize); in sdioh_attach()
272 sdio_release_host(sd->func[2]); in sdioh_attach()
279 sd->sd_clk_rate = sdmmc_get_clock_rate(sd); in sdioh_attach()
280 DHD_ERROR(("%s: sd clock rate = %u\n", __FUNCTION__, sd->sd_clk_rate)); in sdioh_attach()
282 sdioh_sdmmc_card_enablefuncs(sd); in sdioh_attach()
285 return sd; in sdioh_attach()
288 MFREE(sd->osh, sd, sizeof(sdioh_info_t)); in sdioh_attach()
293 sdioh_detach(osl_t *osh, sdioh_info_t *sd) in sdioh_detach() argument
297 if (sd) { in sdioh_detach()
300 if (sd->func[2]) { in sdioh_detach()
301 sdio_claim_host(sd->func[2]); in sdioh_detach()
302 sdio_disable_func(sd->func[2]); in sdioh_detach()
303 sdio_release_host(sd->func[2]); in sdioh_detach()
307 if (sd->func[1]) { in sdioh_detach()
308 sdio_claim_host(sd->func[1]); in sdioh_detach()
309 sdio_disable_func(sd->func[1]); in sdioh_detach()
310 sdio_release_host(sd->func[1]); in sdioh_detach()
313 sd->func[1] = NULL; in sdioh_detach()
314 sd->func[2] = NULL; in sdioh_detach()
316 MFREE(sd->osh, sd, sizeof(sdioh_info_t)); in sdioh_detach()
324 sdioh_enable_func_intr(sdioh_info_t *sd) in sdioh_enable_func_intr() argument
329 if (sd->func[0] == NULL) { in sdioh_enable_func_intr()
334 sdio_claim_host(sd->func[0]); in sdioh_enable_func_intr()
335 reg = sdio_readb(sd->func[0], SDIOD_CCCR_INTEN, &err); in sdioh_enable_func_intr()
338 sdio_release_host(sd->func[0]); in sdioh_enable_func_intr()
347 sdio_writeb(sd->func[0], reg, SDIOD_CCCR_INTEN, &err); in sdioh_enable_func_intr()
348 sdio_release_host(sd->func[0]); in sdioh_enable_func_intr()
359 sdioh_disable_func_intr(sdioh_info_t *sd) in sdioh_disable_func_intr() argument
364 if (sd->func[0] == NULL) { in sdioh_disable_func_intr()
369 sdio_claim_host(sd->func[0]); in sdioh_disable_func_intr()
370 reg = sdio_readb(sd->func[0], SDIOD_CCCR_INTEN, &err); in sdioh_disable_func_intr()
373 sdio_release_host(sd->func[0]); in sdioh_disable_func_intr()
383 sdio_writeb(sd->func[0], reg, SDIOD_CCCR_INTEN, &err); in sdioh_disable_func_intr()
384 sdio_release_host(sd->func[0]); in sdioh_disable_func_intr()
397 sdioh_interrupt_register(sdioh_info_t *sd, sdioh_cb_fn_t fn, void *argh) in sdioh_interrupt_register() argument
405 sd->intr_handler = fn; in sdioh_interrupt_register()
406 sd->intr_handler_arg = argh; in sdioh_interrupt_register()
407 sd->intr_handler_valid = TRUE; in sdioh_interrupt_register()
410 if (sd->func[2]) { in sdioh_interrupt_register()
411 sdio_claim_host(sd->func[2]); in sdioh_interrupt_register()
412 sdio_claim_irq(sd->func[2], IRQHandlerF2); in sdioh_interrupt_register()
413 sdio_release_host(sd->func[2]); in sdioh_interrupt_register()
416 if (sd->func[1]) { in sdioh_interrupt_register()
417 sdio_claim_host(sd->func[1]); in sdioh_interrupt_register()
418 sdio_claim_irq(sd->func[1], IRQHandler); in sdioh_interrupt_register()
419 sdio_release_host(sd->func[1]); in sdioh_interrupt_register()
422 sdioh_enable_func_intr(sd); in sdioh_interrupt_register()
429 sdioh_interrupt_deregister(sdioh_info_t *sd) in sdioh_interrupt_deregister() argument
434 if (sd->func[1]) { in sdioh_interrupt_deregister()
436 sdio_claim_host(sd->func[1]); in sdioh_interrupt_deregister()
437 sdio_release_irq(sd->func[1]); in sdioh_interrupt_deregister()
438 sdio_release_host(sd->func[1]); in sdioh_interrupt_deregister()
441 if (sd->func[2]) { in sdioh_interrupt_deregister()
443 sdio_claim_host(sd->func[2]); in sdioh_interrupt_deregister()
444 sdio_release_irq(sd->func[2]); in sdioh_interrupt_deregister()
446 sdio_release_host(sd->func[2]); in sdioh_interrupt_deregister()
449 sd->intr_handler_valid = FALSE; in sdioh_interrupt_deregister()
450 sd->intr_handler = NULL; in sdioh_interrupt_deregister()
451 sd->intr_handler_arg = NULL; in sdioh_interrupt_deregister()
453 sdioh_disable_func_intr(sd); in sdioh_interrupt_deregister()
459 sdioh_interrupt_query(sdioh_info_t *sd, bool *onoff) in sdioh_interrupt_query() argument
462 *onoff = sd->client_intr_enabled; in sdioh_interrupt_query()
468 sdioh_interrupt_pending(sdioh_info_t *sd) in sdioh_interrupt_pending() argument
475 sdioh_query_iofnum(sdioh_info_t *sd) in sdioh_query_iofnum() argument
477 return sd->num_funcs; in sdioh_query_iofnum()
739 sdioh_enable_hw_oob_intr(sdioh_info_t *sd, bool enable) in sdioh_enable_hw_oob_intr() argument
749 status = sdioh_request_byte(sd, SDIOH_WRITE, 0, SDIOD_CCCR_BRCM_SEPINT, &data); in sdioh_enable_hw_oob_intr()
755 sdioh_cfg_read(sdioh_info_t *sd, uint fnc_num, uint32 addr, uint8 *data) in sdioh_cfg_read() argument
759 status = sdioh_request_byte(sd, SDIOH_READ, fnc_num, addr, data); in sdioh_cfg_read()
764 sdioh_cfg_write(sdioh_info_t *sd, uint fnc_num, uint32 addr, uint8 *data) in sdioh_cfg_write() argument
768 status = sdioh_request_byte(sd, SDIOH_WRITE, fnc_num, addr, data); in sdioh_cfg_write()
773 sdioh_sdmmc_get_cisaddr(sdioh_info_t *sd, uint32 regaddr) in sdioh_sdmmc_get_cisaddr() argument
780 if ((sdioh_sdmmc_card_regread (sd, 0, regaddr, 1, ®data)) != SUCCESS) in sdioh_sdmmc_get_cisaddr()
794 sdioh_cis_read(sdioh_info_t *sd, uint func, uint8 *cisd, uint32 length) in sdioh_cis_read() argument
803 if (!sd->func_cis_ptr[func]) { in sdioh_cis_read()
809 sd_err(("%s: func_cis_ptr[%d]=0x%04x\n", __FUNCTION__, func, sd->func_cis_ptr[func])); in sdioh_cis_read()
812 offset = sd->func_cis_ptr[func] + count; in sdioh_cis_read()
813 if (sdioh_sdmmc_card_regread (sd, 0, offset, 1, &foo) < 0) { in sdioh_cis_read()
826 sdioh_request_byte(sdioh_info_t *sd, uint rw, uint func, uint regaddr, uint8 *byte) in sdioh_request_byte() argument
845 if (sd->func[3]) { in sdioh_request_byte()
849 sdio_claim_host(sd->func[3]); in sdioh_request_byte()
852 err_ret = sdio_set_block_size(sd->func[3], in sdioh_request_byte()
861 sd->func[3])); in sdioh_request_byte()
862 err_ret = sdio_enable_func(sd->func[3]); in sdioh_request_byte()
868 sdio_release_host(sd->func[3]); in sdioh_request_byte()
872 sdio_claim_host(sd->func[3]); in sdioh_request_byte()
876 sd->func[3])); in sdioh_request_byte()
877 err_ret = sdio_disable_func(sd->func[3]); in sdioh_request_byte()
882 sdio_release_host(sd->func[3]); in sdioh_request_byte()
883 sd->func[3] = NULL; in sdioh_request_byte()
889 if (sd->func[2]) { in sdioh_request_byte()
890 sdio_claim_host(sd->func[2]); in sdioh_request_byte()
893 err_ret = sdio_enable_func(sd->func[2]); in sdioh_request_byte()
900 err_ret = sdio_disable_func(sd->func[2]); in sdioh_request_byte()
906 sdio_release_host(sd->func[2]); in sdioh_request_byte()
916 if (sd->func[func]) { in sdioh_request_byte()
917 sdio_claim_host(sd->func[func]); in sdioh_request_byte()
923 sdio_writeb(sd->func[func], in sdioh_request_byte()
925 sdio_release_host(sd->func[func]); in sdioh_request_byte()
936 if (sd->func[func]) { in sdioh_request_byte()
937 sdio_claim_host(sd->func[func]); in sdioh_request_byte()
938 sdio_f0_writeb(sd->func[func], in sdioh_request_byte()
940 sdio_release_host(sd->func[func]); in sdioh_request_byte()
945 if (sd->func[func]) { in sdioh_request_byte()
946 sdio_claim_host(sd->func[func]); in sdioh_request_byte()
947 sdio_writeb(sd->func[func], *byte, regaddr, &err_ret); in sdioh_request_byte()
948 sdio_release_host(sd->func[func]); in sdioh_request_byte()
953 if (sd->func[func]) { in sdioh_request_byte()
954 sdio_claim_host(sd->func[func]); in sdioh_request_byte()
956 *byte = sdio_f0_readb(sd->func[func], regaddr, &err_ret); in sdioh_request_byte()
958 *byte = sdio_readb(sd->func[func], regaddr, &err_ret); in sdioh_request_byte()
960 sdio_release_host(sd->func[func]); in sdioh_request_byte()
976 sdioh_request_word(sdioh_info_t *sd, uint cmd_type, uint rw, uint func, uint addr, in sdioh_request_word() argument
995 sdio_claim_host(sd->func[func]); in sdioh_request_word()
999 sdio_writel(sd->func[func], *word, addr, &err_ret); in sdioh_request_word()
1001 sdio_writew(sd->func[func], (*word & 0xFFFF), addr, &err_ret); in sdioh_request_word()
1007 *word = sdio_readl(sd->func[func], addr, &err_ret); in sdioh_request_word()
1009 *word = sdio_readw(sd->func[func], addr, &err_ret) & 0xFFFF; in sdioh_request_word()
1016 sdio_release_host(sd->func[func]); in sdioh_request_word()
1022 if (sd->func[0]) { in sdioh_request_word()
1023 sdio_claim_host(sd->func[0]); in sdioh_request_word()
1029 sdio_writeb(sd->func[0], in sdioh_request_word()
1031 sdio_release_host(sd->func[0]); in sdioh_request_word()
1049 sdioh_request_packet_chain(sdioh_info_t *sd, uint fix_inc, uint write, uint func, in sdioh_request_packet_chain() argument
1064 struct sdio_func *sdio_func = sd->func[func]; in sdioh_request_packet_chain()
1072 blk_size = sd->client_block_size[func]; in sdioh_request_packet_chain()
1085 sg_init_table(sd->sg_list, ARRAYSIZE(sd->sg_list)); in sdioh_request_packet_chain()
1096 uint8 *pdata = (uint8*)PKTDATA(sd->osh, pnext); in sdioh_request_packet_chain()
1099 pkt_len = PKTLEN(sd->osh, pnext); in sdioh_request_packet_chain()
1105 if (sg_count >= ARRAYSIZE(sd->sg_list)) { in sdioh_request_packet_chain()
1107 " sd blk_size=%u\n", in sdioh_request_packet_chain()
1108 __FUNCTION__, sg_count, ARRAYSIZE(sd->sg_list), blk_size)); in sdioh_request_packet_chain()
1123 sg_set_buf(&sd->sg_list[sg_count++], pdata, sg_data_size); in sdioh_request_packet_chain()
1128 pnext = PKTNEXT(sd->osh, pnext); in sdioh_request_packet_chain()
1139 mmc_dat.sg = sd->sg_list; in sdioh_request_packet_chain()
1176 sdioh_buffer_tofrom_bus(sdioh_info_t *sd, uint fix_inc, uint write, uint func, in sdioh_buffer_tofrom_bus() argument
1194 sdio_claim_host(sd->func[func]); in sdioh_buffer_tofrom_bus()
1197 err_ret = sdio_memcpy_toio(sd->func[func], addr, buf, len); in sdioh_buffer_tofrom_bus()
1199 err_ret = sdio_memcpy_toio(sd->func[func], addr, buf, len); in sdioh_buffer_tofrom_bus()
1201 err_ret = sdio_readsb(sd->func[func], buf, addr, len); in sdioh_buffer_tofrom_bus()
1203 err_ret = sdio_memcpy_fromio(sd->func[func], buf, addr, len); in sdioh_buffer_tofrom_bus()
1205 sdio_release_host(sd->func[func]); in sdioh_buffer_tofrom_bus()
1230 sdioh_request_buffer(sdioh_info_t *sd, uint pio_dma, uint fix_inc, uint write, uint func, in sdioh_request_buffer() argument
1245 if (PKTNEXT(sd->osh, pkt)) in sdioh_request_buffer()
1246 return sdioh_request_packet_chain(sd, fix_inc, write, func, addr, pkt); in sdioh_request_buffer()
1251 buffer = PKTDATA(sd->osh, pkt); in sdioh_request_buffer()
1252 buf_len = PKTLEN(sd->osh, pkt); in sdioh_request_buffer()
1259 return sdioh_buffer_tofrom_bus(sd, fix_inc, write, func, addr, buffer, buf_len); in sdioh_request_buffer()
1265 tmppkt = PKTGET_STATIC(sd->osh, buf_len + DEFAULT_SDIO_F2_BLKSIZE, write ? TRUE : FALSE); in sdioh_request_buffer()
1272 bcopy(buffer, PKTDATA(sd->osh, tmppkt), buf_len); in sdioh_request_buffer()
1274 status = sdioh_buffer_tofrom_bus(sd, fix_inc, write, func, addr, in sdioh_request_buffer()
1275 PKTDATA(sd->osh, tmppkt), ROUNDUP(buf_len, (DMA_ALIGN_MASK+1))); in sdioh_request_buffer()
1278 bcopy(PKTDATA(sd->osh, tmppkt), buffer, buf_len); in sdioh_request_buffer()
1280 PKTFREE_STATIC(sd->osh, tmppkt, write ? TRUE : FALSE); in sdioh_request_buffer()
1287 sdioh_abort(sdioh_info_t *sd, uint func) in sdioh_abort() argument
1296 sdioh_request_byte(sd, SD_IO_OP_WRITE, SDIO_FUNC_0, SDIOD_CCCR_IOABORT, &t_func); in sdioh_abort()
1313 sdioh_sdmmc_devintr_off(sdioh_info_t *sd) in sdioh_sdmmc_devintr_off() argument
1315 sd_trace(("%s: %d\n", __FUNCTION__, sd->use_client_ints)); in sdioh_sdmmc_devintr_off()
1316 sd->intmask &= ~CLIENT_INTR; in sdioh_sdmmc_devintr_off()
1321 sdioh_sdmmc_devintr_on(sdioh_info_t *sd) in sdioh_sdmmc_devintr_on() argument
1323 sd_trace(("%s: %d\n", __FUNCTION__, sd->use_client_ints)); in sdioh_sdmmc_devintr_on()
1324 sd->intmask |= CLIENT_INTR; in sdioh_sdmmc_devintr_on()
1329 sdioh_sdmmc_card_regread(sdioh_info_t *sd, int func, uint32 regaddr, int regsize, uint32 *data) in sdioh_sdmmc_card_regread() argument
1335 sdioh_request_byte(sd, SDIOH_READ, func, regaddr, &temp); in sdioh_sdmmc_card_regread()
1341 if (sdioh_request_word(sd, 0, SDIOH_READ, func, regaddr, data, regsize)) { in sdioh_sdmmc_card_regread()
1358 sdioh_info_t *sd; in IRQHandler() local
1360 sd = sdio_get_drvdata(func); in IRQHandler()
1362 ASSERT(sd != NULL); in IRQHandler()
1363 sdio_release_host(sd->func[0]); in IRQHandler()
1365 if (sd->use_client_ints) { in IRQHandler()
1366 sd->intrcount++; in IRQHandler()
1367 ASSERT(sd->intr_handler); in IRQHandler()
1368 ASSERT(sd->intr_handler_arg); in IRQHandler()
1369 (sd->intr_handler)(sd->intr_handler_arg); in IRQHandler()
1374 __FUNCTION__, sd->client_intr_enabled, sd->intr_handler)); in IRQHandler()
1377 sdio_claim_host(sd->func[0]); in IRQHandler()
1390 sdioh_sdmmc_card_regwrite(sdioh_info_t *sd, int func, uint32 regaddr, int regsize, uint32 data) in sdioh_sdmmc_card_regwrite() argument
1397 sdioh_request_byte(sd, SDIOH_READ, func, regaddr, &temp); in sdioh_sdmmc_card_regwrite()
1404 sdioh_request_word(sd, 0, SDIOH_READ, func, regaddr, &data, regsize); in sdioh_sdmmc_card_regwrite()
1415 sdioh_start(sdioh_info_t *sd, int stage) in sdioh_start() argument
1420 if (!sd) { in sdioh_start()
1421 sd_err(("%s Failed, sd is NULL\n", __FUNCTION__)); in sdioh_start()
1429 if (sd->func[0]) { in sdioh_start()
1440 if ((ret = sdio_reset_comm(sd->func[0]->card))) { in sdioh_start()
1445 sd->num_funcs = 2; in sdioh_start()
1446 sd->sd_blockmode = TRUE; in sdioh_start()
1447 sd->use_client_ints = TRUE; in sdioh_start()
1448 sd->client_block_size[0] = 64; in sdioh_start()
1450 if (sd->func[1]) { in sdioh_start()
1452 sdio_claim_host(sd->func[1]); in sdioh_start()
1454 sd->client_block_size[1] = 64; in sdioh_start()
1455 ret = sdio_set_block_size(sd->func[1], 64); in sdioh_start()
1462 sdio_release_host(sd->func[1]); in sdioh_start()
1465 if (sd->func[2]) { in sdioh_start()
1467 sdio_claim_host(sd->func[2]); in sdioh_start()
1469 sd->client_block_size[2] = sd_f2_blocksize; in sdioh_start()
1470 ret = sdio_set_block_size(sd->func[2], sd_f2_blocksize); in sdioh_start()
1477 sdio_release_host(sd->func[2]); in sdioh_start()
1480 sdioh_sdmmc_card_enablefuncs(sd); in sdioh_start()
1484 sdio_claim_host(sd->func[0]); in sdioh_start()
1485 if (sd->func[2]) in sdioh_start()
1486 sdio_claim_irq(sd->func[2], IRQHandlerF2); in sdioh_start()
1487 if (sd->func[1]) in sdioh_start()
1488 sdio_claim_irq(sd->func[1], IRQHandler); in sdioh_start()
1489 sdio_release_host(sd->func[0]); in sdioh_start()
1492 sdioh_enable_func_intr(sd); in sdioh_start()
1494 bcmsdh_oob_intr_set(sd->bcmsdh, TRUE); in sdioh_start()
1506 sdioh_stop(sdioh_info_t *sd) in sdioh_stop() argument
1515 if (sd->func[0]) { in sdioh_stop()
1517 sdio_claim_host(sd->func[0]); in sdioh_stop()
1518 if (sd->func[1]) in sdioh_stop()
1519 sdio_release_irq(sd->func[1]); in sdioh_stop()
1520 if (sd->func[2]) in sdioh_stop()
1521 sdio_release_irq(sd->func[2]); in sdioh_stop()
1522 sdio_release_host(sd->func[0]); in sdioh_stop()
1525 sdioh_disable_func_intr(sd); in sdioh_stop()
1527 bcmsdh_oob_intr_set(sd->bcmsdh, FALSE); in sdioh_stop()
1537 sdioh_waitlockfree(sdioh_info_t *sd) in sdioh_waitlockfree() argument
1543 sdioh_gpioouten(sdioh_info_t *sd, uint32 gpio) in sdioh_gpioouten() argument
1549 sdioh_gpioout(sdioh_info_t *sd, uint32 gpio, bool enab) in sdioh_gpioout() argument
1555 sdioh_gpioin(sdioh_info_t *sd, uint32 gpio) in sdioh_gpioin() argument
1561 sdioh_gpio_init(sdioh_info_t *sd) in sdioh_gpio_init() argument
1567 sdmmc_get_clock_rate(sdioh_info_t *sd) in sdmmc_get_clock_rate() argument
1569 struct sdio_func *sdio_func = sd->func[0]; in sdmmc_get_clock_rate()
1579 sdmmc_set_clock_rate(sdioh_info_t *sd, uint hz) in sdmmc_set_clock_rate() argument
1581 struct sdio_func *sdio_func = sd->func[0]; in sdmmc_set_clock_rate()
1588 DHD_INFO(("%s: Before change: sd clock rate is %u\n", __FUNCTION__, ios->clock)); in sdmmc_set_clock_rate()
1600 DHD_ERROR(("%s: After change: sd clock rate is %u\n", __FUNCTION__, ios->clock)); in sdmmc_set_clock_rate()
1607 sdmmc_set_clock_divisor(sdioh_info_t *sd, uint sd_div) in sdmmc_set_clock_divisor() argument
1610 uint old_div = sdmmc_get_clock_rate(sd); in sdmmc_set_clock_divisor()
1615 hz = sd->sd_clk_rate / sd_div; in sdmmc_set_clock_divisor()
1616 sdmmc_set_clock_rate(sd, hz); in sdmmc_set_clock_divisor()