From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E733ACA9EAC for ; Sat, 19 Oct 2019 09:45:13 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9852D2082F for ; Sat, 19 Oct 2019 09:45:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="pK17AdyP" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9852D2082F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bootlin.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=KvUNL7PWfY+jDusmCs6WIOjSyrTaY9pj97TzVS6Aw10=; b=pK17AdyPPxO2+U Naz1jASKS/HPLTezd8Jjb0gGcIB8TywkmfhIUOZaf5zj7tWEJskg6tkava8JtHBwObcqsvMHcqEY2 0Z2iTZh2f+dNNKf6p0hUehAyfd6mwNgzBM7A2hfVaGeyRRybS7x86Np5gwwU9tLme2/7lz79itRIc 3aI9doGDd+sLuL53Xk6yHeIKZIXr1fpEuTAqTXyE1NzmBlddobi+avZpTbm8W16TqPcuc/lsDVh3Q hXcIvM0y1+kDdt3WWCuNMAkEvZvaOLm5tpkMqmnl4Y+LkQL81zpw1pxpjaUVZ/7ekM9zwqR49jEUd gxG67RoIRhgb80gkvkFg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iLlIN-0006IK-7n; Sat, 19 Oct 2019 09:45:11 +0000 Received: from relay4-d.mail.gandi.net ([217.70.183.196]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iLlI1-0005Jb-Mw; Sat, 19 Oct 2019 09:44:51 +0000 X-Originating-IP: 91.224.148.103 Received: from xps13 (unknown [91.224.148.103]) (Authenticated sender: miquel.raynal@bootlin.com) by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 4C90DE0009; Sat, 19 Oct 2019 09:44:36 +0000 (UTC) Date: Sat, 19 Oct 2019 11:44:34 +0200 From: Miquel Raynal To: Arnd Bergmann Subject: Re: [PATCH 11/46] ARM: pxa: cmx270: use platform device for nand Message-ID: <20191019114417.5268f7e4@xps13> In-Reply-To: <20191018154201.1276638-11-arnd@arndb.de> References: <20191018154052.1276506-1-arnd@arndb.de> <20191018154201.1276638-11-arnd@arndb.de> Organization: Bootlin X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191019_024450_023547_621F09E2 X-CRM114-Status: GOOD ( 23.93 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vignesh Raghavendra , Richard Weinberger , Linus Walleij , linux-kernel@vger.kernel.org, Haojian Zhuang , Marek Vasut , linux-mtd@lists.infradead.org, Daniel Mack , Brian Norris , Robert Jarzmik , David Woodhouse , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org SGkgQXJuZCwKCkFybmQgQmVyZ21hbm4gPGFybmRAYXJuZGIuZGU+IHdyb3RlIG9uIEZyaSwgMTgg T2N0IDIwMTkgMTc6NDE6MjYgKzAyMDA6Cgo+IFRoZSBkcml2ZXIgdHJhZGl0aW9uYWxseSBoYXJk Y29kZXMgdGhlIE1NSU8gcmVnaXN0ZXIgYWRkcmVzcyBhbmQKPiB0aGUgR1BJTyBudW1iZXJzIGZy b20gZGF0YSBkZWZpbmVkIGluIHBsYXRmb3JtIGhlYWRlciBmaWxlcy4KPiAKPiBUbyBtYWtlIGl0 IGluZGVwZGVuZGVudCBvZiB0aGF0LCB1c2UgYSBtZW1vcnkgcmVzb3VyY2UgZm9yIHRoZQo+IHJl Z2lzdGVycywgYW5kIGEgZ3BpbyBsb29rdXAgdGFibGUgdG8gcmVwbGFjZSB0aGUgZ3BpbyBudW1i ZXJzLgoKTG9va3MgZ29vZCB0byBtZSBiZXNpZGVzIHRoZSB0eXBvIHMvaW5kZXBkZW5kZW50L2lu ZGVwZW5kZW50Ly4KCkFja2VkLWJ5OiBNaXF1ZWwgUmF5bmFsIDxtaXF1ZWwucmF5bmFsQGJvb3Rs aW4uY29tPgoKPiAKPiBDYzogTWlxdWVsIFJheW5hbCA8bWlxdWVsLnJheW5hbEBib290bGluLmNv bT4KPiBDYzogUmljaGFyZCBXZWluYmVyZ2VyIDxyaWNoYXJkQG5vZC5hdD4KPiBDYzogRGF2aWQg V29vZGhvdXNlIDxkd213MkBpbmZyYWRlYWQub3JnPgo+IENjOiBCcmlhbiBOb3JyaXMgPGNvbXB1 dGVyc2ZvcnBlYWNlQGdtYWlsLmNvbT4KPiBDYzogTWFyZWsgVmFzdXQgPG1hcmVrLnZhc3V0QGdt YWlsLmNvbT4KPiBDYzogVmlnbmVzaCBSYWdoYXZlbmRyYSA8dmlnbmVzaHJAdGkuY29tPgo+IENj OiBsaW51eC1tdGRAbGlzdHMuaW5mcmFkZWFkLm9yZwo+IFNpZ25lZC1vZmYtYnk6IEFybmQgQmVy Z21hbm4gPGFybmRAYXJuZGIuZGU+Cj4gLS0tCj4gIGFyY2gvYXJtL21hY2gtcHhhL2NtLXgyNzAu YyAgICAgICAgfCAyNSArKysrKysrKysKPiAgZHJpdmVycy9tdGQvbmFuZC9yYXcvY214MjcwX25h bmQuYyB8IDg4ICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAyIGZpbGVzIGNoYW5n ZWQsIDU2IGluc2VydGlvbnMoKyksIDU3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9h cmNoL2FybS9tYWNoLXB4YS9jbS14MjcwLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9jbS14MjcwLmMK PiBpbmRleCA5YmFhZDExMzE0ZjIuLjZkODA0MDBkODg4NyAxMDA2NDQKPiAtLS0gYS9hcmNoL2Fy bS9tYWNoLXB4YS9jbS14MjcwLmMKPiArKysgYi9hcmNoL2FybS9tYWNoLXB4YS9jbS14MjcwLmMK PiBAQCAtNDAsNiArNDAsMTAgQEAKPiAgI2RlZmluZSBHUElPMTlfV0xBTl9TVFJBUAkoMTkpCj4g ICNkZWZpbmUgR1BJTzEwMl9XTEFOX1JTVAkoMTAyKQo+ICAKPiArLyogTkFORCBHUElPUyAqLwo+ ICsjZGVmaW5lIEdQSU9fTkFORF9DUwkJKDExKQo+ICsjZGVmaW5lIEdQSU9fTkFORF9SQgkJKDg5 KQo+ICsKPiAgc3RhdGljIHVuc2lnbmVkIGxvbmcgY214MjcwX3Bpbl9jb25maWdbXSA9IHsKPiAg CS8qIEFDJzk3ICovCj4gIAlHUElPMjhfQUM5N19CSVRDTEssCj4gQEAgLTQwMyw2ICs0MDcsMjYg QEAgc3RhdGljIHZvaWQgX19pbml0IGNteDI3MF9pbml0X3NwaSh2b2lkKQo+ICBzdGF0aWMgaW5s aW5lIHZvaWQgY214MjcwX2luaXRfc3BpKHZvaWQpIHt9Cj4gICNlbmRpZgo+ICAKPiArc3RhdGlj IHN0cnVjdCBncGlvZF9sb29rdXBfdGFibGUgY214MjcwX25hbmRfZ3Bpb190YWJsZSA9IHsKPiAr CS5kZXZfaWQgPSAiY214MjcwLW5hbmQiLAo+ICsJLnRhYmxlID0gewo+ICsJCUdQSU9fTE9PS1VQ KCJncGlvLXB4YSIsIEdQSU9fTkFORF9DUywgImNzIiwgR1BJT19BQ1RJVkVfSElHSCksCj4gKwkJ R1BJT19MT09LVVAoImdwaW8tcHhhIiwgR1BJT19OQU5EX1JCLCAicmIiLCBHUElPX0FDVElWRV9I SUdIKSwKPiArCQl7IH0sCj4gKwl9LAo+ICt9Owo+ICsKPiArc3RhdGljIHN0cnVjdCByZXNvdXJj ZSBjbXgyNzBfbmFuZF9yZXNvdXJjZXNbXSBfX2luaXRkYXRhID0gewo+ICsJREVGSU5FX1JFU19N RU0oUFhBX0NTMV9QSFlTLCAxMiksCj4gK307Cj4gKwo+ICtzdGF0aWMgdm9pZCBfX2luaXQgY214 MjcwX2luaXRfbmFuZCh2b2lkKQo+ICt7Cj4gKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfc2lt cGxlKCJjbXgyNzAtbmFuZCIsIC0xLAo+ICsJCQkJCWNteDI3MF9uYW5kX3Jlc291cmNlcywgMSk7 Cj4gKwlncGlvZF9hZGRfbG9va3VwX3RhYmxlKCZjbXgyNzBfbmFuZF9ncGlvX3RhYmxlKTsKPiAr fQo+ICsKPiAgdm9pZCBfX2luaXQgY214MjcwX2luaXQodm9pZCkKPiAgewo+ICAJcHhhMnh4X21m cF9jb25maWcoQVJSQVlfQU5EX1NJWkUoY214MjcwX3Bpbl9jb25maWcpKTsKPiBAQCAtNDE2LDQg KzQ0MCw1IEBAIHZvaWQgX19pbml0IGNteDI3MF9pbml0KHZvaWQpCj4gIAljbXgyNzBfaW5pdF9v aGNpKCk7Cj4gIAljbXgyNzBfaW5pdF8yNzAwRygpOwo+ICAJY214MjcwX2luaXRfc3BpKCk7Cj4g KwljbXgyNzBfaW5pdF9uYW5kKCk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFu ZC9yYXcvY214MjcwX25hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L2NteDI3MF9uYW5kLmMK PiBpbmRleCA3YWYzZDBiZGNkYjguLjMxY2IyMDg1OGM0NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L210ZC9uYW5kL3Jhdy9jbXgyNzBfbmFuZC5jCj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcv Y214MjcwX25hbmQuYwo+IEBAIC0xNSwxOCArMTUsMTcgQEAKPiAgI2luY2x1ZGUgPGxpbnV4L210 ZC9yYXduYW5kLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9tdGQvcGFydGl0aW9ucy5oPgo+ICAjaW5j bHVkZSA8bGludXgvc2xhYi5oPgo+IC0jaW5jbHVkZSA8bGludXgvZ3Bpby5oPgo+ICsjaW5jbHVk ZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgo+ICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4g ICNpbmNsdWRlIDxsaW51eC9zb2MvcHhhL2NwdS5oPgo+ICsjaW5jbHVkZSA8bGludXgvcGxhdGZv cm1fZGV2aWNlLmg+Cj4gIAo+ICAjaW5jbHVkZSA8YXNtL2lvLmg+Cj4gICNpbmNsdWRlIDxhc20v aXJxLmg+Cj4gICNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgo+ICAKPiAtI2luY2x1ZGUgPG1h Y2gvYWRkci1tYXAuaD4KPiAtCj4gLSNkZWZpbmUgR1BJT19OQU5EX0NTCSgxMSkKPiAtI2RlZmlu ZSBHUElPX05BTkRfUkIJKDg5KQo+ICtzdGF0aWMgc3RydWN0IGdwaW9fZGVzYyAqZ3Bpb2RfbmFu ZF9jczsKPiArc3RhdGljIHN0cnVjdCBncGlvX2Rlc2MgKmdwaW9kX25hbmRfcmI7Cj4gIAo+ICAv KiBNVEQgc3RydWN0dXJlIGZvciBDTS1YMjcwIGJvYXJkICovCj4gIHN0YXRpYyBzdHJ1Y3QgbXRk X2luZm8gKmNteDI3MF9uYW5kX210ZDsKPiBAQCAtNzAsMTQgKzY5LDE0IEBAIHN0YXRpYyB2b2lk IGNteDI3MF9yZWFkX2J1ZihzdHJ1Y3QgbmFuZF9jaGlwICp0aGlzLCB1X2NoYXIgKmJ1ZiwgaW50 IGxlbikKPiAgCj4gIHN0YXRpYyBpbmxpbmUgdm9pZCBuYW5kX2NzX29uKHZvaWQpCj4gIHsKPiAt CWdwaW9fc2V0X3ZhbHVlKEdQSU9fTkFORF9DUywgMCk7Cj4gKwlncGlvZF9zZXRfdmFsdWUoZ3Bp b2RfbmFuZF9jcywgMCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIG5hbmRfY3Nfb2ZmKHZvaWQp Cj4gIHsKPiAgCWRzYigpOwo+ICAKPiAtCWdwaW9fc2V0X3ZhbHVlKEdQSU9fTkFORF9DUywgMSk7 Cj4gKwlncGlvZF9zZXRfdmFsdWUoZ3Bpb2RfbmFuZF9jcywgMSk7Cj4gIH0KPiAgCj4gIC8qCj4g QEAgLTEyMCw0OCArMTE5LDQxIEBAIHN0YXRpYyBpbnQgY214MjcwX2RldmljZV9yZWFkeShzdHJ1 Y3QgbmFuZF9jaGlwICp0aGlzKQo+ICB7Cj4gIAlkc2IoKTsKPiAgCj4gLQlyZXR1cm4gKGdwaW9f Z2V0X3ZhbHVlKEdQSU9fTkFORF9SQikpOwo+ICsJcmV0dXJuIChncGlvZF9nZXRfdmFsdWUoZ3Bp b2RfbmFuZF9yYikpOwo+ICB9Cj4gIAo+ICAvKgo+ICAgKiBNYWluIGluaXRpYWxpemF0aW9uIHJv dXRpbmUKPiAgICovCj4gLXN0YXRpYyBpbnQgX19pbml0IGNteDI3MF9pbml0KHZvaWQpCj4gK3N0 YXRpYyBpbnQgY214MjcwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIHsK PiAgCXN0cnVjdCBuYW5kX2NoaXAgKnRoaXM7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRl di0+ZGV2Owo+ICAJaW50IHJldDsKPiAgCj4gLQlpZiAoIShtYWNoaW5lX2lzX2FybWNvcmUoKSAm JiBjcHVfaXNfcHhhMjd4KCkpKQo+IC0JCXJldHVybiAtRU5PREVWOwo+IC0KPiAtCXJldCA9IGdw aW9fcmVxdWVzdChHUElPX05BTkRfQ1MsICJOQU5EIENTIik7Cj4gKwlncGlvZF9uYW5kX2NzID0g ZGV2bV9ncGlvZF9nZXQoZGV2LCAiY3MiLCBHUElPRF9PVVRfSElHSCk7Cj4gKwlyZXQgPSBQVFJf RVJSX09SX1pFUk8oZ3Bpb2RfbmFuZF9jcyk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJcHJfd2Fybigi Q00tWDI3MDogZmFpbGVkIHRvIHJlcXVlc3QgTkFORCBDUyBncGlvXG4iKTsKPiAgCQlyZXR1cm4g cmV0Owo+ICAJfQo+ICAKPiAtCWdwaW9fZGlyZWN0aW9uX291dHB1dChHUElPX05BTkRfQ1MsIDEp Owo+IC0KPiAtCXJldCA9IGdwaW9fcmVxdWVzdChHUElPX05BTkRfUkIsICJOQU5EIFIvQiIpOwo+ ICsJZ3Bpb2RfbmFuZF9yYiA9IGRldm1fZ3Bpb2RfZ2V0KGRldiwgInJiIiwgR1BJT0RfSU4pOwo+ ICsJcmV0ID0gUFRSX0VSUl9PUl9aRVJPKGdwaW9kX25hbmRfcmIpOwo+ICAJaWYgKHJldCkgewo+ ICAJCXByX3dhcm4oIkNNLVgyNzA6IGZhaWxlZCB0byByZXF1ZXN0IE5BTkQgUi9CIGdwaW9cbiIp Owo+IC0JCWdvdG8gZXJyX2dwaW9fcmVxdWVzdDsKPiArCQlyZXR1cm4gcmV0Owo+ICAJfQo+ICAK PiAtCWdwaW9fZGlyZWN0aW9uX2lucHV0KEdQSU9fTkFORF9SQik7Cj4gLQo+ICAJLyogQWxsb2Nh dGUgbWVtb3J5IGZvciBNVEQgZGV2aWNlIHN0cnVjdHVyZSBhbmQgcHJpdmF0ZSBkYXRhICovCj4g LQl0aGlzID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG5hbmRfY2hpcCksIEdGUF9LRVJORUwpOwo+ IC0JaWYgKCF0aGlzKSB7Cj4gLQkJcmV0ID0gLUVOT01FTTsKPiAtCQlnb3RvIGVycl9remFsbG9j Owo+IC0JfQo+ICsJdGhpcyA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZihzdHJ1Y3QgbmFuZF9j aGlwKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIXRoaXMpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4g IAo+IC0JY214MjcwX25hbmRfaW8gPSBpb3JlbWFwKFBYQV9DUzFfUEhZUywgMTIpOwo+ICsJY214 MjcwX25hbmRfaW8gPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7Cj4g IAlpZiAoIWNteDI3MF9uYW5kX2lvKSB7Cj4gIAkJcHJfZGVidWcoIlVuYWJsZSB0byBpb3JlbWFw IE5BTkQgZGV2aWNlXG4iKTsKPiAtCQlyZXQgPSAtRUlOVkFMOwo+IC0JCWdvdG8gZXJyX2lvcmVt YXA7Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+ICAJY214MjcwX25hbmRfbXRkID0g bmFuZF90b19tdGQodGhpcyk7Cj4gQEAgLTE4OSw0OCArMTgxLDMwIEBAIHN0YXRpYyBpbnQgX19p bml0IGNteDI3MF9pbml0KHZvaWQpCj4gIAlyZXQgPSBuYW5kX3NjYW4odGhpcywgMSk7Cj4gIAlp ZiAocmV0KSB7Cj4gIAkJcHJfbm90aWNlKCJObyBOQU5EIGRldmljZVxuIik7Cj4gLQkJZ290byBl cnJfc2NhbjsKPiArCQlyZXR1cm4gcmV0Owo+ICAJfQo+ICAKPiAgCS8qIFJlZ2lzdGVyIHRoZSBw YXJ0aXRpb25zICovCj4gLQlyZXQgPSBtdGRfZGV2aWNlX3JlZ2lzdGVyKGNteDI3MF9uYW5kX210 ZCwgcGFydGl0aW9uX2luZm8sCj4gLQkJCQkgIE5VTV9QQVJUSVRJT05TKTsKPiAtCWlmIChyZXQp Cj4gLQkJZ290byBlcnJfc2NhbjsKPiAtCj4gLQkvKiBSZXR1cm4gaGFwcHkgKi8KPiAtCXJldHVy biAwOwo+IC0KPiAtZXJyX3NjYW46Cj4gLQlpb3VubWFwKGNteDI3MF9uYW5kX2lvKTsKPiAtZXJy X2lvcmVtYXA6Cj4gLQlrZnJlZSh0aGlzKTsKPiAtZXJyX2t6YWxsb2M6Cj4gLQlncGlvX2ZyZWUo R1BJT19OQU5EX1JCKTsKPiAtZXJyX2dwaW9fcmVxdWVzdDoKPiAtCWdwaW9fZnJlZShHUElPX05B TkRfQ1MpOwo+IC0KPiAtCXJldHVybiByZXQ7Cj4gLQo+ICsJcmV0dXJuIG10ZF9kZXZpY2VfcmVn aXN0ZXIoY214MjcwX25hbmRfbXRkLCBwYXJ0aXRpb25faW5mbywKPiArCQkJCSAgIE5VTV9QQVJU SVRJT05TKTsKPiAgfQo+IC1tb2R1bGVfaW5pdChjbXgyNzBfaW5pdCk7Cj4gIAo+ICAvKgo+ICAg KiBDbGVhbiB1cCByb3V0aW5lCj4gICAqLwo+IC1zdGF0aWMgdm9pZCBfX2V4aXQgY214MjcwX2Ns ZWFudXAodm9pZCkKPiArc3RhdGljIGludCBjbXgyNzBfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCj4gIHsKPiAtCS8qIFJlbGVhc2UgcmVzb3VyY2VzLCB1bnJlZ2lzdGVyIGRl dmljZSAqLwo+ICAJbmFuZF9yZWxlYXNlKG10ZF90b19uYW5kKGNteDI3MF9uYW5kX210ZCkpOwo+ ICAKPiAtCWdwaW9fZnJlZShHUElPX05BTkRfUkIpOwo+IC0JZ3Bpb19mcmVlKEdQSU9fTkFORF9D Uyk7Cj4gLQo+IC0JaW91bm1hcChjbXgyNzBfbmFuZF9pbyk7Cj4gLQo+IC0Ja2ZyZWUobXRkX3Rv X25hbmQoY214MjcwX25hbmRfbXRkKSk7Cj4gKwlyZXR1cm4gMDsKPiAgfQo+IC1tb2R1bGVfZXhp dChjbXgyNzBfY2xlYW51cCk7Cj4gKwo+ICtzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBj bXgyNzBfbmFuZF9kcml2ZXIgPSB7Cj4gKwkuZHJpdmVyLm5hbWUgPSAiY214MjcwLW5hbmQiLAo+ ICsJLnByb2JlID0gY214MjcwX3Byb2JlLAo+ICsJLnJlbW92ZSA9IGNteDI3MF9yZW1vdmUsCj4g K307Cj4gK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoY214MjcwX25hbmRfZHJpdmVyKTsKPiAgCj4g IE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKPiAgTU9EVUxFX0FVVEhPUigiTWlrZSBSYXBvcG9ydCA8 bWlrZUBjb21wdWxhYi5jby5pbD4iKTsKCgoKClRoYW5rcywKTWlxdcOobAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4IE1URCBkaXNj dXNzaW9uIG1haWxpbmcgbGlzdApodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LW10ZC8K From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EE9F5CA9EAC for ; Sat, 19 Oct 2019 09:44:59 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BFFC42082F for ; Sat, 19 Oct 2019 09:44:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="L3zImi8F" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BFFC42082F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bootlin.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=OWdDprIHjnCpdiEAIDcyFm4TuS8aglLQprhVw3p2HLk=; b=L3zImi8FG0+16o TDSarcSfjf1fGQk/Z9l6c83/6WzioT4n71cCQofsXT5gpgLtGdZEwumd9sy7N3nq05R8yV5KecCug l1aLXQ6ql1xyEtYtlzYjn9QB/pBAQqFvAuZ+lBXVjDm6hpwTvWWa0/Tdr7eAPY+neBkPeidiXKUSV dSmOuk4mPYFuRWOOJ7dOG6mqVNpB7fjwEkDKeZS8/rYbph4RYvmDBsr1zk5cV1lh1j1P/UMZV9IOs 0AQtFN2xRVCsY7DRfd1N4dufe1xqCbXHU1M3iWzKrQi5ud2AdR63WfXi0zQYLJVFTqXvXxqWn/0bo w2OfN/EL6QlFFBzAtMhQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iLlI5-0005K8-NE; Sat, 19 Oct 2019 09:44:53 +0000 Received: from relay4-d.mail.gandi.net ([217.70.183.196]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iLlI1-0005Jb-Mw; Sat, 19 Oct 2019 09:44:51 +0000 X-Originating-IP: 91.224.148.103 Received: from xps13 (unknown [91.224.148.103]) (Authenticated sender: miquel.raynal@bootlin.com) by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 4C90DE0009; Sat, 19 Oct 2019 09:44:36 +0000 (UTC) Date: Sat, 19 Oct 2019 11:44:34 +0200 From: Miquel Raynal To: Arnd Bergmann Subject: Re: [PATCH 11/46] ARM: pxa: cmx270: use platform device for nand Message-ID: <20191019114417.5268f7e4@xps13> In-Reply-To: <20191018154201.1276638-11-arnd@arndb.de> References: <20191018154052.1276506-1-arnd@arndb.de> <20191018154201.1276638-11-arnd@arndb.de> Organization: Bootlin X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191019_024450_023547_621F09E2 X-CRM114-Status: GOOD ( 23.93 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vignesh Raghavendra , Richard Weinberger , Linus Walleij , linux-kernel@vger.kernel.org, Haojian Zhuang , Marek Vasut , linux-mtd@lists.infradead.org, Daniel Mack , Brian Norris , Robert Jarzmik , David Woodhouse , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgQXJuZCwKCkFybmQgQmVyZ21hbm4gPGFybmRAYXJuZGIuZGU+IHdyb3RlIG9uIEZyaSwgMTgg T2N0IDIwMTkgMTc6NDE6MjYgKzAyMDA6Cgo+IFRoZSBkcml2ZXIgdHJhZGl0aW9uYWxseSBoYXJk Y29kZXMgdGhlIE1NSU8gcmVnaXN0ZXIgYWRkcmVzcyBhbmQKPiB0aGUgR1BJTyBudW1iZXJzIGZy b20gZGF0YSBkZWZpbmVkIGluIHBsYXRmb3JtIGhlYWRlciBmaWxlcy4KPiAKPiBUbyBtYWtlIGl0 IGluZGVwZGVuZGVudCBvZiB0aGF0LCB1c2UgYSBtZW1vcnkgcmVzb3VyY2UgZm9yIHRoZQo+IHJl Z2lzdGVycywgYW5kIGEgZ3BpbyBsb29rdXAgdGFibGUgdG8gcmVwbGFjZSB0aGUgZ3BpbyBudW1i ZXJzLgoKTG9va3MgZ29vZCB0byBtZSBiZXNpZGVzIHRoZSB0eXBvIHMvaW5kZXBkZW5kZW50L2lu ZGVwZW5kZW50Ly4KCkFja2VkLWJ5OiBNaXF1ZWwgUmF5bmFsIDxtaXF1ZWwucmF5bmFsQGJvb3Rs aW4uY29tPgoKPiAKPiBDYzogTWlxdWVsIFJheW5hbCA8bWlxdWVsLnJheW5hbEBib290bGluLmNv bT4KPiBDYzogUmljaGFyZCBXZWluYmVyZ2VyIDxyaWNoYXJkQG5vZC5hdD4KPiBDYzogRGF2aWQg V29vZGhvdXNlIDxkd213MkBpbmZyYWRlYWQub3JnPgo+IENjOiBCcmlhbiBOb3JyaXMgPGNvbXB1 dGVyc2ZvcnBlYWNlQGdtYWlsLmNvbT4KPiBDYzogTWFyZWsgVmFzdXQgPG1hcmVrLnZhc3V0QGdt YWlsLmNvbT4KPiBDYzogVmlnbmVzaCBSYWdoYXZlbmRyYSA8dmlnbmVzaHJAdGkuY29tPgo+IENj OiBsaW51eC1tdGRAbGlzdHMuaW5mcmFkZWFkLm9yZwo+IFNpZ25lZC1vZmYtYnk6IEFybmQgQmVy Z21hbm4gPGFybmRAYXJuZGIuZGU+Cj4gLS0tCj4gIGFyY2gvYXJtL21hY2gtcHhhL2NtLXgyNzAu YyAgICAgICAgfCAyNSArKysrKysrKysKPiAgZHJpdmVycy9tdGQvbmFuZC9yYXcvY214MjcwX25h bmQuYyB8IDg4ICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAyIGZpbGVzIGNoYW5n ZWQsIDU2IGluc2VydGlvbnMoKyksIDU3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9h cmNoL2FybS9tYWNoLXB4YS9jbS14MjcwLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9jbS14MjcwLmMK PiBpbmRleCA5YmFhZDExMzE0ZjIuLjZkODA0MDBkODg4NyAxMDA2NDQKPiAtLS0gYS9hcmNoL2Fy bS9tYWNoLXB4YS9jbS14MjcwLmMKPiArKysgYi9hcmNoL2FybS9tYWNoLXB4YS9jbS14MjcwLmMK PiBAQCAtNDAsNiArNDAsMTAgQEAKPiAgI2RlZmluZSBHUElPMTlfV0xBTl9TVFJBUAkoMTkpCj4g ICNkZWZpbmUgR1BJTzEwMl9XTEFOX1JTVAkoMTAyKQo+ICAKPiArLyogTkFORCBHUElPUyAqLwo+ ICsjZGVmaW5lIEdQSU9fTkFORF9DUwkJKDExKQo+ICsjZGVmaW5lIEdQSU9fTkFORF9SQgkJKDg5 KQo+ICsKPiAgc3RhdGljIHVuc2lnbmVkIGxvbmcgY214MjcwX3Bpbl9jb25maWdbXSA9IHsKPiAg CS8qIEFDJzk3ICovCj4gIAlHUElPMjhfQUM5N19CSVRDTEssCj4gQEAgLTQwMyw2ICs0MDcsMjYg QEAgc3RhdGljIHZvaWQgX19pbml0IGNteDI3MF9pbml0X3NwaSh2b2lkKQo+ICBzdGF0aWMgaW5s aW5lIHZvaWQgY214MjcwX2luaXRfc3BpKHZvaWQpIHt9Cj4gICNlbmRpZgo+ICAKPiArc3RhdGlj IHN0cnVjdCBncGlvZF9sb29rdXBfdGFibGUgY214MjcwX25hbmRfZ3Bpb190YWJsZSA9IHsKPiAr CS5kZXZfaWQgPSAiY214MjcwLW5hbmQiLAo+ICsJLnRhYmxlID0gewo+ICsJCUdQSU9fTE9PS1VQ KCJncGlvLXB4YSIsIEdQSU9fTkFORF9DUywgImNzIiwgR1BJT19BQ1RJVkVfSElHSCksCj4gKwkJ R1BJT19MT09LVVAoImdwaW8tcHhhIiwgR1BJT19OQU5EX1JCLCAicmIiLCBHUElPX0FDVElWRV9I SUdIKSwKPiArCQl7IH0sCj4gKwl9LAo+ICt9Owo+ICsKPiArc3RhdGljIHN0cnVjdCByZXNvdXJj ZSBjbXgyNzBfbmFuZF9yZXNvdXJjZXNbXSBfX2luaXRkYXRhID0gewo+ICsJREVGSU5FX1JFU19N RU0oUFhBX0NTMV9QSFlTLCAxMiksCj4gK307Cj4gKwo+ICtzdGF0aWMgdm9pZCBfX2luaXQgY214 MjcwX2luaXRfbmFuZCh2b2lkKQo+ICt7Cj4gKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfc2lt cGxlKCJjbXgyNzAtbmFuZCIsIC0xLAo+ICsJCQkJCWNteDI3MF9uYW5kX3Jlc291cmNlcywgMSk7 Cj4gKwlncGlvZF9hZGRfbG9va3VwX3RhYmxlKCZjbXgyNzBfbmFuZF9ncGlvX3RhYmxlKTsKPiAr fQo+ICsKPiAgdm9pZCBfX2luaXQgY214MjcwX2luaXQodm9pZCkKPiAgewo+ICAJcHhhMnh4X21m cF9jb25maWcoQVJSQVlfQU5EX1NJWkUoY214MjcwX3Bpbl9jb25maWcpKTsKPiBAQCAtNDE2LDQg KzQ0MCw1IEBAIHZvaWQgX19pbml0IGNteDI3MF9pbml0KHZvaWQpCj4gIAljbXgyNzBfaW5pdF9v aGNpKCk7Cj4gIAljbXgyNzBfaW5pdF8yNzAwRygpOwo+ICAJY214MjcwX2luaXRfc3BpKCk7Cj4g KwljbXgyNzBfaW5pdF9uYW5kKCk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFu ZC9yYXcvY214MjcwX25hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L2NteDI3MF9uYW5kLmMK PiBpbmRleCA3YWYzZDBiZGNkYjguLjMxY2IyMDg1OGM0NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L210ZC9uYW5kL3Jhdy9jbXgyNzBfbmFuZC5jCj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcv Y214MjcwX25hbmQuYwo+IEBAIC0xNSwxOCArMTUsMTcgQEAKPiAgI2luY2x1ZGUgPGxpbnV4L210 ZC9yYXduYW5kLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9tdGQvcGFydGl0aW9ucy5oPgo+ICAjaW5j bHVkZSA8bGludXgvc2xhYi5oPgo+IC0jaW5jbHVkZSA8bGludXgvZ3Bpby5oPgo+ICsjaW5jbHVk ZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgo+ICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4g ICNpbmNsdWRlIDxsaW51eC9zb2MvcHhhL2NwdS5oPgo+ICsjaW5jbHVkZSA8bGludXgvcGxhdGZv cm1fZGV2aWNlLmg+Cj4gIAo+ICAjaW5jbHVkZSA8YXNtL2lvLmg+Cj4gICNpbmNsdWRlIDxhc20v aXJxLmg+Cj4gICNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgo+ICAKPiAtI2luY2x1ZGUgPG1h Y2gvYWRkci1tYXAuaD4KPiAtCj4gLSNkZWZpbmUgR1BJT19OQU5EX0NTCSgxMSkKPiAtI2RlZmlu ZSBHUElPX05BTkRfUkIJKDg5KQo+ICtzdGF0aWMgc3RydWN0IGdwaW9fZGVzYyAqZ3Bpb2RfbmFu ZF9jczsKPiArc3RhdGljIHN0cnVjdCBncGlvX2Rlc2MgKmdwaW9kX25hbmRfcmI7Cj4gIAo+ICAv KiBNVEQgc3RydWN0dXJlIGZvciBDTS1YMjcwIGJvYXJkICovCj4gIHN0YXRpYyBzdHJ1Y3QgbXRk X2luZm8gKmNteDI3MF9uYW5kX210ZDsKPiBAQCAtNzAsMTQgKzY5LDE0IEBAIHN0YXRpYyB2b2lk IGNteDI3MF9yZWFkX2J1ZihzdHJ1Y3QgbmFuZF9jaGlwICp0aGlzLCB1X2NoYXIgKmJ1ZiwgaW50 IGxlbikKPiAgCj4gIHN0YXRpYyBpbmxpbmUgdm9pZCBuYW5kX2NzX29uKHZvaWQpCj4gIHsKPiAt CWdwaW9fc2V0X3ZhbHVlKEdQSU9fTkFORF9DUywgMCk7Cj4gKwlncGlvZF9zZXRfdmFsdWUoZ3Bp b2RfbmFuZF9jcywgMCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIG5hbmRfY3Nfb2ZmKHZvaWQp Cj4gIHsKPiAgCWRzYigpOwo+ICAKPiAtCWdwaW9fc2V0X3ZhbHVlKEdQSU9fTkFORF9DUywgMSk7 Cj4gKwlncGlvZF9zZXRfdmFsdWUoZ3Bpb2RfbmFuZF9jcywgMSk7Cj4gIH0KPiAgCj4gIC8qCj4g QEAgLTEyMCw0OCArMTE5LDQxIEBAIHN0YXRpYyBpbnQgY214MjcwX2RldmljZV9yZWFkeShzdHJ1 Y3QgbmFuZF9jaGlwICp0aGlzKQo+ICB7Cj4gIAlkc2IoKTsKPiAgCj4gLQlyZXR1cm4gKGdwaW9f Z2V0X3ZhbHVlKEdQSU9fTkFORF9SQikpOwo+ICsJcmV0dXJuIChncGlvZF9nZXRfdmFsdWUoZ3Bp b2RfbmFuZF9yYikpOwo+ICB9Cj4gIAo+ICAvKgo+ICAgKiBNYWluIGluaXRpYWxpemF0aW9uIHJv dXRpbmUKPiAgICovCj4gLXN0YXRpYyBpbnQgX19pbml0IGNteDI3MF9pbml0KHZvaWQpCj4gK3N0 YXRpYyBpbnQgY214MjcwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIHsK PiAgCXN0cnVjdCBuYW5kX2NoaXAgKnRoaXM7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRl di0+ZGV2Owo+ICAJaW50IHJldDsKPiAgCj4gLQlpZiAoIShtYWNoaW5lX2lzX2FybWNvcmUoKSAm JiBjcHVfaXNfcHhhMjd4KCkpKQo+IC0JCXJldHVybiAtRU5PREVWOwo+IC0KPiAtCXJldCA9IGdw aW9fcmVxdWVzdChHUElPX05BTkRfQ1MsICJOQU5EIENTIik7Cj4gKwlncGlvZF9uYW5kX2NzID0g ZGV2bV9ncGlvZF9nZXQoZGV2LCAiY3MiLCBHUElPRF9PVVRfSElHSCk7Cj4gKwlyZXQgPSBQVFJf RVJSX09SX1pFUk8oZ3Bpb2RfbmFuZF9jcyk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJcHJfd2Fybigi Q00tWDI3MDogZmFpbGVkIHRvIHJlcXVlc3QgTkFORCBDUyBncGlvXG4iKTsKPiAgCQlyZXR1cm4g cmV0Owo+ICAJfQo+ICAKPiAtCWdwaW9fZGlyZWN0aW9uX291dHB1dChHUElPX05BTkRfQ1MsIDEp Owo+IC0KPiAtCXJldCA9IGdwaW9fcmVxdWVzdChHUElPX05BTkRfUkIsICJOQU5EIFIvQiIpOwo+ ICsJZ3Bpb2RfbmFuZF9yYiA9IGRldm1fZ3Bpb2RfZ2V0KGRldiwgInJiIiwgR1BJT0RfSU4pOwo+ ICsJcmV0ID0gUFRSX0VSUl9PUl9aRVJPKGdwaW9kX25hbmRfcmIpOwo+ICAJaWYgKHJldCkgewo+ ICAJCXByX3dhcm4oIkNNLVgyNzA6IGZhaWxlZCB0byByZXF1ZXN0IE5BTkQgUi9CIGdwaW9cbiIp Owo+IC0JCWdvdG8gZXJyX2dwaW9fcmVxdWVzdDsKPiArCQlyZXR1cm4gcmV0Owo+ICAJfQo+ICAK PiAtCWdwaW9fZGlyZWN0aW9uX2lucHV0KEdQSU9fTkFORF9SQik7Cj4gLQo+ICAJLyogQWxsb2Nh dGUgbWVtb3J5IGZvciBNVEQgZGV2aWNlIHN0cnVjdHVyZSBhbmQgcHJpdmF0ZSBkYXRhICovCj4g LQl0aGlzID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG5hbmRfY2hpcCksIEdGUF9LRVJORUwpOwo+ IC0JaWYgKCF0aGlzKSB7Cj4gLQkJcmV0ID0gLUVOT01FTTsKPiAtCQlnb3RvIGVycl9remFsbG9j Owo+IC0JfQo+ICsJdGhpcyA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZihzdHJ1Y3QgbmFuZF9j aGlwKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIXRoaXMpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4g IAo+IC0JY214MjcwX25hbmRfaW8gPSBpb3JlbWFwKFBYQV9DUzFfUEhZUywgMTIpOwo+ICsJY214 MjcwX25hbmRfaW8gPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7Cj4g IAlpZiAoIWNteDI3MF9uYW5kX2lvKSB7Cj4gIAkJcHJfZGVidWcoIlVuYWJsZSB0byBpb3JlbWFw IE5BTkQgZGV2aWNlXG4iKTsKPiAtCQlyZXQgPSAtRUlOVkFMOwo+IC0JCWdvdG8gZXJyX2lvcmVt YXA7Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+ICAJY214MjcwX25hbmRfbXRkID0g bmFuZF90b19tdGQodGhpcyk7Cj4gQEAgLTE4OSw0OCArMTgxLDMwIEBAIHN0YXRpYyBpbnQgX19p bml0IGNteDI3MF9pbml0KHZvaWQpCj4gIAlyZXQgPSBuYW5kX3NjYW4odGhpcywgMSk7Cj4gIAlp ZiAocmV0KSB7Cj4gIAkJcHJfbm90aWNlKCJObyBOQU5EIGRldmljZVxuIik7Cj4gLQkJZ290byBl cnJfc2NhbjsKPiArCQlyZXR1cm4gcmV0Owo+ICAJfQo+ICAKPiAgCS8qIFJlZ2lzdGVyIHRoZSBw YXJ0aXRpb25zICovCj4gLQlyZXQgPSBtdGRfZGV2aWNlX3JlZ2lzdGVyKGNteDI3MF9uYW5kX210 ZCwgcGFydGl0aW9uX2luZm8sCj4gLQkJCQkgIE5VTV9QQVJUSVRJT05TKTsKPiAtCWlmIChyZXQp Cj4gLQkJZ290byBlcnJfc2NhbjsKPiAtCj4gLQkvKiBSZXR1cm4gaGFwcHkgKi8KPiAtCXJldHVy biAwOwo+IC0KPiAtZXJyX3NjYW46Cj4gLQlpb3VubWFwKGNteDI3MF9uYW5kX2lvKTsKPiAtZXJy X2lvcmVtYXA6Cj4gLQlrZnJlZSh0aGlzKTsKPiAtZXJyX2t6YWxsb2M6Cj4gLQlncGlvX2ZyZWUo R1BJT19OQU5EX1JCKTsKPiAtZXJyX2dwaW9fcmVxdWVzdDoKPiAtCWdwaW9fZnJlZShHUElPX05B TkRfQ1MpOwo+IC0KPiAtCXJldHVybiByZXQ7Cj4gLQo+ICsJcmV0dXJuIG10ZF9kZXZpY2VfcmVn aXN0ZXIoY214MjcwX25hbmRfbXRkLCBwYXJ0aXRpb25faW5mbywKPiArCQkJCSAgIE5VTV9QQVJU SVRJT05TKTsKPiAgfQo+IC1tb2R1bGVfaW5pdChjbXgyNzBfaW5pdCk7Cj4gIAo+ICAvKgo+ICAg KiBDbGVhbiB1cCByb3V0aW5lCj4gICAqLwo+IC1zdGF0aWMgdm9pZCBfX2V4aXQgY214MjcwX2Ns ZWFudXAodm9pZCkKPiArc3RhdGljIGludCBjbXgyNzBfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCj4gIHsKPiAtCS8qIFJlbGVhc2UgcmVzb3VyY2VzLCB1bnJlZ2lzdGVyIGRl dmljZSAqLwo+ICAJbmFuZF9yZWxlYXNlKG10ZF90b19uYW5kKGNteDI3MF9uYW5kX210ZCkpOwo+ ICAKPiAtCWdwaW9fZnJlZShHUElPX05BTkRfUkIpOwo+IC0JZ3Bpb19mcmVlKEdQSU9fTkFORF9D Uyk7Cj4gLQo+IC0JaW91bm1hcChjbXgyNzBfbmFuZF9pbyk7Cj4gLQo+IC0Ja2ZyZWUobXRkX3Rv X25hbmQoY214MjcwX25hbmRfbXRkKSk7Cj4gKwlyZXR1cm4gMDsKPiAgfQo+IC1tb2R1bGVfZXhp dChjbXgyNzBfY2xlYW51cCk7Cj4gKwo+ICtzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBj bXgyNzBfbmFuZF9kcml2ZXIgPSB7Cj4gKwkuZHJpdmVyLm5hbWUgPSAiY214MjcwLW5hbmQiLAo+ ICsJLnByb2JlID0gY214MjcwX3Byb2JlLAo+ICsJLnJlbW92ZSA9IGNteDI3MF9yZW1vdmUsCj4g K307Cj4gK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoY214MjcwX25hbmRfZHJpdmVyKTsKPiAgCj4g IE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKPiAgTU9EVUxFX0FVVEhPUigiTWlrZSBSYXBvcG9ydCA8 bWlrZUBjb21wdWxhYi5jby5pbD4iKTsKCgoKClRoYW5rcywKTWlxdcOobAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWls aW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 16388CA9EAC for ; Sat, 19 Oct 2019 09:44:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CC6572082F for ; Sat, 19 Oct 2019 09:44:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726524AbfJSJon convert rfc822-to-8bit (ORCPT ); Sat, 19 Oct 2019 05:44:43 -0400 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:40889 "EHLO relay4-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725938AbfJSJom (ORCPT ); Sat, 19 Oct 2019 05:44:42 -0400 X-Originating-IP: 91.224.148.103 Received: from xps13 (unknown [91.224.148.103]) (Authenticated sender: miquel.raynal@bootlin.com) by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 4C90DE0009; Sat, 19 Oct 2019 09:44:36 +0000 (UTC) Date: Sat, 19 Oct 2019 11:44:34 +0200 From: Miquel Raynal To: Arnd Bergmann Cc: Daniel Mack , Haojian Zhuang , Robert Jarzmik , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Linus Walleij , Richard Weinberger , David Woodhouse , Brian Norris , Marek Vasut , Vignesh Raghavendra , linux-mtd@lists.infradead.org Subject: Re: [PATCH 11/46] ARM: pxa: cmx270: use platform device for nand Message-ID: <20191019114417.5268f7e4@xps13> In-Reply-To: <20191018154201.1276638-11-arnd@arndb.de> References: <20191018154052.1276506-1-arnd@arndb.de> <20191018154201.1276638-11-arnd@arndb.de> Organization: Bootlin X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Arnd, Arnd Bergmann wrote on Fri, 18 Oct 2019 17:41:26 +0200: > The driver traditionally hardcodes the MMIO register address and > the GPIO numbers from data defined in platform header files. > > To make it indepdendent of that, use a memory resource for the > registers, and a gpio lookup table to replace the gpio numbers. Looks good to me besides the typo s/indepdendent/independent/. Acked-by: Miquel Raynal > > Cc: Miquel Raynal > Cc: Richard Weinberger > Cc: David Woodhouse > Cc: Brian Norris > Cc: Marek Vasut > Cc: Vignesh Raghavendra > Cc: linux-mtd@lists.infradead.org > Signed-off-by: Arnd Bergmann > --- > arch/arm/mach-pxa/cm-x270.c | 25 +++++++++ > drivers/mtd/nand/raw/cmx270_nand.c | 88 +++++++++++------------------- > 2 files changed, 56 insertions(+), 57 deletions(-) > > diff --git a/arch/arm/mach-pxa/cm-x270.c b/arch/arm/mach-pxa/cm-x270.c > index 9baad11314f2..6d80400d8887 100644 > --- a/arch/arm/mach-pxa/cm-x270.c > +++ b/arch/arm/mach-pxa/cm-x270.c > @@ -40,6 +40,10 @@ > #define GPIO19_WLAN_STRAP (19) > #define GPIO102_WLAN_RST (102) > > +/* NAND GPIOS */ > +#define GPIO_NAND_CS (11) > +#define GPIO_NAND_RB (89) > + > static unsigned long cmx270_pin_config[] = { > /* AC'97 */ > GPIO28_AC97_BITCLK, > @@ -403,6 +407,26 @@ static void __init cmx270_init_spi(void) > static inline void cmx270_init_spi(void) {} > #endif > > +static struct gpiod_lookup_table cmx270_nand_gpio_table = { > + .dev_id = "cmx270-nand", > + .table = { > + GPIO_LOOKUP("gpio-pxa", GPIO_NAND_CS, "cs", GPIO_ACTIVE_HIGH), > + GPIO_LOOKUP("gpio-pxa", GPIO_NAND_RB, "rb", GPIO_ACTIVE_HIGH), > + { }, > + }, > +}; > + > +static struct resource cmx270_nand_resources[] __initdata = { > + DEFINE_RES_MEM(PXA_CS1_PHYS, 12), > +}; > + > +static void __init cmx270_init_nand(void) > +{ > + platform_device_register_simple("cmx270-nand", -1, > + cmx270_nand_resources, 1); > + gpiod_add_lookup_table(&cmx270_nand_gpio_table); > +} > + > void __init cmx270_init(void) > { > pxa2xx_mfp_config(ARRAY_AND_SIZE(cmx270_pin_config)); > @@ -416,4 +440,5 @@ void __init cmx270_init(void) > cmx270_init_ohci(); > cmx270_init_2700G(); > cmx270_init_spi(); > + cmx270_init_nand(); > } > diff --git a/drivers/mtd/nand/raw/cmx270_nand.c b/drivers/mtd/nand/raw/cmx270_nand.c > index 7af3d0bdcdb8..31cb20858c46 100644 > --- a/drivers/mtd/nand/raw/cmx270_nand.c > +++ b/drivers/mtd/nand/raw/cmx270_nand.c > @@ -15,18 +15,17 @@ > #include > #include > #include > -#include > +#include > #include > #include > +#include > > #include > #include > #include > > -#include > - > -#define GPIO_NAND_CS (11) > -#define GPIO_NAND_RB (89) > +static struct gpio_desc *gpiod_nand_cs; > +static struct gpio_desc *gpiod_nand_rb; > > /* MTD structure for CM-X270 board */ > static struct mtd_info *cmx270_nand_mtd; > @@ -70,14 +69,14 @@ static void cmx270_read_buf(struct nand_chip *this, u_char *buf, int len) > > static inline void nand_cs_on(void) > { > - gpio_set_value(GPIO_NAND_CS, 0); > + gpiod_set_value(gpiod_nand_cs, 0); > } > > static void nand_cs_off(void) > { > dsb(); > > - gpio_set_value(GPIO_NAND_CS, 1); > + gpiod_set_value(gpiod_nand_cs, 1); > } > > /* > @@ -120,48 +119,41 @@ static int cmx270_device_ready(struct nand_chip *this) > { > dsb(); > > - return (gpio_get_value(GPIO_NAND_RB)); > + return (gpiod_get_value(gpiod_nand_rb)); > } > > /* > * Main initialization routine > */ > -static int __init cmx270_init(void) > +static int cmx270_probe(struct platform_device *pdev) > { > struct nand_chip *this; > + struct device *dev = &pdev->dev; > int ret; > > - if (!(machine_is_armcore() && cpu_is_pxa27x())) > - return -ENODEV; > - > - ret = gpio_request(GPIO_NAND_CS, "NAND CS"); > + gpiod_nand_cs = devm_gpiod_get(dev, "cs", GPIOD_OUT_HIGH); > + ret = PTR_ERR_OR_ZERO(gpiod_nand_cs); > if (ret) { > pr_warn("CM-X270: failed to request NAND CS gpio\n"); > return ret; > } > > - gpio_direction_output(GPIO_NAND_CS, 1); > - > - ret = gpio_request(GPIO_NAND_RB, "NAND R/B"); > + gpiod_nand_rb = devm_gpiod_get(dev, "rb", GPIOD_IN); > + ret = PTR_ERR_OR_ZERO(gpiod_nand_rb); > if (ret) { > pr_warn("CM-X270: failed to request NAND R/B gpio\n"); > - goto err_gpio_request; > + return ret; > } > > - gpio_direction_input(GPIO_NAND_RB); > - > /* Allocate memory for MTD device structure and private data */ > - this = kzalloc(sizeof(struct nand_chip), GFP_KERNEL); > - if (!this) { > - ret = -ENOMEM; > - goto err_kzalloc; > - } > + this = devm_kzalloc(dev, sizeof(struct nand_chip), GFP_KERNEL); > + if (!this) > + return -ENOMEM; > > - cmx270_nand_io = ioremap(PXA_CS1_PHYS, 12); > + cmx270_nand_io = devm_platform_ioremap_resource(pdev, 0); > if (!cmx270_nand_io) { > pr_debug("Unable to ioremap NAND device\n"); > - ret = -EINVAL; > - goto err_ioremap; > + return -EINVAL; > } > > cmx270_nand_mtd = nand_to_mtd(this); > @@ -189,48 +181,30 @@ static int __init cmx270_init(void) > ret = nand_scan(this, 1); > if (ret) { > pr_notice("No NAND device\n"); > - goto err_scan; > + return ret; > } > > /* Register the partitions */ > - ret = mtd_device_register(cmx270_nand_mtd, partition_info, > - NUM_PARTITIONS); > - if (ret) > - goto err_scan; > - > - /* Return happy */ > - return 0; > - > -err_scan: > - iounmap(cmx270_nand_io); > -err_ioremap: > - kfree(this); > -err_kzalloc: > - gpio_free(GPIO_NAND_RB); > -err_gpio_request: > - gpio_free(GPIO_NAND_CS); > - > - return ret; > - > + return mtd_device_register(cmx270_nand_mtd, partition_info, > + NUM_PARTITIONS); > } > -module_init(cmx270_init); > > /* > * Clean up routine > */ > -static void __exit cmx270_cleanup(void) > +static int cmx270_remove(struct platform_device *pdev) > { > - /* Release resources, unregister device */ > nand_release(mtd_to_nand(cmx270_nand_mtd)); > > - gpio_free(GPIO_NAND_RB); > - gpio_free(GPIO_NAND_CS); > - > - iounmap(cmx270_nand_io); > - > - kfree(mtd_to_nand(cmx270_nand_mtd)); > + return 0; > } > -module_exit(cmx270_cleanup); > + > +static struct platform_driver cmx270_nand_driver = { > + .driver.name = "cmx270-nand", > + .probe = cmx270_probe, > + .remove = cmx270_remove, > +}; > +module_platform_driver(cmx270_nand_driver); > > MODULE_LICENSE("GPL"); > MODULE_AUTHOR("Mike Rapoport "); Thanks, Miquèl