[PATCH 1/2] clk: sunxi-ng: Provide a default reset hook
icenowy at aosc.io
icenowy at aosc.io
Sun Aug 27 06:01:04 PDT 2017
在 2017-08-25 17:49,Maxime Ripard 写道:
> The reset hook was left implemented. Provide a dumb implementation so
> that
> client drivers can depend on it.
I think some clients should also convert to use this.
For example:
- The TCON driver in sun4i-drm. (It now uses reset_control_status, but
this is also not implemented in CCU.)
- The EPHY in dwmac-sun8i driver. (It uses explicit assert then
deassert)
P.S. maybe the status hook should also be implemented?
>
> Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
> ---
> drivers/clk/sunxi-ng/ccu_reset.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/clk/sunxi-ng/ccu_reset.c
> b/drivers/clk/sunxi-ng/ccu_reset.c
> index 6c31d48783a7..1dc4e98ea802 100644
> --- a/drivers/clk/sunxi-ng/ccu_reset.c
> +++ b/drivers/clk/sunxi-ng/ccu_reset.c
> @@ -8,6 +8,7 @@
> * the License, or (at your option) any later version.
> */
>
> +#include <linux/delay.h>
> #include <linux/io.h>
> #include <linux/reset-controller.h>
>
> @@ -49,7 +50,18 @@ static int ccu_reset_deassert(struct
> reset_controller_dev *rcdev,
> return 0;
> }
>
> +static int ccu_reset_reset(struct reset_controller_dev *rcdev,
> + unsigned long id)
> +{
> + ccu_reset_assert(rcdev, id);
> + udelay(10);
> + ccu_reset_deassert(rcdev, id);
> +
> + return 0;
> +}
> +
> const struct reset_control_ops ccu_reset_ops = {
> .assert = ccu_reset_assert,
> .deassert = ccu_reset_deassert,
> + .reset = ccu_reset_reset,
> };
More information about the linux-arm-kernel
mailing list