static int ad193x_mute(struct snd_soc_dai *dai, int mute)
 {
-       struct ad193x_priv *ad193x = snd_soc_codec_get_drvdata(dai->codec);
+       struct ad193x_priv *ad193x = snd_soc_component_get_drvdata(dai->component);
 
        if (mute)
                regmap_update_bits(ad193x->regmap, AD193X_DAC_CTRL2,
 static int ad193x_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
                               unsigned int rx_mask, int slots, int width)
 {
-       struct ad193x_priv *ad193x = snd_soc_codec_get_drvdata(dai->codec);
+       struct ad193x_priv *ad193x = snd_soc_component_get_drvdata(dai->component);
        unsigned int channels;
 
        switch (slots) {
 static int ad193x_set_dai_fmt(struct snd_soc_dai *codec_dai,
                unsigned int fmt)
 {
-       struct ad193x_priv *ad193x = snd_soc_codec_get_drvdata(codec_dai->codec);
+       struct ad193x_priv *ad193x = snd_soc_component_get_drvdata(codec_dai->component);
        unsigned int adc_serfmt = 0;
        unsigned int adc_fmt = 0;
        unsigned int dac_fmt = 0;
 static int ad193x_set_dai_sysclk(struct snd_soc_dai *codec_dai,
                int clk_id, unsigned int freq, int dir)
 {
-       struct snd_soc_codec *codec = codec_dai->codec;
-       struct ad193x_priv *ad193x = snd_soc_codec_get_drvdata(codec);
+       struct snd_soc_component *component = codec_dai->component;
+       struct ad193x_priv *ad193x = snd_soc_component_get_drvdata(component);
        switch (freq) {
        case 12288000:
        case 18432000:
                struct snd_soc_dai *dai)
 {
        int word_len = 0, master_rate = 0;
-       struct snd_soc_codec *codec = dai->codec;
-       struct ad193x_priv *ad193x = snd_soc_codec_get_drvdata(codec);
+       struct snd_soc_component *component = dai->component;
+       struct ad193x_priv *ad193x = snd_soc_component_get_drvdata(component);
 
        /* bit size */
        switch (params_width(params)) {
        .ops = &ad193x_dai_ops,
 };
 
-static int ad193x_codec_probe(struct snd_soc_codec *codec)
+static int ad193x_component_probe(struct snd_soc_component *component)
 {
-       struct ad193x_priv *ad193x = snd_soc_codec_get_drvdata(codec);
-       struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
+       struct ad193x_priv *ad193x = snd_soc_component_get_drvdata(component);
+       struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
        int num, ret;
 
        /* default setting for ad193x */
        if (ad193x_has_adc(ad193x)) {
                /* add adc controls */
                num = ARRAY_SIZE(ad193x_adc_snd_controls);
-               ret = snd_soc_add_codec_controls(codec,
+               ret = snd_soc_add_component_controls(component,
                                                 ad193x_adc_snd_controls,
                                                 num);
                if (ret)
        return 0;
 }
 
-static const struct snd_soc_codec_driver soc_codec_dev_ad193x = {
-       .probe = ad193x_codec_probe,
-       .component_driver = {
-               .controls               = ad193x_snd_controls,
-               .num_controls           = ARRAY_SIZE(ad193x_snd_controls),
-               .dapm_widgets           = ad193x_dapm_widgets,
-               .num_dapm_widgets       = ARRAY_SIZE(ad193x_dapm_widgets),
-               .dapm_routes            = audio_paths,
-               .num_dapm_routes        = ARRAY_SIZE(audio_paths),
-       },
+static const struct snd_soc_component_driver soc_component_dev_ad193x = {
+       .probe                  = ad193x_component_probe,
+       .controls               = ad193x_snd_controls,
+       .num_controls           = ARRAY_SIZE(ad193x_snd_controls),
+       .dapm_widgets           = ad193x_dapm_widgets,
+       .num_dapm_widgets       = ARRAY_SIZE(ad193x_dapm_widgets),
+       .dapm_routes            = audio_paths,
+       .num_dapm_routes        = ARRAY_SIZE(audio_paths),
+       .idle_bias_on           = 1,
+       .use_pmdown_time        = 1,
+       .endianness             = 1,
+       .non_legacy_dai_naming  = 1,
 };
 
 const struct regmap_config ad193x_regmap_config = {
 
        dev_set_drvdata(dev, ad193x);
 
-       return snd_soc_register_codec(dev, &soc_codec_dev_ad193x,
+       return devm_snd_soc_register_component(dev, &soc_component_dev_ad193x,
                &ad193x_dai, 1);
 }
 EXPORT_SYMBOL_GPL(ad193x_probe);