Thread (27 messages) 27 messages, 6 authors, 2021-08-12

Re: [PATCH v3 2/7] regulator: qca6390: add support for QCA639x powerup sequence

From: Bjorn Andersson <hidden>
Date: 2021-07-14 17:10:18
Also in: linux-arm-msm, linux-devicetree, lkml

On Wed 14 Jul 11:47 CDT 2021, Rob Herring wrote:
On Thu, Jul 08, 2021 at 02:37:44PM +0300, Dmitry Baryshkov wrote:
quoted
Hi,

On Thu, 8 Jul 2021 at 13:10, Ulf Hansson [off-list ref] wrote:
quoted
- Peter (the email was bouncing)
+ Peter's kernel.org address
quoted
On Tue, 6 Jul 2021 at 13:55, Mark Brown [off-list ref] wrote:
quoted
On Tue, Jul 06, 2021 at 09:54:03AM +0200, Ulf Hansson wrote:
quoted
On Tue, 22 Jun 2021 at 00:32, Dmitry Baryshkov
quoted
quoted
Qualcomm QCA6390/1 is a family of WiFi + Bluetooth SoCs, with BT part
being controlled through the UART and WiFi being present on PCIe
bus. Both blocks share common power sources. Add device driver handling
power sequencing of QCA6390/1.
quoted
Power sequencing of discoverable buses have been discussed several
times before at LKML. The last attempt [1] I am aware of, was in 2017
from Peter Chen. I don't think there is a common solution, yet.
This feels a bit different to the power sequencing problem - it's not
exposing the individual inputs to the device but rather is a block that
manages everything but needs a bit of a kick to get things going (I'd
guess that with ACPI it'd be triggered via AML).  It's in the same space
but it's not quite the same issue I think, something that can handle
control of the individual resources might still struggle with this.
Well, to me it looks very similar to those resouses we could manage
with the mmc pwrseq, for SDIO. It's also typically the same kind of
combo-chips that moved from supporting SDIO to PCIe, for improved
performance I guess. More importantly, the same constraint to
pre-power on the device is needed to allow it to be discovered/probed.
In our case we'd definitely use pwrseq for PCIe bus and we can also
benefit from using pwrseq for serdev and for platform busses also (for
the same story of WiFi+BT chips).

I can take a look at rewriting pwrseq code to also handle the PCIe
bus. Rewriting it to be a generic lib seems like an easy task,
plugging it into PCIe code would be more fun.

Platform and serdev... Definitely even more fun.
I don't want to see pwrseq (the binding) expanded to other buses. If 
that was the answer, we wouldn't be having this discussion. It was a 
mistake for MMC IMO. 
But what do you want to see?

We have a single piece of hardware that needs a specific power sequence,
which is interacted with using both UART and PCIe.
If pwrseq works as a kernel library/api, then I have no issue with that.
quoted
quoted
Therefore, I think it would be worth having a common solution for
this, rather than a solution per subsystem or even worse, per device.
Power sequencing requirements are inheritently per device unless we're 
talking about standard connectors. 
Do you mean "device" as in the IC or device as in struct device? Because
we do have one physical IC, that has a need for a specific power on
sequence, but we have two struct device, on two different busses in
Linux interacting with this thing.
This is a solved problem on MDIO. It's quite simple. If there's a DT 
node for a device you haven't discovered, then probe it anyways.
Okay, so DT tells us that there's actually a WiFi thing on the PCIe bus,
even though we can't find it, so we probe something...then what?

Regards,
Bjorn
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help