diff -urpN -X dontdiff linux-2.6.15-git9/drivers/i2c/busses/i2c-s3c2410.c linux-2.6.15-git9-bjd1/drivers/i2c/busses/i2c-s3c2410.c
--- linux-2.6.15-git9/drivers/i2c/busses/i2c-s3c2410.c	2006-01-14 08:18:06.593330312 +0000
+++ linux-2.6.15-git9-bjd1/drivers/i2c/busses/i2c-s3c2410.c	2006-01-14 10:04:00.436399344 +0000
@@ -44,6 +44,14 @@
 #include <asm/arch/regs-iic.h>
 #include <asm/arch/iic.h>
 
+/* configuration */
+
+#ifdef CONFIG_I2C_S3C2410_CLKIDLE
+static int clock_idle = 1;
+#else
+static const int clock_idle = 0;
+#endif
+
 /* i2c controller state */
 
 enum s3c24xx_i2c_state {
@@ -96,6 +104,11 @@ static inline int s3c24xx_i2c_is2440(str
 	return !strcmp(pdev->name, "s3c2440-i2c");
 }
 
+static inline int s3c24xx_i2c_clkidle(struct s3c24xx_i2c *i2c)
+{
+	return clock_idle;
+}
+
 
 /* s3c24xx_i2c_get_platformdata
  *
@@ -492,6 +505,9 @@ static int s3c24xx_i2c_doxfer(struct s3c
 	unsigned long timeout;
 	int ret;
 
+	if (s3c24xx_i2c_clkidle(i2c))
+		clk_enable(i2c->clk);
+
 	ret = s3c24xx_i2c_set_master(i2c);
 	if (ret != 0) {
 		dev_err(i2c->dev, "cannot get bus (error %d)\n", ret);
@@ -528,6 +544,9 @@ static int s3c24xx_i2c_doxfer(struct s3c
 	msleep(1);
 
  out:
+	if (s3c24xx_i2c_clkidle(i2c))
+		clk_disable(i2c->clk);
+
 	return ret;
 }
 
diff -urpN -X dontdiff linux-2.6.15-git9/drivers/i2c/busses/Kconfig linux-2.6.15-git9-bjd1/drivers/i2c/busses/Kconfig
--- linux-2.6.15-git9/drivers/i2c/busses/Kconfig	2006-01-14 08:18:06.412357824 +0000
+++ linux-2.6.15-git9-bjd1/drivers/i2c/busses/Kconfig	2006-01-14 10:04:49.915877320 +0000
@@ -342,6 +342,14 @@ config I2C_S3C2410
 	  Say Y here to include support for I2C controller in the
 	  Samsung S3C2410 based System-on-Chip devices.
 
+config I2C_S3C2410_CLKIDLE
+	bool "Stop I2C clock during IDLE"
+	depends on I2C_S3C2410
+	help
+	  Say Y here to enable support for disabling the I2C unit
+	  clock when the bus is idle. This is useful to save power
+	  if not using the unit as a bus slave.
+
 config I2C_SAVAGE4
 	tristate "S3 Savage 4"
 	depends on I2C && PCI && EXPERIMENTAL

