Beispiel #1
0
static int max98925_dai_digital_mute(struct snd_soc_dai *codec_dai, int mute)
{
	struct max98925_priv *max98925
		= snd_soc_codec_get_drvdata(codec_dai->codec);

	msg_maxim("%s: mute %d\n", __func__, mute);

	if (mute) {
		regmap_update_bits(max98925->regmap, MAX98925_R02D_GAIN,
			MAX98925_SPK_GAIN_MASK, 0x00);

		usleep_range(5000, 5000);

		regmap_update_bits(max98925->regmap,
			MAX98925_R038_GLOBAL_ENABLE, MAX98925_EN_MASK, 0x0);
	} else	{
		regmap_update_bits(max98925->regmap, MAX98925_R02D_GAIN,
			MAX98925_SPK_GAIN_MASK, max98925->volume);

		regmap_update_bits(max98925->regmap,
			MAX98925_R036_BLOCK_ENABLE,
			MAX98925_BST_EN_MASK | MAX98925_SPK_EN_MASK |
			MAX98925_ADC_IMON_EN_MASK | MAX98925_ADC_VMON_EN_MASK,
			MAX98925_BST_EN_MASK | MAX98925_SPK_EN_MASK |
			MAX98925_ADC_IMON_EN_MASK | MAX98925_ADC_VMON_EN_MASK);
		regmap_write(max98925->regmap, MAX98925_R038_GLOBAL_ENABLE,
			MAX98925_EN_MASK);
	}

#ifdef USE_REG_DUMP
	reg_dump(max98925);
#endif

	return 0;
}
static int max98505_dai_digital_mute(struct snd_soc_dai *codec_dai, int mute)
{
	struct max98505_priv *max98505
		= snd_soc_codec_get_drvdata(codec_dai->codec);
	struct max98505_pdata *pdata = max98505->pdata;
	bool action = 1;

	if (pdata->capture_active != codec_dai->capture_active) {
		pdata->capture_active = codec_dai->capture_active;
		action = 0;
	}

	if (pdata->playback_active != codec_dai->playback_active) {
		pdata->playback_active = codec_dai->playback_active;
		action = 1;
	}

	msg_maxim("mute=%d playback_active=%d capture_active=%d action=%d",
			mute, pdata->playback_active,
			pdata->capture_active, action);

	if (action)
		__max98505_dai_digital_mute(codec_dai, mute);

#ifdef USE_REG_DUMP
	if (action)
		reg_dump(max98505);
#endif /* USE_REG_DUMP */

	return 0;
}
Beispiel #3
0
void handler_dev_display_write(u2_t addr, u1_t data)
{

#ifdef DEBUG
	if (trace_regs) printf("%c%x", (ADDR_DEV(addr) == ADDR_7SEG(0))? 'D':'L', addr&0xf);
#endif

	if (ADDR_DEV(addr) == ADDR_7SEG(0)) {
		dsp_7seg_write(POS(addr - ADDR_7SEG(0)), 0, data);
	} else
	if (ADDR_DEV(addr) == ADDR_LEDS(0xf)) {	// remember ADDR_LEDS() is reversed
		dsp_leds_write(0xf - (addr - ADDR_LEDS(0xf)), data);
	} else {
		bus_write(addr, data);
	}

#ifdef DEBUG
	// last digit of display has been written
	if ((display_all || deviation) && (addr == ADDR_7SEG(0xf))) {
		static char dbuf[128];
		static double dval2;
		static u4_t ddn, dskip;

		freq_record(0, REG_STR, 0, 0, 0, "D ");
		dsp_7seg_translate(dbuf, &dval2); ddn++;
		
		if (display_all || ((ddn & 0xf) == 0))
			printf("%s\n", dbuf);

		if (deviation && (fabs(dval-dval2) > 0.000001)) {
			printf("+%d %12.9f\n", ddn, dval2);
			ddn = 0;
#ifdef FREQ_DEBUG
			if (dskip > 50) reg_dump(0, reg_dump_read, NULL, reg_dump_str);
#endif
		}
		
		freq_record(0, REG_RESET, 0, 0, 0, 0);
		dskip++;
	}
#endif

}
Beispiel #4
0
static void dma_dump_regs(void)
{
	reg_dump(dma_regs, (uint32_t *) AT91C_BASE_HDMA);
	reg_dump(dma_ch_regs, (uint8_t *)AT91C_BASE_HDMA_CH_0 + (BOARD_SSC_DMA_CHANNEL*0x28));
}