From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Wang Subject: Re: [PATCH 4/6] ARM: mx51: Add spi clock and spi_imx device registration Date: Fri, 03 Sep 2010 13:46:45 +0800 Message-ID: <4C808BC5.2020002@gmail.com> References: <20100902143908.GK14214@pengutronix.de> <1283438523-19697-4-git-send-email-u.kleine-koenig@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: amit.kucheria-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org, Sascha Hauer , Jason Wang , spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org To: =?UTF-8?B?VXdlIEtsZWluZS1Lw7ZuaWc=?= Return-path: In-Reply-To: <1283438523-19697-4-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: spi-devel-general-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: linux-spi.vger.kernel.org VXdlIEtsZWluZS1Lw7ZuaWcgd3JvdGU6Cj4gRnJvbTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBl bmd1dHJvbml4LmRlPgo+Cj4gU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBl bmd1dHJvbml4LmRlPgo+IFNpZ25lZC1vZmYtYnk6IFV3ZSBLbGVpbmUtS8O2bmlnIDx1LmtsZWlu ZS1rb2VuaWdAcGVuZ3V0cm9uaXguZGU+Cj4gLS0tCj4gIGFyY2gvYXJtL21hY2gtbXg1L2Nsb2Nr LW14NTEuYyAgICAgICAgICAgICAgIHwgICA0MiArKysrKysrKysrKysrKysrKysrKysrKysrKwo+ ICBhcmNoL2FybS9tYWNoLW14NS9kZXZpY2VzLWlteDUxLmggICAgICAgICAgICB8ICAgMTggKysr KysrKysrKysKPiAgYXJjaC9hcm0vcGxhdC1teGMvZGV2aWNlcy9wbGF0Zm9ybS1zcGlfaW14LmMg fCAgIDE3ICsrKysrKysrKysKPiAgMyBmaWxlcyBjaGFuZ2VkLCA3NyBpbnNlcnRpb25zKCspLCAw IGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1teDUvZGV2 aWNlcy1pbXg1MS5oCj4KPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDUvY2xvY2stbXg1 MS5jIGIvYXJjaC9hcm0vbWFjaC1teDUvY2xvY2stbXg1MS5jCj4gaW5kZXggNmFmNjlkZS4uOWFi NGQxNyAxMDA2NDQKPiAtLS0gYS9hcmNoL2FybS9tYWNoLW14NS9jbG9jay1teDUxLmMKPiArKysg Yi9hcmNoL2FybS9tYWNoLW14NS9jbG9jay1teDUxLmMKPiBAQCAtNzYyLDYgKzc2MiwyOSBAQCBz dGF0aWMgc3RydWN0IGNsayBrcHBfY2xrID0gewo+ICAJLmlkID0gMCwKPiAgfTsKPiAgCj4gK3N0 YXRpYyB1bnNpZ25lZCBsb25nIGNsa19jc3BpX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKPiAr ewo+ICsJdTMyIHJlZywgcHJlZGl2LCBwb2RmOwo+ICsJdW5zaWduZWQgbG9uZyByYXRlOwo+ICsK PiArCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19DQ01fQ1NDRFIyKTsKPiArCXByZWRpdiA9ICgocmVn ICYgTVhDX0NDTV9DU0NEUjJfQ1NQSV9DTEtfUFJFRF9NQVNLKSA+Pgo+ICsJCSAgTVhDX0NDTV9D U0NEUjJfQ1NQSV9DTEtfUFJFRF9PRkZTRVQpICsgMTsKPiArCWlmIChwcmVkaXYgPT0gMSkKPiAr CQlCVUcoKTsKPiArCXBvZGYgPSAoKHJlZyAmIE1YQ19DQ01fQ1NDRFIyX0NTUElfQ0xLX1BPREZf TUFTSykgPj4KPiArCQlNWENfQ0NNX0NTQ0RSMl9DU1BJX0NMS19QT0RGX09GRlNFVCkgKyAxOwo+ ICsKPiArCXJhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKHByZWRpdiAqIHBvZGYp Owo+ICsKPiArCXJldHVybiByYXRlOwo+ICt9Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGNsayBjc3Bp X21haW5fY2xrID0gewo+ICsJLnBhcmVudCA9ICZwbGwzX3N3X2NsaywKPiArCS5nZXRfcmF0ZSA9 IGNsa19jc3BpX2dldF9yYXRlLAo+ICt9Owo+ICsKPiAgI2RlZmluZSBERUZJTkVfQ0xPQ0sobmFt ZSwgaSwgZXIsIGVzLCBnciwgc3IsIHAsIHMpCVwKPiAgCXN0YXRpYyBzdHJ1Y3QgY2xrIG5hbWUg PSB7CQkJXAo+ICAJCS5pZAkJPSBpLAkJCVwKPiBAQCAtODEwLDYgKzgzMywyMiBAQCBERUZJTkVf Q0xPQ0soaTJjMl9jbGssIDEsIE1YQ19DQ01fQ0NHUjEsIE1YQ19DQ01fQ0NHUnhfQ0cxMF9PRkZT RVQsCj4gIERFRklORV9DTE9DSyhoc2kyY19jbGssIDAsIE1YQ19DQ01fQ0NHUjEsIE1YQ19DQ01f Q0NHUnhfQ0cxMV9PRkZTRVQsCj4gIAlOVUxMLCBOVUxMLCAmaXBnX2NsaywgTlVMTCk7Cj4gIAo+ ICsvKiBTUEkgKi8KPiArREVGSU5FX0NMT0NLKGNzcGkxX2lwZ19jbGssIDAsIE1YQ19DQ01fQ0NH UjQsIE1YQ19DQ01fQ0NHUnhfQ0c5X09GRlNFVCwKPiArCU5VTEwsIE5VTEwsICZpcGdfY2xrLCAm c3BiYV9jbGspOwo+ICtERUZJTkVfQ0xPQ0soY3NwaTFfY2xrLCAwLCBNWENfQ0NNX0NDR1I0LCBN WENfQ0NNX0NDR1J4X0NHMTBfT0ZGU0VULAo+ICsJTlVMTCwgTlVMTCwgJmNzcGlfbWFpbl9jbGss ICZjc3BpMV9pcGdfY2xrKTsKPiArCj4gK0RFRklORV9DTE9DSyhjc3BpMl9pcGdfY2xrLCAwLCBN WENfQ0NNX0NDR1I0LCBNWENfQ0NNX0NDR1J4X0NHMTFfT0ZGU0VULAo+ICsJTlVMTCwgTlVMTCwg JmlwZ19jbGssICZzcGJhX2Nsayk7Cj4gK0RFRklORV9DTE9DSyhjc3BpMl9jbGssIDAsIE1YQ19D Q01fQ0NHUjQsIE1YQ19DQ01fQ0NHUnhfQ0cxMl9PRkZTRVQsCj4gKwlOVUxMLCBOVUxMLCAmY3Nw aV9tYWluX2NsaywgJmNzcGkyX2lwZ19jbGspOwo+ICsKPiArREVGSU5FX0NMT0NLKGNzcGkzX2lw Z19jbGssIDAsIE1YQ19DQ01fQ0NHUjQsIE1YQ19DQ01fQ0NHUnhfQ0c5X09GRlNFVCwKPiArCU5V TEwsIE5VTEwsICZpcGdfY2xrLCAmYWlwc190ejJfY2xrKTsKPiArREVGSU5FX0NMT0NLKGNzcGkz X2NsaywgMCwgTVhDX0NDTV9DQ0dSNCwgTVhDX0NDTV9DQ0dSeF9DRzEzX09GRlNFVCwKPiArCU5V TEwsIE5VTEwsICZjc3BpX21haW5fY2xrLCAmY3NwaTNfaXBnX2Nsayk7Cj4gKwo+ICAgCkhlcmUs IGZyb20gIk1DSU1YNTFSTSBSZXYuIDAgMTEvMjAwOSwgY2hhcHRlciA3IiwgdGhlIENTUEkncyBk aXJlY3QgCnBhcmVudCBjbG9jayBzZWVtcyB0byBiZQppcGdfY2xrIGluc3RlYWQgb2YgY3NwaV9t YWluX2Nsay4KCj4gIC8qIEZFQyAqLwo+ICBERUZJTkVfQ0xPQ0soZmVjX2NsaywgMCwgTVhDX0ND TV9DQ0dSMiwgTVhDX0NDTV9DQ0dSeF9DRzEyX09GRlNFVCwKPiAgCU5VTEwsICBOVUxMLCAmaXBn X2NsaywgTlVMTCk7Cj4gQEAgLTgzNyw2ICs4NzYsOSBAQCBzdGF0aWMgc3RydWN0IGNsa19sb29r dXAgbG9va3Vwc1tdID0gewo+ICAJX1JFR0lTVEVSX0NMT0NLKCJmc2wtdXNiMi11ZGMiLCAidXNi IiwgdXNib2gzX2NsaykKPiAgCV9SRUdJU1RFUl9DTE9DSygiZnNsLXVzYjItdWRjIiwgInVzYl9h aGIiLCBhaGJfY2xrKQo+ICAJX1JFR0lTVEVSX0NMT0NLKCJpbXgta2V5cGFkLjAiLCBOVUxMLCBr cHBfY2xrKQo+ICsJX1JFR0lTVEVSX0NMT0NLKCJzcGlfaW14LjAiLCBOVUxMLCBjc3BpMV9jbGsp Cj4gKwlfUkVHSVNURVJfQ0xPQ0soInNwaV9pbXguMSIsIE5VTEwsIGNzcGkyX2NsaykKPiArCV9S RUdJU1RFUl9DTE9DSygic3BpX2lteC4yIiwgTlVMTCwgY3NwaTNfY2xrKQo+ICB9Owo+ICAKPiAg c3RhdGljIHZvaWQgY2xrX3RyZWVfaW5pdCh2b2lkKQo+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9t YWNoLW14NS9kZXZpY2VzLWlteDUxLmggYi9hcmNoL2FybS9tYWNoLW14NS9kZXZpY2VzLWlteDUx LmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjM5MDFmNTkKPiAtLS0g L2Rldi9udWxsCj4gKysrIGIvYXJjaC9hcm0vbWFjaC1teDUvZGV2aWNlcy1pbXg1MS5oCj4gQEAg LTAsMCArMSwxOCBAQAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUGVuZ3V0cm9uaXgK PiArICogVXdlIEtsZWluZS1Lb2VuaWcgPHUua2xlaW5lLWtvZW5pZ0BwZW5ndXRyb25peC5kZT4K PiArICoKPiArICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKPiArICogdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5IHRoZQo+ ICsgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCj4gKyAqLwo+ICsjaW5jbHVkZSA8bWFjaC9t eDUxLmg+Cj4gKyNpbmNsdWRlIDxtYWNoL2RldmljZXMtY29tbW9uLmg+Cj4gKwo+ICtleHRlcm4g Y29uc3Qgc3RydWN0IGlteF9zcGlfaW14X2RhdGEgaW14NTFfY3NwaV9pbXhfZGF0YSBfX2luaXRj b25zdDsKPiArI2RlZmluZSBpbXg1MV9hZGRfY3NwaV9pbXgocGRhdGEpCVwKPiArCWlteF9hZGRf c3BpX2lteCgmaW14NTFfY3NwaV9pbXhfZGF0YSwgcGRhdGEpCj4gKwo+ICtleHRlcm4gc3RydWN0 IGlteF9zcGlfaW14X2RhdGEgaW14NTFfZWNzcGlfaW14X2RhdGFbXSBfX2luaXRjb25zdDsKPiAr I2RlZmluZSBpbXg1MV9hZGRfZWNzcGlfaW14KGlkLCBwZGF0YSkJXAo+ICsJaW14X2FkZF9zcGlf aW14KCZpbXg1MV9lY3NwaV9pbXhfZGF0YVtpZF0sIHBkYXRhKQo+IGRpZmYgLS1naXQgYS9hcmNo L2FybS9wbGF0LW14Yy9kZXZpY2VzL3BsYXRmb3JtLXNwaV9pbXguYyBiL2FyY2gvYXJtL3BsYXQt bXhjL2RldmljZXMvcGxhdGZvcm0tc3BpX2lteC5jCj4gaW5kZXggN2I3YjAwNS4uMDc3ZjkzNiAx MDA2NDQKPiAtLS0gYS9hcmNoL2FybS9wbGF0LW14Yy9kZXZpY2VzL3BsYXRmb3JtLXNwaV9pbXgu Ywo+ICsrKyBiL2FyY2gvYXJtL3BsYXQtbXhjL2RldmljZXMvcGxhdGZvcm0tc3BpX2lteC5jCj4g QEAgLTY3LDYgKzY3LDIzIEBAIGNvbnN0IHN0cnVjdCBpbXhfc3BpX2lteF9kYXRhIGlteDM1X3Nw aV9pbXhfZGF0YVtdIF9faW5pdGNvbnN0ID0gewo+ICB9Owo+ICAjZW5kaWYgLyogaWZkZWYgQ09O RklHX0FSQ0hfTVgzNSAqLwo+ICAKPiArI2lmZGVmIENPTkZJR19BUkNIX01YNTEKPiArLyoKPiAr ICogdW50aWwgdGhlIGlteC1zcGkgc3VwcG9ydHMgcGxhdGZvcm0taWRzLCB0aGUgY3NwaSBkZXZp Y2UgaGFzIHRvIHVzZSBhCj4gKyAqIGRpZmZlcmVudCBpZCB0aGFuIHRoZSBlY3NwaSBkZXZpY2Vz IGFib3ZlLiAgVGhlIGRyaXZlciBjdXJyZW50bHkgaGFyZGNvZGVzIDIKPiArICogZm9yIHRoZSBj c3BpIGRldmljZS4KPiArICovCj4gK2NvbnN0IHN0cnVjdCBpbXhfc3BpX2lteF9kYXRhIGlteDUx X2NzcGlfaW14X2RhdGEgX19pbml0Y29uc3QgPQo+ICsJaW14X3NwaV9pbXhfZGF0YV9lbnRyeV9z aW5nbGUoTVg1MSwgQ1NQSSwgImlteDUxLWNzcGkiLCAyLCAsIFNaXzRLKTsKPiArCj4gK2NvbnN0 IHN0cnVjdCBpbXhfc3BpX2lteF9kYXRhIGlteDUxX2Vjc3BpX2lteF9kYXRhW10gX19pbml0Y29u c3QgPSB7Cj4gKyNkZWZpbmUgaW14NTFfZWNzcGlfaW14X2RhdGFfZW50cnkoX2lkLCBfaHdpZCkJ CQkJXAo+ICsJaW14X3NwaV9pbXhfZGF0YV9lbnRyeShNWDUxLCBFQ1NQSSwgImlteDUxLWVjc3Bp IiwgX2lkLCBfaHdpZCwgU1pfNEspCj4gKwlpbXg1MV9lY3NwaV9pbXhfZGF0YV9lbnRyeSgwLCAx KSwKPiArCWlteDUxX2Vjc3BpX2lteF9kYXRhX2VudHJ5KDEsIDIpLAo+ICt9Owo+ICsjZW5kaWYg LyogaWZkZWYgQ09ORklHX0FSQ0hfTVg1MSAqLwo+ICsKPiAgc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqX19pbml0IGlteF9hZGRfc3BpX2lteCgKPiAgCQljb25zdCBzdHJ1Y3QgaW14X3NwaV9pbXhf ZGF0YSAqZGF0YSwKPiAgCQljb25zdCBzdHJ1Y3Qgc3BpX2lteF9tYXN0ZXIgKnBkYXRhKQo+ICAg CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgU0YubmV0IERldjJEZXYgZW1haWwgaXMgc3Bv bnNvcmVkIGJ5OgoKU2hvdyBvZmYgeW91ciBwYXJhbGxlbCBwcm9ncmFtbWluZyBza2lsbHMuCkVu dGVyIHRoZSBJbnRlbChSKSBUaHJlYWRpbmcgQ2hhbGxlbmdlIDIwMTAuCmh0dHA6Ly9wLnNmLm5l dC9zZnUvaW50ZWwtdGhyZWFkLXNmZApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpzcGktZGV2ZWwtZ2VuZXJhbCBtYWlsaW5nIGxpc3QKc3BpLWRldmVsLWdl bmVyYWxAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0 L2xpc3RzL2xpc3RpbmZvL3NwaS1kZXZlbC1nZW5lcmFsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: jason77.wang@gmail.com (Jason Wang) Date: Fri, 03 Sep 2010 13:46:45 +0800 Subject: [PATCH 4/6] ARM: mx51: Add spi clock and spi_imx device registration In-Reply-To: <1283438523-19697-4-git-send-email-u.kleine-koenig@pengutronix.de> References: <20100902143908.GK14214@pengutronix.de> <1283438523-19697-4-git-send-email-u.kleine-koenig@pengutronix.de> Message-ID: <4C808BC5.2020002@gmail.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Uwe Kleine-K?nig wrote: > From: Sascha Hauer > > Signed-off-by: Sascha Hauer > Signed-off-by: Uwe Kleine-K?nig > --- > arch/arm/mach-mx5/clock-mx51.c | 42 ++++++++++++++++++++++++++ > arch/arm/mach-mx5/devices-imx51.h | 18 +++++++++++ > arch/arm/plat-mxc/devices/platform-spi_imx.c | 17 ++++++++++ > 3 files changed, 77 insertions(+), 0 deletions(-) > create mode 100644 arch/arm/mach-mx5/devices-imx51.h > > diff --git a/arch/arm/mach-mx5/clock-mx51.c b/arch/arm/mach-mx5/clock-mx51.c > index 6af69de..9ab4d17 100644 > --- a/arch/arm/mach-mx5/clock-mx51.c > +++ b/arch/arm/mach-mx5/clock-mx51.c > @@ -762,6 +762,29 @@ static struct clk kpp_clk = { > .id = 0, > }; > > +static unsigned long clk_cspi_get_rate(struct clk *clk) > +{ > + u32 reg, prediv, podf; > + unsigned long rate; > + > + reg = __raw_readl(MXC_CCM_CSCDR2); > + prediv = ((reg & MXC_CCM_CSCDR2_CSPI_CLK_PRED_MASK) >> > + MXC_CCM_CSCDR2_CSPI_CLK_PRED_OFFSET) + 1; > + if (prediv == 1) > + BUG(); > + podf = ((reg & MXC_CCM_CSCDR2_CSPI_CLK_PODF_MASK) >> > + MXC_CCM_CSCDR2_CSPI_CLK_PODF_OFFSET) + 1; > + > + rate = clk_get_rate(clk->parent) / (prediv * podf); > + > + return rate; > +} > + > +static struct clk cspi_main_clk = { > + .parent = &pll3_sw_clk, > + .get_rate = clk_cspi_get_rate, > +}; > + > #define DEFINE_CLOCK(name, i, er, es, gr, sr, p, s) \ > static struct clk name = { \ > .id = i, \ > @@ -810,6 +833,22 @@ DEFINE_CLOCK(i2c2_clk, 1, MXC_CCM_CCGR1, MXC_CCM_CCGRx_CG10_OFFSET, > DEFINE_CLOCK(hsi2c_clk, 0, MXC_CCM_CCGR1, MXC_CCM_CCGRx_CG11_OFFSET, > NULL, NULL, &ipg_clk, NULL); > > +/* SPI */ > +DEFINE_CLOCK(cspi1_ipg_clk, 0, MXC_CCM_CCGR4, MXC_CCM_CCGRx_CG9_OFFSET, > + NULL, NULL, &ipg_clk, &spba_clk); > +DEFINE_CLOCK(cspi1_clk, 0, MXC_CCM_CCGR4, MXC_CCM_CCGRx_CG10_OFFSET, > + NULL, NULL, &cspi_main_clk, &cspi1_ipg_clk); > + > +DEFINE_CLOCK(cspi2_ipg_clk, 0, MXC_CCM_CCGR4, MXC_CCM_CCGRx_CG11_OFFSET, > + NULL, NULL, &ipg_clk, &spba_clk); > +DEFINE_CLOCK(cspi2_clk, 0, MXC_CCM_CCGR4, MXC_CCM_CCGRx_CG12_OFFSET, > + NULL, NULL, &cspi_main_clk, &cspi2_ipg_clk); > + > +DEFINE_CLOCK(cspi3_ipg_clk, 0, MXC_CCM_CCGR4, MXC_CCM_CCGRx_CG9_OFFSET, > + NULL, NULL, &ipg_clk, &aips_tz2_clk); > +DEFINE_CLOCK(cspi3_clk, 0, MXC_CCM_CCGR4, MXC_CCM_CCGRx_CG13_OFFSET, > + NULL, NULL, &cspi_main_clk, &cspi3_ipg_clk); > + > Here, from "MCIMX51RM Rev. 0 11/2009, chapter 7", the CSPI's direct parent clock seems to be ipg_clk instead of cspi_main_clk. > /* FEC */ > DEFINE_CLOCK(fec_clk, 0, MXC_CCM_CCGR2, MXC_CCM_CCGRx_CG12_OFFSET, > NULL, NULL, &ipg_clk, NULL); > @@ -837,6 +876,9 @@ static struct clk_lookup lookups[] = { > _REGISTER_CLOCK("fsl-usb2-udc", "usb", usboh3_clk) > _REGISTER_CLOCK("fsl-usb2-udc", "usb_ahb", ahb_clk) > _REGISTER_CLOCK("imx-keypad.0", NULL, kpp_clk) > + _REGISTER_CLOCK("spi_imx.0", NULL, cspi1_clk) > + _REGISTER_CLOCK("spi_imx.1", NULL, cspi2_clk) > + _REGISTER_CLOCK("spi_imx.2", NULL, cspi3_clk) > }; > > static void clk_tree_init(void) > diff --git a/arch/arm/mach-mx5/devices-imx51.h b/arch/arm/mach-mx5/devices-imx51.h > new file mode 100644 > index 0000000..3901f59 > --- /dev/null > +++ b/arch/arm/mach-mx5/devices-imx51.h > @@ -0,0 +1,18 @@ > +/* > + * Copyright (C) 2010 Pengutronix > + * Uwe Kleine-Koenig > + * > + * This program is free software; you can redistribute it and/or modify it under > + * the terms of the GNU General Public License version 2 as published by the > + * Free Software Foundation. > + */ > +#include > +#include > + > +extern const struct imx_spi_imx_data imx51_cspi_imx_data __initconst; > +#define imx51_add_cspi_imx(pdata) \ > + imx_add_spi_imx(&imx51_cspi_imx_data, pdata) > + > +extern struct imx_spi_imx_data imx51_ecspi_imx_data[] __initconst; > +#define imx51_add_ecspi_imx(id, pdata) \ > + imx_add_spi_imx(&imx51_ecspi_imx_data[id], pdata) > diff --git a/arch/arm/plat-mxc/devices/platform-spi_imx.c b/arch/arm/plat-mxc/devices/platform-spi_imx.c > index 7b7b005..077f936 100644 > --- a/arch/arm/plat-mxc/devices/platform-spi_imx.c > +++ b/arch/arm/plat-mxc/devices/platform-spi_imx.c > @@ -67,6 +67,23 @@ const struct imx_spi_imx_data imx35_spi_imx_data[] __initconst = { > }; > #endif /* ifdef CONFIG_ARCH_MX35 */ > > +#ifdef CONFIG_ARCH_MX51 > +/* > + * until the imx-spi supports platform-ids, the cspi device has to use a > + * different id than the ecspi devices above. The driver currently hardcodes 2 > + * for the cspi device. > + */ > +const struct imx_spi_imx_data imx51_cspi_imx_data __initconst = > + imx_spi_imx_data_entry_single(MX51, CSPI, "imx51-cspi", 2, , SZ_4K); > + > +const struct imx_spi_imx_data imx51_ecspi_imx_data[] __initconst = { > +#define imx51_ecspi_imx_data_entry(_id, _hwid) \ > + imx_spi_imx_data_entry(MX51, ECSPI, "imx51-ecspi", _id, _hwid, SZ_4K) > + imx51_ecspi_imx_data_entry(0, 1), > + imx51_ecspi_imx_data_entry(1, 2), > +}; > +#endif /* ifdef CONFIG_ARCH_MX51 */ > + > struct platform_device *__init imx_add_spi_imx( > const struct imx_spi_imx_data *data, > const struct spi_imx_master *pdata) >