summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/devices.c
diff options
context:
space:
mode:
authorVinod G <vinodg@nvidia.com>2011-02-01 14:51:16 -0800
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:42:19 -0800
commitf8343c0a56e5f62a4e9275e0c17780a0cd894ac8 (patch)
tree0ebb91515b88ab7289f926d63e644a270165822b /arch/arm/mach-tegra/devices.c
parent8b5ce66afe60b25cf770546de43b7e76a334f3bd (diff)
arm: tegra: Fix spdif driver issues for T30.
Bug Id 786814 Bug Id 787110 Spdif is exposed as a device. Apbif channel 3 is fixed for spdif now. Original-Change-Id: I1410fac521c7880f088e3274d3d660e20dd78223 Original-Change-Id: I63a59834c130207655544abf35424eb6ea4943be Original-Change-Id: Ib96cd03bf30a537aaac9e11eeb9f0178c4218672 Reviewed-on: http://git-master/r/17944 Reviewed-by: Vinod Gopalakrishnakurup <vinodg@nvidia.com> Tested-by: Vinod Gopalakrishnakurup <vinodg@nvidia.com> Reviewed-by: Scott Peterson <speterson@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Original-Change-Id: I2ab35521f4616eaec3c98e8c50e5f9b9f2f0ba93 Rebase-Id: R85fba25008a7a39b7f568726d9402cafbf97b6ef
Diffstat (limited to 'arch/arm/mach-tegra/devices.c')
-rw-r--r--arch/arm/mach-tegra/devices.c61
1 files changed, 39 insertions, 22 deletions
diff --git a/arch/arm/mach-tegra/devices.c b/arch/arm/mach-tegra/devices.c
index 2ed27a8017c9..0faf5b6748a9 100644
--- a/arch/arm/mach-tegra/devices.c
+++ b/arch/arm/mach-tegra/devices.c
@@ -654,21 +654,6 @@ struct platform_device tegra_i2s_device2 = {
.num_resources = ARRAY_SIZE(i2s_resource2),
};
-static struct resource tegra_das_resources[] = {
- [0] = {
- .start = TEGRA_APB_MISC_DAS_BASE,
- .end = TEGRA_APB_MISC_DAS_BASE + TEGRA_APB_MISC_DAS_SIZE - 1,
- .flags = IORESOURCE_MEM,
- },
-};
-
-struct platform_device tegra_das_device = {
- .name = "tegra-das",
- .id = -1,
- .num_resources = ARRAY_SIZE(tegra_das_resources),
- .resource = tegra_das_resources,
-};
-
struct platform_device tegra_pcm_device = {
.name = "tegra-pcm-audio",
.id = -1,
@@ -708,8 +693,30 @@ struct platform_device tegra_audio_device = {
.resource = audio_resource,
.num_resources = ARRAY_SIZE(audio_resource),
};
+
+/* FIXME : Temporarly adding - find the right solution */
+
+static struct resource spdif_resource[] = {
+ [0] = {
+ .start = TEGRA_DMA_REQ_SEL_APBIF_CH3,
+ .end = TEGRA_DMA_REQ_SEL_APBIF_CH3,
+ .flags = IORESOURCE_DMA
+ },
+ [1] = {
+ .start = TEGRA_SPDIF_BASE,
+ .end = TEGRA_SPDIF_BASE + TEGRA_SPDIF_SIZE - 1,
+ .flags = IORESOURCE_MEM
+ }
+};
#endif
+struct platform_device tegra_spdif_device = {
+ .name = "spdif_out",
+ .id = -1,
+ .resource = spdif_resource,
+ .num_resources = ARRAY_SIZE(spdif_resource),
+};
+
#if defined(CONFIG_SND_HDA_TEGRA)
static u64 tegra_hda_dma_mask = DMA_BIT_MASK(32);
@@ -810,13 +817,6 @@ struct platform_device tegra_otg_device = {
.num_resources = ARRAY_SIZE(tegra_otg_resources),
};
-struct platform_device tegra_spdif_device = {
- .name = "spdif_out",
- .id = -1,
- .resource = spdif_resource,
- .num_resources = ARRAY_SIZE(spdif_resource),
-};
-
#ifdef CONFIG_SATA_AHCI_TEGRA
static u64 tegra_sata_dma_mask = DMA_BIT_MASK(32);
@@ -853,6 +853,23 @@ struct platform_device tegra_sata_device = {
};
#endif
+#ifdef CONFIG_ARCH_TEGRA_2x_SOC
+static struct resource das_resource[] = {
+ [0] = {
+ .start = TEGRA_APB_MISC_BASE,
+ .end = TEGRA_APB_MISC_BASE + TEGRA_APB_MISC_SIZE - 1,
+ .flags = IORESOURCE_MEM
+ }
+};
+
+struct platform_device tegra_das_device = {
+ .name = "tegra_das",
+ .id = -1,
+ .resource = das_resource,
+ .num_resources = ARRAY_SIZE(das_resource),
+};
+#endif
+
#if defined(CONFIG_TEGRA_IOVMM_GART)
static struct resource tegra_gart_resources[] = {
[0] = {