From: Lucas Stach Date: Tue, 22 Jan 2013 23:27:30 +0100 Subject: [U-Boot] [PATCH] tegra: pinmux: fix FUNCMUX_NDFLASH_KBC_8_BIT In-Reply-To: <50FEBD3F.3020205@wwwdotorg.org> References: <1358814041-5117-1-git-send-email-dev@lynxeye.de> <50FEBD3F.3020205@wwwdotorg.org> Message-ID: <1358893650.1540.27.camel@tellur> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Am Dienstag, den 22.01.2013, 09:24 -0700 schrieb Stephen Warren: > On 01/21/2013 05:20 PM, Lucas Stach wrote: > > Even the 8bit case needs KBCB configured, as pin D7 is located in this > > pingroup. Also pingroup ATC seems to come out of reset with config set > > to NAND, so we need to explictly configure some other function to this > > group in order to avoid clashing settings. > > > diff --git a/arch/arm/cpu/tegra20-common/funcmux.c b/arch/arm/cpu/tegra20-common/funcmux.c > > > @@ -266,17 +266,25 @@ int funcmux_select(enum periph_id id, int config) > > break; > > case FUNCMUX_NDFLASH_KBC_8_BIT: > ... > > + /* > > + * configure pingroup ATC to something unrelated to > > + * avoid ATC overriding KBC > > + */ > > + pinmux_set_func(PINGRP_ATC, PMUX_FUNC_GMI); > > + > > This gets a bit dangerous; what if pingroup ATC was already configured > for some function other than NAND or GMI? This code will then break that > setting. I would suggest one of the following alternatives: > > 1) Use the new pinmux_avoid_func() function implemented in the patch > that I just sent. > > 2) Move Tegra20 over to the new board-wide pinmux style that Tegra30 > uses, where the entire pinmux is initialized in one shot. This will > completely avoid any kind of uninitialized pinmux settings, and to some > extent is the only sensible thing to do on a device like Tegra which has > the potential for conflicts like this patch tries to avoid. > I'll take a look on how much work it is to implement option #2. If it isn't too much and I find some time in this U-Boot release cycle, I'm very much inclined to do this the ultimately right way. Regards, Lucas