OSDN Git Service

ARM: OMAP2+: hwmod: revise the IP block reset process
authorPaul Walmsley <paul@pwsan.com>
Thu, 19 Apr 2012 06:49:09 +0000 (00:49 -0600)
committerPaul Walmsley <paul@pwsan.com>
Thu, 19 Apr 2012 06:49:09 +0000 (00:49 -0600)
commit30e105c000abbac55602b37f4831437bca5487b0
treefdbfdb8ad21db6289d875c690d643d6a73c989d0
parentf2f5736cf83fff7e95991390b2a4b481818e29b5
ARM: OMAP2+: hwmod: revise the IP block reset process

Revise the IP block reset process.  This patch ensures that the
OCP_SYSCONFIG registers are reloaded after a custom reset.  Since
OCP_SYSCONFIG bits are cleared during reset, they should be
reprogrammed unless the IP block is being left in reset.  (The only IP
blocks that are left in reset are IP blocks with hardreset lines and
no custom reset function.)  If the IP block is left in reset, then it
is inaccessible to the MPU, and an access to the OCP_SYSCONFIG
register will cause an abort.

This version incorporates comments from Omar Ramirez Luna
<omar.ramirez@ti.com> to skip the OCP_SYSCONFIG access after asserting
hardreset lines.  This allows the MMU (IOMMU) IP block, which has
both hardreset lines and an OCP_SYSCONFIG register.

Also, ignore _ocp_softreset() errors if the IP block doesn't include a
softreset bit.  This is needed since a subsequent patch will start
taking the return value of the _reset() function seriously.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: BenoƮt Cousson <b-cousson@ti.com>
Cc: Omar Ramirez Luna <omar.ramirez@ti.com>
arch/arm/mach-omap2/omap_hwmod.c