struct i2c_algo_bit_data bit_data;
        struct i2c_gpio_platform_data pdata;
 #ifdef CONFIG_I2C_GPIO_FAULT_INJECTOR
-       struct dentry *debug_dir;
        /* these must be protected by bus lock */
        struct completion scl_irq_completion;
        u64 scl_irq_data;
 }
 
 #ifdef CONFIG_I2C_GPIO_FAULT_INJECTOR
-static struct dentry *i2c_gpio_debug_dir;
 
 #define setsda(bd, val)        ((bd)->setsda((bd)->data, val))
 #define setscl(bd, val)        ((bd)->setscl((bd)->data, val))
 {
        struct i2c_gpio_private_data *priv = platform_get_drvdata(pdev);
 
-       /*
-        * If there will be a debugfs-dir per i2c adapter somewhen, put the
-        * 'fault-injector' dir there. Until then, we have a global dir with
-        * all adapters as subdirs.
-        */
-       if (!i2c_gpio_debug_dir)
-               i2c_gpio_debug_dir = debugfs_create_dir("i2c-fault-injector", NULL);
-
-       priv->debug_dir = debugfs_create_dir(pdev->name, i2c_gpio_debug_dir);
-
        init_completion(&priv->scl_irq_completion);
 
-       debugfs_create_file_unsafe("incomplete_address_phase", 0200, priv->debug_dir,
+       debugfs_create_file_unsafe("incomplete_address_phase", 0200, priv->adap.debugfs,
                                   priv, &fops_incomplete_addr_phase);
-       debugfs_create_file_unsafe("incomplete_write_byte", 0200, priv->debug_dir,
+       debugfs_create_file_unsafe("incomplete_write_byte", 0200, priv->adap.debugfs,
                                   priv, &fops_incomplete_write_byte);
        if (priv->bit_data.getscl) {
-               debugfs_create_file_unsafe("inject_panic", 0200, priv->debug_dir,
+               debugfs_create_file_unsafe("inject_panic", 0200, priv->adap.debugfs,
                                           priv, &fops_inject_panic);
-               debugfs_create_file_unsafe("lose_arbitration", 0200, priv->debug_dir,
+               debugfs_create_file_unsafe("lose_arbitration", 0200, priv->adap.debugfs,
                                           priv, &fops_lose_arbitration);
        }
-       debugfs_create_file_unsafe("scl", 0600, priv->debug_dir, priv, &fops_scl);
-       debugfs_create_file_unsafe("sda", 0600, priv->debug_dir, priv, &fops_sda);
-}
-
-static void i2c_gpio_fault_injector_exit(struct platform_device *pdev)
-{
-       struct i2c_gpio_private_data *priv = platform_get_drvdata(pdev);
-
-       debugfs_remove_recursive(priv->debug_dir);
+       debugfs_create_file_unsafe("scl", 0600, priv->adap.debugfs, priv, &fops_scl);
+       debugfs_create_file_unsafe("sda", 0600, priv->adap.debugfs, priv, &fops_sda);
 }
 #else
 static inline void i2c_gpio_fault_injector_init(struct platform_device *pdev) {}
-static inline void i2c_gpio_fault_injector_exit(struct platform_device *pdev) {}
 #endif /* CONFIG_I2C_GPIO_FAULT_INJECTOR*/
 
 /* Get i2c-gpio properties from DT or ACPI table */
        struct i2c_gpio_private_data *priv;
        struct i2c_adapter *adap;
 
-       i2c_gpio_fault_injector_exit(pdev);
-
        priv = platform_get_drvdata(pdev);
        adap = &priv->adap;