All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V3 0/5] Avoid passing clks through platform data
@ 2012-11-06  4:48 ` Padmavathi Venna
  0 siblings, 0 replies; 32+ messages in thread
From: Padmavathi Venna @ 2012-11-06  4:48 UTC (permalink / raw)
  To: linux-arm-kernel, linux-samsung-soc
  Cc: padma.v, sbkim73, ben-linux, kgene.kim, olofj

Changes since v2: 
	- Rebased on 3.7-rc3

I2S controller has an internal mux for RCLK source clks. The list
of source clk names were passed through platform data in non-dt case.
The variable holding the list of RCLK source clk names is not
required, as the list of clks need to be registered with clkdev
using generic connection id. This is required as part of adding DT
support for I2S controller driver.

In the below series of patches, registered the existed clks with
clkdev using generic connection id and removed the variable which
holds those clk names. This is done for s3c64xx,s5pc100,s5p64x0,
s5pv210 and exynos4 series. But tested the sound card detection
only on smdk6410 board. On remaining all platforms it was just
build tested.

Padmavathi Venna (5):
  ARM: S3C64XX: Add I2S clkdev support
  ARM: S5PC100: Add I2S clkdev support
  ARM: S5P64x0: Add I2S clkdev support
  ARM: S5PV210: Avoid passing the clks through platform data
  ARM: Exynos: Avoid passing the clks through platform data

 arch/arm/mach-exynos/dev-audio.c      |   12 ---
 arch/arm/mach-s3c64xx/clock.c         |  126 ++++++++++++++++++++-------------
 arch/arm/mach-s3c64xx/dev-audio.c     |   11 ---
 arch/arm/mach-s5p64x0/clock-s5p6440.c |   49 +++++++++----
 arch/arm/mach-s5p64x0/clock-s5p6450.c |   61 +++++++++++-----
 arch/arm/mach-s5p64x0/dev-audio.c     |   12 ---
 arch/arm/mach-s5pc100/clock.c         |   48 ++++++++-----
 arch/arm/mach-s5pc100/dev-audio.c     |   16 ----
 arch/arm/mach-s5pv210/dev-audio.c     |   16 ----
 9 files changed, 182 insertions(+), 169 deletions(-)

-- 
1.7.4.4

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH V3 0/5] Avoid passing clks through platform data
@ 2012-11-06  4:48 ` Padmavathi Venna
  0 siblings, 0 replies; 32+ messages in thread
From: Padmavathi Venna @ 2012-11-06  4:48 UTC (permalink / raw)
  To: linux-arm-kernel

Changes since v2: 
	- Rebased on 3.7-rc3

I2S controller has an internal mux for RCLK source clks. The list
of source clk names were passed through platform data in non-dt case.
The variable holding the list of RCLK source clk names is not
required, as the list of clks need to be registered with clkdev
using generic connection id. This is required as part of adding DT
support for I2S controller driver.

In the below series of patches, registered the existed clks with
clkdev using generic connection id and removed the variable which
holds those clk names. This is done for s3c64xx,s5pc100,s5p64x0,
s5pv210 and exynos4 series. But tested the sound card detection
only on smdk6410 board. On remaining all platforms it was just
build tested.

Padmavathi Venna (5):
  ARM: S3C64XX: Add I2S clkdev support
  ARM: S5PC100: Add I2S clkdev support
  ARM: S5P64x0: Add I2S clkdev support
  ARM: S5PV210: Avoid passing the clks through platform data
  ARM: Exynos: Avoid passing the clks through platform data

 arch/arm/mach-exynos/dev-audio.c      |   12 ---
 arch/arm/mach-s3c64xx/clock.c         |  126 ++++++++++++++++++++-------------
 arch/arm/mach-s3c64xx/dev-audio.c     |   11 ---
 arch/arm/mach-s5p64x0/clock-s5p6440.c |   49 +++++++++----
 arch/arm/mach-s5p64x0/clock-s5p6450.c |   61 +++++++++++-----
 arch/arm/mach-s5p64x0/dev-audio.c     |   12 ---
 arch/arm/mach-s5pc100/clock.c         |   48 ++++++++-----
 arch/arm/mach-s5pc100/dev-audio.c     |   16 ----
 arch/arm/mach-s5pv210/dev-audio.c     |   16 ----
 9 files changed, 182 insertions(+), 169 deletions(-)

-- 
1.7.4.4

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH V3 1/5] ARM: S3C64XX: Add I2S clkdev support
  2012-11-06  4:48 ` Padmavathi Venna
@ 2012-11-06  4:48   ` Padmavathi Venna
  -1 siblings, 0 replies; 32+ messages in thread
From: Padmavathi Venna @ 2012-11-06  4:48 UTC (permalink / raw)
  To: linux-arm-kernel, linux-samsung-soc
  Cc: padma.v, sbkim73, ben-linux, kgene.kim, olofj

I2S controller has an internal mux for RCLK source clks. The list
of source clk names were passed through platform data in non-dt case.
Register the existing RCLK source clocks with clkdev using generic
connection id. This is required as part of adding DT support
for I2S controller driver.

Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
---
 arch/arm/mach-s3c64xx/clock.c     |  126 ++++++++++++++++++++++--------------
 arch/arm/mach-s3c64xx/dev-audio.c |   11 ---
 2 files changed, 77 insertions(+), 60 deletions(-)

diff --git a/arch/arm/mach-s3c64xx/clock.c b/arch/arm/mach-s3c64xx/clock.c
index 28041e8..087183d 100644
--- a/arch/arm/mach-s3c64xx/clock.c
+++ b/arch/arm/mach-s3c64xx/clock.c
@@ -153,25 +153,6 @@ static struct clk init_clocks_off[] = {
 		.enable		= s3c64xx_pclk_ctrl,
 		.ctrlbit	= S3C6410_CLKCON_PCLK_I2C1,
 	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.0",
-		.parent		= &clk_p,
-		.enable		= s3c64xx_pclk_ctrl,
-		.ctrlbit	= S3C_CLKCON_PCLK_IIS0,
-	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.1",
-		.parent		= &clk_p,
-		.enable		= s3c64xx_pclk_ctrl,
-		.ctrlbit	= S3C_CLKCON_PCLK_IIS1,
-	}, {
-#ifdef CONFIG_CPU_S3C6410
-		.name		= "iis",
-		.parent		= &clk_p,
-		.enable		= s3c64xx_pclk_ctrl,
-		.ctrlbit	= S3C6410_CLKCON_PCLK_IIS2,
-	}, {
-#endif
 		.name		= "keypad",
 		.parent		= &clk_p,
 		.enable		= s3c64xx_pclk_ctrl,
@@ -345,6 +326,32 @@ static struct clk clk_48m_spi1 = {
 	.ctrlbit	= S3C_CLKCON_SCLK_SPI1_48,
 };
 
+static struct clk clk_i2s0 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.0",
+	.parent		= &clk_p,
+	.enable		= s3c64xx_pclk_ctrl,
+	.ctrlbit	= S3C_CLKCON_PCLK_IIS0,
+};
+
+static struct clk clk_i2s1 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.1",
+	.parent		= &clk_p,
+	.enable		= s3c64xx_pclk_ctrl,
+	.ctrlbit	= S3C_CLKCON_PCLK_IIS1,
+};
+
+#ifdef CONFIG_CPU_S3C6410
+static struct clk clk_i2s2 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.2",
+	.parent		= &clk_p,
+	.enable		= s3c64xx_pclk_ctrl,
+	.ctrlbit	= S3C6410_CLKCON_PCLK_IIS2,
+};
+#endif
+
 static struct clk init_clocks[] = {
 	{
 		.name		= "lcd",
@@ -668,6 +675,7 @@ static struct clksrc_sources clkset_audio1 = {
 	.nr_sources	= ARRAY_SIZE(clkset_audio1_list),
 };
 
+#ifdef CONFIG_CPU_S3C6410
 static struct clk *clkset_audio2_list[] = {
 	[0] = &clk_mout_epll.clk,
 	[1] = &clk_dout_mpll,
@@ -680,6 +688,7 @@ static struct clksrc_sources clkset_audio2 = {
 	.sources	= clkset_audio2_list,
 	.nr_sources	= ARRAY_SIZE(clkset_audio2_list),
 };
+#endif
 
 static struct clk *clkset_camif_list[] = {
 	&clk_h2,
@@ -702,36 +711,6 @@ static struct clksrc_clk clksrcs[] = {
 		.sources	= &clkset_uhost,
 	}, {
 		.clk	= {
-			.name		= "audio-bus",
-			.devname	= "samsung-i2s.0",
-			.ctrlbit        = S3C_CLKCON_SCLK_AUDIO0,
-			.enable		= s3c64xx_sclk_ctrl,
-		},
-		.reg_src	= { .reg = S3C_CLK_SRC, .shift = 7, .size = 3  },
-		.reg_div	= { .reg = S3C_CLK_DIV2, .shift = 8, .size = 4  },
-		.sources	= &clkset_audio0,
-	}, {
-		.clk	= {
-			.name		= "audio-bus",
-			.devname	= "samsung-i2s.1",
-			.ctrlbit        = S3C_CLKCON_SCLK_AUDIO1,
-			.enable		= s3c64xx_sclk_ctrl,
-		},
-		.reg_src	= { .reg = S3C_CLK_SRC, .shift = 10, .size = 3  },
-		.reg_div	= { .reg = S3C_CLK_DIV2, .shift = 12, .size = 4  },
-		.sources	= &clkset_audio1,
-	}, {
-		.clk	= {
-			.name		= "audio-bus",
-			.devname	= "samsung-i2s.2",
-			.ctrlbit        = S3C6410_CLKCON_SCLK_AUDIO2,
-			.enable		= s3c64xx_sclk_ctrl,
-		},
-		.reg_src	= { .reg = S3C6410_CLK_SRC2, .shift = 0, .size = 3  },
-		.reg_div	= { .reg = S3C_CLK_DIV2, .shift = 24, .size = 4  },
-		.sources	= &clkset_audio2,
-	}, {
-		.clk	= {
 			.name		= "irda-bus",
 			.ctrlbit        = S3C_CLKCON_SCLK_IRDA,
 			.enable		= s3c64xx_sclk_ctrl,
@@ -823,6 +802,43 @@ static struct clksrc_clk clk_sclk_spi1 = {
 	.sources = &clkset_spi_mmc,
 };
 
+static struct clksrc_clk clk_audio_bus0 = {
+	.clk	= {
+		.name		= "audio-bus",
+		.devname	= "samsung-i2s.0",
+		.ctrlbit	= S3C_CLKCON_SCLK_AUDIO0,
+		.enable		= s3c64xx_sclk_ctrl,
+	},
+	.reg_src	= { .reg = S3C_CLK_SRC, .shift = 7, .size = 3  },
+	.reg_div	= { .reg = S3C_CLK_DIV2, .shift = 8, .size = 4  },
+	.sources	= &clkset_audio0,
+};
+
+static struct clksrc_clk clk_audio_bus1 = {
+	.clk	= {
+		.name		= "audio-bus",
+		.devname	= "samsung-i2s.1",
+		.ctrlbit	= S3C_CLKCON_SCLK_AUDIO1,
+		.enable		= s3c64xx_sclk_ctrl,
+	},
+	.reg_src	= { .reg = S3C_CLK_SRC, .shift = 10, .size = 3  },
+	.reg_div	= { .reg = S3C_CLK_DIV2, .shift = 12, .size = 4  },
+	.sources	= &clkset_audio1,
+};
+
+#ifdef CONFIG_CPU_S3C6410
+static struct clksrc_clk clk_audio_bus2 = {
+	.clk	= {
+		.name		= "audio-bus",
+		.devname	= "samsung-i2s.2",
+		.ctrlbit	= S3C6410_CLKCON_SCLK_AUDIO2,
+		.enable		= s3c64xx_sclk_ctrl,
+	},
+	.reg_src	= { .reg = S3C6410_CLK_SRC2, .shift = 0, .size = 3  },
+	.reg_div	= { .reg = S3C_CLK_DIV2, .shift = 24, .size = 4  },
+	.sources	= &clkset_audio2,
+};
+#endif
 /* Clock initialisation code */
 
 static struct clksrc_clk *init_parents[] = {
@@ -838,6 +854,8 @@ static struct clksrc_clk *clksrc_cdev[] = {
 	&clk_sclk_mmc2,
 	&clk_sclk_spi0,
 	&clk_sclk_spi1,
+	&clk_audio_bus0,
+	&clk_audio_bus1,
 };
 
 static struct clk *clk_cdev[] = {
@@ -846,6 +864,8 @@ static struct clk *clk_cdev[] = {
 	&clk_hsmmc2,
 	&clk_48m_spi0,
 	&clk_48m_spi1,
+	&clk_i2s0,
+	&clk_i2s1,
 };
 
 static struct clk_lookup s3c64xx_clk_lookup[] = {
@@ -862,6 +882,14 @@ static struct clk_lookup s3c64xx_clk_lookup[] = {
 	CLKDEV_INIT("s3c6410-spi.0", "spi_busclk2", &clk_48m_spi0),
 	CLKDEV_INIT("s3c6410-spi.1", "spi_busclk1", &clk_sclk_spi1.clk),
 	CLKDEV_INIT("s3c6410-spi.1", "spi_busclk2", &clk_48m_spi1),
+	CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &clk_i2s0),
+	CLKDEV_INIT("samsung-i2s.0", "i2s_opclk1", &clk_audio_bus0.clk),
+	CLKDEV_INIT("samsung-i2s.1", "i2s_opclk0", &clk_i2s1),
+	CLKDEV_INIT("samsung-i2s.1", "i2s_opclk1", &clk_audio_bus1.clk),
+#ifdef CONFIG_CPU_S3C6410
+	CLKDEV_INIT("samsung-i2s.2", "i2s_opclk0", &clk_i2s2),
+	CLKDEV_INIT("samsung-i2s.2", "i2s_opclk1", &clk_audio_bus2.clk),
+#endif
 };
 
 #define GET_DIV(clk, field) ((((clk) & field##_MASK) >> field##_SHIFT) + 1)
diff --git a/arch/arm/mach-s3c64xx/dev-audio.c b/arch/arm/mach-s3c64xx/dev-audio.c
index 35f3e07..e367e87 100644
--- a/arch/arm/mach-s3c64xx/dev-audio.c
+++ b/arch/arm/mach-s3c64xx/dev-audio.c
@@ -23,11 +23,6 @@
 #include <linux/platform_data/asoc-s3c.h>
 #include <plat/gpio-cfg.h>
 
-static const char *rclksrc[] = {
-	[0] = "iis",
-	[1] = "audio-bus",
-};
-
 static int s3c64xx_i2s_cfg_gpio(struct platform_device *pdev)
 {
 	unsigned int base;
@@ -64,11 +59,6 @@ static struct resource s3c64xx_iis0_resource[] = {
 
 static struct s3c_audio_pdata i2sv3_pdata = {
 	.cfg_gpio = s3c64xx_i2s_cfg_gpio,
-	.type = {
-		.i2s = {
-			.src_clk = rclksrc,
-		},
-	},
 };
 
 struct platform_device s3c64xx_device_iis0 = {
@@ -110,7 +100,6 @@ static struct s3c_audio_pdata i2sv4_pdata = {
 	.type = {
 		.i2s = {
 			.quirks = QUIRK_PRI_6CHAN,
-			.src_clk = rclksrc,
 		},
 	},
 };
-- 
1.7.4.4

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [PATCH V3 1/5] ARM: S3C64XX: Add I2S clkdev support
@ 2012-11-06  4:48   ` Padmavathi Venna
  0 siblings, 0 replies; 32+ messages in thread
From: Padmavathi Venna @ 2012-11-06  4:48 UTC (permalink / raw)
  To: linux-arm-kernel

I2S controller has an internal mux for RCLK source clks. The list
of source clk names were passed through platform data in non-dt case.
Register the existing RCLK source clocks with clkdev using generic
connection id. This is required as part of adding DT support
for I2S controller driver.

Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
---
 arch/arm/mach-s3c64xx/clock.c     |  126 ++++++++++++++++++++++--------------
 arch/arm/mach-s3c64xx/dev-audio.c |   11 ---
 2 files changed, 77 insertions(+), 60 deletions(-)

diff --git a/arch/arm/mach-s3c64xx/clock.c b/arch/arm/mach-s3c64xx/clock.c
index 28041e8..087183d 100644
--- a/arch/arm/mach-s3c64xx/clock.c
+++ b/arch/arm/mach-s3c64xx/clock.c
@@ -153,25 +153,6 @@ static struct clk init_clocks_off[] = {
 		.enable		= s3c64xx_pclk_ctrl,
 		.ctrlbit	= S3C6410_CLKCON_PCLK_I2C1,
 	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.0",
-		.parent		= &clk_p,
-		.enable		= s3c64xx_pclk_ctrl,
-		.ctrlbit	= S3C_CLKCON_PCLK_IIS0,
-	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.1",
-		.parent		= &clk_p,
-		.enable		= s3c64xx_pclk_ctrl,
-		.ctrlbit	= S3C_CLKCON_PCLK_IIS1,
-	}, {
-#ifdef CONFIG_CPU_S3C6410
-		.name		= "iis",
-		.parent		= &clk_p,
-		.enable		= s3c64xx_pclk_ctrl,
-		.ctrlbit	= S3C6410_CLKCON_PCLK_IIS2,
-	}, {
-#endif
 		.name		= "keypad",
 		.parent		= &clk_p,
 		.enable		= s3c64xx_pclk_ctrl,
@@ -345,6 +326,32 @@ static struct clk clk_48m_spi1 = {
 	.ctrlbit	= S3C_CLKCON_SCLK_SPI1_48,
 };
 
+static struct clk clk_i2s0 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.0",
+	.parent		= &clk_p,
+	.enable		= s3c64xx_pclk_ctrl,
+	.ctrlbit	= S3C_CLKCON_PCLK_IIS0,
+};
+
+static struct clk clk_i2s1 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.1",
+	.parent		= &clk_p,
+	.enable		= s3c64xx_pclk_ctrl,
+	.ctrlbit	= S3C_CLKCON_PCLK_IIS1,
+};
+
+#ifdef CONFIG_CPU_S3C6410
+static struct clk clk_i2s2 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.2",
+	.parent		= &clk_p,
+	.enable		= s3c64xx_pclk_ctrl,
+	.ctrlbit	= S3C6410_CLKCON_PCLK_IIS2,
+};
+#endif
+
 static struct clk init_clocks[] = {
 	{
 		.name		= "lcd",
@@ -668,6 +675,7 @@ static struct clksrc_sources clkset_audio1 = {
 	.nr_sources	= ARRAY_SIZE(clkset_audio1_list),
 };
 
+#ifdef CONFIG_CPU_S3C6410
 static struct clk *clkset_audio2_list[] = {
 	[0] = &clk_mout_epll.clk,
 	[1] = &clk_dout_mpll,
@@ -680,6 +688,7 @@ static struct clksrc_sources clkset_audio2 = {
 	.sources	= clkset_audio2_list,
 	.nr_sources	= ARRAY_SIZE(clkset_audio2_list),
 };
+#endif
 
 static struct clk *clkset_camif_list[] = {
 	&clk_h2,
@@ -702,36 +711,6 @@ static struct clksrc_clk clksrcs[] = {
 		.sources	= &clkset_uhost,
 	}, {
 		.clk	= {
-			.name		= "audio-bus",
-			.devname	= "samsung-i2s.0",
-			.ctrlbit        = S3C_CLKCON_SCLK_AUDIO0,
-			.enable		= s3c64xx_sclk_ctrl,
-		},
-		.reg_src	= { .reg = S3C_CLK_SRC, .shift = 7, .size = 3  },
-		.reg_div	= { .reg = S3C_CLK_DIV2, .shift = 8, .size = 4  },
-		.sources	= &clkset_audio0,
-	}, {
-		.clk	= {
-			.name		= "audio-bus",
-			.devname	= "samsung-i2s.1",
-			.ctrlbit        = S3C_CLKCON_SCLK_AUDIO1,
-			.enable		= s3c64xx_sclk_ctrl,
-		},
-		.reg_src	= { .reg = S3C_CLK_SRC, .shift = 10, .size = 3  },
-		.reg_div	= { .reg = S3C_CLK_DIV2, .shift = 12, .size = 4  },
-		.sources	= &clkset_audio1,
-	}, {
-		.clk	= {
-			.name		= "audio-bus",
-			.devname	= "samsung-i2s.2",
-			.ctrlbit        = S3C6410_CLKCON_SCLK_AUDIO2,
-			.enable		= s3c64xx_sclk_ctrl,
-		},
-		.reg_src	= { .reg = S3C6410_CLK_SRC2, .shift = 0, .size = 3  },
-		.reg_div	= { .reg = S3C_CLK_DIV2, .shift = 24, .size = 4  },
-		.sources	= &clkset_audio2,
-	}, {
-		.clk	= {
 			.name		= "irda-bus",
 			.ctrlbit        = S3C_CLKCON_SCLK_IRDA,
 			.enable		= s3c64xx_sclk_ctrl,
@@ -823,6 +802,43 @@ static struct clksrc_clk clk_sclk_spi1 = {
 	.sources = &clkset_spi_mmc,
 };
 
+static struct clksrc_clk clk_audio_bus0 = {
+	.clk	= {
+		.name		= "audio-bus",
+		.devname	= "samsung-i2s.0",
+		.ctrlbit	= S3C_CLKCON_SCLK_AUDIO0,
+		.enable		= s3c64xx_sclk_ctrl,
+	},
+	.reg_src	= { .reg = S3C_CLK_SRC, .shift = 7, .size = 3  },
+	.reg_div	= { .reg = S3C_CLK_DIV2, .shift = 8, .size = 4  },
+	.sources	= &clkset_audio0,
+};
+
+static struct clksrc_clk clk_audio_bus1 = {
+	.clk	= {
+		.name		= "audio-bus",
+		.devname	= "samsung-i2s.1",
+		.ctrlbit	= S3C_CLKCON_SCLK_AUDIO1,
+		.enable		= s3c64xx_sclk_ctrl,
+	},
+	.reg_src	= { .reg = S3C_CLK_SRC, .shift = 10, .size = 3  },
+	.reg_div	= { .reg = S3C_CLK_DIV2, .shift = 12, .size = 4  },
+	.sources	= &clkset_audio1,
+};
+
+#ifdef CONFIG_CPU_S3C6410
+static struct clksrc_clk clk_audio_bus2 = {
+	.clk	= {
+		.name		= "audio-bus",
+		.devname	= "samsung-i2s.2",
+		.ctrlbit	= S3C6410_CLKCON_SCLK_AUDIO2,
+		.enable		= s3c64xx_sclk_ctrl,
+	},
+	.reg_src	= { .reg = S3C6410_CLK_SRC2, .shift = 0, .size = 3  },
+	.reg_div	= { .reg = S3C_CLK_DIV2, .shift = 24, .size = 4  },
+	.sources	= &clkset_audio2,
+};
+#endif
 /* Clock initialisation code */
 
 static struct clksrc_clk *init_parents[] = {
@@ -838,6 +854,8 @@ static struct clksrc_clk *clksrc_cdev[] = {
 	&clk_sclk_mmc2,
 	&clk_sclk_spi0,
 	&clk_sclk_spi1,
+	&clk_audio_bus0,
+	&clk_audio_bus1,
 };
 
 static struct clk *clk_cdev[] = {
@@ -846,6 +864,8 @@ static struct clk *clk_cdev[] = {
 	&clk_hsmmc2,
 	&clk_48m_spi0,
 	&clk_48m_spi1,
+	&clk_i2s0,
+	&clk_i2s1,
 };
 
 static struct clk_lookup s3c64xx_clk_lookup[] = {
@@ -862,6 +882,14 @@ static struct clk_lookup s3c64xx_clk_lookup[] = {
 	CLKDEV_INIT("s3c6410-spi.0", "spi_busclk2", &clk_48m_spi0),
 	CLKDEV_INIT("s3c6410-spi.1", "spi_busclk1", &clk_sclk_spi1.clk),
 	CLKDEV_INIT("s3c6410-spi.1", "spi_busclk2", &clk_48m_spi1),
+	CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &clk_i2s0),
+	CLKDEV_INIT("samsung-i2s.0", "i2s_opclk1", &clk_audio_bus0.clk),
+	CLKDEV_INIT("samsung-i2s.1", "i2s_opclk0", &clk_i2s1),
+	CLKDEV_INIT("samsung-i2s.1", "i2s_opclk1", &clk_audio_bus1.clk),
+#ifdef CONFIG_CPU_S3C6410
+	CLKDEV_INIT("samsung-i2s.2", "i2s_opclk0", &clk_i2s2),
+	CLKDEV_INIT("samsung-i2s.2", "i2s_opclk1", &clk_audio_bus2.clk),
+#endif
 };
 
 #define GET_DIV(clk, field) ((((clk) & field##_MASK) >> field##_SHIFT) + 1)
diff --git a/arch/arm/mach-s3c64xx/dev-audio.c b/arch/arm/mach-s3c64xx/dev-audio.c
index 35f3e07..e367e87 100644
--- a/arch/arm/mach-s3c64xx/dev-audio.c
+++ b/arch/arm/mach-s3c64xx/dev-audio.c
@@ -23,11 +23,6 @@
 #include <linux/platform_data/asoc-s3c.h>
 #include <plat/gpio-cfg.h>
 
-static const char *rclksrc[] = {
-	[0] = "iis",
-	[1] = "audio-bus",
-};
-
 static int s3c64xx_i2s_cfg_gpio(struct platform_device *pdev)
 {
 	unsigned int base;
@@ -64,11 +59,6 @@ static struct resource s3c64xx_iis0_resource[] = {
 
 static struct s3c_audio_pdata i2sv3_pdata = {
 	.cfg_gpio = s3c64xx_i2s_cfg_gpio,
-	.type = {
-		.i2s = {
-			.src_clk = rclksrc,
-		},
-	},
 };
 
 struct platform_device s3c64xx_device_iis0 = {
@@ -110,7 +100,6 @@ static struct s3c_audio_pdata i2sv4_pdata = {
 	.type = {
 		.i2s = {
 			.quirks = QUIRK_PRI_6CHAN,
-			.src_clk = rclksrc,
 		},
 	},
 };
-- 
1.7.4.4

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [PATCH V3 2/5] ARM: S5PC100: Add I2S clkdev support
  2012-11-06  4:48 ` Padmavathi Venna
@ 2012-11-06  4:48   ` Padmavathi Venna
  -1 siblings, 0 replies; 32+ messages in thread
From: Padmavathi Venna @ 2012-11-06  4:48 UTC (permalink / raw)
  To: linux-arm-kernel, linux-samsung-soc
  Cc: padma.v, sbkim73, ben-linux, kgene.kim, olofj

I2S controller has an internal mux for RCLK source clk. The list
of source clk names were passed through platform data in non-dt case.
Register the existing RCLK source clocks with clkdev using generic
connection id. This is required as part of adding DT support
for I2S controller driver.

Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
---
 arch/arm/mach-s5pc100/clock.c     |   48 +++++++++++++++++++++++--------------
 arch/arm/mach-s5pc100/dev-audio.c |   16 ------------
 2 files changed, 30 insertions(+), 34 deletions(-)

diff --git a/arch/arm/mach-s5pc100/clock.c b/arch/arm/mach-s5pc100/clock.c
index 9262197..a206dc3 100644
--- a/arch/arm/mach-s5pc100/clock.c
+++ b/arch/arm/mach-s5pc100/clock.c
@@ -606,24 +606,6 @@ static struct clk init_clocks_off[] = {
 		.enable		= s5pc100_d1_4_ctrl,
 		.ctrlbit	= (1 << 13),
 	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.0",
-		.parent		= &clk_div_pclkd1.clk,
-		.enable		= s5pc100_d1_5_ctrl,
-		.ctrlbit	= (1 << 0),
-	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.1",
-		.parent		= &clk_div_pclkd1.clk,
-		.enable		= s5pc100_d1_5_ctrl,
-		.ctrlbit	= (1 << 1),
-	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.2",
-		.parent		= &clk_div_pclkd1.clk,
-		.enable		= s5pc100_d1_5_ctrl,
-		.ctrlbit	= (1 << 2),
-	}, {
 		.name		= "ac97",
 		.parent		= &clk_div_pclkd1.clk,
 		.enable		= s5pc100_d1_5_ctrl,
@@ -724,6 +706,30 @@ static struct clk clk_48m_spi2 = {
 	.ctrlbit	= (1 << 9),
 };
 
+static struct clk clk_i2s0 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.0",
+	.parent		= &clk_div_pclkd1.clk,
+	.enable		= s5pc100_d1_5_ctrl,
+	.ctrlbit	= (1 << 0),
+};
+
+static struct clk clk_i2s1 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.1",
+	.parent		= &clk_div_pclkd1.clk,
+	.enable		= s5pc100_d1_5_ctrl,
+	.ctrlbit	= (1 << 1),
+};
+
+static struct clk clk_i2s2 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.2",
+	.parent		= &clk_div_pclkd1.clk,
+	.enable		= s5pc100_d1_5_ctrl,
+	.ctrlbit	= (1 << 2),
+};
+
 static struct clk clk_vclk54m = {
 	.name		= "vclk_54m",
 	.rate		= 54000000,
@@ -1154,6 +1160,9 @@ static struct clk *clk_cdev[] = {
 	&clk_48m_spi0,
 	&clk_48m_spi1,
 	&clk_48m_spi2,
+	&clk_i2s0,
+	&clk_i2s1,
+	&clk_i2s2,
 };
 
 static struct clksrc_clk *clksrc_cdev[] = {
@@ -1321,6 +1330,9 @@ static struct clk_lookup s5pc100_clk_lookup[] = {
 	CLKDEV_INIT("s5pc100-spi.1", "spi_busclk2", &clk_sclk_spi1.clk),
 	CLKDEV_INIT("s5pc100-spi.2", "spi_busclk1", &clk_48m_spi2),
 	CLKDEV_INIT("s5pc100-spi.2", "spi_busclk2", &clk_sclk_spi2.clk),
+	CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &clk_i2s0),
+	CLKDEV_INIT("samsung-i2s.1", "i2s_opclk0", &clk_i2s1),
+	CLKDEV_INIT("samsung-i2s.2", "i2s_opclk0", &clk_i2s2),
 };
 
 void __init s5pc100_register_clocks(void)
diff --git a/arch/arm/mach-s5pc100/dev-audio.c b/arch/arm/mach-s5pc100/dev-audio.c
index 1cc252c..46f488b 100644
--- a/arch/arm/mach-s5pc100/dev-audio.c
+++ b/arch/arm/mach-s5pc100/dev-audio.c
@@ -39,18 +39,12 @@ static int s5pc100_cfg_i2s(struct platform_device *pdev)
 	return 0;
 }
 
-static const char *rclksrc_v5[] = {
-	[0] = "iis",
-	[1] = "i2sclkd2",
-};
-
 static struct s3c_audio_pdata i2sv5_pdata = {
 	.cfg_gpio = s5pc100_cfg_i2s,
 	.type = {
 		.i2s = {
 			.quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI
 					 | QUIRK_NEED_RSTCLR,
-			.src_clk = rclksrc_v5,
 		},
 	},
 };
@@ -72,18 +66,8 @@ struct platform_device s5pc100_device_iis0 = {
 	},
 };
 
-static const char *rclksrc_v3[] = {
-	[0] = "iis",
-	[1] = "sclk_audio",
-};
-
 static struct s3c_audio_pdata i2sv3_pdata = {
 	.cfg_gpio = s5pc100_cfg_i2s,
-	.type = {
-		.i2s = {
-			.src_clk = rclksrc_v3,
-		},
-	},
 };
 
 static struct resource s5pc100_iis1_resource[] = {
-- 
1.7.4.4

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [PATCH V3 2/5] ARM: S5PC100: Add I2S clkdev support
@ 2012-11-06  4:48   ` Padmavathi Venna
  0 siblings, 0 replies; 32+ messages in thread
From: Padmavathi Venna @ 2012-11-06  4:48 UTC (permalink / raw)
  To: linux-arm-kernel

I2S controller has an internal mux for RCLK source clk. The list
of source clk names were passed through platform data in non-dt case.
Register the existing RCLK source clocks with clkdev using generic
connection id. This is required as part of adding DT support
for I2S controller driver.

Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
---
 arch/arm/mach-s5pc100/clock.c     |   48 +++++++++++++++++++++++--------------
 arch/arm/mach-s5pc100/dev-audio.c |   16 ------------
 2 files changed, 30 insertions(+), 34 deletions(-)

diff --git a/arch/arm/mach-s5pc100/clock.c b/arch/arm/mach-s5pc100/clock.c
index 9262197..a206dc3 100644
--- a/arch/arm/mach-s5pc100/clock.c
+++ b/arch/arm/mach-s5pc100/clock.c
@@ -606,24 +606,6 @@ static struct clk init_clocks_off[] = {
 		.enable		= s5pc100_d1_4_ctrl,
 		.ctrlbit	= (1 << 13),
 	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.0",
-		.parent		= &clk_div_pclkd1.clk,
-		.enable		= s5pc100_d1_5_ctrl,
-		.ctrlbit	= (1 << 0),
-	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.1",
-		.parent		= &clk_div_pclkd1.clk,
-		.enable		= s5pc100_d1_5_ctrl,
-		.ctrlbit	= (1 << 1),
-	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.2",
-		.parent		= &clk_div_pclkd1.clk,
-		.enable		= s5pc100_d1_5_ctrl,
-		.ctrlbit	= (1 << 2),
-	}, {
 		.name		= "ac97",
 		.parent		= &clk_div_pclkd1.clk,
 		.enable		= s5pc100_d1_5_ctrl,
@@ -724,6 +706,30 @@ static struct clk clk_48m_spi2 = {
 	.ctrlbit	= (1 << 9),
 };
 
+static struct clk clk_i2s0 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.0",
+	.parent		= &clk_div_pclkd1.clk,
+	.enable		= s5pc100_d1_5_ctrl,
+	.ctrlbit	= (1 << 0),
+};
+
+static struct clk clk_i2s1 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.1",
+	.parent		= &clk_div_pclkd1.clk,
+	.enable		= s5pc100_d1_5_ctrl,
+	.ctrlbit	= (1 << 1),
+};
+
+static struct clk clk_i2s2 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.2",
+	.parent		= &clk_div_pclkd1.clk,
+	.enable		= s5pc100_d1_5_ctrl,
+	.ctrlbit	= (1 << 2),
+};
+
 static struct clk clk_vclk54m = {
 	.name		= "vclk_54m",
 	.rate		= 54000000,
@@ -1154,6 +1160,9 @@ static struct clk *clk_cdev[] = {
 	&clk_48m_spi0,
 	&clk_48m_spi1,
 	&clk_48m_spi2,
+	&clk_i2s0,
+	&clk_i2s1,
+	&clk_i2s2,
 };
 
 static struct clksrc_clk *clksrc_cdev[] = {
@@ -1321,6 +1330,9 @@ static struct clk_lookup s5pc100_clk_lookup[] = {
 	CLKDEV_INIT("s5pc100-spi.1", "spi_busclk2", &clk_sclk_spi1.clk),
 	CLKDEV_INIT("s5pc100-spi.2", "spi_busclk1", &clk_48m_spi2),
 	CLKDEV_INIT("s5pc100-spi.2", "spi_busclk2", &clk_sclk_spi2.clk),
+	CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &clk_i2s0),
+	CLKDEV_INIT("samsung-i2s.1", "i2s_opclk0", &clk_i2s1),
+	CLKDEV_INIT("samsung-i2s.2", "i2s_opclk0", &clk_i2s2),
 };
 
 void __init s5pc100_register_clocks(void)
diff --git a/arch/arm/mach-s5pc100/dev-audio.c b/arch/arm/mach-s5pc100/dev-audio.c
index 1cc252c..46f488b 100644
--- a/arch/arm/mach-s5pc100/dev-audio.c
+++ b/arch/arm/mach-s5pc100/dev-audio.c
@@ -39,18 +39,12 @@ static int s5pc100_cfg_i2s(struct platform_device *pdev)
 	return 0;
 }
 
-static const char *rclksrc_v5[] = {
-	[0] = "iis",
-	[1] = "i2sclkd2",
-};
-
 static struct s3c_audio_pdata i2sv5_pdata = {
 	.cfg_gpio = s5pc100_cfg_i2s,
 	.type = {
 		.i2s = {
 			.quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI
 					 | QUIRK_NEED_RSTCLR,
-			.src_clk = rclksrc_v5,
 		},
 	},
 };
@@ -72,18 +66,8 @@ struct platform_device s5pc100_device_iis0 = {
 	},
 };
 
-static const char *rclksrc_v3[] = {
-	[0] = "iis",
-	[1] = "sclk_audio",
-};
-
 static struct s3c_audio_pdata i2sv3_pdata = {
 	.cfg_gpio = s5pc100_cfg_i2s,
-	.type = {
-		.i2s = {
-			.src_clk = rclksrc_v3,
-		},
-	},
 };
 
 static struct resource s5pc100_iis1_resource[] = {
-- 
1.7.4.4

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [PATCH V3 3/5] ARM: S5P64x0: Add I2S clkdev support
  2012-11-06  4:48 ` Padmavathi Venna
@ 2012-11-06  4:48   ` Padmavathi Venna
  -1 siblings, 0 replies; 32+ messages in thread
From: Padmavathi Venna @ 2012-11-06  4:48 UTC (permalink / raw)
  To: linux-arm-kernel, linux-samsung-soc
  Cc: padma.v, sbkim73, ben-linux, kgene.kim, olofj

I2S controller has an internal mux for RCLK source clk. The list
of source clk names were passed through platform data in non-dt case.
Register the existing RCLK source clocks with clkdev using generic
connection id. This is required as part of adding DT support
for I2S controller driver.

Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
---
 arch/arm/mach-s5p64x0/clock-s5p6440.c |   49 ++++++++++++++++++---------
 arch/arm/mach-s5p64x0/clock-s5p6450.c |   61 ++++++++++++++++++++++----------
 arch/arm/mach-s5p64x0/dev-audio.c     |   12 ------
 3 files changed, 75 insertions(+), 47 deletions(-)

diff --git a/arch/arm/mach-s5p64x0/clock-s5p6440.c b/arch/arm/mach-s5p64x0/clock-s5p6440.c
index 0004455..5112371 100644
--- a/arch/arm/mach-s5p64x0/clock-s5p6440.c
+++ b/arch/arm/mach-s5p64x0/clock-s5p6440.c
@@ -243,12 +243,6 @@ static struct clk init_clocks_off[] = {
 		.enable		= s5p64x0_pclk_ctrl,
 		.ctrlbit	= (1 << 25),
 	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.0",
-		.parent		= &clk_pclk_low.clk,
-		.enable		= s5p64x0_pclk_ctrl,
-		.ctrlbit	= (1 << 26),
-	}, {
 		.name		= "dsim",
 		.parent		= &clk_pclk_low.clk,
 		.enable		= s5p64x0_pclk_ctrl,
@@ -405,15 +399,6 @@ static struct clksrc_clk clksrcs[] = {
 		.sources = &clkset_group1,
 		.reg_src = { .reg = S5P64X0_CLK_SRC1, .shift = 8, .size = 2 },
 		.reg_div = { .reg = S5P64X0_CLK_DIV3, .shift = 4, .size = 4 },
-	}, {
-		.clk	= {
-			.name		= "sclk_audio2",
-			.ctrlbit	= (1 << 11),
-			.enable		= s5p64x0_sclk_ctrl,
-		},
-		.sources = &clkset_audio,
-		.reg_src = { .reg = S5P64X0_CLK_SRC1, .shift = 0, .size = 3 },
-		.reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 24, .size = 4 },
 	},
 };
 
@@ -464,6 +449,26 @@ static struct clksrc_clk clk_sclk_uclk = {
 	.reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 16, .size = 4 },
 };
 
+static struct clk clk_i2s0 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.0",
+	.parent		= &clk_pclk_low.clk,
+	.enable		= s5p64x0_pclk_ctrl,
+	.ctrlbit	= (1 << 26),
+};
+
+static struct clksrc_clk clk_audio_bus2 = {
+	.clk	= {
+		.name		= "sclk_audio2",
+		.devname	= "samsung-i2s.0",
+		.ctrlbit	= (1 << 11),
+		.enable		= s5p64x0_sclk_ctrl,
+	},
+	.sources = &clkset_audio,
+	.reg_src = { .reg = S5P64X0_CLK_SRC1, .shift = 0, .size = 3 },
+	.reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 24, .size = 4 },
+};
+
 static struct clksrc_clk clk_sclk_spi0 = {
 	.clk	= {
 		.name		= "sclk_spi",
@@ -506,13 +511,18 @@ static struct clk dummy_apb_pclk = {
 	.id		= -1,
 };
 
+static struct clk *clk_cdev[] = {
+	&clk_i2s0,
+};
+
 static struct clksrc_clk *clksrc_cdev[] = {
 	&clk_sclk_uclk,
 	&clk_sclk_spi0,
 	&clk_sclk_spi1,
 	&clk_sclk_mmc0,
 	&clk_sclk_mmc1,
-	&clk_sclk_mmc2
+	&clk_sclk_mmc2,
+	&clk_audio_bus2,
 };
 
 static struct clk_lookup s5p6440_clk_lookup[] = {
@@ -524,6 +534,8 @@ static struct clk_lookup s5p6440_clk_lookup[] = {
 	CLKDEV_INIT("s3c-sdhci.0", "mmc_busclk.2", &clk_sclk_mmc0.clk),
 	CLKDEV_INIT("s3c-sdhci.1", "mmc_busclk.2", &clk_sclk_mmc1.clk),
 	CLKDEV_INIT("s3c-sdhci.2", "mmc_busclk.2", &clk_sclk_mmc2.clk),
+	CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &clk_i2s0),
+	CLKDEV_INIT("samsung-i2s.0", "i2s_opclk1", &clk_audio_bus2.clk),
 };
 
 void __init_or_cpufreq s5p6440_setup_clocks(void)
@@ -596,12 +608,17 @@ static struct clk *clks[] __initdata = {
 void __init s5p6440_register_clocks(void)
 {
 	int ptr;
+	unsigned int cnt;
 
 	s3c24xx_register_clocks(clks, ARRAY_SIZE(clks));
 
 	for (ptr = 0; ptr < ARRAY_SIZE(sysclks); ptr++)
 		s3c_register_clksrc(sysclks[ptr], 1);
 
+	s3c24xx_register_clocks(clk_cdev, ARRAY_SIZE(clk_cdev));
+	for (cnt = 0; cnt < ARRAY_SIZE(clk_cdev); cnt++)
+		s3c_disable_clocks(clk_cdev[cnt], 1);
+
 	s3c_register_clksrc(clksrcs, ARRAY_SIZE(clksrcs));
 	s3c_register_clocks(init_clocks, ARRAY_SIZE(init_clocks));
 	for (ptr = 0; ptr < ARRAY_SIZE(clksrc_cdev); ptr++)
diff --git a/arch/arm/mach-s5p64x0/clock-s5p6450.c b/arch/arm/mach-s5p64x0/clock-s5p6450.c
index f3e0ef3..154dea7 100644
--- a/arch/arm/mach-s5p64x0/clock-s5p6450.c
+++ b/arch/arm/mach-s5p64x0/clock-s5p6450.c
@@ -247,24 +247,6 @@ static struct clk init_clocks_off[] = {
 		.enable		= s5p64x0_pclk_ctrl,
 		.ctrlbit	= (1 << 22),
 	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.0",
-		.parent		= &clk_pclk_low.clk,
-		.enable		= s5p64x0_pclk_ctrl,
-		.ctrlbit	= (1 << 26),
-	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.1",
-		.parent		= &clk_pclk_low.clk,
-		.enable		= s5p64x0_pclk_ctrl,
-		.ctrlbit	= (1 << 15),
-	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.2",
-		.parent		= &clk_pclk_low.clk,
-		.enable		= s5p64x0_pclk_ctrl,
-		.ctrlbit	= (1 << 16),
-	}, {
 		.name		= "i2c",
 		.devname	= "s3c2440-i2c.1",
 		.parent		= &clk_pclk_low.clk,
@@ -402,6 +384,7 @@ static struct clksrc_sources clkset_sclk_audio0 = {
 static struct clksrc_clk clk_sclk_audio0 = {
 	.clk		= {
 		.name		= "audio-bus",
+		.devname	= "samsung-i2s.0",
 		.enable		= s5p64x0_sclk_ctrl,
 		.ctrlbit	= (1 << 8),
 		.parent		= &clk_dout_epll.clk,
@@ -549,6 +532,36 @@ static struct clksrc_clk clk_sclk_spi1 = {
 	.reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 4, .size = 4 },
 };
 
+static struct clk clk_i2s0 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.0",
+	.parent		= &clk_pclk_low.clk,
+	.enable		= s5p64x0_pclk_ctrl,
+	.ctrlbit	= (1 << 26),
+};
+
+static struct clk clk_i2s1 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.1",
+	.parent		= &clk_pclk_low.clk,
+	.enable		= s5p64x0_pclk_ctrl,
+	.ctrlbit	= (1 << 15),
+};
+
+static struct clk clk_i2s2 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.2",
+	.parent		= &clk_pclk_low.clk,
+	.enable		= s5p64x0_pclk_ctrl,
+	.ctrlbit	= (1 << 16),
+};
+
+static struct clk *clk_cdev[] = {
+	&clk_i2s0,
+	&clk_i2s1,
+	&clk_i2s2,
+};
+
 static struct clksrc_clk *clksrc_cdev[] = {
 	&clk_sclk_uclk,
 	&clk_sclk_spi0,
@@ -556,6 +569,7 @@ static struct clksrc_clk *clksrc_cdev[] = {
 	&clk_sclk_mmc0,
 	&clk_sclk_mmc1,
 	&clk_sclk_mmc2,
+	&clk_sclk_audio0,
 };
 
 static struct clk_lookup s5p6450_clk_lookup[] = {
@@ -567,6 +581,10 @@ static struct clk_lookup s5p6450_clk_lookup[] = {
 	CLKDEV_INIT("s3c-sdhci.0", "mmc_busclk.2", &clk_sclk_mmc0.clk),
 	CLKDEV_INIT("s3c-sdhci.1", "mmc_busclk.2", &clk_sclk_mmc1.clk),
 	CLKDEV_INIT("s3c-sdhci.2", "mmc_busclk.2", &clk_sclk_mmc2.clk),
+	CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &clk_i2s0),
+	CLKDEV_INIT("samsung-i2s.0", "i2s_opclk1", &clk_sclk_audio0.clk),
+	CLKDEV_INIT("samsung-i2s.1", "i2s_opclk0", &clk_i2s1),
+	CLKDEV_INIT("samsung-i2s.2", "i2s_opclk0", &clk_i2s2),
 };
 
 /* Clock initialization code */
@@ -584,7 +602,6 @@ static struct clksrc_clk *sysclks[] = {
 	&clk_pclk,
 	&clk_hclk_low,
 	&clk_pclk_low,
-	&clk_sclk_audio0,
 };
 
 static struct clk dummy_apb_pclk = {
@@ -661,10 +678,16 @@ void __init_or_cpufreq s5p6450_setup_clocks(void)
 void __init s5p6450_register_clocks(void)
 {
 	int ptr;
+	unsigned int cnt;
 
 	for (ptr = 0; ptr < ARRAY_SIZE(sysclks); ptr++)
 		s3c_register_clksrc(sysclks[ptr], 1);
 
+
+	s3c24xx_register_clocks(clk_cdev, ARRAY_SIZE(clk_cdev));
+	for (cnt = 0; cnt < ARRAY_SIZE(clk_cdev); cnt++)
+		s3c_disable_clocks(clk_cdev[cnt], 1);
+
 	s3c_register_clksrc(clksrcs, ARRAY_SIZE(clksrcs));
 	s3c_register_clocks(init_clocks, ARRAY_SIZE(init_clocks));
 	for (ptr = 0; ptr < ARRAY_SIZE(clksrc_cdev); ptr++)
diff --git a/arch/arm/mach-s5p64x0/dev-audio.c b/arch/arm/mach-s5p64x0/dev-audio.c
index a0d6edf..723d477 100644
--- a/arch/arm/mach-s5p64x0/dev-audio.c
+++ b/arch/arm/mach-s5p64x0/dev-audio.c
@@ -19,11 +19,6 @@
 #include <mach/dma.h>
 #include <mach/irqs.h>
 
-static const char *rclksrc[] = {
-	[0] = "iis",
-	[1] = "sclk_audio2",
-};
-
 static int s5p6440_cfg_i2s(struct platform_device *pdev)
 {
 	switch (pdev->id) {
@@ -45,7 +40,6 @@ static struct s3c_audio_pdata s5p6440_i2s_pdata = {
 	.type = {
 		.i2s = {
 			.quirks = QUIRK_PRI_6CHAN,
-			.src_clk = rclksrc,
 		},
 	},
 };
@@ -93,7 +87,6 @@ static struct s3c_audio_pdata s5p6450_i2s0_pdata = {
 	.type = {
 		.i2s = {
 			.quirks = QUIRK_PRI_6CHAN,
-			.src_clk = rclksrc,
 		},
 	},
 };
@@ -110,11 +103,6 @@ struct platform_device s5p6450_device_iis0 = {
 
 static struct s3c_audio_pdata s5p6450_i2s_pdata = {
 	.cfg_gpio = s5p6450_cfg_i2s,
-	.type = {
-		.i2s = {
-			.src_clk = rclksrc,
-		},
-	},
 };
 
 static struct resource s5p6450_i2s1_resource[] = {
-- 
1.7.4.4

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [PATCH V3 3/5] ARM: S5P64x0: Add I2S clkdev support
@ 2012-11-06  4:48   ` Padmavathi Venna
  0 siblings, 0 replies; 32+ messages in thread
From: Padmavathi Venna @ 2012-11-06  4:48 UTC (permalink / raw)
  To: linux-arm-kernel

I2S controller has an internal mux for RCLK source clk. The list
of source clk names were passed through platform data in non-dt case.
Register the existing RCLK source clocks with clkdev using generic
connection id. This is required as part of adding DT support
for I2S controller driver.

Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
---
 arch/arm/mach-s5p64x0/clock-s5p6440.c |   49 ++++++++++++++++++---------
 arch/arm/mach-s5p64x0/clock-s5p6450.c |   61 ++++++++++++++++++++++----------
 arch/arm/mach-s5p64x0/dev-audio.c     |   12 ------
 3 files changed, 75 insertions(+), 47 deletions(-)

diff --git a/arch/arm/mach-s5p64x0/clock-s5p6440.c b/arch/arm/mach-s5p64x0/clock-s5p6440.c
index 0004455..5112371 100644
--- a/arch/arm/mach-s5p64x0/clock-s5p6440.c
+++ b/arch/arm/mach-s5p64x0/clock-s5p6440.c
@@ -243,12 +243,6 @@ static struct clk init_clocks_off[] = {
 		.enable		= s5p64x0_pclk_ctrl,
 		.ctrlbit	= (1 << 25),
 	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.0",
-		.parent		= &clk_pclk_low.clk,
-		.enable		= s5p64x0_pclk_ctrl,
-		.ctrlbit	= (1 << 26),
-	}, {
 		.name		= "dsim",
 		.parent		= &clk_pclk_low.clk,
 		.enable		= s5p64x0_pclk_ctrl,
@@ -405,15 +399,6 @@ static struct clksrc_clk clksrcs[] = {
 		.sources = &clkset_group1,
 		.reg_src = { .reg = S5P64X0_CLK_SRC1, .shift = 8, .size = 2 },
 		.reg_div = { .reg = S5P64X0_CLK_DIV3, .shift = 4, .size = 4 },
-	}, {
-		.clk	= {
-			.name		= "sclk_audio2",
-			.ctrlbit	= (1 << 11),
-			.enable		= s5p64x0_sclk_ctrl,
-		},
-		.sources = &clkset_audio,
-		.reg_src = { .reg = S5P64X0_CLK_SRC1, .shift = 0, .size = 3 },
-		.reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 24, .size = 4 },
 	},
 };
 
@@ -464,6 +449,26 @@ static struct clksrc_clk clk_sclk_uclk = {
 	.reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 16, .size = 4 },
 };
 
+static struct clk clk_i2s0 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.0",
+	.parent		= &clk_pclk_low.clk,
+	.enable		= s5p64x0_pclk_ctrl,
+	.ctrlbit	= (1 << 26),
+};
+
+static struct clksrc_clk clk_audio_bus2 = {
+	.clk	= {
+		.name		= "sclk_audio2",
+		.devname	= "samsung-i2s.0",
+		.ctrlbit	= (1 << 11),
+		.enable		= s5p64x0_sclk_ctrl,
+	},
+	.sources = &clkset_audio,
+	.reg_src = { .reg = S5P64X0_CLK_SRC1, .shift = 0, .size = 3 },
+	.reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 24, .size = 4 },
+};
+
 static struct clksrc_clk clk_sclk_spi0 = {
 	.clk	= {
 		.name		= "sclk_spi",
@@ -506,13 +511,18 @@ static struct clk dummy_apb_pclk = {
 	.id		= -1,
 };
 
+static struct clk *clk_cdev[] = {
+	&clk_i2s0,
+};
+
 static struct clksrc_clk *clksrc_cdev[] = {
 	&clk_sclk_uclk,
 	&clk_sclk_spi0,
 	&clk_sclk_spi1,
 	&clk_sclk_mmc0,
 	&clk_sclk_mmc1,
-	&clk_sclk_mmc2
+	&clk_sclk_mmc2,
+	&clk_audio_bus2,
 };
 
 static struct clk_lookup s5p6440_clk_lookup[] = {
@@ -524,6 +534,8 @@ static struct clk_lookup s5p6440_clk_lookup[] = {
 	CLKDEV_INIT("s3c-sdhci.0", "mmc_busclk.2", &clk_sclk_mmc0.clk),
 	CLKDEV_INIT("s3c-sdhci.1", "mmc_busclk.2", &clk_sclk_mmc1.clk),
 	CLKDEV_INIT("s3c-sdhci.2", "mmc_busclk.2", &clk_sclk_mmc2.clk),
+	CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &clk_i2s0),
+	CLKDEV_INIT("samsung-i2s.0", "i2s_opclk1", &clk_audio_bus2.clk),
 };
 
 void __init_or_cpufreq s5p6440_setup_clocks(void)
@@ -596,12 +608,17 @@ static struct clk *clks[] __initdata = {
 void __init s5p6440_register_clocks(void)
 {
 	int ptr;
+	unsigned int cnt;
 
 	s3c24xx_register_clocks(clks, ARRAY_SIZE(clks));
 
 	for (ptr = 0; ptr < ARRAY_SIZE(sysclks); ptr++)
 		s3c_register_clksrc(sysclks[ptr], 1);
 
+	s3c24xx_register_clocks(clk_cdev, ARRAY_SIZE(clk_cdev));
+	for (cnt = 0; cnt < ARRAY_SIZE(clk_cdev); cnt++)
+		s3c_disable_clocks(clk_cdev[cnt], 1);
+
 	s3c_register_clksrc(clksrcs, ARRAY_SIZE(clksrcs));
 	s3c_register_clocks(init_clocks, ARRAY_SIZE(init_clocks));
 	for (ptr = 0; ptr < ARRAY_SIZE(clksrc_cdev); ptr++)
diff --git a/arch/arm/mach-s5p64x0/clock-s5p6450.c b/arch/arm/mach-s5p64x0/clock-s5p6450.c
index f3e0ef3..154dea7 100644
--- a/arch/arm/mach-s5p64x0/clock-s5p6450.c
+++ b/arch/arm/mach-s5p64x0/clock-s5p6450.c
@@ -247,24 +247,6 @@ static struct clk init_clocks_off[] = {
 		.enable		= s5p64x0_pclk_ctrl,
 		.ctrlbit	= (1 << 22),
 	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.0",
-		.parent		= &clk_pclk_low.clk,
-		.enable		= s5p64x0_pclk_ctrl,
-		.ctrlbit	= (1 << 26),
-	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.1",
-		.parent		= &clk_pclk_low.clk,
-		.enable		= s5p64x0_pclk_ctrl,
-		.ctrlbit	= (1 << 15),
-	}, {
-		.name		= "iis",
-		.devname	= "samsung-i2s.2",
-		.parent		= &clk_pclk_low.clk,
-		.enable		= s5p64x0_pclk_ctrl,
-		.ctrlbit	= (1 << 16),
-	}, {
 		.name		= "i2c",
 		.devname	= "s3c2440-i2c.1",
 		.parent		= &clk_pclk_low.clk,
@@ -402,6 +384,7 @@ static struct clksrc_sources clkset_sclk_audio0 = {
 static struct clksrc_clk clk_sclk_audio0 = {
 	.clk		= {
 		.name		= "audio-bus",
+		.devname	= "samsung-i2s.0",
 		.enable		= s5p64x0_sclk_ctrl,
 		.ctrlbit	= (1 << 8),
 		.parent		= &clk_dout_epll.clk,
@@ -549,6 +532,36 @@ static struct clksrc_clk clk_sclk_spi1 = {
 	.reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 4, .size = 4 },
 };
 
+static struct clk clk_i2s0 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.0",
+	.parent		= &clk_pclk_low.clk,
+	.enable		= s5p64x0_pclk_ctrl,
+	.ctrlbit	= (1 << 26),
+};
+
+static struct clk clk_i2s1 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.1",
+	.parent		= &clk_pclk_low.clk,
+	.enable		= s5p64x0_pclk_ctrl,
+	.ctrlbit	= (1 << 15),
+};
+
+static struct clk clk_i2s2 = {
+	.name		= "iis",
+	.devname	= "samsung-i2s.2",
+	.parent		= &clk_pclk_low.clk,
+	.enable		= s5p64x0_pclk_ctrl,
+	.ctrlbit	= (1 << 16),
+};
+
+static struct clk *clk_cdev[] = {
+	&clk_i2s0,
+	&clk_i2s1,
+	&clk_i2s2,
+};
+
 static struct clksrc_clk *clksrc_cdev[] = {
 	&clk_sclk_uclk,
 	&clk_sclk_spi0,
@@ -556,6 +569,7 @@ static struct clksrc_clk *clksrc_cdev[] = {
 	&clk_sclk_mmc0,
 	&clk_sclk_mmc1,
 	&clk_sclk_mmc2,
+	&clk_sclk_audio0,
 };
 
 static struct clk_lookup s5p6450_clk_lookup[] = {
@@ -567,6 +581,10 @@ static struct clk_lookup s5p6450_clk_lookup[] = {
 	CLKDEV_INIT("s3c-sdhci.0", "mmc_busclk.2", &clk_sclk_mmc0.clk),
 	CLKDEV_INIT("s3c-sdhci.1", "mmc_busclk.2", &clk_sclk_mmc1.clk),
 	CLKDEV_INIT("s3c-sdhci.2", "mmc_busclk.2", &clk_sclk_mmc2.clk),
+	CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &clk_i2s0),
+	CLKDEV_INIT("samsung-i2s.0", "i2s_opclk1", &clk_sclk_audio0.clk),
+	CLKDEV_INIT("samsung-i2s.1", "i2s_opclk0", &clk_i2s1),
+	CLKDEV_INIT("samsung-i2s.2", "i2s_opclk0", &clk_i2s2),
 };
 
 /* Clock initialization code */
@@ -584,7 +602,6 @@ static struct clksrc_clk *sysclks[] = {
 	&clk_pclk,
 	&clk_hclk_low,
 	&clk_pclk_low,
-	&clk_sclk_audio0,
 };
 
 static struct clk dummy_apb_pclk = {
@@ -661,10 +678,16 @@ void __init_or_cpufreq s5p6450_setup_clocks(void)
 void __init s5p6450_register_clocks(void)
 {
 	int ptr;
+	unsigned int cnt;
 
 	for (ptr = 0; ptr < ARRAY_SIZE(sysclks); ptr++)
 		s3c_register_clksrc(sysclks[ptr], 1);
 
+
+	s3c24xx_register_clocks(clk_cdev, ARRAY_SIZE(clk_cdev));
+	for (cnt = 0; cnt < ARRAY_SIZE(clk_cdev); cnt++)
+		s3c_disable_clocks(clk_cdev[cnt], 1);
+
 	s3c_register_clksrc(clksrcs, ARRAY_SIZE(clksrcs));
 	s3c_register_clocks(init_clocks, ARRAY_SIZE(init_clocks));
 	for (ptr = 0; ptr < ARRAY_SIZE(clksrc_cdev); ptr++)
diff --git a/arch/arm/mach-s5p64x0/dev-audio.c b/arch/arm/mach-s5p64x0/dev-audio.c
index a0d6edf..723d477 100644
--- a/arch/arm/mach-s5p64x0/dev-audio.c
+++ b/arch/arm/mach-s5p64x0/dev-audio.c
@@ -19,11 +19,6 @@
 #include <mach/dma.h>
 #include <mach/irqs.h>
 
-static const char *rclksrc[] = {
-	[0] = "iis",
-	[1] = "sclk_audio2",
-};
-
 static int s5p6440_cfg_i2s(struct platform_device *pdev)
 {
 	switch (pdev->id) {
@@ -45,7 +40,6 @@ static struct s3c_audio_pdata s5p6440_i2s_pdata = {
 	.type = {
 		.i2s = {
 			.quirks = QUIRK_PRI_6CHAN,
-			.src_clk = rclksrc,
 		},
 	},
 };
@@ -93,7 +87,6 @@ static struct s3c_audio_pdata s5p6450_i2s0_pdata = {
 	.type = {
 		.i2s = {
 			.quirks = QUIRK_PRI_6CHAN,
-			.src_clk = rclksrc,
 		},
 	},
 };
@@ -110,11 +103,6 @@ struct platform_device s5p6450_device_iis0 = {
 
 static struct s3c_audio_pdata s5p6450_i2s_pdata = {
 	.cfg_gpio = s5p6450_cfg_i2s,
-	.type = {
-		.i2s = {
-			.src_clk = rclksrc,
-		},
-	},
 };
 
 static struct resource s5p6450_i2s1_resource[] = {
-- 
1.7.4.4

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [PATCH V3 4/5] ARM: S5PV210: Avoid passing the clks through platform data
  2012-11-06  4:48 ` Padmavathi Venna
@ 2012-11-06  4:48   ` Padmavathi Venna
  -1 siblings, 0 replies; 32+ messages in thread
From: Padmavathi Venna @ 2012-11-06  4:48 UTC (permalink / raw)
  To: linux-arm-kernel, linux-samsung-soc
  Cc: padma.v, sbkim73, ben-linux, kgene.kim, olofj

I2S controller has an internal mux for RCLK source clks. The list
of source clk names were passed through platform data in non-dt case.
The variable holding the list of RCLK source clk names is not
required, as the list of clks need to be registered with clkdev
using generic connection id. This is required as part of adding DT
support for I2S controller driver.

Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
---
 arch/arm/mach-s5pv210/dev-audio.c |   16 ----------------
 1 files changed, 0 insertions(+), 16 deletions(-)

diff --git a/arch/arm/mach-s5pv210/dev-audio.c b/arch/arm/mach-s5pv210/dev-audio.c
index 0a5480b..addfb16 100644
--- a/arch/arm/mach-s5pv210/dev-audio.c
+++ b/arch/arm/mach-s5pv210/dev-audio.c
@@ -20,11 +20,6 @@
 #include <mach/irqs.h>
 #include <mach/regs-audss.h>
 
-static const char *rclksrc[] = {
-	[0] = "busclk",
-	[1] = "i2sclk",
-};
-
 static int s5pv210_cfg_i2s(struct platform_device *pdev)
 {
 	/* configure GPIO for i2s port */
@@ -52,7 +47,6 @@ static struct s3c_audio_pdata i2sv5_pdata = {
 		.i2s = {
 			.quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI
 					 | QUIRK_NEED_RSTCLR,
-			.src_clk = rclksrc,
 			.idma_addr = S5PV210_AUDSS_INT_MEM,
 		},
 	},
@@ -75,18 +69,8 @@ struct platform_device s5pv210_device_iis0 = {
 	},
 };
 
-static const char *rclksrc_v3[] = {
-	[0] = "iis",
-	[1] = "audio-bus",
-};
-
 static struct s3c_audio_pdata i2sv3_pdata = {
 	.cfg_gpio = s5pv210_cfg_i2s,
-	.type = {
-		.i2s = {
-			.src_clk = rclksrc_v3,
-		},
-	},
 };
 
 static struct resource s5pv210_iis1_resource[] = {
-- 
1.7.4.4

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [PATCH V3 4/5] ARM: S5PV210: Avoid passing the clks through platform data
@ 2012-11-06  4:48   ` Padmavathi Venna
  0 siblings, 0 replies; 32+ messages in thread
From: Padmavathi Venna @ 2012-11-06  4:48 UTC (permalink / raw)
  To: linux-arm-kernel

I2S controller has an internal mux for RCLK source clks. The list
of source clk names were passed through platform data in non-dt case.
The variable holding the list of RCLK source clk names is not
required, as the list of clks need to be registered with clkdev
using generic connection id. This is required as part of adding DT
support for I2S controller driver.

Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
---
 arch/arm/mach-s5pv210/dev-audio.c |   16 ----------------
 1 files changed, 0 insertions(+), 16 deletions(-)

diff --git a/arch/arm/mach-s5pv210/dev-audio.c b/arch/arm/mach-s5pv210/dev-audio.c
index 0a5480b..addfb16 100644
--- a/arch/arm/mach-s5pv210/dev-audio.c
+++ b/arch/arm/mach-s5pv210/dev-audio.c
@@ -20,11 +20,6 @@
 #include <mach/irqs.h>
 #include <mach/regs-audss.h>
 
-static const char *rclksrc[] = {
-	[0] = "busclk",
-	[1] = "i2sclk",
-};
-
 static int s5pv210_cfg_i2s(struct platform_device *pdev)
 {
 	/* configure GPIO for i2s port */
@@ -52,7 +47,6 @@ static struct s3c_audio_pdata i2sv5_pdata = {
 		.i2s = {
 			.quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI
 					 | QUIRK_NEED_RSTCLR,
-			.src_clk = rclksrc,
 			.idma_addr = S5PV210_AUDSS_INT_MEM,
 		},
 	},
@@ -75,18 +69,8 @@ struct platform_device s5pv210_device_iis0 = {
 	},
 };
 
-static const char *rclksrc_v3[] = {
-	[0] = "iis",
-	[1] = "audio-bus",
-};
-
 static struct s3c_audio_pdata i2sv3_pdata = {
 	.cfg_gpio = s5pv210_cfg_i2s,
-	.type = {
-		.i2s = {
-			.src_clk = rclksrc_v3,
-		},
-	},
 };
 
 static struct resource s5pv210_iis1_resource[] = {
-- 
1.7.4.4

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [PATCH V3 5/5] ARM: Exynos: Avoid passing the clks through platform data
  2012-11-06  4:48 ` Padmavathi Venna
@ 2012-11-06  4:48   ` Padmavathi Venna
  -1 siblings, 0 replies; 32+ messages in thread
From: Padmavathi Venna @ 2012-11-06  4:48 UTC (permalink / raw)
  To: linux-arm-kernel, linux-samsung-soc
  Cc: padma.v, sbkim73, ben-linux, kgene.kim, olofj

I2S controller has an internal mux for RCLK source clks. The list
of source clk names were passed through platform data in non-dt case.
The variable holding the list of RCLK source clk names is not
required, as the list of clks need to be registered with clkdev
using generic connection id. This is required as part of adding DT
support for I2S controller driver.

Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
---
 arch/arm/mach-exynos/dev-audio.c |   12 ------------
 1 files changed, 0 insertions(+), 12 deletions(-)

diff --git a/arch/arm/mach-exynos/dev-audio.c b/arch/arm/mach-exynos/dev-audio.c
index ae321c7..e7d46fd 100644
--- a/arch/arm/mach-exynos/dev-audio.c
+++ b/arch/arm/mach-exynos/dev-audio.c
@@ -23,11 +23,6 @@
 #include <mach/irqs.h>
 #include <mach/regs-audss.h>
 
-static const char *rclksrc[] = {
-	[0] = "busclk",
-	[1] = "i2sclk",
-};
-
 static int exynos4_cfg_i2s(struct platform_device *pdev)
 {
 	/* configure GPIO for i2s port */
@@ -55,7 +50,6 @@ static struct s3c_audio_pdata i2sv5_pdata = {
 		.i2s = {
 			.quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI
 					 | QUIRK_NEED_RSTCLR,
-			.src_clk = rclksrc,
 			.idma_addr = EXYNOS4_AUDSS_INT_MEM,
 		},
 	},
@@ -78,17 +72,11 @@ struct platform_device exynos4_device_i2s0 = {
 	},
 };
 
-static const char *rclksrc_v3[] = {
-	[0] = "sclk_i2s",
-	[1] = "no_such_clock",
-};
-
 static struct s3c_audio_pdata i2sv3_pdata = {
 	.cfg_gpio = exynos4_cfg_i2s,
 	.type = {
 		.i2s = {
 			.quirks = QUIRK_NO_MUXPSR,
-			.src_clk = rclksrc_v3,
 		},
 	},
 };
-- 
1.7.4.4

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [PATCH V3 5/5] ARM: Exynos: Avoid passing the clks through platform data
@ 2012-11-06  4:48   ` Padmavathi Venna
  0 siblings, 0 replies; 32+ messages in thread
From: Padmavathi Venna @ 2012-11-06  4:48 UTC (permalink / raw)
  To: linux-arm-kernel

I2S controller has an internal mux for RCLK source clks. The list
of source clk names were passed through platform data in non-dt case.
The variable holding the list of RCLK source clk names is not
required, as the list of clks need to be registered with clkdev
using generic connection id. This is required as part of adding DT
support for I2S controller driver.

Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
---
 arch/arm/mach-exynos/dev-audio.c |   12 ------------
 1 files changed, 0 insertions(+), 12 deletions(-)

diff --git a/arch/arm/mach-exynos/dev-audio.c b/arch/arm/mach-exynos/dev-audio.c
index ae321c7..e7d46fd 100644
--- a/arch/arm/mach-exynos/dev-audio.c
+++ b/arch/arm/mach-exynos/dev-audio.c
@@ -23,11 +23,6 @@
 #include <mach/irqs.h>
 #include <mach/regs-audss.h>
 
-static const char *rclksrc[] = {
-	[0] = "busclk",
-	[1] = "i2sclk",
-};
-
 static int exynos4_cfg_i2s(struct platform_device *pdev)
 {
 	/* configure GPIO for i2s port */
@@ -55,7 +50,6 @@ static struct s3c_audio_pdata i2sv5_pdata = {
 		.i2s = {
 			.quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI
 					 | QUIRK_NEED_RSTCLR,
-			.src_clk = rclksrc,
 			.idma_addr = EXYNOS4_AUDSS_INT_MEM,
 		},
 	},
@@ -78,17 +72,11 @@ struct platform_device exynos4_device_i2s0 = {
 	},
 };
 
-static const char *rclksrc_v3[] = {
-	[0] = "sclk_i2s",
-	[1] = "no_such_clock",
-};
-
 static struct s3c_audio_pdata i2sv3_pdata = {
 	.cfg_gpio = exynos4_cfg_i2s,
 	.type = {
 		.i2s = {
 			.quirks = QUIRK_NO_MUXPSR,
-			.src_clk = rclksrc_v3,
 		},
 	},
 };
-- 
1.7.4.4

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* RE: [PATCH V3 0/5] Avoid passing clks through platform data
  2012-11-06  4:48 ` Padmavathi Venna
@ 2012-11-23  9:27   ` Sangbeom Kim
  -1 siblings, 0 replies; 32+ messages in thread
From: Sangbeom Kim @ 2012-11-23  9:27 UTC (permalink / raw)
  To: 'Padmavathi Venna', linux-arm-kernel, linux-samsung-soc
  Cc: ben-linux, kgene.kim, olofj

On Tue, Nov 6, 2012 at 1:49 PM, Padmavathi Venna wrote:

> I2S controller has an internal mux for RCLK source clks. The list
> of source clk names were passed through platform data in non-dt case.
> The variable holding the list of RCLK source clk names is not
> required, as the list of clks need to be registered with clkdev
> using generic connection id. This is required as part of adding DT
> support for I2S controller driver.
> 
> In the below series of patches, registered the existed clks with
> clkdev using generic connection id and removed the variable which
> holds those clk names. This is done for s3c64xx,s5pc100,s5p64x0,
> s5pv210 and exynos4 series. But tested the sound card detection
> only on smdk6410 board. On remaining all platforms it was just
> build tested.
> 
> Padmavathi Venna (5):
>   ARM: S3C64XX: Add I2S clkdev support
>   ARM: S5PC100: Add I2S clkdev support
>   ARM: S5P64x0: Add I2S clkdev support
>   ARM: S5PV210: Avoid passing the clks through platform data
>   ARM: Exynos: Avoid passing the clks through platform data

As I2S driver is changed for support DT, 
These patch series should be applied.
Adding ack all patches.

Acked-by: Sangbeom Kim <sbkim73@samsung.com>

Thanks,
Sangbeom.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH V3 0/5] Avoid passing clks through platform data
@ 2012-11-23  9:27   ` Sangbeom Kim
  0 siblings, 0 replies; 32+ messages in thread
From: Sangbeom Kim @ 2012-11-23  9:27 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Nov 6, 2012 at 1:49 PM, Padmavathi Venna wrote:

> I2S controller has an internal mux for RCLK source clks. The list
> of source clk names were passed through platform data in non-dt case.
> The variable holding the list of RCLK source clk names is not
> required, as the list of clks need to be registered with clkdev
> using generic connection id. This is required as part of adding DT
> support for I2S controller driver.
> 
> In the below series of patches, registered the existed clks with
> clkdev using generic connection id and removed the variable which
> holds those clk names. This is done for s3c64xx,s5pc100,s5p64x0,
> s5pv210 and exynos4 series. But tested the sound card detection
> only on smdk6410 board. On remaining all platforms it was just
> build tested.
> 
> Padmavathi Venna (5):
>   ARM: S3C64XX: Add I2S clkdev support
>   ARM: S5PC100: Add I2S clkdev support
>   ARM: S5P64x0: Add I2S clkdev support
>   ARM: S5PV210: Avoid passing the clks through platform data
>   ARM: Exynos: Avoid passing the clks through platform data

As I2S driver is changed for support DT, 
These patch series should be applied.
Adding ack all patches.

Acked-by: Sangbeom Kim <sbkim73@samsung.com>

Thanks,
Sangbeom.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH V3 0/5] Avoid passing clks through platform data
  2012-11-06  4:48 ` Padmavathi Venna
@ 2012-11-23 11:10   ` Padma Venkat
  -1 siblings, 0 replies; 32+ messages in thread
From: Padma Venkat @ 2012-11-23 11:10 UTC (permalink / raw)
  To: Padmavathi Venna
  Cc: linux-arm-kernel, linux-samsung-soc, sbkim73, ben-linux,
	kgene.kim, olofj, Mark Brown

cc'ing Mark Brown.

On Tue, Nov 6, 2012 at 10:18 AM, Padmavathi Venna <padma.v@samsung.com> wrote:
> Changes since v2:
>         - Rebased on 3.7-rc3
>
> I2S controller has an internal mux for RCLK source clks. The list
> of source clk names were passed through platform data in non-dt case.
> The variable holding the list of RCLK source clk names is not
> required, as the list of clks need to be registered with clkdev
> using generic connection id. This is required as part of adding DT
> support for I2S controller driver.
>
> In the below series of patches, registered the existed clks with
> clkdev using generic connection id and removed the variable which
> holds those clk names. This is done for s3c64xx,s5pc100,s5p64x0,
> s5pv210 and exynos4 series. But tested the sound card detection
> only on smdk6410 board. On remaining all platforms it was just
> build tested.
>
> Padmavathi Venna (5):
>   ARM: S3C64XX: Add I2S clkdev support
>   ARM: S5PC100: Add I2S clkdev support
>   ARM: S5P64x0: Add I2S clkdev support
>   ARM: S5PV210: Avoid passing the clks through platform data
>   ARM: Exynos: Avoid passing the clks through platform data
>
>  arch/arm/mach-exynos/dev-audio.c      |   12 ---
>  arch/arm/mach-s3c64xx/clock.c         |  126 ++++++++++++++++++++-------------
>  arch/arm/mach-s3c64xx/dev-audio.c     |   11 ---
>  arch/arm/mach-s5p64x0/clock-s5p6440.c |   49 +++++++++----
>  arch/arm/mach-s5p64x0/clock-s5p6450.c |   61 +++++++++++-----
>  arch/arm/mach-s5p64x0/dev-audio.c     |   12 ---
>  arch/arm/mach-s5pc100/clock.c         |   48 ++++++++-----
>  arch/arm/mach-s5pc100/dev-audio.c     |   16 ----
>  arch/arm/mach-s5pv210/dev-audio.c     |   16 ----
>  9 files changed, 182 insertions(+), 169 deletions(-)
>
> --
> 1.7.4.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH V3 0/5] Avoid passing clks through platform data
@ 2012-11-23 11:10   ` Padma Venkat
  0 siblings, 0 replies; 32+ messages in thread
From: Padma Venkat @ 2012-11-23 11:10 UTC (permalink / raw)
  To: linux-arm-kernel

cc'ing Mark Brown.

On Tue, Nov 6, 2012 at 10:18 AM, Padmavathi Venna <padma.v@samsung.com> wrote:
> Changes since v2:
>         - Rebased on 3.7-rc3
>
> I2S controller has an internal mux for RCLK source clks. The list
> of source clk names were passed through platform data in non-dt case.
> The variable holding the list of RCLK source clk names is not
> required, as the list of clks need to be registered with clkdev
> using generic connection id. This is required as part of adding DT
> support for I2S controller driver.
>
> In the below series of patches, registered the existed clks with
> clkdev using generic connection id and removed the variable which
> holds those clk names. This is done for s3c64xx,s5pc100,s5p64x0,
> s5pv210 and exynos4 series. But tested the sound card detection
> only on smdk6410 board. On remaining all platforms it was just
> build tested.
>
> Padmavathi Venna (5):
>   ARM: S3C64XX: Add I2S clkdev support
>   ARM: S5PC100: Add I2S clkdev support
>   ARM: S5P64x0: Add I2S clkdev support
>   ARM: S5PV210: Avoid passing the clks through platform data
>   ARM: Exynos: Avoid passing the clks through platform data
>
>  arch/arm/mach-exynos/dev-audio.c      |   12 ---
>  arch/arm/mach-s3c64xx/clock.c         |  126 ++++++++++++++++++++-------------
>  arch/arm/mach-s3c64xx/dev-audio.c     |   11 ---
>  arch/arm/mach-s5p64x0/clock-s5p6440.c |   49 +++++++++----
>  arch/arm/mach-s5p64x0/clock-s5p6450.c |   61 +++++++++++-----
>  arch/arm/mach-s5p64x0/dev-audio.c     |   12 ---
>  arch/arm/mach-s5pc100/clock.c         |   48 ++++++++-----
>  arch/arm/mach-s5pc100/dev-audio.c     |   16 ----
>  arch/arm/mach-s5pv210/dev-audio.c     |   16 ----
>  9 files changed, 182 insertions(+), 169 deletions(-)
>
> --
> 1.7.4.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH V3 1/5] ARM: S3C64XX: Add I2S clkdev support
  2012-11-06  4:48   ` Padmavathi Venna
@ 2012-11-23 11:15     ` Padma Venkat
  -1 siblings, 0 replies; 32+ messages in thread
From: Padma Venkat @ 2012-11-23 11:15 UTC (permalink / raw)
  To: Padmavathi Venna
  Cc: linux-arm-kernel, linux-samsung-soc, sbkim73, ben-linux,
	kgene.kim, olofj, Mark Brown

cc'ing Mark Brown.

On Tue, Nov 6, 2012 at 10:18 AM, Padmavathi Venna <padma.v@samsung.com> wrote:
> I2S controller has an internal mux for RCLK source clks. The list
> of source clk names were passed through platform data in non-dt case.
> Register the existing RCLK source clocks with clkdev using generic
> connection id. This is required as part of adding DT support
> for I2S controller driver.
>
> Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
> ---
>  arch/arm/mach-s3c64xx/clock.c     |  126 ++++++++++++++++++++++--------------
>  arch/arm/mach-s3c64xx/dev-audio.c |   11 ---
>  2 files changed, 77 insertions(+), 60 deletions(-)
>
> diff --git a/arch/arm/mach-s3c64xx/clock.c b/arch/arm/mach-s3c64xx/clock.c
> index 28041e8..087183d 100644
> --- a/arch/arm/mach-s3c64xx/clock.c
> +++ b/arch/arm/mach-s3c64xx/clock.c
> @@ -153,25 +153,6 @@ static struct clk init_clocks_off[] = {
>                 .enable         = s3c64xx_pclk_ctrl,
>                 .ctrlbit        = S3C6410_CLKCON_PCLK_I2C1,
>         }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.0",
> -               .parent         = &clk_p,
> -               .enable         = s3c64xx_pclk_ctrl,
> -               .ctrlbit        = S3C_CLKCON_PCLK_IIS0,
> -       }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.1",
> -               .parent         = &clk_p,
> -               .enable         = s3c64xx_pclk_ctrl,
> -               .ctrlbit        = S3C_CLKCON_PCLK_IIS1,
> -       }, {
> -#ifdef CONFIG_CPU_S3C6410
> -               .name           = "iis",
> -               .parent         = &clk_p,
> -               .enable         = s3c64xx_pclk_ctrl,
> -               .ctrlbit        = S3C6410_CLKCON_PCLK_IIS2,
> -       }, {
> -#endif
>                 .name           = "keypad",
>                 .parent         = &clk_p,
>                 .enable         = s3c64xx_pclk_ctrl,
> @@ -345,6 +326,32 @@ static struct clk clk_48m_spi1 = {
>         .ctrlbit        = S3C_CLKCON_SCLK_SPI1_48,
>  };
>
> +static struct clk clk_i2s0 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.0",
> +       .parent         = &clk_p,
> +       .enable         = s3c64xx_pclk_ctrl,
> +       .ctrlbit        = S3C_CLKCON_PCLK_IIS0,
> +};
> +
> +static struct clk clk_i2s1 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.1",
> +       .parent         = &clk_p,
> +       .enable         = s3c64xx_pclk_ctrl,
> +       .ctrlbit        = S3C_CLKCON_PCLK_IIS1,
> +};
> +
> +#ifdef CONFIG_CPU_S3C6410
> +static struct clk clk_i2s2 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.2",
> +       .parent         = &clk_p,
> +       .enable         = s3c64xx_pclk_ctrl,
> +       .ctrlbit        = S3C6410_CLKCON_PCLK_IIS2,
> +};
> +#endif
> +
>  static struct clk init_clocks[] = {
>         {
>                 .name           = "lcd",
> @@ -668,6 +675,7 @@ static struct clksrc_sources clkset_audio1 = {
>         .nr_sources     = ARRAY_SIZE(clkset_audio1_list),
>  };
>
> +#ifdef CONFIG_CPU_S3C6410
>  static struct clk *clkset_audio2_list[] = {
>         [0] = &clk_mout_epll.clk,
>         [1] = &clk_dout_mpll,
> @@ -680,6 +688,7 @@ static struct clksrc_sources clkset_audio2 = {
>         .sources        = clkset_audio2_list,
>         .nr_sources     = ARRAY_SIZE(clkset_audio2_list),
>  };
> +#endif
>
>  static struct clk *clkset_camif_list[] = {
>         &clk_h2,
> @@ -702,36 +711,6 @@ static struct clksrc_clk clksrcs[] = {
>                 .sources        = &clkset_uhost,
>         }, {
>                 .clk    = {
> -                       .name           = "audio-bus",
> -                       .devname        = "samsung-i2s.0",
> -                       .ctrlbit        = S3C_CLKCON_SCLK_AUDIO0,
> -                       .enable         = s3c64xx_sclk_ctrl,
> -               },
> -               .reg_src        = { .reg = S3C_CLK_SRC, .shift = 7, .size = 3  },
> -               .reg_div        = { .reg = S3C_CLK_DIV2, .shift = 8, .size = 4  },
> -               .sources        = &clkset_audio0,
> -       }, {
> -               .clk    = {
> -                       .name           = "audio-bus",
> -                       .devname        = "samsung-i2s.1",
> -                       .ctrlbit        = S3C_CLKCON_SCLK_AUDIO1,
> -                       .enable         = s3c64xx_sclk_ctrl,
> -               },
> -               .reg_src        = { .reg = S3C_CLK_SRC, .shift = 10, .size = 3  },
> -               .reg_div        = { .reg = S3C_CLK_DIV2, .shift = 12, .size = 4  },
> -               .sources        = &clkset_audio1,
> -       }, {
> -               .clk    = {
> -                       .name           = "audio-bus",
> -                       .devname        = "samsung-i2s.2",
> -                       .ctrlbit        = S3C6410_CLKCON_SCLK_AUDIO2,
> -                       .enable         = s3c64xx_sclk_ctrl,
> -               },
> -               .reg_src        = { .reg = S3C6410_CLK_SRC2, .shift = 0, .size = 3  },
> -               .reg_div        = { .reg = S3C_CLK_DIV2, .shift = 24, .size = 4  },
> -               .sources        = &clkset_audio2,
> -       }, {
> -               .clk    = {
>                         .name           = "irda-bus",
>                         .ctrlbit        = S3C_CLKCON_SCLK_IRDA,
>                         .enable         = s3c64xx_sclk_ctrl,
> @@ -823,6 +802,43 @@ static struct clksrc_clk clk_sclk_spi1 = {
>         .sources = &clkset_spi_mmc,
>  };
>
> +static struct clksrc_clk clk_audio_bus0 = {
> +       .clk    = {
> +               .name           = "audio-bus",
> +               .devname        = "samsung-i2s.0",
> +               .ctrlbit        = S3C_CLKCON_SCLK_AUDIO0,
> +               .enable         = s3c64xx_sclk_ctrl,
> +       },
> +       .reg_src        = { .reg = S3C_CLK_SRC, .shift = 7, .size = 3  },
> +       .reg_div        = { .reg = S3C_CLK_DIV2, .shift = 8, .size = 4  },
> +       .sources        = &clkset_audio0,
> +};
> +
> +static struct clksrc_clk clk_audio_bus1 = {
> +       .clk    = {
> +               .name           = "audio-bus",
> +               .devname        = "samsung-i2s.1",
> +               .ctrlbit        = S3C_CLKCON_SCLK_AUDIO1,
> +               .enable         = s3c64xx_sclk_ctrl,
> +       },
> +       .reg_src        = { .reg = S3C_CLK_SRC, .shift = 10, .size = 3  },
> +       .reg_div        = { .reg = S3C_CLK_DIV2, .shift = 12, .size = 4  },
> +       .sources        = &clkset_audio1,
> +};
> +
> +#ifdef CONFIG_CPU_S3C6410
> +static struct clksrc_clk clk_audio_bus2 = {
> +       .clk    = {
> +               .name           = "audio-bus",
> +               .devname        = "samsung-i2s.2",
> +               .ctrlbit        = S3C6410_CLKCON_SCLK_AUDIO2,
> +               .enable         = s3c64xx_sclk_ctrl,
> +       },
> +       .reg_src        = { .reg = S3C6410_CLK_SRC2, .shift = 0, .size = 3  },
> +       .reg_div        = { .reg = S3C_CLK_DIV2, .shift = 24, .size = 4  },
> +       .sources        = &clkset_audio2,
> +};
> +#endif
>  /* Clock initialisation code */
>
>  static struct clksrc_clk *init_parents[] = {
> @@ -838,6 +854,8 @@ static struct clksrc_clk *clksrc_cdev[] = {
>         &clk_sclk_mmc2,
>         &clk_sclk_spi0,
>         &clk_sclk_spi1,
> +       &clk_audio_bus0,
> +       &clk_audio_bus1,
>  };
>
>  static struct clk *clk_cdev[] = {
> @@ -846,6 +864,8 @@ static struct clk *clk_cdev[] = {
>         &clk_hsmmc2,
>         &clk_48m_spi0,
>         &clk_48m_spi1,
> +       &clk_i2s0,
> +       &clk_i2s1,
>  };
>
>  static struct clk_lookup s3c64xx_clk_lookup[] = {
> @@ -862,6 +882,14 @@ static struct clk_lookup s3c64xx_clk_lookup[] = {
>         CLKDEV_INIT("s3c6410-spi.0", "spi_busclk2", &clk_48m_spi0),
>         CLKDEV_INIT("s3c6410-spi.1", "spi_busclk1", &clk_sclk_spi1.clk),
>         CLKDEV_INIT("s3c6410-spi.1", "spi_busclk2", &clk_48m_spi1),
> +       CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &clk_i2s0),
> +       CLKDEV_INIT("samsung-i2s.0", "i2s_opclk1", &clk_audio_bus0.clk),
> +       CLKDEV_INIT("samsung-i2s.1", "i2s_opclk0", &clk_i2s1),
> +       CLKDEV_INIT("samsung-i2s.1", "i2s_opclk1", &clk_audio_bus1.clk),
> +#ifdef CONFIG_CPU_S3C6410
> +       CLKDEV_INIT("samsung-i2s.2", "i2s_opclk0", &clk_i2s2),
> +       CLKDEV_INIT("samsung-i2s.2", "i2s_opclk1", &clk_audio_bus2.clk),
> +#endif
>  };
>
>  #define GET_DIV(clk, field) ((((clk) & field##_MASK) >> field##_SHIFT) + 1)
> diff --git a/arch/arm/mach-s3c64xx/dev-audio.c b/arch/arm/mach-s3c64xx/dev-audio.c
> index 35f3e07..e367e87 100644
> --- a/arch/arm/mach-s3c64xx/dev-audio.c
> +++ b/arch/arm/mach-s3c64xx/dev-audio.c
> @@ -23,11 +23,6 @@
>  #include <linux/platform_data/asoc-s3c.h>
>  #include <plat/gpio-cfg.h>
>
> -static const char *rclksrc[] = {
> -       [0] = "iis",
> -       [1] = "audio-bus",
> -};
> -
>  static int s3c64xx_i2s_cfg_gpio(struct platform_device *pdev)
>  {
>         unsigned int base;
> @@ -64,11 +59,6 @@ static struct resource s3c64xx_iis0_resource[] = {
>
>  static struct s3c_audio_pdata i2sv3_pdata = {
>         .cfg_gpio = s3c64xx_i2s_cfg_gpio,
> -       .type = {
> -               .i2s = {
> -                       .src_clk = rclksrc,
> -               },
> -       },
>  };
>
>  struct platform_device s3c64xx_device_iis0 = {
> @@ -110,7 +100,6 @@ static struct s3c_audio_pdata i2sv4_pdata = {
>         .type = {
>                 .i2s = {
>                         .quirks = QUIRK_PRI_6CHAN,
> -                       .src_clk = rclksrc,
>                 },
>         },
>  };
> --
> 1.7.4.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH V3 1/5] ARM: S3C64XX: Add I2S clkdev support
@ 2012-11-23 11:15     ` Padma Venkat
  0 siblings, 0 replies; 32+ messages in thread
From: Padma Venkat @ 2012-11-23 11:15 UTC (permalink / raw)
  To: linux-arm-kernel

cc'ing Mark Brown.

On Tue, Nov 6, 2012 at 10:18 AM, Padmavathi Venna <padma.v@samsung.com> wrote:
> I2S controller has an internal mux for RCLK source clks. The list
> of source clk names were passed through platform data in non-dt case.
> Register the existing RCLK source clocks with clkdev using generic
> connection id. This is required as part of adding DT support
> for I2S controller driver.
>
> Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
> ---
>  arch/arm/mach-s3c64xx/clock.c     |  126 ++++++++++++++++++++++--------------
>  arch/arm/mach-s3c64xx/dev-audio.c |   11 ---
>  2 files changed, 77 insertions(+), 60 deletions(-)
>
> diff --git a/arch/arm/mach-s3c64xx/clock.c b/arch/arm/mach-s3c64xx/clock.c
> index 28041e8..087183d 100644
> --- a/arch/arm/mach-s3c64xx/clock.c
> +++ b/arch/arm/mach-s3c64xx/clock.c
> @@ -153,25 +153,6 @@ static struct clk init_clocks_off[] = {
>                 .enable         = s3c64xx_pclk_ctrl,
>                 .ctrlbit        = S3C6410_CLKCON_PCLK_I2C1,
>         }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.0",
> -               .parent         = &clk_p,
> -               .enable         = s3c64xx_pclk_ctrl,
> -               .ctrlbit        = S3C_CLKCON_PCLK_IIS0,
> -       }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.1",
> -               .parent         = &clk_p,
> -               .enable         = s3c64xx_pclk_ctrl,
> -               .ctrlbit        = S3C_CLKCON_PCLK_IIS1,
> -       }, {
> -#ifdef CONFIG_CPU_S3C6410
> -               .name           = "iis",
> -               .parent         = &clk_p,
> -               .enable         = s3c64xx_pclk_ctrl,
> -               .ctrlbit        = S3C6410_CLKCON_PCLK_IIS2,
> -       }, {
> -#endif
>                 .name           = "keypad",
>                 .parent         = &clk_p,
>                 .enable         = s3c64xx_pclk_ctrl,
> @@ -345,6 +326,32 @@ static struct clk clk_48m_spi1 = {
>         .ctrlbit        = S3C_CLKCON_SCLK_SPI1_48,
>  };
>
> +static struct clk clk_i2s0 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.0",
> +       .parent         = &clk_p,
> +       .enable         = s3c64xx_pclk_ctrl,
> +       .ctrlbit        = S3C_CLKCON_PCLK_IIS0,
> +};
> +
> +static struct clk clk_i2s1 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.1",
> +       .parent         = &clk_p,
> +       .enable         = s3c64xx_pclk_ctrl,
> +       .ctrlbit        = S3C_CLKCON_PCLK_IIS1,
> +};
> +
> +#ifdef CONFIG_CPU_S3C6410
> +static struct clk clk_i2s2 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.2",
> +       .parent         = &clk_p,
> +       .enable         = s3c64xx_pclk_ctrl,
> +       .ctrlbit        = S3C6410_CLKCON_PCLK_IIS2,
> +};
> +#endif
> +
>  static struct clk init_clocks[] = {
>         {
>                 .name           = "lcd",
> @@ -668,6 +675,7 @@ static struct clksrc_sources clkset_audio1 = {
>         .nr_sources     = ARRAY_SIZE(clkset_audio1_list),
>  };
>
> +#ifdef CONFIG_CPU_S3C6410
>  static struct clk *clkset_audio2_list[] = {
>         [0] = &clk_mout_epll.clk,
>         [1] = &clk_dout_mpll,
> @@ -680,6 +688,7 @@ static struct clksrc_sources clkset_audio2 = {
>         .sources        = clkset_audio2_list,
>         .nr_sources     = ARRAY_SIZE(clkset_audio2_list),
>  };
> +#endif
>
>  static struct clk *clkset_camif_list[] = {
>         &clk_h2,
> @@ -702,36 +711,6 @@ static struct clksrc_clk clksrcs[] = {
>                 .sources        = &clkset_uhost,
>         }, {
>                 .clk    = {
> -                       .name           = "audio-bus",
> -                       .devname        = "samsung-i2s.0",
> -                       .ctrlbit        = S3C_CLKCON_SCLK_AUDIO0,
> -                       .enable         = s3c64xx_sclk_ctrl,
> -               },
> -               .reg_src        = { .reg = S3C_CLK_SRC, .shift = 7, .size = 3  },
> -               .reg_div        = { .reg = S3C_CLK_DIV2, .shift = 8, .size = 4  },
> -               .sources        = &clkset_audio0,
> -       }, {
> -               .clk    = {
> -                       .name           = "audio-bus",
> -                       .devname        = "samsung-i2s.1",
> -                       .ctrlbit        = S3C_CLKCON_SCLK_AUDIO1,
> -                       .enable         = s3c64xx_sclk_ctrl,
> -               },
> -               .reg_src        = { .reg = S3C_CLK_SRC, .shift = 10, .size = 3  },
> -               .reg_div        = { .reg = S3C_CLK_DIV2, .shift = 12, .size = 4  },
> -               .sources        = &clkset_audio1,
> -       }, {
> -               .clk    = {
> -                       .name           = "audio-bus",
> -                       .devname        = "samsung-i2s.2",
> -                       .ctrlbit        = S3C6410_CLKCON_SCLK_AUDIO2,
> -                       .enable         = s3c64xx_sclk_ctrl,
> -               },
> -               .reg_src        = { .reg = S3C6410_CLK_SRC2, .shift = 0, .size = 3  },
> -               .reg_div        = { .reg = S3C_CLK_DIV2, .shift = 24, .size = 4  },
> -               .sources        = &clkset_audio2,
> -       }, {
> -               .clk    = {
>                         .name           = "irda-bus",
>                         .ctrlbit        = S3C_CLKCON_SCLK_IRDA,
>                         .enable         = s3c64xx_sclk_ctrl,
> @@ -823,6 +802,43 @@ static struct clksrc_clk clk_sclk_spi1 = {
>         .sources = &clkset_spi_mmc,
>  };
>
> +static struct clksrc_clk clk_audio_bus0 = {
> +       .clk    = {
> +               .name           = "audio-bus",
> +               .devname        = "samsung-i2s.0",
> +               .ctrlbit        = S3C_CLKCON_SCLK_AUDIO0,
> +               .enable         = s3c64xx_sclk_ctrl,
> +       },
> +       .reg_src        = { .reg = S3C_CLK_SRC, .shift = 7, .size = 3  },
> +       .reg_div        = { .reg = S3C_CLK_DIV2, .shift = 8, .size = 4  },
> +       .sources        = &clkset_audio0,
> +};
> +
> +static struct clksrc_clk clk_audio_bus1 = {
> +       .clk    = {
> +               .name           = "audio-bus",
> +               .devname        = "samsung-i2s.1",
> +               .ctrlbit        = S3C_CLKCON_SCLK_AUDIO1,
> +               .enable         = s3c64xx_sclk_ctrl,
> +       },
> +       .reg_src        = { .reg = S3C_CLK_SRC, .shift = 10, .size = 3  },
> +       .reg_div        = { .reg = S3C_CLK_DIV2, .shift = 12, .size = 4  },
> +       .sources        = &clkset_audio1,
> +};
> +
> +#ifdef CONFIG_CPU_S3C6410
> +static struct clksrc_clk clk_audio_bus2 = {
> +       .clk    = {
> +               .name           = "audio-bus",
> +               .devname        = "samsung-i2s.2",
> +               .ctrlbit        = S3C6410_CLKCON_SCLK_AUDIO2,
> +               .enable         = s3c64xx_sclk_ctrl,
> +       },
> +       .reg_src        = { .reg = S3C6410_CLK_SRC2, .shift = 0, .size = 3  },
> +       .reg_div        = { .reg = S3C_CLK_DIV2, .shift = 24, .size = 4  },
> +       .sources        = &clkset_audio2,
> +};
> +#endif
>  /* Clock initialisation code */
>
>  static struct clksrc_clk *init_parents[] = {
> @@ -838,6 +854,8 @@ static struct clksrc_clk *clksrc_cdev[] = {
>         &clk_sclk_mmc2,
>         &clk_sclk_spi0,
>         &clk_sclk_spi1,
> +       &clk_audio_bus0,
> +       &clk_audio_bus1,
>  };
>
>  static struct clk *clk_cdev[] = {
> @@ -846,6 +864,8 @@ static struct clk *clk_cdev[] = {
>         &clk_hsmmc2,
>         &clk_48m_spi0,
>         &clk_48m_spi1,
> +       &clk_i2s0,
> +       &clk_i2s1,
>  };
>
>  static struct clk_lookup s3c64xx_clk_lookup[] = {
> @@ -862,6 +882,14 @@ static struct clk_lookup s3c64xx_clk_lookup[] = {
>         CLKDEV_INIT("s3c6410-spi.0", "spi_busclk2", &clk_48m_spi0),
>         CLKDEV_INIT("s3c6410-spi.1", "spi_busclk1", &clk_sclk_spi1.clk),
>         CLKDEV_INIT("s3c6410-spi.1", "spi_busclk2", &clk_48m_spi1),
> +       CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &clk_i2s0),
> +       CLKDEV_INIT("samsung-i2s.0", "i2s_opclk1", &clk_audio_bus0.clk),
> +       CLKDEV_INIT("samsung-i2s.1", "i2s_opclk0", &clk_i2s1),
> +       CLKDEV_INIT("samsung-i2s.1", "i2s_opclk1", &clk_audio_bus1.clk),
> +#ifdef CONFIG_CPU_S3C6410
> +       CLKDEV_INIT("samsung-i2s.2", "i2s_opclk0", &clk_i2s2),
> +       CLKDEV_INIT("samsung-i2s.2", "i2s_opclk1", &clk_audio_bus2.clk),
> +#endif
>  };
>
>  #define GET_DIV(clk, field) ((((clk) & field##_MASK) >> field##_SHIFT) + 1)
> diff --git a/arch/arm/mach-s3c64xx/dev-audio.c b/arch/arm/mach-s3c64xx/dev-audio.c
> index 35f3e07..e367e87 100644
> --- a/arch/arm/mach-s3c64xx/dev-audio.c
> +++ b/arch/arm/mach-s3c64xx/dev-audio.c
> @@ -23,11 +23,6 @@
>  #include <linux/platform_data/asoc-s3c.h>
>  #include <plat/gpio-cfg.h>
>
> -static const char *rclksrc[] = {
> -       [0] = "iis",
> -       [1] = "audio-bus",
> -};
> -
>  static int s3c64xx_i2s_cfg_gpio(struct platform_device *pdev)
>  {
>         unsigned int base;
> @@ -64,11 +59,6 @@ static struct resource s3c64xx_iis0_resource[] = {
>
>  static struct s3c_audio_pdata i2sv3_pdata = {
>         .cfg_gpio = s3c64xx_i2s_cfg_gpio,
> -       .type = {
> -               .i2s = {
> -                       .src_clk = rclksrc,
> -               },
> -       },
>  };
>
>  struct platform_device s3c64xx_device_iis0 = {
> @@ -110,7 +100,6 @@ static struct s3c_audio_pdata i2sv4_pdata = {
>         .type = {
>                 .i2s = {
>                         .quirks = QUIRK_PRI_6CHAN,
> -                       .src_clk = rclksrc,
>                 },
>         },
>  };
> --
> 1.7.4.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH V3 2/5] ARM: S5PC100: Add I2S clkdev support
  2012-11-06  4:48   ` Padmavathi Venna
@ 2012-11-23 11:15     ` Padma Venkat
  -1 siblings, 0 replies; 32+ messages in thread
From: Padma Venkat @ 2012-11-23 11:15 UTC (permalink / raw)
  To: Padmavathi Venna
  Cc: linux-arm-kernel, linux-samsung-soc, sbkim73, ben-linux,
	kgene.kim, olofj, Mark Brown

cc'ing Mark Brown.

On Tue, Nov 6, 2012 at 10:18 AM, Padmavathi Venna <padma.v@samsung.com> wrote:
> I2S controller has an internal mux for RCLK source clk. The list
> of source clk names were passed through platform data in non-dt case.
> Register the existing RCLK source clocks with clkdev using generic
> connection id. This is required as part of adding DT support
> for I2S controller driver.
>
> Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
> ---
>  arch/arm/mach-s5pc100/clock.c     |   48 +++++++++++++++++++++++--------------
>  arch/arm/mach-s5pc100/dev-audio.c |   16 ------------
>  2 files changed, 30 insertions(+), 34 deletions(-)
>
> diff --git a/arch/arm/mach-s5pc100/clock.c b/arch/arm/mach-s5pc100/clock.c
> index 9262197..a206dc3 100644
> --- a/arch/arm/mach-s5pc100/clock.c
> +++ b/arch/arm/mach-s5pc100/clock.c
> @@ -606,24 +606,6 @@ static struct clk init_clocks_off[] = {
>                 .enable         = s5pc100_d1_4_ctrl,
>                 .ctrlbit        = (1 << 13),
>         }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.0",
> -               .parent         = &clk_div_pclkd1.clk,
> -               .enable         = s5pc100_d1_5_ctrl,
> -               .ctrlbit        = (1 << 0),
> -       }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.1",
> -               .parent         = &clk_div_pclkd1.clk,
> -               .enable         = s5pc100_d1_5_ctrl,
> -               .ctrlbit        = (1 << 1),
> -       }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.2",
> -               .parent         = &clk_div_pclkd1.clk,
> -               .enable         = s5pc100_d1_5_ctrl,
> -               .ctrlbit        = (1 << 2),
> -       }, {
>                 .name           = "ac97",
>                 .parent         = &clk_div_pclkd1.clk,
>                 .enable         = s5pc100_d1_5_ctrl,
> @@ -724,6 +706,30 @@ static struct clk clk_48m_spi2 = {
>         .ctrlbit        = (1 << 9),
>  };
>
> +static struct clk clk_i2s0 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.0",
> +       .parent         = &clk_div_pclkd1.clk,
> +       .enable         = s5pc100_d1_5_ctrl,
> +       .ctrlbit        = (1 << 0),
> +};
> +
> +static struct clk clk_i2s1 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.1",
> +       .parent         = &clk_div_pclkd1.clk,
> +       .enable         = s5pc100_d1_5_ctrl,
> +       .ctrlbit        = (1 << 1),
> +};
> +
> +static struct clk clk_i2s2 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.2",
> +       .parent         = &clk_div_pclkd1.clk,
> +       .enable         = s5pc100_d1_5_ctrl,
> +       .ctrlbit        = (1 << 2),
> +};
> +
>  static struct clk clk_vclk54m = {
>         .name           = "vclk_54m",
>         .rate           = 54000000,
> @@ -1154,6 +1160,9 @@ static struct clk *clk_cdev[] = {
>         &clk_48m_spi0,
>         &clk_48m_spi1,
>         &clk_48m_spi2,
> +       &clk_i2s0,
> +       &clk_i2s1,
> +       &clk_i2s2,
>  };
>
>  static struct clksrc_clk *clksrc_cdev[] = {
> @@ -1321,6 +1330,9 @@ static struct clk_lookup s5pc100_clk_lookup[] = {
>         CLKDEV_INIT("s5pc100-spi.1", "spi_busclk2", &clk_sclk_spi1.clk),
>         CLKDEV_INIT("s5pc100-spi.2", "spi_busclk1", &clk_48m_spi2),
>         CLKDEV_INIT("s5pc100-spi.2", "spi_busclk2", &clk_sclk_spi2.clk),
> +       CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &clk_i2s0),
> +       CLKDEV_INIT("samsung-i2s.1", "i2s_opclk0", &clk_i2s1),
> +       CLKDEV_INIT("samsung-i2s.2", "i2s_opclk0", &clk_i2s2),
>  };
>
>  void __init s5pc100_register_clocks(void)
> diff --git a/arch/arm/mach-s5pc100/dev-audio.c b/arch/arm/mach-s5pc100/dev-audio.c
> index 1cc252c..46f488b 100644
> --- a/arch/arm/mach-s5pc100/dev-audio.c
> +++ b/arch/arm/mach-s5pc100/dev-audio.c
> @@ -39,18 +39,12 @@ static int s5pc100_cfg_i2s(struct platform_device *pdev)
>         return 0;
>  }
>
> -static const char *rclksrc_v5[] = {
> -       [0] = "iis",
> -       [1] = "i2sclkd2",
> -};
> -
>  static struct s3c_audio_pdata i2sv5_pdata = {
>         .cfg_gpio = s5pc100_cfg_i2s,
>         .type = {
>                 .i2s = {
>                         .quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI
>                                          | QUIRK_NEED_RSTCLR,
> -                       .src_clk = rclksrc_v5,
>                 },
>         },
>  };
> @@ -72,18 +66,8 @@ struct platform_device s5pc100_device_iis0 = {
>         },
>  };
>
> -static const char *rclksrc_v3[] = {
> -       [0] = "iis",
> -       [1] = "sclk_audio",
> -};
> -
>  static struct s3c_audio_pdata i2sv3_pdata = {
>         .cfg_gpio = s5pc100_cfg_i2s,
> -       .type = {
> -               .i2s = {
> -                       .src_clk = rclksrc_v3,
> -               },
> -       },
>  };
>
>  static struct resource s5pc100_iis1_resource[] = {
> --
> 1.7.4.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH V3 2/5] ARM: S5PC100: Add I2S clkdev support
@ 2012-11-23 11:15     ` Padma Venkat
  0 siblings, 0 replies; 32+ messages in thread
From: Padma Venkat @ 2012-11-23 11:15 UTC (permalink / raw)
  To: linux-arm-kernel

cc'ing Mark Brown.

On Tue, Nov 6, 2012 at 10:18 AM, Padmavathi Venna <padma.v@samsung.com> wrote:
> I2S controller has an internal mux for RCLK source clk. The list
> of source clk names were passed through platform data in non-dt case.
> Register the existing RCLK source clocks with clkdev using generic
> connection id. This is required as part of adding DT support
> for I2S controller driver.
>
> Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
> ---
>  arch/arm/mach-s5pc100/clock.c     |   48 +++++++++++++++++++++++--------------
>  arch/arm/mach-s5pc100/dev-audio.c |   16 ------------
>  2 files changed, 30 insertions(+), 34 deletions(-)
>
> diff --git a/arch/arm/mach-s5pc100/clock.c b/arch/arm/mach-s5pc100/clock.c
> index 9262197..a206dc3 100644
> --- a/arch/arm/mach-s5pc100/clock.c
> +++ b/arch/arm/mach-s5pc100/clock.c
> @@ -606,24 +606,6 @@ static struct clk init_clocks_off[] = {
>                 .enable         = s5pc100_d1_4_ctrl,
>                 .ctrlbit        = (1 << 13),
>         }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.0",
> -               .parent         = &clk_div_pclkd1.clk,
> -               .enable         = s5pc100_d1_5_ctrl,
> -               .ctrlbit        = (1 << 0),
> -       }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.1",
> -               .parent         = &clk_div_pclkd1.clk,
> -               .enable         = s5pc100_d1_5_ctrl,
> -               .ctrlbit        = (1 << 1),
> -       }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.2",
> -               .parent         = &clk_div_pclkd1.clk,
> -               .enable         = s5pc100_d1_5_ctrl,
> -               .ctrlbit        = (1 << 2),
> -       }, {
>                 .name           = "ac97",
>                 .parent         = &clk_div_pclkd1.clk,
>                 .enable         = s5pc100_d1_5_ctrl,
> @@ -724,6 +706,30 @@ static struct clk clk_48m_spi2 = {
>         .ctrlbit        = (1 << 9),
>  };
>
> +static struct clk clk_i2s0 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.0",
> +       .parent         = &clk_div_pclkd1.clk,
> +       .enable         = s5pc100_d1_5_ctrl,
> +       .ctrlbit        = (1 << 0),
> +};
> +
> +static struct clk clk_i2s1 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.1",
> +       .parent         = &clk_div_pclkd1.clk,
> +       .enable         = s5pc100_d1_5_ctrl,
> +       .ctrlbit        = (1 << 1),
> +};
> +
> +static struct clk clk_i2s2 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.2",
> +       .parent         = &clk_div_pclkd1.clk,
> +       .enable         = s5pc100_d1_5_ctrl,
> +       .ctrlbit        = (1 << 2),
> +};
> +
>  static struct clk clk_vclk54m = {
>         .name           = "vclk_54m",
>         .rate           = 54000000,
> @@ -1154,6 +1160,9 @@ static struct clk *clk_cdev[] = {
>         &clk_48m_spi0,
>         &clk_48m_spi1,
>         &clk_48m_spi2,
> +       &clk_i2s0,
> +       &clk_i2s1,
> +       &clk_i2s2,
>  };
>
>  static struct clksrc_clk *clksrc_cdev[] = {
> @@ -1321,6 +1330,9 @@ static struct clk_lookup s5pc100_clk_lookup[] = {
>         CLKDEV_INIT("s5pc100-spi.1", "spi_busclk2", &clk_sclk_spi1.clk),
>         CLKDEV_INIT("s5pc100-spi.2", "spi_busclk1", &clk_48m_spi2),
>         CLKDEV_INIT("s5pc100-spi.2", "spi_busclk2", &clk_sclk_spi2.clk),
> +       CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &clk_i2s0),
> +       CLKDEV_INIT("samsung-i2s.1", "i2s_opclk0", &clk_i2s1),
> +       CLKDEV_INIT("samsung-i2s.2", "i2s_opclk0", &clk_i2s2),
>  };
>
>  void __init s5pc100_register_clocks(void)
> diff --git a/arch/arm/mach-s5pc100/dev-audio.c b/arch/arm/mach-s5pc100/dev-audio.c
> index 1cc252c..46f488b 100644
> --- a/arch/arm/mach-s5pc100/dev-audio.c
> +++ b/arch/arm/mach-s5pc100/dev-audio.c
> @@ -39,18 +39,12 @@ static int s5pc100_cfg_i2s(struct platform_device *pdev)
>         return 0;
>  }
>
> -static const char *rclksrc_v5[] = {
> -       [0] = "iis",
> -       [1] = "i2sclkd2",
> -};
> -
>  static struct s3c_audio_pdata i2sv5_pdata = {
>         .cfg_gpio = s5pc100_cfg_i2s,
>         .type = {
>                 .i2s = {
>                         .quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI
>                                          | QUIRK_NEED_RSTCLR,
> -                       .src_clk = rclksrc_v5,
>                 },
>         },
>  };
> @@ -72,18 +66,8 @@ struct platform_device s5pc100_device_iis0 = {
>         },
>  };
>
> -static const char *rclksrc_v3[] = {
> -       [0] = "iis",
> -       [1] = "sclk_audio",
> -};
> -
>  static struct s3c_audio_pdata i2sv3_pdata = {
>         .cfg_gpio = s5pc100_cfg_i2s,
> -       .type = {
> -               .i2s = {
> -                       .src_clk = rclksrc_v3,
> -               },
> -       },
>  };
>
>  static struct resource s5pc100_iis1_resource[] = {
> --
> 1.7.4.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH V3 3/5] ARM: S5P64x0: Add I2S clkdev support
  2012-11-06  4:48   ` Padmavathi Venna
@ 2012-11-23 11:16     ` Padma Venkat
  -1 siblings, 0 replies; 32+ messages in thread
From: Padma Venkat @ 2012-11-23 11:16 UTC (permalink / raw)
  To: Padmavathi Venna
  Cc: linux-arm-kernel, linux-samsung-soc, sbkim73, ben-linux,
	kgene.kim, olofj, Mark Brown

cc'ing Mark Brown

On Tue, Nov 6, 2012 at 10:18 AM, Padmavathi Venna <padma.v@samsung.com> wrote:
> I2S controller has an internal mux for RCLK source clk. The list
> of source clk names were passed through platform data in non-dt case.
> Register the existing RCLK source clocks with clkdev using generic
> connection id. This is required as part of adding DT support
> for I2S controller driver.
>
> Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
> ---
>  arch/arm/mach-s5p64x0/clock-s5p6440.c |   49 ++++++++++++++++++---------
>  arch/arm/mach-s5p64x0/clock-s5p6450.c |   61 ++++++++++++++++++++++----------
>  arch/arm/mach-s5p64x0/dev-audio.c     |   12 ------
>  3 files changed, 75 insertions(+), 47 deletions(-)
>
> diff --git a/arch/arm/mach-s5p64x0/clock-s5p6440.c b/arch/arm/mach-s5p64x0/clock-s5p6440.c
> index 0004455..5112371 100644
> --- a/arch/arm/mach-s5p64x0/clock-s5p6440.c
> +++ b/arch/arm/mach-s5p64x0/clock-s5p6440.c
> @@ -243,12 +243,6 @@ static struct clk init_clocks_off[] = {
>                 .enable         = s5p64x0_pclk_ctrl,
>                 .ctrlbit        = (1 << 25),
>         }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.0",
> -               .parent         = &clk_pclk_low.clk,
> -               .enable         = s5p64x0_pclk_ctrl,
> -               .ctrlbit        = (1 << 26),
> -       }, {
>                 .name           = "dsim",
>                 .parent         = &clk_pclk_low.clk,
>                 .enable         = s5p64x0_pclk_ctrl,
> @@ -405,15 +399,6 @@ static struct clksrc_clk clksrcs[] = {
>                 .sources = &clkset_group1,
>                 .reg_src = { .reg = S5P64X0_CLK_SRC1, .shift = 8, .size = 2 },
>                 .reg_div = { .reg = S5P64X0_CLK_DIV3, .shift = 4, .size = 4 },
> -       }, {
> -               .clk    = {
> -                       .name           = "sclk_audio2",
> -                       .ctrlbit        = (1 << 11),
> -                       .enable         = s5p64x0_sclk_ctrl,
> -               },
> -               .sources = &clkset_audio,
> -               .reg_src = { .reg = S5P64X0_CLK_SRC1, .shift = 0, .size = 3 },
> -               .reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 24, .size = 4 },
>         },
>  };
>
> @@ -464,6 +449,26 @@ static struct clksrc_clk clk_sclk_uclk = {
>         .reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 16, .size = 4 },
>  };
>
> +static struct clk clk_i2s0 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.0",
> +       .parent         = &clk_pclk_low.clk,
> +       .enable         = s5p64x0_pclk_ctrl,
> +       .ctrlbit        = (1 << 26),
> +};
> +
> +static struct clksrc_clk clk_audio_bus2 = {
> +       .clk    = {
> +               .name           = "sclk_audio2",
> +               .devname        = "samsung-i2s.0",
> +               .ctrlbit        = (1 << 11),
> +               .enable         = s5p64x0_sclk_ctrl,
> +       },
> +       .sources = &clkset_audio,
> +       .reg_src = { .reg = S5P64X0_CLK_SRC1, .shift = 0, .size = 3 },
> +       .reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 24, .size = 4 },
> +};
> +
>  static struct clksrc_clk clk_sclk_spi0 = {
>         .clk    = {
>                 .name           = "sclk_spi",
> @@ -506,13 +511,18 @@ static struct clk dummy_apb_pclk = {
>         .id             = -1,
>  };
>
> +static struct clk *clk_cdev[] = {
> +       &clk_i2s0,
> +};
> +
>  static struct clksrc_clk *clksrc_cdev[] = {
>         &clk_sclk_uclk,
>         &clk_sclk_spi0,
>         &clk_sclk_spi1,
>         &clk_sclk_mmc0,
>         &clk_sclk_mmc1,
> -       &clk_sclk_mmc2
> +       &clk_sclk_mmc2,
> +       &clk_audio_bus2,
>  };
>
>  static struct clk_lookup s5p6440_clk_lookup[] = {
> @@ -524,6 +534,8 @@ static struct clk_lookup s5p6440_clk_lookup[] = {
>         CLKDEV_INIT("s3c-sdhci.0", "mmc_busclk.2", &clk_sclk_mmc0.clk),
>         CLKDEV_INIT("s3c-sdhci.1", "mmc_busclk.2", &clk_sclk_mmc1.clk),
>         CLKDEV_INIT("s3c-sdhci.2", "mmc_busclk.2", &clk_sclk_mmc2.clk),
> +       CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &clk_i2s0),
> +       CLKDEV_INIT("samsung-i2s.0", "i2s_opclk1", &clk_audio_bus2.clk),
>  };
>
>  void __init_or_cpufreq s5p6440_setup_clocks(void)
> @@ -596,12 +608,17 @@ static struct clk *clks[] __initdata = {
>  void __init s5p6440_register_clocks(void)
>  {
>         int ptr;
> +       unsigned int cnt;
>
>         s3c24xx_register_clocks(clks, ARRAY_SIZE(clks));
>
>         for (ptr = 0; ptr < ARRAY_SIZE(sysclks); ptr++)
>                 s3c_register_clksrc(sysclks[ptr], 1);
>
> +       s3c24xx_register_clocks(clk_cdev, ARRAY_SIZE(clk_cdev));
> +       for (cnt = 0; cnt < ARRAY_SIZE(clk_cdev); cnt++)
> +               s3c_disable_clocks(clk_cdev[cnt], 1);
> +
>         s3c_register_clksrc(clksrcs, ARRAY_SIZE(clksrcs));
>         s3c_register_clocks(init_clocks, ARRAY_SIZE(init_clocks));
>         for (ptr = 0; ptr < ARRAY_SIZE(clksrc_cdev); ptr++)
> diff --git a/arch/arm/mach-s5p64x0/clock-s5p6450.c b/arch/arm/mach-s5p64x0/clock-s5p6450.c
> index f3e0ef3..154dea7 100644
> --- a/arch/arm/mach-s5p64x0/clock-s5p6450.c
> +++ b/arch/arm/mach-s5p64x0/clock-s5p6450.c
> @@ -247,24 +247,6 @@ static struct clk init_clocks_off[] = {
>                 .enable         = s5p64x0_pclk_ctrl,
>                 .ctrlbit        = (1 << 22),
>         }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.0",
> -               .parent         = &clk_pclk_low.clk,
> -               .enable         = s5p64x0_pclk_ctrl,
> -               .ctrlbit        = (1 << 26),
> -       }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.1",
> -               .parent         = &clk_pclk_low.clk,
> -               .enable         = s5p64x0_pclk_ctrl,
> -               .ctrlbit        = (1 << 15),
> -       }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.2",
> -               .parent         = &clk_pclk_low.clk,
> -               .enable         = s5p64x0_pclk_ctrl,
> -               .ctrlbit        = (1 << 16),
> -       }, {
>                 .name           = "i2c",
>                 .devname        = "s3c2440-i2c.1",
>                 .parent         = &clk_pclk_low.clk,
> @@ -402,6 +384,7 @@ static struct clksrc_sources clkset_sclk_audio0 = {
>  static struct clksrc_clk clk_sclk_audio0 = {
>         .clk            = {
>                 .name           = "audio-bus",
> +               .devname        = "samsung-i2s.0",
>                 .enable         = s5p64x0_sclk_ctrl,
>                 .ctrlbit        = (1 << 8),
>                 .parent         = &clk_dout_epll.clk,
> @@ -549,6 +532,36 @@ static struct clksrc_clk clk_sclk_spi1 = {
>         .reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 4, .size = 4 },
>  };
>
> +static struct clk clk_i2s0 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.0",
> +       .parent         = &clk_pclk_low.clk,
> +       .enable         = s5p64x0_pclk_ctrl,
> +       .ctrlbit        = (1 << 26),
> +};
> +
> +static struct clk clk_i2s1 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.1",
> +       .parent         = &clk_pclk_low.clk,
> +       .enable         = s5p64x0_pclk_ctrl,
> +       .ctrlbit        = (1 << 15),
> +};
> +
> +static struct clk clk_i2s2 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.2",
> +       .parent         = &clk_pclk_low.clk,
> +       .enable         = s5p64x0_pclk_ctrl,
> +       .ctrlbit        = (1 << 16),
> +};
> +
> +static struct clk *clk_cdev[] = {
> +       &clk_i2s0,
> +       &clk_i2s1,
> +       &clk_i2s2,
> +};
> +
>  static struct clksrc_clk *clksrc_cdev[] = {
>         &clk_sclk_uclk,
>         &clk_sclk_spi0,
> @@ -556,6 +569,7 @@ static struct clksrc_clk *clksrc_cdev[] = {
>         &clk_sclk_mmc0,
>         &clk_sclk_mmc1,
>         &clk_sclk_mmc2,
> +       &clk_sclk_audio0,
>  };
>
>  static struct clk_lookup s5p6450_clk_lookup[] = {
> @@ -567,6 +581,10 @@ static struct clk_lookup s5p6450_clk_lookup[] = {
>         CLKDEV_INIT("s3c-sdhci.0", "mmc_busclk.2", &clk_sclk_mmc0.clk),
>         CLKDEV_INIT("s3c-sdhci.1", "mmc_busclk.2", &clk_sclk_mmc1.clk),
>         CLKDEV_INIT("s3c-sdhci.2", "mmc_busclk.2", &clk_sclk_mmc2.clk),
> +       CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &clk_i2s0),
> +       CLKDEV_INIT("samsung-i2s.0", "i2s_opclk1", &clk_sclk_audio0.clk),
> +       CLKDEV_INIT("samsung-i2s.1", "i2s_opclk0", &clk_i2s1),
> +       CLKDEV_INIT("samsung-i2s.2", "i2s_opclk0", &clk_i2s2),
>  };
>
>  /* Clock initialization code */
> @@ -584,7 +602,6 @@ static struct clksrc_clk *sysclks[] = {
>         &clk_pclk,
>         &clk_hclk_low,
>         &clk_pclk_low,
> -       &clk_sclk_audio0,
>  };
>
>  static struct clk dummy_apb_pclk = {
> @@ -661,10 +678,16 @@ void __init_or_cpufreq s5p6450_setup_clocks(void)
>  void __init s5p6450_register_clocks(void)
>  {
>         int ptr;
> +       unsigned int cnt;
>
>         for (ptr = 0; ptr < ARRAY_SIZE(sysclks); ptr++)
>                 s3c_register_clksrc(sysclks[ptr], 1);
>
> +
> +       s3c24xx_register_clocks(clk_cdev, ARRAY_SIZE(clk_cdev));
> +       for (cnt = 0; cnt < ARRAY_SIZE(clk_cdev); cnt++)
> +               s3c_disable_clocks(clk_cdev[cnt], 1);
> +
>         s3c_register_clksrc(clksrcs, ARRAY_SIZE(clksrcs));
>         s3c_register_clocks(init_clocks, ARRAY_SIZE(init_clocks));
>         for (ptr = 0; ptr < ARRAY_SIZE(clksrc_cdev); ptr++)
> diff --git a/arch/arm/mach-s5p64x0/dev-audio.c b/arch/arm/mach-s5p64x0/dev-audio.c
> index a0d6edf..723d477 100644
> --- a/arch/arm/mach-s5p64x0/dev-audio.c
> +++ b/arch/arm/mach-s5p64x0/dev-audio.c
> @@ -19,11 +19,6 @@
>  #include <mach/dma.h>
>  #include <mach/irqs.h>
>
> -static const char *rclksrc[] = {
> -       [0] = "iis",
> -       [1] = "sclk_audio2",
> -};
> -
>  static int s5p6440_cfg_i2s(struct platform_device *pdev)
>  {
>         switch (pdev->id) {
> @@ -45,7 +40,6 @@ static struct s3c_audio_pdata s5p6440_i2s_pdata = {
>         .type = {
>                 .i2s = {
>                         .quirks = QUIRK_PRI_6CHAN,
> -                       .src_clk = rclksrc,
>                 },
>         },
>  };
> @@ -93,7 +87,6 @@ static struct s3c_audio_pdata s5p6450_i2s0_pdata = {
>         .type = {
>                 .i2s = {
>                         .quirks = QUIRK_PRI_6CHAN,
> -                       .src_clk = rclksrc,
>                 },
>         },
>  };
> @@ -110,11 +103,6 @@ struct platform_device s5p6450_device_iis0 = {
>
>  static struct s3c_audio_pdata s5p6450_i2s_pdata = {
>         .cfg_gpio = s5p6450_cfg_i2s,
> -       .type = {
> -               .i2s = {
> -                       .src_clk = rclksrc,
> -               },
> -       },
>  };
>
>  static struct resource s5p6450_i2s1_resource[] = {
> --
> 1.7.4.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH V3 3/5] ARM: S5P64x0: Add I2S clkdev support
@ 2012-11-23 11:16     ` Padma Venkat
  0 siblings, 0 replies; 32+ messages in thread
From: Padma Venkat @ 2012-11-23 11:16 UTC (permalink / raw)
  To: linux-arm-kernel

cc'ing Mark Brown

On Tue, Nov 6, 2012 at 10:18 AM, Padmavathi Venna <padma.v@samsung.com> wrote:
> I2S controller has an internal mux for RCLK source clk. The list
> of source clk names were passed through platform data in non-dt case.
> Register the existing RCLK source clocks with clkdev using generic
> connection id. This is required as part of adding DT support
> for I2S controller driver.
>
> Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
> ---
>  arch/arm/mach-s5p64x0/clock-s5p6440.c |   49 ++++++++++++++++++---------
>  arch/arm/mach-s5p64x0/clock-s5p6450.c |   61 ++++++++++++++++++++++----------
>  arch/arm/mach-s5p64x0/dev-audio.c     |   12 ------
>  3 files changed, 75 insertions(+), 47 deletions(-)
>
> diff --git a/arch/arm/mach-s5p64x0/clock-s5p6440.c b/arch/arm/mach-s5p64x0/clock-s5p6440.c
> index 0004455..5112371 100644
> --- a/arch/arm/mach-s5p64x0/clock-s5p6440.c
> +++ b/arch/arm/mach-s5p64x0/clock-s5p6440.c
> @@ -243,12 +243,6 @@ static struct clk init_clocks_off[] = {
>                 .enable         = s5p64x0_pclk_ctrl,
>                 .ctrlbit        = (1 << 25),
>         }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.0",
> -               .parent         = &clk_pclk_low.clk,
> -               .enable         = s5p64x0_pclk_ctrl,
> -               .ctrlbit        = (1 << 26),
> -       }, {
>                 .name           = "dsim",
>                 .parent         = &clk_pclk_low.clk,
>                 .enable         = s5p64x0_pclk_ctrl,
> @@ -405,15 +399,6 @@ static struct clksrc_clk clksrcs[] = {
>                 .sources = &clkset_group1,
>                 .reg_src = { .reg = S5P64X0_CLK_SRC1, .shift = 8, .size = 2 },
>                 .reg_div = { .reg = S5P64X0_CLK_DIV3, .shift = 4, .size = 4 },
> -       }, {
> -               .clk    = {
> -                       .name           = "sclk_audio2",
> -                       .ctrlbit        = (1 << 11),
> -                       .enable         = s5p64x0_sclk_ctrl,
> -               },
> -               .sources = &clkset_audio,
> -               .reg_src = { .reg = S5P64X0_CLK_SRC1, .shift = 0, .size = 3 },
> -               .reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 24, .size = 4 },
>         },
>  };
>
> @@ -464,6 +449,26 @@ static struct clksrc_clk clk_sclk_uclk = {
>         .reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 16, .size = 4 },
>  };
>
> +static struct clk clk_i2s0 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.0",
> +       .parent         = &clk_pclk_low.clk,
> +       .enable         = s5p64x0_pclk_ctrl,
> +       .ctrlbit        = (1 << 26),
> +};
> +
> +static struct clksrc_clk clk_audio_bus2 = {
> +       .clk    = {
> +               .name           = "sclk_audio2",
> +               .devname        = "samsung-i2s.0",
> +               .ctrlbit        = (1 << 11),
> +               .enable         = s5p64x0_sclk_ctrl,
> +       },
> +       .sources = &clkset_audio,
> +       .reg_src = { .reg = S5P64X0_CLK_SRC1, .shift = 0, .size = 3 },
> +       .reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 24, .size = 4 },
> +};
> +
>  static struct clksrc_clk clk_sclk_spi0 = {
>         .clk    = {
>                 .name           = "sclk_spi",
> @@ -506,13 +511,18 @@ static struct clk dummy_apb_pclk = {
>         .id             = -1,
>  };
>
> +static struct clk *clk_cdev[] = {
> +       &clk_i2s0,
> +};
> +
>  static struct clksrc_clk *clksrc_cdev[] = {
>         &clk_sclk_uclk,
>         &clk_sclk_spi0,
>         &clk_sclk_spi1,
>         &clk_sclk_mmc0,
>         &clk_sclk_mmc1,
> -       &clk_sclk_mmc2
> +       &clk_sclk_mmc2,
> +       &clk_audio_bus2,
>  };
>
>  static struct clk_lookup s5p6440_clk_lookup[] = {
> @@ -524,6 +534,8 @@ static struct clk_lookup s5p6440_clk_lookup[] = {
>         CLKDEV_INIT("s3c-sdhci.0", "mmc_busclk.2", &clk_sclk_mmc0.clk),
>         CLKDEV_INIT("s3c-sdhci.1", "mmc_busclk.2", &clk_sclk_mmc1.clk),
>         CLKDEV_INIT("s3c-sdhci.2", "mmc_busclk.2", &clk_sclk_mmc2.clk),
> +       CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &clk_i2s0),
> +       CLKDEV_INIT("samsung-i2s.0", "i2s_opclk1", &clk_audio_bus2.clk),
>  };
>
>  void __init_or_cpufreq s5p6440_setup_clocks(void)
> @@ -596,12 +608,17 @@ static struct clk *clks[] __initdata = {
>  void __init s5p6440_register_clocks(void)
>  {
>         int ptr;
> +       unsigned int cnt;
>
>         s3c24xx_register_clocks(clks, ARRAY_SIZE(clks));
>
>         for (ptr = 0; ptr < ARRAY_SIZE(sysclks); ptr++)
>                 s3c_register_clksrc(sysclks[ptr], 1);
>
> +       s3c24xx_register_clocks(clk_cdev, ARRAY_SIZE(clk_cdev));
> +       for (cnt = 0; cnt < ARRAY_SIZE(clk_cdev); cnt++)
> +               s3c_disable_clocks(clk_cdev[cnt], 1);
> +
>         s3c_register_clksrc(clksrcs, ARRAY_SIZE(clksrcs));
>         s3c_register_clocks(init_clocks, ARRAY_SIZE(init_clocks));
>         for (ptr = 0; ptr < ARRAY_SIZE(clksrc_cdev); ptr++)
> diff --git a/arch/arm/mach-s5p64x0/clock-s5p6450.c b/arch/arm/mach-s5p64x0/clock-s5p6450.c
> index f3e0ef3..154dea7 100644
> --- a/arch/arm/mach-s5p64x0/clock-s5p6450.c
> +++ b/arch/arm/mach-s5p64x0/clock-s5p6450.c
> @@ -247,24 +247,6 @@ static struct clk init_clocks_off[] = {
>                 .enable         = s5p64x0_pclk_ctrl,
>                 .ctrlbit        = (1 << 22),
>         }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.0",
> -               .parent         = &clk_pclk_low.clk,
> -               .enable         = s5p64x0_pclk_ctrl,
> -               .ctrlbit        = (1 << 26),
> -       }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.1",
> -               .parent         = &clk_pclk_low.clk,
> -               .enable         = s5p64x0_pclk_ctrl,
> -               .ctrlbit        = (1 << 15),
> -       }, {
> -               .name           = "iis",
> -               .devname        = "samsung-i2s.2",
> -               .parent         = &clk_pclk_low.clk,
> -               .enable         = s5p64x0_pclk_ctrl,
> -               .ctrlbit        = (1 << 16),
> -       }, {
>                 .name           = "i2c",
>                 .devname        = "s3c2440-i2c.1",
>                 .parent         = &clk_pclk_low.clk,
> @@ -402,6 +384,7 @@ static struct clksrc_sources clkset_sclk_audio0 = {
>  static struct clksrc_clk clk_sclk_audio0 = {
>         .clk            = {
>                 .name           = "audio-bus",
> +               .devname        = "samsung-i2s.0",
>                 .enable         = s5p64x0_sclk_ctrl,
>                 .ctrlbit        = (1 << 8),
>                 .parent         = &clk_dout_epll.clk,
> @@ -549,6 +532,36 @@ static struct clksrc_clk clk_sclk_spi1 = {
>         .reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 4, .size = 4 },
>  };
>
> +static struct clk clk_i2s0 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.0",
> +       .parent         = &clk_pclk_low.clk,
> +       .enable         = s5p64x0_pclk_ctrl,
> +       .ctrlbit        = (1 << 26),
> +};
> +
> +static struct clk clk_i2s1 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.1",
> +       .parent         = &clk_pclk_low.clk,
> +       .enable         = s5p64x0_pclk_ctrl,
> +       .ctrlbit        = (1 << 15),
> +};
> +
> +static struct clk clk_i2s2 = {
> +       .name           = "iis",
> +       .devname        = "samsung-i2s.2",
> +       .parent         = &clk_pclk_low.clk,
> +       .enable         = s5p64x0_pclk_ctrl,
> +       .ctrlbit        = (1 << 16),
> +};
> +
> +static struct clk *clk_cdev[] = {
> +       &clk_i2s0,
> +       &clk_i2s1,
> +       &clk_i2s2,
> +};
> +
>  static struct clksrc_clk *clksrc_cdev[] = {
>         &clk_sclk_uclk,
>         &clk_sclk_spi0,
> @@ -556,6 +569,7 @@ static struct clksrc_clk *clksrc_cdev[] = {
>         &clk_sclk_mmc0,
>         &clk_sclk_mmc1,
>         &clk_sclk_mmc2,
> +       &clk_sclk_audio0,
>  };
>
>  static struct clk_lookup s5p6450_clk_lookup[] = {
> @@ -567,6 +581,10 @@ static struct clk_lookup s5p6450_clk_lookup[] = {
>         CLKDEV_INIT("s3c-sdhci.0", "mmc_busclk.2", &clk_sclk_mmc0.clk),
>         CLKDEV_INIT("s3c-sdhci.1", "mmc_busclk.2", &clk_sclk_mmc1.clk),
>         CLKDEV_INIT("s3c-sdhci.2", "mmc_busclk.2", &clk_sclk_mmc2.clk),
> +       CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &clk_i2s0),
> +       CLKDEV_INIT("samsung-i2s.0", "i2s_opclk1", &clk_sclk_audio0.clk),
> +       CLKDEV_INIT("samsung-i2s.1", "i2s_opclk0", &clk_i2s1),
> +       CLKDEV_INIT("samsung-i2s.2", "i2s_opclk0", &clk_i2s2),
>  };
>
>  /* Clock initialization code */
> @@ -584,7 +602,6 @@ static struct clksrc_clk *sysclks[] = {
>         &clk_pclk,
>         &clk_hclk_low,
>         &clk_pclk_low,
> -       &clk_sclk_audio0,
>  };
>
>  static struct clk dummy_apb_pclk = {
> @@ -661,10 +678,16 @@ void __init_or_cpufreq s5p6450_setup_clocks(void)
>  void __init s5p6450_register_clocks(void)
>  {
>         int ptr;
> +       unsigned int cnt;
>
>         for (ptr = 0; ptr < ARRAY_SIZE(sysclks); ptr++)
>                 s3c_register_clksrc(sysclks[ptr], 1);
>
> +
> +       s3c24xx_register_clocks(clk_cdev, ARRAY_SIZE(clk_cdev));
> +       for (cnt = 0; cnt < ARRAY_SIZE(clk_cdev); cnt++)
> +               s3c_disable_clocks(clk_cdev[cnt], 1);
> +
>         s3c_register_clksrc(clksrcs, ARRAY_SIZE(clksrcs));
>         s3c_register_clocks(init_clocks, ARRAY_SIZE(init_clocks));
>         for (ptr = 0; ptr < ARRAY_SIZE(clksrc_cdev); ptr++)
> diff --git a/arch/arm/mach-s5p64x0/dev-audio.c b/arch/arm/mach-s5p64x0/dev-audio.c
> index a0d6edf..723d477 100644
> --- a/arch/arm/mach-s5p64x0/dev-audio.c
> +++ b/arch/arm/mach-s5p64x0/dev-audio.c
> @@ -19,11 +19,6 @@
>  #include <mach/dma.h>
>  #include <mach/irqs.h>
>
> -static const char *rclksrc[] = {
> -       [0] = "iis",
> -       [1] = "sclk_audio2",
> -};
> -
>  static int s5p6440_cfg_i2s(struct platform_device *pdev)
>  {
>         switch (pdev->id) {
> @@ -45,7 +40,6 @@ static struct s3c_audio_pdata s5p6440_i2s_pdata = {
>         .type = {
>                 .i2s = {
>                         .quirks = QUIRK_PRI_6CHAN,
> -                       .src_clk = rclksrc,
>                 },
>         },
>  };
> @@ -93,7 +87,6 @@ static struct s3c_audio_pdata s5p6450_i2s0_pdata = {
>         .type = {
>                 .i2s = {
>                         .quirks = QUIRK_PRI_6CHAN,
> -                       .src_clk = rclksrc,
>                 },
>         },
>  };
> @@ -110,11 +103,6 @@ struct platform_device s5p6450_device_iis0 = {
>
>  static struct s3c_audio_pdata s5p6450_i2s_pdata = {
>         .cfg_gpio = s5p6450_cfg_i2s,
> -       .type = {
> -               .i2s = {
> -                       .src_clk = rclksrc,
> -               },
> -       },
>  };
>
>  static struct resource s5p6450_i2s1_resource[] = {
> --
> 1.7.4.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH V3 4/5] ARM: S5PV210: Avoid passing the clks through platform data
  2012-11-06  4:48   ` Padmavathi Venna
@ 2012-11-23 11:17     ` Padma Venkat
  -1 siblings, 0 replies; 32+ messages in thread
From: Padma Venkat @ 2012-11-23 11:17 UTC (permalink / raw)
  To: Padmavathi Venna
  Cc: linux-arm-kernel, linux-samsung-soc, sbkim73, ben-linux,
	kgene.kim, olofj, Mark Brown

cc'ing Mark Brown.

On Tue, Nov 6, 2012 at 10:18 AM, Padmavathi Venna <padma.v@samsung.com> wrote:
> I2S controller has an internal mux for RCLK source clks. The list
> of source clk names were passed through platform data in non-dt case.
> The variable holding the list of RCLK source clk names is not
> required, as the list of clks need to be registered with clkdev
> using generic connection id. This is required as part of adding DT
> support for I2S controller driver.
>
> Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
> ---
>  arch/arm/mach-s5pv210/dev-audio.c |   16 ----------------
>  1 files changed, 0 insertions(+), 16 deletions(-)
>
> diff --git a/arch/arm/mach-s5pv210/dev-audio.c b/arch/arm/mach-s5pv210/dev-audio.c
> index 0a5480b..addfb16 100644
> --- a/arch/arm/mach-s5pv210/dev-audio.c
> +++ b/arch/arm/mach-s5pv210/dev-audio.c
> @@ -20,11 +20,6 @@
>  #include <mach/irqs.h>
>  #include <mach/regs-audss.h>
>
> -static const char *rclksrc[] = {
> -       [0] = "busclk",
> -       [1] = "i2sclk",
> -};
> -
>  static int s5pv210_cfg_i2s(struct platform_device *pdev)
>  {
>         /* configure GPIO for i2s port */
> @@ -52,7 +47,6 @@ static struct s3c_audio_pdata i2sv5_pdata = {
>                 .i2s = {
>                         .quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI
>                                          | QUIRK_NEED_RSTCLR,
> -                       .src_clk = rclksrc,
>                         .idma_addr = S5PV210_AUDSS_INT_MEM,
>                 },
>         },
> @@ -75,18 +69,8 @@ struct platform_device s5pv210_device_iis0 = {
>         },
>  };
>
> -static const char *rclksrc_v3[] = {
> -       [0] = "iis",
> -       [1] = "audio-bus",
> -};
> -
>  static struct s3c_audio_pdata i2sv3_pdata = {
>         .cfg_gpio = s5pv210_cfg_i2s,
> -       .type = {
> -               .i2s = {
> -                       .src_clk = rclksrc_v3,
> -               },
> -       },
>  };
>
>  static struct resource s5pv210_iis1_resource[] = {
> --
> 1.7.4.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH V3 4/5] ARM: S5PV210: Avoid passing the clks through platform data
@ 2012-11-23 11:17     ` Padma Venkat
  0 siblings, 0 replies; 32+ messages in thread
From: Padma Venkat @ 2012-11-23 11:17 UTC (permalink / raw)
  To: linux-arm-kernel

cc'ing Mark Brown.

On Tue, Nov 6, 2012 at 10:18 AM, Padmavathi Venna <padma.v@samsung.com> wrote:
> I2S controller has an internal mux for RCLK source clks. The list
> of source clk names were passed through platform data in non-dt case.
> The variable holding the list of RCLK source clk names is not
> required, as the list of clks need to be registered with clkdev
> using generic connection id. This is required as part of adding DT
> support for I2S controller driver.
>
> Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
> ---
>  arch/arm/mach-s5pv210/dev-audio.c |   16 ----------------
>  1 files changed, 0 insertions(+), 16 deletions(-)
>
> diff --git a/arch/arm/mach-s5pv210/dev-audio.c b/arch/arm/mach-s5pv210/dev-audio.c
> index 0a5480b..addfb16 100644
> --- a/arch/arm/mach-s5pv210/dev-audio.c
> +++ b/arch/arm/mach-s5pv210/dev-audio.c
> @@ -20,11 +20,6 @@
>  #include <mach/irqs.h>
>  #include <mach/regs-audss.h>
>
> -static const char *rclksrc[] = {
> -       [0] = "busclk",
> -       [1] = "i2sclk",
> -};
> -
>  static int s5pv210_cfg_i2s(struct platform_device *pdev)
>  {
>         /* configure GPIO for i2s port */
> @@ -52,7 +47,6 @@ static struct s3c_audio_pdata i2sv5_pdata = {
>                 .i2s = {
>                         .quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI
>                                          | QUIRK_NEED_RSTCLR,
> -                       .src_clk = rclksrc,
>                         .idma_addr = S5PV210_AUDSS_INT_MEM,
>                 },
>         },
> @@ -75,18 +69,8 @@ struct platform_device s5pv210_device_iis0 = {
>         },
>  };
>
> -static const char *rclksrc_v3[] = {
> -       [0] = "iis",
> -       [1] = "audio-bus",
> -};
> -
>  static struct s3c_audio_pdata i2sv3_pdata = {
>         .cfg_gpio = s5pv210_cfg_i2s,
> -       .type = {
> -               .i2s = {
> -                       .src_clk = rclksrc_v3,
> -               },
> -       },
>  };
>
>  static struct resource s5pv210_iis1_resource[] = {
> --
> 1.7.4.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH V3 5/5] ARM: Exynos: Avoid passing the clks through platform data
  2012-11-06  4:48   ` Padmavathi Venna
@ 2012-11-23 11:18     ` Padma Venkat
  -1 siblings, 0 replies; 32+ messages in thread
From: Padma Venkat @ 2012-11-23 11:18 UTC (permalink / raw)
  To: Padmavathi Venna
  Cc: linux-arm-kernel, linux-samsung-soc, sbkim73, ben-linux,
	kgene.kim, olofj, Mark Brown

cc'ing Mark Brown.

On Tue, Nov 6, 2012 at 10:18 AM, Padmavathi Venna <padma.v@samsung.com> wrote:
> I2S controller has an internal mux for RCLK source clks. The list
> of source clk names were passed through platform data in non-dt case.
> The variable holding the list of RCLK source clk names is not
> required, as the list of clks need to be registered with clkdev
> using generic connection id. This is required as part of adding DT
> support for I2S controller driver.
>
> Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
> ---
>  arch/arm/mach-exynos/dev-audio.c |   12 ------------
>  1 files changed, 0 insertions(+), 12 deletions(-)
>
> diff --git a/arch/arm/mach-exynos/dev-audio.c b/arch/arm/mach-exynos/dev-audio.c
> index ae321c7..e7d46fd 100644
> --- a/arch/arm/mach-exynos/dev-audio.c
> +++ b/arch/arm/mach-exynos/dev-audio.c
> @@ -23,11 +23,6 @@
>  #include <mach/irqs.h>
>  #include <mach/regs-audss.h>
>
> -static const char *rclksrc[] = {
> -       [0] = "busclk",
> -       [1] = "i2sclk",
> -};
> -
>  static int exynos4_cfg_i2s(struct platform_device *pdev)
>  {
>         /* configure GPIO for i2s port */
> @@ -55,7 +50,6 @@ static struct s3c_audio_pdata i2sv5_pdata = {
>                 .i2s = {
>                         .quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI
>                                          | QUIRK_NEED_RSTCLR,
> -                       .src_clk = rclksrc,
>                         .idma_addr = EXYNOS4_AUDSS_INT_MEM,
>                 },
>         },
> @@ -78,17 +72,11 @@ struct platform_device exynos4_device_i2s0 = {
>         },
>  };
>
> -static const char *rclksrc_v3[] = {
> -       [0] = "sclk_i2s",
> -       [1] = "no_such_clock",
> -};
> -
>  static struct s3c_audio_pdata i2sv3_pdata = {
>         .cfg_gpio = exynos4_cfg_i2s,
>         .type = {
>                 .i2s = {
>                         .quirks = QUIRK_NO_MUXPSR,
> -                       .src_clk = rclksrc_v3,
>                 },
>         },
>  };
> --
> 1.7.4.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH V3 5/5] ARM: Exynos: Avoid passing the clks through platform data
@ 2012-11-23 11:18     ` Padma Venkat
  0 siblings, 0 replies; 32+ messages in thread
From: Padma Venkat @ 2012-11-23 11:18 UTC (permalink / raw)
  To: linux-arm-kernel

cc'ing Mark Brown.

On Tue, Nov 6, 2012 at 10:18 AM, Padmavathi Venna <padma.v@samsung.com> wrote:
> I2S controller has an internal mux for RCLK source clks. The list
> of source clk names were passed through platform data in non-dt case.
> The variable holding the list of RCLK source clk names is not
> required, as the list of clks need to be registered with clkdev
> using generic connection id. This is required as part of adding DT
> support for I2S controller driver.
>
> Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
> ---
>  arch/arm/mach-exynos/dev-audio.c |   12 ------------
>  1 files changed, 0 insertions(+), 12 deletions(-)
>
> diff --git a/arch/arm/mach-exynos/dev-audio.c b/arch/arm/mach-exynos/dev-audio.c
> index ae321c7..e7d46fd 100644
> --- a/arch/arm/mach-exynos/dev-audio.c
> +++ b/arch/arm/mach-exynos/dev-audio.c
> @@ -23,11 +23,6 @@
>  #include <mach/irqs.h>
>  #include <mach/regs-audss.h>
>
> -static const char *rclksrc[] = {
> -       [0] = "busclk",
> -       [1] = "i2sclk",
> -};
> -
>  static int exynos4_cfg_i2s(struct platform_device *pdev)
>  {
>         /* configure GPIO for i2s port */
> @@ -55,7 +50,6 @@ static struct s3c_audio_pdata i2sv5_pdata = {
>                 .i2s = {
>                         .quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI
>                                          | QUIRK_NEED_RSTCLR,
> -                       .src_clk = rclksrc,
>                         .idma_addr = EXYNOS4_AUDSS_INT_MEM,
>                 },
>         },
> @@ -78,17 +72,11 @@ struct platform_device exynos4_device_i2s0 = {
>         },
>  };
>
> -static const char *rclksrc_v3[] = {
> -       [0] = "sclk_i2s",
> -       [1] = "no_such_clock",
> -};
> -
>  static struct s3c_audio_pdata i2sv3_pdata = {
>         .cfg_gpio = exynos4_cfg_i2s,
>         .type = {
>                 .i2s = {
>                         .quirks = QUIRK_NO_MUXPSR,
> -                       .src_clk = rclksrc_v3,
>                 },
>         },
>  };
> --
> 1.7.4.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH V3 0/5] Avoid passing clks through platform data
  2012-11-23 11:10   ` Padma Venkat
@ 2012-11-23 11:51     ` Mark Brown
  -1 siblings, 0 replies; 32+ messages in thread
From: Mark Brown @ 2012-11-23 11:51 UTC (permalink / raw)
  To: Padma Venkat
  Cc: Padmavathi Venna, linux-arm-kernel, linux-samsung-soc, sbkim73,
	ben-linux, kgene.kim, olofj

[-- Attachment #1: Type: text/plain, Size: 282 bytes --]

On Fri, Nov 23, 2012 at 04:40:59PM +0530, Padma Venkat wrote:
> cc'ing Mark Brown.
> 
> On Tue, Nov 6, 2012 at 10:18 AM, Padmavathi Venna <padma.v@samsung.com> wrote:
> > Changes since v2:
> >         - Rebased on 3.7-rc3

Please don't do this, send the patches non-quoted.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH V3 0/5] Avoid passing clks through platform data
@ 2012-11-23 11:51     ` Mark Brown
  0 siblings, 0 replies; 32+ messages in thread
From: Mark Brown @ 2012-11-23 11:51 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Nov 23, 2012 at 04:40:59PM +0530, Padma Venkat wrote:
> cc'ing Mark Brown.
> 
> On Tue, Nov 6, 2012 at 10:18 AM, Padmavathi Venna <padma.v@samsung.com> wrote:
> > Changes since v2:
> >         - Rebased on 3.7-rc3

Please don't do this, send the patches non-quoted.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121123/8b37ce11/attachment.sig>

^ permalink raw reply	[flat|nested] 32+ messages in thread

* RE: [PATCH V3 0/5] Avoid passing clks through platform data
  2012-11-23  9:27   ` Sangbeom Kim
@ 2012-11-24  2:10     ` Kukjin Kim
  -1 siblings, 0 replies; 32+ messages in thread
From: Kukjin Kim @ 2012-11-24  2:10 UTC (permalink / raw)
  To: 'Sangbeom Kim', 'Padmavathi Venna',
	linux-arm-kernel, linux-samsung-soc
  Cc: ben-linux, olofj

Sangbeom Kim wrote:
> 
> On Tue, Nov 6, 2012 at 1:49 PM, Padmavathi Venna wrote:
> 
> > I2S controller has an internal mux for RCLK source clks. The list
> > of source clk names were passed through platform data in non-dt case.
> > The variable holding the list of RCLK source clk names is not
> > required, as the list of clks need to be registered with clkdev
> > using generic connection id. This is required as part of adding DT
> > support for I2S controller driver.
> >
> > In the below series of patches, registered the existed clks with
> > clkdev using generic connection id and removed the variable which
> > holds those clk names. This is done for s3c64xx,s5pc100,s5p64x0,
> > s5pv210 and exynos4 series. But tested the sound card detection
> > only on smdk6410 board. On remaining all platforms it was just
> > build tested.
> >
> > Padmavathi Venna (5):
> >   ARM: S3C64XX: Add I2S clkdev support
> >   ARM: S5PC100: Add I2S clkdev support
> >   ARM: S5P64x0: Add I2S clkdev support
> >   ARM: S5PV210: Avoid passing the clks through platform data
> >   ARM: Exynos: Avoid passing the clks through platform data
> 
> As I2S driver is changed for support DT,
> These patch series should be applied.
> Adding ack all patches.
> 
> Acked-by: Sangbeom Kim <sbkim73@samsung.com>
> 
Looks OK to me, will apply, thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH V3 0/5] Avoid passing clks through platform data
@ 2012-11-24  2:10     ` Kukjin Kim
  0 siblings, 0 replies; 32+ messages in thread
From: Kukjin Kim @ 2012-11-24  2:10 UTC (permalink / raw)
  To: linux-arm-kernel

Sangbeom Kim wrote:
> 
> On Tue, Nov 6, 2012 at 1:49 PM, Padmavathi Venna wrote:
> 
> > I2S controller has an internal mux for RCLK source clks. The list
> > of source clk names were passed through platform data in non-dt case.
> > The variable holding the list of RCLK source clk names is not
> > required, as the list of clks need to be registered with clkdev
> > using generic connection id. This is required as part of adding DT
> > support for I2S controller driver.
> >
> > In the below series of patches, registered the existed clks with
> > clkdev using generic connection id and removed the variable which
> > holds those clk names. This is done for s3c64xx,s5pc100,s5p64x0,
> > s5pv210 and exynos4 series. But tested the sound card detection
> > only on smdk6410 board. On remaining all platforms it was just
> > build tested.
> >
> > Padmavathi Venna (5):
> >   ARM: S3C64XX: Add I2S clkdev support
> >   ARM: S5PC100: Add I2S clkdev support
> >   ARM: S5P64x0: Add I2S clkdev support
> >   ARM: S5PV210: Avoid passing the clks through platform data
> >   ARM: Exynos: Avoid passing the clks through platform data
> 
> As I2S driver is changed for support DT,
> These patch series should be applied.
> Adding ack all patches.
> 
> Acked-by: Sangbeom Kim <sbkim73@samsung.com>
> 
Looks OK to me, will apply, thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* RE: [PATCH V3 0/5] Avoid passing clks through platform data
  2012-11-23 11:51     ` Mark Brown
@ 2012-11-24  2:10       ` Kukjin Kim
  -1 siblings, 0 replies; 32+ messages in thread
From: Kukjin Kim @ 2012-11-24  2:10 UTC (permalink / raw)
  To: 'Mark Brown', 'Padma Venkat'
  Cc: 'Padmavathi Venna',
	linux-arm-kernel, linux-samsung-soc, sbkim73, ben-linux, olofj

Mark Brown wrote:
> 
> On Fri, Nov 23, 2012 at 04:40:59PM +0530, Padma Venkat wrote:
> > cc'ing Mark Brown.
> >
> > On Tue, Nov 6, 2012 at 10:18 AM, Padmavathi Venna <padma.v@samsung.com>
> wrote:
> > > Changes since v2:
> > >         - Rebased on 3.7-rc3
> 
> Please don't do this, send the patches non-quoted.

And it can make a confusion if there is no any explanation...

Note, I applied following arch/arm/ Samsung stuff for audio with Sangbeom's
ack:-)

Padmavathi Venna (9):
      ARM: EXYNOS: Add clocks for EXYNOS5 Audio Subsystem
      ARM: dts: Add nodes for i2s controllers for Samsung EXYNOS5 platforms
      ARM: EXYNOS: Enable platform support for I2S controllers
      ARM: S3C64XX: Add I2S clkdev support
      ARM: S5PC100: Add I2S clkdev support
      ARM: S5P64X0: Add I2S clkdev support
      ARM: S5PV210: Avoid passing the clks through platform data
      ARM: EXYNOS: Avoid passing the clks through platform data
      ARM: SAMSUNG: Delete the unnecessary variable

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH V3 0/5] Avoid passing clks through platform data
@ 2012-11-24  2:10       ` Kukjin Kim
  0 siblings, 0 replies; 32+ messages in thread
From: Kukjin Kim @ 2012-11-24  2:10 UTC (permalink / raw)
  To: linux-arm-kernel

Mark Brown wrote:
> 
> On Fri, Nov 23, 2012 at 04:40:59PM +0530, Padma Venkat wrote:
> > cc'ing Mark Brown.
> >
> > On Tue, Nov 6, 2012 at 10:18 AM, Padmavathi Venna <padma.v@samsung.com>
> wrote:
> > > Changes since v2:
> > >         - Rebased on 3.7-rc3
> 
> Please don't do this, send the patches non-quoted.

And it can make a confusion if there is no any explanation...

Note, I applied following arch/arm/ Samsung stuff for audio with Sangbeom's
ack:-)

Padmavathi Venna (9):
      ARM: EXYNOS: Add clocks for EXYNOS5 Audio Subsystem
      ARM: dts: Add nodes for i2s controllers for Samsung EXYNOS5 platforms
      ARM: EXYNOS: Enable platform support for I2S controllers
      ARM: S3C64XX: Add I2S clkdev support
      ARM: S5PC100: Add I2S clkdev support
      ARM: S5P64X0: Add I2S clkdev support
      ARM: S5PV210: Avoid passing the clks through platform data
      ARM: EXYNOS: Avoid passing the clks through platform data
      ARM: SAMSUNG: Delete the unnecessary variable

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2012-11-24  2:10 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-06  4:48 [PATCH V3 0/5] Avoid passing clks through platform data Padmavathi Venna
2012-11-06  4:48 ` Padmavathi Venna
2012-11-06  4:48 ` [PATCH V3 1/5] ARM: S3C64XX: Add I2S clkdev support Padmavathi Venna
2012-11-06  4:48   ` Padmavathi Venna
2012-11-23 11:15   ` Padma Venkat
2012-11-23 11:15     ` Padma Venkat
2012-11-06  4:48 ` [PATCH V3 2/5] ARM: S5PC100: " Padmavathi Venna
2012-11-06  4:48   ` Padmavathi Venna
2012-11-23 11:15   ` Padma Venkat
2012-11-23 11:15     ` Padma Venkat
2012-11-06  4:48 ` [PATCH V3 3/5] ARM: S5P64x0: " Padmavathi Venna
2012-11-06  4:48   ` Padmavathi Venna
2012-11-23 11:16   ` Padma Venkat
2012-11-23 11:16     ` Padma Venkat
2012-11-06  4:48 ` [PATCH V3 4/5] ARM: S5PV210: Avoid passing the clks through platform data Padmavathi Venna
2012-11-06  4:48   ` Padmavathi Venna
2012-11-23 11:17   ` Padma Venkat
2012-11-23 11:17     ` Padma Venkat
2012-11-06  4:48 ` [PATCH V3 5/5] ARM: Exynos: " Padmavathi Venna
2012-11-06  4:48   ` Padmavathi Venna
2012-11-23 11:18   ` Padma Venkat
2012-11-23 11:18     ` Padma Venkat
2012-11-23  9:27 ` [PATCH V3 0/5] Avoid passing " Sangbeom Kim
2012-11-23  9:27   ` Sangbeom Kim
2012-11-24  2:10   ` Kukjin Kim
2012-11-24  2:10     ` Kukjin Kim
2012-11-23 11:10 ` Padma Venkat
2012-11-23 11:10   ` Padma Venkat
2012-11-23 11:51   ` Mark Brown
2012-11-23 11:51     ` Mark Brown
2012-11-24  2:10     ` Kukjin Kim
2012-11-24  2:10       ` Kukjin Kim

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.