ufs: Call ufs_scsi_bind() from uclass .post_bind

Instead of duplicating the ufs_scsi_bind() call in every driver,
call it from UFS uclass .post_bind callback for every driver in
one place. While doing so, inline ufs_scsi_bind() directly into
ufs_post_bind() as trivial device_bind_driver() call.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Link: https://patch.msgid.link/20251028142335.18125-5-marek.vasut+renesas@mailbox.org
[narmstrong: also updated the rockchip and mediatek drivers]
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
This commit is contained in:
Marek Vasut 2025-10-28 15:22:25 +01:00 committed by Neil Armstrong
parent 6104ae290e
commit 067c1b0332
8 changed files with 2308 additions and 56 deletions

View File

@ -101,13 +101,6 @@ static int cdns_ufs_pltfm_probe(struct udevice *dev)
return err;
}
static int cdns_ufs_pltfm_bind(struct udevice *dev)
{
struct udevice *scsi_dev;
return ufs_scsi_bind(dev, &scsi_dev);
}
static const struct udevice_id cdns_ufs_pltfm_ids[] = {
{
.compatible = "cdns,ufshc-m31-16nm",
@ -120,5 +113,4 @@ U_BOOT_DRIVER(cdns_ufs_pltfm) = {
.id = UCLASS_UFS,
.of_match = cdns_ufs_pltfm_ids,
.probe = cdns_ufs_pltfm_probe,
.bind = cdns_ufs_pltfm_bind,
};

View File

@ -552,13 +552,6 @@ static int ufs_versal2_probe(struct udevice *dev)
return ret;
}
static int ufs_versal2_bind(struct udevice *dev)
{
struct udevice *scsi_dev;
return ufs_scsi_bind(dev, &scsi_dev);
}
static const struct udevice_id ufs_versal2_ids[] = {
{
.compatible = "amd,versal2-ufs",
@ -571,5 +564,4 @@ U_BOOT_DRIVER(ufs_versal2_pltfm) = {
.id = UCLASS_UFS,
.of_match = ufs_versal2_ids,
.probe = ufs_versal2_probe,
.bind = ufs_versal2_bind,
};

View File

@ -381,13 +381,6 @@ static int ufs_mtk_probe(struct udevice *dev)
return 0;
}
static int ufs_mtk_bind(struct udevice *dev)
{
struct udevice *scsi_dev;
return ufs_scsi_bind(dev, &scsi_dev);
}
static const struct udevice_id ufs_mtk_ids[] = {
{ .compatible = "mediatek,mt6878-ufshci" },
{},
@ -398,6 +391,5 @@ U_BOOT_DRIVER(mediatek_ufshci) = {
.id = UCLASS_UFS,
.of_match = ufs_mtk_ids,
.probe = ufs_mtk_probe,
.bind = ufs_mtk_bind,
.priv_auto = sizeof(struct ufs_mtk_host),
};

View File

@ -11,13 +11,6 @@
#include <dm/device_compat.h>
#include "ufs.h"
static int ufs_pci_bind(struct udevice *dev)
{
struct udevice *scsi_dev;
return ufs_scsi_bind(dev, &scsi_dev);
}
static int ufs_pci_probe(struct udevice *dev)
{
int err;
@ -32,7 +25,6 @@ static int ufs_pci_probe(struct udevice *dev)
U_BOOT_DRIVER(ufs_pci) = {
.name = "ufs_pci",
.id = UCLASS_UFS,
.bind = ufs_pci_bind,
.probe = ufs_pci_probe,
};

View File

@ -648,13 +648,6 @@ static int ufs_qcom_probe(struct udevice *dev)
return 0;
}
static int ufs_qcom_bind(struct udevice *dev)
{
struct udevice *scsi_dev;
return ufs_scsi_bind(dev, &scsi_dev);
}
static const struct udevice_id ufs_qcom_ids[] = {
{ .compatible = "qcom,ufshc" },
{},
@ -665,6 +658,5 @@ U_BOOT_DRIVER(qcom_ufshcd) = {
.id = UCLASS_UFS,
.of_match = ufs_qcom_ids,
.probe = ufs_qcom_probe,
.bind = ufs_qcom_bind,
.priv_auto = sizeof(struct ufs_qcom_priv),
};

View File

@ -351,13 +351,6 @@ static struct ufs_hba_ops ufs_renesas_vops = {
.hce_enable_notify = ufs_renesas_hce_enable_notify,
};
static int ufs_renesas_pltfm_bind(struct udevice *dev)
{
struct udevice *scsi_dev;
return ufs_scsi_bind(dev, &scsi_dev);
}
static int ufs_renesas_pltfm_probe(struct udevice *dev)
{
struct ufs_renesas_priv *priv = dev_get_priv(dev);
@ -405,7 +398,6 @@ U_BOOT_DRIVER(ufs_renesas) = {
.name = "ufs-renesas",
.id = UCLASS_UFS,
.of_match = ufs_renesas_pltfm_ids,
.bind = ufs_renesas_pltfm_bind,
.probe = ufs_renesas_pltfm_probe,
.remove = ufs_renesas_pltfm_remove,
.priv_auto = sizeof(struct ufs_renesas_priv),

View File

@ -194,18 +194,10 @@ static int ufs_rockchip_probe(struct udevice *dev)
return err;
}
static int ufs_rockchip_bind(struct udevice *dev)
{
struct udevice *scsi_dev;
return ufs_scsi_bind(dev, &scsi_dev);
}
U_BOOT_DRIVER(rockchip_ufs) = {
.name = "ufshcd-rockchip",
.id = UCLASS_UFS,
.of_match = ufs_rockchip_of_match,
.probe = ufs_rockchip_probe,
.bind = ufs_rockchip_bind,
.priv_auto = sizeof(struct ufs_rockchip_host),
};

2308
drivers/ufs/ufs-uclass.c Normal file

File diff suppressed because it is too large Load Diff