On Wed, 5 Feb 2025 at 07:16, Shawn Lin <shawn.lin@xxxxxxxxxxxxxx> wrote: > > This patchset adds initial UFS controller supprt for RK3576 SoC. > Patch 1 is the dt-bindings. Patch 2-4 deal with rpm and spm support > in advanced suggested by Ulf. Patch 5 exports two new APIs for host > driver. Patch 6 and 7 are the host driver and dtsi support. Looks like this series is almost ready to be merged? If so, may I suggest that I pick patch2, patch3 and patch4 via my pmdomain tree and share them via an immutable branch, so they can be pulled into James/Martin's scsi tree? Or do you prefer another route? Kind regards Uffe > > > Changes in v7: > - add definitions for all kinds of hex values if possible > - Misc log and comment improvement > - use udelay for less than 10us cases > - other improvements suggested by Mani > - Use 0x0 for consistency > - Collect Mani's acked-by tag > > Changes in v6: > - fix indentation to 4 spaces suggested by Krzysztof > - export dev_pm_genpd_rpm_always_on() > - replace host drivers with glue drivers suggested by Mani > - add Main's review tag > - remove UFS_MAX_CLKS > - improve err log > - remove hardcoded clocks > - remove comment from ufs_rockchip_device_reset() > - remove pm_runtime_* from ufs_rockchip_remove() > - rebase to scsi/next > - move ufs_rockchip_set_pm_lvl to ufs_rockchip_rk3576_init() > - add comments about device_set_awake_path() > - remove comments suggested by Mani > > Changes in v5: > - use ufshc for devicetree example suggested by Mani > - fix a compile warning > - use device_set_awake_path() and disable ref_out_clk in suspend > - remove pd_id from header > - reconstruct ufs_rockchip_hce_enable_notify() to workaround hce enable > without using new quirk > > Changes in v4: > - properly describe reset-gpios > - deal with power domain of rpm and spm suggested by Ulf > - Fix typo and disable clks in ufs_rockchip_remove > - remove clk_disable_unprepare(host->ref_out_clk) from > ufs_rockchip_remove > > Changes in v3: > - rename the file to rockchip,rk3576-ufshc.yaml > - add description for reset-gpios > - use rockchip,rk3576-ufshc as compatible > - reword Kconfig description > - elaborate more about controller in commit msg > - use rockchip,rk3576-ufshc for compatible > - remove useless header file > - remove inline for ufshcd_is_device_present > - use usleep_range instead > - remove initialization, reverse Xmas order > - remove useless varibles > - check vops for null > - other small fixes for err path > - remove pm_runtime_set_active > - fix the active and inactive reset-gpios logic > - fix rpm_lvl and spm_lvl to 5 and move to end of probe path > - remove unnecessary system PM callbacks > - use UFSHCI_QUIRK_DME_RESET_ENABLE_AFTER_HCE instead > of UFSHCI_QUIRK_BROKEN_HCE > > Changes in v2: > - rename the file > - add reset-gpios > > Shawn Lin (6): > dt-bindings: ufs: Document Rockchip UFS host controller > soc: rockchip: add header for suspend mode SIP interface > pmdomain: rockchip: Add smc call to inform firmware > scsi: ufs: core: Export ufshcd_dme_reset() and ufshcd_dme_enable() > scsi: ufs: rockchip: initial support for UFS > arm64: dts: rockchip: Add UFS support for RK3576 SoC > > Ulf Hansson (1): > pmdomain: core: Introduce dev_pm_genpd_rpm_always_on() > > .../bindings/ufs/rockchip,rk3576-ufshc.yaml | 105 ++++++ > arch/arm64/boot/dts/rockchip/rk3576.dtsi | 24 ++ > drivers/pmdomain/core.c | 35 ++ > drivers/pmdomain/rockchip/pm-domains.c | 8 + > drivers/ufs/core/ufshcd.c | 6 +- > drivers/ufs/host/Kconfig | 12 + > drivers/ufs/host/Makefile | 1 + > drivers/ufs/host/ufs-rockchip.c | 353 +++++++++++++++++++++ > drivers/ufs/host/ufs-rockchip.h | 90 ++++++ > include/linux/pm_domain.h | 7 + > include/soc/rockchip/rockchip_sip.h | 3 + > include/ufs/ufshcd.h | 2 + > 12 files changed, 644 insertions(+), 2 deletions(-) > create mode 100644 Documentation/devicetree/bindings/ufs/rockchip,rk3576-ufshc.yaml > create mode 100644 drivers/ufs/host/ufs-rockchip.c > create mode 100644 drivers/ufs/host/ufs-rockchip.h > > -- > 2.7.4 >