From 87c08ac664272a5a440be1b9323612d30b5bd64e Mon Sep 17 00:00:00 2001 From: Alexander Kurz Date: Sun, 10 Jun 2018 07:04:08 +0000 Subject: i.MX: iomuxv3: restore NO_PAD_CTRL semantic A NO_PAD_CTRL flag used to keep a pad configuration untouched. With commit 094820a63bfd ("i.MX: iomuxv3: Use helper functions in iomux-v3.h") the NO_PAD_CTRL semantic changed to set a pad configurations to zero, which breaks non-DT boards, where NO_PAD_CTRL is freqently used to keep a boot-up default pad configuration, which often is non zero. Restore the old semantic, dont write PAD_CTRL when NO_PAD_CTRL is set. Signed-off-by: Alexander Kurz Signed-off-by: Sascha Hauer --- arch/arm/mach-imx/include/mach/iomux-v3.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-imx/include/mach/iomux-v3.h b/arch/arm/mach-imx/include/mach/iomux-v3.h index 994c15c046..d1a72a2cf5 100644 --- a/arch/arm/mach-imx/include/mach/iomux-v3.h +++ b/arch/arm/mach-imx/include/mach/iomux-v3.h @@ -159,14 +159,16 @@ static inline void iomux_v3_setup_pad(void __iomem *iomux, unsigned int flags, static inline void imx_setup_pad(void __iomem *iomux, iomux_v3_cfg_t pad) { - uint32_t pad_ctrl; + uint32_t conf_reg, pad_ctrl; + /* dont write PAD_CTRL when NO_PAD_CTRL is set */ pad_ctrl = IOMUX_PAD_CTRL(pad); - pad_ctrl = (pad_ctrl & NO_PAD_CTRL) ? 0 : pad_ctrl, + conf_reg = IOMUX_PAD_CTRL_OFS(pad); + conf_reg = (pad_ctrl & NO_PAD_CTRL) ? 0 : conf_reg, iomux_v3_setup_pad(iomux, 0, IOMUX_CTRL_OFS(pad), - IOMUX_PAD_CTRL_OFS(pad), + conf_reg, IOMUX_SEL_INPUT_OFS(pad), IOMUX_MODE(pad), pad_ctrl, -- cgit v1.2.3