static void tegra_dmic_stop(struct tegra_dmic *dmic)
{
	u32 ctrl;

	mutex_lock(&dmic->mutex);
	ctrl = tegra_dmic_read(dmic, TEGRA_DMIC_CTRL);

	ctrl &= TEGRA_DMIC_ENABLE_MASK;
	ctrl |= 0x0 << TEGRA_DMIC_ENABLE_SHIFT;
	tegra_dmic_write(dmic, TEGRA_DMIC_CTRL, ctrl);
	tegra_dmic_soft_reset(dmic);

	/* Disable Rx FIFOs. */
	tegra30_ahub_disable_rx_fifo(dmic->rx_cif);
	mutex_unlock(&dmic->mutex);
}
Beispiel #2
0
static void tegra30_i2s_stop_capture(struct tegra30_i2s *i2s)
{
	tegra30_ahub_disable_rx_fifo(i2s->capture_fifo_cif);
	regmap_update_bits(i2s->regmap, TEGRA30_I2S_CTRL,
			   TEGRA30_I2S_CTRL_XFER_EN_RX, 0);
}
Beispiel #3
0
static void tegra30_i2s_stop_capture(struct tegra30_i2s *i2s)
{
	tegra30_ahub_disable_rx_fifo(i2s->capture_fifo_cif);
	i2s->reg_ctrl &= ~TEGRA30_I2S_CTRL_XFER_EN_RX;
	tegra30_i2s_write(i2s, TEGRA30_I2S_CTRL, i2s->reg_ctrl);
}