[PATCHv6 2/3] OMAP: I2C: Remove the reset in the init path

2 messages, 2 authors, 2011-08-29 · open the first message on its own page

[PATCHv6 2/3] OMAP: I2C: Remove the reset in the init path

From: Kevin Hilman <hidden>
Date: 2011-08-26 23:11:18

Shubhrajyoti D [off-list ref] writes:
-  The reset in the driver at init is not needed anymore as the
   hwmod framework takes care of reseting it.
-  Reset is removed from omap_i2c_init, which was called
   not only during probe, but also after time out and error handling.
   device_reset were added in those places to effect the reset.
-  Earlier the hwmod SYSC settings were over-written in the driver.
   Removing the same and letting the hwmod take care of the settings.
-  Clean up the SYSS_RESETDONE_MASK macro as it is no longer needed.
-  Clean up the SYSCONFIG SYSC bit defination macros.
-  Fix the typos in wakeup.

Signed-off-by: Shubhrajyoti D <redacted>
I asked this in an earlier version, but here it is again.

Are you sure a full IP reset is needed on the timeout and error
conditions and not just the module-level one done by:

	omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, 0);
        
        [ and later... ]

	/* Take the I2C module out of reset: */
	omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, OMAP_I2C_CON_EN);

I kind of suspect that the IP rese was done because the omap_i2c_init()
function was callled under the timeout/error conditions, but that a full
IP SW reset is a bit heavy handed.

Kevin

[PATCHv6 2/3] OMAP: I2C: Remove the reset in the init path

From: Shubhrajyoti <hidden>
Date: 2011-08-29 09:34:29

On Saturday 27 August 2011 04:41 AM, Kevin Hilman wrote:
Shubhrajyoti D[off-list ref]  writes:
quoted
-  The reset in the driver at init is not needed anymore as the
    hwmod framework takes care of reseting it.
-  Reset is removed from omap_i2c_init, which was called
    not only during probe, but also after time out and error handling.
    device_reset were added in those places to effect the reset.
-  Earlier the hwmod SYSC settings were over-written in the driver.
    Removing the same and letting the hwmod take care of the settings.
-  Clean up the SYSS_RESETDONE_MASK macro as it is no longer needed.
-  Clean up the SYSCONFIG SYSC bit defination macros.
-  Fix the typos in wakeup.

Signed-off-by: Shubhrajyoti D<redacted>
I asked this in an earlier version, but here it is again.

Are you sure a full IP reset is needed on the timeout and error
conditions and not just the module-level one done by:

	omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, 0);

         [ and later... ]

	/* Take the I2C module out of reset: */
	omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, OMAP_I2C_CON_EN);

I kind of suspect that the IP rese was done because the omap_i2c_init()
function was callled under the timeout/error conditions, but that a full
IP SW reset is a bit heavy handed.
My idea is that case of lockup  in error path it could be helpful.

We internally had a discussion on this
https://gforge01.dal.design.ti.com/gf/project/opbu_mail_arcv/mailman/?action=ListThreads&mailman_id=218&_forum_action=ForumMessageBrowse&thread_id=12483
Kevin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help