{}
};
+static const struct snd_soc_acpi_adr_device rt712_vb_l1u0_adr[] = {
+ {
+ .adr = 0x000130025D071201ull,
+ /*
+ * On this platform speakers are provided by two TAS2783 amps,
+ * so the AIF2 amp path is left unused: jack + DMIC only.
+ */
+ .num_endpoints = ARRAY_SIZE(jack_dmic_endpoints),
+ .endpoints = jack_dmic_endpoints,
+ .name_prefix = "rt712"
+ }
+};
+
+/*
+ * Unique ID 0xC drives the left speaker and 0x9 the right one. The order of the
+ * entries matters as much as the endpoints: asoc_sdw_parse_sdw_endpoints()
+ * appends them to the dailink in array order and sdw_compute_slave_ports()
+ * hands out payload block offsets in that same order, so the first entry is the
+ * one that receives channel 0.
+ */
+static const struct snd_soc_acpi_adr_device tas2783x2_l0u9c_adr[] = {
+ {
+ .adr = 0x00003C0102000001ull,
+ .num_endpoints = 1,
+ .endpoints = &spk_l_endpoint,
+ .name_prefix = "tas2783-1",
+ },
+ {
+ .adr = 0x0000390102000001ull,
+ .num_endpoints = 1,
+ .endpoints = &spk_r_endpoint,
+ .name_prefix = "tas2783-2",
+ },
+};
+
+/* HP OmniBook X Flip 14-kc0xxx (board 8EA1) */
+static const struct snd_soc_acpi_link_adr acp70_tas2783x2_l0u9c_rt712_vb_l1u0[] = {
+ {
+ .mask = BIT(0),
+ .num_adr = ARRAY_SIZE(tas2783x2_l0u9c_adr),
+ .adr_d = tas2783x2_l0u9c_adr,
+ },
+ {
+ .mask = BIT(1),
+ .num_adr = ARRAY_SIZE(rt712_vb_l1u0_adr),
+ .adr_d = rt712_vb_l1u0_adr,
+ },
+ {}
+};
+
static const struct snd_soc_acpi_endpoint rt721_endpoints[] = {
{ /* Jack Playback/Capture Endpoint (AIF1) */
.num = 0,
.links = acp70_tas2783_2,
.drv_name = "amd_sdw",
},
+ {
+ .link_mask = BIT(0) | BIT(1),
+ .links = acp70_tas2783x2_l0u9c_rt712_vb_l1u0,
+ .machine_check = snd_soc_acpi_amd_sdca_is_device_rt712_vb,
+ .drv_name = "amd_sdw",
+ },
{
.link_mask = BIT(0) | BIT(1),
.links = acp70_rt1320_l0_rt722_l1,