From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D0B0038B7B0 for ; Mon, 13 Jul 2026 23:17:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.43 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783984646; cv=none; b=f9EzfIuo+JcnJuuwJb8TsDY2bUs5LtdH+D7RLtSgPHeaJb5mkbyfP4bALwNO3EwNIgdvvIZTe9bZIcU4XvJlTB5XMNPPWhubZ0uq762rCmW1n6QiSenxhXI5nMVQg2b6WzK+vmJPAAeh7KFqrIaLWzmHtq4kg2e10tMtppHjZD4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783984646; c=relaxed/simple; bh=7KJbLB4w0OJZHRVNOcvglTEvTdy3FR50ECp4VayMpm0=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=kDo1maejye+78Yyw9XvtGz6tvYlMLpksa+YQrkDor7tUD81gteenGs5ugP46WXwyLcVYjL9acrkAw/dSY3nbP7eINoAsP128QjIgHydw/YQP5u+/9Bs6CQkvaVaicZo5NYBKaLhsF6HK/6kCuO+pRT4EBNCcctWzf9AqdsgBAFc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=nHjhzhUH; arc=none smtp.client-ip=209.85.216.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="nHjhzhUH" Received: by mail-pj1-f43.google.com with SMTP id 98e67ed59e1d1-381ed661712so4229638a91.2 for ; Mon, 13 Jul 2026 16:17:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783984644; x=1784589444; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=+FL5XSAFXC/lBCBY2+tuXGzEqpVa/8UNV4Ia4+5Gn4U=; b=nHjhzhUH06IbX1otjVSoR3Tp8T8PcLdCe4Z3LGbdGR8YThH2QRYe5sypdd3jxWApan 6F95mXorIpwrN1t6Lae4zlLDna8Gg342Kb+yT86f+fwzJzrj6Qn7hIsUmy2VEb3SNHvb CjzWBHG5yUIFTzMkZZB4bAzhCAU/s3YFyCbKHMtD5S0GTl9LS+GRpAGSW2PoXRcrCwqp tNYXbO0xNwgXF04OWygQpsaTfLUgqklYHwRyYgVKH/x2L1i3yDlHJQ0gC063GF/+D1rZ IZrmlILE4J3eevi4qT37skKMUDE47Qed6YP3zcby65socF1NERiwhT9SQK4rqVORz8Ic LRTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783984644; x=1784589444; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=+FL5XSAFXC/lBCBY2+tuXGzEqpVa/8UNV4Ia4+5Gn4U=; b=YPOQxpkZurfego9C60HE7vY405xCBoATcSoS8D8yqepfmTq8zXuC5mm7wgRhMCqTyK t9aiysdfjVwLJS4bxfEybBqiBYmA9e41vqiNRAu8R3VvbCmQP5fs13qVFVtvOh4g5PM8 sE4jDZYnpBkd1eA9nqOcqvn/Xv7TBHEzkDrqqrPybfntkia+EAnSb4Ir3be686TL6WuS rRmKfGzz1cfxlCSt5NOfGnDCoPIddOQynj1Q6J9qLVt4tcSpShcVt8J+CYcO1bnaODTA 8k5MANrH/ByacETWmrpZAHBdLa1JXq7cfQpdkj4/NHTd3qrl0KKZx8Hb5yU6rTGPrJQ5 024g== X-Forwarded-Encrypted: i=1; AHgh+RoXw8Bux1XMTJ9LJHbOqy+ecPWRGNQyi1uQEj2nl/UoYOz3ctCXBr++puAuTeJ9lUJlGnSGF7e1ExXCE8M=@vger.kernel.org X-Gm-Message-State: AOJu0Yz7ESpVA7s4XHk0QqKzRYZglalwQEn+BYCdrovVtB1xhcLUCOEa JoY97CtMpaifbWk1ZhpH2MJNgQH3ToRLJnr1FtfEv3ff+sLT1o6Hwgu/ X-Gm-Gg: AfdE7cmorauH31/2cW8XkId700ItQiNh991CY6qbfIEDIkFFRds3e5dIU1pDeffAJOg 4VUCLAHiHsEwWx4JfbUIe/QnBOsYyfo0dZwPPyK0DK78utkJIA5BzYFQxV7IMy5ZcOOGMY/WiHA YwIny07Vv5ONQ3VRVfuGYPxBfm1SA1hFB6+N2oefhqwm0lspszi0Nmc4SgcdgabrhPNN3dwhk20 1y6eF/qp554+fScvGQ5kaZCZlbwZyt+2bGJTyAuwef3ShcNbLgoZcFRGqnLjBAJgfPoOE6QeaCW yAY7DAONAPJqO8XQvZy99NmfFdN5yrJ3IYFjK6/O9L9gvQ2OP/X6rweDUJQISVTV7rkx7BZv6sS ewZGJIZ6CueY+HFn/5nTeIAMEdXHSTSHws4vwx+8n96kUauTHf3Q+vXn2b2Vm8MjwiCc82VcK62 tz4j/uz3cQqlEBUH2RsQf+QJFfLfeud7IXmPUZE+zuCGMzpnhoTzBFh/0mYrGD2z0kku8g5WLFZ jJL0WE8LfEa72U+cpi5Jph5Rw9tusuvtqKzO326/d4QYs2omSegh0Xp4szWbC8nDA== X-Received: by 2002:a17:90b:3cc4:b0:37d:f206:a2ac with SMTP id 98e67ed59e1d1-38e1add8aeemr101308a91.7.1783984644079; Mon, 13 Jul 2026 16:17:24 -0700 (PDT) Received: from ryzen.lan ([2601:644:8000:7a86::e35]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-38e172b8020sm518328a91.3.2026.07.13.16.17.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 16:17:23 -0700 (PDT) From: Rosen Penev To: linux-mtd@lists.infradead.org Cc: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linux-kernel@vger.kernel.org (open list), llvm@lists.linux.dev (open list:CLANG/LLVM BUILD SUPPORT:Keyword:\b(?i:clang|llvm)\b) Subject: [PATCH] mtd: mpc5121_nfc: use platform for irq and ioremap Date: Mon, 13 Jul 2026 16:17:22 -0700 Message-ID: <20260713231722.1095470-1-rosenp@gmail.com> X-Mailer: git-send-email 2.55.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Replace the open-coded of_address_to_resource() plus devm_request_mem_region() and devm_ioremap() sequence with a single devm_platform_ioremap_resource() call, which folds the resource lookup, region reservation and mapping into one step and returns an ERR_PTR on failure, checked with IS_ERR() and propagated via PTR_ERR(). Switch IRQ acquisition from irq_of_parse_and_map() to platform_get_irq(), which only retrieves the interrupt the OF/platform core has already set up rather than transferring mapping ownership to the driver. Drop the now unneeded of_irq.h include. This is behaviorally equivalent: the driver already reserved the region with devm_request_mem_region(), so the non-overlapping reg requirement of devm_platform_ioremap_resource() was already satisfied. Drop the now-unused regs_paddr / regs_size locals, which previously only fed the open-coded request/ioremap calls. Keep the linux/of_address.h include, as of_iomap() is still used elsewhere in the driver. Built for PowerPC (mpc512x_defconfig + CONFIG_MTD_NAND_MPC5121_NFC) with LLVM=1; drivers/mtd/nand/raw/mpc5121_nfc.o compiles cleanly. Assisted-by: opencode:hy3-free Signed-off-by: Rosen Penev --- drivers/mtd/nand/raw/mpc5121_nfc.c | 39 +++++++++--------------------- 1 file changed, 12 insertions(+), 27 deletions(-) diff --git a/drivers/mtd/nand/raw/mpc5121_nfc.c b/drivers/mtd/nand/raw/mpc5121_nfc.c index 97b4e7f3e1bb..e6594548b7e0 100644 --- a/drivers/mtd/nand/raw/mpc5121_nfc.c +++ b/drivers/mtd/nand/raw/mpc5121_nfc.c @@ -23,7 +23,6 @@ #include #include #include -#include #include #include @@ -618,14 +617,14 @@ static int mpc5121_nfc_probe(struct platform_device *op) struct clk *clk; struct device *dev = &op->dev; struct mpc5121_nfc_prv *prv; - struct resource res; struct mtd_info *mtd; struct nand_chip *chip; - unsigned long regs_paddr, regs_size; const __be32 *chips_no; + void __iomem *regs; int resettime = 0; int retval = 0; int rev, len; + int irq; /* * Check SoC revision. This driver supports only NFC @@ -637,6 +636,14 @@ static int mpc5121_nfc_probe(struct platform_device *op) return -ENXIO; } + regs = devm_platform_ioremap_resource(op, 0); + if (IS_ERR(regs)) + return PTR_ERR(regs); + + irq = platform_get_irq(op, 0); + if (irq < 0) + return irq; + prv = devm_kzalloc(dev, sizeof(*prv), GFP_KERNEL); if (!prv) return -ENOMEM; @@ -660,17 +667,7 @@ static int mpc5121_nfc_probe(struct platform_device *op) return retval; } - prv->irq = irq_of_parse_and_map(dn, 0); - if (!prv->irq) { - dev_err(dev, "Error mapping IRQ!\n"); - return -EINVAL; - } - - retval = of_address_to_resource(dn, 0, &res); - if (retval) { - dev_err(dev, "Error parsing memory region!\n"); - return retval; - } + prv->irq = irq; chips_no = of_get_property(dn, "chips", &len); if (!chips_no || len != sizeof(*chips_no)) { @@ -678,19 +675,7 @@ static int mpc5121_nfc_probe(struct platform_device *op) return -EINVAL; } - regs_paddr = res.start; - regs_size = resource_size(&res); - - if (!devm_request_mem_region(dev, regs_paddr, regs_size, DRV_NAME)) { - dev_err(dev, "Error requesting memory region!\n"); - return -EBUSY; - } - - prv->regs = devm_ioremap(dev, regs_paddr, regs_size); - if (!prv->regs) { - dev_err(dev, "Error mapping memory region!\n"); - return -ENOMEM; - } + prv->regs = regs; mtd->name = "MPC5121 NAND"; chip->legacy.dev_ready = mpc5121_nfc_dev_ready; -- 2.55.0