diff options
author | Vinod G <vinodg@nvidia.com> | 2011-02-01 14:51:16 -0800 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-04-26 15:50:55 -0700 |
commit | f631b78daf0d6ef30c45d9ccfa082bc3bdbe502f (patch) | |
tree | b2ec2b48315c0c253c80ce564a3797b96134fa21 /arch/arm/mach-tegra/devices.c | |
parent | c7b588686d9c54a3a11cc0157eebff287b68ba41 (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.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 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] = { |