DEPRECATED MACRO ?

Hi,
I have the structure for a Vesper VM3011 MEMS microphone:

struct vm3011_config
{
   const struct device *i2c_dev;
   uint16_t i2c_address;

   gpio_pin_t data_pin;
   gpio_pin_t clk_pin;
   bool lr_pin_level;

#if defined(CONFIG_VM3011_INT)
   const char *gpio_port;
   gpio_pin_t dout_pin;
   gpio_dt_flags_t dout_flags;
#endif
};

In the 'overlay' file, I define it as hardware:

&i2c1 {
   clock-frequency = <I2C_BITRATE_FAST>;
   vm3011: vm3011@60  {
       compatible = "i2c-device";
       label = "VM3011";
       reg = <0x60>;
       clk-pin = <41>;
       data-pin = <27>;
       dout-gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>;
   };
};

/ {
  chosen {
     zephyr,console = &cdc_acm_uart0;
     zephyr,shell-uart = &cdc_acm_uart0;
     nordic,pm-ext-flash = &mx25r64;
  };

  aliases {
     mic0 = &i2c1;
  };
};
When I retrieve the properties from the '.c' file in this way:
static const struct vm3011_config vm3011_cfg = {
	.i2c_dev = DEVICE_DT_GET(DT_ALIAS(mic0)),
	.i2c_address = DT_INST_REG_ADDR(0),
	.data_pin = DT_INST_PROP(0, data_pin),
	.clk_pin = DT_INST_PROP(0, clk_pin),
	.lr_pin_level = DT_INST_PROP(0, lr_select),
#if defined(CONFIG_VM3011_INT)
	//.gpio_port = DT_INST_GPIO_LABEL(0, dout_gpios),
	.dout_pin = DT_INST_GPIO_PIN(0, dout_gpios),
	.dout_flags = DT_INST_GPIO_FLAGS(0, dout_gpios),
#endif
};
I encounter several compilation errors, so I have to retrieve them like this:
static const struct vm3011_config vm3011_cfg = {
    .i2c_dev = DEVICE_DT_GET(DT_ALIAS(mic0)),
    .i2c_address = (uint16_t)DT_REG_ADDR(DT_ALIAS(mic0)),
    .data_pin = 27,
    .clk_pin = 41,
    .lr_pin_level = true,
#if defined(CONFIG_VM3011_INT)
    .gpio_port = "gpio0",
    .dout_pin = 25,
    .dout_flags = GPIO_ACTIVE_HIGH,
#endif
};


This compiles, but I don't like hardcoding values in such an absolute way.
I believe these are Zephyr deprecations, but I cannot find relevant documentation.
Can you help me understand what's going on?

sdk 2.6.1   toolchain 2.7.0

Thank you.
BABOS

Related