2023-01-19 15:36:25

by Abel Vesa

[permalink] [raw]
Subject: [PATCH v2 0/2] ufs: host: ufs-qcom: Add support for SM8550

This patchset adds UFS HC support for the new Qualcomm SM8550 SoC.

The v1 was here:
https://lore.kernel.org/all/[email protected]/

Changes since v1:
* replaced REG_UFS_PA_LINK_STARTUP_TIMER with REG_UFS_CFG0 and added a
comment saying that the older version use the first name as reg name
* moved QUNIPRO_G4_SEL in a separate section dedicated to CFG0 bits
* forces the update_link_startup_timer condition to be skipped in case
of HW version 5.x

To: Andy Gross <[email protected]>
To: Bjorn Andersson <[email protected]>
To: Konrad Dybcio <[email protected]>
To: Alim Akhtar <[email protected]>
To: Avri Altman <[email protected]>
To: Bart Van Assche <[email protected]>
To: Rob Herring <[email protected]>
To: Krzysztof Kozlowski <[email protected]>
To: "James E.J. Bottomley" <[email protected]>
To: "Martin K. Petersen" <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]

Abel Vesa (2):
scsi: ufs: ufs-qcom: Clear qunipro_g4_sel for HW version major 5
dt-bindings: ufs: qcom: Add SM8550 compatible string

Documentation/devicetree/bindings/ufs/qcom,ufs.yaml | 2 ++
drivers/ufs/host/ufs-qcom.c | 8 ++++++--
drivers/ufs/host/ufs-qcom.h | 6 +++++-
3 files changed, 13 insertions(+), 3 deletions(-)

--
2.34.1


2023-01-19 15:37:11

by Abel Vesa

[permalink] [raw]
Subject: [PATCH v2 1/2] scsi: ufs: ufs-qcom: Clear qunipro_g4_sel for HW version major 5

On SM8550, depending on the Qunipro, we can run with G5 or G4.
For now, when the major version is 5 or above, we go with G5.
Therefore, we need to specifically tell UFS HC that.

Signed-off-by: Abel Vesa <[email protected]>
---
drivers/ufs/host/ufs-qcom.c | 8 ++++++--
drivers/ufs/host/ufs-qcom.h | 6 +++++-
2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
index 5e7ba3b6a59d..7b6deef4e49a 100644
--- a/drivers/ufs/host/ufs-qcom.c
+++ b/drivers/ufs/host/ufs-qcom.c
@@ -218,6 +218,10 @@ static void ufs_qcom_select_unipro_mode(struct ufs_qcom_host *host)
ufshcd_rmwl(host->hba, QUNIPRO_SEL,
ufs_qcom_cap_qunipro(host) ? QUNIPRO_SEL : 0,
REG_UFS_CFG1);
+
+ if (host->hw_ver.major == 0x05)
+ ufshcd_rmwl(host->hba, QUNIPRO_G4_SEL, 0, REG_UFS_CFG0);
+
/* make sure above configuration is applied before we return */
mb();
}
@@ -507,9 +511,9 @@ static int ufs_qcom_cfg_timers(struct ufs_hba *hba, u32 gear,
mb();
}

- if (update_link_startup_timer) {
+ if (update_link_startup_timer && host->hw_ver.major != 0x5) {
ufshcd_writel(hba, ((core_clk_rate / MSEC_PER_SEC) * 100),
- REG_UFS_PA_LINK_STARTUP_TIMER);
+ REG_UFS_CFG0);
/*
* make sure that this configuration is applied before
* we return
diff --git a/drivers/ufs/host/ufs-qcom.h b/drivers/ufs/host/ufs-qcom.h
index f744a9e62002..cca773210bcb 100644
--- a/drivers/ufs/host/ufs-qcom.h
+++ b/drivers/ufs/host/ufs-qcom.h
@@ -35,7 +35,8 @@ enum {
REG_UFS_PA_ERR_CODE = 0xCC,
/* On older UFS revisions, this register is called "RETRY_TIMER_REG" */
REG_UFS_PARAM0 = 0xD0,
- REG_UFS_PA_LINK_STARTUP_TIMER = 0xD8,
+ /* On older UFS revisions, this register is called "REG_UFS_PA_LINK_STARTUP_TIMER" */
+ REG_UFS_CFG0 = 0xD8,
REG_UFS_CFG1 = 0xDC,
REG_UFS_CFG2 = 0xE0,
REG_UFS_HW_VERSION = 0xE4,
@@ -73,6 +74,9 @@ enum {
#define UFS_CNTLR_2_x_x_VEN_REGS_OFFSET(x) (0x000 + x)
#define UFS_CNTLR_3_x_x_VEN_REGS_OFFSET(x) (0x400 + x)

+/* bit definitions for REG_UFS_CFG0 register */
+#define QUNIPRO_G4_SEL BIT(5)
+
/* bit definitions for REG_UFS_CFG1 register */
#define QUNIPRO_SEL BIT(0)
#define UFS_PHY_SOFT_RESET BIT(1)
--
2.34.1

2023-01-19 16:29:35

by Abel Vesa

[permalink] [raw]
Subject: [PATCH v2 2/2] dt-bindings: ufs: qcom: Add SM8550 compatible string

Document the compatible for the UFS found on SM8550.

Signed-off-by: Abel Vesa <[email protected]>
Reviewed-by: Krzysztof Kozlowski <[email protected]>
---
Documentation/devicetree/bindings/ufs/qcom,ufs.yaml | 2 ++
1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml b/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml
index 54f5f8dc5c87..108c281e9d09 100644
--- a/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml
+++ b/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml
@@ -33,6 +33,7 @@ properties:
- qcom,sm8250-ufshc
- qcom,sm8350-ufshc
- qcom,sm8450-ufshc
+ - qcom,sm8550-ufshc
- const: qcom,ufshc
- const: jedec,ufs-2.0

@@ -106,6 +107,7 @@ allOf:
- qcom,sm8250-ufshc
- qcom,sm8350-ufshc
- qcom,sm8450-ufshc
+ - qcom,sm8550-ufshc
then:
properties:
clocks:
--
2.34.1

2023-02-08 15:28:41

by Manivannan Sadhasivam

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] dt-bindings: ufs: qcom: Add SM8550 compatible string

On Thu, Jan 19, 2023 at 05:14:06PM +0200, Abel Vesa wrote:
> Document the compatible for the UFS found on SM8550.
>
> Signed-off-by: Abel Vesa <[email protected]>

Acked-by: Manivannan Sadhasivam <[email protected]>

Thanks,
Mani

> Reviewed-by: Krzysztof Kozlowski <[email protected]>
> ---
> Documentation/devicetree/bindings/ufs/qcom,ufs.yaml | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml b/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml
> index 54f5f8dc5c87..108c281e9d09 100644
> --- a/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml
> +++ b/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml
> @@ -33,6 +33,7 @@ properties:
> - qcom,sm8250-ufshc
> - qcom,sm8350-ufshc
> - qcom,sm8450-ufshc
> + - qcom,sm8550-ufshc
> - const: qcom,ufshc
> - const: jedec,ufs-2.0
>
> @@ -106,6 +107,7 @@ allOf:
> - qcom,sm8250-ufshc
> - qcom,sm8350-ufshc
> - qcom,sm8450-ufshc
> + - qcom,sm8550-ufshc
> then:
> properties:
> clocks:
> --
> 2.34.1
>

--
மணிவண்ணன் சதாசிவம்

2023-02-08 23:08:46

by Martin K. Petersen

[permalink] [raw]
Subject: Re: [PATCH v2 0/2] ufs: host: ufs-qcom: Add support for SM8550


Abel,

> This patchset adds UFS HC support for the new Qualcomm SM8550 SoC.

Applied to 6.3/scsi-staging, thanks!

--
Martin K. Petersen Oracle Linux Engineering

2023-02-14 16:58:06

by Martin K. Petersen

[permalink] [raw]
Subject: Re: [PATCH v2 0/2] ufs: host: ufs-qcom: Add support for SM8550

On Thu, 19 Jan 2023 17:14:04 +0200, Abel Vesa wrote:

> This patchset adds UFS HC support for the new Qualcomm SM8550 SoC.
>
> The v1 was here:
> https://lore.kernel.org/all/[email protected]/
>
> Changes since v1:
> * replaced REG_UFS_PA_LINK_STARTUP_TIMER with REG_UFS_CFG0 and added a
> comment saying that the older version use the first name as reg name
> * moved QUNIPRO_G4_SEL in a separate section dedicated to CFG0 bits
> * forces the update_link_startup_timer condition to be skipped in case
> of HW version 5.x
>
> [...]

Applied to 6.3/scsi-queue, thanks!

[1/2] scsi: ufs: ufs-qcom: Clear qunipro_g4_sel for HW version major 5
https://git.kernel.org/mkp/scsi/c/9c02aa24bf40
[2/2] dt-bindings: ufs: qcom: Add SM8550 compatible string
https://git.kernel.org/mkp/scsi/c/b8c203891121

--
Martin K. Petersen Oracle Linux Engineering