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=-2.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=no 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 B2DD6C83004 for ; Wed, 29 Apr 2020 17:04:49 +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 889F02083B for ; Wed, 29 Apr 2020 17:04:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="InfwMPRn" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 889F02083B 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=Mfe/hwgRIubnRgsvQu0x4o57s9wxWaeaiHOER/vKXtE=; b=InfwMPRnWjEjMV 3RBP4Sv9u5BUIwtacbQJltag2ZvTsdjLiq224CoP9L8MXM7jmcdVFw1mX+Dq/NbWx58z3HgW6fpS6 Vnbu/r7IArKztYvYIle5HOo1haq2yJXfQzBhzP6FR4qaDWqz73IsrjF2kXiecCK/paNkImMyko+oB YGBfVUmFYCNp/AhbJhJ5wMY1j9qmbC4M9cgLcO+eJe8cnXbzhc5Yh1c8b1+UAJ3Ohjw+jg3Iuf7bf P7pAFBuTQR8iHp0OXwybsDYIHpBj98gb6Hv8QRezbe1wgnnudVniW5HZs3U8MlG8Bj4dU/ZXgnNP+ 9aAvE/p1b1FzBOOLYwfw==; 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 1jTq8V-00050B-0Z; Wed, 29 Apr 2020 17:04:39 +0000 Received: from relay9-d.mail.gandi.net ([217.70.183.199]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jTq8R-0004zZ-Vc; Wed, 29 Apr 2020 17:04:37 +0000 X-Originating-IP: 91.224.148.103 Received: from xps13 (unknown [91.224.148.103]) (Authenticated sender: miquel.raynal@bootlin.com) by relay9-d.mail.gandi.net (Postfix) with ESMTPSA id 8AA9BFF804; Wed, 29 Apr 2020 17:04:30 +0000 (UTC) Date: Wed, 29 Apr 2020 19:04:28 +0200 From: Miquel Raynal To: Johan Jonker Subject: Re: [PATCH v5 2/7] mtd: rawnand: rockchip: NFC drivers for RK3308, RK3188 and others Message-ID: <20200429190428.33ca0523@xps13> In-Reply-To: <4dbe907c-a6c2-a163-0cab-234b08336b5c@gmail.com> References: <20200426100250.14678-1-yifeng.zhao@rock-chips.com> <20200426100250.14678-3-yifeng.zhao@rock-chips.com> <4dbe907c-a6c2-a163-0cab-234b08336b5c@gmail.com> Organization: Bootlin X-Mailer: Claws Mail 3.17.4 (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-20200429_100436_149290_9CAA00A4 X-CRM114-Status: GOOD ( 11.90 ) 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: devicetree@vger.kernel.org, vigneshr@ti.com, richard@nod.at, Yifeng Zhao , linux-rockchip@lists.infradead.org, robh+dt@kernel.org, linux-mtd@lists.infradead.org, heiko@sntech.de 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 SGkgWWlmZW5nLAoKSm9oYW4gSm9ua2VyIDxqYng2MjQ0QGdtYWlsLmNvbT4gd3JvdGUgb24gV2Vk LCAyOSBBcHIgMjAyMCAxNzo1NTo1NgorMDIwMDoKCj4gSGkgWWlmZW5nLAo+IAo+IEEgZmV3IG1v cmUgY29tbWVudHMgYmVsb3cgZm9yIG5vdyAocGFydCAyKS4KPiAKPiBPbiA0LzI2LzIwIDEyOjAy IFBNLCBZaWZlbmcgWmhhbyB3cm90ZToKPiAKPiBbLi5dCj4gCj4gPiArI2RlZmluZQlUSElTX05B TUUJCSJyay1uYW5kIiAgCj4gCj4gPiArc3RhdGljIGludCBya19uZmNfbmFuZF9jaGlwX2luaXQo c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcmtfbmZjICpuZmMsCj4gPiArCQkJCSBzdHJ1Y3Qg ZGV2aWNlX25vZGUgKm5wKQo+ID4gK3sKPiA+ICsJc3RydWN0IHJrX25mY19uYW5kX2NoaXAgKm5h bmQ7Cj4gPiArCXN0cnVjdCBuYW5kX2NoaXAgKmNoaXA7Cj4gPiArCXN0cnVjdCBtdGRfaW5mbyAq bXRkOwo+ID4gKwlpbnQgbnNlbHM7Cj4gPiArCXUzMiB0bXA7Cj4gPiArCWludCByZXQ7Cj4gPiAr CWludCBpOwo+ID4gKwo+ID4gKwlpZiAoIW9mX2dldF9wcm9wZXJ0eShucCwgInJlZyIsICZuc2Vs cykpCj4gPiArCQlyZXR1cm4gLUVOT0RFVjsKPiA+ICsJbnNlbHMgLz0gc2l6ZW9mKHUzMik7Cj4g PiArCWlmICghbnNlbHMgfHwgbnNlbHMgPiBORkNfTUFYX05TRUxTKSB7Cj4gPiArCQlkZXZfZXJy KGRldiwgImludmFsaWQgcmVnIHByb3BlcnR5IHNpemUgJWRcbiIsIG5zZWxzKTsKPiA+ICsJCXJl dHVybiAtRUlOVkFMOwo+ID4gKwl9Cj4gPiArCj4gPiArCW5hbmQgPSBkZXZtX2t6YWxsb2MoZGV2 LCBzaXplb2YoKm5hbmQpICsgbnNlbHMgKiBzaXplb2YodTgpLAo+ID4gKwkJCSAgICBHRlBfS0VS TkVMKTsKPiA+ICsJaWYgKCFuYW5kKQo+ID4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gPiArCj4gPiAr CW5hbmQtPm5zZWxzID0gbnNlbHM7Cj4gPiArCWZvciAoaSA9IDA7IGkgPCBuc2VsczsgaSsrKSB7 Cj4gPiArCQlyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMl9pbmRleChucCwgInJlZyIsIGksICZ0 bXApOwo+ID4gKwkJaWYgKHJldCkgewo+ID4gKwkJCWRldl9lcnIoZGV2LCAicmVnIHByb3BlcnR5 IGZhaWx1cmUgOiAlZFxuIiwgcmV0KTsKPiA+ICsJCQlyZXR1cm4gcmV0Owo+ID4gKwkJfQo+ID4g Kwo+ID4gKwkJaWYgKHRtcCA+PSBORkNfTUFYX05TRUxTKSB7Cj4gPiArCQkJZGV2X2VycihkZXYs ICJpbnZhbGlkIENTOiAldVxuIiwgdG1wKTsKPiA+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsJ CX0KPiA+ICsKPiA+ICsJCWlmICh0ZXN0X2FuZF9zZXRfYml0KHRtcCwgJm5mYy0+YXNzaWduZWRf Y3MpKSB7Cj4gPiArCQkJZGV2X2VycihkZXYsICJDUyAldSBhbHJlYWR5IGFzc2lnbmVkXG4iLCB0 bXApOwo+ID4gKwkJCXJldHVybiAtRUlOVkFMOwo+ID4gKwkJfQo+ID4gKwo+ID4gKwkJbmFuZC0+ c2Vsc1tpXSA9IHRtcDsKPiA+ICsJfQo+ID4gKwo+ID4gKwljaGlwID0gJm5hbmQtPmNoaXA7Cj4g PiArCWNoaXAtPmNvbnRyb2xsZXIgPSAmbmZjLT5jb250cm9sbGVyOwo+ID4gKwo+ID4gKwluYW5k X3NldF9mbGFzaF9ub2RlKGNoaXAsIG5wKTsKPiA+ICsJbmFuZF9zZXRfY29udHJvbGxlcl9kYXRh KGNoaXAsIG5mYyk7Cj4gPiArCj4gPiArCWNoaXAtPm9wdGlvbnMgfD0gTkFORF9VU0VfQk9VTkNF X0JVRkZFUiB8IE5BTkRfTk9fU1VCUEFHRV9XUklURTsKPiA+ICsJY2hpcC0+YmJ0X29wdGlvbnMg PSBOQU5EX0JCVF9VU0VfRkxBU0ggfCBOQU5EX0JCVF9OT19PT0I7Cj4gPiArCj4gPiArCS8qIHNl dCBkZWZhdWx0IG1vZGUgaW4gY2FzZSBkdCBlbnRyeSBpcyBtaXNzaW5nICovCj4gPiArCWNoaXAt PmVjYy5tb2RlID0gTkFORF9FQ0NfSFc7Cj4gPiArCj4gPiArCW10ZCA9IG5hbmRfdG9fbXRkKGNo aXApOwo+ID4gKwltdGQtPm93bmVyID0gVEhJU19NT0RVTEU7Cj4gPiArCW10ZC0+ZGV2LnBhcmVu dCA9IGRldjsgIAo+IAo+ID4gKwltdGQtPm5hbWUgPSBUSElTX05BTUU7ICAKPiAKPiBUaGUgJ210 ZC0+bmFtZScgc2hvd3MgdXAgc29tZXdoZXJlIGluIGZpbGUgdHJlZS4KCkdvb2QgY2F0Y2guCgo+ IFRoZSByazMyODggaGFzIDIgbmZjJ3MuIEluIHRoZW9yeSAyIHByb2JlcyBhbmQgYWxzbyAyIGRl dmljZSBuYW1lcywgc28gSQo+IHRoaW5rIHRoYXQgd2Ugc2hvdWxkbid0IHVzZSBhIGZpeGVkIGRl ZmluZSBmb3IgJ210ZC0+bmFtZScuCj4gTWF5YmUgdXNlIHNvbWV0aGluZyBsaWtlIHRoaXM6CgpZ aWZlbmcsIHBsZWFzZSB1c2UgdGhlIE5BTkQgY2hpcCAibGFiZWwiIERUIHByb3BlcnR5LCB3aGlj aCBpcyBwYXJzZWQKYnkgdGhlIGNvcmUgYXV0b21hdGljYWxseSBhbmQgd2lsbCBnaXZlIHlvdSBt ZWFuaW5nZnVsIG5hbWVzIGZvciBldmVyeQpjaGlwOgoKbmFuZF9zZXRfZmxhc2hfbm9kZShjaGlw LCBucCk7CmlmICghbXRkLT5uYW1lKSB7CglkZXZfZXJyKG5mYy0+ZGV2LCAiTkFORCBsYWJlbCBw cm9wZXJ0eSBpcyBtYW5kYXRvcnlcbiIpOwoJcmV0dXJuIC1FSU5WQUw7Cn0KCgpUaGFua3MsCk1p cXXDqGwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpMaW51eCBNVEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJh ZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1tdGQvCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Miquel Raynal Subject: Re: [PATCH v5 2/7] mtd: rawnand: rockchip: NFC drivers for RK3308, RK3188 and others Date: Wed, 29 Apr 2020 19:04:28 +0200 Message-ID: <20200429190428.33ca0523@xps13> References: <20200426100250.14678-1-yifeng.zhao@rock-chips.com> <20200426100250.14678-3-yifeng.zhao@rock-chips.com> <4dbe907c-a6c2-a163-0cab-234b08336b5c@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Return-path: In-Reply-To: <4dbe907c-a6c2-a163-0cab-234b08336b5c-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Sender: devicetree-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Johan Jonker Cc: Yifeng Zhao , richard-/L3Ra7n9ekc@public.gmane.org, vigneshr-l0cyMroinI0@public.gmane.org, robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org, linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org List-Id: linux-rockchip.vger.kernel.org Hi Yifeng, Johan Jonker wrote on Wed, 29 Apr 2020 17:55:56 +0200: > Hi Yifeng, > > A few more comments below for now (part 2). > > On 4/26/20 12:02 PM, Yifeng Zhao wrote: > > [..] > > > +#define THIS_NAME "rk-nand" > > > +static int rk_nfc_nand_chip_init(struct device *dev, struct rk_nfc *nfc, > > + struct device_node *np) > > +{ > > + struct rk_nfc_nand_chip *nand; > > + struct nand_chip *chip; > > + struct mtd_info *mtd; > > + int nsels; > > + u32 tmp; > > + int ret; > > + int i; > > + > > + if (!of_get_property(np, "reg", &nsels)) > > + return -ENODEV; > > + nsels /= sizeof(u32); > > + if (!nsels || nsels > NFC_MAX_NSELS) { > > + dev_err(dev, "invalid reg property size %d\n", nsels); > > + return -EINVAL; > > + } > > + > > + nand = devm_kzalloc(dev, sizeof(*nand) + nsels * sizeof(u8), > > + GFP_KERNEL); > > + if (!nand) > > + return -ENOMEM; > > + > > + nand->nsels = nsels; > > + for (i = 0; i < nsels; i++) { > > + ret = of_property_read_u32_index(np, "reg", i, &tmp); > > + if (ret) { > > + dev_err(dev, "reg property failure : %d\n", ret); > > + return ret; > > + } > > + > > + if (tmp >= NFC_MAX_NSELS) { > > + dev_err(dev, "invalid CS: %u\n", tmp); > > + return -EINVAL; > > + } > > + > > + if (test_and_set_bit(tmp, &nfc->assigned_cs)) { > > + dev_err(dev, "CS %u already assigned\n", tmp); > > + return -EINVAL; > > + } > > + > > + nand->sels[i] = tmp; > > + } > > + > > + chip = &nand->chip; > > + chip->controller = &nfc->controller; > > + > > + nand_set_flash_node(chip, np); > > + nand_set_controller_data(chip, nfc); > > + > > + chip->options |= NAND_USE_BOUNCE_BUFFER | NAND_NO_SUBPAGE_WRITE; > > + chip->bbt_options = NAND_BBT_USE_FLASH | NAND_BBT_NO_OOB; > > + > > + /* set default mode in case dt entry is missing */ > > + chip->ecc.mode = NAND_ECC_HW; > > + > > + mtd = nand_to_mtd(chip); > > + mtd->owner = THIS_MODULE; > > + mtd->dev.parent = dev; > > > + mtd->name = THIS_NAME; > > The 'mtd->name' shows up somewhere in file tree. Good catch. > The rk3288 has 2 nfc's. In theory 2 probes and also 2 device names, so I > think that we shouldn't use a fixed define for 'mtd->name'. > Maybe use something like this: Yifeng, please use the NAND chip "label" DT property, which is parsed by the core automatically and will give you meaningful names for every chip: nand_set_flash_node(chip, np); if (!mtd->name) { dev_err(nfc->dev, "NAND label property is mandatory\n"); return -EINVAL; } Thanks, Miquèl 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=-2.3 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_2 autolearn=no 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 6E9FEC83000 for ; Wed, 29 Apr 2020 17:04:35 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 51E00208FE for ; Wed, 29 Apr 2020 17:04:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726524AbgD2REf convert rfc822-to-8bit (ORCPT ); Wed, 29 Apr 2020 13:04:35 -0400 Received: from relay9-d.mail.gandi.net ([217.70.183.199]:39785 "EHLO relay9-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726423AbgD2REe (ORCPT ); Wed, 29 Apr 2020 13:04:34 -0400 X-Originating-IP: 91.224.148.103 Received: from xps13 (unknown [91.224.148.103]) (Authenticated sender: miquel.raynal@bootlin.com) by relay9-d.mail.gandi.net (Postfix) with ESMTPSA id 8AA9BFF804; Wed, 29 Apr 2020 17:04:30 +0000 (UTC) Date: Wed, 29 Apr 2020 19:04:28 +0200 From: Miquel Raynal To: Johan Jonker Cc: Yifeng Zhao , richard@nod.at, vigneshr@ti.com, robh+dt@kernel.org, devicetree@vger.kernel.org, linux-mtd@lists.infradead.org, heiko@sntech.de, linux-rockchip@lists.infradead.org Subject: Re: [PATCH v5 2/7] mtd: rawnand: rockchip: NFC drivers for RK3308, RK3188 and others Message-ID: <20200429190428.33ca0523@xps13> In-Reply-To: <4dbe907c-a6c2-a163-0cab-234b08336b5c@gmail.com> References: <20200426100250.14678-1-yifeng.zhao@rock-chips.com> <20200426100250.14678-3-yifeng.zhao@rock-chips.com> <4dbe907c-a6c2-a163-0cab-234b08336b5c@gmail.com> Organization: Bootlin X-Mailer: Claws Mail 3.17.4 (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: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Hi Yifeng, Johan Jonker wrote on Wed, 29 Apr 2020 17:55:56 +0200: > Hi Yifeng, > > A few more comments below for now (part 2). > > On 4/26/20 12:02 PM, Yifeng Zhao wrote: > > [..] > > > +#define THIS_NAME "rk-nand" > > > +static int rk_nfc_nand_chip_init(struct device *dev, struct rk_nfc *nfc, > > + struct device_node *np) > > +{ > > + struct rk_nfc_nand_chip *nand; > > + struct nand_chip *chip; > > + struct mtd_info *mtd; > > + int nsels; > > + u32 tmp; > > + int ret; > > + int i; > > + > > + if (!of_get_property(np, "reg", &nsels)) > > + return -ENODEV; > > + nsels /= sizeof(u32); > > + if (!nsels || nsels > NFC_MAX_NSELS) { > > + dev_err(dev, "invalid reg property size %d\n", nsels); > > + return -EINVAL; > > + } > > + > > + nand = devm_kzalloc(dev, sizeof(*nand) + nsels * sizeof(u8), > > + GFP_KERNEL); > > + if (!nand) > > + return -ENOMEM; > > + > > + nand->nsels = nsels; > > + for (i = 0; i < nsels; i++) { > > + ret = of_property_read_u32_index(np, "reg", i, &tmp); > > + if (ret) { > > + dev_err(dev, "reg property failure : %d\n", ret); > > + return ret; > > + } > > + > > + if (tmp >= NFC_MAX_NSELS) { > > + dev_err(dev, "invalid CS: %u\n", tmp); > > + return -EINVAL; > > + } > > + > > + if (test_and_set_bit(tmp, &nfc->assigned_cs)) { > > + dev_err(dev, "CS %u already assigned\n", tmp); > > + return -EINVAL; > > + } > > + > > + nand->sels[i] = tmp; > > + } > > + > > + chip = &nand->chip; > > + chip->controller = &nfc->controller; > > + > > + nand_set_flash_node(chip, np); > > + nand_set_controller_data(chip, nfc); > > + > > + chip->options |= NAND_USE_BOUNCE_BUFFER | NAND_NO_SUBPAGE_WRITE; > > + chip->bbt_options = NAND_BBT_USE_FLASH | NAND_BBT_NO_OOB; > > + > > + /* set default mode in case dt entry is missing */ > > + chip->ecc.mode = NAND_ECC_HW; > > + > > + mtd = nand_to_mtd(chip); > > + mtd->owner = THIS_MODULE; > > + mtd->dev.parent = dev; > > > + mtd->name = THIS_NAME; > > The 'mtd->name' shows up somewhere in file tree. Good catch. > The rk3288 has 2 nfc's. In theory 2 probes and also 2 device names, so I > think that we shouldn't use a fixed define for 'mtd->name'. > Maybe use something like this: Yifeng, please use the NAND chip "label" DT property, which is parsed by the core automatically and will give you meaningful names for every chip: nand_set_flash_node(chip, np); if (!mtd->name) { dev_err(nfc->dev, "NAND label property is mandatory\n"); return -EINVAL; } Thanks, Miquèl