[U-Boot-Users] Hard SPI driver for 834x

Ben Warren bwarren at qstreams.com
Mon Jun 12 16:51:35 CEST 2006

Wolfgang and others,

I've developed a hard SPI driver for the MPC834x CPU that I'd like to
submit, but have a few questions first.  Some background information:

Unlike most QUICC-based CPUs before it, the 834x chips has a dedicated
SPI controller, instead of using an xCC port and associated DPRAM
buffers.  There are 32-bit transmit and receive registers that are
double-buffered and shifted out/in the MOSI/MISO pins.  Other chips in
the PowerQUICC II Pro family, such as the 832x and 836x, appear to have
a CPM and thus probably work much like the 82xx.

Going through the U-boot code, I found two quite different SPI
implementations, in addition to a spattering of board-specific code:
CONFIG_SPI is very EEPROM-specific, while CONFIG_SOFT_SPI is nice and
generic, but is of course bit-banged.  My application uses hard SPI, but
I want to use U-boot as a hardware debug platform so generic is good.

I propose adding CONFIG_HARD_SPI, which does nothing other than #ifdef
compile the hard driver.  I will then re-use the data structures and
commands from CONFIG_SOFT_SPI.

My questions:
1.  The /cpu directory has 'mpc83xx', while in fact there are at least
two groups of chips in this family that have quite different
peripherals.  Should I put my code here and use #ifdef CONFIG_MPC8349,
or start an 'mpc834x' branch?

2.  Where is the appropriate place to call 'spi_init()'?  In my patch,
I've placed it in /lib_ppc/board.c along with 'i2c_init()'.  Should it
instead go in board code?

3.  Should I put changes to README in the same patch, or would you
prefer a different one?  Patch size should be < 15kB, so size isn't
really an issue.

4.  More embarassingly, is there a trick to getting new files to show up
when calling 'git diff' on the u-boot tree?  I've tried 'git-add',
committing and various permutations and whatever I do, my new file
doesn't show up in the patch.  I've tried using 'diff --git', but my
version of diff (2.8.1) doesn't seem to support git.


More information about the U-Boot mailing list