ASoC: fsl-spdif: big-endian support
[deliverable/linux.git] / sound / soc / fsl / fsl_spdif.c
index 4d075f1abe7803387bb01dbb39a2d66a0eac4c59..73ceb2f9b90d7eee7d148a70369871604e2b894e 100644 (file)
@@ -985,7 +985,7 @@ static bool fsl_spdif_writeable_reg(struct device *dev, unsigned int reg)
        }
 }
 
-static const struct regmap_config fsl_spdif_regmap_config = {
+static struct regmap_config fsl_spdif_regmap_config = {
        .reg_bits = 32,
        .reg_stride = 4,
        .val_bits = 32,
@@ -1105,6 +1105,9 @@ static int fsl_spdif_probe(struct platform_device *pdev)
        memcpy(&spdif_priv->cpu_dai_drv, &fsl_spdif_dai, sizeof(fsl_spdif_dai));
        spdif_priv->cpu_dai_drv.name = spdif_priv->name;
 
+       if (of_property_read_bool(np, "big-endian"))
+               fsl_spdif_regmap_config.val_format_endian = REGMAP_ENDIAN_BIG;
+
        /* Get the addresses and IRQ */
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        regs = devm_ioremap_resource(&pdev->dev, res);
This page took 0.038194 seconds and 5 git commands to generate.