Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c6d46678 authored by Mark Brown's avatar Mark Brown
Browse files

Merge branch 'tegra' into for-2.6.40

parents d5381e42 61a6d076
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@
#include <asm/mach/time.h>
#include <asm/setup.h>

#include <mach/harmony_audio.h>
#include <mach/tegra_wm8903_pdata.h>
#include <mach/iomap.h>
#include <mach/irqs.h>
#include <mach/sdhci.h>
@@ -67,15 +67,16 @@ static struct platform_device debug_uart = {
	},
};

static struct harmony_audio_platform_data harmony_audio_pdata = {
static struct tegra_wm8903_platform_data harmony_audio_pdata = {
	.gpio_spkr_en		= TEGRA_GPIO_SPKR_EN,
	.gpio_hp_det		= TEGRA_GPIO_HP_DET,
	.gpio_hp_mute		= -1,
	.gpio_int_mic_en	= TEGRA_GPIO_INT_MIC_EN,
	.gpio_ext_mic_en	= TEGRA_GPIO_EXT_MIC_EN,
};

static struct platform_device harmony_audio_device = {
	.name	= "tegra-snd-harmony",
	.name	= "tegra-snd-wm8903",
	.id	= 0,
	.dev	= {
		.platform_data  = &harmony_audio_pdata,
+3 −2
Original line number Diff line number Diff line
/*
 * arch/arm/mach-tegra/include/mach/harmony_audio.h
 * arch/arm/mach-tegra/include/mach/tegra_wm8903_pdata.h
 *
 * Copyright 2011 NVIDIA, Inc.
 *
@@ -14,9 +14,10 @@
 *
 */

struct harmony_audio_platform_data {
struct tegra_wm8903_platform_data {
	int gpio_spkr_en;
	int gpio_hp_det;
	int gpio_hp_mute;
	int gpio_int_mic_en;
	int gpio_ext_mic_en;
};
+7 −7
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@
#include <linux/slab.h>
#include <linux/gpio.h>

#include <mach/harmony_audio.h>
#include <mach/tegra_wm8903_pdata.h>

#include <sound/core.h>
#include <sound/jack.h>
@@ -50,7 +50,7 @@
#include "tegra_pcm.h"
#include "tegra_asoc_utils.h"

#define DRV_NAME "tegra-snd-harmony"
#define DRV_NAME "tegra-snd-wm8903"

#define GPIO_SPKR_EN    BIT(0)
#define GPIO_INT_MIC_EN BIT(1)
@@ -58,7 +58,7 @@

struct tegra_harmony {
	struct tegra_asoc_utils_data util_data;
	struct harmony_audio_platform_data *pdata;
	struct tegra_wm8903_platform_data *pdata;
	int gpio_requested;
};

@@ -163,7 +163,7 @@ static int harmony_event_int_spk(struct snd_soc_dapm_widget *w,
	struct snd_soc_codec *codec = w->codec;
	struct snd_soc_card *card = codec->card;
	struct tegra_harmony *harmony = snd_soc_card_get_drvdata(card);
	struct harmony_audio_platform_data *pdata = harmony->pdata;
	struct tegra_wm8903_platform_data *pdata = harmony->pdata;

	gpio_set_value_cansleep(pdata->gpio_spkr_en,
				SND_SOC_DAPM_EVENT_ON(event));
@@ -198,7 +198,7 @@ static int harmony_asoc_init(struct snd_soc_pcm_runtime *rtd)
	struct snd_soc_dapm_context *dapm = &codec->dapm;
	struct snd_soc_card *card = codec->card;
	struct tegra_harmony *harmony = snd_soc_card_get_drvdata(card);
	struct harmony_audio_platform_data *pdata = harmony->pdata;
	struct tegra_wm8903_platform_data *pdata = harmony->pdata;
	int ret;

	ret = gpio_request(pdata->gpio_spkr_en, "spkr_en");
@@ -291,7 +291,7 @@ static __devinit int tegra_snd_harmony_probe(struct platform_device *pdev)
{
	struct snd_soc_card *card = &snd_soc_harmony;
	struct tegra_harmony *harmony;
	struct harmony_audio_platform_data *pdata;
	struct tegra_wm8903_platform_data *pdata;
	int ret;

	if (!machine_is_harmony()) {
@@ -344,7 +344,7 @@ static int __devexit tegra_snd_harmony_remove(struct platform_device *pdev)
{
	struct snd_soc_card *card = platform_get_drvdata(pdev);
	struct tegra_harmony *harmony = snd_soc_card_get_drvdata(card);
	struct harmony_audio_platform_data *pdata = harmony->pdata;
	struct tegra_wm8903_platform_data *pdata = harmony->pdata;

	snd_soc_unregister_card(card);