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-04-26 15:50:55 -0700
commitf631b78daf0d6ef30c45d9ccfa082bc3bdbe502f (patch)
treeb2ec2b48315c0c253c80ce564a3797b96134fa21 /arch/arm/mach-tegra/devices.c
parentc7b588686d9c54a3a11cc0157eebff287b68ba41 (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> Change-Id: I2ab35521f4616eaec3c98e8c50e5f9b9f2f0ba93
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 8f6cc75d0524..51797081b5b7 100644
--- a/arch/arm/mach-tegra/devices.c
+++ b/arch/arm/mach-tegra/devices.c
@@ -554,21 +554,6 @@ static struct resource spdif_resource[] = {
}
};
-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),
-};
-
#elif defined(CONFIG_ARCH_TEGRA_3x_SOC)
static struct resource audio_resource[] = {
[0] = {
@@ -584,8 +569,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);
@@ -614,13 +621,6 @@ struct platform_device tegra_hda_device = {
};
#endif
-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);
@@ -657,6 +657,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] = {