Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/818277/?format=api
{ "id": 818277, "url": "http://patchwork.ozlabs.org/api/patches/818277/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-mtd/patch/20170925145352.13145-3-miquel.raynal@free-electrons.com/", "project": { "id": 3, "url": "http://patchwork.ozlabs.org/api/projects/3/?format=api", "name": "Linux MTD development", "link_name": "linux-mtd", "list_id": "linux-mtd.lists.infradead.org", "list_email": "linux-mtd@lists.infradead.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20170925145352.13145-3-miquel.raynal@free-electrons.com>", "list_archive_url": null, "date": "2017-09-25T14:53:51", "name": "[2/3] mtd: nand: pxa3xx: enable NAND controller if the SoC needs it", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "706db5abf535338a6616e8b46684fe67c8f2cc8d", "submitter": { "id": 71917, "url": "http://patchwork.ozlabs.org/api/people/71917/?format=api", "name": "Miquel Raynal", "email": "miquel.raynal@free-electrons.com" }, "delegate": { "id": 58324, "url": "http://patchwork.ozlabs.org/api/users/58324/?format=api", "username": "bbrezillon", "first_name": "Boris", "last_name": "Brezillon", "email": "boris.brezillon@free-electrons.com" }, "mbox": "http://patchwork.ozlabs.org/project/linux-mtd/patch/20170925145352.13145-3-miquel.raynal@free-electrons.com/mbox/", "series": [ { "id": 4976, "url": "http://patchwork.ozlabs.org/api/series/4976/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-mtd/list/?series=4976", "date": "2017-09-25T14:53:50", "name": "Enable NAND on Armada-7040-DB board", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/4976/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/818277/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/818277/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": [ "ozlabs.org; spf=none (mailfrom)\n\tsmtp.mailfrom=lists.infradead.org (client-ip=65.50.211.133;\n\thelo=bombadil.infradead.org;\n\tenvelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=lists.infradead.org\n\theader.i=@lists.infradead.org header.b=\"LOZNGVr9\"; \n\tdkim-atps=neutral" ], "Received": [ "from bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3y16cd3T8Gz9t67\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 26 Sep 2017 00:57:05 +1000 (AEST)", "from localhost ([127.0.0.1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1dwUoY-0007Lh-1G; Mon, 25 Sep 2017 14:56:54 +0000", "from mail.free-electrons.com ([62.4.15.54])\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1dwUmf-0004tA-70; Mon, 25 Sep 2017 14:55:00 +0000", "by mail.free-electrons.com (Postfix, from userid 110)\n\tid 0BF3C20830; Mon, 25 Sep 2017 16:54:35 +0200 (CEST)", "from localhost.localdomain\n\t(LStLambert-657-1-97-87.w90-63.abo.wanadoo.fr [90.63.216.87])\n\tby mail.free-electrons.com (Postfix) with ESMTPSA id 95671208D0;\n\tMon, 25 Sep 2017 16:54:24 +0200 (CEST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20170209; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe:\n\tList-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References:\n\tIn-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID:\n\tContent-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc\n\t:Resent-Message-ID:List-Owner;\n\tbh=f9ZPorFjA95U07MiWeXE8d5UuqNWshTUb8CNmRL+I/w=;\n\tb=LOZNGVr9W640q6KGl5e+RtFKml\n\t/iVjDXmSCPwmxDltoN6VjNgkp6E98aLaW+0PBerynJTaDX1+HLXLzihJxdxMZ49SJJQgptOHmmvwK\n\tiPnHaoGTI+y1fAvZ6QiV+o3XBPqda84ejQqpxLBueyXkMeyHrBO5i6/WJD5WxjWPDux9/7u6x5Otx\n\tfMrb868tsSqZvgpAlC41QhfMWM7FLqHsB3oYYnXCPn/hQ82MufIR/uRERe1Hk/q1orRN3eMpbIitM\n\taPPhEU+CcCWjglZ0Xhb02nI30tGkEZ4uL29DxAQTeWfvabk7Eg/b1mmLVYneK+gxTmn25ljHsiXNo\n\tEJj7vtEQ==;", "X-Spam-Checker-Version": "SpamAssassin 3.4.0 (2014-02-07) on\n\tmail.free-electrons.com", "X-Spam-Level": "", "X-Spam-Status": "No, score=-1.0 required=5.0 tests=ALL_TRUSTED,SHORTCIRCUIT,\n\tURIBL_BLOCKED shortcircuit=ham autolearn=disabled version=3.4.0", "From": "Miquel Raynal <miquel.raynal@free-electrons.com>", "To": "David Woodhouse <dwmw2@infradead.org>,\n\tBrian Norris <computersforpeace@gmail.com>,\n\tBoris Brezillon <boris.brezillon@free-electrons.com>,\n\tMarek Vasut <marek.vasut@gmail.com>,\n\tRichard Weinberger <richard@nod.at>, \n\tCyrille Pitchen <cyrille.pitchen@wedev4u.fr>,\n\tJason Cooper <jason@lakedaemon.net>, Andrew Lunn <andrew@lunn.ch>,\n\tGregory Clement <gregory.clement@free-electrons.com>,\n\tSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,\n\tEzequiel Garcia <ezequiel.garcia@free-electrons.com>,\n\tlinux-mtd@lists.infradead.org, devicetree@vger.kernel.org,\n\tlinux-arm-kernel@lists.infradead.org", "Subject": "[PATCH 2/3] mtd: nand: pxa3xx: enable NAND controller if the SoC\n\tneeds it", "Date": "Mon, 25 Sep 2017 16:53:51 +0200", "Message-Id": "<20170925145352.13145-3-miquel.raynal@free-electrons.com>", "X-Mailer": "git-send-email 2.11.0", "In-Reply-To": "<20170925145352.13145-1-miquel.raynal@free-electrons.com>", "References": "<20170925145352.13145-1-miquel.raynal@free-electrons.com>", "X-CRM114-Version": "20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ", "X-CRM114-CacheID": "sfid-20170925_075457_582829_D5447198 ", "X-CRM114-Status": "GOOD ( 16.06 )", "X-Spam-Score": "-1.9 (-)", "X-Spam-Report": "SpamAssassin version 3.4.1 on bombadil.infradead.org summary:\n\tContent analysis details: (-1.9 points)\n\tpts rule name description\n\t---- ----------------------\n\t--------------------------------------------------\n\t-0.0 SPF_PASS SPF: sender matches SPF record\n\t-0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay\n\tdomain\n\t-1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1%\n\t[score: 0.0000]", "X-BeenThere": "linux-mtd@lists.infradead.org", "X-Mailman-Version": "2.1.21", "Precedence": "list", "List-Id": "Linux MTD discussion mailing list <linux-mtd.lists.infradead.org>", "List-Unsubscribe": "<http://lists.infradead.org/mailman/options/linux-mtd>,\n\t<mailto:linux-mtd-request@lists.infradead.org?subject=unsubscribe>", "List-Archive": "<http://lists.infradead.org/pipermail/linux-mtd/>", "List-Post": "<mailto:linux-mtd@lists.infradead.org>", "List-Help": "<mailto:linux-mtd-request@lists.infradead.org?subject=help>", "List-Subscribe": "<http://lists.infradead.org/mailman/listinfo/linux-mtd>,\n\t<mailto:linux-mtd-request@lists.infradead.org?subject=subscribe>", "Cc": "Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,\n\tNadav Haklai <nadavh@marvell.com>,\n\tAntoine Tenart <antoine.tenart@free-electrons.com>,\n\tMiquel Raynal <miquel.raynal@free-electrons.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Sender": "\"linux-mtd\" <linux-mtd-bounces@lists.infradead.org>", "Errors-To": "linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org" }, "content": "Marvell recent SoCs like A7k/A8k do not boot with NAND flash\ncontroller activated by default. Enabling the controller is a matter of\nwriting in a system controller register that may also be used for other\nNAND related choices.\n\nThis change is needed to stay bootloader independent.\n\nSigned-off-by: Miquel Raynal <miquel.raynal@free-electrons.com>\n---\n drivers/mtd/nand/pxa3xx_nand.c | 41 +++++++++++++++++++++++++++++++++++++----\n 1 file changed, 37 insertions(+), 4 deletions(-)", "diff": "diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c\nindex 85cff68643e0..90b9a9ccbe60 100644\n--- a/drivers/mtd/nand/pxa3xx_nand.c\n+++ b/drivers/mtd/nand/pxa3xx_nand.c\n@@ -30,6 +30,8 @@\n #include <linux/of.h>\n #include <linux/of_device.h>\n #include <linux/platform_data/mtd-nand-pxa3xx.h>\n+#include <linux/mfd/syscon.h>\n+#include <linux/regmap.h>\n \n #define\tCHIP_DELAY_TIMEOUT\tmsecs_to_jiffies(200)\n #define NAND_STOP_DELAY\t\tmsecs_to_jiffies(40)\n@@ -45,6 +47,10 @@\n */\n #define INIT_BUFFER_SIZE\t2048\n \n+/* System control register and bit to enable NAND on some SoCs */\n+#define GENCONF_SOC_DEVICE_MUX\t0x208\n+#define GENCONF_SOC_DEVICE_MUX_NFC_EN BIT(0)\n+\n /* registers and bit definitions */\n #define NDCR\t\t(0x00) /* Control register */\n #define NDTR0CS0\t(0x04) /* Timing Parameter 0 for CS0 */\n@@ -174,6 +180,7 @@ enum {\n enum pxa3xx_nand_variant {\n \tPXA3XX_NAND_VARIANT_PXA,\n \tPXA3XX_NAND_VARIANT_ARMADA370,\n+\tPXA3XX_NAND_VARIANT_ARMADA_8K,\n };\n \n struct pxa3xx_nand_host {\n@@ -425,6 +432,10 @@ static const struct of_device_id pxa3xx_nand_dt_ids[] = {\n \t\t.compatible = \"marvell,armada370-nand\",\n \t\t.data = (void *)PXA3XX_NAND_VARIANT_ARMADA370,\n \t},\n+\t{\n+\t\t.compatible = \"marvell,armada-8k-nand\",\n+\t\t.data = (void *)PXA3XX_NAND_VARIANT_ARMADA_8K,\n+\t},\n \t{}\n };\n MODULE_DEVICE_TABLE(of, pxa3xx_nand_dt_ids);\n@@ -825,7 +836,8 @@ static irqreturn_t pxa3xx_nand_irq(int irq, void *devid)\n \t\tinfo->retcode = ERR_UNCORERR;\n \tif (status & NDSR_CORERR) {\n \t\tinfo->retcode = ERR_CORERR;\n-\t\tif (info->variant == PXA3XX_NAND_VARIANT_ARMADA370 &&\n+\t\tif ((info->variant == PXA3XX_NAND_VARIANT_ARMADA370 ||\n+\t\t info->variant == PXA3XX_NAND_VARIANT_ARMADA_8K) &&\n \t\t info->ecc_bch)\n \t\t\tinfo->ecc_err_cnt = NDSR_ERR_CNT(status);\n \t\telse\n@@ -888,7 +900,8 @@ static irqreturn_t pxa3xx_nand_irq(int irq, void *devid)\n \t\tnand_writel(info, NDCB0, info->ndcb2);\n \n \t\t/* NDCB3 register is available in NFCv2 (Armada 370/XP SoC) */\n-\t\tif (info->variant == PXA3XX_NAND_VARIANT_ARMADA370)\n+\t\tif (info->variant == PXA3XX_NAND_VARIANT_ARMADA370 ||\n+\t\t info->variant == PXA3XX_NAND_VARIANT_ARMADA_8K)\n \t\t\tnand_writel(info, NDCB0, info->ndcb3);\n \t}\n \n@@ -1671,7 +1684,8 @@ static int pxa3xx_nand_scan(struct mtd_info *mtd)\n \t\tchip->options |= NAND_BUSWIDTH_16;\n \n \t/* Device detection must be done with ECC disabled */\n-\tif (info->variant == PXA3XX_NAND_VARIANT_ARMADA370)\n+\tif (info->variant == PXA3XX_NAND_VARIANT_ARMADA370 ||\n+\t info->variant == PXA3XX_NAND_VARIANT_ARMADA_8K)\n \t\tnand_writel(info, NDECCCTRL, 0x0);\n \n \tif (pdata->flash_bbt)\n@@ -1709,7 +1723,8 @@ static int pxa3xx_nand_scan(struct mtd_info *mtd)\n \t * (aka splitted) command handling,\n \t */\n \tif (mtd->writesize > PAGE_CHUNK_SIZE) {\n-\t\tif (info->variant == PXA3XX_NAND_VARIANT_ARMADA370) {\n+\t\tif (info->variant == PXA3XX_NAND_VARIANT_ARMADA370 ||\n+\t\t info->variant == PXA3XX_NAND_VARIANT_ARMADA_8K) {\n \t\t\tchip->cmdfunc = nand_cmdfunc_extended;\n \t\t} else {\n \t\t\tdev_err(&info->pdev->dev,\n@@ -1928,6 +1943,24 @@ static int pxa3xx_nand_probe_dt(struct platform_device *pdev)\n \tif (!of_id)\n \t\treturn 0;\n \n+\t/*\n+\t * Some SoCs like A7k/A8k need to enable manually the NAND\n+\t * controller to avoid being bootloader dependent. This is done\n+\t * through the use of a single bit in the System Functions registers.\n+\t */\n+\tif (pxa3xx_nand_get_variant(pdev) == PXA3XX_NAND_VARIANT_ARMADA_8K) {\n+\t\tstruct regmap *sysctrl_base = syscon_regmap_lookup_by_phandle(\n+\t\t\tpdev->dev.of_node, \"marvell,system-controller\");\n+\t\tu32 reg;\n+\n+\t\tif (IS_ERR(sysctrl_base))\n+\t\t\treturn PTR_ERR(sysctrl_base);\n+\n+\t\tregmap_read(sysctrl_base, GENCONF_SOC_DEVICE_MUX, ®);\n+\t\treg |= GENCONF_SOC_DEVICE_MUX_NFC_EN;\n+\t\tregmap_write(sysctrl_base, GENCONF_SOC_DEVICE_MUX, reg);\n+\t}\n+\n \tpdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);\n \tif (!pdata)\n \t\treturn -ENOMEM;\n", "prefixes": [ "2/3" ] }