sound: tegra: ahub: add clock settings for T124
Bryan Wu [Wed, 16 Apr 2014 22:35:20 +0000 (15:35 -0700)]
Several additional audio clocks need to be initialized before
accessing any audio register, otherwise system will just hard hang.

Probably fastboot bootloader initialize these clocks, which actually
should be handled in driver. We found this issue for U-Boot bringup.

Bug 1482099

Change-Id: Ia7a7c0115bc92a4e98e6f337cf8efc7b2f7a72a0
Signed-off-by: Bryan Wu <pengw@nvidia.com>
Signed-off-by: Prabhu Kuttiyam <pkuttiyam@nvidia.com>
Reviewed-on: http://git-master/r/408429
(cherry picked from commit 2929886db14e9d2ac0e75b282126397970fbf9c9)
Reviewed-on: http://git-master/r/427929
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Winnie Hsu <whsu@nvidia.com>
Reviewed-by: Aleksandr Frid <afrid@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Karan Jhavar <kjhavar@nvidia.com>

arch/arm/mach-tegra/tegra12_clocks.c
sound/soc/tegra/tegra30_ahub.c

index bfd2cc5..b96c2a9 100644 (file)
@@ -8670,6 +8670,16 @@ struct clk_duplicate tegra_clk_duplicates[] = {
        CLK_DUPLICATE("dam2", NULL, "dam2"),
        CLK_DUPLICATE("spdif_in", NULL, "spdif_in"),
        CLK_DUPLICATE("mclk", NULL, "default_mclk"),
+       CLK_DUPLICATE("amx", NULL, "amx"),
+       CLK_DUPLICATE("amx1", NULL, "amx1"),
+       CLK_DUPLICATE("adx", NULL, "adx"),
+       CLK_DUPLICATE("adx1", NULL, "adx1"),
+       CLK_DUPLICATE("afc0", NULL, "afc0"),
+       CLK_DUPLICATE("afc1", NULL, "afc1"),
+       CLK_DUPLICATE("afc2", NULL, "afc2"),
+       CLK_DUPLICATE("afc3", NULL, "afc3"),
+       CLK_DUPLICATE("afc4", NULL, "afc4"),
+       CLK_DUPLICATE("afc5", NULL, "afc5"),
        CLK_DUPLICATE("amx", "tegra124-amx.0", NULL),
        CLK_DUPLICATE("amx1", "tegra124-amx.1", NULL),
        CLK_DUPLICATE("adx", "tegra124-adx.0", NULL),
index dadacb6..98995bc 100644 (file)
@@ -618,6 +618,20 @@ static const char * const configlink_clocks[] = {
 #ifndef CONFIG_ARCH_TEGRA_14x_SOC
        "spdif_in",
 #endif
+#if defined(CONFIG_ARCH_TEGRA_11x_SOC) || defined(CONFIG_ARCH_TEGRA_12x_SOC)
+       "amx",
+       "adx",
+#endif
+#ifdef CONFIG_ARCH_TEGRA_12x_SOC
+       "amx1",
+       "adx1",
+       "afc0",
+       "afc1",
+       "afc2",
+       "afc3",
+       "afc4",
+       "afc5",
+#endif
 };
 
 struct of_dev_auxdata ahub_auxdata[] = {