From: Martin Sperl <kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
To: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
Cc: Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
lee-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-rpi-kernel
<linux-rpi-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
notro-L59+Z2yzLopAfugRpC6u6w@public.gmane.org
Subject: Re: [PATCH] SPI: BCM2835: clock divider can be a multiple of 2
Date: Fri, 20 Mar 2015 08:04:27 +0100 [thread overview]
Message-ID: <6EBE48E2-80E7-454C-A84C-231D45DC64E0@martin.sperl.org> (raw)
In-Reply-To: <550BAAD8.20206-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
> On 20.03.2015, at 06:06, Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> wrote:
>
> On 03/19/2015 03:01 AM, kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org wrote:
>> From: Martin Sperl <kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
>>
>> The official documentation is wrong in this respect.
>> Has been tested empirically for dividers 2-1024
>
> Do you have a link to a confirmation of this from the RPi Foundation or
> Broadcom, even a forum post or something? How does the RPI Foundation's
> downstream kernel restrict the divider?
Unfortunately there are no official errata by the foundation.
Here the argument by a foundation official (Gordon Hollingworth)
why they do not (want to) provide updates:
http://www.raspberrypi.org/forums/viewtopic.php?p=447724#p447724
That is in a slightly different context, but still it also applies to
errata in general.
The foundation spi-bcm2708 driver also relies on the power-of 2 rule
following to the letter the documentation they provide.
For some more infos of experience please look here:
https://github.com/notro/spi-bcm2708/wiki
http://www.raspberrypi.org/forums/viewtopic.php?f=44&t=43442
http://elinux.org/BCM2835_datasheet_errata#p156
Notro and I have been running an out of tree driver for a long time
and that never showed any issues with this multiple of 2.
Some of these kernels/drivers have been shared with lots of people
for the use with TFT displays or CAN controllers.
I have measured this empirically for every divider between 2 to 1024
by doing some transfers, and measuring them with a SALEAE logic analyzer.
See here: for the analysis:
https://github.com/msperl/spi-bcm2835/issues/8
You can also fetch the raw data and csv exports here:
https://github.com/msperl/spi-bcm2835/blob/patch_the_upstream/images/
Note that the descriptions of how to do polled, interrupt driven and
DMA driven SPI transfers (page 158) is also not completely accurate.
It seems to show some "procedures", but these are not optimized and
some are inconsistent: e.g: this limitation of 16/12 byte transfers
while the register documentation says 16 words not bytes - which means
64 bytes can enter the FIFO buffer (which is also the limit when
the HW signals that it is full via BCM2835_SPI_CS_TXD)
This will be one of the next patches for improvement of the driver.
Martin
--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-03-20 7:04 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-19 9:01 [PATCH] SPI: BCM2835: fix all checkpath --strict messages kernel-TqfNSX0MhmxHKSADF0wUEw
[not found] ` <1426755714-28130-1-git-send-email-kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
2015-03-19 9:01 ` [PATCH V2] SPI: BCM2835: allow arbitrary GPIO to act as SPI-chip_select kernel-TqfNSX0MhmxHKSADF0wUEw
[not found] ` <1426755714-28130-2-git-send-email-kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
2015-03-20 5:05 ` Stephen Warren
[not found] ` <550BAA89.5090707-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2015-03-20 9:52 ` Mark Brown
[not found] ` <20150320095247.GE2869-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-03-25 7:10 ` [PATCH V2 - RESEND] " Martin Sperl
[not found] ` <1756D77D-173D-4D6D-B629-59CC8A49714F-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
2015-03-25 15:16 ` Mark Brown
[not found] ` <20150325151611.GA3572-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-03-25 16:13 ` Martin Sperl
[not found] ` <681599F9-2D88-49FF-BD16-4F388D0B2874-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
2015-03-25 16:54 ` Mark Brown
[not found] ` <20150325165441.GI3572-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-03-25 17:59 ` Martin Sperl
[not found] ` <767DFCCF-C8A4-44B3-9E85-96011B0FF0FA-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
2015-03-25 18:50 ` Mark Brown
[not found] ` <20150325185007.GL3572-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-03-25 19:43 ` Martin Sperl
[not found] ` <561486F6-3580-4884-8A6A-8477D8C3BDC9-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
2015-03-25 21:02 ` Mark Brown
2015-03-26 10:08 ` [PATCH] SPI: bcm2835: move to the transfer_one driver model Martin Sperl
[not found] ` <30057D30-6A2D-4517-B374-76FF2448E455-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
2015-03-26 17:35 ` Mark Brown
[not found] ` <20150326173511.GW3572-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-03-26 17:47 ` Stephen Warren
2015-03-26 19:15 ` Martin Sperl
[not found] ` <C176096E-3731-4F47-9DCF-AE83B143EB9D-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
2015-03-27 1:32 ` Mark Brown
2015-03-28 4:09 ` Stephen Warren
[not found] ` <5516296A.2030505-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2015-03-28 18:11 ` Martin Sperl
[not found] ` <AB966507-3A94-4421-8153-AB4090E309AF-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
2015-03-29 3:24 ` Stephen Warren
[not found] ` <55177076.9000208-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2015-03-29 10:19 ` Martin Sperl
[not found] ` <74807CAA-A444-413B-9C9B-C3B06D5C18E6-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
2015-03-29 21:44 ` Martin Sperl
2015-03-31 14:49 ` Martin Sperl
[not found] ` <E13569A5-33E5-48ED-B25F-EC7374E144C9-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
2015-04-01 15:20 ` Stephen Warren
[not found] ` <551C0CA2.40406-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2015-04-03 10:17 ` Martin Sperl
[not found] ` <A1AEABE2-F0D2-481B-BD83-E1AD7861E960-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
2015-04-06 17:26 ` Mark Brown
2015-03-19 9:01 ` [PATCH] SPI: BCM2835: clock divider can be a multiple of 2 kernel-TqfNSX0MhmxHKSADF0wUEw
[not found] ` <1426755714-28130-3-git-send-email-kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
2015-03-20 5:06 ` Stephen Warren
[not found] ` <550BAAD8.20206-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2015-03-20 7:04 ` Martin Sperl [this message]
[not found] ` <6EBE48E2-80E7-454C-A84C-231D45DC64E0-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
2015-03-20 14:25 ` Noralf Trønnes
2015-03-23 18:53 ` Mark Brown
2015-03-19 9:01 ` [PATCH] SPI: BCM2835: enable support of 3-wire mode kernel-TqfNSX0MhmxHKSADF0wUEw
[not found] ` <1426755714-28130-4-git-send-email-kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
2015-03-20 5:12 ` Stephen Warren
[not found] ` <550BAC49.3000105-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2015-03-20 6:17 ` Martin Sperl
2015-03-23 18:57 ` Mark Brown
2015-03-20 4:58 ` [PATCH] SPI: BCM2835: fix all checkpath --strict messages Stephen Warren
[not found] ` <550BA8FE.7030001-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2015-03-20 6:26 ` Martin Sperl
[not found] ` <7727F65E-D8BC-4299-A359-56FA449C3379-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
2015-03-20 13:40 ` Mark Brown
[not found] ` <20150320134053.GN2869-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-03-20 14:26 ` [PATCH V2] " Martin Sperl
[not found] ` <78137BE7-37A4-4144-BBCC-CBEDA70DD31A-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>
2015-03-20 18:05 ` Mark Brown
2015-03-20 13:36 ` [PATCH] " Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6EBE48E2-80E7-454C-A84C-231D45DC64E0@martin.sperl.org \
--to=kernel-tqfnsx0mhmxhksadf0wuew@public.gmane.org \
--cc=broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=lee-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=linux-rpi-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=notro-L59+Z2yzLopAfugRpC6u6w@public.gmane.org \
--cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).