* lvds1_gate and lvds2_gate are pseudo-gates.  Both can be
         * independently configured as clock inputs or outputs.  We treat
         * the "output_enable" bit as a gate, even though it's really just
-        * enabling clock output.
+        * enabling clock output. Initially the gate bits are cleared, as
+        * otherwise the exclusive configuration gets locked in the setup done
+        * by software running before the clock driver, with no way to change
+        * it.
         */
+       writel(readl(base + 0x160) & ~0x3c00, base + 0x160);
        clk[IMX6QDL_CLK_LVDS1_GATE] = imx_clk_gate_exclusive("lvds1_gate", "lvds1_sel", base + 0x160, 10, BIT(12));
        clk[IMX6QDL_CLK_LVDS2_GATE] = imx_clk_gate_exclusive("lvds2_gate", "lvds2_sel", base + 0x160, 11, BIT(13));