dslinux/linux-2.6.x/drivers/mmc scsd_c.c scsd_s.S

amadeus dslinux_amadeus at user.in-berlin.de
Tue Aug 15 10:27:17 CEST 2006


Update of /cvsroot/dslinux/dslinux/linux-2.6.x/drivers/mmc
In directory antilope:/tmp/cvs-serv18275/linux-2.6.x/drivers/mmc

Modified Files:
	scsd_c.c scsd_s.S 
Log Message:
Untested support for supercard lite

Index: scsd_c.c
===================================================================
RCS file: /cvsroot/dslinux/dslinux/linux-2.6.x/drivers/mmc/scsd_c.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- scsd_c.c	15 Jul 2006 10:10:52 -0000	1.3
+++ scsd_c.c	15 Aug 2006 08:27:14 -0000	1.4
@@ -58,6 +58,9 @@
 
 #define SC_SD_DATAWRITE 0x09000000
 #define SC_SD_DATAREAD  0x09100000
+#define SC_SDL_DOWRITE	0x09440000
+	/* SC lite: write 0 before write command */
+
 #define SC_SD_LOCK      0x09FFFFFE
 	/* bit 0: 1				*/
 	/* bit 1: enable IO interface (SD,CF)	*/
@@ -495,8 +498,12 @@
 	/* do a retry for data I/O */
 	case MMC_READ_SINGLE_BLOCK:
 	case MMC_READ_MULTIPLE_BLOCK:
+		retry = 3;
+		break;
 	case MMC_WRITE_BLOCK:
 	case MMC_WRITE_MULTIPLE_BLOCK:
+		/* for SClite, switch to write mode */
+		writew(0, SC_SDL_DOWRITE); 
 		retry = 3;
 		break;
 	/* check if we have an inactivation command */

Index: scsd_s.S
===================================================================
RCS file: /cvsroot/dslinux/dslinux/linux-2.6.x/drivers/mmc/scsd_s.S,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- scsd_s.S	27 Jun 2006 16:00:34 -0000	1.1
+++ scsd_s.S	15 Aug 2006 08:27:14 -0000	1.2
@@ -93,7 +93,8 @@
 sd_data_write_loop:
 	ldrh	r3,[r0],#2
 	add	r3,r3,r3,lsl #20
-	mov	r4,r3,lsl #8
+	mov	r4,r3,lsr #8		@ sclite
+@	mov	r4,r3,lsl #8		@ sc, minisc
 	stmia   r2,{r3-r4}
 	subs    r1,r1,#2
 	bne     sd_data_write_loop




More information about the dslinux-commit mailing list