From: Alex Elder <elder@riscstar.com>
To: Krzysztof Kozlowski <krzk@kernel.org>
Cc: sboyd@kernel.org, bmasney+clk@redhat.com,
jbrunet+clk@baylibre.com, robh@kernel.org, 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: Mon, 21 Sep 2026 16:46:41 -0500 [thread overview]
Message-ID: <85b0e7de-e4a8-4e08-b801-a9664d366e1a@riscstar.com> (raw)
In-Reply-To: <20260920-fiery-fanatic-manticore-6abf0a@quoll>
On 9/20/26 1:18 PM, Krzysztof Kozlowski wrote:
> On Fri, Sep 18, 2026 at 11:52:30AM -0500, Alex Elder wrote:
>> Define the binding for a system controller used in the Toshiba
>> TC9564 SoC.
>>
>> Co-developed-by: Daniel Thompson <daniel@riscstar.com>
>> Signed-off-by: Daniel Thompson <daniel@riscstar.com>
>> Signed-off-by: Alex Elder <elder@riscstar.com>
Thank you for your feedback, Krzysztof.
>> ---
>> .../bindings/mfd/toshiba,tc9564.yaml | 56 +++++++++++++++++++
>> MAINTAINERS | 1 +
>> 2 files changed, 57 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/mfd/toshiba,tc9564.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/mfd/toshiba,tc9564.yaml b/Documentation/devicetree/bindings/mfd/toshiba,tc9564.yaml
>> new file mode 100644
>> index 0000000000000..32e73a727c82a
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/mfd/toshiba,tc9564.yaml
>> @@ -0,0 +1,56 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/mfd/toshiba,tc9564.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Toshiba TC9564 System Controller
>> +
>> +maintainers:
>> + - Alex Elder <elder@riscstar.com>
>> + - Daniel Thompson <daniel@riscstar.com>
>> +
>> +description: |
>
> Do not need '|' unless you need to preserve formatting.
OK.
>> + The Toshiba TC9564 is an SoC accessed by a host system through the
>> + upstream PCIe port on the PCIe switch it implements. The switch includes
>> + an embedded PCIe endpoint on one of its downstream ports that provides
>> + access to various SoC peripherals (including a clock and reset controller)
>> + via one of its BARs. A system controller provides managed access to the
>> + first two pages of this memory region to ensure accesses made by these
>> + peripherals produce well-defined results.
>> +
>> +properties:
>> + compatible:
>> + items:
>> + - const: toshiba,tc9564-config
>> + - const: syscon
>> + - const: simple-mfd
>> +
>> + reg:
>> + maxItems: 1
>> +
>> + ranges: true
>> +
>> + '#address-cells':
>> + const: 1
>> +
>> + '#size-cells':
>> + const: 1
>
> Both properties and simple-mfd are redundant. You do not have children.
I think ranges, #address-cells, and #size-cells might have
been left here by mistake, and I hadn't noticed. (They are
required to be included within a pci-ep-bus sub-node, but
even if that's why they're here, they're in the wrong place.)
I will remove these three properties, as well as the
"simple-mfd" compatible string in version 2.
>> +
>> +required:
>> + - compatible
>> + - reg
>> +
>> +unevaluatedProperties: false
>
> And this should be additionalProperties instead
OK.
>> +examples:
>> + - |
>> + syscon@0 {
>> + compatible = "toshiba,tc9564-config",
>> + "syscon",
>> + "simple-mfd";
>> + reg = <0x0 0x2000>;
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> + ranges;
>
> As you can see here - no children.
I have seen some examples of syscon nodes that incorporate
sub-devices, while others do not.
Our purpose for defining a syscon here is to coordinate
access for multiple devices to several registers located
within the same page of memory.
I think this device was originally defined in a sub-node
because the only memory accesses it requires are within
the range covered by the syscon.
Should we instead define the syscon to be a fairly trivial
standalone thing, and then refer to it in the clock/reset
device node by phandle? (Or have the driver look it up
by compatible string?)
tc9564_config_syscon0: syscon@0 {
compatible = "toshiba,tc9564-config",
"syscon";
reg = <0x0 0x2000>;
};
clock@1004 {
compatible = "toshiba,tc9564-clock";
toshiba,config-syscon = <&tc9564_config_syscon0 0x1004>;
#clock-cells = <1>;
#reset-cells = <1>;
};
> I also have doubts that this is needed - I see no updates to the misc
> binding, which would be referencing it. But then another point would be,
> that you do not need separate child node, which has no properties.
I'm sorry if I'm missing something. I saw other examples of
syscon nodes being defined, and tried to copy what I saw, but
obviously got it wrong.
> Well, has one - address space.
>
> Lack of full picture is not helping here.
I will gladly provide a better picture, but I also want to
stay focused on what's necessary for the binding.
I have more in my next message.
-Alex
> Best regards,
> Krzysztof
next prev parent reply other threads:[~2026-09-21 21:46 UTC|newest]
Thread overview: 23+ 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 [this message]
2026-09-22 21:02 ` Alex Elder
2026-09-23 7:25 ` Krzysztof Kozlowski
2026-09-28 14:52 ` Alex Elder
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=85b0e7de-e4a8-4e08-b801-a9664d366e1a@riscstar.com \
--to=elder@riscstar.com \
--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=gustavoars@kernel.org \
--cc=jbrunet+clk@baylibre.com \
--cc=kees@kernel.org \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=krzk@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
all inboxes | Powered by JetHome®