From 87b1126181f79fb2558652af0d7fafd9deaab5f3 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(+) --- 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 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(struc 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)