All of lore.kernel.org
 help / color / mirror / Atom feed
* SD/MMC with db1100
@ 2003-08-23 23:23 Yasushi SHOJI
  2003-08-25  1:01 ` Dan Malek
  0 siblings, 1 reply; 4+ messages in thread
From: Yasushi SHOJI @ 2003-08-23 23:23 UTC (permalink / raw)
  To: linux-mips

Hello all,

I'm now tring SD subsystem on Au1100 with Syrah Rev 1.

Before porting handhelds.org's mmc driver, I just tried the attached
code, but it doesn't seems to work.

SD controler seems to emit right command to sd card, but there is no
response from sd card and timeouts.

Could someone enlighten me what's wrong with my code? or does anyone
successfully used sd/mmc on au1?

tia,
--
         yashi (leaving to Canada in a few hours...)



#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/delay.h>

#include <asm/au1000.h>

MODULE_LICENSE("GPL");

int sd_init(void)
{
        u32 cpupll, sd;

        au_writel(0xffffffff, 0xb0600018); /* clear all status */

        /* just checking */
        cpupll = au_readl(0xb1900060) & 0x3f;
        sd = (au_readl(0xb190003c) & 0x3) + 2;
        printk("CPU PLL %d => CPU freq %dMHz\n", cpupll, 12 * cpupll);
        printk("System Bus clock Div %d => System Bus %dMHz\n",
               sd, 12 * cpupll / sd);
        printk("Peripheral clock is %dkHz\n",
               (12 * 1000) * cpupll / sd / 2);

        /* SD Enable Register */
        au_writel(0x1, 0xb060000c);      /* periperal rest: R */
        au_writel(0x3, 0xb060000c);      /* periperal reset and clock enable: R | CE */

        mdelay(1);

        /* SD Config Register */
        au_writel(0x3ff, 0xb0600008);    /* set slowest clock */

        printk("SD Clock is %dHz\n", (12 * 1000 * 1000) * cpupll / sd / 2 / (2*((0x1ff)+1)));

        /* SD Config Register 2*/
        au_writel(0x2, 0xb0600010);      /* FF(Force FIFO flush and reset) */
        au_writel(0x0, 0xb0600010);      /* clear FF */
        au_writel(0x1, 0xb0600010);      /* Enable serial interface state machine */

        /* SD Timeout Register */
        au_writel(0x1fffff, 0xb0600038); /* max timeout */

        /* CMD0 */
        au_writel(0x0, 0xb0600024);
        au_writel(0x1, 0xb0600020);

        while (!(au_readl(0xb0600018) & 0x10000))
                ;

        printk("Status Register %#x\n", au_readl(0xb0600018));
        au_writel(0x10000, 0xb0600018);
        printk("Status Register %#x\n", au_readl(0xb0600018));

        /* CMD1 */
        au_writel(0x0, 0xb0600024);
        au_writel(0x30101, 0xb0600020);  /* R3 | CMD1 | CT 0 | GO */
//        au_writel(0x0, 0xb0600024); /* ocr */
//        au_writel(0x32901, 0xb0600020);  /* R3 | CMD1 | CT 0 | GO */

        while (!(au_readl(0xb0600018) & 0x10000) &&
               !(au_readl(0xb0600018) & 0x20000))
                ;

        printk("Status Register %#x\n", au_readl(0xb0600018));

        printk("Response Register 0 %#x\n", au_readl(0xb0600034));
        printk("Response Register 1 %#x\n", au_readl(0xb0600030));
        printk("Response Register 2 %#x\n", au_readl(0xb060002c));
        printk("Response Register 3 %#x\n", au_readl(0xb0600028));

        mdelay(100);
        printk("Status Register %#x\n", au_readl(0xb0600018));

        return -1; /* too lazy to rmmod */
}

void sd_cleanup(void)
{
}

module_init(sd_init);
module_exit(sd_cleanup);

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: SD/MMC with db1100
  2003-08-23 23:23 SD/MMC with db1100 Yasushi SHOJI
@ 2003-08-25  1:01 ` Dan Malek
  2003-08-25 16:16   ` Pete Popov
  0 siblings, 1 reply; 4+ messages in thread
From: Dan Malek @ 2003-08-25  1:01 UTC (permalink / raw)
  To: Yasushi SHOJI; +Cc: linux-mips

Yasushi SHOJI wrote:

> Could someone enlighten me what's wrong with my code? or does anyone
> successfully used sd/mmc on au1?

There is a patch in Ralf's hands for the sd/mmc on this board.  If
it doesn't show up soon, we'll find a way to get it to you.


	-- Dan

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: SD/MMC with db1100
  2003-08-25  1:01 ` Dan Malek
@ 2003-08-25 16:16   ` Pete Popov
  2003-09-14 14:36     ` Yasushi SHOJI
  0 siblings, 1 reply; 4+ messages in thread
From: Pete Popov @ 2003-08-25 16:16 UTC (permalink / raw)
  To: Dan Malek; +Cc: Yasushi SHOJI, Linux MIPS mailing list

On Sun, 2003-08-24 at 18:01, Dan Malek wrote:
> Yasushi SHOJI wrote:
> 
> > Could someone enlighten me what's wrong with my code? or does anyone
> > successfully used sd/mmc on au1?
> 
> There is a patch in Ralf's hands for the sd/mmc on this board.  If
> it doesn't show up soon, we'll find a way to get it to you.

It's been there for a little while now -- a couple of weeks or so I
think.

ftp.linux-mips.org:/pub/linux/mips/people/ppopov/au1x_mmc.patch


Pete

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: SD/MMC with db1100
  2003-08-25 16:16   ` Pete Popov
@ 2003-09-14 14:36     ` Yasushi SHOJI
  0 siblings, 0 replies; 4+ messages in thread
From: Yasushi SHOJI @ 2003-09-14 14:36 UTC (permalink / raw)
  To: Pete Popov; +Cc: Dan Malek, Linux MIPS mailing list

At 25 Aug 2003 09:16:15 -0700,
Pete Popov wrote:
> 
> On Sun, 2003-08-24 at 18:01, Dan Malek wrote:
> > Yasushi SHOJI wrote:
> > 
> > > Could someone enlighten me what's wrong with my code? or does anyone
> > > successfully used sd/mmc on au1?
> > 
> > There is a patch in Ralf's hands for the sd/mmc on this board.  If
> > it doesn't show up soon, we'll find a way to get it to you.
> 
> It's been there for a little while now -- a couple of weeks or so I
> think.
> 
> ftp.linux-mips.org:/pub/linux/mips/people/ppopov/au1x_mmc.patch

Thanks for the patch, Dan and Pete.

I just got back from vacation and tried the patch. The result was same
as what I tested with my code. My card doesn't respond to Command 1,
MMC_SEND_OP_COND.

The controller _seems_ sending the command on the data line; I checked
with logic analyzer.

I've been using Panasonic's SD card, RP-SD064B; and Hagiwara syscom's
MMC card, HB28D032MM2.

is there anything that I need to do use SD other than the patch?

thanks in advance,
--
       yashi

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2003-09-14 14:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-08-23 23:23 SD/MMC with db1100 Yasushi SHOJI
2003-08-25  1:01 ` Dan Malek
2003-08-25 16:16   ` Pete Popov
2003-09-14 14:36     ` Yasushi SHOJI

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.