All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lee Jones <lee.jones@linaro.org>
To: Marek Vasut <marex@denx.de>
Cc: mark.rutland@arm.com, devicetree@vger.kernel.org,
	Christophe Kerello <christophe.kerello@st.com>,
	vigneshr@ti.com, tony@atomide.com, richard@nod.at,
	linux-kernel@vger.kernel.org, robh+dt@kernel.org,
	linux-mtd@lists.infradead.org, miquel.raynal@bootlin.com,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	linux-stm32@st-md-mailman.stormreply.com
Subject: Re: [PATCH v2 02/12] mfd: stm32-fmc2: add STM32 FMC2 controller driver
Date: Fri, 24 Apr 2020 11:50:53 +0100	[thread overview]
Message-ID: <20200424105053.GC8414@dell> (raw)
In-Reply-To: <8b625f1c-9ded-c07a-a20e-8cd44c1ca46d@denx.de>

On Fri, 24 Apr 2020, Marek Vasut wrote:

> On 4/24/20 9:45 AM, Lee Jones wrote:
> > On Wed, 15 Apr 2020, Christophe Kerello wrote:
> > 
> >> The driver adds the support for the STMicroelectronics FMC2 controller
> >> found on STM32MP SOCs.
> >>
> >> The FMC2 functional block makes the interface with: synchronous and
> >> asynchronous static memories (such as PSNOR, PSRAM or other
> >> memory-mapped peripherals) and NAND flash memories.
> >>
> >> Signed-off-by: Christophe Kerello <christophe.kerello@st.com>
> >> ---
> >> Changes in v2:
> >>  - remove ops from stm32_fmc2 structure
> >>  - add 2 APIs to manage FMC2 enable/disable
> >>  - add 2 APIs to manage FMC2 NWAIT shared signal
> >>
> >>  drivers/mfd/Kconfig            |  12 +++
> >>  drivers/mfd/Makefile           |   1 +
> >>  drivers/mfd/stm32-fmc2.c       | 136 +++++++++++++++++++++++++
> >>  include/linux/mfd/stm32-fmc2.h | 225 +++++++++++++++++++++++++++++++++++++++++
> >>  4 files changed, 374 insertions(+)
> >>  create mode 100644 drivers/mfd/stm32-fmc2.c
> >>  create mode 100644 include/linux/mfd/stm32-fmc2.h
> >>
> >> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> >> index 2b20329..5260582 100644
> >> --- a/drivers/mfd/Kconfig
> >> +++ b/drivers/mfd/Kconfig
> >> @@ -1922,6 +1922,18 @@ config MFD_ROHM_BD71828
> >>  	  Also included is a Coulomb counter, a real-time clock (RTC), and
> >>  	  a 32.768 kHz clock gate.
> >>  
> >> +config MFD_STM32_FMC2
> >> +	tristate "Support for FMC2 controllers on STM32MP SoCs"
> >> +	depends on MACH_STM32MP157 || COMPILE_TEST
> >> +	select MFD_CORE
> >> +	select REGMAP
> >> +	select REGMAP_MMIO
> >> +	help
> >> +	  Select this option to enable STM32 FMC2 driver used for FMC2 External
> >> +	  Bus Interface controller and FMC2 NAND flash controller. This driver
> >> +	  provides core support for the STM32 FMC2 controllers, in order to use
> >> +	  the actual functionality of the device other drivers must be enabled.
> > 
> > Not sure how many times I have to say this before people stop
> > attempting to pass these kinds of relationships off as MFDs:
> > 
> > A memory device and its bus is not an MFD.  In a similar vain to the
> > thousands of USB, I2C, SPI, PCI and the like devices that aren't MFDs
> > either.
> > 
> > Please find another way to associate your device with its bus.
> 
> This FMC2 is however an IP which can either operate external devices
> (like ethernet chip on this parallel bus) or external flashes (like NOR
> and NAND chips).

I'm sure that it *can*.  Although that's not its main purpose.  The
clue is in the nomenclature ("Flexible *Memory* Controller").  Nor is
it how the device is being used in this submission:

  "The FMC2 functional block makes the interface with: synchronous and
   asynchronous static memories (such as PSNOR, PSRAM or other
   memory-mapped peripherals) and NAND flash memories."

As I mentioned, this is just another memory device and its bus.

> Can you provide a suggestion how this should be handled, if not as MFD?
> It seems to me, that this is a Multi-Function Device .

Simply move it into the MTD or Memory subsystems and set up the
dependencies via Kconfig.

> If this discussion is a recurring topic, is there some documentation
> which explains how such devices should be handled ?

Not that I'm aware of.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee.jones@linaro.org>
To: Marek Vasut <marex@denx.de>
Cc: Christophe Kerello <christophe.kerello@st.com>,
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
	robh+dt@kernel.org, mark.rutland@arm.com, tony@atomide.com,
	linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org,
	linux-stm32@st-md-mailman.stormreply.com,
	devicetree@vger.kernel.org,
	Geert Uytterhoeven <geert@linux-m68k.org>
Subject: Re: [PATCH v2 02/12] mfd: stm32-fmc2: add STM32 FMC2 controller driver
Date: Fri, 24 Apr 2020 11:50:53 +0100	[thread overview]
Message-ID: <20200424105053.GC8414@dell> (raw)
In-Reply-To: <8b625f1c-9ded-c07a-a20e-8cd44c1ca46d@denx.de>

On Fri, 24 Apr 2020, Marek Vasut wrote:

> On 4/24/20 9:45 AM, Lee Jones wrote:
> > On Wed, 15 Apr 2020, Christophe Kerello wrote:
> > 
> >> The driver adds the support for the STMicroelectronics FMC2 controller
> >> found on STM32MP SOCs.
> >>
> >> The FMC2 functional block makes the interface with: synchronous and
> >> asynchronous static memories (such as PSNOR, PSRAM or other
> >> memory-mapped peripherals) and NAND flash memories.
> >>
> >> Signed-off-by: Christophe Kerello <christophe.kerello@st.com>
> >> ---
> >> Changes in v2:
> >>  - remove ops from stm32_fmc2 structure
> >>  - add 2 APIs to manage FMC2 enable/disable
> >>  - add 2 APIs to manage FMC2 NWAIT shared signal
> >>
> >>  drivers/mfd/Kconfig            |  12 +++
> >>  drivers/mfd/Makefile           |   1 +
> >>  drivers/mfd/stm32-fmc2.c       | 136 +++++++++++++++++++++++++
> >>  include/linux/mfd/stm32-fmc2.h | 225 +++++++++++++++++++++++++++++++++++++++++
> >>  4 files changed, 374 insertions(+)
> >>  create mode 100644 drivers/mfd/stm32-fmc2.c
> >>  create mode 100644 include/linux/mfd/stm32-fmc2.h
> >>
> >> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> >> index 2b20329..5260582 100644
> >> --- a/drivers/mfd/Kconfig
> >> +++ b/drivers/mfd/Kconfig
> >> @@ -1922,6 +1922,18 @@ config MFD_ROHM_BD71828
> >>  	  Also included is a Coulomb counter, a real-time clock (RTC), and
> >>  	  a 32.768 kHz clock gate.
> >>  
> >> +config MFD_STM32_FMC2
> >> +	tristate "Support for FMC2 controllers on STM32MP SoCs"
> >> +	depends on MACH_STM32MP157 || COMPILE_TEST
> >> +	select MFD_CORE
> >> +	select REGMAP
> >> +	select REGMAP_MMIO
> >> +	help
> >> +	  Select this option to enable STM32 FMC2 driver used for FMC2 External
> >> +	  Bus Interface controller and FMC2 NAND flash controller. This driver
> >> +	  provides core support for the STM32 FMC2 controllers, in order to use
> >> +	  the actual functionality of the device other drivers must be enabled.
> > 
> > Not sure how many times I have to say this before people stop
> > attempting to pass these kinds of relationships off as MFDs:
> > 
> > A memory device and its bus is not an MFD.  In a similar vain to the
> > thousands of USB, I2C, SPI, PCI and the like devices that aren't MFDs
> > either.
> > 
> > Please find another way to associate your device with its bus.
> 
> This FMC2 is however an IP which can either operate external devices
> (like ethernet chip on this parallel bus) or external flashes (like NOR
> and NAND chips).

I'm sure that it *can*.  Although that's not its main purpose.  The
clue is in the nomenclature ("Flexible *Memory* Controller").  Nor is
it how the device is being used in this submission:

  "The FMC2 functional block makes the interface with: synchronous and
   asynchronous static memories (such as PSNOR, PSRAM or other
   memory-mapped peripherals) and NAND flash memories."

As I mentioned, this is just another memory device and its bus.

> Can you provide a suggestion how this should be handled, if not as MFD?
> It seems to me, that this is a Multi-Function Device .

Simply move it into the MTD or Memory subsystems and set up the
dependencies via Kconfig.

> If this discussion is a recurring topic, is there some documentation
> which explains how such devices should be handled ?

Not that I'm aware of.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

  reply	other threads:[~2020-04-24 10:51 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-15 15:57 [PATCH v2 00/12] add STM32 FMC2 controller drivers Christophe Kerello
2020-04-15 15:57 ` Christophe Kerello
2020-04-15 15:57 ` [PATCH v2 01/12] dt-bindings: mfd: stm32-fmc2: add STM32 FMC2 controller documentation Christophe Kerello
2020-04-15 15:57   ` Christophe Kerello
2020-04-28 15:28   ` Rob Herring
2020-04-28 15:28     ` Rob Herring
2020-04-29  9:35     ` Christophe Kerello
2020-04-29  9:35       ` Christophe Kerello
2020-04-15 15:57 ` [PATCH v2 02/12] mfd: stm32-fmc2: add STM32 FMC2 controller driver Christophe Kerello
2020-04-15 15:57   ` Christophe Kerello
2020-04-24  7:45   ` Lee Jones
2020-04-24  7:45     ` Lee Jones
2020-04-24 10:27     ` Marek Vasut
2020-04-24 10:27       ` Marek Vasut
2020-04-24 10:50       ` Lee Jones [this message]
2020-04-24 10:50         ` Lee Jones
2020-04-24 11:06         ` Marek Vasut
2020-04-24 11:06           ` Marek Vasut
2020-04-24 11:47           ` Christophe Kerello
2020-04-24 11:47             ` Christophe Kerello
2020-04-24 14:50             ` Lee Jones
2020-04-24 14:50               ` Lee Jones
2020-04-24 15:14             ` Boris Brezillon
2020-04-24 15:14               ` Boris Brezillon
2020-04-24 16:42               ` Christophe Kerello
2020-04-24 16:42                 ` Christophe Kerello
2020-04-24 17:22                 ` Boris Brezillon
2020-04-24 17:22                   ` Boris Brezillon
2020-04-24 17:34                   ` Christophe Kerello
2020-04-24 17:34                     ` Christophe Kerello
2020-04-15 15:57 ` [PATCH v2 03/12] bus: stm32-fmc2-ebi: add STM32 FMC2 EBI " Christophe Kerello
2020-04-15 15:57   ` Christophe Kerello
2020-04-16 19:53   ` Boris Brezillon
2020-04-16 19:53     ` Boris Brezillon
2020-04-17 15:29     ` Christophe Kerello
2020-04-17 15:29       ` Christophe Kerello
2020-04-17 15:31       ` Marek Vasut
2020-04-17 15:31         ` Marek Vasut
2020-04-17 15:41         ` Boris Brezillon
2020-04-17 15:41           ` Boris Brezillon
2020-04-17 15:44           ` Marek Vasut
2020-04-17 15:44             ` Marek Vasut
2020-04-15 15:57 ` [PATCH v2 04/12] mtd: rawnand: stm32_fmc2: manage all errors cases at probe time Christophe Kerello
2020-04-15 15:57   ` Christophe Kerello
2020-04-27 17:47   ` Miquel Raynal
2020-04-27 17:47     ` Miquel Raynal
2020-04-27 17:59     ` Marek Vasut
2020-04-27 17:59       ` Marek Vasut
2020-04-27 18:08       ` Miquel Raynal
2020-04-27 18:08         ` Miquel Raynal
2020-04-27 19:46         ` Marek Vasut
2020-04-27 19:46           ` Marek Vasut
2020-04-27 20:08           ` Miquel Raynal
2020-04-27 20:08             ` Miquel Raynal
2020-04-27 20:10             ` Marek Vasut
2020-04-27 20:10               ` Marek Vasut
2020-04-29  8:00               ` Christophe Kerello
2020-04-29  8:00                 ` Christophe Kerello
2020-04-29  9:07             ` Christophe Kerello
2020-04-29  9:07               ` Christophe Kerello
2020-04-15 15:57 ` [PATCH v2 05/12] mtd: rawnand: stm32_fmc2: remove useless inline comments Christophe Kerello
2020-04-15 15:57   ` Christophe Kerello
2020-04-27 17:48   ` Miquel Raynal
2020-04-27 17:48     ` Miquel Raynal
2020-04-15 15:57 ` [PATCH v2 06/12] mtd: rawnand: stm32_fmc2: use FMC2_TIMEOUT_MS for timeouts Christophe Kerello
2020-04-15 15:57   ` Christophe Kerello
2020-04-27 18:22   ` Miquel Raynal
2020-04-27 18:22     ` Miquel Raynal
2020-04-29  9:27     ` Christophe Kerello
2020-04-29  9:27       ` Christophe Kerello
2020-04-29  9:35       ` Miquel Raynal
2020-04-29  9:35         ` Miquel Raynal
2020-04-29  9:41         ` Christophe Kerello
2020-04-29  9:41           ` Christophe Kerello
2020-04-29 10:06           ` Miquel Raynal
2020-04-29 10:06             ` Miquel Raynal
2020-04-29 10:13             ` Christophe Kerello
2020-04-29 10:13               ` Christophe Kerello
2020-04-29 10:27               ` Miquel Raynal
2020-04-29 10:27                 ` Miquel Raynal
2020-04-15 15:57 ` [PATCH v2 07/12] mtd: rawnand: stm32_fmc2: cleanup Christophe Kerello
2020-04-15 15:57   ` Christophe Kerello
2020-04-27 18:33   ` Miquel Raynal
2020-04-27 18:33     ` Miquel Raynal
2020-04-29  9:31     ` Christophe Kerello
2020-04-29  9:31       ` Christophe Kerello
2020-04-15 15:57 ` [PATCH v2 08/12] mtd: rawnand: stm32_fmc2: use FIELD_PREP/FIELD_GET macros Christophe Kerello
2020-04-15 15:57   ` Christophe Kerello
2020-04-16 19:45   ` Boris Brezillon
2020-04-16 19:45     ` Boris Brezillon
2020-04-27 18:50     ` Miquel Raynal
2020-04-27 18:50       ` Miquel Raynal
2020-04-15 15:57 ` [PATCH v2 09/12] mtd: rawnand: stm32_fmc2: move all registers Christophe Kerello
2020-04-15 15:57   ` Christophe Kerello
2020-04-15 15:57 ` [PATCH v2 10/12] mtd: rawnand: stm32_fmc2: use regmap APIs Christophe Kerello
2020-04-15 15:57   ` Christophe Kerello
2020-04-27 18:52   ` Miquel Raynal
2020-04-27 18:52     ` Miquel Raynal
2020-04-15 15:57 ` [PATCH v2 11/12] mtd: rawnand: stm32_fmc2: use stm32_fmc2 structure in nfc controller Christophe Kerello
2020-04-15 15:57   ` Christophe Kerello
2020-04-15 15:57 ` [PATCH v2 12/12] mtd: rawnand: stm32_fmc2: add new MP1 compatible string Christophe Kerello
2020-04-15 15:57   ` Christophe Kerello

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=20200424105053.GC8414@dell \
    --to=lee.jones@linaro.org \
    --cc=christophe.kerello@st.com \
    --cc=devicetree@vger.kernel.org \
    --cc=geert@linux-m68k.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=marex@denx.de \
    --cc=mark.rutland@arm.com \
    --cc=miquel.raynal@bootlin.com \
    --cc=richard@nod.at \
    --cc=robh+dt@kernel.org \
    --cc=tony@atomide.com \
    --cc=vigneshr@ti.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.