Lines Matching refs:ucr

37 	struct rtsx_ucr	*ucr;  member
61 struct rtsx_ucr *ucr = host->ucr; in ms_clear_error() local
62 rtsx_usb_ep0_write_register(ucr, CARD_STOP, in ms_clear_error()
66 rtsx_usb_clear_dma_err(ucr); in ms_clear_error()
67 rtsx_usb_clear_fsm_err(ucr); in ms_clear_error()
74 struct rtsx_ucr *ucr = host->ucr; in ms_print_debug_regs() local
79 rtsx_usb_init_cmd(ucr); in ms_print_debug_regs()
83 rtsx_usb_add_cmd(ucr, READ_REG_CMD, i, 0, 0); in ms_print_debug_regs()
87 rtsx_usb_add_cmd(ucr, READ_REG_CMD, i, 0, 0); in ms_print_debug_regs()
91 rtsx_usb_add_cmd(ucr, READ_REG_CMD, i, 0, 0); in ms_print_debug_regs()
94 rtsx_usb_add_cmd(ucr, READ_REG_CMD, CARD_DATA_SOURCE, 0, 0); in ms_print_debug_regs()
95 rtsx_usb_add_cmd(ucr, READ_REG_CMD, CARD_SELECT, 0, 0); in ms_print_debug_regs()
96 rtsx_usb_add_cmd(ucr, READ_REG_CMD, CARD_CLK_EN, 0, 0); in ms_print_debug_regs()
97 rtsx_usb_add_cmd(ucr, READ_REG_CMD, CARD_PWR_CTL, 0, 0); in ms_print_debug_regs()
99 rtsx_usb_send_cmd(ucr, MODE_CR, 100); in ms_print_debug_regs()
100 rtsx_usb_get_rsp(ucr, 21, 100); in ms_print_debug_regs()
102 ptr = ucr->rsp_buf; in ms_print_debug_regs()
124 static int ms_pull_ctl_disable_lqfp48(struct rtsx_ucr *ucr) in ms_pull_ctl_disable_lqfp48() argument
126 rtsx_usb_init_cmd(ucr); in ms_pull_ctl_disable_lqfp48()
128 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, 0x55); in ms_pull_ctl_disable_lqfp48()
129 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, 0x55); in ms_pull_ctl_disable_lqfp48()
130 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, 0x95); in ms_pull_ctl_disable_lqfp48()
131 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, 0x55); in ms_pull_ctl_disable_lqfp48()
132 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL5, 0xFF, 0x55); in ms_pull_ctl_disable_lqfp48()
133 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL6, 0xFF, 0xA5); in ms_pull_ctl_disable_lqfp48()
135 return rtsx_usb_send_cmd(ucr, MODE_C, 100); in ms_pull_ctl_disable_lqfp48()
138 static int ms_pull_ctl_disable_qfn24(struct rtsx_ucr *ucr) in ms_pull_ctl_disable_qfn24() argument
140 rtsx_usb_init_cmd(ucr); in ms_pull_ctl_disable_qfn24()
142 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, 0x65); in ms_pull_ctl_disable_qfn24()
143 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, 0x55); in ms_pull_ctl_disable_qfn24()
144 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, 0x95); in ms_pull_ctl_disable_qfn24()
145 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, 0x55); in ms_pull_ctl_disable_qfn24()
146 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL5, 0xFF, 0x56); in ms_pull_ctl_disable_qfn24()
147 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL6, 0xFF, 0x59); in ms_pull_ctl_disable_qfn24()
149 return rtsx_usb_send_cmd(ucr, MODE_C, 100); in ms_pull_ctl_disable_qfn24()
152 static int ms_pull_ctl_enable_lqfp48(struct rtsx_ucr *ucr) in ms_pull_ctl_enable_lqfp48() argument
154 rtsx_usb_init_cmd(ucr); in ms_pull_ctl_enable_lqfp48()
156 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, 0x55); in ms_pull_ctl_enable_lqfp48()
157 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, 0x55); in ms_pull_ctl_enable_lqfp48()
158 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, 0x95); in ms_pull_ctl_enable_lqfp48()
159 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, 0x55); in ms_pull_ctl_enable_lqfp48()
160 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL5, 0xFF, 0x55); in ms_pull_ctl_enable_lqfp48()
161 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL6, 0xFF, 0xA5); in ms_pull_ctl_enable_lqfp48()
163 return rtsx_usb_send_cmd(ucr, MODE_C, 100); in ms_pull_ctl_enable_lqfp48()
166 static int ms_pull_ctl_enable_qfn24(struct rtsx_ucr *ucr) in ms_pull_ctl_enable_qfn24() argument
168 rtsx_usb_init_cmd(ucr); in ms_pull_ctl_enable_qfn24()
170 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, 0x65); in ms_pull_ctl_enable_qfn24()
171 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, 0x55); in ms_pull_ctl_enable_qfn24()
172 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, 0x95); in ms_pull_ctl_enable_qfn24()
173 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, 0x55); in ms_pull_ctl_enable_qfn24()
174 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL5, 0xFF, 0x55); in ms_pull_ctl_enable_qfn24()
175 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PULL_CTL6, 0xFF, 0x59); in ms_pull_ctl_enable_qfn24()
177 return rtsx_usb_send_cmd(ucr, MODE_C, 100); in ms_pull_ctl_enable_qfn24()
182 struct rtsx_ucr *ucr = host->ucr; in ms_power_on() local
187 rtsx_usb_init_cmd(ucr); in ms_power_on()
188 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_SELECT, 0x07, MS_MOD_SEL); in ms_power_on()
189 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_SHARE_MODE, in ms_power_on()
191 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_CLK_EN, in ms_power_on()
193 err = rtsx_usb_send_cmd(ucr, MODE_C, 100); in ms_power_on()
197 if (CHECK_PKG(ucr, LQFP48)) in ms_power_on()
198 err = ms_pull_ctl_enable_lqfp48(ucr); in ms_power_on()
200 err = ms_pull_ctl_enable_qfn24(ucr); in ms_power_on()
204 err = rtsx_usb_write_register(ucr, CARD_PWR_CTL, in ms_power_on()
211 rtsx_usb_init_cmd(ucr); in ms_power_on()
212 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_PWR_CTL, in ms_power_on()
214 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_OE, in ms_power_on()
217 return rtsx_usb_send_cmd(ucr, MODE_C, 100); in ms_power_on()
222 struct rtsx_ucr *ucr = host->ucr; in ms_power_off() local
227 rtsx_usb_init_cmd(ucr); in ms_power_off()
229 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_CLK_EN, MS_CLK_EN, 0); in ms_power_off()
230 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_OE, MS_OUTPUT_EN, 0); in ms_power_off()
232 err = rtsx_usb_send_cmd(ucr, MODE_C, 100); in ms_power_off()
236 if (CHECK_PKG(ucr, LQFP48)) in ms_power_off()
237 return ms_pull_ctl_disable_lqfp48(ucr); in ms_power_off()
239 return ms_pull_ctl_disable_qfn24(ucr); in ms_power_off()
245 struct rtsx_ucr *ucr = host->ucr; in ms_transfer_data() local
264 pipe = usb_rcvbulkpipe(ucr->pusb_dev, EP_BULK_IN); in ms_transfer_data()
272 pipe = usb_sndbulkpipe(ucr->pusb_dev, EP_BULK_OUT); in ms_transfer_data()
275 rtsx_usb_init_cmd(ucr); in ms_transfer_data()
277 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TPC, 0xFF, tpc); in ms_transfer_data()
279 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_SECTOR_CNT_H, in ms_transfer_data()
281 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_SECTOR_CNT_L, in ms_transfer_data()
284 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TRANS_CFG, 0xFF, cfg); in ms_transfer_data()
286 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MC_DMA_TC3, in ms_transfer_data()
288 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MC_DMA_TC2, in ms_transfer_data()
290 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MC_DMA_TC1, in ms_transfer_data()
292 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MC_DMA_TC0, 0xFF, in ms_transfer_data()
294 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MC_DMA_CTL, in ms_transfer_data()
296 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_DATA_SOURCE, in ms_transfer_data()
299 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TRANSFER, in ms_transfer_data()
301 rtsx_usb_add_cmd(ucr, CHECK_REG_CMD, MS_TRANSFER, in ms_transfer_data()
304 err = rtsx_usb_send_cmd(ucr, flag | STAGE_MS_STATUS, 100); in ms_transfer_data()
308 err = rtsx_usb_transfer_data(ucr, pipe, sg, length, in ms_transfer_data()
313 err = rtsx_usb_get_rsp(ucr, 3, 15000); in ms_transfer_data()
317 if (ucr->rsp_buf[0] & MS_TRANSFER_ERR || in ms_transfer_data()
318 ucr->rsp_buf[1] & (MS_CRC16_ERR | MS_RDY_TIMEOUT)) { in ms_transfer_data()
331 struct rtsx_ucr *ucr = host->ucr; in ms_write_bytes() local
336 rtsx_usb_init_cmd(ucr); in ms_write_bytes()
339 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, in ms_write_bytes()
343 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, in ms_write_bytes()
346 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TPC, 0xFF, tpc); in ms_write_bytes()
347 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_BYTE_CNT, 0xFF, cnt); in ms_write_bytes()
348 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TRANS_CFG, 0xFF, cfg); in ms_write_bytes()
349 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_DATA_SOURCE, in ms_write_bytes()
352 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TRANSFER, in ms_write_bytes()
354 rtsx_usb_add_cmd(ucr, CHECK_REG_CMD, MS_TRANSFER, in ms_write_bytes()
356 rtsx_usb_add_cmd(ucr, READ_REG_CMD, MS_TRANS_CFG, 0, 0); in ms_write_bytes()
358 err = rtsx_usb_send_cmd(ucr, MODE_CR, 100); in ms_write_bytes()
362 err = rtsx_usb_get_rsp(ucr, 2, 5000); in ms_write_bytes()
363 if (err || (ucr->rsp_buf[0] & MS_TRANSFER_ERR)) { in ms_write_bytes()
366 rtsx_usb_ep0_read_register(ucr, MS_TRANS_CFG, &val); in ms_write_bytes()
390 *int_reg = ucr->rsp_buf[1] & 0x0F; in ms_write_bytes()
398 struct rtsx_ucr *ucr = host->ucr; in ms_read_bytes() local
404 rtsx_usb_init_cmd(ucr); in ms_read_bytes()
406 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TPC, 0xFF, tpc); in ms_read_bytes()
407 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_BYTE_CNT, 0xFF, cnt); in ms_read_bytes()
408 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TRANS_CFG, 0xFF, cfg); in ms_read_bytes()
409 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, CARD_DATA_SOURCE, in ms_read_bytes()
412 rtsx_usb_add_cmd(ucr, WRITE_REG_CMD, MS_TRANSFER, in ms_read_bytes()
414 rtsx_usb_add_cmd(ucr, CHECK_REG_CMD, MS_TRANSFER, in ms_read_bytes()
417 rtsx_usb_add_cmd(ucr, READ_REG_CMD, PPBUF_BASE2 + i, 0, 0); in ms_read_bytes()
419 rtsx_usb_add_cmd(ucr, READ_REG_CMD, PPBUF_BASE2 + cnt, 0, 0); in ms_read_bytes()
421 rtsx_usb_add_cmd(ucr, READ_REG_CMD, in ms_read_bytes()
424 rtsx_usb_add_cmd(ucr, READ_REG_CMD, MS_TRANS_CFG, 0, 0); in ms_read_bytes()
426 err = rtsx_usb_send_cmd(ucr, MODE_CR, 100); in ms_read_bytes()
430 err = rtsx_usb_get_rsp(ucr, cnt + 2, 5000); in ms_read_bytes()
431 if (err || (ucr->rsp_buf[0] & MS_TRANSFER_ERR)) { in ms_read_bytes()
434 rtsx_usb_ep0_read_register(ucr, MS_TRANS_CFG, &val); in ms_read_bytes()
457 ptr = ucr->rsp_buf + 1; in ms_read_bytes()
522 struct rtsx_ucr *ucr = host->ucr; in rtsx_usb_ms_handle_req() local
532 mutex_lock(&ucr->dev_mutex); in rtsx_usb_ms_handle_req()
534 if (rtsx_usb_card_exclusive_check(ucr, in rtsx_usb_ms_handle_req()
541 mutex_unlock(&ucr->dev_mutex); in rtsx_usb_ms_handle_req()
565 struct rtsx_ucr *ucr = host->ucr; in rtsx_usb_ms_set_param() local
573 mutex_lock(&ucr->dev_mutex); in rtsx_usb_ms_set_param()
575 err = rtsx_usb_card_exclusive_check(ucr, RTSX_USB_MS_CARD); in rtsx_usb_ms_set_param()
603 err = rtsx_usb_write_register(ucr, MS_CFG, 0x5A, in rtsx_usb_ms_set_param()
611 err = rtsx_usb_write_register(ucr, MS_CFG, 0x5A, in rtsx_usb_ms_set_param()
621 err = rtsx_usb_switch_clock(ucr, clock, in rtsx_usb_ms_set_param()
637 mutex_unlock(&ucr->dev_mutex); in rtsx_usb_ms_set_param()
679 struct rtsx_ucr *ucr = host->ucr; in rtsx_usb_detect_ms_card() local
684 mutex_lock(&ucr->dev_mutex); in rtsx_usb_detect_ms_card()
687 err = rtsx_usb_read_register(ucr, CARD_INT_PEND, &val); in rtsx_usb_detect_ms_card()
689 mutex_unlock(&ucr->dev_mutex); in rtsx_usb_detect_ms_card()
694 rtsx_usb_write_register(ucr, CARD_INT_PEND, in rtsx_usb_detect_ms_card()
698 mutex_unlock(&ucr->dev_mutex); in rtsx_usb_detect_ms_card()
720 struct rtsx_ucr *ucr; in rtsx_usb_ms_drv_probe() local
723 ucr = usb_get_intfdata(to_usb_interface(pdev->dev.parent)); in rtsx_usb_ms_drv_probe()
724 if (!ucr) in rtsx_usb_ms_drv_probe()
735 host->ucr = ucr; in rtsx_usb_ms_drv_probe()