From: Roger Quadros <rogerq@kernel.org>
To: Michael Nazzareno Trimarchi <michael@amarulasolutions.com>
Cc: dario.binacchi@amarulasolutions.com, m.niestroj@grinn-global.com,
trini@konsulko.com, u-boot@lists.denx.de
Subject: Re: [u-boot][PATCH v2 8/8] mtd: rawnand: omap_elm: u-boot driver model support
Date: Wed, 21 Dec 2022 21:57:38 +0200 [thread overview]
Message-ID: <831503a6-9144-fb3a-ad34-372fe769d9c8@kernel.org> (raw)
In-Reply-To: <CAOf5uwn4nbgn0-YMa4eiQcX6JWXW3gKh8BJWkrPr-mQ8dyS=JA@mail.gmail.com>
Hi Michael,
On 21/12/2022 19:56, Michael Nazzareno Trimarchi wrote:
> Hi Roger
>
> On Tue, Dec 20, 2022 at 11:22 AM Roger Quadros <rogerq@kernel.org> wrote:
>>
>> Support u-boot driver model. We still retain
>> support legacy way of doing things if ELM_BASE
>> is defined in <asm/arch/hardware.h>
>>
>> We could completely get rid of that if all
>> platforms defining ELM_BASE get rid of that definition
>> and enable CONFIG_SYS_NAND_SELF_INIT and are verified
>> to work.
>>
>> Signed-off-by: Roger Quadros <rogerq@kernel.org>
>> ---
>
> When you post please include the relative changelog
I put the changelog in the cover-letter.
cheers,
-roger
>
> Michael
>
>> drivers/mtd/nand/raw/omap_elm.c | 35 ++++++++++++++++++-
>> .../mtd => drivers/mtd/nand/raw}/omap_elm.h | 6 ++++
>> drivers/mtd/nand/raw/omap_gpmc.c | 12 ++++++-
>> 3 files changed, 51 insertions(+), 2 deletions(-)
>> rename {include/linux/mtd => drivers/mtd/nand/raw}/omap_elm.h (97%)
>>
>> diff --git a/drivers/mtd/nand/raw/omap_elm.c b/drivers/mtd/nand/raw/omap_elm.c
>> index 35c6dd1f1bc..e528a5348d5 100644
>> --- a/drivers/mtd/nand/raw/omap_elm.c
>> +++ b/drivers/mtd/nand/raw/omap_elm.c
>> @@ -15,9 +15,14 @@
>> #include <common.h>
>> #include <asm/io.h>
>> #include <linux/errno.h>
>> -#include <linux/mtd/omap_elm.h>
>> #include <asm/arch/hardware.h>
>>
>> +#include <dm.h>
>> +#include <linux/ioport.h>
>> +#include <linux/io.h>
>> +
>> +#include "omap_elm.h"
>> +
>> #define DRIVER_NAME "omap-elm"
>> #define ELM_DEFAULT_POLY (0)
>>
>> @@ -180,6 +185,7 @@ void elm_reset(void)
>> ;
>> }
>>
>> +#ifdef ELM_BASE
>> /**
>> * elm_init - Initialize ELM module
>> *
>> @@ -191,3 +197,30 @@ void elm_init(void)
>> elm_cfg = (struct elm *)ELM_BASE;
>> elm_reset();
>> }
>> +#endif
>> +
>> +static int elm_probe(struct udevice *dev)
>> +{
>> +#ifndef ELM_BASE
>> + struct resource res;
>> +
>> + dev_read_resource(dev, 0, &res);
>> + elm_cfg = devm_ioremap(dev, res.start, resource_size(&res));
>> + elm_reset();
>> +#endif
>> +
>> + return 0;
>> +}
>> +
>> +static const struct udevice_id elm_ids[] = {
>> + { .compatible = "ti,am3352-elm" },
>> + { .compatible = "ti,am64-elm" },
>> + { }
>> +};
>> +
>> +U_BOOT_DRIVER(gpmc_elm) = {
>> + .name = DRIVER_NAME,
>> + .id = UCLASS_MTD,
>> + .of_match = elm_ids,
>> + .probe = elm_probe,
>> +};
>> diff --git a/include/linux/mtd/omap_elm.h b/drivers/mtd/nand/raw/omap_elm.h
>> similarity index 97%
>> rename from include/linux/mtd/omap_elm.h
>> rename to drivers/mtd/nand/raw/omap_elm.h
>> index f3db00d55de..a7f7bacb154 100644
>> --- a/include/linux/mtd/omap_elm.h
>> +++ b/drivers/mtd/nand/raw/omap_elm.h
>> @@ -74,6 +74,12 @@ int elm_check_error(u8 *syndrome, enum bch_level bch_type, u32 *error_count,
>> u32 *error_locations);
>> int elm_config(enum bch_level level);
>> void elm_reset(void);
>> +#ifdef ELM_BASE
>> void elm_init(void);
>> +#else
>> +static inline void elm_init(void)
>> +{
>> +}
>> +#endif
>> #endif /* __ASSEMBLY__ */
>> #endif /* __ASM_ARCH_ELM_H */
>> diff --git a/drivers/mtd/nand/raw/omap_gpmc.c b/drivers/mtd/nand/raw/omap_gpmc.c
>> index ed6cdf93ad0..9692b78da3c 100644
>> --- a/drivers/mtd/nand/raw/omap_gpmc.c
>> +++ b/drivers/mtd/nand/raw/omap_gpmc.c
>> @@ -20,7 +20,8 @@
>> #include <linux/bch.h>
>> #include <linux/compiler.h>
>> #include <nand.h>
>> -#include <linux/mtd/omap_elm.h>
>> +
>> +#include "omap_elm.h"
>>
>> #ifndef GPMC_MAX_CS
>> #define GPMC_MAX_CS 4
>> @@ -1249,6 +1250,15 @@ void board_nand_init(void)
>> struct udevice *dev;
>> int ret;
>>
>> +#ifdef CONFIG_NAND_OMAP_ELM
>> + ret = uclass_get_device_by_driver(UCLASS_MTD,
>> + DM_DRIVER_GET(gpmc_elm), &dev);
>> + if (ret && ret != -ENODEV) {
>> + pr_err("%s: Failed to get ELM device: %d\n", __func__, ret);
>> + return;
>> + }
>> +#endif
>> +
>> ret = uclass_get_device_by_driver(UCLASS_MTD,
>> DM_DRIVER_GET(gpmc_nand), &dev);
>> if (ret && ret != -ENODEV)
>> --
>> 2.34.1
>>
>
>
next prev parent reply other threads:[~2022-12-21 19:57 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-20 10:21 [u-boot][PATCH v2 0/8] rawnand: omap_gpmc: driver model support Roger Quadros
2022-12-20 10:21 ` [u-boot][PATCH v2 1/8] mtd: rawnand: omap_gpmc: Fix BCH6/16 HW based correction Roger Quadros
2022-12-22 21:47 ` Michael Nazzareno Trimarchi
2022-12-20 10:21 ` [u-boot][PATCH v2 2/8] mtd: rawnand: nand_base: Allow base driver to be used in SPL without nand_bbt Roger Quadros
2022-12-20 10:21 ` [u-boot][PATCH v2 3/8] dt-bindings: mtd: Add ti, gpmc-nand DT binding documentation Roger Quadros
2022-12-20 10:21 ` [u-boot][PATCH v2 4/8] mtd: rawnand: omap_gpmc: support u-boot driver model Roger Quadros
2022-12-20 10:22 ` [u-boot][PATCH v2 5/8] mtd: rawnand: omap_gpmc: Add SPL NAND support Roger Quadros
2022-12-20 10:22 ` [u-boot][PATCH v2 6/8] mtd: rawnand: omap_gpmc: Enable SYS_NAND_PAGE_COUNT for OMAP_GPMC Roger Quadros
2022-12-20 10:22 ` [u-boot][PATCH v2 7/8] dt-bindings: mtd: Add ti, elm DT binding documentation Roger Quadros
2022-12-20 10:22 ` [u-boot][PATCH v2 8/8] mtd: rawnand: omap_elm: u-boot driver model support Roger Quadros
2022-12-21 17:56 ` Michael Nazzareno Trimarchi
2022-12-21 19:57 ` Roger Quadros [this message]
2022-12-21 20:08 ` Michael Nazzareno Trimarchi
2022-12-22 21:35 ` Michael Nazzareno Trimarchi
2022-12-23 9:34 ` Roger Quadros
2022-12-23 9:43 ` Michael Nazzareno Trimarchi
2023-01-04 7:27 ` [u-boot][PATCH v2 0/8] rawnand: omap_gpmc: " Dario Binacchi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=831503a6-9144-fb3a-ad34-372fe769d9c8@kernel.org \
--to=rogerq@kernel.org \
--cc=dario.binacchi@amarulasolutions.com \
--cc=m.niestroj@grinn-global.com \
--cc=michael@amarulasolutions.com \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox