public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
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: Fri, 23 Dec 2022 11:34:52 +0200	[thread overview]
Message-ID: <cb035990-5dde-93ee-57c5-273e059ee661@kernel.org> (raw)
In-Reply-To: <CAOf5uwk3OHGq-cD6pm9sgcq+zKtMfL1ndj23GJgnKFGDB7pNrw@mail.gmail.com>

Hi Michael,

On 22/12/2022 23:35, Michael Nazzareno Trimarchi wrote:
> Hi Roger
> 
> On Wed, Dec 21, 2022 at 9:08 PM Michael Nazzareno Trimarchi
> <michael@amarulasolutions.com> wrote:
>>
>> Hi
>>
>> On Wed, Dec 21, 2022 at 8:57 PM Roger Quadros <rogerq@kernel.org> wrote:
>>>
>>> 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.
>>>
>>
>> My bad, I'm always start from patch 1 and look on changes in every single patch
>>
> 
> Pipeline is running, I have fixed another minor problem in the build

Thanks. You mean __maybe_unused for omap_calculate_ecc_bch()?

cheers,
-roger

> 
> Michael
> 
>> Michael
>>
>>>
>>> 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
>>>>>
>>>>
>>>>
>>
>>
>>
>> --
>> Michael Nazzareno Trimarchi
>> Co-Founder & Chief Executive Officer
>> M. +39 347 913 2170
>> michael@amarulasolutions.com
>> __________________________________
>>
>> Amarula Solutions BV
>> Joop Geesinkweg 125, 1114 AB, Amsterdam, NL
>> T. +31 (0)85 111 9172
>> info@amarulasolutions.com
>> www.amarulasolutions.com
> 
> 
> 

  reply	other threads:[~2022-12-23  9:35 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
2022-12-21 20:08       ` Michael Nazzareno Trimarchi
2022-12-22 21:35         ` Michael Nazzareno Trimarchi
2022-12-23  9:34           ` Roger Quadros [this message]
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=cb035990-5dde-93ee-57c5-273e059ee661@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