From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Roese Date: Wed, 05 Aug 2015 10:05:10 +0200 Subject: [U-Boot] [PATCH] Do not mux and setup SPI if disabled in the config In-Reply-To: <20150805072822.GA22422@pqgruber.com> References: <1438709320-18454-1-git-send-email-clemens.gruber@pqgruber.com> <55C19CC6.5040506@denx.de> <20150805072822.GA22422@pqgruber.com> Message-ID: <55C1C3B6.6040606@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Clemens, On 05.08.2015 09:28, Clemens Gruber wrote: >> On 04.08.2015 19:28, Clemens Gruber wrote: >>> This allows baseboards without SPI to compile. >>> >>> Signed-off-by: Clemens Gruber >>> Cc: Markus Niebel >>> Cc: Tom Rini >>> --- >>> board/tqc/tqma6/tqma6.c | 6 ++++++ >>> 1 file changed, 6 insertions(+) >>> >>> diff --git a/board/tqc/tqma6/tqma6.c b/board/tqc/tqma6/tqma6.c >>> index 29db838..5c4d104 100644 >>> --- a/board/tqc/tqma6/tqma6.c >>> +++ b/board/tqc/tqma6/tqma6.c >>> @@ -131,6 +131,8 @@ int board_mmc_init(bd_t *bis) >>> return 0; >>> } >>> >>> +#if defined(CONFIG_MXC_SPI) >>> + >>> static iomux_v3_cfg_t const tqma6_ecspi1_pads[] = { >>> /* SS1 */ >>> NEW_PAD_CTRL(MX6_PAD_EIM_D19__GPIO3_IO19, SPI_PAD_CTRL), >>> @@ -161,6 +163,8 @@ int board_spi_cs_gpio(unsigned bus, unsigned cs) >>> (cs == CONFIG_SF_DEFAULT_CS)) ? TQMA6_SF_CS_GPIO : -1; >>> } >>> >>> +#endif /* defined(CONFIG_MXC_SPI) */ >>> + >>> static struct i2c_pads_info tqma6_i2c3_pads = { >>> /* I2C3: on board LM75, M24C64, */ >>> .scl = { >>> @@ -201,7 +205,9 @@ int board_init(void) >>> /* address of boot parameters */ >>> gd->bd->bi_boot_params = PHYS_SDRAM + 0x100; >>> >>> +#if defined(CONFIG_MXC_SPI) >>> tqma6_iomuxc_spi(); >>> +#endif >>> tqma6_setup_i2c(); >> >> Hmmm. This should not be necessary. Please take a look at the wru4 >> baseboard addition that is already in mainline. Especially this >> patch: > > I noticed your patch but then we would still have to define > CONFIG_SF_DEFAULT_BUS and CONFIG_SF_DEFAULT_CS in our board config or include > the tqma6.h config, which defines too many things we do not need. I would have expected that all boards using these TQ SoM's include this config header. > The problem is, we have different clocks and more c files, so we use a separate > board directory and a separate board config without SPI defines and just use > obj-y += ../../tqc/tqma6/tqma6.o in front of our object files in the Makefile. > > If we don't exclude those SPI parts, we would either have to define those SPI > config options (which does not make sense) or move all of our board code in one > file under tqc/tqma6 which is not an option, we also define additional clocks > via a separate IMX_CONFIG file. > > Wouldn't it be better to always exclude this code when not using SPI instead of > weakly defining the tqma6_iomuxc_spi function? > Then small baseboards could be put in tqc/tqma6 and larger projects could still > just link to tqma6.o and put all their stuff in a separate board directory. How about this patch: diff --git a/board/tqc/tqma6/tqma6.c b/board/tqc/tqma6/tqma6.c index 29db838..345930f 100644 --- a/board/tqc/tqma6/tqma6.c +++ b/board/tqc/tqma6/tqma6.c @@ -28,6 +28,13 @@ #include "tqma6_bb.h" +#ifndef CONFIG_SF_DEFAULT_BUS +#define CONFIG_SF_DEFAULT_BUS 0 +#endif +#ifndef CONFIG_SF_DEFAULT_CS +#define CONFIG_SF_DEFAULT_CS 0 +#endif Does this work for you? Thanks, Stefan