summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorYoshihiro Shimoda <[email protected]>2026-01-03 01:22:30 +0100
committerMarek Vasut <[email protected]>2026-01-27 21:46:44 +0100
commit8bf3dc99aff623425ee3e0824a1df0cf2587c9d1 (patch)
tree4062a0d7ac8900ef5076ab581557003e5de1e7af /drivers
parent4e27f441844c3933b380409db6a83d126351e87d (diff)
scsi: ufs: renesas: Refactor 0x10ad/0x10af PHY settings
Extract specific PHY setting of the 0x10a[df] registers into a new function. Ported from Linux kernel commit cca2b807c227 ("scsi: ufs: renesas: Refactor 0x10ad/0x10af PHY settings") Signed-off-by: Yoshihiro Shimoda <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]> Link: https://lore.kernel.org/r/110eafd1ee24f9db0285a5e2bca224e35962268a.1741179611.git.geert+renesas@glider.be Signed-off-by: Martin K. Petersen <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Neil Armstrong <[email protected]>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/ufs/ufs-renesas.c37
1 files changed, 14 insertions, 23 deletions
diff --git a/drivers/ufs/ufs-renesas.c b/drivers/ufs/ufs-renesas.c
index c8fbe61901b..b2edc3b5497 100644
--- a/drivers/ufs/ufs-renesas.c
+++ b/drivers/ufs/ufs-renesas.c
@@ -130,6 +130,16 @@ static void ufs_renesas_indirect_poll(struct ufs_hba *hba, u32 gpio, u32 addr,
ufs_renesas_write(hba, 0xf0, 0);
}
+static void ufs_renesas_write_phy_10ad_10af(struct ufs_hba *hba,
+ u32 data_10ad, u32 data_10af)
+{
+ ufs_renesas_write_phy(hba, 0x10ae, 0x0001);
+ ufs_renesas_write_phy(hba, 0x10ad, data_10ad);
+ ufs_renesas_write_phy(hba, 0x10af, data_10af);
+ ufs_renesas_write_phy(hba, 0x10b6, 0x0001);
+ ufs_renesas_write_phy(hba, 0x10ae, 0x0000);
+}
+
static void ufs_renesas_pre_init(struct ufs_hba *hba)
{
u32 timer_val;
@@ -204,29 +214,10 @@ static void ufs_renesas_pre_init(struct ufs_hba *hba)
ufs_renesas_write_phy(hba, 0x4000, 0x0000);
ufs_renesas_write_phy(hba, 0x4001, 0x0000);
- ufs_renesas_write_phy(hba, 0x10ae, 0x0001);
- ufs_renesas_write_phy(hba, 0x10ad, 0x0000);
- ufs_renesas_write_phy(hba, 0x10af, 0x0001);
- ufs_renesas_write_phy(hba, 0x10b6, 0x0001);
- ufs_renesas_write_phy(hba, 0x10ae, 0x0000);
-
- ufs_renesas_write_phy(hba, 0x10ae, 0x0001);
- ufs_renesas_write_phy(hba, 0x10ad, 0x0000);
- ufs_renesas_write_phy(hba, 0x10af, 0x0002);
- ufs_renesas_write_phy(hba, 0x10b6, 0x0001);
- ufs_renesas_write_phy(hba, 0x10ae, 0x0000);
-
- ufs_renesas_write_phy(hba, 0x10ae, 0x0001);
- ufs_renesas_write_phy(hba, 0x10ad, 0x0080);
- ufs_renesas_write_phy(hba, 0x10af, 0x0000);
- ufs_renesas_write_phy(hba, 0x10b6, 0x0001);
- ufs_renesas_write_phy(hba, 0x10ae, 0x0000);
-
- ufs_renesas_write_phy(hba, 0x10ae, 0x0001);
- ufs_renesas_write_phy(hba, 0x10ad, 0x0080);
- ufs_renesas_write_phy(hba, 0x10af, 0x001a);
- ufs_renesas_write_phy(hba, 0x10b6, 0x0001);
- ufs_renesas_write_phy(hba, 0x10ae, 0x0000);
+ ufs_renesas_write_phy_10ad_10af(hba, 0x0000, 0x0001);
+ ufs_renesas_write_phy_10ad_10af(hba, 0x0000, 0x0002);
+ ufs_renesas_write_phy_10ad_10af(hba, 0x0080, 0x0000);
+ ufs_renesas_write_phy_10ad_10af(hba, 0x0080, 0x001a);
ufs_renesas_indirect_write(hba, 7, 0x70, 0x0016);
ufs_renesas_indirect_write(hba, 7, 0x71, 0x0016);