From f2519724748766b0daef5d380a3a5414b77a437b Mon Sep 17 00:00:00 2001 From: Nitin Pai Date: Tue, 10 Jul 2012 19:01:34 +0530 Subject: arm: tegra: p1852: Fixes for I2S master mode Change the Drive strength of DAP1 for I2S to operate in both master and slave mode. Changed the Pull Up/Down mechanism for I2S4 to operate in master/slave mode. Bug 1009249 Signed-off-by: Nitin Pai Reviewed-on: http://git-master/r/114587 (cherry picked from commit 29ec5dfb81b823880f393bece5daf5396ef77629) Change-Id: I24a252370b993150a553c9f81fb44e6d8f86589a Reviewed-on: http://git-master/r/118251 Reviewed-by: Simone Willett Tested-by: Simone Willett --- arch/arm/mach-tegra/board-p1852.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'arch/arm/mach-tegra/board-p1852.c') diff --git a/arch/arm/mach-tegra/board-p1852.c b/arch/arm/mach-tegra/board-p1852.c index b0a593f95121..e9cf1440b01d 100644 --- a/arch/arm/mach-tegra/board-p1852.c +++ b/arch/arm/mach-tegra/board-p1852.c @@ -198,7 +198,6 @@ static void __init p1852_uart_init(void) platform_add_devices(p1852_uart_devices, ARRAY_SIZE(p1852_uart_devices)); } - #if defined(CONFIG_TEGRA_P1852_TDM) static struct tegra_p1852_platform_data p1852_audio_tdm_pdata = { .codec_info[0] = { @@ -241,6 +240,7 @@ static struct tegra_p1852_platform_data p1852_audio_i2s_pdata = { .name = "tegra-i2s-1", .pcm_driver = "tegra-pcm-audio", .i2s_format = format_i2s, + /* Defines whether the Audio codec chip is master or slave */ .master = 1, }, .codec_info[1] = { @@ -250,6 +250,7 @@ static struct tegra_p1852_platform_data p1852_audio_i2s_pdata = { .name = "tegra-i2s-2", .pcm_driver = "tegra-pcm-audio", .i2s_format = format_i2s, + /* Defines whether the Audio codec chip is master or slave */ .master = 0, }, }; @@ -277,6 +278,8 @@ static struct platform_device tegra_snd_p1852 = { static void p1852_i2s_audio_init(void) { + struct tegra_p1852_platform_data *pdata; + platform_device_register(&tegra_pcm_device); platform_device_register(&tegra_tdm_pcm_device); platform_device_register(&generic_codec_1); @@ -285,6 +288,11 @@ static void p1852_i2s_audio_init(void) platform_device_register(&tegra_i2s_device4); platform_device_register(&tegra_ahub_device); platform_device_register(&tegra_snd_p1852); + + /* Change pinmux of I2S4 for master mode */ + pdata = tegra_snd_p1852.dev.platform_data; + if (!pdata->codec_info[1].master) + p1852_pinmux_set_i2s4_master(); } -- cgit v1.2.3