• Daniil Lunev's avatar
    scsi: ufs: core: Read device property for ref clock · ca452621
    Daniil Lunev authored
    UFS storage devices require bRefClkFreq attribute to be set to operate
    correctly at high speed mode. The necessary value is determined by what the
    SoC / board supports. The standard doesn't specify a method to query the
    value, so the information needs to be fed in separately.
    
    DT information feeds into setting up the clock framework, so platforms
    using DT can get the UFS reference clock frequency from the clock
    framework. A special node "ref_clk" from the clock array for the UFS
    controller node is used as the source for the information.
    
    On the platforms that do not use DT (e.g. Intel), the alternative mechanism
    to feed the intended reference clock frequency is necessary. Specifying the
    necessary information in DSD of the UFS controller ACPI node is an
    alternative mechanism proposed in this patch. Those can be accessed via
    firmware property facility in the kernel and in many ways simillar to
    querying properties defined in DT.
    
    This patch introduces a small helper function to query a predetermined ACPI
    supplied property of the UFS controller, and uses it to attempt retrieving
    reference clock value, unless that was already done by the clock
    infrastructure.
    
    Link: https://lore.kernel.org/r/20220715210230.1.I365d113d275117dee8fd055ce4fc7e6aebd0bce9@changeidReviewed-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: default avatarDaniil Lunev <dlunev@chromium.org>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    ca452621
ufs.rst 7.5 KB