Lines Matching refs:sock
117 struct tifm_dev *sock = host->dev; in tifm_sd_read_fifo() local
128 val = readl(sock->addr + SOCK_MMCSD_DATA); in tifm_sd_read_fifo()
143 struct tifm_dev *sock = host->dev; in tifm_sd_write_fifo() local
150 writel(val, sock->addr + SOCK_MMCSD_DATA); in tifm_sd_write_fifo()
162 writel(val, sock->addr + SOCK_MMCSD_DATA); in tifm_sd_write_fifo()
265 struct tifm_dev *sock = host->dev; in tifm_sd_set_dma_data() local
318 dev_dbg(&sock->dev, "setting dma for %d blocks\n", dma_blk_cnt); in tifm_sd_set_dma_data()
319 writel(sg_dma_address(sg) + dma_off, sock->addr + SOCK_DMA_ADDRESS); in tifm_sd_set_dma_data()
322 sock->addr + SOCK_DMA_CONTROL); in tifm_sd_set_dma_data()
325 sock->addr + SOCK_DMA_CONTROL); in tifm_sd_set_dma_data()
374 struct tifm_dev *sock = host->dev; in tifm_sd_exec() local
383 dev_dbg(&sock->dev, "executing opcode 0x%x, arg: 0x%x, mask: 0x%x\n", in tifm_sd_exec()
386 writel((cmd->arg >> 16) & 0xffff, sock->addr + SOCK_MMCSD_ARG_HIGH); in tifm_sd_exec()
387 writel(cmd->arg & 0xffff, sock->addr + SOCK_MMCSD_ARG_LOW); in tifm_sd_exec()
388 writel(cmd->opcode | cmd_mask, sock->addr + SOCK_MMCSD_COMMAND); in tifm_sd_exec()
391 static void tifm_sd_fetch_resp(struct mmc_command *cmd, struct tifm_dev *sock) in tifm_sd_fetch_resp() argument
393 cmd->resp[0] = (readl(sock->addr + SOCK_MMCSD_RESPONSE + 0x1c) << 16) in tifm_sd_fetch_resp()
394 | readl(sock->addr + SOCK_MMCSD_RESPONSE + 0x18); in tifm_sd_fetch_resp()
395 cmd->resp[1] = (readl(sock->addr + SOCK_MMCSD_RESPONSE + 0x14) << 16) in tifm_sd_fetch_resp()
396 | readl(sock->addr + SOCK_MMCSD_RESPONSE + 0x10); in tifm_sd_fetch_resp()
397 cmd->resp[2] = (readl(sock->addr + SOCK_MMCSD_RESPONSE + 0x0c) << 16) in tifm_sd_fetch_resp()
398 | readl(sock->addr + SOCK_MMCSD_RESPONSE + 0x08); in tifm_sd_fetch_resp()
399 cmd->resp[3] = (readl(sock->addr + SOCK_MMCSD_RESPONSE + 0x04) << 16) in tifm_sd_fetch_resp()
400 | readl(sock->addr + SOCK_MMCSD_RESPONSE + 0x00); in tifm_sd_fetch_resp()
405 struct tifm_dev *sock = host->dev; in tifm_sd_check_status() local
434 | readl(sock->addr in tifm_sd_check_status()
436 sock->addr in tifm_sd_check_status()
445 & readl(sock->addr in tifm_sd_check_status()
447 sock->addr in tifm_sd_check_status()
454 & readl(sock->addr in tifm_sd_check_status()
456 sock->addr + SOCK_MMCSD_INT_ENABLE); in tifm_sd_check_status()
476 static void tifm_sd_data_event(struct tifm_dev *sock) in tifm_sd_data_event() argument
482 spin_lock(&sock->lock); in tifm_sd_data_event()
483 host = mmc_priv((struct mmc_host*)tifm_get_drvdata(sock)); in tifm_sd_data_event()
484 fifo_status = readl(sock->addr + SOCK_DMA_FIFO_STATUS); in tifm_sd_data_event()
485 dev_dbg(&sock->dev, "data event: fifo_status %x, flags %x\n", in tifm_sd_data_event()
499 writel(fifo_status, sock->addr + SOCK_DMA_FIFO_STATUS); in tifm_sd_data_event()
500 spin_unlock(&sock->lock); in tifm_sd_data_event()
504 static void tifm_sd_card_event(struct tifm_dev *sock) in tifm_sd_card_event() argument
512 spin_lock(&sock->lock); in tifm_sd_card_event()
513 host = mmc_priv((struct mmc_host*)tifm_get_drvdata(sock)); in tifm_sd_card_event()
514 host_status = readl(sock->addr + SOCK_MMCSD_STATUS); in tifm_sd_card_event()
515 dev_dbg(&sock->dev, "host event: host_status %x, flags %x\n", in tifm_sd_card_event()
523 sock->addr + SOCK_MMCSD_STATUS); in tifm_sd_card_event()
537 sock->addr + SOCK_DMA_FIFO_INT_ENABLE_CLEAR); in tifm_sd_card_event()
538 writel(TIFM_DMA_RESET, sock->addr + SOCK_DMA_CONTROL); in tifm_sd_card_event()
556 tifm_sd_fetch_resp(cmd, sock); in tifm_sd_card_event()
560 sock); in tifm_sd_card_event()
570 sock->addr + SOCK_MMCSD_STATUS); in tifm_sd_card_event()
589 writel(host_status, sock->addr + SOCK_MMCSD_STATUS); in tifm_sd_card_event()
590 spin_unlock(&sock->lock); in tifm_sd_card_event()
596 struct tifm_dev *sock = host->dev; in tifm_sd_set_data_timeout() local
606 writel(data_timeout, sock->addr + SOCK_MMCSD_DATA_TO); in tifm_sd_set_data_timeout()
608 & readl(sock->addr + SOCK_MMCSD_SDIO_MODE_CONFIG), in tifm_sd_set_data_timeout()
609 sock->addr + SOCK_MMCSD_SDIO_MODE_CONFIG); in tifm_sd_set_data_timeout()
614 writel(data_timeout, sock->addr + SOCK_MMCSD_DATA_TO); in tifm_sd_set_data_timeout()
616 | readl(sock->addr + SOCK_MMCSD_SDIO_MODE_CONFIG), in tifm_sd_set_data_timeout()
617 sock->addr + SOCK_MMCSD_SDIO_MODE_CONFIG); in tifm_sd_set_data_timeout()
624 struct tifm_dev *sock = host->dev; in tifm_sd_request() local
628 spin_lock_irqsave(&sock->lock, flags); in tifm_sd_request()
636 dev_name(&sock->dev)); in tifm_sd_request()
655 | readl(sock->addr + SOCK_MMCSD_INT_ENABLE), in tifm_sd_request()
656 sock->addr + SOCK_MMCSD_INT_ENABLE); in tifm_sd_request()
660 | readl(sock->addr + SOCK_MMCSD_INT_ENABLE), in tifm_sd_request()
661 sock->addr + SOCK_MMCSD_INT_ENABLE); in tifm_sd_request()
664 sock->addr + SOCK_MMCSD_BUFFER_CONFIG); in tifm_sd_request()
671 if(1 != tifm_map_sg(sock, &host->bounce_buf, 1, in tifm_sd_request()
676 dev_name(&sock->dev)); in tifm_sd_request()
680 host->sg_len = tifm_map_sg(sock, r_data->sg, in tifm_sd_request()
688 dev_name(&sock->dev)); in tifm_sd_request()
689 tifm_unmap_sg(sock, &host->bounce_buf, 1, in tifm_sd_request()
698 sock->addr + SOCK_DMA_FIFO_INT_ENABLE_CLEAR); in tifm_sd_request()
700 sock->addr + SOCK_FIFO_PAGE_SIZE); in tifm_sd_request()
702 sock->addr + SOCK_FIFO_CONTROL); in tifm_sd_request()
704 sock->addr + SOCK_DMA_FIFO_INT_ENABLE_SET); in tifm_sd_request()
708 sock->addr + SOCK_MMCSD_BUFFER_CONFIG); in tifm_sd_request()
711 sock->addr + SOCK_MMCSD_BUFFER_CONFIG); in tifm_sd_request()
717 sock->addr + SOCK_MMCSD_NUM_BLOCKS); in tifm_sd_request()
719 sock->addr + SOCK_MMCSD_BLOCK_LEN); in tifm_sd_request()
724 writel(TIFM_CTRL_LED | readl(sock->addr + SOCK_CONTROL), in tifm_sd_request()
725 sock->addr + SOCK_CONTROL); in tifm_sd_request()
727 spin_unlock_irqrestore(&sock->lock, flags); in tifm_sd_request()
731 spin_unlock_irqrestore(&sock->lock, flags); in tifm_sd_request()
738 struct tifm_dev *sock = host->dev; in tifm_sd_end_cmd() local
739 struct mmc_host *mmc = tifm_get_drvdata(sock); in tifm_sd_end_cmd()
744 spin_lock_irqsave(&sock->lock, flags); in tifm_sd_end_cmd()
752 dev_name(&sock->dev)); in tifm_sd_end_cmd()
753 spin_unlock_irqrestore(&sock->lock, flags); in tifm_sd_end_cmd()
761 & readl(sock->addr + SOCK_MMCSD_INT_ENABLE), in tifm_sd_end_cmd()
762 sock->addr + SOCK_MMCSD_INT_ENABLE); in tifm_sd_end_cmd()
764 tifm_unmap_sg(sock, &host->bounce_buf, 1, in tifm_sd_end_cmd()
767 tifm_unmap_sg(sock, r_data->sg, r_data->sg_len, in tifm_sd_end_cmd()
773 - readl(sock->addr + SOCK_MMCSD_NUM_BLOCKS) - 1; in tifm_sd_end_cmd()
776 - readl(sock->addr + SOCK_MMCSD_BLOCK_LEN) + 1; in tifm_sd_end_cmd()
779 writel((~TIFM_CTRL_LED) & readl(sock->addr + SOCK_CONTROL), in tifm_sd_end_cmd()
780 sock->addr + SOCK_CONTROL); in tifm_sd_end_cmd()
782 spin_unlock_irqrestore(&sock->lock, flags); in tifm_sd_end_cmd()
800 struct tifm_dev *sock = host->dev; in tifm_sd_ios() local
804 spin_lock_irqsave(&sock->lock, flags); in tifm_sd_ios()
806 dev_dbg(&sock->dev, "ios: clock = %u, vdd = %x, bus_mode = %x, " in tifm_sd_ios()
812 writel(TIFM_MMCSD_4BBUS | readl(sock->addr + SOCK_MMCSD_CONFIG), in tifm_sd_ios()
813 sock->addr + SOCK_MMCSD_CONFIG); in tifm_sd_ios()
816 & readl(sock->addr + SOCK_MMCSD_CONFIG), in tifm_sd_ios()
817 sock->addr + SOCK_MMCSD_CONFIG); in tifm_sd_ios()
837 & readl(sock->addr + SOCK_CONTROL), in tifm_sd_ios()
838 sock->addr + SOCK_CONTROL); in tifm_sd_ios()
843 | readl(sock->addr + SOCK_CONTROL), in tifm_sd_ios()
844 sock->addr + SOCK_CONTROL); in tifm_sd_ios()
852 & readl(sock->addr + SOCK_MMCSD_CONFIG)), in tifm_sd_ios()
853 sock->addr + SOCK_MMCSD_CONFIG); in tifm_sd_ios()
861 spin_unlock_irqrestore(&sock->lock, flags); in tifm_sd_ios()
868 struct tifm_dev *sock = host->dev; in tifm_sd_ro() local
871 spin_lock_irqsave(&sock->lock, flags); in tifm_sd_ro()
872 if (TIFM_MMCSD_CARD_RO & readl(sock->addr + SOCK_PRESENT_STATE)) in tifm_sd_ro()
874 spin_unlock_irqrestore(&sock->lock, flags); in tifm_sd_ro()
888 struct tifm_dev *sock = host->dev; in tifm_sd_initialize_host() local
890 writel(0, sock->addr + SOCK_MMCSD_INT_ENABLE); in tifm_sd_initialize_host()
894 writel(TIFM_MMCSD_RESET, sock->addr + SOCK_MMCSD_SYSTEM_CONTROL); in tifm_sd_initialize_host()
896 sock->addr + SOCK_MMCSD_CONFIG); in tifm_sd_initialize_host()
900 if (1 & readl(sock->addr + SOCK_MMCSD_SYSTEM_STATUS)) { in tifm_sd_initialize_host()
909 dev_name(&sock->dev)); in tifm_sd_initialize_host()
913 writel(0, sock->addr + SOCK_MMCSD_NUM_BLOCKS); in tifm_sd_initialize_host()
915 sock->addr + SOCK_MMCSD_CONFIG); in tifm_sd_initialize_host()
916 writel(TIFM_MMCSD_RXDE, sock->addr + SOCK_MMCSD_BUFFER_CONFIG); in tifm_sd_initialize_host()
919 writel(64, sock->addr + SOCK_MMCSD_COMMAND_TO); in tifm_sd_initialize_host()
920 writel(TIFM_MMCSD_INAB, sock->addr + SOCK_MMCSD_COMMAND); in tifm_sd_initialize_host()
923 host_status = readl(sock->addr + SOCK_MMCSD_STATUS); in tifm_sd_initialize_host()
924 writel(host_status, sock->addr + SOCK_MMCSD_STATUS); in tifm_sd_initialize_host()
935 dev_name(&sock->dev)); in tifm_sd_initialize_host()
941 sock->addr + SOCK_MMCSD_INT_ENABLE); in tifm_sd_initialize_host()
947 static int tifm_sd_probe(struct tifm_dev *sock) in tifm_sd_probe() argument
954 & readl(sock->addr + SOCK_PRESENT_STATE))) { in tifm_sd_probe()
956 dev_name(&sock->dev)); in tifm_sd_probe()
960 mmc = mmc_alloc_host(sizeof(struct tifm_sd), &sock->dev); in tifm_sd_probe()
965 tifm_set_drvdata(sock, mmc); in tifm_sd_probe()
966 host->dev = sock; in tifm_sd_probe()
985 sock->card_event = tifm_sd_card_event; in tifm_sd_probe()
986 sock->data_event = tifm_sd_data_event; in tifm_sd_probe()
998 static void tifm_sd_remove(struct tifm_dev *sock) in tifm_sd_remove() argument
1000 struct mmc_host *mmc = tifm_get_drvdata(sock); in tifm_sd_remove()
1004 spin_lock_irqsave(&sock->lock, flags); in tifm_sd_remove()
1006 writel(0, sock->addr + SOCK_MMCSD_INT_ENABLE); in tifm_sd_remove()
1008 spin_unlock_irqrestore(&sock->lock, flags); in tifm_sd_remove()
1012 spin_lock_irqsave(&sock->lock, flags); in tifm_sd_remove()
1015 sock->addr + SOCK_DMA_FIFO_INT_ENABLE_CLEAR); in tifm_sd_remove()
1016 writel(0, sock->addr + SOCK_DMA_FIFO_INT_ENABLE_SET); in tifm_sd_remove()
1022 spin_unlock_irqrestore(&sock->lock, flags); in tifm_sd_remove()
1024 dev_dbg(&sock->dev, "after remove\n"); in tifm_sd_remove()
1031 static int tifm_sd_suspend(struct tifm_dev *sock, pm_message_t state) in tifm_sd_suspend() argument
1036 static int tifm_sd_resume(struct tifm_dev *sock) in tifm_sd_resume() argument
1038 struct mmc_host *mmc = tifm_get_drvdata(sock); in tifm_sd_resume()
1043 dev_dbg(&sock->dev, "resume initialize %d\n", rc); in tifm_sd_resume()