Lines Matching refs:ucr

26 	struct rtsx_ucr	*ucr;
49 struct rtsx_ucr *ucr = host->ucr;
50 rtsx_usb_ep0_write_register(ucr, CARD_STOP,
54 rtsx_usb_clear_dma_err(ucr);
55 rtsx_usb_clear_fsm_err(ucr);
62 struct rtsx_ucr *ucr = host->ucr;
67 rtsx_usb_init_cmd(ucr);
71 rtsx_usb_add_cmd(ucr, READ_REG_CMD, i, 0, 0);
75 rtsx_usb_add_cmd(ucr, READ_REG_CMD, i, 0, 0);
79 rtsx_usb_add_cmd(ucr, READ_REG_CMD, i, 0, 0);
82 rtsx_usb_add_cmd(ucr, READ_REG_CMD, CARD_DATA_SOURCE, 0, 0);
83 rtsx_usb_add_cmd(ucr, READ_REG_CMD, CARD_SELECT, 0, 0);
84 rtsx_usb_add_cmd(ucr, READ_REG_CMD, CARD_CLK_EN, 0, 0);
85 rtsx_usb_add_cmd(ucr, READ_REG_CMD, CARD_PWR_CTL, 0, 0);
87 rtsx_usb_send_cmd(ucr, MODE_CR, 100);
88 rtsx_usb_get_rsp(ucr, 21, 100);
90 ptr = ucr->rsp_buf;
112 static int ms_pull_ctl_disable_lqfp48(struct rtsx_ucr *ucr)
114 rtsx_usb_init_cmd(ucr);
116 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, 0x55);
117 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, 0x55);
118 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, 0x95);
119 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, 0x55);
120 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL5, 0xFF, 0x55);
121 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL6, 0xFF, 0xA5);
123 return rtsx_usb_send_cmd(ucr, MODE_C, 100);
126 static int ms_pull_ctl_disable_qfn24(struct rtsx_ucr *ucr)
128 rtsx_usb_init_cmd(ucr);
130 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, 0x65);
131 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, 0x55);
132 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, 0x95);
133 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, 0x55);
134 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL5, 0xFF, 0x56);
135 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL6, 0xFF, 0x59);
137 return rtsx_usb_send_cmd(ucr, MODE_C, 100);
140 static int ms_pull_ctl_enable_lqfp48(struct rtsx_ucr *ucr)
142 rtsx_usb_init_cmd(ucr);
144 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, 0x55);
145 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, 0x55);
146 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, 0x95);
147 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, 0x55);
148 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL5, 0xFF, 0x55);
149 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL6, 0xFF, 0xA5);
151 return rtsx_usb_send_cmd(ucr, MODE_C, 100);
154 static int ms_pull_ctl_enable_qfn24(struct rtsx_ucr *ucr)
156 rtsx_usb_init_cmd(ucr);
158 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, 0x65);
159 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, 0x55);
160 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, 0x95);
161 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, 0x55);
162 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL5, 0xFF, 0x55);
163 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL6, 0xFF, 0x59);
165 return rtsx_usb_send_cmd(ucr, MODE_C, 100);
170 struct rtsx_ucr *ucr = host->ucr;
175 rtsx_usb_init_cmd(ucr);
176 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_SELECT, 0x07, MS_MOD_SEL);
177 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_SHARE_MODE,
179 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_CLK_EN,
181 err = rtsx_usb_send_cmd(ucr, MODE_C, 100);
185 if (CHECK_PKG(ucr, LQFP48))
186 err = ms_pull_ctl_enable_lqfp48(ucr);
188 err = ms_pull_ctl_enable_qfn24(ucr);
192 err = rtsx_usb_write_register(ucr, CARD_PWR_CTL,
199 rtsx_usb_init_cmd(ucr);
200 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PWR_CTL,
202 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_OE,
205 return rtsx_usb_send_cmd(ucr, MODE_C, 100);
210 struct rtsx_ucr *ucr = host->ucr;
215 rtsx_usb_init_cmd(ucr);
217 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_CLK_EN, MS_CLK_EN, 0);
218 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_OE, MS_OUTPUT_EN, 0);
220 err = rtsx_usb_send_cmd(ucr, MODE_C, 100);
224 if (CHECK_PKG(ucr, LQFP48))
225 return ms_pull_ctl_disable_lqfp48(ucr);
227 return ms_pull_ctl_disable_qfn24(ucr);
233 struct rtsx_ucr *ucr = host->ucr;
252 pipe = usb_rcvbulkpipe(ucr->pusb_dev, EP_BULK_IN);
260 pipe = usb_sndbulkpipe(ucr->pusb_dev, EP_BULK_OUT);
263 rtsx_usb_init_cmd(ucr);
265 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TPC, 0xFF, tpc);
267 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_SECTOR_CNT_H,
269 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_SECTOR_CNT_L,
272 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TRANS_CFG, 0xFF, cfg);
274 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MC_DMA_TC3,
276 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MC_DMA_TC2,
278 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MC_DMA_TC1,
280 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MC_DMA_TC0, 0xFF,
282 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MC_DMA_CTL,
284 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_DATA_SOURCE,
287 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TRANSFER,
289 rtsx_usb_add_cmd(ucr, CHECK_REG_CMD, MS_TRANSFER,
292 err = rtsx_usb_send_cmd(ucr, flag | STAGE_MS_STATUS, 100);
296 err = rtsx_usb_transfer_data(ucr, pipe, sg, length,
301 err = rtsx_usb_get_rsp(ucr, 3, 15000);
305 if (ucr->rsp_buf[0] & MS_TRANSFER_ERR ||
306 ucr->rsp_buf[1] & (MS_CRC16_ERR | MS_RDY_TIMEOUT)) {
319 struct rtsx_ucr *ucr = host->ucr;
324 rtsx_usb_init_cmd(ucr);
327 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD,
331 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD,
334 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TPC, 0xFF, tpc);
335 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_BYTE_CNT, 0xFF, cnt);
336 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TRANS_CFG, 0xFF, cfg);
337 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_DATA_SOURCE,
340 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TRANSFER,
342 rtsx_usb_add_cmd(ucr, CHECK_REG_CMD, MS_TRANSFER,
344 rtsx_usb_add_cmd(ucr, READ_REG_CMD, MS_TRANS_CFG, 0, 0);
346 err = rtsx_usb_send_cmd(ucr, MODE_CR, 100);
350 err = rtsx_usb_get_rsp(ucr, 2, 5000);
351 if (err || (ucr->rsp_buf[0] & MS_TRANSFER_ERR)) {
354 rtsx_usb_ep0_read_register(ucr, MS_TRANS_CFG, &val);
378 *int_reg = ucr->rsp_buf[1] & 0x0F;
386 struct rtsx_ucr *ucr = host->ucr;
392 rtsx_usb_init_cmd(ucr);
394 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TPC, 0xFF, tpc);
395 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_BYTE_CNT, 0xFF, cnt);
396 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TRANS_CFG, 0xFF, cfg);
397 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_DATA_SOURCE,
400 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TRANSFER,
402 rtsx_usb_add_cmd(ucr, CHECK_REG_CMD, MS_TRANSFER,
405 rtsx_usb_add_cmd(ucr, READ_REG_CMD, PPBUF_BASE2 + i, 0, 0);
407 rtsx_usb_add_cmd(ucr, READ_REG_CMD, PPBUF_BASE2 + cnt, 0, 0);
409 rtsx_usb_add_cmd(ucr, READ_REG_CMD,
412 rtsx_usb_add_cmd(ucr, READ_REG_CMD, MS_TRANS_CFG, 0, 0);
414 err = rtsx_usb_send_cmd(ucr, MODE_CR, 100);
418 err = rtsx_usb_get_rsp(ucr, cnt + 2, 5000);
419 if (err || (ucr->rsp_buf[0] & MS_TRANSFER_ERR)) {
422 rtsx_usb_ep0_read_register(ucr, MS_TRANS_CFG, &val);
445 ptr = ucr->rsp_buf + 1;
510 struct rtsx_ucr *ucr = host->ucr;
521 mutex_lock(&ucr->dev_mutex);
523 if (rtsx_usb_card_exclusive_check(ucr,
530 mutex_unlock(&ucr->dev_mutex);
555 struct rtsx_ucr *ucr = host->ucr;
564 mutex_lock(&ucr->dev_mutex);
566 err = rtsx_usb_card_exclusive_check(ucr, RTSX_USB_MS_CARD);
594 err = rtsx_usb_write_register(ucr, MS_CFG, 0x5A,
602 err = rtsx_usb_write_register(ucr, MS_CFG, 0x5A,
612 err = rtsx_usb_switch_clock(ucr, clock,
628 mutex_unlock(&ucr->dev_mutex);
720 struct rtsx_ucr *ucr = host->ucr;
728 mutex_lock(&ucr->dev_mutex);
731 err = rtsx_usb_read_register(ucr, CARD_INT_PEND, &val);
733 mutex_unlock(&ucr->dev_mutex);
738 rtsx_usb_write_register(ucr, CARD_INT_PEND,
742 mutex_unlock(&ucr->dev_mutex);
760 struct rtsx_ucr *ucr;
763 ucr = usb_get_intfdata(to_usb_interface(pdev->dev.parent));
764 if (!ucr)
775 host->ucr = ucr;