From nobody Fri Dec 19 16:05:25 2025 Received: from relay.smtp-ext.broadcom.com (unknown [192.19.166.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2100110A1E for ; Fri, 23 Feb 2024 03:48:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660111; cv=none; b=J3+DKLaE1d3JC++VpbwStp76/fD9W5XNn1vKnoB4YKzeD5ifVr8rIdDrhgELCJChPlcuenPxJhg3XhkbEaNNzsyesjxN19gSuxZrdDh/cqUIhz0Uc1owGu6N2RFN26qS10kg45EWur3KpwNNW9qFsstUBiiC7w1PyFQGnq9CJig= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660111; c=relaxed/simple; bh=TeVtdX37iglXRJatw6wyyl1lRRIAsFqkPmZrbmC3too=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=bLgBPB9cXtkrPlNHznYA0YgxWM6apsMLhXHTejqZZ6EqvIAsTVIM+Cjru8OyVa2g7cTka2T1IEQRQAqtdfF2xicUVqPx+W12GWK2xdpT2WkgZV8iD5Mqj3ykjMHglZR7UX+IvITy2xcNIC51oET6N2vz5/20qa+tvMquy54qqQ4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=JwhKpcSi; arc=none smtp.client-ip=192.19.166.228 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="JwhKpcSi" Received: from mail-lvn-it-01.lvn.broadcom.net (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id 59FABC0047EF; Thu, 22 Feb 2024 19:48:20 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 59FABC0047EF DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1708660100; bh=TeVtdX37iglXRJatw6wyyl1lRRIAsFqkPmZrbmC3too=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JwhKpcSil3kvONwj/g5TRzwPhwrMvWACFghJl2BckzNhcgRjAjdtJarBx2pQMOwe5 h82PSr+5yESiHsa5oZ5WxRv4TvhJP9iY1RXJRCt4qNM4CDWPWZFasa9HGfDRFr6C+4 adxPHUaANr1AwZ/I/zwIuyCGUQZkHiZI/++IltRs= Received: from bcacpedev-irv-3.lvn.broadcom.net (bcacpedev-irv-3.lvn.broadcom.net [10.173.232.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail-lvn-it-01.lvn.broadcom.net (Postfix) with ESMTPSA id CBC1F18041CAC4; Thu, 22 Feb 2024 19:48:18 -0800 (PST) From: William Zhang To: Linux MTD List , Linux ARM List , Broadcom Kernel List Cc: f.fainelli@gmail.com, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, David Regan , Dan Carpenter , William Zhang , Miquel Raynal , linux-kernel@vger.kernel.org, Vignesh Raghavendra , Brian Norris , Richard Weinberger Subject: [PATCH v6 01/13] mtd: rawnand: brcmnand: exec_op helper functions return type fixes Date: Thu, 22 Feb 2024 19:47:46 -0800 Message-Id: <20240223034758.13753-2-william.zhang@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240223034758.13753-1-william.zhang@broadcom.com> References: <20240223034758.13753-1-william.zhang@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: David Regan Fix return types for exec_op reset and status helper functions. Reported-by: Dan Carpenter Closes: http://lists.infradead.org/pipermail/linux-mtd/2023-December/102423= .html Fixes: 3c8260ce7663 ("mtd: rawnand: brcmnand: exec_op implementation") Signed-off-by: David Regan Signed-off-by: William Zhang Reviewed-by: William Zhang Acked-by: Florian Fainelli Reviewed-by: Florian Fainelli --- Changes in v6: - Moved style fixes to a separate patch Changes in v5: None Changes in v4: - Fix the commit id in the fixes tag Changes in v3: None Changes in v2: - Added to patch series drivers/mtd/nand/raw/brcmnand/brcmnand.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/ra= w/brcmnand/brcmnand.c index 8faca43ae1ff..b8e70fc64348 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -625,7 +625,7 @@ enum { /* Only for v7.2 */ #define ACC_CONTROL_ECC_EXT_SHIFT 13 =20 -static u8 brcmnand_status(struct brcmnand_host *host); +static int brcmnand_status(struct brcmnand_host *host); =20 static inline bool brcmnand_non_mmio_ops(struct brcmnand_controller *ctrl) { @@ -1690,7 +1690,7 @@ static int brcmnand_waitfunc(struct nand_chip *chip) INTFC_FLASH_STATUS; } =20 -static u8 brcmnand_status(struct brcmnand_host *host) +static int brcmnand_status(struct brcmnand_host *host) { struct nand_chip *chip =3D &host->chip; struct mtd_info *mtd =3D nand_to_mtd(chip); @@ -1701,7 +1701,7 @@ static u8 brcmnand_status(struct brcmnand_host *host) return brcmnand_waitfunc(chip); } =20 -static u8 brcmnand_reset(struct brcmnand_host *host) +static int brcmnand_reset(struct brcmnand_host *host) { struct nand_chip *chip =3D &host->chip; =20 @@ -2433,7 +2433,11 @@ static int brcmnand_exec_op(struct nand_chip *chip, =20 if (brcmnand_op_is_status(op)) { status =3D op->instrs[1].ctx.data.buf.in; - *status =3D brcmnand_status(host); + ret =3D brcmnand_status(host); + if (ret < 0) + return ret; + + *status =3D ret & 0xFF; =20 return 0; } --=20 2.37.3 From nobody Fri Dec 19 16:05:25 2025 Received: from relay.smtp-ext.broadcom.com (unknown [192.19.166.231]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A542BDDAA for ; Fri, 23 Feb 2024 03:48:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.231 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660110; cv=none; b=HybRhCPcA5Sa7hEmtcY9yOuFhCNII6p6Vh/Np1FcXOVWQRvuMaJR9pbYMjWKInQDc6zaFEOryT4IeWaZyzGwFiMKGd342OlojApTpPClKRhvAza9snR3pc96qKIZmXGuGBk2emRR/BlByPEW/KD4kf0HYJRdsr3ClysPERbkG1g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660110; c=relaxed/simple; bh=zTYFtRXVflXc15lp67aZg9HB9tF9WCLgh2W0BrCZeUs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ezB9E93aFDGabUS7isoD4KBf+j3JN3bB5MgeVSQ3kuBznzrznopy953sgoydz6oGVdDJK6j1cz8ErBzNvGNTaqvsUmYs9ao3aiNQFA2mV3FcVs6gzmRbXiFk/qh/Gl3wNT7r6iFyrnZ0Q6h+ATymo8xf+SHJZU/cCZ21TIDKCPI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=qqtBWCGK; arc=none smtp.client-ip=192.19.166.231 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="qqtBWCGK" Received: from mail-lvn-it-01.lvn.broadcom.net (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id 54EC2C0019B2; Thu, 22 Feb 2024 19:48:22 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 54EC2C0019B2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1708660102; bh=zTYFtRXVflXc15lp67aZg9HB9tF9WCLgh2W0BrCZeUs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qqtBWCGK0+UEuZoIETnIEjVaEXP1DFFMp61JUNeA0OH2Jiu5TB/YHnVSTdhSOBUIh 0N36ajlspw0YROIddO7Y/WDc0kLU4WxXXBxVbxllwrhoyuxg+7xspZG2EidFltxp56 cpSbJ8+zLSiWDaTemb1zVpEoiIP/d4B0sz8jQgVw= Received: from bcacpedev-irv-3.lvn.broadcom.net (bcacpedev-irv-3.lvn.broadcom.net [10.173.232.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail-lvn-it-01.lvn.broadcom.net (Postfix) with ESMTPSA id CDA7718041CAC4; Thu, 22 Feb 2024 19:48:20 -0800 (PST) From: William Zhang To: Linux MTD List , Linux ARM List , Broadcom Kernel List Cc: f.fainelli@gmail.com, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, William Zhang , David Regan , Miquel Raynal , linux-kernel@vger.kernel.org, Vignesh Raghavendra , Brian Norris , Richard Weinberger Subject: [PATCH v6 02/13] mtd: rawnand: brcmnand: fix style issues Date: Thu, 22 Feb 2024 19:47:47 -0800 Message-Id: <20240223034758.13753-3-william.zhang@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240223034758.13753-1-william.zhang@broadcom.com> References: <20240223034758.13753-1-william.zhang@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Fix various style issues. Signed-off-by: David Regan Signed-off-by: William Zhang Reviewed-by: William Zhang Acked-by: Florian Fainelli --- Changes in v6: - Added to patch series Changes in v5: None Changes in v4: None Changes in v3: None Changes in v2: None drivers/mtd/nand/raw/brcmnand/brcmnand.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/ra= w/brcmnand/brcmnand.c index b8e70fc64348..5f34e5a51d25 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -2339,7 +2339,7 @@ static int brcmnand_write_oob_raw(struct nand_chip *c= hip, int page) } =20 static int brcmnand_exec_instr(struct brcmnand_host *host, int i, - const struct nand_operation *op) + const struct nand_operation *op) { const struct nand_op_instr *instr =3D &op->instrs[i]; struct brcmnand_controller *ctrl =3D host->ctrl; @@ -2353,7 +2353,7 @@ static int brcmnand_exec_instr(struct brcmnand_host *= host, int i, * (WAITRDY excepted). */ last_op =3D ((i =3D=3D (op->ninstrs - 1)) && (instr->type !=3D NAND_OP_WA= ITRDY_INSTR)) || - ((i =3D=3D (op->ninstrs - 2)) && (op->instrs[i+1].type =3D=3D NAND_OP_= WAITRDY_INSTR)); + ((i =3D=3D (op->ninstrs - 2)) && (op->instrs[i + 1].type =3D=3D NAND_O= P_WAITRDY_INSTR)); =20 switch (instr->type) { case NAND_OP_CMD_INSTR: @@ -2398,10 +2398,10 @@ static int brcmnand_exec_instr(struct brcmnand_host= *host, int i, =20 static int brcmnand_op_is_status(const struct nand_operation *op) { - if ((op->ninstrs =3D=3D 2) && - (op->instrs[0].type =3D=3D NAND_OP_CMD_INSTR) && - (op->instrs[0].ctx.cmd.opcode =3D=3D NAND_CMD_STATUS) && - (op->instrs[1].type =3D=3D NAND_OP_DATA_IN_INSTR)) + if (op->ninstrs =3D=3D 2 && + op->instrs[0].type =3D=3D NAND_OP_CMD_INSTR && + op->instrs[0].ctx.cmd.opcode =3D=3D NAND_CMD_STATUS && + op->instrs[1].type =3D=3D NAND_OP_DATA_IN_INSTR) return 1; =20 return 0; @@ -2409,10 +2409,10 @@ static int brcmnand_op_is_status(const struct nand_= operation *op) =20 static int brcmnand_op_is_reset(const struct nand_operation *op) { - if ((op->ninstrs =3D=3D 2) && - (op->instrs[0].type =3D=3D NAND_OP_CMD_INSTR) && - (op->instrs[0].ctx.cmd.opcode =3D=3D NAND_CMD_RESET) && - (op->instrs[1].type =3D=3D NAND_OP_WAITRDY_INSTR)) + if (op->ninstrs =3D=3D 2 && + op->instrs[0].type =3D=3D NAND_OP_CMD_INSTR && + op->instrs[0].ctx.cmd.opcode =3D=3D NAND_CMD_RESET && + op->instrs[1].type =3D=3D NAND_OP_WAITRDY_INSTR) return 1; =20 return 0; @@ -2440,8 +2440,7 @@ static int brcmnand_exec_op(struct nand_chip *chip, *status =3D ret & 0xFF; =20 return 0; - } - else if (brcmnand_op_is_reset(op)) { + } else if (brcmnand_op_is_reset(op)) { ret =3D brcmnand_reset(host); if (ret < 0) return ret; --=20 2.37.3 From nobody Fri Dec 19 16:05:25 2025 Received: from relay.smtp-ext.broadcom.com (unknown [192.19.166.231]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 990A81173E for ; Fri, 23 Feb 2024 03:48:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.231 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660114; cv=none; b=gzG4GWEP1q4Q/abG+GTfhKf1WziFGcjhMoyqU/wvBIZ9BLsq5aEqneu9b7eKaAGic22LfCvhjLD7iE4Fs2vxovHlOWfuRl1EJzoQhXL0mL8SmZpVtmeNoBS422Jg3a6Kgf+TCY2qqPCEc3rEcqtUh5dG2M/ugDdOhzG7xq6gRO0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660114; c=relaxed/simple; bh=1E8LlEJSmZyzjiVTNvXJAATm4YWjLO1n2vn04c4dfGA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=b5qcXh4A7ZSi0XLjT9gEY31Bp2qnpIZD/TKZ/69CGv5s09hheJ0PqQanRvWlhypgzj7Ob8dRUL0u6X7uIh1HqQ72qN3vLODUUq1QVPPnGT0hInASKHSGurksalGCtSlhLyxX3hrvalOQebosWc4RfQIGv03hjFyJxUqCDGwlDBM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=OSOvTxOv; arc=none smtp.client-ip=192.19.166.231 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="OSOvTxOv" Received: from mail-lvn-it-01.lvn.broadcom.net (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id 23F68C0019AB; Thu, 22 Feb 2024 19:48:26 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 23F68C0019AB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1708660106; bh=1E8LlEJSmZyzjiVTNvXJAATm4YWjLO1n2vn04c4dfGA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OSOvTxOvY72/fbB86m2S4hUe7kNtTp9vE0ml9JS6GpTKG2Y8D9LKYOOEv2+QMAgBZ 3BzW/N7Hc0BVNB6fd8BioT20YuRAu7sg4SQqMf3qzHl4MgBnlUhR1nYOLr0wPkdYiz eC3VgORvH/h+8EiZjNsTVHvr6IWQado7So8eIDqE= Received: from bcacpedev-irv-3.lvn.broadcom.net (bcacpedev-irv-3.lvn.broadcom.net [10.173.232.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail-lvn-it-01.lvn.broadcom.net (Postfix) with ESMTPSA id AC70F18041CAC4; Thu, 22 Feb 2024 19:48:24 -0800 (PST) From: William Zhang To: Linux MTD List , Linux ARM List , Broadcom Kernel List Cc: f.fainelli@gmail.com, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, David Regan , William Zhang , Miquel Raynal , linux-kernel@vger.kernel.org, Vignesh Raghavendra , Brian Norris , Richard Weinberger Subject: [PATCH v6 03/13] mtd: rawnand: brcmnand: update log level messages Date: Thu, 22 Feb 2024 19:47:48 -0800 Message-Id: <20240223034758.13753-4-william.zhang@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240223034758.13753-1-william.zhang@broadcom.com> References: <20240223034758.13753-1-william.zhang@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: David Regan Update log level messages so that more critical messages can be logged to console and help the troubleshooting with field devices. Signed-off-by: David Regan Signed-off-by: William Zhang Reviewed-by: William Zhang Acked-by: Florian Fainelli --- Changes in v6: - Fix style issue Changes in v5: - Update the commit message Changes in v4: - Revert the log level change for correctable ecc error Changes in v3: None Changes in v2: - Added to patch series drivers/mtd/nand/raw/brcmnand/brcmnand.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/ra= w/brcmnand/brcmnand.c index 5f34e5a51d25..f1f0de50b5f7 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -1084,8 +1084,8 @@ static int bcmnand_ctrl_poll_status(struct brcmnand_h= ost *host, if ((val & mask) =3D=3D expected_val) return 0; =20 - dev_warn(ctrl->dev, "timeout on status poll (expected %x got %x)\n", - expected_val, val & mask); + dev_err(ctrl->dev, "timeout on status poll (expected %x got %x)\n", + expected_val, val & mask); =20 return -ETIMEDOUT; } @@ -2137,7 +2137,7 @@ static int brcmnand_read(struct mtd_info *mtd, struct= nand_chip *chip, return err; } =20 - dev_dbg(ctrl->dev, "uncorrectable error at 0x%llx\n", + dev_err(ctrl->dev, "uncorrectable error at 0x%llx\n", (unsigned long long)err_addr); mtd->ecc_stats.failed++; /* NAND layer expects zero on ECC errors */ --=20 2.37.3 From nobody Fri Dec 19 16:05:25 2025 Received: from relay.smtp-ext.broadcom.com (unknown [192.19.166.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9DD5D53A1; Fri, 23 Feb 2024 03:48:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660111; cv=none; b=fV5uc8AuUfY6F7QqtK0ydkfgqvPpsqtn6wuJ7YHQnExkKP3hmvGFClg+TiGXOY0b1r8N3XX+d63bowPoJG/Ozn+vFEtpHp55v2BIK6lZ3l6hq228/qgjOGYgiMTDaRoOjDojsLTHak13QtYsppzWDMHt/c900Gl3FSZxOkg+YSQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660111; c=relaxed/simple; bh=PeF+Lu6UOwoi4TWgrSJsK4dG8fvqBckX5RwBDiDQSe0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=OzJnuAeiVM+W6Pf9jYeCiyPJrNDPxRxfeUqtSfDI6VM4AdYZfhxWfBzDOv0tzlVbQdkAPJGkWumyKnpgLsnwSc2BDt0FVpUsj9d1X+MJ1Uwe7f2JZ5lntqoQPfNKU+NoaCId/Q/2EwZ24CHstAhbsWsvvhwjgSO8/TQLemDM14g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=u1SvJ4vh; arc=none smtp.client-ip=192.19.166.228 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="u1SvJ4vh" Received: from mail-lvn-it-01.lvn.broadcom.net (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id E6244C0047F3; Thu, 22 Feb 2024 19:48:27 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com E6244C0047F3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1708660107; bh=PeF+Lu6UOwoi4TWgrSJsK4dG8fvqBckX5RwBDiDQSe0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=u1SvJ4vhhVwWxSuJbttdZpRUoHfpG2juTQnfnsME9UO6LI+1xe5Io/zN9sPqFEPBc CMTDH4nc0VPpi2xffFFda+0oSNG6PVSFXAW7lv+9jYpEyRad6tlM2IXtvx2gHhkdoU OS9FPfMO4LIP9bHzGGKyH/vtE5Sf4uJGsWRy6j04= Received: from bcacpedev-irv-3.lvn.broadcom.net (bcacpedev-irv-3.lvn.broadcom.net [10.173.232.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail-lvn-it-01.lvn.broadcom.net (Postfix) with ESMTPSA id 798A618041CAC4; Thu, 22 Feb 2024 19:48:26 -0800 (PST) From: William Zhang To: Linux MTD List , Linux ARM List , Broadcom Kernel List Cc: f.fainelli@gmail.com, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, William Zhang , David Regan , Rob Herring , Florian Fainelli , devicetree@vger.kernel.org, Brian Norris , linux-kernel@vger.kernel.org, Conor Dooley , Krzysztof Kozlowski , Vignesh Raghavendra , Miquel Raynal , Richard Weinberger , Kamal Dasu , Rob Herring Subject: [PATCH v6 04/13] dt-bindings: mtd: brcmnand: Updates for bcmbca SoCs Date: Thu, 22 Feb 2024 19:47:49 -0800 Message-Id: <20240223034758.13753-5-william.zhang@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240223034758.13753-1-william.zhang@broadcom.com> References: <20240223034758.13753-1-william.zhang@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Update the descriptions to reflect different families of broadband SoC and use the general name bcmbca for ARM based SoC. Remove the requirement of interrupts property to reflect the driver code and only require interrupt-names when interrupts property present. Also add myself to the list of maintainers. Signed-off-by: William Zhang Reviewed-by: David Regan Reviewed-by: Rob Herring Reviewed-by: Florian Fainelli Acked-by: Florian Fainelli --- Changes in v6: - Add reviewed-by tag Changes in v5: - Add reviewed-by tag Changes in v4: - Split the yaml changes into three patches. This is the first one Changes in v3: - Update brcm,nand-use-wp description - Revert the description change to BCM63168 SoC-specific NAND controller Changes in v2: - Revert the new compatible string nand-bcmbca - Drop the BCM63168 compatible fix to avoid any potential ABI incompatibility issue - Simplify the explanation for brcm,nand-use-wp - Keep the interrupt name requirement when interrupt number is specified .../devicetree/bindings/mtd/brcm,brcmnand.yaml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml b/Doc= umentation/devicetree/bindings/mtd/brcm,brcmnand.yaml index f57e96374e67..e54ca08a798a 100644 --- a/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml +++ b/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml @@ -9,6 +9,7 @@ title: Broadcom STB NAND Controller maintainers: - Brian Norris - Kamal Dasu + - William Zhang =20 description: | The Broadcom Set-Top Box NAND controller supports low-level access to ra= w NAND @@ -18,9 +19,10 @@ description: | supports basic PROGRAM and READ functions, among other features. =20 This controller was originally designed for STB SoCs (BCM7xxx) but is now - available on a variety of Broadcom SoCs, including some BCM3xxx, BCM63xx= , and - iProc/Cygnus. Its history includes several similar (but not fully regist= er - compatible) versions. + available on a variety of Broadcom SoCs, including some BCM3xxx, MIPS ba= sed + Broadband SoC (BCM63xx), ARM based Broadband SoC (BCMBCA) and iProc/Cygn= us. + Its history includes several similar (but not fully register compatible) + versions. =20 -- Additional SoC-specific NAND controller properties -- =20 @@ -53,7 +55,7 @@ properties: - brcm,brcmnand-v7.2 - brcm,brcmnand-v7.3 - const: brcm,brcmnand - - description: BCM63138 SoC-specific NAND controller + - description: BCMBCA SoC-specific NAND controller items: - const: brcm,nand-bcm63138 - enum: @@ -177,6 +179,8 @@ allOf: - const: iproc-idm - const: iproc-ext - if: + required: + - interrupts properties: interrupts: minItems: 2 @@ -189,7 +193,6 @@ unevaluatedProperties: false required: - reg - reg-names - - interrupts =20 examples: - | --=20 2.37.3 From nobody Fri Dec 19 16:05:25 2025 Received: from relay.smtp-ext.broadcom.com (unknown [192.19.166.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 93876DDB1; Fri, 23 Feb 2024 03:48:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660112; cv=none; b=GoYGqYSJE9qzjVBd4xOWj+5yhCRXIuUzRIOi36v1cHUH/FfbxW5cI0nM98LGaL9uAcUUIGbeJYAw4LmZywLLPahmBM3rZAZHatqDuVVhX8xlAU46GdgwfrcXjvvpCdpD+Y5Lfq8IOzU9XulAWG8FOZaCa8BJjVKKDeZpRbgI/k8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660112; c=relaxed/simple; bh=VL3W4Hrd8AMxNoY1VfirYQHtQnsee+7UFtazgfSJcYc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=l1tt0rDSrzhPM5woWgCFB/AiqUgZsenYo8F/UVvG8NQs1tIcNxN5Y4XZNTHgDq/pBF0N0KgqpaC0cImBf4idRhcx/7LD20Rx1CGExLPCrzGYpRKdPS7e+BYYVIK//+E/1vr6nxNmZ5+6I0zbnmwjkJiKOIQiAdTFVUe6v7vpDQk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=gRg1zp2L; arc=none smtp.client-ip=192.19.166.228 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="gRg1zp2L" Received: from mail-lvn-it-01.lvn.broadcom.net (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id A4D28C0047FE; Thu, 22 Feb 2024 19:48:28 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com A4D28C0047FE DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1708660108; bh=VL3W4Hrd8AMxNoY1VfirYQHtQnsee+7UFtazgfSJcYc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gRg1zp2LO7EHCQAQD6CuliV5gJm6QoHnJMZdC+vvfiWtGdDkRK7ezoZGnv+rjzquX AT5omQCtRdR8imYenbIrwU4D7vnIE74sooNYAQo/floXoWrDs9NHPh+pFWiFN3FiG7 RYECOPUu6/8J13dsvMGO06RVgD1BHpZCzl0Sddqw= Received: from bcacpedev-irv-3.lvn.broadcom.net (bcacpedev-irv-3.lvn.broadcom.net [10.173.232.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail-lvn-it-01.lvn.broadcom.net (Postfix) with ESMTPSA id 390B718041CAC4; Thu, 22 Feb 2024 19:48:27 -0800 (PST) From: William Zhang To: Linux MTD List , Linux ARM List , Broadcom Kernel List Cc: f.fainelli@gmail.com, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, William Zhang , Conor Dooley , Florian Fainelli , devicetree@vger.kernel.org, Brian Norris , linux-kernel@vger.kernel.org, Conor Dooley , Krzysztof Kozlowski , Vignesh Raghavendra , Miquel Raynal , Richard Weinberger , Kamal Dasu , Rob Herring Subject: [PATCH v6 05/13] dt-bindings: mtd: brcmnand: Add WP pin connection property Date: Thu, 22 Feb 2024 19:47:50 -0800 Message-Id: <20240223034758.13753-6-william.zhang@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240223034758.13753-1-william.zhang@broadcom.com> References: <20240223034758.13753-1-william.zhang@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add brcm,wp-not-connected property to have an option for disabling this feature on broadband board design that does not connect WP pin. Signed-off-by: William Zhang Reviewed-by: Conor Dooley Reviewed-by: Florian Fainelli Acked-by: Florian Fainelli --- Changes in v6: - Add reviewed-by tags Changes in v5: - Update the description of this new property Changes in v4: - Move the WP pin property to this separate patch and change it to boolean type. Changes in v3: None Changes in v2: None Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml b/Doc= umentation/devicetree/bindings/mtd/brcm,brcmnand.yaml index e54ca08a798a..6a717bcedfd3 100644 --- a/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml +++ b/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml @@ -113,6 +113,13 @@ properties: earlier versions of this core that include WP type: boolean =20 + brcm,wp-not-connected: + description: + Use this property when WP pin is not physically wired to the NAND ch= ip. + Write protection feature cannot be used. By default, controller assu= mes + the pin is connected and feature is used. + $ref: /schemas/types.yaml#/definitions/flag + patternProperties: "^nand@[a-f0-9]$": type: object --=20 2.37.3 From nobody Fri Dec 19 16:05:25 2025 Received: from relay.smtp-ext.broadcom.com (unknown [192.19.166.231]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 38DAFDDBB; Fri, 23 Feb 2024 03:48:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.231 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660111; cv=none; b=EFGMqPJ8Gw3qUinFt2BDoyRPQ9JZV9tl4gB8SC1YDns/O7FzPIx+9dtlqUIJePG0duBSpLWFBP2Y3nrM57j6d1TEZc7tHwbSJTvbmHFeYaxhkXT51PoPpqwQtaF8CspUIvZzeZt0X2njJauZVefjpaizK9rE8vAB8JjVaVq0u3c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660111; c=relaxed/simple; bh=jLwEb4I1DX2qFCUdUG5NZdbf5UdXONu/inu49U3VjgQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=nwIOToFDJf82+FvujFvxg0mtNkK4c7h8SbGyHUmj2mDaD3ACQLuBlmbwegsJ2Asu+yGvSeDrBfevmRou217NRJYVZbtINxiVmAfgLv7WFxJ2xuXq199KsH/L0o5IN8I9BietbTBD0FZpxnnfaZmTyFY9mBCLP4EWeZczZDJ8jQE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=MevVbaeQ; arc=none smtp.client-ip=192.19.166.231 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="MevVbaeQ" Received: from mail-lvn-it-01.lvn.broadcom.net (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id 65382C001BF5; Thu, 22 Feb 2024 19:48:29 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 65382C001BF5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1708660109; bh=jLwEb4I1DX2qFCUdUG5NZdbf5UdXONu/inu49U3VjgQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MevVbaeQgn8ezCqYhd8D4Yq2/ooO1PpfIkwMUi4lsOjKaUSW95jLsWZOzfV1mJYBr pXOC1VTHS+HPUwHSRkUAyZIOOsLHE4okImWIqQCV7GmrfhoTvrQeqcHUj804jzb27X U7HpLoOl8SHgpkHDtST3gYpfzuG8oHB7qtIRx3Oc= Received: from bcacpedev-irv-3.lvn.broadcom.net (bcacpedev-irv-3.lvn.broadcom.net [10.173.232.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail-lvn-it-01.lvn.broadcom.net (Postfix) with ESMTPSA id ED05418041CAC4; Thu, 22 Feb 2024 19:48:27 -0800 (PST) From: William Zhang To: Linux MTD List , Linux ARM List , Broadcom Kernel List Cc: f.fainelli@gmail.com, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, William Zhang , devicetree@vger.kernel.org, Brian Norris , linux-kernel@vger.kernel.org, Conor Dooley , Krzysztof Kozlowski , Vignesh Raghavendra , Miquel Raynal , Richard Weinberger , Kamal Dasu , Rob Herring Subject: [PATCH v6 06/13] dt-bindings: mtd: brcmnand: Add ecc strap property Date: Thu, 22 Feb 2024 19:47:51 -0800 Message-Id: <20240223034758.13753-7-william.zhang@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240223034758.13753-1-william.zhang@broadcom.com> References: <20240223034758.13753-1-william.zhang@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add brcm,nand-ecc-use-strap to get ecc and spare area size settings from board boot strap for broadband board designs because they do not specify ecc setting in dts but rather using the strap setting. Signed-off-by: William Zhang Acked-by: Florian Fainelli Reviewed-by: Conor Dooley --- Changes in v6: - Add other nand ecc properties to the exclude check list - Update the brcm,nand-ecc-use-strap property description Changes in v5: - Update the description for this ecc strap property - Add check to make sure brcm,nand-ecc-use-strap and nand-ecc-strength/brcm,nand-oob-sector-size can not be used at the same time Changes in v4: - Move ecc strap property to this separate patch and remove some non-binding related text from the description Changes in v3: None Changes in v2: None .../bindings/mtd/brcm,brcmnand.yaml | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml b/Doc= umentation/devicetree/bindings/mtd/brcm,brcmnand.yaml index 6a717bcedfd3..064e840aeaa1 100644 --- a/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml +++ b/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml @@ -146,6 +146,15 @@ patternProperties: layout. $ref: /schemas/types.yaml#/definitions/uint32 =20 + brcm,nand-ecc-use-strap: + description: + This property requires the host system to get the ECC related + settings from the SoC NAND boot strap configuration instead of + the generic NAND ECC settings. This is a common hardware design + on BCMBCA based boards. This strap ECC option and generic NAND + ECC option can not be specified at the same time. + $ref: /schemas/types.yaml#/definitions/flag + unevaluatedProperties: false =20 allOf: @@ -195,6 +204,21 @@ allOf: required: - interrupt-names =20 + - if: + patternProperties: + "^nand@[a-f0-9]$": + required: + - brcm,nand-ecc-use-strap + then: + patternProperties: + "^nand@[a-f0-9]$": + properties: + nand-ecc-strength: false + nand-ecc-step-size: false + nand-ecc-maximize: false + nand-ecc-algo: false + brcm,nand-oob-sector-size: false + unevaluatedProperties: false =20 required: --=20 2.37.3 From nobody Fri Dec 19 16:05:26 2025 Received: from relay.smtp-ext.broadcom.com (unknown [192.19.166.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D0BC6111A4; Fri, 23 Feb 2024 03:48:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660113; cv=none; b=oDoSbYPpQbIEhhGFwmt7ixZl93D3Y7KCdnVqVs1b/StaAHPzWTSBu/M/j6dP9jHxFIZ3BvOlQFRnJArMrdxndSnEsH0djFkZg1q4sS+n62teT6fDrQIuCpJypq+0jiSzXZHLCOs7lKVxCd1ieVXUsusQIM0hmjdpLKmzkv9j3K8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660113; c=relaxed/simple; bh=P4WrSEZ+lf9Yhm0wuf1AyqrsyVGkf409VdDsGSXqEzo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=bJAQE1mmPldfA313ngI/veteYrzJdT/iHJzzAUltvHWD0clxqyhud2t2JKYg3EG3ErN93SjDOvmo5e8nNlZEMja1dstLu/SdaLdfjpxVzlSd0LyTXqPZImWUapHIyaIaoo5kiNvrx8+H3ix3G43umIrV/ZWK6pgV1JJICCKVg+I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=FQJIPad6; arc=none smtp.client-ip=192.19.166.228 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="FQJIPad6" Received: from mail-lvn-it-01.lvn.broadcom.net (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id 07117C004EC4; Thu, 22 Feb 2024 19:48:30 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 07117C004EC4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1708660110; bh=P4WrSEZ+lf9Yhm0wuf1AyqrsyVGkf409VdDsGSXqEzo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FQJIPad6oemyChBc9fUzV8d69iUTmaqzohrpRyuhJaF1lpEZjbGD4RDrgxrSshgoC ilk3+EnqyeBtjNS08OhGF++lepvhkms03UJF45edotlo+m5+te1sA3JfLd6l1B47Xj b+yY6Oa7c6q9OuXRAdWJJzxkoPq3WDL/EmnLSm+E= Received: from bcacpedev-irv-3.lvn.broadcom.net (bcacpedev-irv-3.lvn.broadcom.net [10.173.232.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail-lvn-it-01.lvn.broadcom.net (Postfix) with ESMTPSA id 9522618041CAC4; Thu, 22 Feb 2024 19:48:28 -0800 (PST) From: William Zhang To: Linux MTD List , Linux ARM List , Broadcom Kernel List Cc: f.fainelli@gmail.com, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, William Zhang , David Regan , devicetree@vger.kernel.org, Conor Dooley , Andre Przywara , linux-kernel@vger.kernel.org, Krzysztof Kozlowski , Rob Herring , =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , Florian Fainelli , Alexandre TORGUE , Shawn Guo Subject: [PATCH v6 07/13] ARM: dts: broadcom: bcmbca: Add NAND controller node Date: Thu, 22 Feb 2024 19:47:52 -0800 Message-Id: <20240223034758.13753-8-william.zhang@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240223034758.13753-1-william.zhang@broadcom.com> References: <20240223034758.13753-1-william.zhang@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add support for Broadcom STB NAND controller in BCMBCA ARMv7 chip dts files. Signed-off-by: William Zhang Reviewed-by: David Regan Acked-by: Florian Fainelli --- Changes in v6: None Changes in v5: None Changes in v4: - Move the board related dts setting from SoC dtsi to board dts Changes in v3: None Changes in v2: None arch/arm/boot/dts/broadcom/bcm47622.dtsi | 14 ++++++++++++++ arch/arm/boot/dts/broadcom/bcm63138.dtsi | 7 ++++++- arch/arm/boot/dts/broadcom/bcm63148.dtsi | 14 ++++++++++++++ arch/arm/boot/dts/broadcom/bcm63178.dtsi | 14 ++++++++++++++ arch/arm/boot/dts/broadcom/bcm6756.dtsi | 14 ++++++++++++++ arch/arm/boot/dts/broadcom/bcm6846.dtsi | 14 ++++++++++++++ arch/arm/boot/dts/broadcom/bcm6855.dtsi | 14 ++++++++++++++ arch/arm/boot/dts/broadcom/bcm6878.dtsi | 14 ++++++++++++++ arch/arm/boot/dts/broadcom/bcm947622.dts | 10 ++++++++++ arch/arm/boot/dts/broadcom/bcm963138.dts | 10 ++++++++++ arch/arm/boot/dts/broadcom/bcm963138dvt.dts | 14 +++++++------- arch/arm/boot/dts/broadcom/bcm963148.dts | 10 ++++++++++ arch/arm/boot/dts/broadcom/bcm963178.dts | 10 ++++++++++ arch/arm/boot/dts/broadcom/bcm96756.dts | 10 ++++++++++ arch/arm/boot/dts/broadcom/bcm96846.dts | 10 ++++++++++ arch/arm/boot/dts/broadcom/bcm96855.dts | 10 ++++++++++ arch/arm/boot/dts/broadcom/bcm96878.dts | 10 ++++++++++ 17 files changed, 191 insertions(+), 8 deletions(-) diff --git a/arch/arm/boot/dts/broadcom/bcm47622.dtsi b/arch/arm/boot/dts/b= roadcom/bcm47622.dtsi index 7cd38de118c3..485863f9c420 100644 --- a/arch/arm/boot/dts/broadcom/bcm47622.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm47622.dtsi @@ -138,6 +138,20 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm/boot/dts/broadcom/bcm63138.dtsi b/arch/arm/boot/dts/b= roadcom/bcm63138.dtsi index 4ef02283612b..e74ba6bf370d 100644 --- a/arch/arm/boot/dts/broadcom/bcm63138.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm63138.dtsi @@ -229,7 +229,12 @@ nand_controller: nand-controller@2000 { reg-names =3D "nand", "nand-int-base"; status =3D "disabled"; interrupts =3D ; - interrupt-names =3D "nand"; + interrupt-names =3D "nand_ctlrdy"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + }; }; =20 serial@4400 { diff --git a/arch/arm/boot/dts/broadcom/bcm63148.dtsi b/arch/arm/boot/dts/b= roadcom/bcm63148.dtsi index 24431de1810e..53703827ee3f 100644 --- a/arch/arm/boot/dts/broadcom/bcm63148.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm63148.dtsi @@ -119,5 +119,19 @@ hsspi: spi@1000 { num-cs =3D <8>; status =3D "disabled"; }; + + nand_controller: nand-controller@2000 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x2000 0x600>, <0xf0 0x10>; + reg-names =3D "nand", "nand-int-base"; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + }; + }; }; }; diff --git a/arch/arm/boot/dts/broadcom/bcm63178.dtsi b/arch/arm/boot/dts/b= roadcom/bcm63178.dtsi index 3f9aed96babf..6d8d33498983 100644 --- a/arch/arm/boot/dts/broadcom/bcm63178.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm63178.dtsi @@ -129,6 +129,20 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm/boot/dts/broadcom/bcm6756.dtsi b/arch/arm/boot/dts/br= oadcom/bcm6756.dtsi index 1d8d957d65dd..6433f8fa5eff 100644 --- a/arch/arm/boot/dts/broadcom/bcm6756.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm6756.dtsi @@ -139,6 +139,20 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm/boot/dts/broadcom/bcm6846.dtsi b/arch/arm/boot/dts/br= oadcom/bcm6846.dtsi index cf92cf8c4693..ee361cb00b7c 100644 --- a/arch/arm/boot/dts/broadcom/bcm6846.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm6846.dtsi @@ -119,5 +119,19 @@ hsspi: spi@1000 { num-cs =3D <8>; status =3D "disabled"; }; + + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + }; + }; }; }; diff --git a/arch/arm/boot/dts/broadcom/bcm6855.dtsi b/arch/arm/boot/dts/br= oadcom/bcm6855.dtsi index 52d6bc89f9f8..52915ec6f339 100644 --- a/arch/arm/boot/dts/broadcom/bcm6855.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm6855.dtsi @@ -129,6 +129,20 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm/boot/dts/broadcom/bcm6878.dtsi b/arch/arm/boot/dts/br= oadcom/bcm6878.dtsi index 2c5d706bac7e..70cf23a65fdb 100644 --- a/arch/arm/boot/dts/broadcom/bcm6878.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm6878.dtsi @@ -120,6 +120,20 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm/boot/dts/broadcom/bcm947622.dts b/arch/arm/boot/dts/b= roadcom/bcm947622.dts index 93b8ce22678d..6241485408d3 100644 --- a/arch/arm/boot/dts/broadcom/bcm947622.dts +++ b/arch/arm/boot/dts/broadcom/bcm947622.dts @@ -32,3 +32,13 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + +&nandcs { + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; +}; diff --git a/arch/arm/boot/dts/broadcom/bcm963138.dts b/arch/arm/boot/dts/b= roadcom/bcm963138.dts index 1b405c249213..7fd87e05ec20 100644 --- a/arch/arm/boot/dts/broadcom/bcm963138.dts +++ b/arch/arm/boot/dts/broadcom/bcm963138.dts @@ -29,3 +29,13 @@ &serial0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + +&nandcs { + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; +}; diff --git a/arch/arm/boot/dts/broadcom/bcm963138dvt.dts b/arch/arm/boot/dt= s/broadcom/bcm963138dvt.dts index b5af61853a07..f60d09908ab9 100644 --- a/arch/arm/boot/dts/broadcom/bcm963138dvt.dts +++ b/arch/arm/boot/dts/broadcom/bcm963138dvt.dts @@ -32,15 +32,15 @@ &serial1 { }; =20 &nand_controller { + brcm,wp-not-connected; status =3D "okay"; +}; =20 - nand@0 { - compatible =3D "brcm,nandcs"; - reg =3D <0>; - nand-ecc-strength =3D <4>; - nand-ecc-step-size =3D <512>; - brcm,nand-oob-sectors-size =3D <16>; - }; +&nandcs { + nand-ecc-strength =3D <4>; + nand-ecc-step-size =3D <512>; + brcm,nand-oob-sector-size =3D <16>; + nand-on-flash-bbt; }; =20 &ahci { diff --git a/arch/arm/boot/dts/broadcom/bcm963148.dts b/arch/arm/boot/dts/b= roadcom/bcm963148.dts index 1f5d6d783f09..44bca063a327 100644 --- a/arch/arm/boot/dts/broadcom/bcm963148.dts +++ b/arch/arm/boot/dts/broadcom/bcm963148.dts @@ -32,3 +32,13 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + +&nandcs { + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; +}; diff --git a/arch/arm/boot/dts/broadcom/bcm963178.dts b/arch/arm/boot/dts/b= roadcom/bcm963178.dts index d036e99dd8d1..098a222cd71a 100644 --- a/arch/arm/boot/dts/broadcom/bcm963178.dts +++ b/arch/arm/boot/dts/broadcom/bcm963178.dts @@ -32,3 +32,13 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + +&nandcs { + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; +}; diff --git a/arch/arm/boot/dts/broadcom/bcm96756.dts b/arch/arm/boot/dts/br= oadcom/bcm96756.dts index 8b104f3fb14a..402038d3cd0c 100644 --- a/arch/arm/boot/dts/broadcom/bcm96756.dts +++ b/arch/arm/boot/dts/broadcom/bcm96756.dts @@ -32,3 +32,13 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + +&nandcs { + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; +}; diff --git a/arch/arm/boot/dts/broadcom/bcm96846.dts b/arch/arm/boot/dts/br= oadcom/bcm96846.dts index 55852c229608..943896afb7cc 100644 --- a/arch/arm/boot/dts/broadcom/bcm96846.dts +++ b/arch/arm/boot/dts/broadcom/bcm96846.dts @@ -32,3 +32,13 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + +&nandcs { + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; +}; diff --git a/arch/arm/boot/dts/broadcom/bcm96855.dts b/arch/arm/boot/dts/br= oadcom/bcm96855.dts index 2ad880af2104..571663d9a1ea 100644 --- a/arch/arm/boot/dts/broadcom/bcm96855.dts +++ b/arch/arm/boot/dts/broadcom/bcm96855.dts @@ -32,3 +32,13 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + +&nandcs { + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; +}; diff --git a/arch/arm/boot/dts/broadcom/bcm96878.dts b/arch/arm/boot/dts/br= oadcom/bcm96878.dts index b7af8ade7a9d..8d6eddd54c6e 100644 --- a/arch/arm/boot/dts/broadcom/bcm96878.dts +++ b/arch/arm/boot/dts/broadcom/bcm96878.dts @@ -32,3 +32,13 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + +&nandcs { + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; +}; --=20 2.37.3 From nobody Fri Dec 19 16:05:26 2025 Received: from relay.smtp-ext.broadcom.com (unknown [192.19.166.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6C62C171AE; Fri, 23 Feb 2024 03:48:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660118; cv=none; b=G4zyoV57XcK/3rEXgd7pBgBeXbvtw3KapHXPaiK0EMcS4LsTy8wAWTi7+ANtAdD4G5wleO6x2PtLpvDc0varNcAZU4dqMKj8L6dcU+/s8c7GxjvlR7yGGmvDIQV4VtzWIrypjkNAa13OG8ufZBBYdC5SKzincc+8YIgSBiojxQY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660118; c=relaxed/simple; bh=qOex9Lc+JQ8NRm94VQlXUYDsA9lrs7AJX95xppQfXoE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=PltYX1lC+37D7L5nU+ZwcYriXdjOlHZFTn2s/dMkQr+cR0CO+moE/OC4jXr4qL6e/homft4aXv/9RONI5XeRSxBG3VpfQ8DtKiVuwaj8qomJUP7vakG+6M+ZS6vRNgDVBjYVv0cQhHQi0dYAFfxhTn9V+oLjkCPKsi6msvNDMGg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=IojI8iM/; arc=none smtp.client-ip=192.19.166.228 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="IojI8iM/" Received: from mail-lvn-it-01.lvn.broadcom.net (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id B0EF5C005937; Thu, 22 Feb 2024 19:48:30 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com B0EF5C005937 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1708660110; bh=qOex9Lc+JQ8NRm94VQlXUYDsA9lrs7AJX95xppQfXoE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IojI8iM/vWZfI+uGf3QujqTUoBgKAqpbc3iJTIwJKqRhxwq4G/JlqcrQXu+uvmNmH h1Lhz5xENPt5r3vqFqvf/7JhHRfRswGWkbUGpONiOuTvXxxqoM8VRe8b5rXj9/1iIP ayD4sqZbHDhcLFm2KjaOLH9LVgbPFqba/2G9oyDo= Received: from bcacpedev-irv-3.lvn.broadcom.net (bcacpedev-irv-3.lvn.broadcom.net [10.173.232.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail-lvn-it-01.lvn.broadcom.net (Postfix) with ESMTPSA id 4BC5618041CAC4; Thu, 22 Feb 2024 19:48:29 -0800 (PST) From: William Zhang To: Linux MTD List , Linux ARM List , Broadcom Kernel List Cc: f.fainelli@gmail.com, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, William Zhang , David Regan , devicetree@vger.kernel.org, Conor Dooley , linux-kernel@vger.kernel.org, Krzysztof Kozlowski , Rob Herring , =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , Florian Fainelli Subject: [PATCH v6 08/13] arm64: dts: broadcom: bcmbca: Add NAND controller node Date: Thu, 22 Feb 2024 19:47:53 -0800 Message-Id: <20240223034758.13753-9-william.zhang@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240223034758.13753-1-william.zhang@broadcom.com> References: <20240223034758.13753-1-william.zhang@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add support for Broadcom STB NAND controller in BCMBCA ARMv8 chip dts files. Signed-off-by: William Zhang Reviewed-by: David Regan Acked-by: Florian Fainelli --- Changes in v6: None Changes in v5: None Changes in v4: - Move the board related dts setting from SoC dtsi to board dts Changes in v3: None Changes in v2: - Add nand controller node label for 4908 so it is consistent with other SoCs and can be referenced by board dts file arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 4 ++-- arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi | 14 ++++++++++++++ arch/arm64/boot/dts/broadcom/bcmbca/bcm63146.dtsi | 14 ++++++++++++++ arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi | 14 ++++++++++++++ arch/arm64/boot/dts/broadcom/bcmbca/bcm6813.dtsi | 14 ++++++++++++++ arch/arm64/boot/dts/broadcom/bcmbca/bcm6856.dtsi | 14 ++++++++++++++ arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi | 14 ++++++++++++++ arch/arm64/boot/dts/broadcom/bcmbca/bcm94908.dts | 10 ++++++++++ arch/arm64/boot/dts/broadcom/bcmbca/bcm94912.dts | 10 ++++++++++ arch/arm64/boot/dts/broadcom/bcmbca/bcm963146.dts | 10 ++++++++++ arch/arm64/boot/dts/broadcom/bcmbca/bcm963158.dts | 10 ++++++++++ arch/arm64/boot/dts/broadcom/bcmbca/bcm96813.dts | 10 ++++++++++ arch/arm64/boot/dts/broadcom/bcmbca/bcm96856.dts | 10 ++++++++++ arch/arm64/boot/dts/broadcom/bcmbca/bcm96858.dts | 10 ++++++++++ 14 files changed, 156 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm4908.dtsi index 2f124b027bbf..336016e334d9 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi @@ -589,7 +589,7 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 - nand-controller@1800 { + nand_controller: nand-controller@1800 { #address-cells =3D <1>; #size-cells =3D <0>; compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; @@ -597,7 +597,7 @@ nand-controller@1800 { reg-names =3D "nand", "nand-int-base"; interrupts =3D ; interrupt-names =3D "nand_ctlrdy"; - status =3D "okay"; + status =3D "disabled"; =20 nandcs: nand@0 { compatible =3D "brcm,nandcs"; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm4912.dtsi index d658c81f7285..14b2adfb817c 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi @@ -138,6 +138,20 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm63146.dtsi b/arch/arm64= /boot/dts/broadcom/bcmbca/bcm63146.dtsi index 4f474d47022e..589b8a1efc72 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm63146.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm63146.dtsi @@ -119,6 +119,20 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi b/arch/arm64= /boot/dts/broadcom/bcmbca/bcm63158.dtsi index 909f254dc47d..48d618e75866 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi @@ -137,6 +137,20 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm6813.dtsi b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm6813.dtsi index 685ae32951c9..1d1303cf90f3 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm6813.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm6813.dtsi @@ -138,6 +138,20 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm6856.dtsi b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm6856.dtsi index 820553ce541b..00c62c1e5df0 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm6856.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm6856.dtsi @@ -119,5 +119,19 @@ hsspi: spi@1000 { num-cs =3D <8>; status =3D "disabled"; }; + + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + }; + }; }; }; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm6858.dtsi index 0eb93c298297..caeaf428dc15 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi @@ -156,5 +156,19 @@ hsspi: spi@1000 { num-cs =3D <8>; status =3D "disabled"; }; + + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + }; + }; }; }; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm94908.dts b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm94908.dts index c4e6e71f6310..030ffa5364fb 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm94908.dts +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm94908.dts @@ -32,3 +32,13 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + +&nandcs { + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; +}; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm94912.dts b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm94912.dts index e69cd683211a..4b779e6c22e1 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm94912.dts +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm94912.dts @@ -32,3 +32,13 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + +&nandcs { + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; +}; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm963146.dts b/arch/arm64= /boot/dts/broadcom/bcmbca/bcm963146.dts index db2c82d6dfd8..2851e8e41bf4 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm963146.dts +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm963146.dts @@ -32,3 +32,13 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + +&nandcs { + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; +}; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm963158.dts b/arch/arm64= /boot/dts/broadcom/bcmbca/bcm963158.dts index 25c12bc63545..17dc594fe83f 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm963158.dts +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm963158.dts @@ -32,3 +32,13 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + +&nandcs { + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; +}; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm96813.dts b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm96813.dts index faba21f03120..34832a734734 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm96813.dts +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm96813.dts @@ -32,3 +32,13 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + +&nandcs { + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; +}; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm96856.dts b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm96856.dts index 9808331eede2..e1396b5544b7 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm96856.dts +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm96856.dts @@ -32,3 +32,13 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + +&nandcs { + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; +}; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm96858.dts b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm96858.dts index 1f561c8e13b0..30bbf6f2917e 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm96858.dts +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm96858.dts @@ -32,3 +32,13 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + +&nandcs { + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; +}; --=20 2.37.3 From nobody Fri Dec 19 16:05:26 2025 Received: from relay.smtp-ext.broadcom.com (unknown [192.19.166.231]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B998116428; Fri, 23 Feb 2024 03:48:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.231 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660117; cv=none; b=lKlN52AYWWS5OhSK+nqv08bbhXceCfTAjnl4AdaDeURgh1vSMGdSP7OkvBK/VKStlB6ghdBTTH5FzmO2LTvhniFnGEYaOFB+65Pstvp/tpbb643wN4jWUBRgo3fq5x9S7HHh+j4QvJUpGyfcpU9RX1Nc94dm7vFKUU4UxTPI5n8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660117; c=relaxed/simple; bh=w50MmwQoRzVkuX4F/IPvMazeJ04ok/bzThtfo0MpKFU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=RtwUiuguJ5MBh5xpqDEMPHsgh+i1TcXykN8oXCG3v2+MSuWh6cNcgEmqX38clNN1jfNdNbaaWMwJJkmswziI2w35iKWnHYtgt3w0tbYbLJAp7NVleF4AJzdih+EwnDwEcZz9jVTygTS2fuRyoR9LSFC5cND4EJAJPmn30McO2JE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=hJmsP4vc; arc=none smtp.client-ip=192.19.166.231 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="hJmsP4vc" Received: from mail-lvn-it-01.lvn.broadcom.net (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id 8D4D9C001C10; Thu, 22 Feb 2024 19:48:31 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 8D4D9C001C10 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1708660111; bh=w50MmwQoRzVkuX4F/IPvMazeJ04ok/bzThtfo0MpKFU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hJmsP4vczPk+TDrmhnZPh36fICCN+Ihc9+w88ZGBJPbR6Qlgex+0Km8gJYMWFUO5u a6OhhkKUPeNwfDAgJ1r9wdSsEyMZm+B+yTiwzHk4ltif2mdmTfn6OOgscK3uOpoqtq 3uGNKnLQ69r1RGIyexqZZx5N5tl8KItkN3vv0gMw= Received: from bcacpedev-irv-3.lvn.broadcom.net (bcacpedev-irv-3.lvn.broadcom.net [10.173.232.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail-lvn-it-01.lvn.broadcom.net (Postfix) with ESMTPSA id 219FA18041CAC4; Thu, 22 Feb 2024 19:48:30 -0800 (PST) From: William Zhang To: Linux MTD List , Linux ARM List , Broadcom Kernel List Cc: f.fainelli@gmail.com, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, William Zhang , devicetree@vger.kernel.org, Conor Dooley , linux-kernel@vger.kernel.org, Krzysztof Kozlowski , Rob Herring , =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , Florian Fainelli Subject: [PATCH v6 09/13] arm64: dts: broadcom: bcmbca: Update router boards Date: Thu, 22 Feb 2024 19:47:54 -0800 Message-Id: <20240223034758.13753-10-william.zhang@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240223034758.13753-1-william.zhang@broadcom.com> References: <20240223034758.13753-1-william.zhang@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Enable the nand controller and add WP pin connection property in actual board dts as they are board level properties now that they are disabled and moved out from SoC dtsi. Also remove the unnecessary brcm,nand-has-wp property from AC5300 board. This property is only needed for some old controller that this board does not apply. Signed-off-by: William Zhang Acked-by: Florian Fainelli --- Changes in v6: None Changes in v5: None Changes in v4: None Changes in v3: None Changes in v2: None .../boot/dts/broadcom/bcmbca/bcm4906-netgear-r8000p.dts | 5 +++++ .../dts/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts | 5 +++++ .../boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts | 6 +++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-netgear-r8000p.dts= b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-netgear-r8000p.dts index 78204d71ecd2..999d93730240 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-netgear-r8000p.dts +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-netgear-r8000p.dts @@ -125,6 +125,11 @@ port@7 { }; }; =20 +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + &nandcs { nand-ecc-strength =3D <4>; nand-ecc-step-size =3D <512>; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-tplink-archer-c230= 0-v1.dts b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-tplink-archer-c2300-= v1.dts index fcf092c81b59..19fc03ef47a0 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts @@ -155,6 +155,11 @@ port@7 { }; }; =20 +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + &nandcs { nand-ecc-strength =3D <4>; nand-ecc-step-size =3D <512>; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts= b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts index d94a53d68320..52f928dbfa3c 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts @@ -166,11 +166,15 @@ led@19 { }; }; =20 +&nand_controller { + brcm,wp-not-connected; + status =3D "okay"; +}; + &nandcs { nand-ecc-strength =3D <4>; nand-ecc-step-size =3D <512>; nand-on-flash-bbt; - brcm,nand-has-wp; =20 #address-cells =3D <1>; #size-cells =3D <0>; --=20 2.37.3 From nobody Fri Dec 19 16:05:26 2025 Received: from relay.smtp-ext.broadcom.com (unknown [192.19.166.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D890311CBB for ; Fri, 23 Feb 2024 03:48:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660114; cv=none; b=SDaZrYyGd9i3453g/ZHy8MXt0Nbih/Yd9GhDoxhf5Buue+uyV1T7R+3YWDFCfxPOFbEaMAhbiC7avl7fn+FM0URP066L8J9R6dn5DyrSHLVtA7ey8VkynPEeorPFIrYWn0NAyAcZ+/nNLdMMtiMIEgVpuvoBR93rEKXbNRBRFfs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660114; c=relaxed/simple; bh=EeGtyBgoJGvKhK566NbjS/AeMLp0JeoYSWnEnJys/0s=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=JaB+6hVTTW4T6jE+1+hBdlGJar7u2j2MDjgb6szQWY8YTPvnIVYRleVmTtjxcUKA/hh2PbBYoOa7xRf8l5OC+31ZPi3nucIlRM4nGm8k9HpfxGqqww2G3RmzksxH4R6Y0v5iw/CUdWDkmOcqct7URS4THBv8Rzdrg00mo1DoNx8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=Y+hUybMk; arc=none smtp.client-ip=192.19.166.228 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="Y+hUybMk" Received: from mail-lvn-it-01.lvn.broadcom.net (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id 46E24C00593C; Thu, 22 Feb 2024 19:48:32 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 46E24C00593C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1708660112; bh=EeGtyBgoJGvKhK566NbjS/AeMLp0JeoYSWnEnJys/0s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Y+hUybMkBmpNuTBcO0NrknPLZtK1Y2wLqYJLN5P0UOrcXl/0i+F7Pgk2m3kcMf9+o 01lc4vW/4ivGVT2RqJj6o3sZZtaJMen3U5kHyGhcTsW8izTVlBvBBDPpiMAzaGFlqu zyxpH1+mx1+c5UzE+HYnPAU6AL80NF4/hbGuibhM= Received: from bcacpedev-irv-3.lvn.broadcom.net (bcacpedev-irv-3.lvn.broadcom.net [10.173.232.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail-lvn-it-01.lvn.broadcom.net (Postfix) with ESMTPSA id C0D4818041CAC4; Thu, 22 Feb 2024 19:48:30 -0800 (PST) From: William Zhang To: Linux MTD List , Linux ARM List , Broadcom Kernel List Cc: f.fainelli@gmail.com, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, William Zhang , David Regan , Florian Fainelli , Miquel Raynal , linux-kernel@vger.kernel.org, Vignesh Raghavendra , Brian Norris , Richard Weinberger , =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Subject: [PATCH v6 10/13] mtd: rawnand: brcmnand: Rename bcm63138 nand driver Date: Thu, 22 Feb 2024 19:47:55 -0800 Message-Id: <20240223034758.13753-11-william.zhang@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240223034758.13753-1-william.zhang@broadcom.com> References: <20240223034758.13753-1-william.zhang@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable In preparing to support multiple BCMBCA SoCs, rename bcm63138 to bcmbca in the driver code and driver file name. Signed-off-by: William Zhang Reviewed-by: David Regan Acked-by: Florian Fainelli --- Changes in v6: None Changes in v5: None Changes in v4: None Changes in v3: None Changes in v2: None drivers/mtd/nand/raw/brcmnand/Makefile | 2 +- drivers/mtd/nand/raw/brcmnand/bcm63138_nand.c | 99 ------------------- drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c | 99 +++++++++++++++++++ 3 files changed, 100 insertions(+), 100 deletions(-) delete mode 100644 drivers/mtd/nand/raw/brcmnand/bcm63138_nand.c create mode 100644 drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c diff --git a/drivers/mtd/nand/raw/brcmnand/Makefile b/drivers/mtd/nand/raw/= brcmnand/Makefile index 9907e3ec4bb2..0536568c6467 100644 --- a/drivers/mtd/nand/raw/brcmnand/Makefile +++ b/drivers/mtd/nand/raw/brcmnand/Makefile @@ -2,7 +2,7 @@ # link order matters; don't link the more generic brcmstb_nand.o before the # more specific iproc_nand.o, for instance obj-$(CONFIG_MTD_NAND_BRCMNAND_IPROC) +=3D iproc_nand.o -obj-$(CONFIG_MTD_NAND_BRCMNAND_BCMBCA) +=3D bcm63138_nand.o +obj-$(CONFIG_MTD_NAND_BRCMNAND_BCMBCA) +=3D bcmbca_nand.o obj-$(CONFIG_MTD_NAND_BRCMNAND_BCM63XX) +=3D bcm6368_nand.o obj-$(CONFIG_MTD_NAND_BRCMNAND_BRCMSTB) +=3D brcmstb_nand.o obj-$(CONFIG_MTD_NAND_BRCMNAND) +=3D brcmnand.o diff --git a/drivers/mtd/nand/raw/brcmnand/bcm63138_nand.c b/drivers/mtd/na= nd/raw/brcmnand/bcm63138_nand.c deleted file mode 100644 index 968c5b674b08..000000000000 --- a/drivers/mtd/nand/raw/brcmnand/bcm63138_nand.c +++ /dev/null @@ -1,99 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - * Copyright =C2=A9 2015 Broadcom Corporation - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "brcmnand.h" - -struct bcm63138_nand_soc { - struct brcmnand_soc soc; - void __iomem *base; -}; - -#define BCM63138_NAND_INT_STATUS 0x00 -#define BCM63138_NAND_INT_EN 0x04 - -enum { - BCM63138_CTLRDY =3D BIT(4), -}; - -static bool bcm63138_nand_intc_ack(struct brcmnand_soc *soc) -{ - struct bcm63138_nand_soc *priv =3D - container_of(soc, struct bcm63138_nand_soc, soc); - void __iomem *mmio =3D priv->base + BCM63138_NAND_INT_STATUS; - u32 val =3D brcmnand_readl(mmio); - - if (val & BCM63138_CTLRDY) { - brcmnand_writel(val & ~BCM63138_CTLRDY, mmio); - return true; - } - - return false; -} - -static void bcm63138_nand_intc_set(struct brcmnand_soc *soc, bool en) -{ - struct bcm63138_nand_soc *priv =3D - container_of(soc, struct bcm63138_nand_soc, soc); - void __iomem *mmio =3D priv->base + BCM63138_NAND_INT_EN; - u32 val =3D brcmnand_readl(mmio); - - if (en) - val |=3D BCM63138_CTLRDY; - else - val &=3D ~BCM63138_CTLRDY; - - brcmnand_writel(val, mmio); -} - -static int bcm63138_nand_probe(struct platform_device *pdev) -{ - struct device *dev =3D &pdev->dev; - struct bcm63138_nand_soc *priv; - struct brcmnand_soc *soc; - - priv =3D devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); - if (!priv) - return -ENOMEM; - soc =3D &priv->soc; - - priv->base =3D devm_platform_ioremap_resource_byname(pdev, "nand-int-base= "); - if (IS_ERR(priv->base)) - return PTR_ERR(priv->base); - - soc->ctlrdy_ack =3D bcm63138_nand_intc_ack; - soc->ctlrdy_set_enabled =3D bcm63138_nand_intc_set; - - return brcmnand_probe(pdev, soc); -} - -static const struct of_device_id bcm63138_nand_of_match[] =3D { - { .compatible =3D "brcm,nand-bcm63138" }, - {}, -}; -MODULE_DEVICE_TABLE(of, bcm63138_nand_of_match); - -static struct platform_driver bcm63138_nand_driver =3D { - .probe =3D bcm63138_nand_probe, - .remove_new =3D brcmnand_remove, - .driver =3D { - .name =3D "bcm63138_nand", - .pm =3D &brcmnand_pm_ops, - .of_match_table =3D bcm63138_nand_of_match, - } -}; -module_platform_driver(bcm63138_nand_driver); - -MODULE_LICENSE("GPL v2"); -MODULE_AUTHOR("Brian Norris"); -MODULE_DESCRIPTION("NAND driver for BCM63138"); diff --git a/drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c b/drivers/mtd/nand= /raw/brcmnand/bcmbca_nand.c new file mode 100644 index 000000000000..3e2f3b79788d --- /dev/null +++ b/drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c @@ -0,0 +1,99 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright =C2=A9 2015 Broadcom Corporation + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "brcmnand.h" + +struct bcmbca_nand_soc { + struct brcmnand_soc soc; + void __iomem *base; +}; + +#define BCMBCA_NAND_INT_STATUS 0x00 +#define BCMBCA_NAND_INT_EN 0x04 + +enum { + BCMBCA_CTLRDY =3D BIT(4), +}; + +static bool bcmbca_nand_intc_ack(struct brcmnand_soc *soc) +{ + struct bcmbca_nand_soc *priv =3D + container_of(soc, struct bcmbca_nand_soc, soc); + void __iomem *mmio =3D priv->base + BCMBCA_NAND_INT_STATUS; + u32 val =3D brcmnand_readl(mmio); + + if (val & BCMBCA_CTLRDY) { + brcmnand_writel(val & ~BCMBCA_CTLRDY, mmio); + return true; + } + + return false; +} + +static void bcmbca_nand_intc_set(struct brcmnand_soc *soc, bool en) +{ + struct bcmbca_nand_soc *priv =3D + container_of(soc, struct bcmbca_nand_soc, soc); + void __iomem *mmio =3D priv->base + BCMBCA_NAND_INT_EN; + u32 val =3D brcmnand_readl(mmio); + + if (en) + val |=3D BCMBCA_CTLRDY; + else + val &=3D ~BCMBCA_CTLRDY; + + brcmnand_writel(val, mmio); +} + +static int bcmbca_nand_probe(struct platform_device *pdev) +{ + struct device *dev =3D &pdev->dev; + struct bcmbca_nand_soc *priv; + struct brcmnand_soc *soc; + + priv =3D devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + soc =3D &priv->soc; + + priv->base =3D devm_platform_ioremap_resource_byname(pdev, "nand-int-base= "); + if (IS_ERR(priv->base)) + return PTR_ERR(priv->base); + + soc->ctlrdy_ack =3D bcmbca_nand_intc_ack; + soc->ctlrdy_set_enabled =3D bcmbca_nand_intc_set; + + return brcmnand_probe(pdev, soc); +} + +static const struct of_device_id bcmbca_nand_of_match[] =3D { + { .compatible =3D "brcm,nand-bcm63138" }, + {}, +}; +MODULE_DEVICE_TABLE(of, bcmbca_nand_of_match); + +static struct platform_driver bcmbca_nand_driver =3D { + .probe =3D bcmbca_nand_probe, + .remove_new =3D brcmnand_remove, + .driver =3D { + .name =3D "bcmbca_nand", + .pm =3D &brcmnand_pm_ops, + .of_match_table =3D bcmbca_nand_of_match, + } +}; +module_platform_driver(bcmbca_nand_driver); + +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Brian Norris"); +MODULE_DESCRIPTION("NAND driver for BCMBCA"); --=20 2.37.3 From nobody Fri Dec 19 16:05:26 2025 Received: from relay.smtp-ext.broadcom.com (unknown [192.19.166.231]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 89769125D1 for ; Fri, 23 Feb 2024 03:48:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.231 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660115; cv=none; b=Q7aJAMTE5BYbM2K90C8SZSKbbLS0bMqOPj33anyaDNZmPqSposfi9kiCw3o5LJWvYLyBq6N3zLjW1PGxdsKYIK8aazM892XT3xPvIo2Fx38NiqgyhGpqNXBlt4gidgOiNMyfS9ITCMlF6Kx4VQfoG0hKG7OnVvzFKnULTrdXwPQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660115; c=relaxed/simple; bh=ig15Aoje6UB9lmYtH7+7slD4QP7mgW8tuGW4LKGdWhA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=I8O8wz5+hATKaV80x48ra7GEzDzyn2hFHGBZ8v9cPs3rr/Wp4KV3ga9aHzcTcPoiV8m88wGNyZeT21VUfz1WsTipJ1Yyc/8HtiZgn2Uu9DYl0W6GqioWW+ko7CBwVVW1ZlAUzNffHKcGeKuGW/e467JEP2DgkphufpufydADHf0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=qsjSA6Y+; arc=none smtp.client-ip=192.19.166.231 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="qsjSA6Y+" Received: from mail-lvn-it-01.lvn.broadcom.net (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id F1E62C001C13; Thu, 22 Feb 2024 19:48:32 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com F1E62C001C13 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1708660113; bh=ig15Aoje6UB9lmYtH7+7slD4QP7mgW8tuGW4LKGdWhA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qsjSA6Y+7GXJIAxM78iptjlsQ0jaHeqmZnL9zLJqKnPEuJURQAy6FPqI8VB/YaF/N ecGxX79wEZ6hcqHfOn7clJNq75PZPbeV8KszT9WWIuKEajjWAS7nnzNqWXQ2xdOVY2 MzSiqso9Ms7n3wnoQRGpA15j8fpB8V7sHS9S3X+Q= Received: from bcacpedev-irv-3.lvn.broadcom.net (bcacpedev-irv-3.lvn.broadcom.net [10.173.232.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail-lvn-it-01.lvn.broadcom.net (Postfix) with ESMTPSA id 8561618041CAC4; Thu, 22 Feb 2024 19:48:31 -0800 (PST) From: William Zhang To: Linux MTD List , Linux ARM List , Broadcom Kernel List Cc: f.fainelli@gmail.com, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, William Zhang , David Regan , Miquel Raynal , linux-kernel@vger.kernel.org, Vignesh Raghavendra , Brian Norris , Richard Weinberger , =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , Florian Fainelli Subject: [PATCH v6 11/13] mtd: rawnand: brcmnand: Add BCMBCA read data bus interface Date: Thu, 22 Feb 2024 19:47:56 -0800 Message-Id: <20240223034758.13753-12-william.zhang@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240223034758.13753-1-william.zhang@broadcom.com> References: <20240223034758.13753-1-william.zhang@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The BCMBCA broadband SoC integrates the NAND controller differently than STB, iProc and other SoCs. It has different endianness for NAND cache data. Add a SoC read data bus shim for BCMBCA to meet the specific SoC need and performance improvement using the optimized memcpy function on NAND cache memory. Signed-off-by: William Zhang Reviewed-by: David Regan Acked-by: Florian Fainelli --- Changes in v6: - Fix style issue Changes in v5: None Changes in v4: None Changes in v3: - Updated bcmbca_read_data_bus comment Changes in v2: - Drop the is_param argument to the read data bus function now that we have the exec_op API to read the parameter page and ONFI data - Remove be32_to_cpu from brcmnand_read_data_bus drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c | 27 +++++++++++++++++++++ drivers/mtd/nand/raw/brcmnand/brcmnand.c | 20 ++++++++++++--- drivers/mtd/nand/raw/brcmnand/brcmnand.h | 2 ++ 3 files changed, 46 insertions(+), 3 deletions(-) diff --git a/drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c b/drivers/mtd/nand= /raw/brcmnand/bcmbca_nand.c index 3e2f3b79788d..7ad3e7a98f97 100644 --- a/drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c +++ b/drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c @@ -26,6 +26,18 @@ enum { BCMBCA_CTLRDY =3D BIT(4), }; =20 +#if defined(CONFIG_ARM64) +#define ALIGN_REQ 8 +#else +#define ALIGN_REQ 4 +#endif + +static inline bool bcmbca_nand_is_buf_aligned(void *flash_cache, void *bu= ffer) +{ + return IS_ALIGNED((uintptr_t)buffer, ALIGN_REQ) && + IS_ALIGNED((uintptr_t)flash_cache, ALIGN_REQ); +} + static bool bcmbca_nand_intc_ack(struct brcmnand_soc *soc) { struct bcmbca_nand_soc *priv =3D @@ -56,6 +68,20 @@ static void bcmbca_nand_intc_set(struct brcmnand_soc *so= c, bool en) brcmnand_writel(val, mmio); } =20 +static void bcmbca_read_data_bus(struct brcmnand_soc *soc, + void __iomem *flash_cache, u32 *buffer, int fc_words) +{ + /* + * memcpy can do unaligned aligned access depending on source + * and dest address, which is incompatible with nand cache. Fallback + * to the memcpy_fromio in such case + */ + if (bcmbca_nand_is_buf_aligned((void *)flash_cache, buffer)) + memcpy((void *)buffer, (void *)flash_cache, fc_words * 4); + else + memcpy_fromio((void *)buffer, flash_cache, fc_words * 4); +} + static int bcmbca_nand_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; @@ -73,6 +99,7 @@ static int bcmbca_nand_probe(struct platform_device *pdev) =20 soc->ctlrdy_ack =3D bcmbca_nand_intc_ack; soc->ctlrdy_set_enabled =3D bcmbca_nand_intc_set; + soc->read_data_bus =3D bcmbca_read_data_bus; =20 return brcmnand_probe(pdev, soc); } diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/ra= w/brcmnand/brcmnand.c index f1f0de50b5f7..ef7d340475be 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -851,6 +851,20 @@ static inline u32 edu_readl(struct brcmnand_controller= *ctrl, return brcmnand_readl(ctrl->edu_base + offs); } =20 +static inline void brcmnand_read_data_bus(struct brcmnand_controller *ctrl, + void __iomem *flash_cache, u32 *buffer, int fc_words) +{ + struct brcmnand_soc *soc =3D ctrl->soc; + int i; + + if (soc->read_data_bus) { + soc->read_data_bus(soc, flash_cache, buffer, fc_words); + } else { + for (i =3D 0; i < fc_words; i++) + buffer[i] =3D brcmnand_read_fc(ctrl, i); + } +} + static void brcmnand_clear_ecc_addr(struct brcmnand_controller *ctrl) { =20 @@ -1975,7 +1989,7 @@ static int brcmnand_read_by_pio(struct mtd_info *mtd,= struct nand_chip *chip, { struct brcmnand_host *host =3D nand_get_controller_data(chip); struct brcmnand_controller *ctrl =3D host->ctrl; - int i, j, ret =3D 0; + int i, ret =3D 0; =20 brcmnand_clear_ecc_addr(ctrl); =20 @@ -1988,8 +2002,8 @@ static int brcmnand_read_by_pio(struct mtd_info *mtd,= struct nand_chip *chip, if (likely(buf)) { brcmnand_soc_data_bus_prepare(ctrl->soc, false); =20 - for (j =3D 0; j < FC_WORDS; j++, buf++) - *buf =3D brcmnand_read_fc(ctrl, j); + brcmnand_read_data_bus(ctrl, ctrl->nand_fc, buf, FC_WORDS); + buf +=3D FC_WORDS; =20 brcmnand_soc_data_bus_unprepare(ctrl->soc, false); } diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.h b/drivers/mtd/nand/ra= w/brcmnand/brcmnand.h index 928114c0be5e..9f171252a2ae 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.h +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.h @@ -24,6 +24,8 @@ struct brcmnand_soc { void (*ctlrdy_set_enabled)(struct brcmnand_soc *soc, bool en); void (*prepare_data_bus)(struct brcmnand_soc *soc, bool prepare, bool is_param); + void (*read_data_bus)(struct brcmnand_soc *soc, void __iomem *flash_cache, + u32 *buffer, int fc_words); const struct brcmnand_io_ops *ops; }; =20 --=20 2.37.3 From nobody Fri Dec 19 16:05:26 2025 Received: from relay.smtp-ext.broadcom.com (relay.smtp-ext.broadcom.com [192.19.144.205]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1922314000 for ; Fri, 23 Feb 2024 03:48:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.144.205 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660116; cv=none; b=eMfqwaBfJqnBObwOykRNIEG/uVpiYyUqm+oSJAiseDLsb8a7JEXdD1+r1qsFd2Ih24K2aTovNjlS2SztVLfF0UJGd34umt4Em7Oy9K0iRf3bQVb6YBNMIOZ8c6IuKspXMks2SwBS1nG4R2b3f7JExy6wtFwa3E0c00KHqZkp350= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660116; c=relaxed/simple; bh=IlWBsnu227JMFpQncv19RcNKiY0NO3wmso1R4ya+F6I=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=hZE4RGqtg/3X45xdj67tzCAYVbzdeFggA+ihsjhU+YzHQ0kTY7v7r6G+PPOBTEiowjgrJz8TyMx6uwDfbvmR+gEAvuFczj68gY5CORW531sToa/JFWAOlFA+TWdfBeGJETqipw2YN2bnFZKrk0OIp1fHPh93A7kC1VSZb3gn99I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=g1Ut55jy; arc=none smtp.client-ip=192.19.144.205 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="g1Ut55jy" Received: from mail-lvn-it-01.lvn.broadcom.net (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id E3789C0000F9; Thu, 22 Feb 2024 19:48:33 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com E3789C0000F9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1708660114; bh=IlWBsnu227JMFpQncv19RcNKiY0NO3wmso1R4ya+F6I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=g1Ut55jy+SWzboCGgdsV/AhcWxf1oTIzCWx0rFPTe8RRlW5ahTG5A7yBtiV4QZfMu +H0d2HyIcSQTt8yeKMdRXXfh/8sa4dy8M4OQHlyZUiAisR+SEuGlj2xli70fIGxWXf 59HJlpmP9YPWw6QK6I6PBvESc0X6jYOfXlEyYmKU= Received: from bcacpedev-irv-3.lvn.broadcom.net (bcacpedev-irv-3.lvn.broadcom.net [10.173.232.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail-lvn-it-01.lvn.broadcom.net (Postfix) with ESMTPSA id 36B9E18041CAC4; Thu, 22 Feb 2024 19:48:32 -0800 (PST) From: William Zhang To: Linux MTD List , Linux ARM List , Broadcom Kernel List Cc: f.fainelli@gmail.com, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, William Zhang , David Regan , Miquel Raynal , linux-kernel@vger.kernel.org, Vignesh Raghavendra , Brian Norris , Richard Weinberger Subject: [PATCH v6 12/13] mtd: rawnand: brcmnand: Add support for getting ecc setting from strap Date: Thu, 22 Feb 2024 19:47:57 -0800 Message-Id: <20240223034758.13753-13-william.zhang@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240223034758.13753-1-william.zhang@broadcom.com> References: <20240223034758.13753-1-william.zhang@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" BCMBCA broadband SoC based board design does not specify ecc setting in dts but rather use the SoC NAND strap info to obtain the ecc strength and spare area size setting. Add brcm,nand-ecc-use-strap dts propety for this purpose and update driver to support this option. However these two options can not be used at the same time. Signed-off-by: William Zhang Reviewed-by: David Regan Acked-by: Florian Fainelli --- Changes in v6: - Combine the ecc step size and ecc strength into one get function - Treat it as error condition if both brcm,nand-ecc-use-strap and nand ecc dts properties are set - Add intermediate steps to get the sector size bitfield Changes in v5: None Changes in v4: - Update the comments for ecc setting selection Changes in v3: None Changes in v2: - Minor cosmetic fixes drivers/mtd/nand/raw/brcmnand/brcmnand.c | 83 ++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 6 deletions(-) diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/ra= w/brcmnand/brcmnand.c index ef7d340475be..e8ffc283b365 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -1038,6 +1038,22 @@ static inline int brcmnand_sector_1k_shift(struct br= cmnand_controller *ctrl) return -1; } =20 +static int brcmnand_get_sector_size_1k(struct brcmnand_host *host) +{ + struct brcmnand_controller *ctrl =3D host->ctrl; + int sector_size_bit =3D brcmnand_sector_1k_shift(ctrl); + u16 acc_control_offs =3D brcmnand_cs_offset(ctrl, host->cs, + BRCMNAND_CS_ACC_CONTROL); + u32 acc_control; + + if (sector_size_bit < 0) + return 0; + + acc_control =3D nand_readreg(ctrl, acc_control_offs); + + return (acc_control & BIT(sector_size_bit)) >> sector_size_bit; +} + static void brcmnand_set_sector_size_1k(struct brcmnand_host *host, int va= l) { struct brcmnand_controller *ctrl =3D host->ctrl; @@ -1055,6 +1071,43 @@ static void brcmnand_set_sector_size_1k(struct brcmn= and_host *host, int val) nand_writereg(ctrl, acc_control_offs, tmp); } =20 +static int brcmnand_get_spare_size(struct brcmnand_host *host) +{ + struct brcmnand_controller *ctrl =3D host->ctrl; + u16 acc_control_offs =3D brcmnand_cs_offset(ctrl, host->cs, + BRCMNAND_CS_ACC_CONTROL); + u32 acc =3D nand_readreg(ctrl, acc_control_offs); + + return (acc & brcmnand_spare_area_mask(ctrl)); +} + +static void brcmnand_get_ecc_settings(struct brcmnand_host *host, struct n= and_chip *chip) +{ + struct brcmnand_controller *ctrl =3D host->ctrl; + u16 acc_control_offs =3D brcmnand_cs_offset(ctrl, host->cs, + BRCMNAND_CS_ACC_CONTROL); + int sector_size_1k =3D brcmnand_get_sector_size_1k(host); + int spare_area_size, ecc_level; + u32 acc; + + spare_area_size =3D brcmnand_get_spare_size(host); + acc =3D nand_readreg(ctrl, acc_control_offs); + ecc_level =3D (acc & brcmnand_ecc_level_mask(ctrl)) >> ctrl->ecc_level_sh= ift; + if (sector_size_1k) + chip->ecc.strength =3D ecc_level * 2; + else if (spare_area_size =3D=3D 16 && ecc_level =3D=3D 15) + chip->ecc.strength =3D 1; /* hamming */ + else + chip->ecc.strength =3D ecc_level; + + if (chip->ecc.size =3D=3D 0) { + if (sector_size_1k < 0) + chip->ecc.size =3D 512; + else + chip->ecc.size =3D 512 << sector_size_1k; + } +} + /*********************************************************************** * CS_NAND_SELECT ***********************************************************************/ @@ -2625,19 +2678,37 @@ static int brcmnand_setup_dev(struct brcmnand_host = *host) nanddev_get_memorg(&chip->base); struct brcmnand_controller *ctrl =3D host->ctrl; struct brcmnand_cfg *cfg =3D &host->hwcfg; - char msg[128]; + struct device_node *np =3D nand_get_flash_node(chip); u32 offs, tmp, oob_sector; + bool use_strap =3D false; + char msg[128]; int ret; =20 memset(cfg, 0, sizeof(*cfg)); + use_strap =3D of_property_read_bool(np, "brcm,nand-ecc-use-strap"); =20 - ret =3D of_property_read_u32(nand_get_flash_node(chip), - "brcm,nand-oob-sector-size", + /* + * Either nand-ecc-xxx or brcm,nand-ecc-use-strap can be set. Error out + * if both exist. + */ + if (chip->ecc.strength && use_strap) { + dev_err(ctrl->dev, + "nand ecc and strap ecc settings can't be set at the same time\n"); + return -EINVAL; + } + + if (use_strap) + brcmnand_get_ecc_settings(host, chip); + + ret =3D of_property_read_u32(np, "brcm,nand-oob-sector-size", &oob_sector); if (ret) { - /* Use detected size */ - cfg->spare_area_size =3D mtd->oobsize / - (mtd->writesize >> FC_SHIFT); + if (use_strap) + cfg->spare_area_size =3D brcmnand_get_spare_size(host); + else + /* Use detected size */ + cfg->spare_area_size =3D mtd->oobsize / + (mtd->writesize >> FC_SHIFT); } else { cfg->spare_area_size =3D oob_sector; } --=20 2.37.3 From nobody Fri Dec 19 16:05:26 2025 Received: from relay.smtp-ext.broadcom.com (relay.smtp-ext.broadcom.com [192.19.144.205]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 98B9B14F8C for ; Fri, 23 Feb 2024 03:48:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.144.205 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660117; cv=none; b=cz2WIbqFflwBGNJ1weNG2QOqKctW0LWAXd72qad+SwcV0EwOa3FWFF7ClQMN0taKCYSnLIoskqMwfAvoSIWymbLFqCt/CM8CH4IxpvYelBqcMsIK8Tr1ZA/JLI+XQeUtQ90r3NxvFzMZKIykW+LxvTPBn1Tef1lgeC+Wv7JxyWo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660117; c=relaxed/simple; bh=wKBvVMc60Fe2dxQpvxpi677VlKI114pZ3dAsj88tuns=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=bbhCDxZL5xyEqu1B7WfCtiZB7YhNimCYooR7JSqDjyfgqvp6avGJWIX5biQk0Eaf6TQDK6qy+NMAZYrgIiQPI8sp0N8CnefFITwIu4kWL4UMHPl27Y7ao6Vb6i9oqMbA9PVp2R77NTjmq5Enyc4YkMcMJhREkJ55gMiSM5Av03c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=AhT4oVyZ; arc=none smtp.client-ip=192.19.144.205 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="AhT4oVyZ" Received: from mail-lvn-it-01.lvn.broadcom.net (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id 99370C0000FB; Thu, 22 Feb 2024 19:48:34 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 99370C0000FB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1708660114; bh=wKBvVMc60Fe2dxQpvxpi677VlKI114pZ3dAsj88tuns=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AhT4oVyZgKRKY7Nnq2vDCMrwhgFNocShT5rPsyPDWdtvaFG1LiYUuXSPfe+vTDwsI vY0jPY29IlLy+Kfinlw69gTmNR9eR5R4HaxmxOwiO0+8GvulZgblNc084VWDz0l7k5 KRcpTG0OOzNdkLuNI0jVVuHnFsuZq7G0SeS/eIdc= Received: from bcacpedev-irv-3.lvn.broadcom.net (bcacpedev-irv-3.lvn.broadcom.net [10.173.232.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail-lvn-it-01.lvn.broadcom.net (Postfix) with ESMTPSA id EDB2618041CAC4; Thu, 22 Feb 2024 19:48:32 -0800 (PST) From: William Zhang To: Linux MTD List , Linux ARM List , Broadcom Kernel List Cc: f.fainelli@gmail.com, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, William Zhang , Florian Fainelli , David Regan , Miquel Raynal , linux-kernel@vger.kernel.org, Vignesh Raghavendra , Brian Norris , Richard Weinberger Subject: [PATCH v6 13/13] mtd: rawnand: brcmnand: Support write protection setting from dts Date: Thu, 22 Feb 2024 19:47:58 -0800 Message-Id: <20240223034758.13753-14-william.zhang@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240223034758.13753-1-william.zhang@broadcom.com> References: <20240223034758.13753-1-william.zhang@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The write protection feature is controlled by the module parameter wp_on with default set to enabled. But not all the board use this feature especially in BCMBCA broadband board. And module parameter is not sufficient as different board can have different option. Add a device tree property and allow this feature to be configured through the board dts on per board basis. Signed-off-by: William Zhang Reviewed-by: Florian Fainelli Reviewed-by: Kamal Dasu Reviewed-by: David Regan Acked-by: Florian Fainelli --- Changes in v6: None Changes in v5: None Changes in v4: - Use the new brcm,wp-not-connected property based on the dts binding change Changes in v3: None Changes in v2: None drivers/mtd/nand/raw/brcmnand/brcmnand.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/ra= w/brcmnand/brcmnand.c index e8ffc283b365..4810345d0d8a 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -3223,6 +3223,10 @@ int brcmnand_probe(struct platform_device *pdev, str= uct brcmnand_soc *soc) /* Disable XOR addressing */ brcmnand_rmw_reg(ctrl, BRCMNAND_CS_XOR, 0xff, 0, 0); =20 + /* Check if the board connects the WP pin */ + if (of_property_read_bool(dn, "brcm,wp-not-connected")) + wp_on =3D 0; + if (ctrl->features & BRCMNAND_HAS_WP) { /* Permanently disable write protection */ if (wp_on =3D=3D 2) --=20 2.37.3