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>,
Conor Dooley <conor.dooley@microchip.com>,
Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>,
Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Subject: [PATCH v10 00/26] MediaTek UFS Cleanup and MT8196 Enablement
Date: Thu, 30 Jul 2026 11:48:56 +0200 [thread overview]
Message-ID: <20260730-mt8196-ufs-v10-0-bc5ecef202dc@collabora.com> (raw)
This series is a continuation of Nicolas Frattaroli's series, that does
major cleanups in the Mediatek UFS driver code and dt-bindings
and adds the support for the MT8196 SoC and its variants (MT8894 SoC).
This new revision of the series takes into account the remaining peer
reviews and issues reports for v9.
First, it fixes several build and check issues: kernel test report build
report [1], patch per patch compilation, dtbs_check warnings.
Second, regarding the opened issues in v9 on the dt-bindings patches
2 ("dt-bindings: ufs: mediatek,ufs: Complete the binding") and 3
("dt-bindings: ufs: mediatek,ufs: Add mt8196 variant") [2],
this revision has two major changes to address them:
1) It renames all the clock names starting with ufs_ prefix and the one
that was named "ufs". No driver changes is needed for those because
they are not explicitely used by their names. The ufs_sel and ufs_fde
clocks in the driver were not renamed because they are not present
in the dt-bindings (not anymore for the ufs_sel).
The devicetree patches for MT8195 SoC dtsi and the Mediatek Genio
1200-EVK and Radxa NIO-12L boards were also added to match the changes
made by series.
2) It drops the addition of all crypto and ufs_sel clocks, as it seems the
most likely and best solution to [2] after investigating on them and
what they are used for ([3]).
The Reviewed-by and Acked-by trailers, got by the patches 2 and 3 in
previous series revisions, were dropped so these changes can be reviewed again.
This new revision is based on linux-next kernel tree (tag:
next-20260729) and has been tested on Mediatek Genio 5100 Pro board
(that integrates a MT8894 SoC).
[1]: https://lore.kernel.org/linux-mediatek/202603081809.R9OrrITa-lkp@intel.com/
[2]: https://lore.kernel.org/linux-mediatek/20260306163305.GA2680515-robh@kernel.org/
[3]: https://lore.kernel.org/linux-mediatek/8b013876c591f80ec4af86d69bf2f38f9ac481ad.camel@collabora.com/
Original Nicolas Frattaroli's cover letter:
In this series, the existing MediaTek UFS binding is expanded and
completed to correctly describe not just the existing compatibles, but
also to introduce a new compatible in the from of the MT8196 SoC.
The resets, which until now were completely absent from both the UFS
host controller binding and the UFS PHY binding, are introduced to both.
This also means the driver's undocumented and, in mainline, unused reset
logic is reworked. In particular, the PHY reset is no longer a reset of
the host controller node, but of the PHY node.
This means the host controller can reset the PHY through the common PHY
framework.
The resets remain optional.
Additionally, a massive number of driver cleanups are introduced. These
were prompted by me inspecting the driver more closely as I was
adjusting it to correspond to the binding.
The driver still implements vendor properties that are undocumented in
the binding. I did not touch most of those, as I neither want to
convince the bindings maintainers that they are needed without knowing
precisely what they're for, nor do I want to argue with the driver
authors when removing them.
Due to the "Marie Kondo with a chainsaw" nature of the driver cleanup
patches, I humbly request that reviewers do not comment on displeasing
code they see in the context portion of a patch before they've read the
whole patch series, as that displeasing code may in fact be reworked in
a subsequent patch of this series. Please keep comments focused on the
changed lines of the diff; I know there's more that can be done, but it
doesn't necessarily need to be part of this series.
Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
---
Changes in v10:
- Rebased onto next-20260729 and fix conflicts
- Added Signed-off-by for all patches
- Patch 2:
- Removed "ufs" prefix from clock names
- Renamed "ufs" clock to "main"
- Removed all crypto clock additions
- Aligned example to patch changes
- Reworded commit message to drop crypto clocks references
and add clock names renaming
- Dropped Reviewed-by/Acked-by trailers due to changes
- Patch 3:
- Removed all ufs_sel clock additions
- Aligned example to patch changes
- Reworded commit message to drop ufs_sel clocks references
- Dropped Reviewed-by/Acked-by trailers due to changes
- Fixed build failure on patch 9 due to ufs_mtk_of_match symbol being
declared in the ufs-mediatek.c file after use.
- Moved ufs_mtk_of_match symbol at original place in patch 8
- Fixed build failure reported by Kernel Test Robot on patch 19 by
fixing the incorrect FIELD_MODIFY val argument and using GENMASK
for MTK_UFS_VER_PREFIX_M definition
- Added patch 24, 25, 26 devicetree patches for MT8195 SoC, Mediatek
Genio 1200-EVK and Radxa NIO-12L boards to match the dt-bindings
changes introduced by this series
- Added reviewed-by tag for patch 21
- Link to v9: https://lore.kernel.org/r/20260306-mt8196-ufs-v9-0-55b073f7a830@collabora.com
Changes in v9:
- Eliminate build failure in "Remove undocumented downstream reset
cruft", including the of_node_put of the reset node that wasn't caught
- Pointlessly rename per-instance hibernate timer backup member to
"ahit"
- Link to v8: https://lore.kernel.org/r/20260304-mt8196-ufs-v8-0-5b0eac23314f@collabora.com
Changes in v8:
- Split "Rework probe function" into two, turn the reset removal into
its own patch and squash the PHY changes into the common PHY framework
patch.
- Leave "device reset done" logging print at INFO level
- Remove redundant falsy check for reg_vcore in "Don't acquire
dvfsrc-vcore twice".
- Change ufs_mtk_wait_idle_state to early-exit on all non-HIB states,
and poll for VS_HCE_BASE instead.
- Link to v7: https://lore.kernel.org/r/20260216-mt8196-ufs-v7-0-b5f2907c6da7@collabora.com
Changes in v7:
- Rebase onto next-20260205, which drops "scsi: ufs: mediatek: Switch to
newer PM ops helpers" as Arnd sent an equivalent patch that also fixes
the PM-less build failure.
- Link to v6: https://lore.kernel.org/r/20260124-mt8196-ufs-v6-0-e7c005b60028@collabora.com
Changes in v6:
- Reword "Rework probe function" commit to better justify the changes
being made.
- Drop "Add vendor prefix to clk-scale-up-vcore-min"
- Add patch to remove clk-scale-up-vcore-min entirely, describing the
process for bringing it back (in a different form) in the commit
message.
- Link to v5: https://lore.kernel.org/r/20260108-mt8196-ufs-v5-0-49215157ec41@collabora.com
Changes in v5:
- Drop "scsi: ufs: mediatek: Make scale_us in setup_clk_gating const" as
someone else already got a patch in for this into next.
- Make mtk_init_boost_crypt void
- Don't disable/enable misc regulators during suspend/resume, but enable
them once when acquiring with a devm helper.
- Link to v4: https://lore.kernel.org/r/20251218-mt8196-ufs-v4-0-ddec7a369dd2@collabora.com
Changes in v4:
- bindings: Redo the supply situation, as the avdd pins don't describe
the vcc(q2) card supplies.
- bindings: format clock in mt8196 example more tersely.
- phy: use devm_reset_control_get_optional_exclusive directly
- driver: get and enable/disable the aforementioned avdd supplies.
- Link to v3: https://lore.kernel.org/r/20251023-mt8196-ufs-v3-0-0f04b4a795ff@collabora.com
Changes in v3:
- Split mediatek,ufs bindings change into two patches, one for
completing the existing binding, one for the MT8196
- Add over a dozen driver cleanup patches
- Add explicit support for the MT8196 compatible to the driver
- Note: next-20251023, on which I based this, currently has a broken
build due to an unrelated OPP core change that was merged with no
build testing. I can't use next-20251022 either, as that lacks the
recent mediatek UFS changes. It is what it is.
- Link to v2: https://lore.kernel.org/r/20251016-mt8196-ufs-v2-0-c373834c4e7a@collabora.com
Changes in v2:
- Reorder define in mtk_sip_svc.h
- Use bulk reset APIs in UFS host driver
- Link to v1: https://lore.kernel.org/r/20251014-mt8196-ufs-v1-0-195dceb83bc8@collabora.com
---
Louis-Alexis Eyraud (3):
arm64: dts: mediatek: mt8195: Align ufshci node to dt-bindings changes
arm64: dts: mediatek: mt8395-genio-1200-evk-ufs: Complete UFS power supplies
arm64: dts: mediatek: mt8395-radxa-nio-12l: Complete UFS power supplies
Nicolas Frattaroli (23):
dt-bindings: phy: Add mediatek,mt8196-ufsphy variant
dt-bindings: ufs: mediatek,ufs: Complete the binding
dt-bindings: ufs: mediatek,ufs: Add mt8196 variant
scsi: ufs: mediatek: Move MTK_SIP_UFS_CONTROL to mtk_sip_svc.h
phy: mediatek: ufs: Add support for resets
scsi: ufs: mediatek: Rework resets
scsi: ufs: mediatek: Rework 0.9V regulator
scsi: ufs: mediatek: Rework init function
scsi: ufs: mediatek: Rework the crypt-boost stuff
scsi: ufs: mediatek: Handle misc host voltage regulators
scsi: ufs: mediatek: Remove undocumented downstream reset cruft
scsi: ufs: mediatek: Remove vendor kernel quirks cruft
scsi: ufs: mediatek: Use the common PHY framework
scsi: ufs: mediatek: Remove mediatek,ufs-broken-rtc property
scsi: ufs: mediatek: Rework _ufs_mtk_clk_scale error paths
scsi: ufs: mediatek: Clean up logging prints
scsi: ufs: mediatek: Rework ufs_mtk_wait_idle_state
scsi: ufs: mediatek: Don't acquire dvfsrc-vcore twice
scsi: ufs: mediatek: Rework hardware version reading
scsi: ufs: mediatek: Back up idle timer in per-instance struct
scsi: ufs: mediatek: Remove ret local from link_startup_notify
scsi: ufs: mediatek: Remove undocumented "clk-scale-up-vcore-min"
scsi: ufs: mediatek: Add MT8196 compatible, update copyright
.../devicetree/bindings/phy/mediatek,ufs-phy.yaml | 16 +
.../devicetree/bindings/ufs/mediatek,ufs.yaml | 160 +++-
arch/arm64/boot/dts/mediatek/mt8195.dtsi | 21 +-
.../dts/mediatek/mt8395-genio-1200-evk-ufs.dts | 3 +
.../boot/dts/mediatek/mt8395-radxa-nio-12l.dts | 3 +
drivers/phy/mediatek/phy-mtk-ufs.c | 71 ++
drivers/ufs/host/ufs-mediatek-sip.h | 9 -
drivers/ufs/host/ufs-mediatek.c | 951 +++++++++------------
drivers/ufs/host/ufs-mediatek.h | 17 +-
include/linux/soc/mediatek/mtk_sip_svc.h | 3 +
10 files changed, 649 insertions(+), 605 deletions(-)
---
base-commit: 02dddaea43fc5132b95a7a9184f53f276d13e4aa
change-id: 20251014-mt8196-ufs-cec4b9a97e53
Best regards,
--
Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
next reply other threads:[~2026-07-30 9:50 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-30 9:48 Louis-Alexis Eyraud [this message]
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 ` [PATCH v10 02/26] dt-bindings: ufs: mediatek,ufs: Complete the binding Louis-Alexis Eyraud
2026-07-31 5:47 ` Chaotian Jing (井朝天)
2026-07-30 9:48 ` [PATCH v10 03/26] dt-bindings: ufs: mediatek,ufs: Add mt8196 variant Louis-Alexis Eyraud
2026-07-31 5:48 ` Chaotian Jing (井朝天)
2026-07-31 8:27 ` Krzysztof Kozlowski
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 9:49 ` [PATCH v10 07/26] scsi: ufs: mediatek: Rework 0.9V regulator Louis-Alexis Eyraud
2026-07-30 9:49 ` [PATCH v10 08/26] scsi: ufs: mediatek: Rework init function Louis-Alexis Eyraud
2026-07-30 9:49 ` [PATCH v10 09/26] scsi: ufs: mediatek: Rework the crypt-boost stuff Louis-Alexis Eyraud
2026-07-30 9:49 ` [PATCH v10 10/26] scsi: ufs: mediatek: Handle misc host voltage regulators Louis-Alexis Eyraud
2026-07-30 9:49 ` [PATCH v10 11/26] scsi: ufs: mediatek: Remove undocumented downstream reset cruft Louis-Alexis Eyraud
2026-07-31 5:49 ` Chaotian Jing (井朝天)
2026-07-30 9:49 ` [PATCH v10 12/26] scsi: ufs: mediatek: Remove vendor kernel quirks cruft Louis-Alexis Eyraud
2026-07-30 9:49 ` [PATCH v10 13/26] scsi: ufs: mediatek: Use the common PHY framework Louis-Alexis Eyraud
2026-07-31 5:51 ` Chaotian Jing (井朝天)
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 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 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 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-31 5:51 ` Chaotian Jing (井朝天)
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-31 5:52 ` Chaotian Jing (井朝天)
2026-07-31 8:28 ` Krzysztof Kozlowski
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-31 5:53 ` Chaotian Jing (井朝天)
2026-07-30 9:49 ` [PATCH v10 26/26] arm64: dts: mediatek: mt8395-radxa-nio-12l: " Louis-Alexis Eyraud
2026-07-31 5:54 ` Chaotian Jing (井朝天)
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-0-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=conor.dooley@microchip.com \
--cc=devicetree@vger.kernel.org \
--cc=kernel@collabora.com \
--cc=krzk+dt@kernel.org \
--cc=krzysztof.kozlowski@oss.qualcomm.com \
--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