rockchip: rk3399: Add improved pinctrl driver.
authorChristoph Muellner <christoph.muellner@theobroma-systems.com>
Wed, 2 Jan 2019 14:09:19 +0000 (15:09 +0100)
committerPhilipp Tomsich <philipp.tomsich@theobroma-systems.com>
Wed, 2 Jan 2019 21:39:04 +0000 (22:39 +0100)
commit600888110d32a6c2c343e1cc3fa3ef040f4031d7
tree391fff9d35c7b4caad43f6d66294969bddf6e5a3
parent5ff776889212c080e3d1a33634ac904405ed6845
rockchip: rk3399: Add improved pinctrl driver.

The current pinctrl driver for the RK3399 has a range of qulity issues.
E.g. it only implements the .set_state_simple() callback, it
does not parse the available pinctrl information from the DTS
(instead uses hardcoded values), is not flexible enough to cover
devices without 'interrupt' field in the DTS (e.g. PWM),
is not written generic enough to make code reusable among other
rockchip SoCs...

This patch addresses these issues by reimplementing the whole driver
from scratch using the .set_state() callback.
The new implementation covers all featurese of the old code
(i.e. it supports pinmuxing and pullup/pulldown configuration).

This patch has been tested on a RK3399-Q7 SoM (Puma).

Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
drivers/pinctrl/rockchip/pinctrl_rk3399.c