usleep_range(5000, 10000);
        }
 
+       ctx->pre_enabled = true;
+}
+
+static void tc358762_enable(struct drm_bridge *bridge)
+{
+       struct tc358762 *ctx = bridge_to_tc358762(bridge);
+       int ret;
+
        ret = tc358762_init(ctx);
        if (ret < 0)
                dev_err(ctx->dev, "error initializing bridge (%d)\n", ret);
-
-       ctx->pre_enabled = true;
 }
 
 static int tc358762_attach(struct drm_bridge *bridge,
 static const struct drm_bridge_funcs tc358762_bridge_funcs = {
        .post_disable = tc358762_post_disable,
        .pre_enable = tc358762_pre_enable,
+       .enable = tc358762_enable,
        .attach = tc358762_attach,
 };