From: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
To: Chunfeng Yun <chunfeng.yun@mediatek.com>,
Vinod Koul <vkoul@kernel.org>,
Neil Armstrong <neil.armstrong@linaro.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
Peter Wang <peter.wang@mediatek.com>,
Chaotian Jing <chaotian.jing@mediatek.com>,
Alim Akhtar <alim.akhtar@samsung.com>,
Avri Altman <avri.altman@sandisk.com>,
Bart Van Assche <bvanassche@acm.org>,
Stanley Jhu <chu.stanley@gmail.com>,
"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Philipp Zabel <p.zabel@pengutronix.de>,
Liam Girdwood <lgirdwood@gmail.com>,
Mark Brown <broonie@kernel.org>
Cc: kernel@collabora.com, linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org,
linux-phy@lists.infradead.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org,
Nicolas Frattaroli <nicolas.frattaroli@collabora.com>,
Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
Subject: [PATCH v10 02/26] dt-bindings: ufs: mediatek,ufs: Complete the binding
Date: Thu, 30 Jul 2026 11:48:58 +0200 [thread overview]
Message-ID: <20260730-mt8196-ufs-v10-2-bc5ecef202dc@collabora.com> (raw)
In-Reply-To: <20260730-mt8196-ufs-v10-0-bc5ecef202dc@collabora.com>
From: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
As it stands, the mediatek,ufs.yaml binding is startlingly incomplete.
Its one example, which is the only real "user" of this binding in
mainline, uses the deprecated freq-table-hz property.
The resets, of which there are three optional ones, are completely
absent.
The clock description for MT8195 is incomplete, as is the one for
MT8192. It's not known if the one clock binding for MT8183 is even
correct, but I do not have access to the necessary code and
documentation to find this out myself.
The power supply situation is not much better; the binding describes one
required power supply, but it's the UFS card supply, not any of the
supplies feeding the controller silicon.
No second example is present in the binding, making verification
difficult.
Disallow freq-table-hz and move to operating-points-v2. It's fine to
break compatibility here, as the binding is currently unused and would
be impossible to correctly use in its current state.
Add the three resets and the corresponding reset-names property. These
resets appear to be optional, i.e. not required for the functioning of
the device.
Move the list of clock names out of the if condition, and expand it for
the confirmed clocks I could find by cross-referencing several clock
drivers. For MT8195, increase the minimum number of clocks to include
the rx_symbol ones, as they're internal to the SoC and should always
be present, and should therefore not be omitted.
MT8192 gets to have at least 3 clocks, as these were the ones I could
quickly confirm from a glance at various trees. I can't say this was an
exhaustive search though, but it's better than the current situation.
Properly document all supplies, with which pin name on the SoCs they
supply. Complete the example with them.
Also add a MT8195 example to the binding, using supply labels that I am
pretty sure would be the right ones for e.g. the Radxa NIO 12L.
Finally, remove the 'ufs_' prefix from all clock names containing it
and rename 'ufs' clock to 'main'.
Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
---
.../devicetree/bindings/ufs/mediatek,ufs.yaml | 115 +++++++++++++++++----
1 file changed, 96 insertions(+), 19 deletions(-)
diff --git a/Documentation/devicetree/bindings/ufs/mediatek,ufs.yaml b/Documentation/devicetree/bindings/ufs/mediatek,ufs.yaml
index 15c347f5e660..e7e360c59ba5 100644
--- a/Documentation/devicetree/bindings/ufs/mediatek,ufs.yaml
+++ b/Documentation/devicetree/bindings/ufs/mediatek,ufs.yaml
@@ -19,11 +19,25 @@ properties:
clocks:
minItems: 1
- maxItems: 8
+ maxItems: 10
clock-names:
minItems: 1
- maxItems: 8
+ items:
+ - const: main
+ - const: aes
+ - const: tick
+ - const: unipro_sysclk
+ - const: unipro_tick
+ - const: unipro_mp_bclk
+ - const: tx_symbol
+ - const: mem_sub
+ - const: rx_symbol0
+ - const: rx_symbol1
+
+ operating-points-v2: true
+
+ freq-table-hz: false
phys:
maxItems: 1
@@ -31,8 +45,36 @@ properties:
reg:
maxItems: 1
+ resets:
+ items:
+ - description: reset for the UniPro layer
+ - description: reset for the cryptography engine
+ - description: reset for the host controller
+
+ reset-names:
+ items:
+ - const: unipro
+ - const: crypto
+ - const: hci
+
+ avdd09-supply:
+ description: Phandle to the 0.9V supply powering the AVDD09_UFS pin
+
+ avdd12-supply:
+ description: Phandle to the 1.2V supply powering the AVDD12_UFS pin
+
+ avdd12-ckbuf-supply:
+ description: Phandle to the 1.2V supply powering the AVDD12_CKBUF_UFS pin
+
+ avdd18-supply:
+ description: Phandle to the 1.8V supply powering the AVDD18_UFS pin
+
vcc-supply: true
+ vccq-supply: true
+
+ vccq2-supply: true
+
mediatek,ufs-disable-mcq:
$ref: /schemas/types.yaml#/definitions/flag
description: The mask to disable MCQ (Multi-Circular Queue) for UFS host.
@@ -54,29 +96,41 @@ allOf:
properties:
compatible:
contains:
- enum:
- - mediatek,mt8195-ufshci
+ const: mediatek,mt8183-ufshci
then:
properties:
clocks:
- minItems: 8
+ maxItems: 1
clock-names:
items:
- - const: ufs
- - const: ufs_aes
- - const: ufs_tick
- - const: unipro_sysclk
- - const: unipro_tick
- - const: unipro_mp_bclk
- - const: ufs_tx_symbol
- - const: ufs_mem_sub
- else:
+ - const: main
+ avdd12-ckbuf-supply: false
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: mediatek,mt8192-ufshci
+ then:
properties:
clocks:
- maxItems: 1
+ minItems: 3
+ maxItems: 3
+ clocks-names:
+ minItems: 3
+ maxItems: 3
+ avdd09-supply: false
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: mediatek,mt8195-ufshci
+ then:
+ properties:
+ clocks:
+ minItems: 10
clock-names:
- items:
- - const: ufs
+ minItems: 10
+ avdd09-supply: false
examples:
- |
@@ -94,9 +148,32 @@ examples:
phys = <&ufsphy>;
clocks = <&infracfg_ao CLK_INFRA_UFS>;
- clock-names = "ufs";
- freq-table-hz = <0 0>;
+ clock-names = "main";
vcc-supply = <&mt_pmic_vemc_ldo_reg>;
};
};
+ - |
+ ufshci@11270000 {
+ compatible = "mediatek,mt8195-ufshci";
+ reg = <0x11270000 0x2300>;
+ interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+ phys = <&ufsphy>;
+ clocks = <&infracfg_ao 63>, <&infracfg_ao 64>, <&infracfg_ao 65>,
+ <&infracfg_ao 54>, <&infracfg_ao 55>, <&infracfg_ao 56>,
+ <&infracfg_ao 90>, <&infracfg_ao 93>, <&topckgen 212>,
+ <&topckgen 215>;
+ clock-names = "main", "aes", "tick", "unipro_sysclk", "unipro_tick",
+ "unipro_mp_bclk", "tx_symbol", "mem_sub", "rx_symbol0",
+ "rx_symbol1";
+
+ operating-points-v2 = <&ufs_opp_table>;
+
+ avdd12-supply = <&mt6359_vrf12_ldo_reg>;
+ avdd12-ckbuf-supply = <&mt6359_vbbck_ldo_reg>;
+ avdd18-supply = <&mt6359_vio18_ldo_reg>;
+ vcc-supply = <&mt6359_vemc_1_ldo_reg>;
+ vccq2-supply = <&mt6359_vufs_ldo_reg>;
+
+ mediatek,ufs-disable-mcq;
+ };
--
2.55.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
next prev parent reply other threads:[~2026-07-30 9:50 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-30 9:48 [PATCH v10 00/26] MediaTek UFS Cleanup and MT8196 Enablement Louis-Alexis Eyraud
2026-07-30 9:48 ` [PATCH v10 01/26] dt-bindings: phy: Add mediatek,mt8196-ufsphy variant Louis-Alexis Eyraud
2026-07-30 9:48 ` Louis-Alexis Eyraud [this message]
2026-07-30 9:57 ` [PATCH v10 02/26] dt-bindings: ufs: mediatek,ufs: Complete the binding sashiko-bot
2026-07-30 9:48 ` [PATCH v10 03/26] dt-bindings: ufs: mediatek,ufs: Add mt8196 variant Louis-Alexis Eyraud
2026-07-30 9:59 ` sashiko-bot
2026-07-30 9:49 ` [PATCH v10 04/26] scsi: ufs: mediatek: Move MTK_SIP_UFS_CONTROL to mtk_sip_svc.h Louis-Alexis Eyraud
2026-07-30 9:49 ` [PATCH v10 05/26] phy: mediatek: ufs: Add support for resets Louis-Alexis Eyraud
2026-07-30 9:49 ` [PATCH v10 06/26] scsi: ufs: mediatek: Rework resets Louis-Alexis Eyraud
2026-07-30 10:29 ` sashiko-bot
2026-07-30 9:49 ` [PATCH v10 07/26] scsi: ufs: mediatek: Rework 0.9V regulator Louis-Alexis Eyraud
2026-07-30 10:13 ` sashiko-bot
2026-07-30 9:49 ` [PATCH v10 08/26] scsi: ufs: mediatek: Rework init function Louis-Alexis Eyraud
2026-07-30 10:07 ` sashiko-bot
2026-07-30 9:49 ` [PATCH v10 09/26] scsi: ufs: mediatek: Rework the crypt-boost stuff Louis-Alexis Eyraud
2026-07-30 10:16 ` sashiko-bot
2026-07-30 9:49 ` [PATCH v10 10/26] scsi: ufs: mediatek: Handle misc host voltage regulators Louis-Alexis Eyraud
2026-07-30 10:29 ` sashiko-bot
2026-07-30 9:49 ` [PATCH v10 11/26] scsi: ufs: mediatek: Remove undocumented downstream reset cruft Louis-Alexis Eyraud
2026-07-30 10:23 ` sashiko-bot
2026-07-30 9:49 ` [PATCH v10 12/26] scsi: ufs: mediatek: Remove vendor kernel quirks cruft Louis-Alexis Eyraud
2026-07-30 10:30 ` sashiko-bot
2026-07-30 9:49 ` [PATCH v10 13/26] scsi: ufs: mediatek: Use the common PHY framework Louis-Alexis Eyraud
2026-07-30 10:40 ` sashiko-bot
2026-07-30 9:49 ` [PATCH v10 14/26] scsi: ufs: mediatek: Remove mediatek,ufs-broken-rtc property Louis-Alexis Eyraud
2026-07-30 9:49 ` [PATCH v10 15/26] scsi: ufs: mediatek: Rework _ufs_mtk_clk_scale error paths Louis-Alexis Eyraud
2026-07-30 10:34 ` sashiko-bot
2026-07-30 9:49 ` [PATCH v10 16/26] scsi: ufs: mediatek: Clean up logging prints Louis-Alexis Eyraud
2026-07-30 9:49 ` [PATCH v10 17/26] scsi: ufs: mediatek: Rework ufs_mtk_wait_idle_state Louis-Alexis Eyraud
2026-07-30 9:49 ` [PATCH v10 18/26] scsi: ufs: mediatek: Don't acquire dvfsrc-vcore twice Louis-Alexis Eyraud
2026-07-30 10:41 ` sashiko-bot
2026-07-30 9:49 ` [PATCH v10 19/26] scsi: ufs: mediatek: Rework hardware version reading Louis-Alexis Eyraud
2026-07-30 9:49 ` [PATCH v10 20/26] scsi: ufs: mediatek: Back up idle timer in per-instance struct Louis-Alexis Eyraud
2026-07-30 10:53 ` sashiko-bot
2026-07-30 9:49 ` [PATCH v10 21/26] scsi: ufs: mediatek: Remove ret local from link_startup_notify Louis-Alexis Eyraud
2026-07-30 9:49 ` [PATCH v10 22/26] scsi: ufs: mediatek: Remove undocumented "clk-scale-up-vcore-min" Louis-Alexis Eyraud
2026-07-30 10:49 ` sashiko-bot
2026-07-30 9:49 ` [PATCH v10 23/26] scsi: ufs: mediatek: Add MT8196 compatible, update copyright Louis-Alexis Eyraud
2026-07-30 9:49 ` [PATCH v10 24/26] arm64: dts: mediatek: mt8195: Align ufshci node to dt-bindings changes Louis-Alexis Eyraud
2026-07-30 11:13 ` sashiko-bot
2026-07-30 9:49 ` [PATCH v10 25/26] arm64: dts: mediatek: mt8395-genio-1200-evk-ufs: Complete UFS power supplies Louis-Alexis Eyraud
2026-07-30 9:49 ` [PATCH v10 26/26] arm64: dts: mediatek: mt8395-radxa-nio-12l: " Louis-Alexis Eyraud
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=20260730-mt8196-ufs-v10-2-bc5ecef202dc@collabora.com \
--to=louisalexis.eyraud@collabora.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=alim.akhtar@samsung.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=avri.altman@sandisk.com \
--cc=broonie@kernel.org \
--cc=bvanassche@acm.org \
--cc=chaotian.jing@mediatek.com \
--cc=chu.stanley@gmail.com \
--cc=chunfeng.yun@mediatek.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=kernel@collabora.com \
--cc=krzk+dt@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-phy@lists.infradead.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=matthias.bgg@gmail.com \
--cc=neil.armstrong@linaro.org \
--cc=nicolas.frattaroli@collabora.com \
--cc=p.zabel@pengutronix.de \
--cc=peter.wang@mediatek.com \
--cc=robh@kernel.org \
--cc=vkoul@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