[PATCH v2 1/2] ufs: core: Add ufshcd_dme_enable() and ufshcd_dme_reset()
Neil Armstrong
neil.armstrong at linaro.org
Mon Oct 20 09:40:22 CEST 2025
On 10/20/25 03:29, Shawn Lin wrote:
> In order for host drivers to use.
>
> Signed-off-by: Shawn Lin <shawn.lin at rock-chips.com>
> ---
> drivers/ufs/ufs.c | 30 ++++++++++++++++++++++++++++++
> drivers/ufs/ufs.h | 2 ++
> 2 files changed, 32 insertions(+)
>
> diff --git a/drivers/ufs/ufs.c b/drivers/ufs/ufs.c
> index 57e6e8c013b..92cd9ad239f 100644
> --- a/drivers/ufs/ufs.c
> +++ b/drivers/ufs/ufs.c
> @@ -368,6 +368,36 @@ static int ufshcd_dme_link_startup(struct ufs_hba *hba)
> return ret;
> }
>
> +int ufshcd_dme_enable(struct ufs_hba *hba)
> +{
> + struct uic_command uic_cmd = {0};
> + int ret;
> +
> + uic_cmd.command = UIC_CMD_DME_ENABLE;
> +
> + ret = ufshcd_send_uic_cmd(hba, &uic_cmd);
> + if (ret)
> + dev_dbg(hba->dev,
> + "dme-enable: error code %d\n", ret);
> +
> + return ret;
> +}
> +
> +int ufshcd_dme_reset(struct ufs_hba *hba)
> +{
> + struct uic_command uic_cmd = {0};
> + int ret;
> +
> + uic_cmd.command = UIC_CMD_DME_RESET;
> +
> + ret = ufshcd_send_uic_cmd(hba, &uic_cmd);
> + if (ret)
> + dev_dbg(hba->dev,
> + "dme-reset: error code %d\n", ret);
> +
> + return ret;
> +}
> +
> /**
> * ufshcd_disable_intr_aggr - Disables interrupt aggregation.
> *
> diff --git a/drivers/ufs/ufs.h b/drivers/ufs/ufs.h
> index 0337ac5996b..ebbd5d6cad7 100644
> --- a/drivers/ufs/ufs.h
> +++ b/drivers/ufs/ufs.h
> @@ -435,6 +435,8 @@ int ufshcd_dme_set_attr(struct ufs_hba *hba, u32 attr_sel,
> u8 attr_set, u32 mib_val, u8 peer);
> int ufshcd_dme_get_attr(struct ufs_hba *hba, u32 attr_sel,
> u32 *mib_val, u8 peer);
> +int ufshcd_dme_enable(struct ufs_hba *hba);
> +int ufshcd_dme_reset(struct ufs_hba *hba);
>
> static inline int ufshcd_dme_set(struct ufs_hba *hba, u32 attr_sel,
> u32 mib_val)
Reviewed-by: Neil Armstrong <neil.armstrong at linaro.org>
More information about the U-Boot
mailing list