Hi Quentin, On 2024-04-09 17:27, Quentin Schulz wrote: > Hi Jonas, > > On 4/8/24 23:06, Jonas Karlman wrote: >> eMMC nodes in linux device tree files typically only contain a mmc-hs400 >> prop to signal support for both HS400 and HS200. However, U-Boot require >> an explicit mmc-hs200 prop to signal support for the HS200 mode. >> > Fix this by follow linux and imply HS200 cap when HS400 cap is signaled >> using a mmc-hs400 prop. >> > > Technically speaking, the DT binding should be the one and only source > of truth and should be implementation-agnostic. > > There it says: > """ > mmc-hs400-1_2v: > $ref: /schemas/types.yaml#/definitions/flag > description: > eMMC HS400 mode (1.2V I/O) is supported. > > mmc-hs400-1_8v: > $ref: /schemas/types.yaml#/definitions/flag > description: > eMMC HS400 mode (1.8V I/O) is supported. > """ > > So I'd say, the DTs should be fixed to add mmc-hs200 as well wherever it > makes sense. > > The point of the DT/DT binding is to be system-agnostic and > representative of the **HW** implementation. At least that's what the DT > people want it to be. > > If the eMMC standard doesn't allow to have HS400 without HS200, then I > think this change is acceptable as is, because it is the reality of the > HW standard. Couldn't find this implied in the standard though (but I > just skimmed through). > > It's also quite surprising, as it's not because the eMMC works with > HS400 that it necessarily does with HS200 or that it's desired (EMI, > signal integrity/stability, etc...)? > > Now, it wouldn't be the first time U-Boot follows whatever is done in > Linux, so... up to you/the maintainers :)
Agree that implying HS200 does not fully make sense, however it was part of the original Linux binding when HS400 was added in v3.16-rc1 [1] so I think that this is the expected behavior and changing it may be an ABI breakage. The original Linux commit [1] mention: "Specially, if host can support HS400, it means that host can also support HS200." [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c373eb489b27b268c9b8c267b212d10864bc8cdd Regards, Jonas > > Reviewed-by: Quentin Schulz <quentin.sch...@theobrma-systems.com> > > Cheers, > Quentin