From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6146AC4167B for ; Fri, 23 Dec 2022 09:35:07 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 3B5968546C; Fri, 23 Dec 2022 10:35:05 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=kernel.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.b="EPReyS5W"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 9FE6D8546E; Fri, 23 Dec 2022 10:35:02 +0100 (CET) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 7E2AE85451 for ; Fri, 23 Dec 2022 10:34:59 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=kernel.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=rogerq@kernel.org Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 2CC5D61EA8; Fri, 23 Dec 2022 09:34:57 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 68F04C433EF; Fri, 23 Dec 2022 09:34:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1671788096; bh=+Q3HFj8VTPbJxf3/ZEUx+QUe0Zsn/V+S4bfR6o6SYdg=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=EPReyS5WCwASQ0Kr+st1VG8oa9jJvweKWthHcUvu+LBidD6ddySo+hGzfG/wdHwTo +BLBjl7n8ixoIybimoV80Fba8/wRUaDw5rSMYgCBZ3n9IH/IT1WWii8LKX3FGjMS80 GLrnIThsJ8UmLG6e/4LZmBwqzPOYZLnGROiEEC8OCn0PA72wo1I6yWwBxk1ow03VUx XiVur4gvJtdfWSwzAysZAZFcMVF3MkQdPRNQLPxagk9mpi0pEKKxfU1D58OBo79utH +M9vlAjyKqJrn2wP7qvgvUvU3MZvwT0BHNzCWE3UH0LdlSXoa14H1kA3bRmDQfM8Nk FNdki4NxFmKIQ== Message-ID: Date: Fri, 23 Dec 2022 11:34:52 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [u-boot][PATCH v2 8/8] mtd: rawnand: omap_elm: u-boot driver model support Content-Language: en-US To: Michael Nazzareno Trimarchi Cc: dario.binacchi@amarulasolutions.com, m.niestroj@grinn-global.com, trini@konsulko.com, u-boot@lists.denx.de References: <20221220102203.52398-1-rogerq@kernel.org> <20221220102203.52398-9-rogerq@kernel.org> <831503a6-9144-fb3a-ad34-372fe769d9c8@kernel.org> From: Roger Quadros In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean 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 > wrote: >> >> Hi >> >> On Wed, Dec 21, 2022 at 8:57 PM Roger Quadros 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 wrote: >>>>> >>>>> Support u-boot driver model. We still retain >>>>> support legacy way of doing things if ELM_BASE >>>>> is defined in >>>>> >>>>> 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 >>>>> --- >>>> >>>> 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 >>>>> #include >>>>> #include >>>>> -#include >>>>> #include >>>>> >>>>> +#include >>>>> +#include >>>>> +#include >>>>> + >>>>> +#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 >>>>> #include >>>>> #include >>>>> -#include >>>>> + >>>>> +#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 > > >