struct resource *res;
        void __iomem *regs;
        int irq, ret, i;
+       u32 asrc_fmt = 0;
        u32 map_idx;
        char tmp[16];
        u32 width;
                return ret;
        }
 
-       ret = of_property_read_u32(np, "fsl,asrc-format", &asrc->asrc_format);
+       ret = of_property_read_u32(np, "fsl,asrc-format", &asrc_fmt);
+       asrc->asrc_format = (__force snd_pcm_format_t)asrc_fmt;
        if (ret) {
                ret = of_property_read_u32(np, "fsl,asrc-width", &width);
                if (ret) {
                }
        }
 
-       if (!(FSL_ASRC_FORMATS & (1ULL << asrc->asrc_format))) {
+       if (!(FSL_ASRC_FORMATS & pcm_format_to_bits(asrc->asrc_format))) {
                dev_warn(&pdev->dev, "unsupported width, use default S24_LE\n");
                asrc->asrc_format = SNDRV_PCM_FORMAT_S24_LE;
        }