Re: [PATCH] reset: axs10x: Implement assert and deassert callbacks

From: Eugeniy Paltsev
Date: Fri Apr 12 2019 - 09:22:42 EST


Hi Vitor,

On Mon, 2019-04-08 at 13:25 +0000, Vitor Soares wrote:
> Hi Eugeniy,
>
> From: Eugeniy Paltsev <paltsev@xxxxxxxxxxxx>
> Date: Mon, Apr 08, 2019 at 12:40:00
>
> > Hi Vitor,
> >
> > On Mon, 2019-04-08 at 12:31 +0200, Vitor Soares wrote:
> > > Some custom IP-block connected to ARC AXS10x board need assert and
> > > deassert functions to control reset signal of selected peripherals.
> > >
> > > This patch improve AXS10x reset driver by adding assert and deassert
> > > callbacks.
> >
> >
> > In the AXS10x reset driver only 'reset' callback is intentionally
> > > implemented.
> >
> > AXS10x is FPGA based boards and with our default firmware AXS10x reset
> > > register is implemented as self-deasserted.
>
> I have another reset block connect through AXI.
>
> > Do you have somehow modified AXS10x firmware where reset register is not
> > > self-deasserted?
> >
> > In that case "simple-reset" driver will be suitable for you, I guess.
>
> I will try it.
>
> > Otherwise this implementation is incorrect - there should be no 'assert' for
> > > reset controller with self-deasserted logic.
>
> So the assert and reset callback are mutually exclusive?

Not actually.

Adding 'assert' callback is incorrect for exclusive reset controls in
case of self-deasserted reset controller.
It will cause reset_control_assert() to return success for exclusive
reset controls, even though the .assert op failed to leave the reset
line asserted after the function returns.


[snap]
>
> Best regards,
> Vitor Soares
>
--
Eugeniy Paltsev