• Thomas Petazzoni's avatar
    ARM: dts: kirkwood: fix pin-muxing of MPP7 on OpenBlocks A7 · 56aeb07c
    Thomas Petazzoni authored
    MPP7 is currently muxed as "gpio", but this function doesn't exist for
    MPP7, only "gpo" is available. This causes the following error:
    
    kirkwood-pinctrl f1010000.pin-controller: unsupported function gpio on pin mpp7
    pinctrl core: failed to register map default (6): invalid type given
    kirkwood-pinctrl f1010000.pin-controller: error claiming hogs: -22
    kirkwood-pinctrl f1010000.pin-controller: could not claim hogs: -22
    kirkwood-pinctrl f1010000.pin-controller: unable to register pinctrl driver
    kirkwood-pinctrl: probe of f1010000.pin-controller failed with error -22
    
    So the pinctrl driver is not probed, all device drivers (including the
    UART driver) do a -EPROBE_DEFER, and therefore the system doesn't
    really boot (well, it boots, but with no UART, and no devices that
    require pin-muxing).
    
    Back when the Device Tree file for this board was introduced, the
    definition was already wrong. The pinctrl driver also always described
    as "gpo" this function for MPP7. However, between Linux 4.10 and 4.11,
    a hog pin failing to be muxed was turned from a simple warning to a
    hard error that caused the entire pinctrl driver probe to bail
    out. This is probably the result of commit 61187142 ("pinctrl:
    core: Fix pinctrl_register_and_init() with pinctrl_enable()").
    
    This commit fixes the Device Tree to use the proper "gpo" function for
    MPP7, which fixes the boot of OpenBlocks A7, which was broken since
    Linux 4.11.
    
    Fixes: f24b56cb
    
     ("ARM: kirkwood: add support for OpenBlocks A7 platform")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
    56aeb07c