Thread (12 messages) 12 messages, 4 authors, 2026-01-20

Re: [PATCH] arm64: dts: rockchip: Explicitly request UFS reset pin on RK3576

From: Heiko Stuebner <heiko@sntech.de>
Date: 2026-01-20 10:26:19
Also in: linux-devicetree, linux-rockchip, lkml, stable

Am Dienstag, 20. Januar 2026, 11:21:34 Mitteleuropäische Normalzeit schrieb Quentin Schulz:
Hi Heiko,

On 1/20/26 9:55 AM, Heiko Stuebner wrote:
quoted
Am Dienstag, 20. Januar 2026, 02:39:28 Mitteleuropäische Normalzeit schrieb Shawn Lin:
quoted
在 2026/01/19 星期一 17:22, Alexey Charkov 写道:
quoted
Rockchip RK3576 UFS controller uses a dedicated pin to reset the connected
UFS device, which can operate either in a hardware controlled mode or as a
GPIO pin.
It's the only one 1.2V IO could be used on RK3576 to reset ufs devices,
except ufs refclk. So it's a dedicated pin for sure if using ufs, that's
why we put it into rk3576.dtsi.
quoted
Power-on default is GPIO mode, but the boot ROM reconfigures it to a
hardware controlled mode if it uses UFS to load the next boot stage.
ROM code could be specific, but the linux/loader driver is compatible,
so for the coming SoCs, with more 1.2V IO could be used, it's more
flexible to use gpio-based instead of hardware controlled(of course,
move reset pinctrl settings into board dts).
quoted
Given that existing bindings (and rk3576.dtsi) expect a GPIO-controlled
device reset, request the required pin config explicitly.

This doesn't appear to affect Linux, but it does affect U-boot:
IIUC, it's more or less a fix for loader, more precisely U-boot here?
I'm not entirely certain about the handling here, is it standard
convention to add a fixes tag in this context?
Yes, a fixes tag is warranted here, in Linux it "only" fixes a potential
issue due to the mismatch between pinconfig and gpio during probe.

nce this patch then enters the kernel, it can be cherry-picked to
the current u-boot development cycle. I don't think u-boot is doing
stable releases though, so U-Boot will only profit for the next
version where this is included.
U-Boot only takes what's in devicetree-rebasing 
(https://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git), 
so only from Linus's tree AFAICT. C.f. 
https://docs.u-boot.org/en/latest/develop/process.html#resyncing-of-the-device-tree-subtree 
and 
https://docs.u-boot.org/en/latest/develop/devicetree/control.html#resyncing-with-devicetree-rebasing. 
See also OF_UPSTREAM Kconfig symbol in U-Boot.

This policy does make adding support for a new board quite slow as we 
may need to wait months before it makes it to Linus's tree, and then go 
through the development cycle in U-Boot which can also take a few months 
if the timing is unfortunate. For now it seems like we're sticking with 
this policy to avoid too much in "downstream" DT in U-Boot. I know we 
push for this aggressively for new Rockchip boards and SoCs, cannot say 
for other vendors.
Yeah, this is what I "meant", but explained badly :-)

Also this is the reason I'd like that v2 soon'ish, that it can make its
way still into 6.20-rc1 and thus into u-boot.


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help