[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230608044728.1328506-1-AVKrasnov@sberdevices.ru>
Date: Thu, 8 Jun 2023 07:47:26 +0300
From: Arseniy Krasnov <AVKrasnov@...rdevices.ru>
To: Liang Yang <liang.yang@...ogic.com>,
Miquel Raynal <miquel.raynal@...tlin.com>,
Richard Weinberger <richard@....at>,
Vignesh Raghavendra <vigneshr@...com>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Neil Armstrong <neil.armstrong@...aro.org>,
Kevin Hilman <khilman@...libre.com>,
Jerome Brunet <jbrunet@...libre.com>,
Martin Blumenstingl <martin.blumenstingl@...glemail.com>
CC: <oxffffaa@...il.com>, <kernel@...rdevices.ru>,
Arseniy Krasnov <AVKrasnov@...rdevices.ru>,
<linux-mtd@...ts.infradead.org>, <devicetree@...r.kernel.org>,
<linux-arm-kernel@...ts.infradead.org>,
<linux-amlogic@...ts.infradead.org>, <linux-kernel@...r.kernel.org>
Subject: [PATCH v3 0/2] Meson NAND: waiting w/o wired ready/busy pin
Main thing that this patchset adds is support for waiting for command
completion when there is no wired ready/busy pin. This is implemented
by using Meson specific command which operates without wired pin, but
supports interrupt driven waiting (default way for waiting without
hardware pin is 'nand_soft_waitrdy()' which uses software loop instead
of interrupt). To select which mode to use during driver initialization,
common NAND controller property is used - 'nand-rb'. It is described in
'nand-controller.yaml'. But for Meson, its description was missed in
'amlogic,meson-nand.yaml', so this patchset also adds support for it.
Patch for bindings was tested with dt_binding_check and dtbs_check.
Links:
v1 (as two separate patches):
https://lore.kernel.org/linux-mtd/20230606193507.35024-1-AVKrasnov@sberdevices.ru/
https://lore.kernel.org/linux-mtd/20230607073015.1280085-1-AVKrasnov@sberdevices.ru/
v2 (tagged as v1, but consider it as v2):
https://lore.kernel.org/linux-mtd/20230607145026.2899547-1-AVKrasnov@sberdevices.ru/
Changelog:
v1 -> v2:
* Two separate patches:
For bindings: https://lore.kernel.org/linux-mtd/20230606193507.35024-1-AVKrasnov@sberdevices.ru/
For driver: https://lore.kernel.org/linux-mtd/20230607073015.1280085-1-AVKrasnov@sberdevices.ru/
Now fixed/updated and combined to this patchset with v1 version.
* In binding patch:
* Invalid type of 'nand-rb' is fixed, it was 'bool', now it is 'uint32 array' as required. Also
new declaration of 'nand-rb' contains several restrictions like number of elements and min/max
value of elements.
* Location of 'nand-rb' is moved from the controller object to the chip object as required.
* In driver patch:
* Update comment which describes when it is needed to send NAND_CMD_READ0 to
leave command waiting loop.
* Change type of 'no_rb_pin' to 'bool' as in v1. Now it is just a flag which selects
mode to wait for command completion.
v2 -> v3:
* In binding patch:
* 'minimum' property is dropped, because 'nand-rb' is unsigned.
* In driver patch:
* Logic of 'no_rb_pin' parsing is reworked a little bit. For example to return error
code from 'of_property_read_u32()'.
Arseniy Krasnov (2):
dt-bindings: nand: meson: Fix 'nand-rb' property
mtd: rawnand: meson: waiting w/o wired ready/busy pin
.../bindings/mtd/amlogic,meson-nand.yaml | 6 ++
drivers/mtd/nand/raw/meson_nand.c | 77 ++++++++++++++++++-
2 files changed, 79 insertions(+), 4 deletions(-)
--
2.35.0
Powered by blists - more mailing lists