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

Quentin Schulz
2026-01-20T10:21:56Z

Hi Heiko,

On 1/20/26 9:55 AM, Heiko Stuebner wrote:
> Am Dienstag, 20. Januar 2026, 02:39:28 Mitteleuropäische Normalzeit schrieb Shawn Lin:
>> 在 2026/01/19 星期一 17:22, Alexey Charkov 写道:
>>> 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.
>>
>>> 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).
>>
>>> 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.

Cheers,
Quentin