I'm writing a SPI driver for the PRU on BBB.

Mux settings for pins is done by config-pin: P9.29, P9.30 and P9.31 are 
configured as "spi" for SPI1_D0, SPI1_D1 and SPI1_SCLK, while P8.27, P8.29 
and P9.28 are configured as gpio output as 3 chip select (to be manually 
managed).

Chip select pin are ok but I can't transmit/receive anything by the spi.

1) The PRU code checks register CM_PER_SPI1_CLKCTRL to verify if the module 
is enabled (interface and functional clocks provided to).
2) in case it enable the module and wait for fully functional status.

3) Then MCSPI_SYSCONFIG register is set to 0x030A (clocks always present, 
idle requests rejected, no autoidle plus module soft reset).
4) The initialization continues only when register MCSPI_SYSSTATUS confirm 
that reset is completed.

5) follows the setting of:

MCSPI_MODULCTRL to 0x0003 (no delay before first tx, functional mode, 
master, SPIEN not used, SINGLE mode)

MCSPI_CH0CONF to 0x200107BC (1clk clock granularity, FIFOs non enabled, no 
turbo mode, Tx on SPI1_D1, Rx on SPI1_D0, 16bit word, CLKD=15, mode0)

MCSPI_CH0CTRL to 0x1E01 (EXTCLK=30, channel 0 enabled)

Initialization is done.
With EXTCLK and CLKD settings I'm expecting a 100kHz spi clock (48MHz/(CLKD 
+ 1 + EXTCLK*16)=100kHz)

But when I write to register MCSPI_TX0, there's no activity at all on the 
spi pins, while I'm expecting the transmission/reception starts just after 
the writing into TX0 register...

Reading MCSPI_CH0STAT give me 0x00: EOT=0 (shift register sill loaded with 
data), TXS=0 (TX0 register full), RXS=0 (RX0 register empty).


Am I missing something?

Gianfranco

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to