* @platform: string used for HDaudio codec support
  * @codec_mask: used for HDAudio support
  * @common_hdmi_codec_drv: use commom HDAudio HDMI codec driver
+ * @link_mask: links enabled on the board
+ * @links: array of link _ADR descriptors, null terminated
  */
 struct snd_soc_acpi_mach_params {
        u32 acpi_ipc_irq_index;
        u32 codec_mask;
        u32 dmic_num;
        bool common_hdmi_codec_drv;
+       u32 link_mask;
+       const struct snd_soc_acpi_link_adr *links;
+};
+
+/**
+ * snd_soc_acpi_link_adr: ACPI-based list of _ADR, with a variable
+ * number of devices per link
+ *
+ * @mask: one bit set indicates the link this list applies to
+ * @num_adr: ARRAY_SIZE of adr
+ * @adr: array of _ADR (represented as u64).
+ */
+
+struct snd_soc_acpi_link_adr {
+       const u32 mask;
+       const u32 num_adr;
+       const u64 *adr;
 };
 
 /**
  *
  * @id: ACPI ID (usually the codec's) used to find a matching machine driver.
  * @link_mask: describes required board layout, e.g. for SoundWire.
+ * @links: array of link _ADR descriptors, null terminated.
  * @drv_name: machine driver name
  * @fw_filename: firmware file name. Used when SOF is not enabled.
  * @board: board name
 struct snd_soc_acpi_mach {
        const u8 id[ACPI_ID_LEN];
        const u32 link_mask;
+       const struct snd_soc_acpi_link_adr *links;
        const char *drv_name;
        const char *fw_filename;
        const char *board;