imx: Easy enabling of SION per-pin using MUX_MODE_SION helper macro
authorOtavio Salvador <otavio@ossystems.com.br>
Mon, 16 Dec 2013 22:44:00 +0000 (20:44 -0200)
committerStefano Babic <sbabic@denx.de>
Fri, 3 Jan 2014 14:44:05 +0000 (15:44 +0100)
commit7773fd196918826ebaab769e63a4775607f5256c
treef805601ab56da9bab1477d9bdf64766f9e509beb
parent02229827804980e3cce48bf4fce43699046bcf7e
imx: Easy enabling of SION per-pin using MUX_MODE_SION helper macro

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 <benoit.thebaudeau@advansee.com>, Fabio
Estevam <fabio.estevam@freescale.com> and Eric Bénard
<eric@eukrea.com> for helping to properly trace this down.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Acked-by: Stefano Babic <sbabic@denx.de>
arch/arm/include/asm/imx-common/iomux-v3.h