Пример #1
0
/*
 * This is an example machine initialisation for a wm8580 connected to a
 * smdk2450. It is missing logic to detect hp/mic insertions and logic
 * to re-route the audio in such an event.
 */
static int smdk_wm8580_init(struct snd_soc_codec *codec)
{
	int i, err;

	/* set endpoints to default mode */
	set_scenario_endpoints(codec, SMDK_AUDIO_OFF);

	/* Add smdk2450 specific widgets */
	for (i = 0; i < ARRAY_SIZE(wm8580_dapm_widgets); i++)
		snd_soc_dapm_new_control(codec, &wm8580_dapm_widgets[i]);

	/* add smdk2450 specific controls */
	for (i = 0; i < ARRAY_SIZE(wm8580_smdk_controls); i++) {
		err = snd_ctl_add(codec->card,
				snd_soc_cnew(&wm8580_smdk_controls[i],
				codec, NULL));
		if (err < 0)
			return err;
	}

	/* set up smdk2450 specific audio path audio_mapnects */
	for (i = 0; audio_map[i][0] != NULL; i++) {
		snd_soc_dapm_connect_input(codec, audio_map[i][0],
			audio_map[i][1], audio_map[i][2]);
	}

	/* always connected */
	snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 1);
	snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
	snd_soc_dapm_set_endpoint(codec, "Line In Jack", 1);

	snd_soc_dapm_sync_endpoints(codec);
	return 0;
}
Пример #2
0
static int s5p6440_set_scenario(struct snd_kcontrol *kcontrol,
	struct snd_ctl_elem_value *ucontrol)
{
	struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);

	if (s5p6440_scenario == ucontrol->value.integer.value[0])
		return 0;

	set_scenario_endpoints(codec, ucontrol->value.integer.value[0]);
	return 1;
}
Пример #3
0
static int smdk6400_set_scenario(struct snd_kcontrol *kcontrol,
								 struct snd_ctl_elem_value *ucontrol)
{
	struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);

	__D("\n");
	
	if (smdk6400_scenario == ucontrol->value.integer.value[0])
		return 0;

	smdk6400_scenario = ucontrol->value.integer.value[0];
	set_scenario_endpoints(codec, smdk6400_scenario);
	return 1;
}
Пример #4
0
/*
 * This is an example machine initialisation for a adau1761 connected to a
 * s5p6440. It is missing logic to detect hp/mic insertions and logic
 * to re-route the audio in such an event.
 */
static int s5p6440_adau1761_init(struct snd_soc_codec *codec)
{
	int i, err;

	/* Add s5p6440 specific widgets */
	snd_soc_dapm_new_controls(codec, adau1761_dapm_widgets, 
		ARRAY_SIZE(adau1761_dapm_widgets));

	/* add s5p6440 specific controls */
	for (i = 0; i < ARRAY_SIZE(adau1761_s5p6440_controls); i++) {
		err = snd_ctl_add(codec->card,
				snd_soc_cnew(&adau1761_s5p6440_controls[i],
				codec, NULL));
		if (err < 0)
			return err;
	}

	tomtom_add_nashville_controls(codec->card, codec);

	/* set up s5p6440 specific audio paths */
	snd_soc_dapm_add_routes(codec, audio_map, ARRAY_SIZE(audio_map));

	/* always connected */
	snd_soc_dapm_enable_pin(codec, "Headphones");
	snd_soc_dapm_enable_pin(codec, "MicIn");
	snd_soc_dapm_enable_pin(codec, "LineIn");
	snd_soc_dapm_enable_pin(codec, "Speaker");

	/* not connected */
	snd_soc_dapm_nc_pin(codec, "LMICIN");
	snd_soc_dapm_nc_pin(codec, "RMICIN");
	snd_soc_dapm_nc_pin(codec, "LLINEIN");
	snd_soc_dapm_nc_pin(codec, "RLINEIN");
	snd_soc_dapm_nc_pin(codec, "LOUT");
	snd_soc_dapm_nc_pin(codec, "LHPOUT");
	snd_soc_dapm_nc_pin(codec, "ROUT");
	snd_soc_dapm_nc_pin(codec, "RHPOUT");
//	snd_soc_dapm_nc_pin(codec, "MONOOUT");

	/* set endpoints to default mode & sync with DAPM */
	set_scenario_endpoints(codec, S5P6440_CAPTURE_LINE_HP_SPKR_OUT);

	return 0;
}
Пример #5
0
/*
 * This is an example machine initialisation for a wm8990 connected to a
 * smdk6410. It is missing logic to detect hp/mic insertions and logic
 * to re-route the audio in such an event.
 */
static int smdk6410_wm8990_init(struct snd_soc_codec *codec)
{
	int i, err;

	/* Add smdk6410 specific widgets */
	for (i = 0; i < ARRAY_SIZE(wm8990_dapm_widgets); i++)
		snd_soc_dapm_new_control(codec, &wm8990_dapm_widgets[i]);

	/* add smdk6410 specific controls */
	for (i = 0; i < ARRAY_SIZE(wm8990_smdk6410_controls); i++) {
		err = snd_ctl_add(codec->card,
				snd_soc_cnew(&wm8990_smdk6410_controls[i],
				codec, NULL));
		if (err < 0)
			return err;
	}

	/* set up smdk6410 specific audio paths */
	for (i = 0; audio_map[i][0] != NULL; i++) {
		snd_soc_dapm_connect_input(codec, audio_map[i][0],
			audio_map[i][1], audio_map[i][2]);
	}

	/* not connected */
	snd_soc_dapm_set_endpoint(codec, "RIN1", 0);
	snd_soc_dapm_set_endpoint(codec, "LIN3", 0);
	snd_soc_dapm_set_endpoint(codec, "LIN4", 0);
	snd_soc_dapm_set_endpoint(codec, "RIN3", 0);
	snd_soc_dapm_set_endpoint(codec, "RIN4", 0);
	snd_soc_dapm_set_endpoint(codec, "OUT3", 0);
	snd_soc_dapm_set_endpoint(codec, "OUT4", 0);
	snd_soc_dapm_set_endpoint(codec, "SPKP", 0);
	snd_soc_dapm_set_endpoint(codec, "SPKN", 0);
	snd_soc_dapm_set_endpoint(codec, "ROP", 0);
	snd_soc_dapm_set_endpoint(codec, "RON", 0);
	snd_soc_dapm_set_endpoint(codec, "LOP", 0);
	snd_soc_dapm_set_endpoint(codec, "LON", 0);

	/* set endpoints to default mode & sync with DAPM */
	set_scenario_endpoints(codec, SMDK6410_STEREO_TO_HEADPHONES);
		
	return 0;
}