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

Commit d80fd093 authored by Peter Lienig's avatar Peter Lienig Committed by Takashi Iwai
Browse files

[ALSA] ice1712 - Add Terrasoniq TS88 support



Added the support of Terrasonq TS88.

Signed-off-by: default avatarPeter Lienig <lienig@rheinmetall-de.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent f000fd80
Loading
Loading
Loading
Loading
+15 −0
Original line number Original line Diff line number Diff line
@@ -238,6 +238,7 @@ static void snd_ice1712_ews_cs8404_spdif_write(struct snd_ice1712 *ice, unsigned
	case ICE1712_SUBDEVICE_EWS88MT:
	case ICE1712_SUBDEVICE_EWS88MT:
	case ICE1712_SUBDEVICE_EWS88MT_NEW:
	case ICE1712_SUBDEVICE_EWS88MT_NEW:
	case ICE1712_SUBDEVICE_PHASE88:
	case ICE1712_SUBDEVICE_PHASE88:
	case ICE1712_SUBDEVICE_TS88:
		if (snd_i2c_sendbytes(spec->i2cdevs[EWS_I2C_CS8404], &bits, 1)
		if (snd_i2c_sendbytes(spec->i2cdevs[EWS_I2C_CS8404], &bits, 1)
		    != 1)
		    != 1)
			goto _error;
			goto _error;
@@ -433,6 +434,7 @@ static int __devinit snd_ice1712_ews_init(struct snd_ice1712 *ice)
	case ICE1712_SUBDEVICE_EWS88MT:
	case ICE1712_SUBDEVICE_EWS88MT:
	case ICE1712_SUBDEVICE_EWS88MT_NEW:
	case ICE1712_SUBDEVICE_EWS88MT_NEW:
	case ICE1712_SUBDEVICE_PHASE88:
	case ICE1712_SUBDEVICE_PHASE88:
	case ICE1712_SUBDEVICE_TS88:
		ice->num_total_dacs = 8;
		ice->num_total_dacs = 8;
		ice->num_total_adcs = 8;
		ice->num_total_adcs = 8;
		break;
		break;
@@ -475,6 +477,8 @@ static int __devinit snd_ice1712_ews_init(struct snd_ice1712 *ice)
	case ICE1712_SUBDEVICE_EWS88MT:
	case ICE1712_SUBDEVICE_EWS88MT:
	case ICE1712_SUBDEVICE_EWS88MT_NEW:
	case ICE1712_SUBDEVICE_EWS88MT_NEW:
	case ICE1712_SUBDEVICE_PHASE88:
	case ICE1712_SUBDEVICE_PHASE88:
	case ICE1712_SUBDEVICE_TS88:

		err = snd_i2c_device_create(ice->i2c, "CS8404",
		err = snd_i2c_device_create(ice->i2c, "CS8404",
					    ICE1712_EWS88MT_CS8404_ADDR,
					    ICE1712_EWS88MT_CS8404_ADDR,
					    &spec->i2cdevs[EWS_I2C_CS8404]);
					    &spec->i2cdevs[EWS_I2C_CS8404]);
@@ -518,6 +522,7 @@ static int __devinit snd_ice1712_ews_init(struct snd_ice1712 *ice)
	case ICE1712_SUBDEVICE_EWS88MT:
	case ICE1712_SUBDEVICE_EWS88MT:
	case ICE1712_SUBDEVICE_EWS88MT_NEW:
	case ICE1712_SUBDEVICE_EWS88MT_NEW:
	case ICE1712_SUBDEVICE_PHASE88:
	case ICE1712_SUBDEVICE_PHASE88:
	case ICE1712_SUBDEVICE_TS88:
	case ICE1712_SUBDEVICE_EWS88D:
	case ICE1712_SUBDEVICE_EWS88D:
		/* set up CS8404 */
		/* set up CS8404 */
		ice->spdif.ops.open = ews88_open_spdif;
		ice->spdif.ops.open = ews88_open_spdif;
@@ -547,6 +552,7 @@ static int __devinit snd_ice1712_ews_init(struct snd_ice1712 *ice)
	case ICE1712_SUBDEVICE_EWS88MT:
	case ICE1712_SUBDEVICE_EWS88MT:
	case ICE1712_SUBDEVICE_EWS88MT_NEW:
	case ICE1712_SUBDEVICE_EWS88MT_NEW:
	case ICE1712_SUBDEVICE_PHASE88:
	case ICE1712_SUBDEVICE_PHASE88:
	case ICE1712_SUBDEVICE_TS88:
		err = snd_ice1712_akm4xxx_init(ak, &akm_ews88mt, &akm_ews88mt_priv, ice);
		err = snd_ice1712_akm4xxx_init(ak, &akm_ews88mt, &akm_ews88mt_priv, ice);
		break;
		break;
	case ICE1712_SUBDEVICE_EWX2496:
	case ICE1712_SUBDEVICE_EWX2496:
@@ -973,6 +979,7 @@ static int __devinit snd_ice1712_ews_add_controls(struct snd_ice1712 *ice)
	case ICE1712_SUBDEVICE_EWS88MT:
	case ICE1712_SUBDEVICE_EWS88MT:
	case ICE1712_SUBDEVICE_EWS88MT_NEW:
	case ICE1712_SUBDEVICE_EWS88MT_NEW:
	case ICE1712_SUBDEVICE_PHASE88:
	case ICE1712_SUBDEVICE_PHASE88:
	case ICE1712_SUBDEVICE_TS88:
	case ICE1712_SUBDEVICE_DMX6FIRE:
	case ICE1712_SUBDEVICE_DMX6FIRE:
		err = snd_ice1712_akm4xxx_build_controls(ice);
		err = snd_ice1712_akm4xxx_build_controls(ice);
		if (err < 0)
		if (err < 0)
@@ -992,6 +999,7 @@ static int __devinit snd_ice1712_ews_add_controls(struct snd_ice1712 *ice)
	case ICE1712_SUBDEVICE_EWS88MT:
	case ICE1712_SUBDEVICE_EWS88MT:
	case ICE1712_SUBDEVICE_EWS88MT_NEW:
	case ICE1712_SUBDEVICE_EWS88MT_NEW:
	case ICE1712_SUBDEVICE_PHASE88:
	case ICE1712_SUBDEVICE_PHASE88:
	case ICE1712_SUBDEVICE_TS88:
		err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_ews88mt_input_sense, ice));
		err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_ews88mt_input_sense, ice));
		if (err < 0)
		if (err < 0)
			return err;
			return err;
@@ -1048,6 +1056,13 @@ struct snd_ice1712_card_info snd_ice1712_ews_cards[] __devinitdata = {
		.chip_init = snd_ice1712_ews_init,
		.chip_init = snd_ice1712_ews_init,
		.build_controls = snd_ice1712_ews_add_controls,
		.build_controls = snd_ice1712_ews_add_controls,
	},
	},
	{
		.subvendor = ICE1712_SUBDEVICE_TS88,
		.name = "terrasoniq TS88",
		.model = "phase88",
		.chip_init = snd_ice1712_ews_init,
		.build_controls = snd_ice1712_ews_add_controls,
	},
	{
	{
		.subvendor = ICE1712_SUBDEVICE_EWS88D,
		.subvendor = ICE1712_SUBDEVICE_EWS88D,
		.name = "TerraTec EWS88D",
		.name = "TerraTec EWS88D",
+3 −1
Original line number Original line Diff line number Diff line
@@ -30,7 +30,8 @@
		"{TerraTec,EWS 88MT},"\
		"{TerraTec,EWS 88MT},"\
		"{TerraTec,EWS 88D},"\
		"{TerraTec,EWS 88D},"\
		"{TerraTec,DMX 6Fire},"\
		"{TerraTec,DMX 6Fire},"\
		"{TerraTec,Phase 88},"
		"{TerraTec,Phase 88}," \
		"{terrasoniq,TS 88},"


#define ICE1712_SUBDEVICE_EWX2496	0x3b153011
#define ICE1712_SUBDEVICE_EWX2496	0x3b153011
#define ICE1712_SUBDEVICE_EWS88MT	0x3b151511
#define ICE1712_SUBDEVICE_EWS88MT	0x3b151511
@@ -38,6 +39,7 @@
#define ICE1712_SUBDEVICE_EWS88D	0x3b152b11
#define ICE1712_SUBDEVICE_EWS88D	0x3b152b11
#define ICE1712_SUBDEVICE_DMX6FIRE	0x3b153811
#define ICE1712_SUBDEVICE_DMX6FIRE	0x3b153811
#define ICE1712_SUBDEVICE_PHASE88	0x3b155111
#define ICE1712_SUBDEVICE_PHASE88	0x3b155111
#define ICE1712_SUBDEVICE_TS88   	0x3b157c11


/* entry point */
/* entry point */
extern struct snd_ice1712_card_info snd_ice1712_ews_cards[];
extern struct snd_ice1712_card_info snd_ice1712_ews_cards[];