From: Krzysztof Kozlowski <krzk@kernel.org>
To: Alex Elder <elder@riscstar.com>, robh@kernel.org
Cc: sboyd@kernel.org, bmasney+clk@redhat.com,
jbrunet+clk@baylibre.com, krzk+dt@kernel.org,
conor+dt@kernel.org, lee@kernel.org, andersson@kernel.org,
konradybcio@kernel.org, abelvesa@kernel.org, kees@kernel.org,
gustavoars@kernel.org, p.zabel@pengutronix.de,
daniel@riscstar.com, mohd.anwar@oss.qualcomm.com,
lorenzo.bianconi@oss.qualcomm.com, linux-clk@vger.kernel.org,
devicetree@vger.kernel.org, mfd@lists.linux.dev,
linux-arm-msm@vger.kernel.org, linux-hardening@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/4] dt-bindings: mfd: introduce the TC9564 config syscon
Date: Thu, 29 Oct 2026 14:54:35 +0100 [thread overview]
Message-ID: <e3c9087e-fea5-4ec6-852a-a0e0e33ce461@kernel.org> (raw)
In-Reply-To: <4bb9c85e-f991-484e-861f-1940b8263890@riscstar.com>
On 28/09/2026 16:52, Alex Elder wrote:
> On 9/23/26 2:25 AM, Krzysztof Kozlowski wrote:
>> I think nothing behind PCI EP should be described in DT, because
>> everything is internal to the device and implied by compatible (or
>> vid/pid). We do describe internals of devices in DT usually for complex
>> devices (like some display blocks with multiple subblocks) or when they
>> are used outside of that device. That's why I asked how are all these
>> clocks and resets exposed to the host. If the syscon is used only by the
>> device itself, I don't quite get the benefits of describing it in DT.
>
> You say you think "nothing behind PCI EP should be described in DT".
> However the mere existence of the PCI endpoint bus as an option
> contradicts that statement, by providing a means of doing *exactly*
> that: using devicetree to describe things behind a PCI endpoint.
> This is the model we are using.
No, the existence does not contradict. We allow further description as
long as things are not autodiscoverable and are necessary for the host
to deal with the device, like power sequencing. Same we did for
"onboard" USB hubs.
You are however describing internals of the device like syscon, which is
way beyond what is necessary for the host to instantiate that device.
>
> In June we switched over to using the pci-ep-bus model based on a
> suggestion from Rob Herring (and Mani Sadhasivam). Rob felt our
> previous auxiliary device approach wasn't right for the peripherals
> found within the SoC, given we were accessing them via PCI BARs.
> https://lore.kernel.org/lkml/20260605144032.GA3659201-robh@kernel.org/
Oh, that's good, so let's quote:
"The ethernet nodes should be just these PCI function nodes."
"And really, a DT node for them should be completely optional (unless
there's some power on ctrl needed)."
"Everything else like SPI, GPIO, UART, etc. should be under the PCIe
switch upstream node in a pci-ep-bus."
Sure, but you add syscon. That's completely internal stuff.
> We found that using pci-ep-bus provided a very natural and familiar
> way of representing the organization of the TC9564 SoC, and used
> it to represent all of the peripherals (including XGMAC). It
> nicely partitions the hardware design, as well as providing a
> well-understood connection with the software.
>
> The switch involved quite a bit of work, and the result is a set
> of basically independent platform drivers that are modular and
> easily reviewed. I really would rather not go back to to what
> we had before.
>
> Do you have criteria for what in a chip/SoC is sufficiently
> "complex" to warrant allowing devicetree to describe some of
> its internal details?
For me criteria are the resources from the host. I think I said it
already, we do not describe internals of I2C or SPI devices: their
internal clocks, internal power supplies. We only describe the inputs
from the host. You can map it into the pins.
Same here, IMO.
>
> I believe the TC9564 *is* such a "complex" SoC. And in any case,
> anywhere pci-ep-bus is used, it implies that some chip internals
> would be described using devicetree.
>
> Would incorporating the chip internals in a devicetree *overlay*
> have any effect on your opinion on this? I.e., the "main"
> devicetree nodes would simply define the PCI device hierarchy,
> but anything behind an endpoint would be described in an overlay.
> This way, pci-ep-bus on a PCI endpoint just provides an external
> interface onto which a very complex device could be "mounted"
> (and described in an overlay).
>
> I'd like to continue to move ahead with upstreaming support for
> this SoC, but to me it seems you have basic doubts about
> pci-ep-bus and I'd like to get past that.
Well, Rob might understand this better, so maybe review from him will
solve these questions.
Best regards,
Krzysztof
next prev parent reply other threads:[~2026-10-29 13:54 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-18 16:52 [PATCH 0/4] clk: introduce TC9564 clock and reset Alex Elder
2026-09-18 16:52 ` [PATCH 1/4] dt-bindings: mfd: introduce the TC9564 config syscon Alex Elder
2026-09-20 18:18 ` Krzysztof Kozlowski
2026-09-21 21:46 ` Alex Elder
2026-09-22 21:02 ` Alex Elder
2026-09-23 7:25 ` Krzysztof Kozlowski
2026-09-28 14:52 ` Alex Elder
2026-10-29 13:54 ` Krzysztof Kozlowski [this message]
2026-09-18 16:52 ` [PATCH 2/4] dt-bindings: clock: introduce toshiba,tc9564-clock.yaml Alex Elder
2026-09-20 18:21 ` Krzysztof Kozlowski
2026-09-21 21:46 ` Alex Elder
2026-09-22 13:13 ` Alex Elder
2026-09-23 7:18 ` Krzysztof Kozlowski
2026-09-18 16:52 ` [PATCH 3/4] clk: toshiba: introduce a TC9564 SoC clock and reset driver Alex Elder
2026-09-20 19:39 ` Uwe Kleine-König
2026-09-22 12:37 ` Alex Elder
2026-09-22 12:53 ` Uwe Kleine-König
2026-09-21 22:59 ` Brian Masney
2026-09-22 13:33 ` Alex Elder
2026-09-23 20:58 ` Jerome Brunet
2026-09-23 21:33 ` Alex Elder
2026-09-24 7:29 ` Jerome Brunet
2026-09-24 19:22 ` Brian Masney
2026-09-18 16:52 ` [PATCH 4/4] arm64: dts: qcom: qcs6490-rb3gen2: add the clock controller Alex Elder
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=e3c9087e-fea5-4ec6-852a-a0e0e33ce461@kernel.org \
--to=krzk@kernel.org \
--cc=abelvesa@kernel.org \
--cc=andersson@kernel.org \
--cc=bmasney+clk@redhat.com \
--cc=conor+dt@kernel.org \
--cc=daniel@riscstar.com \
--cc=devicetree@vger.kernel.org \
--cc=elder@riscstar.com \
--cc=gustavoars@kernel.org \
--cc=jbrunet+clk@baylibre.com \
--cc=kees@kernel.org \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lee@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lorenzo.bianconi@oss.qualcomm.com \
--cc=mfd@lists.linux.dev \
--cc=mohd.anwar@oss.qualcomm.com \
--cc=p.zabel@pengutronix.de \
--cc=robh@kernel.org \
--cc=sboyd@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