ARM: S3C6410: Use device names for both I2C clocks
Subsystems (3)
PATCH 1/1 ARM: S3C6410: Use device names for both I2C clocks
When the S3C64xx CPUs were converted to clkdev mappings were added for the I2C controllers on them. On S3C6410 a device name is specified for I2C controller 1 but not for controller 0 which makes the code less robust as we'll falsely return the clock for controller 0 if there's an error in the request for controller 1.
Improve things by registering a device name for controller 0 as well. Due to the fact that we change the numbering for controller 0 depending on if we've registered controller 1 this requires an ifdef to choose the name.
--- arch/arm/mach-s3c64xx/clock.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-)
arch/arm/mach-s3c64xx/clock.c +5 -0
@@ -138,6 +138,11 @@ static struct clk init_clocks_off[] = { .ctrlbit = S3C_CLKCON_PCLK_TSADC, }, { .name = "i2c", +#ifdef CONFIG_S3C_DEV_I2C1 + .devname = "s3c2440-i2c.0", +#else + .devname = "s3c2440-i2c", +#endif .parent = &clk_p, .enable = s3c64xx_pclk_ctrl, .ctrlbit = S3C_CLKCON_PCLK_IIC,
Signature · 1 line
1.7.7.1
PATCH 1/1 ARM: S3C6410: Use device names for both I2C clocks
Quoted 21 lines · Mark Brown
When the S3C64xx CPUs were converted to clkdev mappings were added for the I2C controllers on them. On S3C6410 a device name is specified for I2C controller 1 but not for controller 0 which makes the code less robust as we'll falsely return the clock for controller 0 if there's an error in the request for controller 1.
Improve things by registering a device name for controller 0 as well. Due to the fact that we change the numbering for controller 0 depending on if we've registered controller 1 this requires an ifdef to choose the name.
Signed-off-by Mark Brown <[email protected]>---
?arch/arm/mach-s3c64xx/clock.c | ? ?5 +++++
?1 files changed, 5 insertions(+), 0 deletions(-)arch/arm/mach-s3c64xx/clock.c +0
-0@@ -138,6 +138,11 @@ static struct clk init_clocks_off[] = { ? ? ? ? ? ? ? ?.ctrlbit ? ? ? ?= S3C_CLKCON_PCLK_TSADC,
arch/arm/mach-s3c64xx/clock.c static struct clk init_clocks_off[] = { · line 148
Quoted 10 lines
arch/arm/mach-s3c64xx/clock.c +5
-0? ? ? ?}, { ? ? ? ? ? ? ? ?.name ? ? ? ? ? = "i2c", +#ifdef CONFIG_S3C_DEV_I2C1 + ? ? ? ? ? ? ? .devname ? ? ? ?= "s3c2440-i2c.0", +#else + ? ? ? ? ? ? ? .devname ? ? ? ?= "s3c2440-i2c", +#endif ? ? ? ? ? ? ? ?.parent ? ? ? ? = &clk_p, ? ? ? ? ? ? ? ?.enable ? ? ? ? = s3c64xx_pclk_ctrl, ? ? ? ? ? ? ? ?.ctrlbit ? ? ? ?= S3C_CLKCON_PCLK_IIC,
The #ifdef around the id of the s3c_device_i2c0 structure in arch/arm/plat-samsung/devs.c file can be removed and id can be fixed as 0. And devname "s3c2440-i2c.0" can be assigned above without the #ifdef. Will there be any issues in using .id as 0 even if there is only one instance of i2c?
Thanks,
Thomas.
PATCH 1/1 ARM: S3C6410: Use device names for both I2C clocks
Quoted 13 lines · Thomas Abraham
On 8 November 2011 21:39, Mark Brown
arch/arm/mach-s3c64xx/clock.c static struct clk init_clocks_off[] = { · line 145
Quoted 5 lines
arch/arm/mach-s3c64xx/clock.c +5
-0+#ifdef CONFIG_S3C_DEV_I2C1 + ? ? ? ? ? ? ? .devname ? ? ? ?= "s3c2440-i2c.0", +#else + ? ? ? ? ? ? ? .devname ? ? ? ?= "s3c2440-i2c", +#endif The #ifdef around the id of the
s3c_device_i2c0structure inarch/arm/plat-samsung/devs.cfile can be removed and id can be fixed as 0. And devname "s3c2440-i2c.0" can be assigned above without the #ifdef. Will there be any issues in using .id as 0 even if there is only one instance of i2c?
That would be much nicer from my point of view but it's much more invasive as this device is used by a whole raft of other SoCs, not all of which have more than one I2C controller and I don't really feel like changing the idiom over the entire Samsung SoC family right now.