#define VSP1_HAS_LIF           (1 << 0)
 #define VSP1_HAS_LUT           (1 << 1)
 #define VSP1_HAS_SRU           (1 << 2)
+#define VSP1_HAS_BRU           (1 << 3)
 
 struct vsp1_platform_data {
        unsigned int features;
 
        }
 
        /* Instantiate all the entities. */
-       vsp1->bru = vsp1_bru_create(vsp1);
-       if (IS_ERR(vsp1->bru)) {
-               ret = PTR_ERR(vsp1->bru);
-               goto done;
-       }
+       if (vsp1->pdata.features & VSP1_HAS_BRU) {
+               vsp1->bru = vsp1_bru_create(vsp1);
+               if (IS_ERR(vsp1->bru)) {
+                       ret = PTR_ERR(vsp1->bru);
+                       goto done;
+               }
 
-       list_add_tail(&vsp1->bru->entity.list_dev, &vsp1->entities);
+               list_add_tail(&vsp1->bru->entity.list_dev, &vsp1->entities);
+       }
 
        vsp1->hsi = vsp1_hsit_create(vsp1, true);
        if (IS_ERR(vsp1->hsi)) {
                return -EINVAL;
        }
 
+       pdata->features |= VSP1_HAS_BRU;
        pdata->num_bru_inputs = 4;
 
        return 0;