[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