]> www.infradead.org Git - users/jedix/linux-maple.git/commit
plat-mxc: iomux-v3.h: implicitly enable pull-up/down when that's desired
authorPaul Fertser <fercerpav@gmail.com>
Mon, 10 Oct 2011 07:19:23 +0000 (11:19 +0400)
committerMaxim Uvarov <maxim.uvarov@oracle.com>
Thu, 8 Dec 2011 19:17:59 +0000 (11:17 -0800)
commitbc673f7c8f55749f2ac8c554544771b0b79299e0
tree50cda979c0bc304f5174e7c02fb0eb7b668e2d48
parentcb4dfdba135b7bcf08cc01fb067b5c5c8e28f195
plat-mxc: iomux-v3.h: implicitly enable pull-up/down when that's desired

commit 6571534b600b8ca1936ff5630b9e0947f21faf16 upstream.

To configure pads during the initialisation a set of special constants
is used, e.g.
#define MX25_PAD_FEC_MDIO__FEC_MDIO IOMUX_PAD(0x3c4, 0x1cc, 0x10, 0, 0, PAD_CTL_HYS | PAD_CTL_PUS_22K_UP)

The problem is that no pull-up/down is getting activated unless both
PAD_CTL_PUE (pull-up enable) and PAD_CTL_PKE (pull/keeper module
enable) set. This is clearly stated in the i.MX25 datasheet and is
confirmed by the measurements on hardware. This leads to some rather
hard to understand bugs such as misdetecting an absent ethernet PHY (a
real bug i had), unstable data transfer etc. This might affect mx25,
mx35, mx50, mx51 and mx53 SoCs.

It's reasonable to expect that if the pullup value is specified, the
intention was to have it actually active, so we implicitly add the
needed bits.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/arm/plat-mxc/include/mach/iomux-v3.h