Patchwork MAX7301 GPIO: Do not force SPI speed when using OF Platform

login
register
mail settings
Submitter LEROY Christophe
Date Aug. 7, 2013, 3:20 p.m.
Message ID <520265B2.3080403@c-s.fr>
Download mbox | patch
Permalink /patch/265527/
State New
Headers show

Comments

LEROY Christophe - Aug. 7, 2013, 3:20 p.m.
Hi,

Le 07/08/2013 14:46, Roland Stigge a écrit :
> Hi,
>
> On 08/07/2013 02:35 PM, leroy christophe wrote:
>>>> spi-bits = <16>;
>>> I tried this, both in the device's and in the controller's node. But it
>>> didn't work. However, as described, I didn't expect it to work, because
>>> there is no code present to handle "spi-bits". At least not in 3.10.
>>>
>>> Am I missing something? Otherwise, maybe something of the tree that you
>>> are talking about is missing from mainline still?
>>>
>>>
>> Strange. I'm using 3.8.13
>> I have it handled in drivers/spi/spi.c in function
>> of_register_spi_devices()
> 3.8.13's (as well as newer ones') drivers/spi/spi.c doesn't handle
> "spi-bits", see also
>
> https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/drivers/spi/spi.c?h=linux-3.8.y
>
> Maybe you have additional patches that are not in mainline, yet?
>
> Thanks,
>
> Roland
>
Yes you are right, I have the attached patch in addition which have been 
in our code for long time and which has never been submitted for 
inclusion in the mainline kernel.
Sorry about that, I will submit it.

Regards
Christophe

Patch

--- linux-3.8.13/drivers/spi/spi.c	2013-05-11 22:57:46.000000000 +0200
+++ linux/drivers/spi/spi.c	2013-08-06 18:15:34.000000000 +0200
@@ -870,6 +870,11 @@ 
 		if (of_find_property(nc, "spi-3wire", NULL))
 			spi->mode |= SPI_3WIRE;
 
+		/* Bits per word */
+		prop = of_get_property(nc, "spi-bits", &len);
+		if (prop && len >= sizeof(*prop)) {
+			spi->bits_per_word = prop[0];
+		}
 		/* Device speed */
 		prop = of_get_property(nc, "spi-max-frequency", &len);
 		if (!prop || len < sizeof(*prop)) {