* [PATCH v11 1/4] dt-bindings: phy: qcom,qmp-usb: Drop legacy bindings and move to newer one (SM6115 & QCM2290)
2023-05-16 15:05 [PATCH v11 0/4] Enable USB SS qmp phy for Qualcomm SM6115 SoC Bhupesh Sharma
@ 2023-05-16 15:05 ` Bhupesh Sharma
2023-05-17 18:01 ` Krzysztof Kozlowski
2023-05-16 15:05 ` [PATCH v11 2/4] phy: qcom-qmp-usb: add support for updated qcm2290 / sm6115 binding Bhupesh Sharma
` (4 subsequent siblings)
5 siblings, 1 reply; 8+ messages in thread
From: Bhupesh Sharma @ 2023-05-16 15:05 UTC (permalink / raw)
To: linux-arm-msm, devicetree, linux-phy
Cc: agross, linux-kernel, andersson, bhupesh.sharma, bhupesh.linux,
krzysztof.kozlowski, robh+dt, konrad.dybcio, kishon, vkoul,
krzysztof.kozlowski+dt, dmitry.baryshkov
'qcom,msm8996-qmp-usb3-phy.yaml' defines bindings for several PHYs
which predate USB -> USB+DP migration. Since SM6115 and QCM2290
nodes for USB QMP phy are being added to dtsi files by followup patches,
move these bindings instead to the newer style
'qcom,sc8280xp-qmp-usb3-uni-phy.yaml' file.
Since no device trees use these bindings presently, so we have no ABI breakages
with this patch.
Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
---
.../phy/qcom,msm8996-qmp-usb3-phy.yaml | 27 -------------
.../phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml | 38 +++++++++++++++++++
2 files changed, 38 insertions(+), 27 deletions(-)
diff --git a/Documentation/devicetree/bindings/phy/qcom,msm8996-qmp-usb3-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,msm8996-qmp-usb3-phy.yaml
index e81a38281f8c..4c96dab5b9e3 100644
--- a/Documentation/devicetree/bindings/phy/qcom,msm8996-qmp-usb3-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/qcom,msm8996-qmp-usb3-phy.yaml
@@ -23,14 +23,12 @@ properties:
- qcom,ipq8074-qmp-usb3-phy
- qcom,msm8996-qmp-usb3-phy
- qcom,msm8998-qmp-usb3-phy
- - qcom,qcm2290-qmp-usb3-phy
- qcom,sc7180-qmp-usb3-phy
- qcom,sc8180x-qmp-usb3-phy
- qcom,sdm845-qmp-usb3-phy
- qcom,sdm845-qmp-usb3-uni-phy
- qcom,sdx55-qmp-usb3-uni-phy
- qcom,sdx65-qmp-usb3-uni-phy
- - qcom,sm6115-qmp-usb3-phy
- qcom,sm8150-qmp-usb3-phy
- qcom,sm8150-qmp-usb3-uni-phy
- qcom,sm8250-qmp-usb3-phy
@@ -248,29 +246,6 @@ allOf:
- const: phy
- const: common
- - if:
- properties:
- compatible:
- contains:
- enum:
- - qcom,qcm2290-qmp-usb3-phy
- - qcom,sm6115-qmp-usb3-phy
- then:
- properties:
- clocks:
- maxItems: 3
- clock-names:
- items:
- - const: cfg_ahb
- - const: ref
- - const: com_aux
- resets:
- maxItems: 2
- reset-names:
- items:
- - const: phy_phy
- - const: phy
-
- if:
properties:
compatible:
@@ -318,12 +293,10 @@ allOf:
enum:
- qcom,ipq6018-qmp-usb3-phy
- qcom,ipq8074-qmp-usb3-phy
- - qcom,qcm2290-qmp-usb3-phy
- qcom,sc7180-qmp-usb3-phy
- qcom,sc8180x-qmp-usb3-phy
- qcom,sdx55-qmp-usb3-uni-phy
- qcom,sdx65-qmp-usb3-uni-phy
- - qcom,sm6115-qmp-usb3-phy
- qcom,sm8150-qmp-usb3-uni-phy
- qcom,sm8250-qmp-usb3-phy
then:
diff --git a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml
index a272c4033652..2c3e2ede6671 100644
--- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml
@@ -17,8 +17,10 @@ properties:
compatible:
enum:
- qcom,ipq9574-qmp-usb3-phy
+ - qcom,qcm2290-qmp-usb3-phy
- qcom,sa8775p-qmp-usb3-uni-phy
- qcom,sc8280xp-qmp-usb3-uni-phy
+ - qcom,sm6115-qmp-usb3-phy
reg:
maxItems: 1
@@ -104,6 +106,42 @@ allOf:
additionalProperties: false
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,qcm2290-qmp-usb3-phy
+ - qcom,sm6115-qmp-usb3-phy
+ then:
+ properties:
+ clocks:
+ maxItems: 4
+ clock-names:
+ items:
+ - const: cfg_ahb
+ - const: ref
+ - const: com_aux
+ - const: pipe
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,sc8280xp-qmp-usb3-uni-phy
+ then:
+ properties:
+ clocks:
+ maxItems: 4
+ clock-names:
+ items:
+ - const: aux
+ - const: ref
+ - const: com_aux
+ - const: pipe
+
examples:
- |
#include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
--
2.38.1
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH v11 1/4] dt-bindings: phy: qcom,qmp-usb: Drop legacy bindings and move to newer one (SM6115 & QCM2290)
2023-05-16 15:05 ` [PATCH v11 1/4] dt-bindings: phy: qcom,qmp-usb: Drop legacy bindings and move to newer one (SM6115 & QCM2290) Bhupesh Sharma
@ 2023-05-17 18:01 ` Krzysztof Kozlowski
0 siblings, 0 replies; 8+ messages in thread
From: Krzysztof Kozlowski @ 2023-05-17 18:01 UTC (permalink / raw)
To: Bhupesh Sharma, linux-arm-msm, devicetree, linux-phy
Cc: agross, linux-kernel, andersson, bhupesh.linux, robh+dt,
konrad.dybcio, kishon, vkoul, krzysztof.kozlowski+dt,
dmitry.baryshkov
On 16/05/2023 17:05, Bhupesh Sharma wrote:
> 'qcom,msm8996-qmp-usb3-phy.yaml' defines bindings for several PHYs
> which predate USB -> USB+DP migration. Since SM6115 and QCM2290
> nodes for USB QMP phy are being added to dtsi files by followup patches,
> move these bindings instead to the newer style
> 'qcom,sc8280xp-qmp-usb3-uni-phy.yaml' file.
>
> Since no device trees use these bindings presently, so we have no ABI breakages
> with this patch.
>
> Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v11 2/4] phy: qcom-qmp-usb: add support for updated qcm2290 / sm6115 binding
2023-05-16 15:05 [PATCH v11 0/4] Enable USB SS qmp phy for Qualcomm SM6115 SoC Bhupesh Sharma
2023-05-16 15:05 ` [PATCH v11 1/4] dt-bindings: phy: qcom,qmp-usb: Drop legacy bindings and move to newer one (SM6115 & QCM2290) Bhupesh Sharma
@ 2023-05-16 15:05 ` Bhupesh Sharma
2023-05-16 15:05 ` [PATCH v11 3/4] arm64: dts: qcom: sm6115: Add USB SS qmp phy node Bhupesh Sharma
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Bhupesh Sharma @ 2023-05-16 15:05 UTC (permalink / raw)
To: linux-arm-msm, devicetree, linux-phy
Cc: agross, linux-kernel, andersson, bhupesh.sharma, bhupesh.linux,
krzysztof.kozlowski, robh+dt, konrad.dybcio, kishon, vkoul,
krzysztof.kozlowski+dt, dmitry.baryshkov
Add support for the new qcm2290 / sm6115 binding.
The USB QMP phy on these devices supports 2 lanes. Note that the
binding now does not describe every register subregion and instead
the driver holds the corresponding offsets.
While at it also include support for PCS_MISC region which was left
out earlier.
Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
---
drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-usb.c b/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
index 6f2798bbe513..466f0a56c82e 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
@@ -1513,9 +1513,13 @@ static const struct qmp_phy_init_tbl sa8775p_usb3_uniphy_pcs_tbl[] = {
struct qmp_usb_offsets {
u16 serdes;
u16 pcs;
+ u16 pcs_misc;
u16 pcs_usb;
u16 tx;
u16 rx;
+ /* for PHYs with >= 2 lanes */
+ u16 tx2;
+ u16 rx2;
};
/* struct qmp_phy_cfg - per-PHY initialization config */
@@ -1668,6 +1672,16 @@ static const struct qmp_usb_offsets qmp_usb_offsets_ipq9574 = {
.rx = 0x400,
};
+static const struct qmp_usb_offsets qmp_usb_offsets_v3 = {
+ .serdes = 0,
+ .pcs = 0xc00,
+ .pcs_misc = 0xa00,
+ .tx = 0x200,
+ .rx = 0x400,
+ .tx2 = 0x600,
+ .rx2 = 0x800,
+};
+
static const struct qmp_usb_offsets qmp_usb_offsets_v5 = {
.serdes = 0,
.pcs = 0x0200,
@@ -2076,6 +2090,8 @@ static const struct qmp_phy_cfg sm8350_usb3_uniphy_cfg = {
static const struct qmp_phy_cfg qcm2290_usb3phy_cfg = {
.lanes = 2,
+ .offsets = &qmp_usb_offsets_v3,
+
.serdes_tbl = qcm2290_usb3_serdes_tbl,
.serdes_tbl_num = ARRAY_SIZE(qcm2290_usb3_serdes_tbl),
.tx_tbl = qcm2290_usb3_tx_tbl,
@@ -2647,10 +2663,16 @@ static int qmp_usb_parse_dt(struct qmp_usb *qmp)
qmp->serdes = base + offs->serdes;
qmp->pcs = base + offs->pcs;
+ qmp->pcs_misc = base + offs->pcs_misc;
qmp->pcs_usb = base + offs->pcs_usb;
qmp->tx = base + offs->tx;
qmp->rx = base + offs->rx;
+ if (cfg->lanes >= 2) {
+ qmp->tx2 = base + offs->tx2;
+ qmp->rx2 = base + offs->rx2;
+ }
+
qmp->pipe_clk = devm_clk_get(dev, "pipe");
if (IS_ERR(qmp->pipe_clk)) {
return dev_err_probe(dev, PTR_ERR(qmp->pipe_clk),
--
2.38.1
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH v11 3/4] arm64: dts: qcom: sm6115: Add USB SS qmp phy node
2023-05-16 15:05 [PATCH v11 0/4] Enable USB SS qmp phy for Qualcomm SM6115 SoC Bhupesh Sharma
2023-05-16 15:05 ` [PATCH v11 1/4] dt-bindings: phy: qcom,qmp-usb: Drop legacy bindings and move to newer one (SM6115 & QCM2290) Bhupesh Sharma
2023-05-16 15:05 ` [PATCH v11 2/4] phy: qcom-qmp-usb: add support for updated qcm2290 / sm6115 binding Bhupesh Sharma
@ 2023-05-16 15:05 ` Bhupesh Sharma
2023-05-16 15:05 ` [PATCH v11 4/4] arm64: dts: qcom: qrb4210-rb2: Enable USB node Bhupesh Sharma
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Bhupesh Sharma @ 2023-05-16 15:05 UTC (permalink / raw)
To: linux-arm-msm, devicetree, linux-phy
Cc: agross, linux-kernel, andersson, bhupesh.sharma, bhupesh.linux,
krzysztof.kozlowski, robh+dt, konrad.dybcio, kishon, vkoul,
krzysztof.kozlowski+dt, dmitry.baryshkov
Add USB superspeed qmp phy node to dtsi.
Make sure that the various board dts files (which include sm4250.dtsi file)
continue to work as intended.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
---
.../boot/dts/qcom/sm4250-oneplus-billie2.dts | 3 ++
arch/arm64/boot/dts/qcom/sm6115.dtsi | 29 +++++++++++++++++--
.../boot/dts/qcom/sm6115p-lenovo-j606f.dts | 3 ++
3 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts b/arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts
index a1f0622db5a0..75951fd439df 100644
--- a/arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts
+++ b/arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts
@@ -242,6 +242,9 @@ &usb {
&usb_dwc3 {
maximum-speed = "high-speed";
dr_mode = "peripheral";
+
+ phys = <&usb_hsphy>;
+ phy-names = "usb2-phy";
};
&usb_hsphy {
diff --git a/arch/arm64/boot/dts/qcom/sm6115.dtsi b/arch/arm64/boot/dts/qcom/sm6115.dtsi
index 631ca327e064..f67863561f3f 100644
--- a/arch/arm64/boot/dts/qcom/sm6115.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm6115.dtsi
@@ -661,6 +661,31 @@ usb_hsphy: phy@1613000 {
status = "disabled";
};
+ usb_qmpphy: phy@1615000 {
+ compatible = "qcom,sm6115-qmp-usb3-phy";
+ reg = <0x0 0x01615000 0x0 0x1000>;
+
+ clocks = <&gcc GCC_AHB2PHY_USB_CLK>,
+ <&gcc GCC_USB3_PRIM_CLKREF_CLK>,
+ <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
+ <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
+ clock-names = "cfg_ahb",
+ "ref",
+ "com_aux",
+ "pipe";
+
+ resets = <&gcc GCC_USB3_PHY_PRIM_SP0_BCR>,
+ <&gcc GCC_USB3PHY_PHY_PRIM_SP0_BCR>;
+ reset-names = "phy", "phy_phy";
+
+ #clock-cells = <0>;
+ clock-output-names = "usb3_phy_pipe_clk_src";
+
+ #phy-cells = <0>;
+
+ status = "disabled";
+ };
+
qfprom@1b40000 {
compatible = "qcom,sm6115-qfprom", "qcom,qfprom";
reg = <0x0 0x01b40000 0x0 0x7000>;
@@ -1111,8 +1136,8 @@ usb_dwc3: usb@4e00000 {
compatible = "snps,dwc3";
reg = <0x0 0x04e00000 0x0 0xcd00>;
interrupts = <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>;
- phys = <&usb_hsphy>;
- phy-names = "usb2-phy";
+ phys = <&usb_hsphy>, <&usb_qmpphy>;
+ phy-names = "usb2-phy", "usb3-phy";
iommus = <&apps_smmu 0x120 0x0>;
snps,dis_u2_susphy_quirk;
snps,dis_enblslpm_quirk;
diff --git a/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts b/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
index ea3340d31110..81fdcaf48926 100644
--- a/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
+++ b/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
@@ -306,6 +306,9 @@ &usb {
&usb_dwc3 {
maximum-speed = "high-speed";
dr_mode = "peripheral";
+
+ phys = <&usb_hsphy>;
+ phy-names = "usb2-phy";
};
&usb_hsphy {
--
2.38.1
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH v11 4/4] arm64: dts: qcom: qrb4210-rb2: Enable USB node
2023-05-16 15:05 [PATCH v11 0/4] Enable USB SS qmp phy for Qualcomm SM6115 SoC Bhupesh Sharma
` (2 preceding siblings ...)
2023-05-16 15:05 ` [PATCH v11 3/4] arm64: dts: qcom: sm6115: Add USB SS qmp phy node Bhupesh Sharma
@ 2023-05-16 15:05 ` Bhupesh Sharma
2023-05-17 8:14 ` [PATCH v11 0/4] Enable USB SS qmp phy for Qualcomm SM6115 SoC Vinod Koul
2023-05-29 17:53 ` (subset) " Bjorn Andersson
5 siblings, 0 replies; 8+ messages in thread
From: Bhupesh Sharma @ 2023-05-16 15:05 UTC (permalink / raw)
To: linux-arm-msm, devicetree, linux-phy
Cc: agross, linux-kernel, andersson, bhupesh.sharma, bhupesh.linux,
krzysztof.kozlowski, robh+dt, konrad.dybcio, kishon, vkoul,
krzysztof.kozlowski+dt, dmitry.baryshkov
Enable the USB controller and HS/SS PHYs on qrb4210-rb2 board.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
---
arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
index dc80f0bca767..eae3024ce003 100644
--- a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
+++ b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
@@ -222,6 +222,30 @@ &uart4 {
status = "okay";
};
+&usb {
+ status = "okay";
+};
+
+&usb_dwc3 {
+ maximum-speed = "super-speed";
+ dr_mode = "peripheral";
+};
+
+&usb_hsphy {
+ vdd-supply = <&vreg_l4a_0p9>;
+ vdda-pll-supply = <&vreg_l12a_1p8>;
+ vdda-phy-dpdm-supply = <&vreg_l15a_3p128>;
+
+ status = "okay";
+};
+
+&usb_qmpphy {
+ vdda-phy-supply = <&vreg_l4a_0p9>;
+ vdda-pll-supply = <&vreg_l12a_1p8>;
+
+ status = "okay";
+};
+
&xo_board {
clock-frequency = <19200000>;
};
--
2.38.1
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH v11 0/4] Enable USB SS qmp phy for Qualcomm SM6115 SoC
2023-05-16 15:05 [PATCH v11 0/4] Enable USB SS qmp phy for Qualcomm SM6115 SoC Bhupesh Sharma
` (3 preceding siblings ...)
2023-05-16 15:05 ` [PATCH v11 4/4] arm64: dts: qcom: qrb4210-rb2: Enable USB node Bhupesh Sharma
@ 2023-05-17 8:14 ` Vinod Koul
2023-05-29 17:53 ` (subset) " Bjorn Andersson
5 siblings, 0 replies; 8+ messages in thread
From: Vinod Koul @ 2023-05-17 8:14 UTC (permalink / raw)
To: Bhupesh Sharma
Cc: linux-arm-msm, devicetree, linux-phy, agross, linux-kernel,
andersson, bhupesh.linux, krzysztof.kozlowski, robh+dt,
konrad.dybcio, kishon, krzysztof.kozlowski+dt, dmitry.baryshkov
On 16-05-23, 20:35, Bhupesh Sharma wrote:
>
> This patchset adds the support for USB SS qmp phy for Qualcomm SM6115
> SoC. For the previous versions of this patch there were conversations
> on irc as to whether this was a 'qcom,usb-ssphy-qmp-usb3-or-dp' or a
> 'qcom,usb-ssphy-qmp-dp-combo' as per downstream code and hardware
> documentation.
Applied patch 1,2
Thanks
--
~Vinod
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: (subset) [PATCH v11 0/4] Enable USB SS qmp phy for Qualcomm SM6115 SoC
2023-05-16 15:05 [PATCH v11 0/4] Enable USB SS qmp phy for Qualcomm SM6115 SoC Bhupesh Sharma
` (4 preceding siblings ...)
2023-05-17 8:14 ` [PATCH v11 0/4] Enable USB SS qmp phy for Qualcomm SM6115 SoC Vinod Koul
@ 2023-05-29 17:53 ` Bjorn Andersson
5 siblings, 0 replies; 8+ messages in thread
From: Bjorn Andersson @ 2023-05-29 17:53 UTC (permalink / raw)
To: linux-phy, Bhupesh Sharma, linux-arm-msm, devicetree
Cc: vkoul, kishon, robh+dt, krzysztof.kozlowski, dmitry.baryshkov,
agross, linux-kernel, krzysztof.kozlowski+dt, bhupesh.linux,
konrad.dybcio
On Tue, 16 May 2023 20:35:07 +0530, Bhupesh Sharma wrote:
> Changes since v10:
> -----------------
> - v10 can be seen here: https://lore.kernel.org/lkml/20230502053534.1240553-4-bhupesh.sharma@linaro.org/
> - Rebased on phy/next, as Vinod was seeing rebasing issues with v9 while
> applying.
>
> Changes since v9:
> -----------------
> - v9 can be seen here: https://lore.kernel.org/linux-arm-msm/20230501192432.1220727-1-bhupesh.sharma@linaro.org/
> - Addressed review comments from Dmitry on v9, regarding register size
> and pcs_misc offset handling. Also collected his R-Bs.
>
> [...]
Applied, thanks!
[3/4] arm64: dts: qcom: sm6115: Add USB SS qmp phy node
commit: 9dd5f6dba72928e1f16b259fb1c984f80bfa4120
[4/4] arm64: dts: qcom: qrb4210-rb2: Enable USB node
commit: eaa53a85748d58c4398c5c9acaa8d01d92adbb67
Best regards,
--
Bjorn Andersson <andersson@kernel.org>
^ permalink raw reply [flat|nested] 8+ messages in thread