| From: |
| Geert Uytterhoeven <geert+renesas-AT-glider.be> |
| To: |
| Yoshihiro Shimoda <yoshihiro.shimoda.uh-AT-renesas.com>, "James E . J . Bottomley" <James.Bottomley-AT-HansenPartnership.com>, "Martin K . Petersen" <martin.petersen-AT-oracle.com>, Alim Akhtar <alim.akhtar-AT-samsung.com>, Avri Altman <avri.altman-AT-wdc.com>, Bart Van Assche <bvanassche-AT-acm.org>, Rob Herring <robh-AT-kernel.org>, Krzysztof Kozlowski <krzk+dt-AT-kernel.org>, Conor Dooley <conor+dt-AT-kernel.org> |
| Subject: |
| [PATCH v3 0/7] scsi: ufs: renesas: Add support for R-Car S4-8 ES1.2 |
| Date: |
| Wed, 05 Mar 2025 14:34:08 +0100 |
| Message-ID: |
| <cover.1741179611.git.geert+renesas@glider.be> |
| Cc: |
| linux-scsi-AT-vger.kernel.org, devicetree-AT-vger.kernel.org, linux-renesas-soc-AT-vger.kernel.org, Geert Uytterhoeven <geert+renesas-AT-glider.be> |
| Archive-link: |
| Article |
Hi all,
Initialization of the UFS controller on R-Car S4-8 ES1.0 requires only
static values. However, other UFS controller variants (R-Car S4-8 ES 1.2)
require dynamic values, like those obtained from E-FUSE, and downloading
firmware.
Hence this patch series refactors the initialization code to prepare for
this, and adds support for the UFS controller on R-Car S4-8 ES1.2.
The accompanying DTS change is available at [1].
Changes compared to v2[2]:
- Take over from Shimoda-san,
- New patches 1/7 (DT bindings update) and 7/7 (actual R-Car S4-8
ES1.2 support),
- Keep MAX_INDEX check, as it is still useful,
- Prefix data parameters of ufs_renesas_write_d0_d4() by "data_", for
consistency,
- Document kernel size impact of switching to init code,
- Rename ufs_renesas_init_ufshc() to ufs_renesas_init_step1_to_3(),
- Extract ufs_renesas_init_step4_to_6(),
- Move ufs_renesas_write_phy_10ad_10af() just before its sole user,
Changes compared to v1[3]:
- Postpone removing the *_INDEX* enums until all users are gone,
- Combine declaration and initialization of ufs_renesas_init_param,
- Drop "_param" from ufs_renesas_*() helper function names.
- Move MODE_READ handling after MODE_POLL handling,
- Move ufs_renesas_read() after ufs_renesas_poll(),
- Remove not just MODE_WAIT, but all of the struct-based control.
This has been tested on:
- Renesas Spider with R-Car S4-8 ES1.0 (broken before/after),
- Renesas S4 Starter Kit with R-Car S4-8 ES1.2 (works after).
Thanks for your comments!
[1] "[PATCH] arm64: dts: renesas: r8a779f4: Add UFS tuning parameters in
E-FUSE"
https://lore.kernel.org/3e4fca228eb049d54a1ae520104558505...
[2] "[PATCH v2 0/5] scsi: ufs: renesas: Refactor code for other UFS
controller"
https://lore.kernel.org/20240709023550.1750333-1-yoshihir...
[3] "[PATCH 0/5] scsi: ufs: renesas: Refactor code for other UFS
controller"
https://lore.kernel.org/20240708120931.1703956-1-yoshihir...
Geert Uytterhoeven (1):
dt-bindings: ufs: renesas,ufs: Add calibration data
Yoshihiro Shimoda (6):
scsi: ufs: renesas: Replace init data by init code
scsi: ufs: renesas: Add register read to remove save/set/restore
scsi: ufs: renesas: Remove register control helper function
scsi: ufs: renesas: Refactor 0x10ad/0x10af PHY settings
scsi: ufs: renesas: Add reusable functions
scsi: ufs: renesas: Add initialization code for R-Car S4-8 ES1.2
.../devicetree/bindings/ufs/renesas,ufs.yaml | 12 +
drivers/ufs/host/ufs-renesas.c | 723 +++++++++++-------
2 files changed, 445 insertions(+), 290 deletions(-)
--
2.43.0
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds