Hi Jacopo, On Wednesday, January 25, 2017, Jacopo Mondi wrote: > + > + return 0; > + > +free_map: > + devm_kfree(rz_pinctrl->dev, *map); > +free_fngrps: > + devm_kfree(rz_pinctrl->dev, fngrps); > +free_pins: > + devm_kfree(rz_pinctrl->dev, mux_modes); > + devm_kfree(rz_pinctrl->dev, grpins); > + return ret; > +} Since one of the benefits of using devm_kzalloc is that if the probe fails and returns an error, all the memory associated with that device will automatically get freed, you 'might' not need this code to free memory. I say might because I'm not sure if returning an error here will kill the driver or not. But, might be interesting to look into. > +#define RZ_PIN_NAME(bank, pin) \ > + PIN_##bank##_##pin > + > +#define RZ_PIN_DESC(b, p) \ > + { .number = RZ_PIN_NAME(b, p), \ > + .name = __stringify(RZ_PIN_NAME(b, p)), \ The hardware manual uses the names "P1_0" for ports, so it might be better to match that format for consistency. Chris -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html