On Thu, May 04, 2017 at 09:49:59PM +0800, Icenowy Zheng wrote: > static const struct of_device_id sun4i_a10_pinctrl_match[] = { > - { .compatible = "allwinner,sun4i-a10-pinctrl", }, > + { > + .compatible = "allwinner,sun4i-a10-pinctrl", > + .data = (void *)PINCTRL_SUN4I_A10 > + }, > + { > + .compatible = "allwinner,sun7i-a20-pinctrl", > + .data = (void *)PINCTRL_SUN7I_A20 > + }, > {} > }; This means you're going to have two drivers probing for the same device: this driver, and the old one. This is not ok, and probably introduces some corner cases. Maxime -- Maxime Ripard, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com