> > >What about doing like > > > > gpio->secure = devm_platform_ioremap_resource_byname(pdev, "security"); > > > if (IS_ERR(gpio->secure)) > > > gpio->secure = devm_platform_ioremap_resource(pdev, 0); > > > if (IS_ERR(gpio->secure)) > > > return PTR_ERR(gpio->secure); > > > > > >and similar for gpio->base? > > > > Wouldn't this cause a redundant check if it had already succeeded in getting > > the resource by name? Also, could it happen that if the device tree is > > incorrect, then one of the resource is fetched by name and other by the index, > > which I guess, would mess things up. Just my random thoughts, not sure if it > > is valid enough. > > > > >Wouldn't the following be enough? > > > > > >- gpio->intc.name = pdev->dev.of_node->name; > > >+ gpio->intc.name = devm_kasprintf(&pdev->dev, "%pfw", > > >dev_fwnode(&pdev->dev)); > > >+ if (!gpio->intc.name) > > >+ > > > > How about this way? I feel it would be right to add the OF functions conditionally. > > Looks okay, although I have a question here. > > + if (pdev->dev.of_node) { > > Do we really need this check at all? If the OF-node is NULL then it > doesn't matter if other fields are filled or not, correct? > > What you need is #ifdef CONFIG_OF_GPIO (IIRC the name correctly). > > > + gpio->gpio.of_node = pdev->dev.of_node; > > + gpio->gpio.of_gpio_n_cells = 2; > > + gpio->gpio.of_xlate = tegra186_gpio_of_xlate; > > + } > > > > + gpio->intc.name = gpio->soc->name; Okay. It makes sense. Thanks Andy. I would make the changes and send out an updated patch. -- Best Regards, Akhil