linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/2] PCI: mediatek-gen3: Support controlling power supplies
@ 2023-11-06  6:12 Jian Yang
       [not found] ` <20231106061220.21485-3-jian.yang@mediatek.com>
       [not found] ` <20231106061220.21485-2-jian.yang@mediatek.com>
  0 siblings, 2 replies; 9+ messages in thread
From: Jian Yang @ 2023-11-06  6:12 UTC (permalink / raw)
  To: AngeloGioacchino Del Regno, Bjorn Helgaas,
	Krzysztof Wilczyński, Lorenzo Pieralisi, Matthias Brugger,
	Rob Herring, Jianjun Wang
  Cc: linux-pci, linux-mediatek, devicetree, linux-kernel,
	linux-arm-kernel, Project_Global_Chrome_Upstream_Group,
	Chuanjia.Liu, Jieyy.Yang, Qizhong.Cheng, Jianguo.Zhang,
	Jian Yang

Add support for controlling power supplies and reset GPIO of a downstream
component in Mediatek's PCIe GEN3 controller driver.

Changes in v4:
1. Rename power supplies properties in DT binding and driver.
2. Reorder variables alphabetically.
3. Use 'dev_err_probe' to do some error handling stuff.

Changes in v3:
1. Modify description of power supply properties in DT binding.
2. Remove unused header files.
3. Use 'device_wakeup_path' to determine whether the downstream component
needs to skip the reset process in system suspend scenarios.

Changes in v2:
1. Remove an unnecessary property in dt-bindings file.
2. Use the flag 'GPIOD_OUT_LOW' to set initial state of a downstream
component's reset GPIO.
3. Keep downstream component powered on in suspend state if it is capable
of waking up the system.

jian.yang (2):
  dt-bindings: PCI: mediatek-gen3: Add support for controlling power and
    reset
  PCI: mediatek-gen3: Add power and reset control feature for downstream
    component

 .../bindings/pci/mediatek-pcie-gen3.yaml      | 30 +++++++
 drivers/pci/controller/pcie-mediatek-gen3.c   | 89 ++++++++++++++++++-
 2 files changed, 118 insertions(+), 1 deletion(-)

-- 
2.18.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: PCI: mediatek-gen3: Add support for controlling power and reset
       [not found] ` <20231106061220.21485-2-jian.yang@mediatek.com>
@ 2023-11-06  7:50   ` Krzysztof Kozlowski
  2023-11-06  8:25   ` AngeloGioacchino Del Regno
  2023-11-06  8:48   ` Krzysztof Kozlowski
  2 siblings, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2023-11-06  7:50 UTC (permalink / raw)
  To: Jian Yang, AngeloGioacchino Del Regno, Bjorn Helgaas,
	Krzysztof Wilczyński, Lorenzo Pieralisi, Matthias Brugger,
	Rob Herring, Jianjun Wang
  Cc: linux-pci, linux-mediatek, devicetree, linux-kernel,
	linux-arm-kernel, Project_Global_Chrome_Upstream_Group,
	Chuanjia.Liu, Jieyy.Yang, Qizhong.Cheng, Jianguo.Zhang,
	Abel Vesa, Bartosz Golaszewski

On 06/11/2023 07:12, Jian Yang wrote:
> From: "jian.yang" <jian.yang@mediatek.com>
> 
> Add new properties to support control power supplies and reset pin of
> a downstream component.
> 
> Signed-off-by: jian.yang <jian.yang@mediatek.com>

Please use scripts/get_maintainers.pl to get a list of necessary people
and lists to CC (and consider --no-git-fallback argument). It might
happen, that command when run on an older kernel, gives you outdated
entries. Therefore please be sure you base your patches on recent Linux
kernel.

> ---
>  .../bindings/pci/mediatek-pcie-gen3.yaml      | 30 +++++++++++++++++++
>  1 file changed, 30 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/pci/mediatek-pcie-gen3.yaml b/Documentation/devicetree/bindings/pci/mediatek-pcie-gen3.yaml
> index 7e8c7a2a5f9b..a4f6b48d57fa 100644
> --- a/Documentation/devicetree/bindings/pci/mediatek-pcie-gen3.yaml
> +++ b/Documentation/devicetree/bindings/pci/mediatek-pcie-gen3.yaml
> @@ -84,6 +84,26 @@ properties:
>      items:
>        enum: [ phy, mac ]
>  
> +  vpcie1v8-supply:
> +    description:
> +      The regulator phandle that provides 1.8V power from root port to a
> +      downstream component.
> +
> +  vpcie3v3-supply:
> +    description:
> +      The regulator phandle that provides 3.3V power from root port to a
> +      downstream component.
> +
> +  vpcie12v-supply:
> +    description:
> +      The regulator phandle that provides 12V power from root port to a
> +      downstream component.
> +
> +  dsc-reset-gpios:
> +    description:
> +      The extra reset pin other than PERST# required by a downstream component.
> +    maxItems: 1

How did you implement Rob's feedback? Or did you just ignore it?

This does not look like property of the controller. Aren't you now
trying to implement power-sequencing of devices via properties of host
controller?

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v4 2/2] PCI: mediatek-gen3: Add power and reset control feature for downstream component
       [not found] ` <20231106061220.21485-3-jian.yang@mediatek.com>
@ 2023-11-06  7:53   ` Krzysztof Kozlowski
  2023-11-06  8:36     ` AngeloGioacchino Del Regno
  2023-11-06  8:23   ` AngeloGioacchino Del Regno
  1 sibling, 1 reply; 9+ messages in thread
From: Krzysztof Kozlowski @ 2023-11-06  7:53 UTC (permalink / raw)
  To: Jian Yang, AngeloGioacchino Del Regno, Bjorn Helgaas,
	Krzysztof Wilczyński, Lorenzo Pieralisi, Matthias Brugger,
	Rob Herring, Jianjun Wang
  Cc: linux-pci, linux-mediatek, devicetree, linux-kernel,
	linux-arm-kernel, Project_Global_Chrome_Upstream_Group,
	Chuanjia.Liu, Jieyy.Yang, Qizhong.Cheng, Jianguo.Zhang,
	Bartosz Golaszewski, Abel Vesa

On 06/11/2023 07:12, Jian Yang wrote:
> From: "jian.yang" <jian.yang@mediatek.com>
> 
> Make MediaTek's controller driver capable of controlling power
> supplies and reset pin of a downstream component in power-on and
> power-off process.
> 
> Some downstream components (e.g., a WIFI chip) may need an extra
> reset other than PERST# and their power supplies, depending on
> the requirements of platform, may need to controlled by their
> parent's driver. To meet the requirements described above, I add this
> feature to MediaTek's PCIe controller driver as an optional feature.

NAK, strong NAK. This should be done in a generic way because nothing
here is specific to Mediatek.

You just implement power sequencing of devices through quirks specific
to one controller.

Work with others to provide common solution.
https://lpc.events/event/17/contributions/1507/

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v4 2/2] PCI: mediatek-gen3: Add power and reset control feature for downstream component
       [not found] ` <20231106061220.21485-3-jian.yang@mediatek.com>
  2023-11-06  7:53   ` [PATCH v4 2/2] PCI: mediatek-gen3: Add power and reset control feature for downstream component Krzysztof Kozlowski
@ 2023-11-06  8:23   ` AngeloGioacchino Del Regno
  1 sibling, 0 replies; 9+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-11-06  8:23 UTC (permalink / raw)
  To: Jian Yang, Bjorn Helgaas, Krzysztof Wilczyński,
	Lorenzo Pieralisi, Matthias Brugger, Rob Herring, Jianjun Wang
  Cc: linux-pci, linux-mediatek, devicetree, linux-kernel,
	linux-arm-kernel, Project_Global_Chrome_Upstream_Group,
	Chuanjia.Liu, Jieyy.Yang, Qizhong.Cheng, Jianguo.Zhang

Il 06/11/23 07:12, Jian Yang ha scritto:
> From: "jian.yang" <jian.yang@mediatek.com>
> 
> Make MediaTek's controller driver capable of controlling power
> supplies and reset pin of a downstream component in power-on and
> power-off process.
> 
> Some downstream components (e.g., a WIFI chip) may need an extra
> reset other than PERST# and their power supplies, depending on
> the requirements of platform, may need to controlled by their
> parent's driver. To meet the requirements described above, I add this
> feature to MediaTek's PCIe controller driver as an optional feature.
> 
> Signed-off-by: jian.yang <jian.yang@mediatek.com>

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: PCI: mediatek-gen3: Add support for controlling power and reset
       [not found] ` <20231106061220.21485-2-jian.yang@mediatek.com>
  2023-11-06  7:50   ` [PATCH v4 1/2] dt-bindings: PCI: mediatek-gen3: Add support for controlling power and reset Krzysztof Kozlowski
@ 2023-11-06  8:25   ` AngeloGioacchino Del Regno
  2023-11-06  8:48   ` Krzysztof Kozlowski
  2 siblings, 0 replies; 9+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-11-06  8:25 UTC (permalink / raw)
  To: Jian Yang, Bjorn Helgaas, Krzysztof Wilczyński,
	Lorenzo Pieralisi, Matthias Brugger, Rob Herring, Jianjun Wang
  Cc: linux-pci, linux-mediatek, devicetree, linux-kernel,
	linux-arm-kernel, Project_Global_Chrome_Upstream_Group,
	Chuanjia.Liu, Jieyy.Yang, Qizhong.Cheng, Jianguo.Zhang

Il 06/11/23 07:12, Jian Yang ha scritto:
> From: "jian.yang" <jian.yang@mediatek.com>
> 
> Add new properties to support control power supplies and reset pin of
> a downstream component.
> 
> Signed-off-by: jian.yang <jian.yang@mediatek.com>

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v4 2/2] PCI: mediatek-gen3: Add power and reset control feature for downstream component
  2023-11-06  7:53   ` [PATCH v4 2/2] PCI: mediatek-gen3: Add power and reset control feature for downstream component Krzysztof Kozlowski
@ 2023-11-06  8:36     ` AngeloGioacchino Del Regno
  2023-11-06  8:46       ` Krzysztof Kozlowski
  0 siblings, 1 reply; 9+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-11-06  8:36 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Jian Yang, Bjorn Helgaas,
	Krzysztof Wilczyński, Lorenzo Pieralisi, Matthias Brugger,
	Rob Herring, Jianjun Wang
  Cc: linux-pci, linux-mediatek, devicetree, linux-kernel,
	linux-arm-kernel, Project_Global_Chrome_Upstream_Group,
	Chuanjia.Liu, Jieyy.Yang, Qizhong.Cheng, Jianguo.Zhang,
	Bartosz Golaszewski, Abel Vesa

Il 06/11/23 08:53, Krzysztof Kozlowski ha scritto:
> On 06/11/2023 07:12, Jian Yang wrote:
>> From: "jian.yang" <jian.yang@mediatek.com>
>>
>> Make MediaTek's controller driver capable of controlling power
>> supplies and reset pin of a downstream component in power-on and
>> power-off process.
>>
>> Some downstream components (e.g., a WIFI chip) may need an extra
>> reset other than PERST# and their power supplies, depending on
>> the requirements of platform, may need to controlled by their
>> parent's driver. To meet the requirements described above, I add this
>> feature to MediaTek's PCIe controller driver as an optional feature.
> 
> NAK, strong NAK. This should be done in a generic way because nothing
> here is specific to Mediatek.
> 
> You just implement power sequencing of devices through quirks specific
> to one controller.
> 
> Work with others to provide common solution.
> https://lpc.events/event/17/contributions/1507/
> 

I agree that working with everyone else by adding pwrseq is a must, but other
other PCIe controllers are doing the exact same as this patch: if the supply
and gpio names are aligned with the others, why shouldn't we let this in and
then convert this driver, along with the others, to the new pwrseq subsystem
when it's ready?

That, because I expect the pwrseq to require a bit more time before being
ready to get upstream.

P.S.: Check Tegra, Broadcom, RockChip DW, IMX6Q-pcie.

Cheers,
Angelo


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v4 2/2] PCI: mediatek-gen3: Add power and reset control feature for downstream component
  2023-11-06  8:36     ` AngeloGioacchino Del Regno
@ 2023-11-06  8:46       ` Krzysztof Kozlowski
  2023-11-06  8:56         ` AngeloGioacchino Del Regno
  0 siblings, 1 reply; 9+ messages in thread
From: Krzysztof Kozlowski @ 2023-11-06  8:46 UTC (permalink / raw)
  To: AngeloGioacchino Del Regno, Jian Yang, Bjorn Helgaas,
	Krzysztof Wilczyński, Lorenzo Pieralisi, Matthias Brugger,
	Rob Herring, Jianjun Wang
  Cc: linux-pci, linux-mediatek, devicetree, linux-kernel,
	linux-arm-kernel, Project_Global_Chrome_Upstream_Group,
	Chuanjia.Liu, Jieyy.Yang, Qizhong.Cheng, Jianguo.Zhang,
	Bartosz Golaszewski, Abel Vesa

On 06/11/2023 09:36, AngeloGioacchino Del Regno wrote:
> Il 06/11/23 08:53, Krzysztof Kozlowski ha scritto:
>> On 06/11/2023 07:12, Jian Yang wrote:
>>> From: "jian.yang" <jian.yang@mediatek.com>
>>>
>>> Make MediaTek's controller driver capable of controlling power
>>> supplies and reset pin of a downstream component in power-on and
>>> power-off process.
>>>
>>> Some downstream components (e.g., a WIFI chip) may need an extra
>>> reset other than PERST# and their power supplies, depending on
>>> the requirements of platform, may need to controlled by their
>>> parent's driver. To meet the requirements described above, I add this
>>> feature to MediaTek's PCIe controller driver as an optional feature.
>>
>> NAK, strong NAK. This should be done in a generic way because nothing
>> here is specific to Mediatek.
>>
>> You just implement power sequencing of devices through quirks specific
>> to one controller.
>>
>> Work with others to provide common solution.
>> https://lpc.events/event/17/contributions/1507/
>>
> 
> I agree that working with everyone else by adding pwrseq is a must, but other
> other PCIe controllers are doing the exact same as this patch: if the supply
> and gpio names are aligned with the others, why shouldn't we let this in and
> then convert this driver, along with the others, to the new pwrseq subsystem
> when it's ready?

Because you already push to the PCI controller bindings new properties
which are not properties of the PCI controller.

> 
> That, because I expect the pwrseq to require a bit more time before being
> ready to get upstream.
> 
> P.S.: Check Tegra, Broadcom, RockChip DW, IMX6Q-pcie.

Every new hack will not make it faster. :( At some point one have to say
- enough of hacks, start doing it properly with upstream.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: PCI: mediatek-gen3: Add support for controlling power and reset
       [not found] ` <20231106061220.21485-2-jian.yang@mediatek.com>
  2023-11-06  7:50   ` [PATCH v4 1/2] dt-bindings: PCI: mediatek-gen3: Add support for controlling power and reset Krzysztof Kozlowski
  2023-11-06  8:25   ` AngeloGioacchino Del Regno
@ 2023-11-06  8:48   ` Krzysztof Kozlowski
  2 siblings, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2023-11-06  8:48 UTC (permalink / raw)
  To: Jian Yang, AngeloGioacchino Del Regno, Bjorn Helgaas,
	Krzysztof Wilczyński, Lorenzo Pieralisi, Matthias Brugger,
	Rob Herring, Jianjun Wang
  Cc: linux-pci, linux-mediatek, devicetree, linux-kernel,
	linux-arm-kernel, Project_Global_Chrome_Upstream_Group,
	Chuanjia.Liu, Jieyy.Yang, Qizhong.Cheng, Jianguo.Zhang

On 06/11/2023 07:12, Jian Yang wrote:
> From: "jian.yang" <jian.yang@mediatek.com>
> 
> Add new properties to support control power supplies and reset pin of
> a downstream component.
> 
> Signed-off-by: jian.yang <jian.yang@mediatek.com>
> ---
>  .../bindings/pci/mediatek-pcie-gen3.yaml      | 30 +++++++++++++++++++
>  1 file changed, 30 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/pci/mediatek-pcie-gen3.yaml b/Documentation/devicetree/bindings/pci/mediatek-pcie-gen3.yaml
> index 7e8c7a2a5f9b..a4f6b48d57fa 100644
> --- a/Documentation/devicetree/bindings/pci/mediatek-pcie-gen3.yaml
> +++ b/Documentation/devicetree/bindings/pci/mediatek-pcie-gen3.yaml
> @@ -84,6 +84,26 @@ properties:
>      items:
>        enum: [ phy, mac ]
>  
> +  vpcie1v8-supply:
> +    description:
> +      The regulator phandle that provides 1.8V power from root port to a
> +      downstream component.
> +
> +  vpcie3v3-supply:
> +    description:
> +      The regulator phandle that provides 3.3V power from root port to a
> +      downstream component.

How 3.3V supply can go from root port to downstream? Do you mean that
root port is the regulator itself (regulator provider)?

Sorry, all these supplies look like hacks - stuffing PCI device
properties into the PCI controller node.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v4 2/2] PCI: mediatek-gen3: Add power and reset control feature for downstream component
  2023-11-06  8:46       ` Krzysztof Kozlowski
@ 2023-11-06  8:56         ` AngeloGioacchino Del Regno
  0 siblings, 0 replies; 9+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-11-06  8:56 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Jian Yang, Bjorn Helgaas,
	Krzysztof Wilczyński, Lorenzo Pieralisi, Matthias Brugger,
	Rob Herring, Jianjun Wang
  Cc: linux-pci, linux-mediatek, devicetree, linux-kernel,
	linux-arm-kernel, Project_Global_Chrome_Upstream_Group,
	Chuanjia.Liu, Jieyy.Yang, Qizhong.Cheng, Jianguo.Zhang,
	Bartosz Golaszewski, Abel Vesa

Il 06/11/23 09:46, Krzysztof Kozlowski ha scritto:
> On 06/11/2023 09:36, AngeloGioacchino Del Regno wrote:
>> Il 06/11/23 08:53, Krzysztof Kozlowski ha scritto:
>>> On 06/11/2023 07:12, Jian Yang wrote:
>>>> From: "jian.yang" <jian.yang@mediatek.com>
>>>>
>>>> Make MediaTek's controller driver capable of controlling power
>>>> supplies and reset pin of a downstream component in power-on and
>>>> power-off process.
>>>>
>>>> Some downstream components (e.g., a WIFI chip) may need an extra
>>>> reset other than PERST# and their power supplies, depending on
>>>> the requirements of platform, may need to controlled by their
>>>> parent's driver. To meet the requirements described above, I add this
>>>> feature to MediaTek's PCIe controller driver as an optional feature.
>>>
>>> NAK, strong NAK. This should be done in a generic way because nothing
>>> here is specific to Mediatek.
>>>
>>> You just implement power sequencing of devices through quirks specific
>>> to one controller.
>>>
>>> Work with others to provide common solution.
>>> https://lpc.events/event/17/contributions/1507/
>>>
>>
>> I agree that working with everyone else by adding pwrseq is a must, but other
>> other PCIe controllers are doing the exact same as this patch: if the supply
>> and gpio names are aligned with the others, why shouldn't we let this in and
>> then convert this driver, along with the others, to the new pwrseq subsystem
>> when it's ready?
> 
> Because you already push to the PCI controller bindings new properties
> which are not properties of the PCI controller.
> 
>>
>> That, because I expect the pwrseq to require a bit more time before being
>> ready to get upstream.
>>
>> P.S.: Check Tegra, Broadcom, RockChip DW, IMX6Q-pcie.
> 
> Every new hack will not make it faster. :( At some point one have to say
> - enough of hacks, start doing it properly with upstream.
> 

Eh, that's a fair point. I can't really disagree with that.

Cheers,
Angelo



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-11-06  8:57 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-06  6:12 [PATCH v4 0/2] PCI: mediatek-gen3: Support controlling power supplies Jian Yang
     [not found] ` <20231106061220.21485-3-jian.yang@mediatek.com>
2023-11-06  7:53   ` [PATCH v4 2/2] PCI: mediatek-gen3: Add power and reset control feature for downstream component Krzysztof Kozlowski
2023-11-06  8:36     ` AngeloGioacchino Del Regno
2023-11-06  8:46       ` Krzysztof Kozlowski
2023-11-06  8:56         ` AngeloGioacchino Del Regno
2023-11-06  8:23   ` AngeloGioacchino Del Regno
     [not found] ` <20231106061220.21485-2-jian.yang@mediatek.com>
2023-11-06  7:50   ` [PATCH v4 1/2] dt-bindings: PCI: mediatek-gen3: Add support for controlling power and reset Krzysztof Kozlowski
2023-11-06  8:25   ` AngeloGioacchino Del Regno
2023-11-06  8:48   ` Krzysztof Kozlowski

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).