pinctrl: samsung: support a bus clock
authorAndré Draszik <andre.draszik@linaro.org>
Fri, 26 Apr 2024 13:25:15 +0000 (14:25 +0100)
committerKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Mon, 29 Apr 2024 17:19:30 +0000 (19:19 +0200)
commitf9c74474797351c60e009ebc59a798fcfd93ee57
tree7b0735ff5e113cedca0ca6b25cda2932126b96a8
parentdff9f3fb6ba4f74eb805bc172cc16ff2c91648bf
pinctrl: samsung: support a bus clock

On some Samsung-based SoCs there are separate bus clocks / gates each
for each pinctrl instance. To be able to access each pinctrl instance's
registers, this bus clock needs to be running, otherwise register
access will hang. Google Tensor gs101 is one example for such an
implementation.

Update the driver to handle this optional bus clock:
* handle an optional bus clock from DT
* prepare it during driver probe
* enclose all relevant register accesses with a clock enable & disable

Signed-off-by: André Draszik <andre.draszik@linaro.org>
Link: https://lore.kernel.org/r/20240426-samsung-pinctrl-busclock-v3-2-adb8664b8a7e@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
drivers/pinctrl/samsung/pinctrl-exynos.c
drivers/pinctrl/samsung/pinctrl-samsung.c
drivers/pinctrl/samsung/pinctrl-samsung.h