From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Babic Date: Thu, 19 Dec 2013 11:40:39 +0100 Subject: [U-Boot] [PATCH v3 3/8] imx: Easy enabling of SION per-pin using MUX_MODE_SION helper macro In-Reply-To: <1387233845-4372-4-git-send-email-otavio@ossystems.com.br> References: <1387233845-4372-1-git-send-email-otavio@ossystems.com.br> <1387233845-4372-4-git-send-email-otavio@ossystems.com.br> Message-ID: <52B2CD27.7040003@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 Otavio, On 16/12/2013 23:44, Otavio Salvador wrote: > The macro allows easy setting in per-pin, as for example: > > ,---- > | imx_iomux_v3_setup_pad(MX6_PAD_NANDF_D1__GPIO_2_1 | MUX_MODE_SION); > `---- > > The IOMUX_CONFIG_SION allows for reading PAD value from PSR register. > > The following quote from the datasheet: > > ,---- > | ... > | 28.4.2.2 GPIO Write Mode > | The programming sequence for driving output signals should be as follows: > | 1. Configure IOMUX to select GPIO mode (Via IOMUXC), also enable SION if need > | to read loopback pad value through PSR > | 2. Configure GPIO direction register to output (GPIO_GDIR[GDIR] set to 1b). > | 3. Write value to data register (GPIO_DR). > | ... > `---- > > This fixes the gpio_get_value to properly work when a GPIO is set for > output and has no conflicts. > > Thanks for Beno?t Th?baudeau , Fabio > Estevam and Eric B?nard > for helping to properly trace this down. > > Signed-off-by: Otavio Salvador > --- > Changes in v3: None > Changes in v2: None > > arch/arm/include/asm/imx-common/iomux-v3.h | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/arm/include/asm/imx-common/iomux-v3.h b/arch/arm/include/asm/imx-common/iomux-v3.h > index dc2b3ef..dec11a1 100644 > --- a/arch/arm/include/asm/imx-common/iomux-v3.h > +++ b/arch/arm/include/asm/imx-common/iomux-v3.h > @@ -63,6 +63,8 @@ typedef u64 iomux_v3_cfg_t; > #define MUX_SEL_INPUT_SHIFT 59 > #define MUX_SEL_INPUT_MASK ((iomux_v3_cfg_t)0xf << MUX_SEL_INPUT_SHIFT) > > +#define MUX_MODE_SION ((iomux_v3_cfg_t)IOMUX_CONFIG_SION << \ > + MUX_MODE_SHIFT) > #define MUX_PAD_CTRL(x) ((iomux_v3_cfg_t)(x) << MUX_PAD_CTRL_SHIFT) > > #define IOMUX_PAD(pad_ctrl_ofs, mux_ctrl_ofs, mux_mode, sel_input_ofs, \ > Acked-by: Stefano Babic Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================