Dear Joshua

OK, I give you a simple program segment.

You need to see the document about SPI of DM644x.
==========================================
    // --------------------------------
    // Reset SPI
    // --------------------------------
    control=0x00000000;
    SPI_REG(SPIGCR0)=control;
    mdelay(1);
    control=0x00000001;
    SPI_REG(SPIGCR0)=control;

    // --------------------------------
    // Enable SPI CLK & Master
    // --------------------------------
    control=0x00000003;
    SPI_REG(SPIGCR1)=control;

    // --------------------------------
    // Enable pins : DI、DO、CLK、EN0
    // --------------------------------
    control=0x00000FFF;
    SPI_REG(SPIPC0)=control;

    /* --------------------------------
    // Set data format in SPIFMT0
        // SHIFTDIR in bit 20 set to 1 : LSB
        // POLARITY and PHASE in bit 17, 16 set to 0, 1
        // PRESCALE in bit 15-8 set to 0, SPI_CLK = SYSCLK5 / (Prescale + 1)
        // CHARLEN in bit 4-0 set to 08 : 8 bit
     -------------------------------- */
    control=0x0012FF08;
    SPI_REG(SPIFMT0)=control;

    // --------------------------------
    // Set data format for used -> SPIFMT0
    // --------------------------------
    control=0x00000000 | 0x00 << 24;
    SPI_REG(SPIDAT1)=control;

    // --------------------------------
    // Set hold time and setup time
    // --------------------------------
    control=0x0000 | 0x03 << 16 | 0x02 << 24;
    SPI_REG(SPIDELAY)=control;

    // --------------------------------
    // Out of reset for SPI
    // --------------------------------
    control=0x00000001;
    SPI_REG(SPIGCR0)=control;

    // --------------------------------
    // Set Chip Select Default
        // CSHOLD -> 1 -> hold SPI_EN0 state -> bit 28
        // CSNR -> 3 -> disable all
    // --------------------------------
    control=SPI_REG(SPIDAT1);
    control|=0x3 << 16;
    SPI_REG(SPIDAT1)=control;

    // --------------------------------
    // Enable for transforing
    // --------------------------------
    control=SPI_REG(SPIGCR1);
    control=control | 1 << 24;    // enable SPIENA
    SPI_REG(SPIGCR1)=control;

=============================================
Send data

    control=csnr << 16 | cshold << 28;
    control|=buf;
    SPI_REG(SPIDAT1)=control;

Read data
    control=SPI_REG(SPIBUF);
    MSG("SPIBUF = %08X",control);
    if(control & (1 << 31))
        MSG("!! No Data received ");
    else{
        while(1){
            control=SPI_REG(SPIBUF);
            if(control & (1 << 29))
                continue;
            else
                break;
            MSG("wait for data receive ...");
        }
        MSG("receive data : %04X", (control & 0xFFFF));
    }
================================

just for reference.
If it has any questions, please let me know , and help me to fix them.

Best Regards,
Sean


On Dec 18, 2007 11:52 AM, Joshua Hintze <[EMAIL PROTECTED]> wrote:

> Thanks Sean,
>
> Do you still have the code that I might take a look at?
>
> Josh
>
>
> On Dec 17, 2007, at 8:45 PM, Sean <[EMAIL PROTECTED]> wrote:
>
> Dear
>
> I write the SPI driver by myself. Just to write the corresponding
> registers.
> There is no interface driver about SPI, I felt so sad too.
>
> Best Regards,
> Sean
>
> On Dec 18, 2007 2:09 AM, Joshua Hintze < <[EMAIL PROTECTED]>[EMAIL PROTECTED]>
> wrote:
>
> >  Since nobody answered yet, I'm curious has anybody done SPI interfacing
> > on the Davinci?
> >
> >
> >
> > Thanks,
> >
> >
> >
> > Josh
> >
> >
> >
> >
> >
> >
> > ---------------------------------------------------------------------------------------
> >
> > Hey guys,
> >
> >
> >
> > Have any of you interfaced to the SPI port on the Davinci 6446. I got
> > the i2c working pretty easy using the i2c-dev character driver but there is
> > no such thing as spidev until linux kernel 2.6.22.
> >
> >
> >
> >
> >
> > So I'm wondering how others are doing it. Are you writing your own
> > kernel drivers or is there still a way to do it from user space?
> >
> >
> >
> > Thanks in advance,
> >
> >
> >
> > Josh
> >
> > _______________________________________________
> > Davinci-linux-open-source mailing list
> > <[email protected]>
> > [email protected]
> > <http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source>
> > http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
> >
> >
>
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to