}
        drm_connector_list_iter_end(&conn_iter);
 
-       if (connector && connector->display_info.num_bus_formats) {
-               u32 bus_format = connector->display_info.bus_formats[0];
-
-               switch (bus_format) {
-               case MEDIA_BUS_FMT_RGB888_1X24:
-                       dpi_c |= VC4_SET_FIELD(DPI_FORMAT_24BIT_888_RGB,
-                                              DPI_FORMAT);
-                       break;
-               case MEDIA_BUS_FMT_BGR888_1X24:
-                       dpi_c |= VC4_SET_FIELD(DPI_FORMAT_24BIT_888_RGB,
-                                              DPI_FORMAT);
-                       dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR, DPI_ORDER);
-                       break;
-               case MEDIA_BUS_FMT_RGB666_1X24_CPADHI:
-                       dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_2,
-                                              DPI_FORMAT);
-                       break;
-               case MEDIA_BUS_FMT_RGB666_1X18:
-                       dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1,
-                                              DPI_FORMAT);
-                       break;
-               case MEDIA_BUS_FMT_RGB565_1X16:
-                       dpi_c |= VC4_SET_FIELD(DPI_FORMAT_16BIT_565_RGB_3,
-                                              DPI_FORMAT);
-                       break;
-               default:
-                       DRM_ERROR("Unknown media bus format %d\n", bus_format);
-                       break;
+       if (connector) {
+               if (connector->display_info.num_bus_formats) {
+                       u32 bus_format = connector->display_info.bus_formats[0];
+
+                       switch (bus_format) {
+                       case MEDIA_BUS_FMT_RGB888_1X24:
+                               dpi_c |= VC4_SET_FIELD(DPI_FORMAT_24BIT_888_RGB,
+                                                      DPI_FORMAT);
+                               break;
+                       case MEDIA_BUS_FMT_BGR888_1X24:
+                               dpi_c |= VC4_SET_FIELD(DPI_FORMAT_24BIT_888_RGB,
+                                                      DPI_FORMAT);
+                               dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR,
+                                                      DPI_ORDER);
+                               break;
+                       case MEDIA_BUS_FMT_RGB666_1X24_CPADHI:
+                               dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_2,
+                                                      DPI_FORMAT);
+                               break;
+                       case MEDIA_BUS_FMT_RGB666_1X18:
+                               dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1,
+                                                      DPI_FORMAT);
+                               break;
+                       case MEDIA_BUS_FMT_RGB565_1X16:
+                               dpi_c |= VC4_SET_FIELD(DPI_FORMAT_16BIT_565_RGB_3,
+                                                      DPI_FORMAT);
+                               break;
+                       default:
+                               DRM_ERROR("Unknown media bus format %d\n",
+                                         bus_format);
+                               break;
+                       }
                }
+
+               if (connector->display_info.bus_flags & DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE)
+                       dpi_c |= DPI_PIXEL_CLK_INVERT;
+
+               if (connector->display_info.bus_flags & DRM_BUS_FLAG_DE_LOW)
+                       dpi_c |= DPI_OUTPUT_ENABLE_INVERT;
        } else {
                /* Default to 24bit if no connector found. */
                dpi_c |= VC4_SET_FIELD(DPI_FORMAT_24BIT_888_RGB, DPI_FORMAT);