Re: [PATCH v2 03/12] bus: stm32-fmc2-ebi: add STM32 FMC2 EBI controller driver

From: Marek Vasut
Date: Fri Apr 17 2020 - 11:31:57 EST


On 4/17/20 5:29 PM, Christophe Kerello wrote:
>
>
> On 4/16/20 9:53 PM, Boris Brezillon wrote:
>> On Wed, 15 Apr 2020 17:57:27 +0200
>> Christophe Kerello <christophe.kerello@xxxxxx> wrote:
>>
>>> The driver adds the support for the STMicroelectronics FMC2 EBI
>>> controller
>>> found on STM32MP SOCs.
>>>
>>> Signed-off-by: Christophe Kerello <christophe.kerello@xxxxxx>
>>> Tested-by: Marek Vasut <marex@xxxxxxx>
>>> ---
>>> Changes in v2:
>>> Â - call 2 APIs to manage FMC2 enable/disable instead of ops
>>> Â - call 2 APIs to manage FMC2 NWAIT shared signal instead of ops
>>>
>>> Â drivers/bus/KconfigÂÂÂÂÂÂÂÂÂ |ÂÂ 11 +
>>> Â drivers/bus/MakefileÂÂÂÂÂÂÂÂ |ÂÂÂ 1 +
>>> Â drivers/bus/stm32-fmc2-ebi.c | 1091
>>> ++++++++++++++++++++++++++++++++++++++++++
>>
>> Hm, I see that other memory bus controller drivers are placed under
>> drivers/memory/, any reason for choosing drivers/bus/? If that's where
>> we want to have all generic memory bus controllers to live it might be
>> worth moving existing drivers to the drivers/bus/ directory at some
>> point.
>>
>
> Hi Boris,
>
> I see this controller as an external bus interface as we are able to
> attach different devices on it, like a PSRAM, an ethernet controller, a
> FPGA, a LCD display, ...
>
> When I had a look at bus/Kconfig file, I have found similar drivers
> (like IMX_WEIM or QCOM_EBI2 drivers). These drivers are able to connect
> devices like NAND Flash, SRAM, ethernet adapters, FPGAs and LCD displays
> as it is written in the Kconfig file.
>
> But, after checking memory/Kconfig file, it is also possible to find
> similar drivers (like ATMEL_EBI driver that is inspired by the WEIM bus
> driver).
>
> So, I will follow the recommendation and I will move it to
> drivers/memory folder if it is the place where this driver should be.

The EBI isn't a memory bus, you can very well have a non-memory device,
like an external parallel bus memory controller on it. So why should it
be in drivers/memory ?