[U-Boot] [PATCH] S5P: new spi gpio bitbang driver

Donghwa Lee dh09.lee at samsung.com
Thu Sep 16 04:38:18 CEST 2010


 On Thursday, September 16, 2010 03:06:11 Mike Frysinger wrote:
> 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

I had checked blackfin gpio framework. Blackfin includes only maximum 20 ports, 160 pins,
but, s5pc110 includes about 53 banks and 415 gpio pins. If it will be included s5pc100,
amounts of gpio pins are tremendous. And construction of arch-s5pc1xx gpio framework
is not similar with blackfin. And actually, I think arch-blackfin doesn't use gpio pins that
implemented in arch/blackpin/include/asm/mach-*/gpio.h as spi initialization parameter
probably. It maybe coded in bf518f-ezbrd.c only specific fixed number '0' and '1' by cs
and bus number, not using gpio framework.

But I want to use gpio framework to spi interface by setting platform data. It can easily use
cs, bus and data line by modifying in platform data. I want to use without modifying arch-s5p
gpio framework and want to use appropriately for arch-s5p.

thank you for your comments.



More information about the U-Boot mailing list