[alsa-devel] [GIT PULL] ASoC: Samsung: Updates for v3.8
Hi Mark,
It's Samsung audio updates which are mainly device tree supports. We had fully tested on SMDK5250.
Thanks, Sangbeom.
---------
The following changes since commit 208229ecb95b58a627d2f01fc4e2a1652c27f4d9:
ASoC: bells: Up to 512fs (2012-11-16 17:42:40 -0800)
(sound.git topic/samsung)
are available in the git repository at:
git://github.com/cornus/linux-samsung.git for-broonie
---------------------------------------------------------------- Padmavathi Venna (2): ASoC: SAMSUNG: Add DT support for i2s ASoC: Samsung: Register the audio dma platform device Sachin Kamat (1): ASoC: Samsung-dma: Fix potential NULL pointer dereference Sangsu Park (1): ASoC: Samsung: Update Kconfig for I2S,SPDIF and PCM audio
.../devicetree/bindings/sound/samsung-i2s.txt | 69 ++++++ sound/soc/samsung/Kconfig | 6 +- sound/soc/samsung/dma.c | 44 ++++- sound/soc/samsung/dma.h | 1 + sound/soc/samsung/i2s.c | 234 ++++++++++++++++---- 5 files changed, 298 insertions(+), 56 deletions(-)
On Fri, Nov 23, 2012 at 06:27:19PM +0900, Sangbeom Kim wrote:
Hi Mark,
It's Samsung audio updates which are mainly device tree supports. We had fully tested on SMDK5250.
As we discussed offline please do post the patches, I do want to review code before I pull it. As far as I can tell none of these patches have ever been sent to me.
Hi On Tue, Nov 23, 2012 at 7:52 PM, Mark Brown wrote:
As we discussed offline please do post the patches, I do want to review code before I pull it. As far as I can tell none of these patches have ever been sent to me.
She had already posted 3times in alsa mainling list.
http://mailman.alsa-project.org/pipermail/alsa-devel/2012-November/057347.ht... http://mailman.alsa-project.org/pipermail/alsa-devel/2012-September/055871.h... http://mailman.alsa-project.org/pipermail/alsa-devel/2012-August/053903.html
But she missed including you.
Padma, Please include Mark Brown in the next patches.
Thanks, Sangbeom.
On Fri, Nov 23, 2012 at 06:27:19PM +0900, Sangbeom Kim wrote:
Padmavathi Venna (2): ASoC: SAMSUNG: Add DT support for i2s
There's some problems with this binding. The main one is the gpios property the format of which isn't specified at all. The requirement for an alias is also very odd, where does that come from?
Some of the code also looks very peculiar, like the fact that it's generating a clock name i2s_opclk%d rather than hard coding the clock, the physical clock would normally be resolved based on the struct device.
ASoC: Samsung: Register the audio dma platform device
This isn't the normal approach here, the normal approach is that the I2S device instantiates the DMA device it needs - see the Tegra or i.MX drivers for examples. I'm also concerned that this is going to collide with the existing static registrations that non-DT boards do.
Sachin Kamat (1): ASoC: Samsung-dma: Fix potential NULL pointer dereference
This should be sent separately as a bug fix patch.
Hi, Thanks for review.
There's some problems with this binding. The main one is the gpios property the format of which isn't specified at all.
All of above gpio property is i2s. That is, + gpios = <&gpz 0 2 0 0>, -> SCLK + <&gpz 1 2 0 0>, -> CDCLK + <&gpz 2 2 0 0>, -> LRCK + <&gpz 3 2 0 0>, -> SDI + <&gpz 4 2 0 0>, -> SDO[0] + <&gpz 5 2 0 0>, -> SDO[1] + <&gpz 6 2 0 0>; -> SDO[2]
Do you want like a below one? +sclk-gpios = <&gpz 0 2 0 0>, +cdclk-gpios = <&gpz 1 2 0 0>, ...
The requirement for an alias is also very odd, where does that come from?
I don't know that Which one is odd. Please let me know.
Some of the code also looks very peculiar, like the fact that it's generating a clock name i2s_opclk%d rather than hard coding the clock, the physical clock would normally be resolved based on the struct device.
This is to handle all of Samsung SOCs i2c clock mux. Please look at below clk_lookup table
In case of 6410, clk_lookup + 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),
In case of exynos5, clk_lookup + CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &exynos5_clk_sclk_i2s.clk), + CLKDEV_INIT("samsung-i2s.0", "i2s_opclk1", &exynos5_clk_i2s_bus.clk),
We try to handle clock source of i2s by only i2s_opclk0 and i2s_opclk1. Each SOCs have different clock source. Is this wrong approach?
Thanks, Sangbeom.
On Sat, Nov 24, 2012 at 11:13:28AM +0900, Sangbeom Kim wrote:
There's some problems with this binding. The main one is the gpios property the format of which isn't specified at all.
All of above gpio property is i2s. That is,
- gpios = <&gpz 0 2 0 0>, -> SCLK
<&gpz 1 2 0 0>, -> CDCLK
<&gpz 2 2 0 0>, -> LRCK
<&gpz 3 2 0 0>, -> SDI
<&gpz 4 2 0 0>, -> SDO[0]
<&gpz 5 2 0 0>, -> SDO[1]
<&gpz 6 2 0 0>; -> SDO[2]
Do you want like a below one? +sclk-gpios = <&gpz 0 2 0 0>, +cdclk-gpios = <&gpz 1 2 0 0>, ...
That would be nice but what I was really looking for was some indiciation in the binding document as to what all this stuff means - it should really say what gpz is (though I can figure that out) and it definitely needs to say what the four numbers are.
The requirement for an alias is also very odd, where does that come from?
I don't know that Which one is odd. Please let me know.
Having them at all is odd - it's not something other DT bindings have needed and there was nothing saying what it was for.
Some of the code also looks very peculiar, like the fact that it's generating a clock name i2s_opclk%d rather than hard coding the clock, the physical clock would normally be resolved based on the struct device.
This is to handle all of Samsung SOCs i2c clock mux. Please look at below clk_lookup table
In case of 6410, clk_lookup
- 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),
In case of exynos5, clk_lookup
- CLKDEV_INIT("samsung-i2s.0", "i2s_opclk0", &exynos5_clk_sclk_i2s.clk),
- CLKDEV_INIT("samsung-i2s.0", "i2s_opclk1", &exynos5_clk_i2s_bus.clk),
We try to handle clock source of i2s by only i2s_opclk0 and i2s_opclk1. Each SOCs have different clock source. Is this wrong approach?
That makes sense but why is the driver not just requesting by name rather than having code to generate the names, and why is this mixed in with the patch adding DT support?
participants (2)
-
Mark Brown
-
Sangbeom Kim