From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael Trimarchi Date: Fri, 26 Jan 2018 08:51:37 +0100 Subject: [U-Boot] [PATCH V3] imx: mx25: Remove SION bit in all pin-mux that are safe In-Reply-To: References: <1516885571-22185-1-git-send-email-michael@amarulasolutions.com> Message-ID: <20180126075135.GA6794@panicking> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: u-boot@lists.denx.de Hi Benoit On Thu, Jan 25, 2018 at 10:48:42PM +0100, Benoît Thébaudeau wrote: > Hi Michael, > > On Thu, Jan 25, 2018 at 2:06 PM, Michael Trimarchi > 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 > > [...] > > 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 I have checked and u-boot does not have this pin-muxing. I think that this patch should go as it is and a separate patch like this one following should be applied after that. What do you think? > 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). > > If the bus-status detection example in the documentation of SION in > the reference manual is useful, it means that SION is probably > required for all the signals requiring simultaneous output and input > (such as I²C for device clock stretching or multi-master bus > arbitration, except if the IP toggles between input and output low at > each clock edge rather than between open-drain output high and output > low), because there are no automatic SION signals between the > peripherals and the pads but only direction signals that can request a > single direction at a time. For bidirectional signals that do not > require simultaneous output and input because they work in turns (such > as FEC MDIO), SION can be required or not depending on whether the IP > toggles the direction signal for each turn or always expects an input > feedback while driving an open-drain output high. Even if SION is > required for the I²C example mentioned above (which is unlikely as > basic I²C transfers work fine and clock stretching detection is > automatic and would always need the input state), the need for these > advanced I²C features can be considered board-specific, so SION would > still not be required in iomux-mx25.h. > > In the end, for this patch, apart from the pending test for FEC MDIO: > Reviewed-by: Benoît Thébaudeau > > Best regards, > Benoît