[PATCH V2 2/2] spi: dual and quad support(device tree)

yuhang wang wangyuhang2014 at gmail.com
Sun Sep 1 04:05:58 EDT 2013


Hi, Stephen

2013/8/31 Stephen Warren <swarren at wwwdotorg.org>:
> On 08/26/2013 06:50 PM, wangyuhang wrote:
>> Add spi-tmax-nbits and spi-rmax-nbits for spi slave node.
>> Modify the related dt document(spi-bus.txt)
>>  spi-tmax-nbits:Max number of bits slave will use for MOSI(writting)
>>  spi-rmax-nbits:Max number of bits slave will use for MISO(reading)
>> Support for spi-tx/rmax-nbits in SPI framework has been picked[1].
>> [1]: http://comments.gmane.org/gmane.linux.kernel.spi.devel/14420
>> Commit Id:f477b7fb13df2b843997559ff34e87d054ba6538
>
>> diff --git a/Documentation/devicetree/bindings/spi/spi-bus.txt b/Documentation/devicetree/bindings/spi/spi-bus.txt
>
>> +- spi-tmax-nbits  - (optional) Max number of bits slave will use for
>> +                 MOSI(writting)
>> +- spi-rmax-nbits  - (optional) Max number of bits slave will use for
>> +                 MISO(reading)
>
> I would suggest the property names
>
> spi-tx-num-wires, spi-rx-num-wires
>
> or:
>
> spi-tx-bus-width, spi-rx-bus-width (this option from Tomasz Figa on IRC)
>
> Those name alone self-document their purpose much more clearly to me.
>
> I would also change the descriptions a bit, resulting in the following
> overall:
>
> ==========
> - spi-tx-num-wires  - (optional) The number of data wires that
>                       transfer data from the SPI controller to the
>                       SPI device. Defaults to 1 if not present.
> - spi-rx-num-wires  - (optional) The number of data wires that
>                       transfer data from the SPI device to the
>                       SPI controller. Defaults to 1 if not present.
> ==========
>

OK, that seems better.

>> +So if for example the slave has 4 wires for writting and 2 wires for reading,
>> +and the spi-tx/rx-nbits property should be set as follows:
>> +
>> +spi-tmax-nbits = <4>;
>> +spi-rmax-nbits = <2>;
>> +
>> +Now the value that spi-tmax-nbits and spi-rmax-nbits can receive is only
>> +1(single), 2(dual) and 4(quad). If you don't set spi-tmax-nbits or spi-rmax-nbits,
>> +spi_device mode will be set in single(1 wire) as default. Another point, if
>> +property:spi-3wire is set, spi-t/rmax-nbits is forbidden to set to <2 or 4>,
>> +otherwise, an errro will return.
>
> I think most of that explanation can be removed if you use the text I
> wrote above.
>
> I'm not sure you should ban spi-3wire if those properties are specified;
> can't all those properties be present together, if the num-wires are set
> to 1? Actually, isn't spi-3write the default; what does that property mean?

Property spi-3write means some controllers only have cs, clk and
sda(SI/SO shared) 3 wires. So if spi-3wire is set, then dual and quad
set should be forbidden. I didn't mean that spi-3wire can't be present
together with spi-tx/rx-num-wires, if set to <1> it's OK. Just can't
be <2 | 4>(dual and quad).



More information about the linux-mtd mailing list