diff --git a/vpd-manager/manager.cpp b/vpd-manager/manager.cpp
index d3e7e9c..8d60014 100644
--- a/vpd-manager/manager.cpp
+++ b/vpd-manager/manager.cpp
@@ -536,6 +536,18 @@
                               errIntfForGpioError, sdBus);
                 }
             }
+            else
+            {
+                // bind the LED driver
+                string chipAddr = singleFru.value("pcaChipAddress", "");
+                cout << "performVPDRecollection: Executing driver binding for "
+                        "chip "
+                        "address - "
+                     << chipAddr << endl;
+
+                executeCmd(createBindUnbindDriverCmnd(chipAddr, "i2c",
+                                                      "leds-pca955x", "/bind"));
+            }
         }
     }
 }
@@ -594,6 +606,17 @@
                 // If not, then take failure postAction
                 executePostFailAction(jsonFile, vpdFilePath);
             }
+            else
+            {
+                // bind the LED driver
+                string chipAddr = jsonFile["frus"][vpdFilePath].at(0).value(
+                    "pcaChipAddress", "");
+                cout << "Executing driver binding for chip address - "
+                     << chipAddr << endl;
+
+                executeCmd(createBindUnbindDriverCmnd(chipAddr, "i2c",
+                                                      "leds-pca955x", "/bind"));
+            }
         }
         return;
     }
@@ -682,6 +705,16 @@
             Argument::ARGUMENT_VALUE(std::string(path).c_str()));
     }
 
+    inventory::Path& vpdFilePath = std::get<0>(frus.find(path)->second);
+
+    string chipAddress =
+        jsonFile["frus"][vpdFilePath].at(0).value("pcaChipAddress", "");
+
+    // Unbind the LED driver for this FRU
+    cout << "Unbinding device- " << chipAddress << endl;
+    executeCmd(createBindUnbindDriverCmnd(chipAddress, "i2c", "leds-pca955x",
+                                          "/unbind"));
+
     // if the FRU is not present then log error
     if (readBusProperty(path, "xyz.openbmc_project.Inventory.Item",
                         "Present") == "false")
