[PATCH v5 0/7] Initial support for RK3576 UFS controller

Shawn Lin
2024-11-08T09:19:24Z

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.

Changes in v5:
- use ufshc for devicetree example
- fix a compile warning
- use device_set_awake_path() and disable ref_out_clk in suspend
- remove pd_id from header
- recontruct 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 | 25 ++
drivers/pmdomain/core.c | 34 ++
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 | 368 +++++++++++++++++++++
drivers/ufs/host/ufs-rockchip.h | 48 +++
include/linux/pm_domain.h | 7 +
include/soc/rockchip/rockchip_sip.h | 3 +
include/ufs/ufshcd.h | 2 +
12 files changed, 617 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