esai_priv          79 sound/soc/fsl/fsl_esai.c 	struct fsl_esai *esai_priv = (struct fsl_esai *)devid;
esai_priv          80 sound/soc/fsl/fsl_esai.c 	struct platform_device *pdev = esai_priv->pdev;
esai_priv          84 sound/soc/fsl/fsl_esai.c 	regmap_read(esai_priv->regmap, REG_ESAI_ESR, &esr);
esai_priv          85 sound/soc/fsl/fsl_esai.c 	regmap_read(esai_priv->regmap, REG_ESAI_SAISR, &saisr);
esai_priv          88 sound/soc/fsl/fsl_esai.c 	    esai_priv->reset_at_xrun) {
esai_priv          90 sound/soc/fsl/fsl_esai.c 		tasklet_schedule(&esai_priv->task);
esai_priv         141 sound/soc/fsl/fsl_esai.c 	struct fsl_esai *esai_priv = snd_soc_dai_get_drvdata(dai);
esai_priv         207 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xCCR(tx),
esai_priv         216 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xCCR(tx),
esai_priv         236 sound/soc/fsl/fsl_esai.c 	struct fsl_esai *esai_priv = snd_soc_dai_get_drvdata(dai);
esai_priv         237 sound/soc/fsl/fsl_esai.c 	struct clk *clksrc = esai_priv->extalclk;
esai_priv         238 sound/soc/fsl/fsl_esai.c 	bool tx = (clk_id <= ESAI_HCKT_EXTAL || esai_priv->synchronous);
esai_priv         251 sound/soc/fsl/fsl_esai.c 	if (freq == esai_priv->hck_rate[tx] && dir == esai_priv->hck_dir[tx])
esai_priv         255 sound/soc/fsl/fsl_esai.c 	esai_priv->sck_div[tx] = true;
esai_priv         258 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xCCR(tx),
esai_priv         267 sound/soc/fsl/fsl_esai.c 		clksrc = esai_priv->fsysclk;
esai_priv         273 sound/soc/fsl/fsl_esai.c 		ecr |= esai_priv->synchronous ? ESAI_ECR_ETI : ESAI_ECR_ERI;
esai_priv         302 sound/soc/fsl/fsl_esai.c 	if (ratio == 1 && clksrc == esai_priv->extalclk) {
esai_priv         317 sound/soc/fsl/fsl_esai.c 	esai_priv->sck_div[tx] = false;
esai_priv         320 sound/soc/fsl/fsl_esai.c 	esai_priv->hck_dir[tx] = dir;
esai_priv         321 sound/soc/fsl/fsl_esai.c 	esai_priv->hck_rate[tx] = freq;
esai_priv         323 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_ECR,
esai_priv         335 sound/soc/fsl/fsl_esai.c 	struct fsl_esai *esai_priv = snd_soc_dai_get_drvdata(dai);
esai_priv         336 sound/soc/fsl/fsl_esai.c 	u32 hck_rate = esai_priv->hck_rate[tx];
esai_priv         341 sound/soc/fsl/fsl_esai.c 	if (esai_priv->slave_mode || esai_priv->sck_rate[tx] == freq)
esai_priv         359 sound/soc/fsl/fsl_esai.c 	if (!esai_priv->sck_div[tx] && (ratio > 16 || ratio == 0)) {
esai_priv         365 sound/soc/fsl/fsl_esai.c 			esai_priv->sck_div[tx] ? 0 : ratio);
esai_priv         370 sound/soc/fsl/fsl_esai.c 	esai_priv->sck_rate[tx] = freq;
esai_priv         378 sound/soc/fsl/fsl_esai.c 	struct fsl_esai *esai_priv = snd_soc_dai_get_drvdata(dai);
esai_priv         380 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_TCCR,
esai_priv         383 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_RCCR,
esai_priv         386 sound/soc/fsl/fsl_esai.c 	esai_priv->slot_width = slot_width;
esai_priv         387 sound/soc/fsl/fsl_esai.c 	esai_priv->slots = slots;
esai_priv         388 sound/soc/fsl/fsl_esai.c 	esai_priv->tx_mask = tx_mask;
esai_priv         389 sound/soc/fsl/fsl_esai.c 	esai_priv->rx_mask = rx_mask;
esai_priv         396 sound/soc/fsl/fsl_esai.c 	struct fsl_esai *esai_priv = snd_soc_dai_get_drvdata(dai);
esai_priv         450 sound/soc/fsl/fsl_esai.c 	esai_priv->slave_mode = false;
esai_priv         455 sound/soc/fsl/fsl_esai.c 		esai_priv->slave_mode = true;
esai_priv         471 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_TCR, mask, xcr);
esai_priv         472 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_RCR, mask, xcr);
esai_priv         476 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_TCCR, mask, xccr);
esai_priv         477 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_RCCR, mask, xccr);
esai_priv         485 sound/soc/fsl/fsl_esai.c 	struct fsl_esai *esai_priv = snd_soc_dai_get_drvdata(dai);
esai_priv         489 sound/soc/fsl/fsl_esai.c 		regmap_update_bits(esai_priv->regmap, REG_ESAI_SAICR,
esai_priv         490 sound/soc/fsl/fsl_esai.c 				   ESAI_SAICR_SYNC, esai_priv->synchronous ?
esai_priv         494 sound/soc/fsl/fsl_esai.c 		regmap_update_bits(esai_priv->regmap, REG_ESAI_TCCR,
esai_priv         496 sound/soc/fsl/fsl_esai.c 		regmap_update_bits(esai_priv->regmap, REG_ESAI_RCCR,
esai_priv         508 sound/soc/fsl/fsl_esai.c 	struct fsl_esai *esai_priv = snd_soc_dai_get_drvdata(dai);
esai_priv         512 sound/soc/fsl/fsl_esai.c 	u32 pins = DIV_ROUND_UP(channels, esai_priv->slots);
esai_priv         518 sound/soc/fsl/fsl_esai.c 	if (esai_priv->slot_width)
esai_priv         519 sound/soc/fsl/fsl_esai.c 		slot_width = esai_priv->slot_width;
esai_priv         521 sound/soc/fsl/fsl_esai.c 	bclk = params_rate(params) * slot_width * esai_priv->slots;
esai_priv         523 sound/soc/fsl/fsl_esai.c 	ret = fsl_esai_set_bclk(dai, esai_priv->synchronous || tx, bclk);
esai_priv         530 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xCR(tx), mask, val);
esai_priv         532 sound/soc/fsl/fsl_esai.c 	if (!tx && esai_priv->synchronous)
esai_priv         533 sound/soc/fsl/fsl_esai.c 		regmap_update_bits(esai_priv->regmap, REG_ESAI_TCR, mask, val);
esai_priv         536 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xCR(tx),
esai_priv         540 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xFCR(tx),
esai_priv         545 sound/soc/fsl/fsl_esai.c 	val = ESAI_xFCR_xWA(width) | ESAI_xFCR_xFWM(esai_priv->fifo_depth) |
esai_priv         548 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xFCR(tx), mask, val);
esai_priv         551 sound/soc/fsl/fsl_esai.c 		regmap_update_bits(esai_priv->regmap, REG_ESAI_TCR,
esai_priv         555 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_PRRC,
esai_priv         557 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_PCRC,
esai_priv         562 sound/soc/fsl/fsl_esai.c static int fsl_esai_hw_init(struct fsl_esai *esai_priv)
esai_priv         564 sound/soc/fsl/fsl_esai.c 	struct platform_device *pdev = esai_priv->pdev;
esai_priv         568 sound/soc/fsl/fsl_esai.c 	ret = regmap_update_bits(esai_priv->regmap, REG_ESAI_ECR,
esai_priv         580 sound/soc/fsl/fsl_esai.c 	ret = regmap_update_bits(esai_priv->regmap, REG_ESAI_ECR,
esai_priv         588 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_PRRC,
esai_priv         590 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_PCRC,
esai_priv         596 sound/soc/fsl/fsl_esai.c static int fsl_esai_register_restore(struct fsl_esai *esai_priv)
esai_priv         601 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_TFCR,
esai_priv         603 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_RFCR,
esai_priv         606 sound/soc/fsl/fsl_esai.c 	regcache_mark_dirty(esai_priv->regmap);
esai_priv         607 sound/soc/fsl/fsl_esai.c 	ret = regcache_sync(esai_priv->regmap);
esai_priv         612 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_TFCR, ESAI_xFCR_xFR, 0);
esai_priv         613 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_RFCR, ESAI_xFCR_xFR, 0);
esai_priv         618 sound/soc/fsl/fsl_esai.c static void fsl_esai_trigger_start(struct fsl_esai *esai_priv, bool tx)
esai_priv         620 sound/soc/fsl/fsl_esai.c 	u8 i, channels = esai_priv->channels[tx];
esai_priv         621 sound/soc/fsl/fsl_esai.c 	u32 pins = DIV_ROUND_UP(channels, esai_priv->slots);
esai_priv         624 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xFCR(tx),
esai_priv         629 sound/soc/fsl/fsl_esai.c 		regmap_write(esai_priv->regmap, REG_ESAI_ETDR, 0x0);
esai_priv         643 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xCR(tx),
esai_priv         646 sound/soc/fsl/fsl_esai.c 	mask = tx ? esai_priv->tx_mask : esai_priv->rx_mask;
esai_priv         648 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xSMB(tx),
esai_priv         650 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xSMA(tx),
esai_priv         654 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xCR(tx),
esai_priv         658 sound/soc/fsl/fsl_esai.c static void fsl_esai_trigger_stop(struct fsl_esai *esai_priv, bool tx)
esai_priv         660 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xCR(tx),
esai_priv         663 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xCR(tx),
esai_priv         665 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xSMA(tx),
esai_priv         667 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xSMB(tx),
esai_priv         671 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xFCR(tx),
esai_priv         673 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_xFCR(tx),
esai_priv         679 sound/soc/fsl/fsl_esai.c 	struct fsl_esai *esai_priv = (struct fsl_esai *)arg;
esai_priv         684 sound/soc/fsl/fsl_esai.c 	spin_lock_irqsave(&esai_priv->lock, lock_flags);
esai_priv         686 sound/soc/fsl/fsl_esai.c 	regmap_read(esai_priv->regmap, REG_ESAI_TFCR, &tfcr);
esai_priv         687 sound/soc/fsl/fsl_esai.c 	regmap_read(esai_priv->regmap, REG_ESAI_RFCR, &rfcr);
esai_priv         692 sound/soc/fsl/fsl_esai.c 	fsl_esai_trigger_stop(esai_priv, tx);
esai_priv         693 sound/soc/fsl/fsl_esai.c 	fsl_esai_trigger_stop(esai_priv, rx);
esai_priv         696 sound/soc/fsl/fsl_esai.c 	fsl_esai_hw_init(esai_priv);
esai_priv         699 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_TCR,
esai_priv         701 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_RCR,
esai_priv         705 sound/soc/fsl/fsl_esai.c 	fsl_esai_register_restore(esai_priv);
esai_priv         708 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_TCR,
esai_priv         710 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_RCR,
esai_priv         712 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_PRRC,
esai_priv         714 sound/soc/fsl/fsl_esai.c 	regmap_update_bits(esai_priv->regmap, REG_ESAI_PCRC,
esai_priv         719 sound/soc/fsl/fsl_esai.c 		fsl_esai_trigger_start(esai_priv, tx);
esai_priv         721 sound/soc/fsl/fsl_esai.c 		fsl_esai_trigger_start(esai_priv, rx);
esai_priv         723 sound/soc/fsl/fsl_esai.c 	spin_unlock_irqrestore(&esai_priv->lock, lock_flags);
esai_priv         729 sound/soc/fsl/fsl_esai.c 	struct fsl_esai *esai_priv = snd_soc_dai_get_drvdata(dai);
esai_priv         733 sound/soc/fsl/fsl_esai.c 	esai_priv->channels[tx] = substream->runtime->channels;
esai_priv         739 sound/soc/fsl/fsl_esai.c 		spin_lock_irqsave(&esai_priv->lock, lock_flags);
esai_priv         740 sound/soc/fsl/fsl_esai.c 		fsl_esai_trigger_start(esai_priv, tx);
esai_priv         741 sound/soc/fsl/fsl_esai.c 		spin_unlock_irqrestore(&esai_priv->lock, lock_flags);
esai_priv         746 sound/soc/fsl/fsl_esai.c 		spin_lock_irqsave(&esai_priv->lock, lock_flags);
esai_priv         747 sound/soc/fsl/fsl_esai.c 		fsl_esai_trigger_stop(esai_priv, tx);
esai_priv         748 sound/soc/fsl/fsl_esai.c 		spin_unlock_irqrestore(&esai_priv->lock, lock_flags);
esai_priv         768 sound/soc/fsl/fsl_esai.c 	struct fsl_esai *esai_priv = snd_soc_dai_get_drvdata(dai);
esai_priv         770 sound/soc/fsl/fsl_esai.c 	snd_soc_dai_init_dma_data(dai, &esai_priv->dma_params_tx,
esai_priv         771 sound/soc/fsl/fsl_esai.c 				  &esai_priv->dma_params_rx);
esai_priv         922 sound/soc/fsl/fsl_esai.c 	struct fsl_esai *esai_priv;
esai_priv         928 sound/soc/fsl/fsl_esai.c 	esai_priv = devm_kzalloc(&pdev->dev, sizeof(*esai_priv), GFP_KERNEL);
esai_priv         929 sound/soc/fsl/fsl_esai.c 	if (!esai_priv)
esai_priv         932 sound/soc/fsl/fsl_esai.c 	esai_priv->pdev = pdev;
esai_priv         933 sound/soc/fsl/fsl_esai.c 	snprintf(esai_priv->name, sizeof(esai_priv->name), "%pOFn", np);
esai_priv         937 sound/soc/fsl/fsl_esai.c 		esai_priv->reset_at_xrun = true;
esai_priv         945 sound/soc/fsl/fsl_esai.c 	esai_priv->regmap = devm_regmap_init_mmio_clk(&pdev->dev,
esai_priv         947 sound/soc/fsl/fsl_esai.c 	if (IS_ERR(esai_priv->regmap)) {
esai_priv         949 sound/soc/fsl/fsl_esai.c 				PTR_ERR(esai_priv->regmap));
esai_priv         950 sound/soc/fsl/fsl_esai.c 		return PTR_ERR(esai_priv->regmap);
esai_priv         953 sound/soc/fsl/fsl_esai.c 	esai_priv->coreclk = devm_clk_get(&pdev->dev, "core");
esai_priv         954 sound/soc/fsl/fsl_esai.c 	if (IS_ERR(esai_priv->coreclk)) {
esai_priv         956 sound/soc/fsl/fsl_esai.c 				PTR_ERR(esai_priv->coreclk));
esai_priv         957 sound/soc/fsl/fsl_esai.c 		return PTR_ERR(esai_priv->coreclk);
esai_priv         960 sound/soc/fsl/fsl_esai.c 	esai_priv->extalclk = devm_clk_get(&pdev->dev, "extal");
esai_priv         961 sound/soc/fsl/fsl_esai.c 	if (IS_ERR(esai_priv->extalclk))
esai_priv         963 sound/soc/fsl/fsl_esai.c 				PTR_ERR(esai_priv->extalclk));
esai_priv         965 sound/soc/fsl/fsl_esai.c 	esai_priv->fsysclk = devm_clk_get(&pdev->dev, "fsys");
esai_priv         966 sound/soc/fsl/fsl_esai.c 	if (IS_ERR(esai_priv->fsysclk))
esai_priv         968 sound/soc/fsl/fsl_esai.c 				PTR_ERR(esai_priv->fsysclk));
esai_priv         970 sound/soc/fsl/fsl_esai.c 	esai_priv->spbaclk = devm_clk_get(&pdev->dev, "spba");
esai_priv         971 sound/soc/fsl/fsl_esai.c 	if (IS_ERR(esai_priv->spbaclk))
esai_priv         973 sound/soc/fsl/fsl_esai.c 				PTR_ERR(esai_priv->spbaclk));
esai_priv         980 sound/soc/fsl/fsl_esai.c 			       esai_priv->name, esai_priv);
esai_priv         987 sound/soc/fsl/fsl_esai.c 	esai_priv->slots = 2;
esai_priv         990 sound/soc/fsl/fsl_esai.c 	esai_priv->slave_mode = true;
esai_priv         995 sound/soc/fsl/fsl_esai.c 		esai_priv->fifo_depth = be32_to_cpup(iprop);
esai_priv         997 sound/soc/fsl/fsl_esai.c 		esai_priv->fifo_depth = 64;
esai_priv         999 sound/soc/fsl/fsl_esai.c 	esai_priv->dma_params_tx.maxburst = 16;
esai_priv        1000 sound/soc/fsl/fsl_esai.c 	esai_priv->dma_params_rx.maxburst = 16;
esai_priv        1001 sound/soc/fsl/fsl_esai.c 	esai_priv->dma_params_tx.addr = res->start + REG_ESAI_ETDR;
esai_priv        1002 sound/soc/fsl/fsl_esai.c 	esai_priv->dma_params_rx.addr = res->start + REG_ESAI_ERDR;
esai_priv        1004 sound/soc/fsl/fsl_esai.c 	esai_priv->synchronous =
esai_priv        1008 sound/soc/fsl/fsl_esai.c 	if (esai_priv->synchronous) {
esai_priv        1014 sound/soc/fsl/fsl_esai.c 	dev_set_drvdata(&pdev->dev, esai_priv);
esai_priv        1016 sound/soc/fsl/fsl_esai.c 	spin_lock_init(&esai_priv->lock);
esai_priv        1017 sound/soc/fsl/fsl_esai.c 	ret = fsl_esai_hw_init(esai_priv);
esai_priv        1021 sound/soc/fsl/fsl_esai.c 	esai_priv->tx_mask = 0xFFFFFFFF;
esai_priv        1022 sound/soc/fsl/fsl_esai.c 	esai_priv->rx_mask = 0xFFFFFFFF;
esai_priv        1025 sound/soc/fsl/fsl_esai.c 	regmap_write(esai_priv->regmap, REG_ESAI_TSMA, 0);
esai_priv        1026 sound/soc/fsl/fsl_esai.c 	regmap_write(esai_priv->regmap, REG_ESAI_TSMB, 0);
esai_priv        1027 sound/soc/fsl/fsl_esai.c 	regmap_write(esai_priv->regmap, REG_ESAI_RSMA, 0);
esai_priv        1028 sound/soc/fsl/fsl_esai.c 	regmap_write(esai_priv->regmap, REG_ESAI_RSMB, 0);
esai_priv        1037 sound/soc/fsl/fsl_esai.c 	tasklet_init(&esai_priv->task, fsl_esai_hw_reset,
esai_priv        1038 sound/soc/fsl/fsl_esai.c 		     (unsigned long)esai_priv);
esai_priv        1042 sound/soc/fsl/fsl_esai.c 	regcache_cache_only(esai_priv->regmap, true);
esai_priv        1053 sound/soc/fsl/fsl_esai.c 	struct fsl_esai *esai_priv = platform_get_drvdata(pdev);
esai_priv        1056 sound/soc/fsl/fsl_esai.c 	tasklet_kill(&esai_priv->task);