
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.
regards, Ben