On Wed, May 23, 2018 at 5:12 PM, Heiko Stübner <heiko@xxxxxxxxx> wrote: > So the gpio controller should definitly also be a subnode. > > The gpio in question is called "mute", so I'd think the gpio-syscon driver > should just define a "rockchip,rk3328-gpio-mute" compatible and contain > all the register voodoo in the driver itself and not define it in the dt. > > So it should probably look like > > grf: syscon at ff100000 { > compatible = "rockchip,rk3328-grf", "syscon", "simple-mfd"; > > [all the other syscon sub-devices] > > gpio_mute: gpio-mute { > compatible = "rockchip,rk3328-gpio-mute"; > gpio-controller; > #gpio-cells = <2>; > }; I'm sceptic. That doesn't sound like "general purpose input output" at all. It sounds like special purpose, for a mute button. Does it use IRQ? I would recommend implementing drivers/input/keyboard/syscon-keys.c in the same vein as drivers/leds/leds-syscon.c so you can avoid indirection through GPIO for no good reason at all. I already have other good uses for such a generic input driver. Yours, Linus Walleij -- 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