
Hi Stefano
Do I need to resend with you in CC?
For some reason I forget to include you
Michael
On Fri, Jan 26, 2018 at 12:00 PM, Benoît Thébaudeau benoit@wsystem.com wrote:
On 25/01/2018 at 22:48, Benoît Thébaudeau wrote:
On Thu, Jan 25, 2018 at 2:06 PM, Michael Trimarchi michael@amarulasolutions.com wrote:
SION bit should be used in the situation that we need to read back the value of a pin and should not be set by default macro.
We get some malfunction as raised by following thread
https://www.spinics.net/lists/linux-usb/msg162574.html
As reported by this application note: https://www.nxp.com/docs/en/application-note/AN5078.pdf
The software input on (SION) bit is an option to force an input path to be active regardless of the value driven by the corresponding module. It is used when the nature direction of a pin depending on selected alternative function is an output, but it is needed to read the real logic value on a pin.
The SION bit can be used in: • Loopback: the module of a selected alternative function drives the pad and also receives the pad value as an input • GPIO capture: the module of a selected alternative function drives the pin and the value is captured by the GPIO
SION bit is not necessary when the pin is configured as a peripheral apart specific silicon bug. If an application needs to have this set, this should be done in board file or in dts file
Signed-off-by: Michael Trimarchi michael@amarulasolutions.com
[...]
I have now tested the following peripherals on i.MX25 without any SION bit set: AUDMUX/SSI, eSDHC, FEC (except PHY access for which MDIO might have an issue without SION; Ethernet works but I have not checked whether this is possible at least partially without access to the PHY registers), GPIO, I2C, SLCDC, UART, and USB. Everything worked fine except the lack of SION for eSDHC CMD, which is true for all eSDHC instances (and not only for eSDHC1, so Linux's arch/arm/boot/dts/imx25-pinfunc.h should be fixed). Therefore, SION is mandatory for all the eSDHC CMD functions in arch/arm/include/asm/arch-mx25/iomux-mx25.h, but it can be removed for everything else (I still have to carry out one more test to confirm this for FEC MDIO), and moved to the board files if necessary (but I don't think that any mainline board code is doing something fancy enough to need it).
I confirm that FEC RMII register access works fine without setting SION for MDIO.
Benoît