Hi Geert
+static u32 audmapp_addr_to_id(struct device *dev, u32 addr) +{
struct id_addr_table ssi_id_table[] = {
static const, so they don't get copied to the stack on every invocation.
Indeed, thanks
{0x00, 0x0000}, /* SSI00 */
{0x01, 0x0400}, /* SSI01 */
{0x02, 0x0800}, /* SSI02 */
{0x03, 0x0C00}, /* SSI03 */
{0x04, 0x1000}, /* SSI10 */
{0x05, 0x1400}, /* SSI11 */
{0x06, 0x1800}, /* SSI12 */
{0x07, 0x1C00}, /* SSI13 */
{0x08, 0x2000}, /* SSI20 */
Isn't the address part here the physical address of the FIFO,
Yes they are.
which can be different for each implementation that contains an audmapp device?
Fortunately they're identical for all (current) members of the R-Car Gen2 family.
Morimoto-san: Are the base addresses configured in DT? I did a quick search for 0xec300000, 0xec320000, 0xec40000, 0xec420000, and 0xec000000, and couldn't find them in DT, only in source code (comments). They must come from somewhere? Note that I didn't follow the sound binding discussions that closely.
This base addresses are specified from sound driver. - sound driver specifies src/dst address by DMAEngine API - audmapp find necessary ID from src/dst address
Best regards --- Kuninori Morimoto