staticbool loongson_i2s_wr_reg(struct device *dev, unsignedint reg)
{ switch (reg) { case LS_I2S_CFG: case LS_I2S_CTRL: case LS_I2S_RX_DATA: case LS_I2S_TX_DATA: case LS_I2S_CFG1: returntrue; default: returnfalse;
};
}
staticbool loongson_i2s_rd_reg(struct device *dev, unsignedint reg)
{ switch (reg) { case LS_I2S_VER: case LS_I2S_CFG: case LS_I2S_CTRL: case LS_I2S_RX_DATA: case LS_I2S_TX_DATA: case LS_I2S_CFG1: returntrue; default: returnfalse;
};
}
staticbool loongson_i2s_volatile_reg(struct device *dev, unsignedint reg)
{ switch (reg) { case LS_I2S_CFG: case LS_I2S_CTRL: case LS_I2S_RX_DATA: case LS_I2S_TX_DATA: case LS_I2S_CFG1: returntrue; default: returnfalse;
};
}
ret = device_property_read_u32(dev, "clock-frequency", &i2s->clk_rate); if (ret) return dev_err_probe(dev, ret, "clock-frequency property invalid\n");
dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64));
if (i2s->rev_id == 1) {
regmap_write(i2s->regmap, LS_I2S_CTRL, I2S_CTRL_RESET);
udelay(200);
}
ret = devm_snd_soc_register_component(dev, &loongson_i2s_component,
&loongson_i2s_dai, 1); if (ret) return dev_err_probe(dev, ret, "register DAI failed\n");
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.