Re: [PATCH v2 1/2] dt-bindings: ufs: Document static TX Equalization settings properties

From: Can Guo

Date: Wed May 27 2026 - 04:51:50 EST


Hi Mani,

On 5/23/2026 10:14 PM, Manivannan Sadhasivam wrote:
On Sat, May 23, 2026 at 06:47:10AM -0700, Can Guo wrote:
UFS v5.0/UFSHCI v5.0 add HS-G6 support (46.6 Gbps/lane) via UniPro v3.0
and M-PHY v6.0. In these specs, TX Equalization is defined for all High
Speed Gears (not only HS-G6) to compensate channel loss and improve signal
integrity at high speed operation.

For HS-G6, M-PHY uses PAM4 1b1b line coding, Pre-Coding may also be
required depending on channel characteristics.

Add vendor-neutral DT patternProperties:
txeq-settings-g[1-6]

Each property is a uint32 array of per-lane tuples:
(PreShoot, DeEmphasis, PrecodeEn)

I don't think combining all EQ settings (PreShoot, DeEmphasis, PrecodeEn) in a
single property as opaque tuples is the right approach. These are three
semantically distinct parameters with independent value ranges. So packing
them into a uint32 array makes validation impossible in the schema.

AFACIS, PrecodeEn is applicable only to HS-G6 (PAM4), but the proposed
patternProperties forces it into G1-G5 tuples as well, which is semantically
wrong.
Point taken for the PrecodeEn.

PCIe binding defines one property per data rate for EQ presets:
https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/pci/pci-bus-common.yaml#L193

Similarly, UFS should define one property per gear per (like, txeq-preshoot-g6,
txeq-deemphasis-g6, txeq-precode-enable-g6,...) rather than clubbing everything
into opaque tuples.
Thanks for the suggestion. I will go with below approach:

txeq-preshoot-g6 = <Host Lane 0 PreShoot, Device Lane 0 PreShoot, Host Lane 1 PreShoot, Device Lane 1 PreShoot>;
txeq-deemphasis-g6 = <Host Lane 0 DeEmphasis, Device Lane 0 DeEmphasis, Host Lane 1 DeEmphasis, Device Lane 1 DeEmphasis>;
txeq-precode-en-g6 = <Host Lane 0 PrecodeEn, Device Lane 0 PrecodeEn, Host Lane 1 PrecodeEn, Device Lane 1 PrecodeEn>;

Thanks,
Can Guo.

- Mani