static int tegra_gpio_probe(struct platform_device *pdev)
 {
-       const struct tegra_gpio_soc_config *config;
        struct tegra_gpio_info *tgi;
        struct resource *res;
        struct tegra_gpio_bank *bank;
        int i;
        int j;
 
-       config = of_device_get_match_data(&pdev->dev);
-       if (!config) {
-               dev_err(&pdev->dev, "Error: No device match found\n");
-               return -ENODEV;
-       }
-
        tgi = devm_kzalloc(&pdev->dev, sizeof(*tgi), GFP_KERNEL);
        if (!tgi)
                return -ENODEV;
 
-       tgi->soc = config;
+       tgi->soc = of_device_get_match_data(&pdev->dev);
        tgi->dev = &pdev->dev;
 
        ret = platform_irq_count(pdev);
 
        platform_set_drvdata(pdev, tgi);
 
-       if (config->debounce_supported)
+       if (tgi->soc->debounce_supported)
                tgi->gc.set_config = tegra_gpio_set_config;
 
        tgi->bank_info = devm_kzalloc(&pdev->dev, tgi->bank_count *