Date: Thu, 21 Feb 2013 10:21:00 -0500 From: Patrick Kelsey <kelsey@ieee.org> To: Aleksandr Rybalko <ray@freebsd.org> Cc: freebsd-arm@freebsd.org, Bernd Walter <ticso@cicely7.cicely.de>, ticso@cicely.de, freebsd-mips@freebsd.org Subject: Re: SPI, _sz fields in struct spi_command Message-ID: <CAD44qMU6-GUDy%2BTUJ1Ndtcy7S42BCeSsFis0dMtj9LDOeDLwGA@mail.gmail.com> In-Reply-To: <20130221163026.dbeb03f9c38de3d24a7ab30f@freebsd.org> References: <20130220142140.f8e5a616c75d72e2519dbc69@freebsd.org> <54C08D8E-4C5F-49AF-BEE6-D78EC05D2A24@bsdimp.com> <CAD44qMXkFH9iR=ym1XBtD88HRadpGkO=WRYvz5xhAVucEuoLEA@mail.gmail.com> <20130220174449.GB6976@cicely7.cicely.de> <CAD44qMXsdrhuNRbpA1a9ikj4BGffVfhv1WY6hsqCxHwVzQAdsg@mail.gmail.com> <20130221022655.6f693eb6.ray@freebsd.org> <20130221014433.GA12189@cicely7.cicely.de> <20130221163026.dbeb03f9c38de3d24a7ab30f@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
>On Thu, Feb 21, 2013 at 9:30 AM, Aleksandr Rybalko <ray@freebsd.org> wrote: >> On Thu, 21 Feb 2013 02:44:33 +0100 >> Bernd Walter <ticso@cicely7.cicely.de> wrote: >> >> On Thu, Feb 21, 2013 at 02:26:55AM +0200, Aleksandr Rybalko wrote: >> > 2. teach consumers to give only correct numbers (very nice we have only >> > two SPI devices in tree) >> > >> > After that we will be able to make drivers for some (potential) devices >> > which will require bidirectional communication. And controllers which >> > can't do that, will just report error in that. I believe peoples thinks >> > before attach such devices to controllers, so we will not have such >> > incompatibility. >> >> I don't think there are many devices requiring RX/TX at the same time. > > Anyway, we will be able to do that, and we don't care now because don't > have such drivers yet. > Taking the view that "RX/TX at the same time" means that one wants to send meaningful data to the slave device at the same time one is interested in what data is returned during that transmission, there are such devices in use out there. Linear Technologies has several ADCs, such as the LTC2446, for which you obtain the previous conversion result while sending the configuration bits for the next conversion to be performed. Although this is slightly out of focus for the specific issue originally raised, while on the topic of things that need to get done on SPI in real systems, there are also devices out there that require specific data or some number of clocks to be provided while chip select is deasserted. One example of the former is the LTC2404, which is a multichannel ADC for which the input channel for the next conversion is selected by the last four bits clocked in *before* chip select is asserted. One example of the latter is the spec for SPI access to MMC/SD cards, which requires a certain number of clocks to be applied with chip select deasserted in order to initialize the card. If you ever find yourself wondering why an SPI software interface provides independent bus acquisition and chip select control, the reason is to support these types of devices. -Patrick
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAD44qMU6-GUDy%2BTUJ1Ndtcy7S42BCeSsFis0dMtj9LDOeDLwGA>