[U-Boot] [PATCH] tegra: pinmux: fix FUNCMUX_NDFLASH_KBC_8_BIT

Marcel Ziswiler marcel at ziswiler.com
Tue Mar 24 13:29:14 CET 2015


From: Lucas Stach <dev at lynxeye.de>

Even the 8-bit 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.

Signed-off-by: Lucas Stach <dev at lynxeye.de>
Signed-off-by: Marcel Ziswiler <marcel at ziswiler.com>
Tested-by: Marcel Ziswiler <marcel at ziswiler.com>
---
 arch/arm/mach-tegra/tegra20/funcmux.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/arch/arm/mach-tegra/tegra20/funcmux.c b/arch/arm/mach-tegra/tegra20/funcmux.c
index 0df4a07..f9b6214 100644
--- a/arch/arm/mach-tegra/tegra20/funcmux.c
+++ b/arch/arm/mach-tegra/tegra20/funcmux.c
@@ -252,17 +252,25 @@ int funcmux_select(enum periph_id id, int config)
 			break;
 		case FUNCMUX_NDFLASH_KBC_8_BIT:
 			pinmux_set_func(PMUX_PINGRP_KBCA, PMUX_FUNC_NAND);
+			pinmux_set_func(PMUX_PINGRP_KBCB, PMUX_FUNC_NAND);
 			pinmux_set_func(PMUX_PINGRP_KBCC, PMUX_FUNC_NAND);
 			pinmux_set_func(PMUX_PINGRP_KBCD, PMUX_FUNC_NAND);
 			pinmux_set_func(PMUX_PINGRP_KBCE, PMUX_FUNC_NAND);
 			pinmux_set_func(PMUX_PINGRP_KBCF, PMUX_FUNC_NAND);
 
 			pinmux_tristate_disable(PMUX_PINGRP_KBCA);
+			pinmux_tristate_disable(PMUX_PINGRP_KBCB);
 			pinmux_tristate_disable(PMUX_PINGRP_KBCC);
 			pinmux_tristate_disable(PMUX_PINGRP_KBCD);
 			pinmux_tristate_disable(PMUX_PINGRP_KBCE);
 			pinmux_tristate_disable(PMUX_PINGRP_KBCF);
 
+			/*
+			 * configure pingroup ATC to something unrelated to
+			 * avoid ATC overriding KBC
+			 */
+			pinmux_set_func(PMUX_PINGRP_ATC, PMUX_FUNC_GMI);
+
 			bad_config = 0;
 			break;
 		}
-- 
1.9.3



More information about the U-Boot mailing list