From df08d2abad4af246f285528a33ad854122b0f4e9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 7 Sep 2021 14:49:00 +0100 Subject: [PATCH] reset: reset-brcmstb-rescal: Support shared use reset_control_reset should not be used with shared reset controllers. Add support for reset_control_assert and _deassert to get the desired behaviour and avoid ugly warnings in the kernel log. Signed-off-by: Phil Elwell --- drivers/reset/reset-brcmstb-rescal.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/reset/reset-brcmstb-rescal.c b/drivers/reset/reset-brcmstb-rescal.c index 8233177..89c1cae 100644 --- a/drivers/reset/reset-brcmstb-rescal.c +++ b/drivers/reset/reset-brcmstb-rescal.c @@ -20,6 +20,7 @@ struct brcm_rescal_reset { struct reset_controller_dev rcdev; }; +/* Also doubles a deassert */ static int brcm_rescal_reset_set(struct reset_controller_dev *rcdev, unsigned long id) { @@ -52,6 +53,13 @@ static int brcm_rescal_reset_set(struct reset_controller_dev *rcdev, return 0; } +/* A dummy function - deassert/reset does all the work */ +static int brcm_rescal_reset_assert(struct reset_controller_dev *rcdev, + unsigned long id) +{ + return 0; +} + static int brcm_rescal_reset_xlate(struct reset_controller_dev *rcdev, const struct of_phandle_args *reset_spec) { @@ -61,6 +69,8 @@ static int brcm_rescal_reset_xlate(struct reset_controller_dev *rcdev, static const struct reset_control_ops brcm_rescal_reset_ops = { .reset = brcm_rescal_reset_set, + .deassert = brcm_rescal_reset_set, + .assert = brcm_rescal_reset_assert, }; static int brcm_rescal_reset_probe(struct platform_device *pdev) -- 2.7.4