On 01/04/2022 12:35, Andy Shevchenko wrote: > Switch the code to use for_each_gpiochip_node() helper. > (...) > /* > * Iterate over all driver pin banks to find one matching the name of node, > * skipping optional "-gpio" node suffix. When found, assign node to the bank. > */ > -static void samsung_banks_of_node_get(struct device *dev, > - struct samsung_pinctrl_drv_data *d, > - struct device_node *node) > +static void samsung_banks_node_get(struct device *dev, struct samsung_pinctrl_drv_data *d) This is worth simplification anyway, so please split it to separate patch. > { > const char *suffix = "-gpio-bank"; > struct samsung_pin_bank *bank; > - struct device_node *child; > + struct fwnode_handle *child; > /* Pin bank names are up to 4 characters */ > char node_name[20]; > unsigned int i; > @@ -1038,17 +1037,17 @@ static void samsung_banks_of_node_get(struct device *dev, > continue; > } > > - for_each_child_of_node(node, child) { > - if (!of_find_property(child, "gpio-controller", NULL)) > - continue; This does not look equivalent. There are nodes without this property. > - if (of_node_name_eq(child, node_name)) > + for_each_gpiochip_node(dev, child) { > + struct device_node *np = to_of_node(child); > + > + if (of_node_name_eq(np, node_name)) > break; > - else if (of_node_name_eq(child, bank->name)) > + if (of_node_name_eq(np, bank->name)) > break; > } This patch has to wait till someone provides you a tested-by. I might do it around next week. Best regards, Krzysztof