pinctrl: rockchip: fix rk3288 gpio0 configuration
authorSonny Rao <sonnyrao@chromium.org>
Fri, 1 Aug 2014 05:58:00 +0000 (22:58 -0700)
committerLinus Walleij <linus.walleij@linaro.org>
Sun, 17 Aug 2014 14:15:43 +0000 (09:15 -0500)
commit99e872d953fb4484029c12dce909f514ae095d8d
tree0a0ce3736255c5a49862b5552e7c92a03fef83c6
parent302fb1781783ded370f515e8e649b8285ee29cdc
pinctrl: rockchip: fix rk3288 gpio0 configuration

On rk3288, for gpio bank 0, the registers which configure pull-up,
iomux, and drive strength don't implement the enable bits in the upper
half of the register, unlike the other gpio configuration registers,
and so the kernel must perform a read-modify-write of the register to
update a particular gpio in that bank.

The current code is actually clobbering the contents of the register,
so this fixes it by using regmap_update_bits and masking out only the
bits which require updating.  In the case of bank0 on rk3288 the upper
enable bits will just get ignored, and the other configurations won't
get clobbered.

Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-rockchip.c