struct device_node *port_codec = ep_to_port(ep_codec);
        struct device_node *ports_cpu = port_to_ports(port_cpu);
        struct device_node *ports_codec = port_to_ports(port_codec);
+       enum snd_soc_trigger_order trigger_start = SND_SOC_TRIGGER_ORDER_DEFAULT;
+       enum snd_soc_trigger_order trigger_stop  = SND_SOC_TRIGGER_ORDER_DEFAULT;
        bool playback_only = 0, capture_only = 0;
        int ret;
 
        of_property_read_u32(ep_cpu,            "mclk-fs", &dai_props->mclk_fs);
        of_property_read_u32(ep_codec,          "mclk-fs", &dai_props->mclk_fs);
 
+       graph_util_parse_trigger_order(priv, top,               &trigger_start, &trigger_stop);
+       graph_util_parse_trigger_order(priv, ports_cpu,         &trigger_start, &trigger_stop);
+       graph_util_parse_trigger_order(priv, ports_codec,       &trigger_start, &trigger_stop);
+       graph_util_parse_trigger_order(priv, port_cpu,          &trigger_start, &trigger_stop);
+       graph_util_parse_trigger_order(priv, port_cpu,          &trigger_start, &trigger_stop);
+       graph_util_parse_trigger_order(priv, ep_cpu,            &trigger_start, &trigger_stop);
+       graph_util_parse_trigger_order(priv, ep_codec,          &trigger_start, &trigger_stop);
+
        dai_link->playback_only = playback_only;
        dai_link->capture_only  = capture_only;
 
+       dai_link->trigger_start = trigger_start;
+       dai_link->trigger_stop  = trigger_stop;
+
        dai_link->init          = simple_util_dai_init;
        dai_link->ops           = &graph_ops;
        if (priv->ops)