.tx_formats = FSL_SPDIF_FORMATS_PLAYBACK,
 };
 
+static struct fsl_spdif_soc_data fsl_spdif_imx8ulp = {
+       .imx = true,
+       .shared_root_clock = true,
+       .raw_capture_mode = false,
+       .interrupts = 1,
+       .tx_burst = 2,          /* Applied for EDMA */
+       .rx_burst = 2,          /* Applied for EDMA */
+       .tx_formats = SNDRV_PCM_FMTBIT_S24_LE,  /* Applied for EDMA */
+};
+
 /* Check if clk is a root clock that does not share clock source with others */
 static inline bool fsl_spdif_can_set_clk_rate(struct fsl_spdif_priv *spdif, int clk)
 {
        { .compatible = "fsl,imx6sx-spdif", .data = &fsl_spdif_imx6sx, },
        { .compatible = "fsl,imx8qm-spdif", .data = &fsl_spdif_imx8qm, },
        { .compatible = "fsl,imx8mm-spdif", .data = &fsl_spdif_imx8mm, },
+       { .compatible = "fsl,imx8ulp-spdif", .data = &fsl_spdif_imx8ulp, },
        {}
 };
 MODULE_DEVICE_TABLE(of, fsl_spdif_dt_ids);