Re: [PATCH V2] spmi: pmic-arb: Enforce the ownership check optionally

From: Shawn Guo
Date: Fri Aug 25 2017 - 03:48:13 EST


On Thu, Aug 24, 2017 at 11:37:01AM -0700, Stephen Boyd wrote:
> On 08/24, Shawn Guo wrote:
> > On Tue, Aug 22, 2017 at 01:31:32PM -0700, Stephen Boyd wrote:
> > > Also, I see that on v4.13-rc series the read/write checks are
> > > causing the led driver to fail in a different way:
> > >
> > > spmi spmi-0: error: impermissible write to peripheral sid:0 addr:0xc040
> > > qcom-spmi-gpio 200f000.spmi:pm8916@0:gpios@c000: write 0x40 failed
> > > leds-gpio soc:leds: Error applying setting, reverse things back
> > > spmi spmi-0: error: impermissible write to peripheral sid:0 addr:0xc041
> > > qcom-spmi-gpio 200f000.spmi:pm8916@0:gpios@c000: write 0x41 failed
> > > leds-gpio: probe of soc:leds failed with error -1
> > >
> > > Are you seeing similar behavior?
> >
> > Yes. I forgot to mention that, and leds-gpio failure is gone after
> > applying Kiran's patch below.
> >
> > spmi: pmic-arb: remove the read/write access checks
> >
>
> Sure. Removing the checks will silence the warnings, but it still
> means that we're attempting to configure GPIOs that we shouldn't
> be configuring.

The driver is attempting to configure the GPIOs that device tree tells
to.

led@3 {
label = "apq8016-sbc:green:user3";
gpios = <&pm8916_gpios 1 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "mmc1";
default-state = "off";
};

Are you saying, in case of user3 led above, device tree shouldn't use
GPIO <&pm8916_gpios 1> there at all?

> Is there some sort of default configuration that
> gets applied to all pins by default?

I do not quite understand what you are asking and how that is related to
the thing we discuss here. But my understanding is that spmi_arb
read/write access is used not only by pinctrl API to set up pinmux for
GPIO function, but also by GPIO API to actually drive the GPIO.

Shawn