[PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI*

Tom Rini trini at konsulko.com
Tue Jun 2 20:27:50 CEST 2020


On Tue, Jun 02, 2020 at 06:59:21PM +0530, Jagan Teki wrote:
> On Tue, Jun 2, 2020 at 6:47 PM Zhiqiang Hou <Zhiqiang.Hou at nxp.com> wrote:
> >
> > From: Lukasz Majewski <lukma at denx.de>
> >
> > This change allows more fine tuning of driver model based SPI support in
> > SPL and TPL. It is now possible to explicitly enable/disable the DM_SPI
> > support in SPL and TPL via Kconfig option.
> >
> > Before this change it was necessary to use:
> >     /* SPI Flash Configs */
> >     #if defined(CONFIG_SPL_BUILD)
> >     #undef CONFIG_DM_SPI
> >     #undef CONFIG_DM_SPI_FLASH
> >     #undef CONFIG_SPI_FLASH_MTD
> >     #endif
> >
> > in the ./include/configs/<board>.h, which is error prone and shall be
> > avoided when we strive to switch to Kconfig.
> >
> > The goal of this patch:
> >
> > Provide distinction for DM_SPI support in both U-Boot proper and SPL (TPL).
> > Valid use case is when U-Boot proper wants to use DM_SPI, but SPL must
> > still support non DM driver.
> >
> > Another use case is the conversion of non DM/DTS SPI driver to support
> > DM/DTS. When such driver needs to work in both SPL and U-Boot proper, the
> > distinction is needed in Kconfig (also if SPL version of the driver
> > supports OF_PLATDATA).
> >
> > In the end of the day one would have to support following use cases (in
> > single driver file - e.g. mxs_spi.c):
> >
> > - U-Boot proper driver supporting DT/DTS
> > - U-Boot proper driver without DT/DTS support (deprecated)
> > - SPL driver without DT/DTS support
> > - SPL (and TPL) driver with DT/DTS (when the SoC has enough resources to
> >   run full blown DT/DTS)
> > - SPL driver with DT/DTS and SPL_OF_PLATDATA (when one have constrained
> >   environment with no fitImage and OF_LIBFDT support).
> >
> > Some boards do require SPI support (with DM) in SPL (TPL) and some only
> > have DM_SPI{_FLASH} defined to allow compiling SPL.
> >
> > This patch converts #ifdef CONFIG_DM_SPI* to #if CONFIG_IS_ENABLED(DM_SPI)
> > and provides corresponding defines in Kconfig.
> >
> > Signed-off-by: Lukasz Majewski <lukma at denx.de>
> > Tested-by: Adam Ford <aford173 at gmail.com> #da850-evm
> > Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou at nxp.com>
> > ---
> > V4:
> >  - Rebase the patch and remove SPL_DM_SPI from target ls1046 boards.
> >
> >  arch/arm/Kconfig                            | 11 +++++++++++
> >  board/l+g/vinco/vinco.c                     |  4 ++--
> >  cmd/sf.c                                    |  4 ++--
> >  cmd/spi.c                                   |  6 +++---
> >  common/spl/Kconfig                          | 20 ++++++++++++++++++++
> >  configs/am57xx_evm_defconfig                |  2 ++
> >  configs/am57xx_hs_evm_defconfig             |  2 ++
> >  configs/am57xx_hs_evm_usb_defconfig         |  2 ++
> >  configs/axm_defconfig                       |  2 ++
> >  configs/chromebook_link64_defconfig         |  2 ++
> >  configs/chromebook_samus_tpl_defconfig      |  4 ++++
> >  configs/dra7xx_evm_defconfig                |  2 ++
> >  configs/dra7xx_hs_evm_defconfig             |  2 ++
> >  configs/dra7xx_hs_evm_usb_defconfig         |  2 ++
> >  configs/j721e_evm_a72_defconfig             |  2 ++
> >  configs/j721e_evm_r5_defconfig              |  2 ++
> >  configs/ls1021aiot_qspi_defconfig           |  2 ++
> >  configs/ls1021aiot_sdcard_defconfig         |  2 ++
> >  configs/ls1021aqds_qspi_defconfig           |  1 +
> >  configs/ls1021aqds_sdcard_qspi_defconfig    |  1 +
> >  configs/ls1021atwr_qspi_defconfig           |  1 +
> >  configs/sama5d2_xplained_spiflash_defconfig |  2 ++
> >  configs/sama5d3xek_spiflash_defconfig       |  7 ++++---
> >  configs/sama5d4_xplained_spiflash_defconfig |  2 ++
> >  configs/sama5d4ek_spiflash_defconfig        |  2 ++
> >  configs/stm32mp15_basic_defconfig           |  2 ++
> >  configs/taurus_defconfig                    |  2 ++
> >  drivers/mtd/spi/Makefile                    |  4 ++--
> >  drivers/mtd/spi/sf_probe.c                  |  2 +-
> >  drivers/net/fm/fm.c                         |  4 ++--
> >  drivers/spi/Makefile                        |  2 +-
> >  drivers/spi/atmel_spi.c                     |  4 ++--
> >  drivers/spi/davinci_spi.c                   |  6 +++---
> >  drivers/spi/fsl_dspi.c                      |  5 +++--
> >  drivers/spi/kirkwood_spi.c                  |  2 +-
> >  drivers/spi/mxc_spi.c                       |  6 +++---
> >  drivers/spi/omap3_spi.c                     |  4 ++--
> 
> nondm code on most of the driver will remove in the next version, So I
> didn't see any usecase of this conversion here.

I think this is still the right direction to go in.  non-DM for SPL is
allowed and this is part of the logical steps needed for moving forward
with "now pull non-DM driver into own file for SPL" until the efforts to
make DM smaller still are ready.  So this series is on my list to test
and confirm doesn't change binary size on.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200602/33b6e0df/attachment.sig>


More information about the U-Boot mailing list