linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Bartosz Golaszewski <brgl@bgdev.pl>,
	Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>
Cc: neil.armstrong@linaro.org, Marcel Holtmann <marcel@holtmann.org>,
	Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
	"David S . Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Kalle Valo <kvalo@kernel.org>,
	Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konrad.dybcio@linaro.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Saravana Kannan <saravanak@google.com>,
	Geert Uytterhoeven <geert+renesas@glider.be>,
	Arnd Bergmann <arnd@arndb.de>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Alex Elder <elder@linaro.org>,
	Srini Kandagatla <srinivas.kandagatla@linaro.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Abel Vesa <abel.vesa@linaro.org>,
	Manivannan Sadhasivam <mani@kernel.org>,
	Lukas Wunner <lukas@wunner.de>,
	linux-bluetooth@vger.kernel.org, netdev@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-wireless@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org,
	linux-pm@vger.kernel.org,
	Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Subject: Re: [PATCH v5 00/18] power: sequencing: implement the subsystem and add first users
Date: Sat, 24 Feb 2024 09:52:18 +0100	[thread overview]
Message-ID: <50ab0f43-9dd0-414c-b722-a406e04d9a48@linaro.org> (raw)
In-Reply-To: <CAMRc=MfkQuaJ3FnVwbVKQRQEgmJKbZh7SJoK3Kbmb5ebzE2rKA@mail.gmail.com>

On 22/02/2024 13:50, Bartosz Golaszewski wrote:
> On Thu, Feb 22, 2024 at 1:47 PM Dmitry Baryshkov
> <dmitry.baryshkov@linaro.org> wrote:
>>
>> On Thu, 22 Feb 2024 at 14:27, Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>>>
>>> On Thu, Feb 22, 2024 at 12:27 PM Dmitry Baryshkov
>>> <dmitry.baryshkov@linaro.org> wrote:
>>>>
>>>> On Thu, 22 Feb 2024 at 13:00, Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>>>>>
>>>>> On Mon, Feb 19, 2024 at 11:21 PM Dmitry Baryshkov
>>>>> <dmitry.baryshkov@linaro.org> wrote:
>>>>>>
>>>>>> On Mon, 19 Feb 2024 at 19:18, <neil.armstrong@linaro.org> wrote:
>>>>>>>
>>>>>>> On 19/02/2024 13:33, Dmitry Baryshkov wrote:
>>>>>>>> On Mon, 19 Feb 2024 at 14:23, Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>>>>>>>>>
>>>>>>>>> On Mon, Feb 19, 2024 at 11:26 AM Dmitry Baryshkov
>>>>>>>>> <dmitry.baryshkov@linaro.org> wrote:
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> [snip]
>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> For WCN7850 we hide the existence of the PMU as modeling it is simply not
>>>>>>>>>>>>>>> necessary. The BT and WLAN devices on the device-tree are represented as
>>>>>>>>>>>>>>> consuming the inputs (relevant to the functionality of each) of the PMU
>>>>>>>>>>>>>>> directly.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> We are describing the hardware. From the hardware point of view, there
>>>>>>>>>>>>>> is a PMU. I think at some point we would really like to describe all
>>>>>>>>>>>>>> Qualcomm/Atheros WiFI+BT units using this PMU approach, including the
>>>>>>>>>>>>>> older ath10k units present on RB3 (WCN3990) and db820c (QCA6174).
>>>>>>>>>>>>>
>>>>>>>>>>>>> While I agree with older WiFi+BT units, I don't think it's needed for
>>>>>>>>>>>>> WCN7850 since BT+WiFi are now designed to be fully independent and PMU is
>>>>>>>>>>>>> transparent.
>>>>>>>>>>>>
>>>>>>>>>>>> I don't see any significant difference between WCN6750/WCN6855 and
>>>>>>>>>>>> WCN7850 from the PMU / power up point of view. Could you please point
>>>>>>>>>>>> me to the difference?
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> The WCN7850 datasheet clearly states there's not contraint on the WLAN_EN
>>>>>>>>>>> and BT_EN ordering and the only requirement is to have all input regulators
>>>>>>>>>>> up before pulling up WLAN_EN and/or BT_EN.
>>>>>>>>>>>
>>>>>>>>>>> This makes the PMU transparent and BT and WLAN can be described as independent.
>>>>>>>>>>
>>>>>>>>>>  From the hardware perspective, there is a PMU. It has several LDOs. So
>>>>>>>>>> the device tree should have the same style as the previous
>>>>>>>>>> generations.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> My thinking was this: yes, there is a PMU but describing it has no
>>>>>>>>> benefit (unlike QCA6x90). If we do describe, then we'll end up having
>>>>>>>>> to use pwrseq here despite it not being needed because now we won't be
>>>>>>>>> able to just get regulators from WLAN/BT drivers directly.
>>>>>>>>>
>>>>>>>>> So I also vote for keeping it this way. Let's go into the package
>>>>>>>>> detail only if it's required.
>>>>>>>>
>>>>>>>> The WiFi / BT parts are not powered up by the board regulators. They
>>>>>>>> are powered up by the PSU. So we are not describing it in the accurate
>>>>>>>> way.
>>>>>>>
>>>>>>> I disagree, the WCN7850 can also be used as a discrete PCIe M.2 card, and in
>>>>>>> this situation the PCIe part is powered with the M.2 slot and the BT side
>>>>>>> is powered separately as we currently do it now.
>>>>>>
>>>>>> QCA6390 can also be used as a discrete M.2 card.
>>>>>>
>>>>>>> So yes there's a PMU, but it's not an always visible hardware part, from the
>>>>>>> SoC PoV, only the separate PCIe and BT subsystems are visible/controllable/powerable.
>>>>>>
>>>>>> From the hardware point:
>>>>>> - There is a PMU
>>>>>> - The PMU is connected to the board supplies
>>>>>> - Both WiFi and BT parts are connected to the PMU
>>>>>> - The BT_EN / WLAN_EN pins are not connected to the PMU
>>>>>>
>>>>>> So, not representing the PMU in the device tree is a simplification.
>>>>>>
>>>>>
>>>>> What about the existing WLAN and BT users of similar packages? We
>>>>> would have to deprecate a lot of existing bindings. I don't think it's
>>>>> worth it.
>>>>
>>>> We have bindings that are not reflecting the hardware. So yes, we
>>>> should gradually update them once the powerseq is merged.
>>>>
>>>>> The WCN7850 is already described in bindings as consuming what is PMUs
>>>>> inputs and not its outputs.
>>>>
>>>> So do WCN6855 and QCA6391 BlueTooth parts.
>>>>
>>>
>>> That is not true for the latter, this series is adding regulators for it.
>>
>> But the bindings exist already, so you still have to extend it,
>> deprecating regulator-less bindings.
>>
>> Bartosz, I really don't understand what is the issue there. There is a
>> PMU. As such it should be represented in the DT and it can be handled
>> by the same driver as you are adding for QCA6390.
>>
> 
> The issue is that we'll pull in the pwrseq subsystem for WCN7850 which
> clearly does not require it in practice.
> 
> I'd like to hear Krzysztof, Conor or Rob chime in here and make the
> decision on how to proceed.

There's like 12 emails here, so please don't just point "MR X, please
read everything to find the question I want to ask", but just ask the
question with short intro. We all (and I bet you as well) are way too
busy to read long threads...

If I got it correctly, you ask if some other, existing QCA/WCN chips
should be changed to this PMU approach?

If yes, then:
1. It depends whether they have the PMU, so some sort of analysis of
datasheet should be done.
2. You could but you don't have to. Bindings were done, they represent
the hardware more-or-less, maybe less, but still good enough.
3. It does not have to impact actual behavior of Linux. You don't have
to bind entire pwrseq driver to that QCA/WCN compatible. Anyway Linux
behavior is here a bit separate question - it can change, it can stay
the same, up to you.

Best regards,
Krzysztof


  parent reply	other threads:[~2024-02-24  8:52 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-16 20:31 [PATCH v5 00/18] power: sequencing: implement the subsystem and add first users Bartosz Golaszewski
2024-02-16 20:31 ` [PATCH v5 01/18] of: Add cleanup.h based auto release via __free(device_node) markings Bartosz Golaszewski
2024-02-16 20:31 ` [PATCH v5 02/18] arm64: defconfig: enable ath12k as a module Bartosz Golaszewski
2024-02-19  7:31   ` Krzysztof Kozlowski
2024-02-19  7:56     ` Bartosz Golaszewski
2024-02-16 20:32 ` [PATCH v5 03/18] dt-bindings: regulator: describe the PMU module of the QCA6390 package Bartosz Golaszewski
2024-02-17 15:48   ` Mark Brown
2024-02-17 18:32     ` Bartosz Golaszewski
2024-02-17 20:43       ` Mark Brown
2024-02-19  7:32       ` Krzysztof Kozlowski
2024-02-19 12:53         ` Bartosz Golaszewski
2024-02-19 21:23           ` Krzysztof Kozlowski
2024-02-19  7:34   ` Krzysztof Kozlowski
2024-02-16 20:32 ` [PATCH v5 04/18] dt-bindings: net: bluetooth: qualcomm: describe regulators for QCA6390 Bartosz Golaszewski
2024-02-19  7:34   ` Krzysztof Kozlowski
2024-02-16 20:32 ` [PATCH v5 05/18] dt-bindings: new: wireless: qcom,ath11k: describe the ath11k on QCA6390 Bartosz Golaszewski
2024-02-16 20:32 ` [PATCH v5 06/18] dt-bindings: new: wireless: describe the ath12k PCI module Bartosz Golaszewski
2024-02-17  6:34   ` Kalle Valo
2024-02-17 18:30     ` Bartosz Golaszewski
2024-02-17 20:02       ` Jeff Johnson
2024-02-19  7:38   ` Krzysztof Kozlowski
2024-02-22 23:56   ` Rob Herring
2024-02-16 20:32 ` [PATCH v5 07/18] arm64: dts: qcom: sm8550-qrd: add the Wifi node Bartosz Golaszewski
2024-02-16 20:32 ` [PATCH v5 08/18] arm64: dts: qcom: sm8650-qrd: " Bartosz Golaszewski
2024-02-16 23:09   ` Dmitry Baryshkov
2024-02-17 18:53     ` Bartosz Golaszewski
2024-02-16 20:32 ` [PATCH v5 09/18] arm64: dts: qcom: qrb5165-rb5: model the PMU of the QCA6391 Bartosz Golaszewski
2024-02-19 18:03   ` Mark Brown
2024-02-19 18:48     ` Bartosz Golaszewski
2024-02-19 19:59       ` Mark Brown
2024-02-20 11:16         ` Bartosz Golaszewski
2024-02-20 13:31           ` Mark Brown
2024-02-20 13:38             ` Bartosz Golaszewski
2024-02-20 13:48               ` Mark Brown
2024-02-20 13:51                 ` Bartosz Golaszewski
2024-02-20 14:10                   ` Mark Brown
2024-02-20 16:30           ` Dmitry Baryshkov
2024-02-20 17:53             ` Bartosz Golaszewski
2024-02-20 18:11               ` Dmitry Baryshkov
2024-02-16 20:32 ` [PATCH v5 10/18] PCI: hold the rescan mutex when scanning for the first time Bartosz Golaszewski
2024-02-16 20:32 ` [PATCH v5 11/18] PCI/pwrctl: reuse the OF node for power controlled devices Bartosz Golaszewski
2024-02-16 20:32 ` [PATCH v5 12/18] PCI/pwrctl: create platform devices for child OF nodes of the port node Bartosz Golaszewski
2024-02-16 20:32 ` [PATCH v5 13/18] PCI/pwrctl: add PCI power control core code Bartosz Golaszewski
2024-02-16 20:32 ` [PATCH v5 14/18] PCI/pwrctl: add a power control driver for WCN7850 Bartosz Golaszewski
2024-02-19 17:49   ` Mark Brown
2024-02-20 11:22     ` Bartosz Golaszewski
2024-02-20 12:47       ` Mark Brown
2024-02-20 21:21         ` Konrad Dybcio
2024-02-20 23:44           ` Mark Brown
2024-02-22  9:22             ` Bartosz Golaszewski
2024-02-22 12:21               ` Mark Brown
2024-02-22 12:26                 ` Bartosz Golaszewski
2024-02-22 13:15                   ` Mark Brown
2024-02-22 13:26                     ` Bartosz Golaszewski
2024-02-16 20:32 ` [PATCH v5 15/18] power: sequencing: implement the pwrseq core Bartosz Golaszewski
2024-02-16 20:32 ` [PATCH v5 16/18] power: pwrseq: add a driver for the QCA6390 PMU module Bartosz Golaszewski
2024-02-16 23:17   ` Dmitry Baryshkov
2024-02-17 19:09     ` Bartosz Golaszewski
2024-02-16 20:32 ` [PATCH v5 17/18] Bluetooth: qca: use the power sequencer for QCA6390 Bartosz Golaszewski
2024-02-16 20:32 ` [PATCH v5 18/18] PCI/pwrctl: add a PCI power control driver for power sequenced devices Bartosz Golaszewski
2024-02-18 12:53 ` [PATCH v5 00/18] power: sequencing: implement the subsystem and add first users Dmitry Baryshkov
2024-02-19  8:14   ` Neil Armstrong
2024-02-19  9:22     ` Dmitry Baryshkov
2024-02-19  9:42       ` neil.armstrong
2024-02-19 10:26         ` Dmitry Baryshkov
2024-02-19 12:23           ` Bartosz Golaszewski
2024-02-19 12:33             ` Dmitry Baryshkov
2024-02-19 17:18               ` neil.armstrong
2024-02-19 22:21                 ` Dmitry Baryshkov
2024-02-22 11:00                   ` Bartosz Golaszewski
2024-02-22 11:26                     ` Dmitry Baryshkov
2024-02-22 12:27                       ` Bartosz Golaszewski
2024-02-22 12:47                         ` Dmitry Baryshkov
2024-02-22 12:50                           ` Bartosz Golaszewski
2024-02-22 13:46                             ` neil.armstrong
2024-02-24  8:52                             ` Krzysztof Kozlowski [this message]
2024-02-19  8:16 ` Neil Armstrong
2024-03-05 12:50 ` Amit Pundir

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50ab0f43-9dd0-414c-b722-a406e04d9a48@linaro.org \
    --to=krzysztof.kozlowski@linaro.org \
    --cc=abel.vesa@linaro.org \
    --cc=andersson@kernel.org \
    --cc=arnd@arndb.de \
    --cc=bartosz.golaszewski@linaro.org \
    --cc=bhelgaas@google.com \
    --cc=brgl@bgdev.pl \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=conor+dt@kernel.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.baryshkov@linaro.org \
    --cc=edumazet@google.com \
    --cc=elder@linaro.org \
    --cc=geert+renesas@glider.be \
    --cc=gregkh@linuxfoundation.org \
    --cc=konrad.dybcio@linaro.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=kuba@kernel.org \
    --cc=kvalo@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=luiz.dentz@gmail.com \
    --cc=lukas@wunner.de \
    --cc=m.szyprowski@samsung.com \
    --cc=mani@kernel.org \
    --cc=marcel@holtmann.org \
    --cc=neil.armstrong@linaro.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=robh@kernel.org \
    --cc=saravanak@google.com \
    --cc=srinivas.kandagatla@linaro.org \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).