From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anton Vorontsov Subject: Re: spi_mpc8xxx.c: chip select polarity problem Date: Thu, 26 Nov 2009 15:12:04 +0300 Message-ID: <20091126121204.GA3558@oksana.dev.rtsoft.ru> References: <200911161742.46663.to-fleischer@t-online.de> <200911211708.47253.to-fleischer@t-online.de> <200911252141.59549.to-fleischer@t-online.de> Reply-To: avorontsov@ru.mvista.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Torsten Fleischer , spi-devel-general@lists.sourceforge.net, linuxppc-dev@lists.ozlabs.org To: Grant Likely 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 T24gV2VkLCBOb3YgMjUsIDIwMDkgYXQgMDM6MTE6NTdQTSAtMDcwMCwgR3JhbnQgTGlrZWx5IHdy b3RlOgo+IE9uIFdlZCwgTm92IDI1LCAyMDA5IGF0IDE6NDEgUE0sIFRvcnN0ZW4gRmxlaXNjaGVy Cj4gPHRvLWZsZWlzY2hlckB0LW9ubGluZS5kZT4gd3JvdGU6Cj4gPiBPbiBXZW4sIE5vdiAyNSwg MjAwOSBhdCAwMTozMzo1NyBHcmFudCBMaWtlbHkgd3JvdGU6Cj4gPj4gVGhhbmtzLiDCoEhvd2V2 ZXIsIHRoZXJlIG5lZWRzIHRvIGJlIGEgcHJvcGVyIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhpcwo+ ID4+IHBhdGNoIGRvZXMgdG8gZ28gaW4gdGhlIGNvbW1pdCBoZWFkZXIuIMKgQ2FuIHlvdSBwbGVh c2Ugd3JpdGUgb25lPwo+ID4+Cj4gPj4gVGhhbmtzLAo+ID4+IGcuCj4gPj4KPiA+IFsuLi5dCj4g Pgo+ID4gVGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBjaGlwIHNlbGVjdHMgaXMgcmVtb3ZlZCBm cm9tIHRoZSBwcm9iZSgpIGZ1bmN0aW9uIG9mCj4gPiB0aGUgc3BpX21wYzh4eHggZHJpdmVyLCBi ZWNhdXNlIHRoZSBkcml2ZXIgZG9lc24ndCBrbm93IHRoZSBwb2xhcml0eSBvZiB0aGUKPiA+IGNo aXAgc2VsZWN0cyBvZiB0aGUgU1BJIGRldmljZXMgYXQgdGhlIHRpbWUgb2YgaXRzIGluaXRpYWxp emF0aW9uLgo+ID4KPiA+IEZvciB0aGlzIHJlYXNvbiB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhl IHNldmVyYWwgY2hpcCBzZWxlY3RzIGlzIHBvc3Rwb25lZAo+ID4gdG8gdGhlIHBvaW50IG9mIHRp bWUgd2hlbiB0aGUgdmVyeSBmaXJzdCBTUEkgdHJhbnNmZXIgdG8gdGhlIGFzc29jaWF0ZWQgZGV2 aWNlCj4gPiBvY2N1cnMuCj4gPgo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IFRvcnN0ZW4gRmxlaXNj aGVyIDx0by1mbGVpc2NoZXJAdC1vbmxpbmUuZGU+Cj4gCj4gQWguICBJIHVuZGVyc3RhbmQgd2hh dCB5b3UncmUgZG9pbmcgbm93LiAgIEhtbW0uICBUaGlzIGFwcHJvYWNoCj4gY29uY2VybnMgbWUg YmVjYXVzZSBpdCByZWxpZXMgb24gZmlybXdhcmUgb3IgcGxhdGZvcm0gY29kZSB0byBnZXQgQ1MK PiBncGlvcyBzZXQgdXAgcHJvcGVybHkgYmVmb3JlIHRoZSBkcml2ZXIgaXMgcHJvYmVkLgoKWWVz LCB0aGF0IHdhcyBzYWlkIGF0IHRoZSB2ZXJ5IGJlZ2lubmluZyBvZiB0aGlzIHRocmVhZC4KCj4g IEZpcm13YXJlIGRvZXNuJ3QKPiBhbHdheXMgZ2V0IGl0IHJpZ2h0LCBhbmQgSSBwcmVmZXIgdG8g YXZvaWQgcGxhdGZvcm0gc3BlY2lmaWMgc2V0dXBzIGFzCj4gbXVjaCBhcyBwb3NzaWJsZS4gIFdo eSBjYW4ndCB0aGUgQ1MgcG9sYXJpdHkgYmUgZW5jb2RlZCBpbnRvIHRoZQo+IGRldmljZSB0cmVl IHNvIHRoZSBkcml2ZXIgKmRvZXMqIGhhdmUgdGhlIHBvbGFyaXR5IGRhdGEgYXQgcHJvYmUgdGlt ZT8KCldlIGhhdmUgdGhlIHNwaS1jcy1oaWdoIHByb3BlcnR5LCBidXQgaXQgZHVwbGljYXRlcyBj b21wYXRpYmxlCnByb3BlcnR5LiAnY29tcGF0aWJsZScgaXMgZW5vdWdoIHRvIHRlbGwgd2hldGhl ciBzb21lIGRldmljZSBoYXMKY3MtaGlnaCBvciBjcy1sb3cgKGRldmljZSdzIGRyaXZlciBrbm93 cyB0aGF0IGFscmVhZHkpLgoKVGhlIHByb2JsZW0gaXMgdGhhdCBTUEkgYnVzIG1hc3RlciBkb2Vz bid0IGtub3cgYWxsIHRoZSBkZXZpY2VzLApzbyBpdCBjYW4ndCBleHRyYWN0IHRoYXQgaW5mb3Jt YXRpb24gZnJvbSB0aGUgY29tcGF0aWJsZSBzdHJpbmcuClRvIHdvcmthcm91bmQgdGhhdCB3ZSBj YW4gdXNlICdzcGktY3MtaGlnaCcsIGJ1dCB0aGF0J3MgdWdseQp3b3JrYXJvdW5kLgoKU1BJIG1v ZGVzICgwLDEsMiwzKSBpcyBhbm90aGVyIG1hdHRlciwgc29tZSBkZXZpY2VzIGNhbiB3b3JrIGlu CnNldmVyYWwgbW9kZXMsIHNvICdzcGktY3BvbCcgYW5kICdzcGktY3BoYScgYXJlIGFjdHVhbGx5 IHVzZWZ1bC4KCi0tIApBbnRvbiBWb3JvbnRzb3YKZW1haWw6IGNib3VhdG1haWxydUBnbWFpbC5j b20KaXJjOi8vaXJjLmZyZWVub2RlLm5ldC9iZDIKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KTGludXhwcGMtZGV2IG1haWxpbmcgbGlzdApMaW51eHBwYy1k ZXZAbGlzdHMub3psYWJzLm9yZwpodHRwczovL2xpc3RzLm96bGFicy5vcmcvbGlzdGluZm8vbGlu dXhwcGMtZGV2 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from buildserver.ru.mvista.com (unknown [213.79.90.228]) by ozlabs.org (Postfix) with ESMTP id DDD26B6F10 for ; Thu, 26 Nov 2009 23:12:07 +1100 (EST) Date: Thu, 26 Nov 2009 15:12:04 +0300 From: Anton Vorontsov To: Grant Likely Subject: Re: spi_mpc8xxx.c: chip select polarity problem Message-ID: <20091126121204.GA3558@oksana.dev.rtsoft.ru> References: <200911161742.46663.to-fleischer@t-online.de> <200911211708.47253.to-fleischer@t-online.de> <200911252141.59549.to-fleischer@t-online.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 In-Reply-To: Cc: Torsten Fleischer , spi-devel-general@lists.sourceforge.net, linuxppc-dev@lists.ozlabs.org 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 Wed, Nov 25, 2009 at 03:11:57PM -0700, Grant Likely wrote: > On Wed, Nov 25, 2009 at 1:41 PM, Torsten Fleischer > wrote: > > On Wen, Nov 25, 2009 at 01:33:57 Grant Likely wrote: > >> Thanks.  However, there needs to be a proper description of what this > >> patch does to go in the commit header.  Can you please write one? > >> > >> Thanks, > >> g. > >> > > [...] > > > > The initialization of the chip selects is removed from the probe() function of > > the spi_mpc8xxx driver, because the driver doesn't know the polarity of the > > chip selects of the SPI devices at the time of its initialization. > > > > For this reason the initialization of the several chip selects is postponed > > to the point of time when the very first SPI transfer to the associated device > > occurs. > > > > > > Signed-off-by: Torsten Fleischer > > Ah. I understand what you're doing now. Hmmm. This approach > concerns me because it relies on firmware or platform code to get CS > gpios set up properly before the driver is probed. Yes, that was said at the very beginning of this thread. > Firmware doesn't > always get it right, and I prefer to avoid platform specific setups as > much as possible. Why can't the CS polarity be encoded into the > device tree so the driver *does* have the polarity data at probe time? We have the spi-cs-high property, but it duplicates compatible property. 'compatible' is enough to tell whether some device has cs-high or cs-low (device's driver knows that already). The problem is that SPI bus master doesn't know all the devices, so it can't extract that information from the compatible string. To workaround that we can use 'spi-cs-high', but that's ugly workaround. SPI modes (0,1,2,3) is another matter, some devices can work in several modes, so 'spi-cpol' and 'spi-cpha' are actually useful. -- Anton Vorontsov email: cbouatmailru@gmail.com irc://irc.freenode.net/bd2