From mboxrd@z Thu Jan 1 00:00:00 1970 From: Trent Piepho Subject: Re: [2/2] spi: imx: fix use of native chip-selects with devicetree Date: Tue, 10 Oct 2017 20:38:37 +0000 Message-ID: <1507667916.74283.19.camel@impinj.com> References: <1489726983-17706-3-git-send-email-gerg@linux-m68k.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "vz-ChpfBGZJDbMAvxtiuMwx3w@public.gmane.org" , "shawnguo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org" , "kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org" , "broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org" , "fabio.estevam-3arQi8VN3Tc@public.gmane.org" To: "linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org" , "gerg-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org" Return-path: In-Reply-To: <1489726983-17706-3-git-send-email-gerg-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org> Content-Language: en-US Content-ID: <8A8ACDD17E32F148B3BFB5E1201B430D-+1mpgTUVCH2cE4WynfumptQqCkab/8FMAL8bYrjMMd8@public.gmane.org> Sender: linux-spi-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-ID: T24gRnJpLCAyMDE3LTAzLTE3IGF0IDE1OjAzICsxMDAwLCBHcmVnIFVuZ2VyZXIgd3JvdGU6DQo+ IFlvdSBjYW4gc3VjY2Vzc2Z1bGx5IHNwZWNpZnkgbmF0aXZlIGNoaXAtc2VsZWN0cyBpZiB1c2lu ZyBhIHBsYXRmb3JtDQo+IHNldHVwIGJ5IHNwZWNpZnlpbmcgdGhlIGNzLWdwaW8gYXMgbmVnYXRp dmUgb2Zmc2V0IGJ5IDMyLiBBbmQgdGhhdA0KPiB3b3JrcyBjb3JyZWN0bHkuIFlvdSBjYW5ub3Qg dXNlIHRoZSBzYW1lIG1ldGhvZCBpbiBkZXZpY2V0cmVlLg0KDQpJIGNhbWUgYWNyb3NzIHNvbWUg c3BpLWlteCBidWdzIGluIGFuIG9sZGVyIGtlcm5lbCBhbmQgaW4gY2hlY2tpbmcgdGhlDQpsYXRl c3Qga2VybmVsLCBmb3VuZCB0aGlzIHBhdGNoLiAgSXQgZml4ZWQgdGhlIGlzc3VlIHdpdGggZHQg bm90DQp3b3JraW5nIGZvciBvbGRlciBzcGkgaW14IGRldmljZXMgKHRoZSBpbXg1MSsgY29uZmln IGZ1bmN0aW9uIG5ldmVyDQp1c2VkIHRoZSBwbGF0Zm9ybSBkYXRhIDMyIG9mZnNldCB0aGluZyks IGJ1dCBmYWlscyB0byBhZGRyZXNzIG5vbi1kdA0KcGxhdGZvcm0gZGF0YSBiYXNlZCB1c2VycyBv ZiB0aGUgc3BpIGlteCBkcml2ZXIuDQoNCkZvciBpbnN0YW5jZSwgaW5jbHVkZS9saW51eC9wbGF0 Zm9ybV9kYXRhL3NwaS1pbXguaCBzdGlsbCByZWZlcnMgdG8gdGhlDQpvZmZzZXQgYnkgMzIgZm9y IG5hdGl2ZSBjczoNCg0KICogQGNoaXBzZWxlY3Q6IEFycmF5IG9mIGNoaXBzZWxlY3RzIGZvciB0 aGlzIG1hc3Rlci4gTnVtYmVycyA+PSAwIG1lYW4gZ3Bpbw0KICogICAgICAgICAgICAgIHBpbnMs IG51bWJlcnMgPCAwIG1lYW4gaW50ZXJuYWwgQ1NQSSBjaGlwc2VsZWN0cyBhY2NvcmRpbmcNCiAq ICAgICAgICAgICAgICB0byBNWENfU1BJX0NTKCkuIE5vcm1hbGx5IHlvdSB3YW50IHRvIHVzZSBn cGlvIGJhc2VkIGNoaXANCg0KI2RlZmluZSBNWENfU1BJX0NTKG5vKSAgKChubykgLSAzMikNCg0K QWZ0ZXIgdGhpcyBwYXRjaCwgZm9yIG5vLURUIHVzZXJzLCBhbnkgbmVnYXRpdmUgKG9yIHJhdGhl ciBub3QgYSB2YWxpZA0KZ3BpbykgdmFsdWUgaW4gY2hpcHNlbGVjdCB3aWxsIGNhdXNlIHRoZSBu YXRpdmUgY2hpcHNlbGVjdA0KY29ycmVzcG9uZGluZyB0byB0aGUgc3BpIHNsYXZlJ3MgY2hpcHNl bGVjdC4gIEl0J3Mgbm8gbG9uZ2VyIHBvc3NpYmxlDQp0byBzcGVjaWZ5IHdoaWNoIG5hdGl2ZSBj cyB0byB1c2UgaW4gdGhlIHNwaS1pbXggcGxhdGZvcm0gZGF0YS4gIFNvIGluDQpzb21ldGhpbmcg bGlrZToNCg0KYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1teDMxbW9ib2FyZC5jLXN0YXRpYyBpbnQg bW9ib2FyZF9zcGkxX2NzW10gPSB7DQphcmNoL2FybS9tYWNoLWlteC9tYWNoLW14MzFtb2JvYXJk LmM6ICAgTVhDX1NQSV9DUygwKSwNCmFyY2gvYXJtL21hY2gtaW14L21hY2gtbXgzMW1vYm9hcmQu YzogICBNWENfU1BJX0NTKDIpLA0KYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1teDMxbW9ib2FyZC5j LX07DQoNClRoZSBzcGkgZGV2aWNlIGNvbmZpZ3VyZWQgdG8gdXNlIGNoaXAgc2VsZWN0IDEgd2ls bCBubyBsb25nZXIgdXNlDQpuYXRpdmUgY2hpcCBzZWxlY3QgbGluZSAyLg0KDQpMb29raW5nIGF0 IGFsbCBpbi10cmVlIHVzZXJzIG9mIHNwaSBpbXggcGxhdGZvcm0gZGF0YSwgaXQgYXBwZWFycyB0 aGF0DQp0aGlzIGJvYXJkIGlzIHRoZSBvbmx5IG9uZSBpbiB3aGljaCB0aGUgY3Mgc2VsZWN0ZWQg ZG9lcyBub3QgbWF0Y2ggdGhlDQphcnJheSBpbmRleC4gIFRob3VnaCB0aGVyZSBhcmUgc3RpbGwg c2V2ZXJhbCB3aGljaCBzdGlsbCB1c2UNCk1TQ19TUElfQ1MoKSBldmVuIHRob3VnaCBpdCBkb2Vz bid0IHJlYWxseSB3b3JrIGFueW1vcmUuDQo= -- 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 From mboxrd@z Thu Jan 1 00:00:00 1970 From: tpiepho@impinj.com (Trent Piepho) Date: Tue, 10 Oct 2017 20:38:37 +0000 Subject: [2/2] spi: imx: fix use of native chip-selects with devicetree In-Reply-To: <1489726983-17706-3-git-send-email-gerg@linux-m68k.org> References: <1489726983-17706-3-git-send-email-gerg@linux-m68k.org> Message-ID: <1507667916.74283.19.camel@impinj.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Fri, 2017-03-17 at 15:03 +1000, Greg Ungerer wrote: > You can successfully specify native chip-selects if using a platform > setup by specifying the cs-gpio as negative offset by 32. And that > works correctly. You cannot use the same method in devicetree. I came across some spi-imx bugs in an older kernel and in checking the latest kernel, found this patch. It fixed the issue with dt not working for older spi imx devices (the imx51+ config function never used the platform data 32 offset thing), but fails to address non-dt platform data based users of the spi imx driver. For instance, include/linux/platform_data/spi-imx.h still refers to the offset by 32 for native cs: * @chipselect: Array of chipselects for this master. Numbers >= 0 mean gpio * pins, numbers < 0 mean internal CSPI chipselects according * to MXC_SPI_CS(). Normally you want to use gpio based chip #define MXC_SPI_CS(no) ((no) - 32) After this patch, for no-DT users, any negative (or rather not a valid gpio) value in chipselect will cause the native chipselect corresponding to the spi slave's chipselect. It's no longer possible to specify which native cs to use in the spi-imx platform data. So in something like: arch/arm/mach-imx/mach-mx31moboard.c-static int moboard_spi1_cs[] = { arch/arm/mach-imx/mach-mx31moboard.c: MXC_SPI_CS(0), arch/arm/mach-imx/mach-mx31moboard.c: MXC_SPI_CS(2), arch/arm/mach-imx/mach-mx31moboard.c-}; The spi device configured to use chip select 1 will no longer use native chip select line 2. Looking@all in-tree users of spi imx platform data, it appears that this board is the only one in which the cs selected does not match the array index. Though there are still several which still use MSC_SPI_CS() even though it doesn't really work anymore.