From patchwork Fri Nov 16 16:40:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jianxin Pan X-Patchwork-Id: 10686683 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2BFBE13BF for ; Fri, 16 Nov 2018 16:44:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 16BD029055 for ; Fri, 16 Nov 2018 16:44:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 09D092CE70; Fri, 16 Nov 2018 16:44:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id C3C7E29055 for ; Fri, 16 Nov 2018 16:43:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=jEXW2g/1Z3xyMz2oTdbj2/yHFCYAsCwGxwG/LNm0jAo=; b=Aiq4jjIf3tKfPX Wo91GcblJW4J3kJaQcwDPSRTy3dJWfURijzSISz7miXaPIX3milZIBKLbukGg0v08k5yimtEEgrTA G8+mLRBb+e2fBvqqKImcVzo15/tghY7sxlTilm2LkgxqT8+tdkxBwVOZ1bZAIVEG2XWibjaJqu/bB qReGlvyviEgsT8ZHNZ/G/PLWpOzzjrFNZrNPgBI2fcK2Ye3oPynNembyvL5H7N7DDmGsN2+kSfOoQ 2AVuQ2YZX4qUzr5A0ixwtBO/iYt8BJg6c+tKomhaOByJqnhKRunb/0H/99KNBpOV31uMVfEEIRwJ+ ltf3Aw4oCdUl/tg5djAQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gNhDn-0000hS-Dr; Fri, 16 Nov 2018 16:43:55 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gNhBZ-0006v0-24; Fri, 16 Nov 2018 16:41:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Type:MIME-Version:Message-ID: Date:Subject:CC:To:From:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=dPuhaV8l5c7/FttzOuaN7YBeQSgNZCNmBZGC9/q4np4=; b=Z0SqyGYbQh7qwGXCelM41Wvx+6 Qwm1E3iGD3Vy3Xsg+drkZKW+NDbPGBxw9C18z9FrxRK8RgbdQbg630tXCvgb3jXvGTIz+kb2PG/C3 ehWa6gp9Py4DwgR2VQp4/T5Nkd93cbWhKE/U64hTvt/qKLLCK1dtrC2KN3cb0V8YnwimJdkI2/Z8G C+gtHrgmce7IrxxgkdoQu79qpqokMOjf7YRo2JmgtO0wsfzb/lpvzc1PdkHqgPnw2Ow1zfRi1h2KP /lpOpjkV+mtokD+tzMWPtXQIcoZTIlzJb26PdXHn9PXpngdSJs/kE2TrIk6rRZSlWy5aOn6fYKcx8 eePmV4Iw==; Received: from mail-sh2.amlogic.com ([58.32.228.45]) by casper.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gNhBV-0002qc-O9; Fri, 16 Nov 2018 16:41:35 +0000 Received: from localhost.localdomain (10.18.11.217) by mail-sh2.amlogic.com (10.18.11.6) with Microsoft SMTP Server id 15.0.1320.4; Sat, 17 Nov 2018 00:40:57 +0800 From: Jianxin Pan To: Boris Brezillon , Subject: [PATCH v7 0/2] mtd: rawnand: meson: add Amlogic NAND driver support Date: Sat, 17 Nov 2018 00:40:36 +0800 Message-ID: <1542386439-30166-1-git-send-email-jianxin.pan@amlogic.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 X-Originating-IP: [10.18.11.217] X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181116_164133_819907_365FCB83 X-CRM114-Status: GOOD ( 19.10 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Rob Herring , Hanjie Lin , Victor Wan , Jianxin Pan , Neil Armstrong , Martin Blumenstingl , Richard Weinberger , Yixun Lan , linux-kernel@vger.kernel.org, Marek Vasut , devicetree@vger.kernel.org, Liang Yang , Jian Hu , Kevin Hilman , Miquel Raynal , Carlo Caione , linux-amlogic@lists.infradead.org, Brian Norris , David Woodhouse , linux-arm-kernel@lists.infradead.org, Jerome Brunet Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+patchwork-linux-amlogic=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP These two patches try to add initial NAND driver support for Amlogic Meson SoCs, current it has been tested on GXL(p212) and AXG(s400) platform. Changes since V6 at [7] - use timings->tBERS_max as the maximum time out, delete NFC_CMD_RB_TIMEOUT - fix nand_rw_cmd and support small block flash and which row address less than 3 - fix coding style - replace readl/writel_* with readl/writel_relaxed* - delete ECC_SET_PROTECTED_OOB_BYTE and ECC_GET_PROTECTED_OOB_BYTE - implement dma access for read_buf and write_buf, more efficient. - delete waiting dma finish in write process and let NAND_CMD_PAGEPROG and RB command go on queuing - add waiting the completed flag of last ecc page be set, for more strict Changes since v5 at [6]: - use instr->delay_ns in exec_op() to caculate the delay cycle - delete struct meson_nfc_info_format and use macros instead - delete "is_scramble" in struct meson_nfc_nand_chip - add WARN_ON_ONCE() for chip > MAX_CE_NUM - drop param *mtd* or struct *nfc* if param *nand exist - substitute set_data_oob and get_data_oob for prase_data_oob and format_data_oob - split timings caculating and setting timings - move info_buf and data_buf to struct meson_nfc_nand_chip Changes since v4 at [5]: - remove the initial default divider(CLK_DIV_MASK) in meson_nfc_clk_init() - dt-bindings: remove staus, add "rx" and "tx" clock, and node rename Changes since v3 at [4]: - remove partition table and some used props from dt-bindings Changes since v2 at [3]: - remove some hardcode time value, like twb - use dev wait R/B instead of nand_soft_waitrdy - implement nfc ecc init by ecc helper - rework nfc buffer init to register the maximun buffer when several chips - free nfc buffer when error and cleanup - add variable to teack all the already assigned CS lines - fix mtd->name use the first cs line only - remove dt "nand-enable-scrambler" and use NAND_NEED_SCRAMBLING instead. - move setuping ECC fileds after the identification phase - use nand_scan() and attach_chip() - check one event to return IRQ_NONE - delete cast when of_device_get_match_data - use nand_controller_init() helper - remove nfc driver complains when calling devm_ioremap_resource - clear irqs before setting up irq handler Changes since v1 at [1]: - adopt property amlogic,nand-enable-scrambler - thanks Martin - drop nand pins in DT - convert clk access to emmc clkc model - fix regiser field definition alignment - drop nand-user-mode - parse cs id from DT - rework n2m, m2n function - explain why insert two "IDLE" command - implement exec_op() - drop meson_nfc_get_nand_chip_dts() - release resource once error occur in meson_nfc_nand_chips_init(), - call nand_cleanup(nand) once mtd_device_register fail Items not addressed ( or confirmed ) in this version: - convert to ECC conf helper() - convert to dma coherent API - how to construct mtd->name [1] https://lkml.kernel.org/r/20180613161314.14894-1-yixun.lan@amlogic.com [2] https://lkml.kernel.org/r/20180712211244.11428-1-yixun.lan@amlogic.com [3] https://lkml.kernel.org/r/20180719094612.5833-1-yixun.lan@amlogic.com [4] https://lkml.kernel.org/r/1536317831-58056-1-git-send-email-jianxin.pan@amlogic.com/ [5] https://lore.kernel.org/r/1537433449-65213-2-git-send-email-jianxin.pan@amlogic.com/ [6] https://lore.kernel.org/r/1539839345-14021-1-git-send-email-jianxin.pan@amlogic.com [7] https://lore.kernel.org/r/1541090542-19618-1-git-send-email-jianxin.pan@amlogic.com Liang Yang (2): dt-bindings: nand: meson: add Amlogic NAND controller driver mtd: rawnand: meson: add support for Amlogic NAND flash controller .../devicetree/bindings/mtd/amlogic,meson-nand.txt | 60 + drivers/mtd/nand/raw/Kconfig | 10 + drivers/mtd/nand/raw/Makefile | 1 + drivers/mtd/nand/raw/meson_nand.c | 1417 ++++++++++++++++++++ 4 files changed, 1488 insertions(+) create mode 100644 Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt create mode 100644 drivers/mtd/nand/raw/meson_nand.c