[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5b835381-55bc-4fc8-b848-535f6e881420@foss.st.com>
Date: Wed, 18 Dec 2024 09:42:45 +0100
From: Christian Bruel <christian.bruel@...s.st.com>
To: Manivannan Sadhasivam <manivannan.sadhasivam@...aro.org>
CC: Bjorn Helgaas <helgaas@...nel.org>, Rob Herring <robh+dt@...nel.org>,
<lpieralisi@...nel.org>, <kw@...ux.com>, <bhelgaas@...gle.com>,
<krzk+dt@...nel.org>, <conor+dt@...nel.org>,
<mcoquelin.stm32@...il.com>, <alexandre.torgue@...s.st.com>,
<p.zabel@...gutronix.de>, <cassel@...nel.org>,
<quic_schintav@...cinc.com>, <fabrice.gasnier@...s.st.com>,
<linux-pci@...r.kernel.org>, <devicetree@...r.kernel.org>,
<linux-stm32@...md-mailman.stormreply.com>,
<linux-arm-kernel@...ts.infradead.org>, <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v2 1/5] dt-bindings: PCI: Add STM32MP25 PCIe root complex
bindings
On 12/17/24 18:25, Manivannan Sadhasivam wrote:
> On Tue, Dec 17, 2024 at 04:53:48PM +0100, Christian Bruel wrote:
>>
>>> Makes sense. What about phys, resets, etc? I'm pretty sure a PHY
>>> would be a per-Root Port thing, and some resets and wakeup signals
>>> also.
>>>
>>> For new drivers, I think we should start adding Root Port stanzas to
>>> specifically associate those things with the Root Port, e.g.,
>>> something like this?
>>>
>>> pcie@...00000 {
>>> compatible = "st,stm32mp25-pcie-rc";
>>>
>>> pcie@0,0 {
>>> reg = <0x0000 0 0 0 0>;
>>> phys = <&combophy PHY_TYPE_PCIE>;
>>> phy-names = "pcie-phy";
>>> };
>>> };
>>>
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/pci/mediatek,mt7621-pcie.yaml?id=v6.12#n111
>>> is one binding that does this, others include apple,pcie.yaml,
>>> brcm,stb-pcie.yaml, hisilicon,kirin-pcie.yaml.
>>>
>>
>> On a second thought, moving the PHY to the root-port part would introduce a
>> discrepancy with the pcie_ep binding, whereas the PHY is required on the
>> pcie_ep node.
>>
>> Even for the pcie_rc, the PHY is needed to enable the core_clk to access
>> the PCIe core registers,
>>
>
> But why that matters? You can still parse the child nodes, enable PHY and
> configure PCIe registers. >
>> So that would make 2 different required PHY locations for RC and EP:
>>
>> pcie_rc: pcie@...00000 {
>> compatible = "st,stm32mp25-pcie-rc";
>>
>> pcie@0,0 {
>> reg = <0x0000 0 0 0 0>;
>> phys = <&combophy PHY_TYPE_PCIE>;
>> phy-names = "pcie-phy";
>> };
>> };
>>
>> pcie_ep pcie@...00000 {
>> compatible = "st,stm32mp25-pcie-ep";
>> phys = <&combophy PHY_TYPE_PCIE>;
>> phy-names = "pcie-phy";
>> };
>>
>> Simplest seems to keep the PHY required for the pcie core regardless of the
>> mode and keep the empty root port to split the design
>>
>
> No please. Try to do the right thing from the start itself.
Parsing the child node to clock the IP seems weird. Note that
hisilicon,kirin-pcie.yaml also declares the PHY at the controller level.
thanks
Christian
>
> - Mani
>
Powered by blists - more mailing lists