ASoC: sun4i-spdif: Add support for the H3 SoC
authorMarcus Cooper <codekipper@gmail.com>
Thu, 19 Jan 2017 19:52:58 +0000 (20:52 +0100)
committerMark Brown <broonie@kernel.org>
Fri, 20 Jan 2017 13:04:17 +0000 (13:04 +0000)
The H3 SoC uses the same SPDIF block as found in earlier SoCs, but its
TXFIFO is mapped to another address.

Signed-off-by: Marcus Cooper <codekipper@gmail.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sunxi/sun4i-spdif.c

index fec62ee..c03cd07 100644 (file)
        #define SUN4I_SPDIF_ISTA_RXOSTA                 BIT(1)
        #define SUN4I_SPDIF_ISTA_RXASTA                 BIT(0)
 
+#define SUN8I_SPDIF_TXFIFO     (0x20)
+
 #define SUN4I_SPDIF_TXCNT      (0x24)
 
 #define SUN4I_SPDIF_RXCNT      (0x28)
@@ -417,6 +419,11 @@ static const struct sun4i_spdif_quirks sun6i_a31_spdif_quirks = {
        .has_reset      = true,
 };
 
+static const struct sun4i_spdif_quirks sun8i_h3_spdif_quirks = {
+       .reg_dac_txdata = SUN8I_SPDIF_TXFIFO,
+       .has_reset      = true,
+};
+
 static const struct of_device_id sun4i_spdif_of_match[] = {
        {
                .compatible = "allwinner,sun4i-a10-spdif",
@@ -426,6 +433,10 @@ static const struct of_device_id sun4i_spdif_of_match[] = {
                .compatible = "allwinner,sun6i-a31-spdif",
                .data = &sun6i_a31_spdif_quirks,
        },
+       {
+               .compatible = "allwinner,sun8i-h3-spdif",
+               .data = &sun8i_h3_spdif_quirks,
+       },
        { /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, sun4i_spdif_of_match);