Lines Matching refs:cmd
60 static int wilc_sdio_cmd52(struct wilc *wilc, struct sdio_cmd52 *cmd) in wilc_sdio_cmd52() argument
68 func->num = cmd->function; in wilc_sdio_cmd52()
69 if (cmd->read_write) { /* write */ in wilc_sdio_cmd52()
70 if (cmd->raw) { in wilc_sdio_cmd52()
71 sdio_writeb(func, cmd->data, cmd->address, &ret); in wilc_sdio_cmd52()
72 data = sdio_readb(func, cmd->address, &ret); in wilc_sdio_cmd52()
73 cmd->data = data; in wilc_sdio_cmd52()
75 sdio_writeb(func, cmd->data, cmd->address, &ret); in wilc_sdio_cmd52()
78 data = sdio_readb(func, cmd->address, &ret); in wilc_sdio_cmd52()
79 cmd->data = data; in wilc_sdio_cmd52()
89 static int wilc_sdio_cmd53(struct wilc *wilc, struct sdio_cmd53 *cmd) in wilc_sdio_cmd53() argument
96 func->num = cmd->function; in wilc_sdio_cmd53()
97 func->cur_blksize = cmd->block_size; in wilc_sdio_cmd53()
98 if (cmd->block_mode) in wilc_sdio_cmd53()
99 size = cmd->count * cmd->block_size; in wilc_sdio_cmd53()
101 size = cmd->count; in wilc_sdio_cmd53()
103 if (cmd->read_write) { /* write */ in wilc_sdio_cmd53()
104 ret = sdio_memcpy_toio(func, cmd->address, in wilc_sdio_cmd53()
105 (void *)cmd->buffer, size); in wilc_sdio_cmd53()
107 ret = sdio_memcpy_fromio(func, (void *)cmd->buffer, in wilc_sdio_cmd53()
108 cmd->address, size); in wilc_sdio_cmd53()
174 struct sdio_cmd52 cmd; in wilc_sdio_reset() local
178 cmd.read_write = 1; in wilc_sdio_reset()
179 cmd.function = 0; in wilc_sdio_reset()
180 cmd.raw = 0; in wilc_sdio_reset()
181 cmd.address = SDIO_CCCR_ABORT; in wilc_sdio_reset()
182 cmd.data = WILC_SDIO_CCCR_ABORT_RESET; in wilc_sdio_reset()
183 ret = wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_reset()
255 struct sdio_cmd52 cmd; in wilc_sdio_set_func0_csa_address() local
261 cmd.read_write = 1; in wilc_sdio_set_func0_csa_address()
262 cmd.function = 0; in wilc_sdio_set_func0_csa_address()
263 cmd.raw = 0; in wilc_sdio_set_func0_csa_address()
264 cmd.address = WILC_SDIO_FBR_CSA_REG; in wilc_sdio_set_func0_csa_address()
265 cmd.data = (u8)adr; in wilc_sdio_set_func0_csa_address()
266 ret = wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_set_func0_csa_address()
269 cmd.address); in wilc_sdio_set_func0_csa_address()
273 cmd.address = WILC_SDIO_FBR_CSA_REG + 1; in wilc_sdio_set_func0_csa_address()
274 cmd.data = (u8)(adr >> 8); in wilc_sdio_set_func0_csa_address()
275 ret = wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_set_func0_csa_address()
278 cmd.address); in wilc_sdio_set_func0_csa_address()
282 cmd.address = WILC_SDIO_FBR_CSA_REG + 2; in wilc_sdio_set_func0_csa_address()
283 cmd.data = (u8)(adr >> 16); in wilc_sdio_set_func0_csa_address()
284 ret = wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_set_func0_csa_address()
287 cmd.address); in wilc_sdio_set_func0_csa_address()
298 struct sdio_cmd52 cmd; in wilc_sdio_set_block_size() local
301 cmd.read_write = 1; in wilc_sdio_set_block_size()
302 cmd.function = 0; in wilc_sdio_set_block_size()
303 cmd.raw = 0; in wilc_sdio_set_block_size()
304 cmd.address = SDIO_FBR_BASE(func_num) + SDIO_CCCR_BLKSIZE; in wilc_sdio_set_block_size()
305 cmd.data = (u8)block_size; in wilc_sdio_set_block_size()
306 ret = wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_set_block_size()
309 cmd.address); in wilc_sdio_set_block_size()
313 cmd.address = SDIO_FBR_BASE(func_num) + SDIO_CCCR_BLKSIZE + 1; in wilc_sdio_set_block_size()
314 cmd.data = (u8)(block_size >> 8); in wilc_sdio_set_block_size()
315 ret = wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_set_block_size()
318 cmd.address); in wilc_sdio_set_block_size()
339 struct sdio_cmd52 cmd; in wilc_sdio_write_reg() local
341 cmd.read_write = 1; in wilc_sdio_write_reg()
342 cmd.function = 0; in wilc_sdio_write_reg()
343 cmd.raw = 0; in wilc_sdio_write_reg()
344 cmd.address = addr; in wilc_sdio_write_reg()
345 cmd.data = data; in wilc_sdio_write_reg()
346 ret = wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_write_reg()
351 struct sdio_cmd53 cmd; in wilc_sdio_write_reg() local
360 cmd.read_write = 1; in wilc_sdio_write_reg()
361 cmd.function = 0; in wilc_sdio_write_reg()
362 cmd.address = WILC_SDIO_FBR_DATA_REG; in wilc_sdio_write_reg()
363 cmd.block_mode = 0; in wilc_sdio_write_reg()
364 cmd.increment = 1; in wilc_sdio_write_reg()
365 cmd.count = 4; in wilc_sdio_write_reg()
366 cmd.buffer = (u8 *)&data; in wilc_sdio_write_reg()
367 cmd.block_size = sdio_priv->block_size; in wilc_sdio_write_reg()
368 ret = wilc_sdio_cmd53(wilc, &cmd); in wilc_sdio_write_reg()
382 struct sdio_cmd53 cmd; in wilc_sdio_write() local
385 cmd.read_write = 1; in wilc_sdio_write()
390 cmd.function = 0; in wilc_sdio_write()
391 cmd.address = WILC_SDIO_FBR_DATA_REG; in wilc_sdio_write()
396 cmd.function = 1; in wilc_sdio_write()
397 cmd.address = WILC_SDIO_F1_DATA_REG; in wilc_sdio_write()
405 cmd.block_mode = 1; in wilc_sdio_write()
406 cmd.increment = 1; in wilc_sdio_write()
407 cmd.count = nblk; in wilc_sdio_write()
408 cmd.buffer = buf; in wilc_sdio_write()
409 cmd.block_size = block_size; in wilc_sdio_write()
415 ret = wilc_sdio_cmd53(wilc, &cmd); in wilc_sdio_write()
427 cmd.block_mode = 0; in wilc_sdio_write()
428 cmd.increment = 1; in wilc_sdio_write()
429 cmd.count = nleft; in wilc_sdio_write()
430 cmd.buffer = buf; in wilc_sdio_write()
432 cmd.block_size = block_size; in wilc_sdio_write()
439 ret = wilc_sdio_cmd53(wilc, &cmd); in wilc_sdio_write()
457 struct sdio_cmd52 cmd; in wilc_sdio_read_reg() local
459 cmd.read_write = 0; in wilc_sdio_read_reg()
460 cmd.function = 0; in wilc_sdio_read_reg()
461 cmd.raw = 0; in wilc_sdio_read_reg()
462 cmd.address = addr; in wilc_sdio_read_reg()
463 ret = wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_read_reg()
469 *data = cmd.data; in wilc_sdio_read_reg()
471 struct sdio_cmd53 cmd; in wilc_sdio_read_reg() local
477 cmd.read_write = 0; in wilc_sdio_read_reg()
478 cmd.function = 0; in wilc_sdio_read_reg()
479 cmd.address = WILC_SDIO_FBR_DATA_REG; in wilc_sdio_read_reg()
480 cmd.block_mode = 0; in wilc_sdio_read_reg()
481 cmd.increment = 1; in wilc_sdio_read_reg()
482 cmd.count = 4; in wilc_sdio_read_reg()
483 cmd.buffer = (u8 *)data; in wilc_sdio_read_reg()
485 cmd.block_size = sdio_priv->block_size; in wilc_sdio_read_reg()
486 ret = wilc_sdio_cmd53(wilc, &cmd); in wilc_sdio_read_reg()
503 struct sdio_cmd53 cmd; in wilc_sdio_read() local
506 cmd.read_write = 0; in wilc_sdio_read()
511 cmd.function = 0; in wilc_sdio_read()
512 cmd.address = WILC_SDIO_FBR_DATA_REG; in wilc_sdio_read()
517 cmd.function = 1; in wilc_sdio_read()
518 cmd.address = WILC_SDIO_F1_DATA_REG; in wilc_sdio_read()
526 cmd.block_mode = 1; in wilc_sdio_read()
527 cmd.increment = 1; in wilc_sdio_read()
528 cmd.count = nblk; in wilc_sdio_read()
529 cmd.buffer = buf; in wilc_sdio_read()
530 cmd.block_size = block_size; in wilc_sdio_read()
536 ret = wilc_sdio_cmd53(wilc, &cmd); in wilc_sdio_read()
548 cmd.block_mode = 0; in wilc_sdio_read()
549 cmd.increment = 1; in wilc_sdio_read()
550 cmd.count = nleft; in wilc_sdio_read()
551 cmd.buffer = buf; in wilc_sdio_read()
553 cmd.block_size = block_size; in wilc_sdio_read()
560 ret = wilc_sdio_cmd53(wilc, &cmd); in wilc_sdio_read()
586 struct sdio_cmd52 cmd; in wilc_sdio_init() local
593 cmd.read_write = 1; in wilc_sdio_init()
594 cmd.function = 0; in wilc_sdio_init()
595 cmd.raw = 1; in wilc_sdio_init()
596 cmd.address = SDIO_FBR_BASE(func->num); in wilc_sdio_init()
597 cmd.data = SDIO_FBR_ENABLE_CSA; in wilc_sdio_init()
598 ret = wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_init()
617 cmd.read_write = 1; in wilc_sdio_init()
618 cmd.function = 0; in wilc_sdio_init()
619 cmd.raw = 1; in wilc_sdio_init()
620 cmd.address = SDIO_CCCR_IOEx; in wilc_sdio_init()
621 cmd.data = WILC_SDIO_CCCR_IO_EN_FUNC1; in wilc_sdio_init()
622 ret = wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_init()
632 cmd.read_write = 0; in wilc_sdio_init()
633 cmd.function = 0; in wilc_sdio_init()
634 cmd.raw = 0; in wilc_sdio_init()
635 cmd.address = SDIO_CCCR_IORx; in wilc_sdio_init()
638 cmd.data = 0; in wilc_sdio_init()
639 ret = wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_init()
645 if (cmd.data == WILC_SDIO_CCCR_IO_EN_FUNC1) in wilc_sdio_init()
666 cmd.read_write = 1; in wilc_sdio_init()
667 cmd.function = 0; in wilc_sdio_init()
668 cmd.raw = 1; in wilc_sdio_init()
669 cmd.address = SDIO_CCCR_IENx; in wilc_sdio_init()
670 cmd.data = WILC_SDIO_CCCR_IEN_MASTER | WILC_SDIO_CCCR_IEN_FUNC1; in wilc_sdio_init()
671 ret = wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_init()
704 struct sdio_cmd52 cmd; in wilc_sdio_read_size() local
709 cmd.read_write = 0; in wilc_sdio_read_size()
710 cmd.function = 0; in wilc_sdio_read_size()
711 cmd.raw = 0; in wilc_sdio_read_size()
712 cmd.address = WILC_SDIO_INTERRUPT_DATA_SZ_REG; in wilc_sdio_read_size()
713 cmd.data = 0; in wilc_sdio_read_size()
714 wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_read_size()
715 tmp = cmd.data; in wilc_sdio_read_size()
717 cmd.address = WILC_SDIO_INTERRUPT_DATA_SZ_REG + 1; in wilc_sdio_read_size()
718 cmd.data = 0; in wilc_sdio_read_size()
719 wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_read_size()
720 tmp |= (cmd.data << 8); in wilc_sdio_read_size()
732 struct sdio_cmd52 cmd; in wilc_sdio_read_int() local
740 cmd.function = 1; in wilc_sdio_read_int()
741 cmd.address = WILC_SDIO_EXT_IRQ_FLAG_REG; in wilc_sdio_read_int()
743 cmd.function = 0; in wilc_sdio_read_int()
744 cmd.address = WILC_SDIO_IRQ_FLAG_REG; in wilc_sdio_read_int()
746 cmd.raw = 0; in wilc_sdio_read_int()
747 cmd.read_write = 0; in wilc_sdio_read_int()
748 cmd.data = 0; in wilc_sdio_read_int()
749 wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_read_int()
750 irq_flags = cmd.data; in wilc_sdio_read_int()
751 tmp |= FIELD_PREP(IRG_FLAGS_MASK, cmd.data); in wilc_sdio_read_int()
785 struct sdio_cmd52 cmd; in wilc_sdio_clear_int_ext() local
787 cmd.read_write = 1; in wilc_sdio_clear_int_ext()
788 cmd.function = 0; in wilc_sdio_clear_int_ext()
789 cmd.raw = 0; in wilc_sdio_clear_int_ext()
790 cmd.address = WILC_SDIO_IRQ_CLEAR_FLAG_REG; in wilc_sdio_clear_int_ext()
791 cmd.data = reg; in wilc_sdio_clear_int_ext()
793 ret = wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_clear_int_ext()
797 cmd.address, __LINE__); in wilc_sdio_clear_int_ext()
815 struct sdio_cmd52 cmd; in wilc_sdio_clear_int_ext() local
817 cmd.read_write = 1; in wilc_sdio_clear_int_ext()
818 cmd.function = 0; in wilc_sdio_clear_int_ext()
819 cmd.raw = 0; in wilc_sdio_clear_int_ext()
820 cmd.address = WILC_SDIO_IRQ_CLEAR_FLAG_REG; in wilc_sdio_clear_int_ext()
821 cmd.data = BIT(i); in wilc_sdio_clear_int_ext()
823 ret = wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_clear_int_ext()
827 cmd.address, __LINE__); in wilc_sdio_clear_int_ext()
856 struct sdio_cmd52 cmd; in wilc_sdio_clear_int_ext() local
858 cmd.read_write = 1; in wilc_sdio_clear_int_ext()
859 cmd.function = 0; in wilc_sdio_clear_int_ext()
860 cmd.raw = 0; in wilc_sdio_clear_int_ext()
861 cmd.address = WILC_SDIO_VMM_TBL_CTRL_REG; in wilc_sdio_clear_int_ext()
862 cmd.data = vmm_ctl; in wilc_sdio_clear_int_ext()
863 ret = wilc_sdio_cmd52(wilc, &cmd); in wilc_sdio_clear_int_ext()
867 cmd.address, __LINE__); in wilc_sdio_clear_int_ext()