};
 
 struct rt5682s_platform_data {
-
-       int ldo1_en; /* GPIO for LDO1_EN */
-
        enum rt5682s_dmic1_data_pin dmic1_data_pin;
        enum rt5682s_dmic1_clk_pin dmic1_clk_pin;
        enum rt5682s_jd_src jd_src;
 
 #include <linux/platform_device.h>
 #include <linux/spi/spi.h>
 #include <linux/acpi.h>
-#include <linux/gpio.h>
-#include <linux/of_gpio.h>
+#include <linux/gpio/consumer.h>
 #include <linux/mutex.h>
 #include <sound/core.h>
 #include <sound/pcm.h>
        device_property_read_u32(dev, "realtek,amic-delay-ms",
                &rt5682s->pdata.amic_delay);
 
-       rt5682s->pdata.ldo1_en = of_get_named_gpio(dev->of_node,
-               "realtek,ldo1-en-gpios", 0);
-
        if (device_property_read_string_array(dev, "clock-output-names",
                                              rt5682s->pdata.dai_clk_names,
                                              RT5682S_DAI_NUM_CLKS) < 0)
                return ret;
        }
 
-       if (gpio_is_valid(rt5682s->pdata.ldo1_en)) {
-               if (devm_gpio_request_one(&i2c->dev, rt5682s->pdata.ldo1_en,
-                                         GPIOF_OUT_INIT_HIGH, "rt5682s"))
-                       dev_err(&i2c->dev, "Fail gpio_request gpio_ldo\n");
+       rt5682s->ldo1_en = devm_gpiod_get_optional(&i2c->dev,
+                                                  "realtek,ldo1-en",
+                                                  GPIOD_OUT_HIGH);
+       if (IS_ERR(rt5682s->ldo1_en)) {
+               dev_err(&i2c->dev, "Fail gpio request ldo1_en\n");
+               return PTR_ERR(rt5682s->ldo1_en);
        }
 
        /* Sleep for 50 ms minimum */
 
 
 #include <sound/rt5682s.h>
 #include <linux/regulator/consumer.h>
+#include <linux/gpio/consumer.h>
 #include <linux/clk.h>
 #include <linux/clkdev.h>
 #include <linux/clk-provider.h>
 struct rt5682s_priv {
        struct snd_soc_component *component;
        struct rt5682s_platform_data pdata;
+       struct gpio_desc *ldo1_en;
        struct regmap *regmap;
        struct snd_soc_jack *hs_jack;
        struct regulator_bulk_data supplies[RT5682S_NUM_SUPPLIES];