diff options
author | Vinod G <vinodg@nvidia.com> | 2011-02-01 14:51:16 -0800 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:42:19 -0800 |
commit | f8343c0a56e5f62a4e9275e0c17780a0cd894ac8 (patch) | |
tree | 0ebb91515b88ab7289f926d63e644a270165822b /arch/arm/mach-tegra/devices.c | |
parent | 8b5ce66afe60b25cf770546de43b7e76a334f3bd (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.c | 61 |
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] = { |