staticbool fsl_aud2htx_readable_reg(struct device *dev, unsignedint reg)
{ switch (reg) { case AUD2HTX_CTRL: case AUD2HTX_CTRL_EXT: case AUD2HTX_STATUS: case AUD2HTX_IRQ_NOMASK: case AUD2HTX_IRQ_MASKED: case AUD2HTX_IRQ_MASK: returntrue; default: returnfalse;
}
}
staticbool fsl_aud2htx_writeable_reg(struct device *dev, unsignedint reg)
{ switch (reg) { case AUD2HTX_CTRL: case AUD2HTX_CTRL_EXT: case AUD2HTX_WR: case AUD2HTX_IRQ_NOMASK: case AUD2HTX_IRQ_MASKED: case AUD2HTX_IRQ_MASK: returntrue; default: returnfalse;
}
}
staticbool fsl_aud2htx_volatile_reg(struct device *dev, unsignedint reg)
{ switch (reg) { case AUD2HTX_STATUS: case AUD2HTX_IRQ_NOMASK: case AUD2HTX_IRQ_MASKED: returntrue; default: returnfalse;
}
}
aud2htx = devm_kzalloc(&pdev->dev, sizeof(*aud2htx), GFP_KERNEL); if (!aud2htx) return -ENOMEM;
aud2htx->pdev = pdev;
regs = devm_platform_get_and_ioremap_resource(pdev, 0, &res); if (IS_ERR(regs)) return PTR_ERR(regs);
aud2htx->regmap = devm_regmap_init_mmio(&pdev->dev, regs,
&fsl_aud2htx_regmap_config); if (IS_ERR(aud2htx->regmap)) {
dev_err(&pdev->dev, "failed to init regmap"); return PTR_ERR(aud2htx->regmap);
}
irq = platform_get_irq(pdev, 0); if (irq < 0) return irq;
ret = devm_request_irq(&pdev->dev, irq, fsl_aud2htx_isr, 0,
dev_name(&pdev->dev), aud2htx); if (ret) {
dev_err(&pdev->dev, "failed to claim irq %u: %d\n", irq, ret); return ret;
}
aud2htx->bus_clk = devm_clk_get(&pdev->dev, "bus"); if (IS_ERR(aud2htx->bus_clk)) {
dev_err(&pdev->dev, "failed to get mem clock\n"); return PTR_ERR(aud2htx->bus_clk);
}
/* * Register platform component before registering cpu dai for there * is not defer probe for platform component in snd_soc_add_pcm_runtime().
*/
ret = devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0); if (ret) {
dev_err(&pdev->dev, "failed to pcm register\n");
pm_runtime_disable(&pdev->dev); return ret;
}
ret = devm_snd_soc_register_component(&pdev->dev,
&fsl_aud2htx_component,
&fsl_aud2htx_dai, 1); if (ret) {
dev_err(&pdev->dev, "failed to register ASoC DAI\n");
pm_runtime_disable(&pdev->dev); return ret;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.