Re: [PATCH 2/2] Input: pm8941-pwrkey: Introduce reboot mode support

From: Sebastian Reichel
Date: Tue Jun 20 2017 - 10:27:22 EST


Hi,

On Thu, Jun 15, 2017 at 04:38:34PM -0500, Rob Herring wrote:
> On Thu, Jun 15, 2017 at 1:33 PM, Bjorn Andersson
> <bjorn.andersson@xxxxxxxxxx> wrote:
> > On Thu 15 Jun 09:26 PDT 2017, Sebastian Reichel wrote:
> >
> >> Hi,
> >>
> >> On Mon, Jun 12, 2017 at 04:32:03PM -0700, Bjorn Andersson wrote:
> > [..]
> >> > As such if we split the non-input related handling into another driver
> >> > we would need to make the input driver create a subdevice during probe -
> >> > or create a new pon-driver with a new compatible that internally spawns
> >> > the pwrkey driver. Neither seems desirable to me...
> >>
> >> The pon-driver would have been the proper solution, but with the
> >> binding already being defined that's no longer a nice option :(
> >>
> >
> > We have a binding for the "qcom,pm8941-pwrkey", but as long as we
> > maintain the compatibility in the input driver with this we could come
> > up with a new binding for the "pon" block.
>
> Yes. My only objection was having the pon node with child devices
> purely because that is how Linux splits the driver.


So maybe 'compatible = "qcom,pm8041-pon", "qcom,pm8941-pwrkey";'
with pm8941-pwrkey being marked as deprecated in the binding?

> >> > The features of the PON block not yet shown on LKML are status registers
> >> > to indicate the reason for powering up the PMIC and a watchdog (which I
> >> > don't believe is used or exposed today).
> >>
> >> So we have a block, which has watchdog, powerdown, reboot, boot-reason,
> >> reboot-mode and power key. To me that does not look like it should be
> >> one driver.
> >>
> >
> > Unfortunately I do agree with this.
>
> As do I. But that is a separate decision from DT bindings.

not much of a discussion if everyone agrees? :)

> > It would make sense to describe the pon in a single DT-node and have a
> > pon-driver spawning off individual driver for each functionality. That
> > way we get a clean representation in DT and we get clean implementation
> > of each component...
>
> My objection here is we should not just create child nodes to align
> with current Linux driver needs.

Ack.

> That said, child nodes do sometimes make sense. If, for example,
> the key function was not fixed and you needed to configure what
> key function is used, then probably a child node makes sense.

Ack.

> It's always possible to add child nodes later without breaking
> compatibility. It's hard to remove them.

I don't think so. Adding a child node means, that we want to do
something based on the existance of this child node. So something,
that worked without the child node before no longer works
afterwards.

OTOH removing a child node means, that the child node is not needed
and stuff will work without it => system still works.

-- Sebastian

Attachment: signature.asc
Description: PGP signature