Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Feb 2013 15:39:45 -0700
From:      Ian Lepore <ian@FreeBSD.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:  <1361486385.1185.38.camel@revolution.hippie.lan>
In-Reply-To: <20130222000207.d1478231.ray@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> <CAD44qMU6-GUDy%2BTUJ1Ndtcy7S42BCeSsFis0dMtj9LDOeDLwGA@mail.gmail.com> <20130221163003.GC12189@cicely7.cicely.de> <20130222000207.d1478231.ray@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 2013-02-22 at 00:02 +0200, Aleksandr Rybalko wrote:
> On Thu, 21 Feb 2013 17:30:03 +0100
> Bernd Walter <ticso@cicely7.cicely.de> wrote:
> 
> > On Thu, Feb 21, 2013 at 10:21:00AM -0500, Patrick Kelsey wrote:
> > > >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.
> > 
> > Forgot about ADC with channel selection.
> > 
> > > 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.
> > 
> > With many ADC you also want probing support.
> > Assign CS and GPIO-read MISO for ready without clocking.
> > Some flash chips also work this way.
> > Not sure if AT45DB support this and how our driver works.
> > With own projects I usually ask AT45DB about ready state by
> > transfering a status word.
> > 
> > -- 
> > B.Walter <bernd@bwct.de> http://www.bwct.de
> > Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.
> 
> Guys, I don't said it will not be supported. :)
> I said drivers of controllers who can't will return error in that case,
> but other might be ok.
> 
> So, conclusion: go-go-go ray! do it please!
> :-D
> 

One other little thought to consider... since tx and rx size must be the
same if they're both non-zero, then could we change to having a single
io_size field, and pass a NULL pointer for rx or tx buffer if that part
of the transfer isn't needed?

-- Ian





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1361486385.1185.38.camel>