From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anton Vorontsov Subject: Re: [PATCH -mm][POWERPC] mpc8xxx : allow SPI without cs. Date: Fri, 19 Jun 2009 17:25:01 +0400 Message-ID: <20090619132501.GA10886@oksana.dev.rtsoft.ru> References: <4A39DC80.7030906@arvoo.nl> <20090618130955.GA1369@oksana.dev.rtsoft.ru> Reply-To: avorontsov@ru.mvista.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf8" Content-Transfer-Encoding: base64 Cc: spi-devel-general@lists.sourceforge.net, Rini van Zetten , linuxppc-dev list To: Leon Woestenberg Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linuxppc-dev-bounces+glppd-linuxppc64-dev=m.gmane.org@lists.ozlabs.org Errors-To: linuxppc-dev-bounces+glppd-linuxppc64-dev=m.gmane.org@lists.ozlabs.org List-Id: linux-spi.vger.kernel.org T24gRnJpLCBKdW4gMTksIDIwMDkgYXQgMDE6NDU6NDZQTSArMDIwMCwgTGVvbiBXb2VzdGVuYmVy ZyB3cm90ZToKPiBIZWxsbywKPiAKPiBPbiBUaHUsIEp1biAxOCwgMjAwOSBhdCA0OjA0IFBNLCBL dW1hciBHYWxhPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+IHdyb3RlOgo+ID4gT24gSnVuIDE4 LCAyMDA5LCBhdCA4OjA5IEFNLCBBbnRvbiBWb3JvbnRzb3Ygd3JvdGU6Cj4gPj4gT24gVGh1LCBK dW4gMTgsIDIwMDkgYXQgMDg6MTk6NDRBTSArMDIwMCwgUmluaSB2YW4gWmV0dGVuIHdyb3RlOgo+ ID4+Pgo+ID4+PiBUaGlzIHBhdGNoIGFkZHMgdGhlIHBvc3NpYmlsaXR5IHRvIGhhdmUgYSBzcGkg ZGV2aWNlIHdpdGhvdXQgYSBjcy4KPiA+Pj4KPiA+IFRoYXQgaXMgYSBnb29kIHF1ZXN0aW9uLiDC oFdoYXQgSFcgaXMgdGhpcyBmb3IgKEkgZG9uJ3QgdGhpbmsgaXRzIGZvciBlU1BJCj4gPiBidXQg SSBjb3VsZCBiZSB3cm9uZykuCj4gPgo+IFdlIG5lZWQgU1BJIHdpdGhvdXQgQ1MgdG9vIG9uIG91 ciBNUEM4MzEzRSBkZXNpZ24uCgpXZSBkbyBzdXBwb3J0IFNQSSB3aXRob3V0IENTLCBidXQgb25s eSBmb3Igb25lIHNsYXZlIGRldmljZS4gSWYKdGhlcmUgaXMgbm8gQ1MsIHRlY2huaWNhbGx5IHlv dSBjYW4gYWRkcmVzcyBvbmx5IG9uZSBkZXZpY2Ugb24gYQpTUEkgYnVzLgoKQW5kIGFwcGFyZW50 bHkgUmluaSdzIGNhc2UgaXMgbm90IGZvciBhZGRyZXNzaW5nIG11bHRpcGxlIGNoaXBzCncvbyBD UyBsaW5lcywgaXQncyBqdXN0IHNvbWUgY2hpcC1zZWxlY3RzIG5lZWQgcXVpcmtzLgoKPiBJbiBv dXIgY2FzZSBoYXZpbmcgYSBDUyBsaW5lIHRvIGVhY2ggc2xhdmUgKDE4IG9mIHRoZW0pIGlzIHRv bwo+IGV4cGVuc2l2ZSBhbmQgd2UgdXNlIGEgY2hpcCBzZWxlY3Qgd2hpY2ggcGlnZ3kgYmFja3Mg b24gYW5vdGhlcgo+IHNpZ25hbC4KPiBPbmNlIHRoZSBzbGF2ZSBpcyBzZWxlY3RlZCwgU1BJIGlz IHVzZWQgdG8gc2VuZCBsYXJnZSBhbW91bnRzIG9mIGRhdGEuCgpDYW4geW91IGRlc2NyaWJlIGl0 IGEgbGl0dGxlIGJpdCBtb3JlPyBIYXZlIHlvdSBwYXRjaGVkIHRoZSBTUEkKZHJpdmVyIHRvIHdv cmsgd2l0aCB5b3VyIHNldHVwPwoKSWYgeW91IGNhbiBhZGRyZXNzIDE4IHNsYXZlcyB3L28gY2hp cC1zZWxlY3QgbGluZSwgSSBxdWVzcwp5b3UgaGF2ZSBhIENTIGRlbXV4aW5nIGJyaWRnZSBzb21l d2hlcmUsIGkuZS4KCnNwaS1jb250cm9sbGVyIHsKCS8qCgkgKiBubyBjaGlwLXNlbGVjdHMgZnJv bSB0aGUgY29udHJvbGxlciwgaXQgY2FuIG9ubHkgdGFsayB0bwoJICogb25lIGRldmljZTogdGhl IGNzIGRlbXV4aW5nIGJyaWRnZSwgaXQgaXMgYWx3YXlzIHNlbGVjdGVkLgoJICovCglzcGktY3Mt ZGVtdXhpbmctYnJpZGdlIHsKCQkvKgoJCSAqIGtub3dzIGhvdyB0byBtYW5hZ2UgY2hpcC1zZWxl Y3RzIChvciBkZW11eAoJCSAqIG9uZSBjaGlwIHNlbGVjdCBsaW5lIGZvciBzZXZlcmFsIHNsYXZl cykKCQkgKi8KCQlzcGktc2xhdmUgewoJCQlyZWcgPSA8MD47CgkJfTsKCQkuLi4KCQlzcGktc2xh dmUgewoJCQlyZWcgPSA8MTc+OwoJCX07Cgl9Owp9OwoKU3VyZWx5IHdlIGNhbiBoaWRlIHRoZSBi cmlkZ2UgaW50byB0aGUgU1BJIGNvbnRyb2xsZXIgZHJpdmVyLApidXQgSSB0aGluayBpdCB3b3Vs ZCBiZSBiZW5lZmljaWFsIHRvICJmYWN0b3Itb3V0IiBpdCB0byBhCnN0YW5kLWFsb25lIGVudGl0 eSwgc28gdGhhdCBvdGhlciBTUEkgY29udHJvbGxlcnMgY291bGQgd29yawp3aXRoIHRoaXMgc2V0 dXAgd2l0aG91dCBhbnkgbW9kaWZpY2F0aW9ucyAob2ggYW5kIGJ0dywgd2UgY291bGQKYWxzbyBj cmVhdGUgYSBicmlkZ2UgY2FsbGVkICJncGlvLWNoaXBzZWxlY3RzLWJyaWRnZSIsIGFuZApmYWN0 b3Igb3V0IGFsbCBHUElPIHN0dWZmIGZyb20gdGhlIGRyaXZlcnMpLgoKVGhlcmUgYXJlIHR3byBv cHRpb25zIG9mIGhvdyB3ZSBjYW4gZmFjdG9yIG91dCBjaGlwLXNlbGVjdAptYWNoaW5lcy4uLiB0 aGUgYmFkIGFuZCB0aGUgdWdseS4gOi0pIE5vLCB0aGUgZmlyc3Qgb25lIGlzIGJhZCwKYnV0IHRo ZSBzZWNvbmQgc2hvdWxkIGJlIE9LLgoKMS4gV2UgY2FuIGNyZWF0ZSBmdWxsLWZsZWRnZWQgU1BJ IG1hc3RlciBicmlkZ2UgZHJpdmVycywgdGhlCiAgIGRyaXZlcnMgd2lsbCBqdXN0IHBhc3MtdGhy b3VnaCBhbGwgU1BJIElPLCBidXQgd2lsbCBtYW5hZ2UKICAgY2hpcC1zZWxlY3RzLiBUaGUgYmFk IHBhcnQgaXMgdGhhdCB0aGVzZSBkcml2ZXJzIGNvdWxkIGRlZ3JhZGUKICAgcGVyZm9ybWFuY2Ug c2luY2UgdGhleSdsbCBoYXZlIHRvIG1hbmFnZSBTUEkgSU8sIHdoaWNoIGlzCiAgIHVubmVlZGVk IGZvciB0aGUgcHVyZSBDUyBtYWNoaW5lcy4KCjIuIEFub3RoZXIgb3B0aW9uICh3aGljaCBJIGxp a2UgbW9yZSksIGlzIHRvIGNyZWF0ZSAiU1BJIGNoaXAtCiAgIHNlbGVjdCBtYWNoaW5lIGRyaXZl ciBmcmFtZXdvcmsiLCBzbyB3ZSBjb3VsZCAoZmluYWxseSkKICAgc2VwYXJhdGUgdHdvIFNQSSBl bnRpdGllczogU1BJIElPIGFuZCBTUEkgY2hpcC1zZWxlY3QgbWFjaGluZS4KICAgQ1MgbWFjaGlu ZXMgb2YgZGlmZmVyZW50IGZsYXZvdXJzOiBHUElPLCBidWlsdC1pbiwgYW5kCiAgIGJvYXJkLXNw ZWNpZmljICghKSB3aXRoIGEgbG90IG9mIGRlbXV4aW5nIG1hZ2ljLgoKKDEpIGNhbiBiZSBpbXBs ZW1lbnRlZCB0cml2aWFsbHksIHdoaWxlICgyKSBpcyBhIGxvdCBvZiB3b3JrLgoKLS0gCkFudG9u IFZvcm9udHNvdgplbWFpbDogY2JvdWF0bWFpbHJ1QGdtYWlsLmNvbQppcmM6Ly9pcmMuZnJlZW5v ZGUubmV0L2JkMgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpMaW51eHBwYy1kZXYgbWFpbGluZyBsaXN0CkxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3Jn Cmh0dHBzOi8vbGlzdHMub3psYWJzLm9yZy9saXN0aW5mby9saW51eHBwYy1kZXY= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ozlabs.org (ozlabs.org [203.10.76.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx.ozlabs.org", Issuer "CA Cert Signing Authority" (verified OK)) by bilbo.ozlabs.org (Postfix) with ESMTPS id 073C5B7243 for ; Fri, 19 Jun 2009 23:25:50 +1000 (EST) Date: Fri, 19 Jun 2009 17:25:01 +0400 From: Anton Vorontsov To: Leon Woestenberg Subject: Re: [PATCH -mm][POWERPC] mpc8xxx : allow SPI without cs. Message-ID: <20090619132501.GA10886@oksana.dev.rtsoft.ru> References: <4A39DC80.7030906@arvoo.nl> <20090618130955.GA1369@oksana.dev.rtsoft.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 In-Reply-To: Cc: spi-devel-general@lists.sourceforge.net, Rini van Zetten , linuxppc-dev list Reply-To: avorontsov@ru.mvista.com List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Fri, Jun 19, 2009 at 01:45:46PM +0200, Leon Woestenberg wrote: > Hello, > > On Thu, Jun 18, 2009 at 4:04 PM, Kumar Gala wrote: > > On Jun 18, 2009, at 8:09 AM, Anton Vorontsov wrote: > >> On Thu, Jun 18, 2009 at 08:19:44AM +0200, Rini van Zetten wrote: > >>> > >>> This patch adds the possibility to have a spi device without a cs. > >>> > > That is a good question.  What HW is this for (I don't think its for eSPI > > but I could be wrong). > > > We need SPI without CS too on our MPC8313E design. We do support SPI without CS, but only for one slave device. If there is no CS, technically you can address only one device on a SPI bus. And apparently Rini's case is not for addressing multiple chips w/o CS lines, it's just some chip-selects need quirks. > In our case having a CS line to each slave (18 of them) is too > expensive and we use a chip select which piggy backs on another > signal. > Once the slave is selected, SPI is used to send large amounts of data. Can you describe it a little bit more? Have you patched the SPI driver to work with your setup? If you can address 18 slaves w/o chip-select line, I quess you have a CS demuxing bridge somewhere, i.e. spi-controller { /* * no chip-selects from the controller, it can only talk to * one device: the cs demuxing bridge, it is always selected. */ spi-cs-demuxing-bridge { /* * knows how to manage chip-selects (or demux * one chip select line for several slaves) */ spi-slave { reg = <0>; }; ... spi-slave { reg = <17>; }; }; }; Surely we can hide the bridge into the SPI controller driver, but I think it would be beneficial to "factor-out" it to a stand-alone entity, so that other SPI controllers could work with this setup without any modifications (oh and btw, we could also create a bridge called "gpio-chipselects-bridge", and factor out all GPIO stuff from the drivers). There are two options of how we can factor out chip-select machines... the bad and the ugly. :-) No, the first one is bad, but the second should be OK. 1. We can create full-fledged SPI master bridge drivers, the drivers will just pass-through all SPI IO, but will manage chip-selects. The bad part is that these drivers could degrade performance since they'll have to manage SPI IO, which is unneeded for the pure CS machines. 2. Another option (which I like more), is to create "SPI chip- select machine driver framework", so we could (finally) separate two SPI entities: SPI IO and SPI chip-select machine. CS machines of different flavours: GPIO, built-in, and board-specific (!) with a lot of demuxing magic. (1) can be implemented trivially, while (2) is a lot of work. -- Anton Vorontsov email: cbouatmailru@gmail.com irc://irc.freenode.net/bd2