11dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong/* Driver for Realtek RTS51xx USB card reader
21dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong * Header file
31dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong *
41dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved.
51dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong *
61dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong * This program is free software; you can redistribute it and/or modify it
71dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong * under the terms of the GNU General Public License as published by the
81dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong * Free Software Foundation; either version 2, or (at your option) any
91dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong * later version.
101dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong *
111dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong * This program is distributed in the hope that it will be useful, but
121dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong * WITHOUT ANY WARRANTY; without even the implied warranty of
131dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
141dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong * General Public License for more details.
151dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong *
161dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong * You should have received a copy of the GNU General Public License along
171dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong * with this program; if not, see <http://www.gnu.org/licenses/>.
181dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong *
191dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong * Author:
201dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong *   wwang (wei_wang@realsil.com.cn)
211dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong *   No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China
221dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong * Maintainer:
231dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong *   Edwin Rong (edwin_rong@realsil.com.cn)
241dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong *   No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China
251dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong */
261dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong
271dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong#ifndef __RTS51X_SD_CPRM_H
281dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong#define __RTS51X_SD_CPRM_H
291dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong
301dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong#include "rts51x_chip.h"
311dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong#include "sd.h"
321dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong
331dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong#ifdef SUPPORT_CPRM
341dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rongint ext_sd_execute_no_data(struct rts51x_chip *chip, unsigned int lun,
351dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong			   u8 cmd_idx, u8 standby, u8 acmd, u8 rsp_code,
361dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong			   u32 arg);
371dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rongint ext_sd_execute_read_data(struct rts51x_chip *chip, unsigned int lun,
381dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong			     u8 cmd_idx, u8 cmd12, u8 standby, u8 acmd,
391dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong			     u8 rsp_code, u32 arg, u32 data_len, void *data_buf,
401dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong			     unsigned int buf_len, int use_sg);
411dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rongint ext_sd_execute_write_data(struct rts51x_chip *chip, unsigned int lun,
421dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong			      u8 cmd_idx, u8 cmd12, u8 standby, u8 acmd,
431dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong			      u8 rsp_code, u32 arg, u32 data_len,
441dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong			      void *data_buf, unsigned int buf_len, int use_sg);
451dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong
461dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rongint sd_pass_thru_mode(struct scsi_cmnd *srb, struct rts51x_chip *chip);
471dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rongint sd_execute_no_data(struct scsi_cmnd *srb, struct rts51x_chip *chip);
481dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rongint sd_execute_read_data(struct scsi_cmnd *srb, struct rts51x_chip *chip);
491dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rongint sd_execute_write_data(struct scsi_cmnd *srb, struct rts51x_chip *chip);
501dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rongint sd_get_cmd_rsp(struct scsi_cmnd *srb, struct rts51x_chip *chip);
511dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rongint sd_hw_rst(struct scsi_cmnd *srb, struct rts51x_chip *chip);
521dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong#endif
531dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong
541dac4186bcc663cb8c2bcc59481aea8fe9124a6cedwin_rong#endif /* __RTS51X_SD_CPRM_H */
55