This series is made based on 5.11-scsi-staging branch. As per specs, e.g, JESD220E chapter 7.2, while powering off/on the ufs device, RST_N signal and REF_CLK signal should be between VSS(Ground) and VCCQ/VCCQ2. The sequence after fixing as below: Power down: 1. Assert RST_N low 2. Turn-off REF_CLK 3. Turn-off VCC 4. Turn-off VCCQ/VCCQ2. power on: 1. Turn-on VCC 2. Turn-on VCCQ/VCCQ2 3. Turn-On REF_CLK 4. Deassert RST_N high. The 1st change let ref-clk to be disabled before VCC & VCCQ turning off while to be enabled after VCC & VCCQ turning on. The 2nd change is used to pull down RST_n during UFS power off. Change since v5: - Made a new wrapper func ufs_qcom_device_reset_ctrl(struct ufs_hba *hba, bool asserted) to control device reset line. Change since v4: - Split the original change "scsi: ufs: Fix ufs power down/on specs violation" into two changes, one fixs clk specs violation and the other one fixs RST_n specs violation. - The 2nd change is just only for QCOM platform. Change since v3: - Rename vops callback func toggle_device_reset(sturct ufs_hba *hba, bool down) to device_reset(sturct ufs_hba *hba, bool assert). - Move the dealy after pulling donw RST_n back into vops. Change since v2: - Correct commit message. Change since v1: - Rename vops callback func device_reset(sturct ufs_hba *hba) to toggle_device_reset(sturct ufs_hba *hba, bool down) to fix this specs violation for all SoC vendors platform. Ziqi Chen (2): scsi: ufs: Fix ufs clk specs violation scsi: ufs-qcom: Fix ufs RST_n specs violation drivers/scsi/ufs/ufs-qcom.c | 18 ++++++++++++++++-- drivers/scsi/ufs/ufshcd.c | 20 ++++++++++---------- 2 files changed, 26 insertions(+), 12 deletions(-) -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project