
On Wednesday, September 15, 2010 01:15:08 Donghwa Lee wrote:
On Tuesday, September 14, 2010 20:48:11 Mike Frysinger wrote:
On Tuesday, September 14, 2010 03:38:11 Donghwa Lee wrote:
This patch adds basic support for spi mode 0~3 by control gpio bitbang in S5P. Original name of this patch was "support spi gpio driver by control gpio bitbang". But, it had arch-specific features, S5P, so changed to this name.
so why arent you implementing this with the common spi API ? then any of the code in the tree would be able to use this spi driver without having to change to your arch-specific API.
I think common spi API is not appropriate for S5P arch. For example, arch-S5P gpio framework consists of many gpio bank structure, and gpio number. From here, gpio bank structures are groups of many gpio pin and gpio number indicates specific gpio pin of gpio bank group. To control any gpio pin in arch S5P, must know about gpio bank and its specific number. But, existing spi API is different from avobe. For example, spi_setup_slave() function, consists of 4 function parameter, bus, cs, max_hz and mode. bus and cs is specific gpio number that not gpio bank group. so I think it is hard to control gpio without modifying API format.
i dont see how this matters. implement the common gpio api and handle the binding of a unique number to specific bank/pin there. then the spi/gpio layer need not care about how gpios are implement on any arch.
the Blackfin port already does this. each variant has a different number of gpio ports with a different number of pins in each bank. you can see in arch/blackfin/include/asm/mach-*/gpio.h how we then normalize the banks/pins into numbers from 0 to <gpio max for that arch>. then spi layer simply says "give me gpio 12" and the gpio layer takes care of the port/pin layer. -mike