* [PATCH v9 1/4] dt-bindings: phy: qcom,qmp-usb: Drop legacy bindings and move to newer one (SM6115 & QCM2290)
2023-05-01 19:24 [PATCH v9 0/4] Enable USB SS qmp phy for Qualcomm SM6115 SoC Bhupesh Sharma
@ 2023-05-01 19:24 ` Bhupesh Sharma
2023-05-01 19:24 ` [PATCH v9 2/4] phy: qcom-qmp-usb: add support for updated qcm2290 / sm6115 binding Bhupesh Sharma
` (2 subsequent siblings)
3 siblings, 0 replies; 11+ messages in thread
From: Bhupesh Sharma @ 2023-05-01 19:24 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
'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 | 44 ++++++++++++++++---
2 files changed, 39 insertions(+), 32 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 16fce1038285..05335e6bbb58 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
@@ -16,7 +16,9 @@ description:
properties:
compatible:
enum:
+ - qcom,qcm2290-qmp-usb3-phy
- qcom,sc8280xp-qmp-usb3-uni-phy
+ - qcom,sm6115-qmp-usb3-phy
reg:
maxItems: 1
@@ -25,11 +27,7 @@ properties:
maxItems: 4
clock-names:
- items:
- - const: aux
- - const: ref
- - const: com_aux
- - const: pipe
+ maxItems: 4
power-domains:
maxItems: 1
@@ -71,6 +69,42 @@ required:
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] 11+ messages in thread* [PATCH v9 2/4] phy: qcom-qmp-usb: add support for updated qcm2290 / sm6115 binding
2023-05-01 19:24 [PATCH v9 0/4] Enable USB SS qmp phy for Qualcomm SM6115 SoC Bhupesh Sharma
2023-05-01 19:24 ` [PATCH v9 1/4] dt-bindings: phy: qcom,qmp-usb: Drop legacy bindings and move to newer one (SM6115 & QCM2290) Bhupesh Sharma
@ 2023-05-01 19:24 ` Bhupesh Sharma
2023-05-02 0:13 ` Dmitry Baryshkov
2023-05-01 19:24 ` [PATCH v9 3/4] arm64: dts: qcom: sm6115: Add USB SS qmp phy node Bhupesh Sharma
2023-05-01 19:24 ` [PATCH v9 4/4] arm64: dts: qcom: qrb4210-rb2: Enable USB node Bhupesh Sharma
3 siblings, 1 reply; 11+ messages in thread
From: Bhupesh Sharma @ 2023-05-01 19:24 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
Add support for the new qcm2290 / sm6115 binding.
The USB QMP phy on these devices supports 2 lanes. Also note that the
binding now does not describe every register subregion and instead
the driver holds the corresponding offsets. This also includes
the PCS_MISC region.
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 a49711c5a63d..aa143c081805 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
@@ -1414,6 +1414,10 @@ struct qmp_usb_offsets {
u16 pcs_usb;
u16 tx;
u16 rx;
+ /* for PHYs with >= 2 lanes */
+ u16 tx2;
+ u16 rx2;
+ u16 pcs_misc;
};
/* struct qmp_phy_cfg - per-PHY initialization config */
@@ -1558,6 +1562,16 @@ static const char * const qmp_phy_vreg_l[] = {
"vdda-phy", "vdda-pll",
};
+static const struct qmp_usb_offsets qmp_usb_offsets_v3 = {
+ .serdes = 0,
+ .pcs = 0xc00,
+ .tx = 0x200,
+ .rx = 0x400,
+ .tx2 = 0x600,
+ .rx2 = 0x800,
+ .pcs_misc = 0xa00,
+};
+
static const struct qmp_usb_offsets qmp_usb_offsets_v5 = {
.serdes = 0,
.pcs = 0x0200,
@@ -1922,6 +1936,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,
@@ -2497,6 +2513,12 @@ static int qmp_usb_parse_dt(struct qmp_usb *qmp)
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->pcs_misc = base + offs->pcs_misc;
+ }
+
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] 11+ messages in thread* Re: [PATCH v9 2/4] phy: qcom-qmp-usb: add support for updated qcm2290 / sm6115 binding
2023-05-01 19:24 ` [PATCH v9 2/4] phy: qcom-qmp-usb: add support for updated qcm2290 / sm6115 binding Bhupesh Sharma
@ 2023-05-02 0:13 ` Dmitry Baryshkov
2023-05-02 4:44 ` Bhupesh Sharma
0 siblings, 1 reply; 11+ messages in thread
From: Dmitry Baryshkov @ 2023-05-02 0:13 UTC (permalink / raw)
To: Bhupesh Sharma, linux-arm-msm, devicetree, linux-phy
Cc: agross, linux-kernel, andersson, bhupesh.linux,
krzysztof.kozlowski, robh+dt, konrad.dybcio, kishon, vkoul,
krzysztof.kozlowski+dt
On 01/05/2023 22:24, Bhupesh Sharma wrote:
> Add support for the new qcm2290 / sm6115 binding.
>
> The USB QMP phy on these devices supports 2 lanes. Also note that the
> binding now does not describe every register subregion and instead
> the driver holds the corresponding offsets. This also includes
> the PCS_MISC region.
>
> 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 a49711c5a63d..aa143c081805 100644
> --- a/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
> +++ b/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
> @@ -1414,6 +1414,10 @@ struct qmp_usb_offsets {
> u16 pcs_usb;
> u16 tx;
> u16 rx;
> + /* for PHYs with >= 2 lanes */
> + u16 tx2;
> + u16 rx2;
> + u16 pcs_misc;
> };
>
> /* struct qmp_phy_cfg - per-PHY initialization config */
> @@ -1558,6 +1562,16 @@ static const char * const qmp_phy_vreg_l[] = {
> "vdda-phy", "vdda-pll",
> };
>
> +static const struct qmp_usb_offsets qmp_usb_offsets_v3 = {
> + .serdes = 0,
> + .pcs = 0xc00,
> + .tx = 0x200,
> + .rx = 0x400,
> + .tx2 = 0x600,
> + .rx2 = 0x800,
> + .pcs_misc = 0xa00,
> +};
> +
> static const struct qmp_usb_offsets qmp_usb_offsets_v5 = {
> .serdes = 0,
> .pcs = 0x0200,
> @@ -1922,6 +1936,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,
> @@ -2497,6 +2513,12 @@ static int qmp_usb_parse_dt(struct qmp_usb *qmp)
> 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->pcs_misc = base + offs->pcs_misc;
pcs_misc should also be usable for a single-lane PHYs.
> + }
> +
> qmp->pipe_clk = devm_clk_get(dev, "pipe");
> if (IS_ERR(qmp->pipe_clk)) {
> return dev_err_probe(dev, PTR_ERR(qmp->pipe_clk),
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [PATCH v9 2/4] phy: qcom-qmp-usb: add support for updated qcm2290 / sm6115 binding
2023-05-02 0:13 ` Dmitry Baryshkov
@ 2023-05-02 4:44 ` Bhupesh Sharma
0 siblings, 0 replies; 11+ messages in thread
From: Bhupesh Sharma @ 2023-05-02 4:44 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: linux-arm-msm, devicetree, linux-phy, agross, linux-kernel,
andersson, bhupesh.linux, krzysztof.kozlowski, robh+dt,
konrad.dybcio, kishon, vkoul, krzysztof.kozlowski+dt
On Tue, 2 May 2023 at 05:43, Dmitry Baryshkov
<dmitry.baryshkov@linaro.org> wrote:
>
> On 01/05/2023 22:24, Bhupesh Sharma wrote:
> > Add support for the new qcm2290 / sm6115 binding.
> >
> > The USB QMP phy on these devices supports 2 lanes. Also note that the
> > binding now does not describe every register subregion and instead
> > the driver holds the corresponding offsets. This also includes
> > the PCS_MISC region.
> >
> > 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 a49711c5a63d..aa143c081805 100644
> > --- a/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
> > +++ b/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
> > @@ -1414,6 +1414,10 @@ struct qmp_usb_offsets {
> > u16 pcs_usb;
> > u16 tx;
> > u16 rx;
> > + /* for PHYs with >= 2 lanes */
> > + u16 tx2;
> > + u16 rx2;
> > + u16 pcs_misc;
> > };
> >
> > /* struct qmp_phy_cfg - per-PHY initialization config */
> > @@ -1558,6 +1562,16 @@ static const char * const qmp_phy_vreg_l[] = {
> > "vdda-phy", "vdda-pll",
> > };
> >
> > +static const struct qmp_usb_offsets qmp_usb_offsets_v3 = {
> > + .serdes = 0,
> > + .pcs = 0xc00,
> > + .tx = 0x200,
> > + .rx = 0x400,
> > + .tx2 = 0x600,
> > + .rx2 = 0x800,
> > + .pcs_misc = 0xa00,
> > +};
> > +
> > static const struct qmp_usb_offsets qmp_usb_offsets_v5 = {
> > .serdes = 0,
> > .pcs = 0x0200,
> > @@ -1922,6 +1936,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,
> > @@ -2497,6 +2513,12 @@ static int qmp_usb_parse_dt(struct qmp_usb *qmp)
> > 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->pcs_misc = base + offs->pcs_misc;
>
> pcs_misc should also be usable for a single-lane PHYs.
Ok. I will make it generic in the next version.
Thanks,
Bhupesh
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v9 3/4] arm64: dts: qcom: sm6115: Add USB SS qmp phy node
2023-05-01 19:24 [PATCH v9 0/4] Enable USB SS qmp phy for Qualcomm SM6115 SoC Bhupesh Sharma
2023-05-01 19:24 ` [PATCH v9 1/4] dt-bindings: phy: qcom,qmp-usb: Drop legacy bindings and move to newer one (SM6115 & QCM2290) Bhupesh Sharma
2023-05-01 19:24 ` [PATCH v9 2/4] phy: qcom-qmp-usb: add support for updated qcm2290 / sm6115 binding Bhupesh Sharma
@ 2023-05-01 19:24 ` Bhupesh Sharma
2023-05-02 0:17 ` Dmitry Baryshkov
2023-05-02 0:18 ` Dmitry Baryshkov
2023-05-01 19:24 ` [PATCH v9 4/4] arm64: dts: qcom: qrb4210-rb2: Enable USB node Bhupesh Sharma
3 siblings, 2 replies; 11+ messages in thread
From: Bhupesh Sharma @ 2023-05-01 19:24 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
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.
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..21d00b0295a1 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 0x200>;
+
+ 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] 11+ messages in thread* Re: [PATCH v9 3/4] arm64: dts: qcom: sm6115: Add USB SS qmp phy node
2023-05-01 19:24 ` [PATCH v9 3/4] arm64: dts: qcom: sm6115: Add USB SS qmp phy node Bhupesh Sharma
@ 2023-05-02 0:17 ` Dmitry Baryshkov
2023-05-02 0:18 ` Dmitry Baryshkov
1 sibling, 0 replies; 11+ messages in thread
From: Dmitry Baryshkov @ 2023-05-02 0:17 UTC (permalink / raw)
To: Bhupesh Sharma, linux-arm-msm, devicetree, linux-phy
Cc: agross, linux-kernel, andersson, bhupesh.linux,
krzysztof.kozlowski, robh+dt, konrad.dybcio, kishon, vkoul,
krzysztof.kozlowski+dt
On 01/05/2023 22:24, Bhupesh Sharma wrote:
> 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.
>
> 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(-)
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v9 3/4] arm64: dts: qcom: sm6115: Add USB SS qmp phy node
2023-05-01 19:24 ` [PATCH v9 3/4] arm64: dts: qcom: sm6115: Add USB SS qmp phy node Bhupesh Sharma
2023-05-02 0:17 ` Dmitry Baryshkov
@ 2023-05-02 0:18 ` Dmitry Baryshkov
2023-05-02 4:43 ` Bhupesh Sharma
1 sibling, 1 reply; 11+ messages in thread
From: Dmitry Baryshkov @ 2023-05-02 0:18 UTC (permalink / raw)
To: Bhupesh Sharma, linux-arm-msm, devicetree, linux-phy
Cc: agross, linux-kernel, andersson, bhupesh.linux,
krzysztof.kozlowski, robh+dt, konrad.dybcio, kishon, vkoul,
krzysztof.kozlowski+dt
On 01/05/2023 22:24, Bhupesh Sharma wrote:
> 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.
>
> 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..21d00b0295a1 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 0x200>;
I replied with R-B, but then I noticed that the length of the region is
bad. What is the maximum offset that is used by the driver? I know that
it is bigger than 0x200.
> +
> + 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 {
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [PATCH v9 3/4] arm64: dts: qcom: sm6115: Add USB SS qmp phy node
2023-05-02 0:18 ` Dmitry Baryshkov
@ 2023-05-02 4:43 ` Bhupesh Sharma
0 siblings, 0 replies; 11+ messages in thread
From: Bhupesh Sharma @ 2023-05-02 4:43 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: linux-arm-msm, devicetree, linux-phy, agross, linux-kernel,
andersson, bhupesh.linux, krzysztof.kozlowski, robh+dt,
konrad.dybcio, kishon, vkoul, krzysztof.kozlowski+dt
On Tue, 2 May 2023 at 05:48, Dmitry Baryshkov
<dmitry.baryshkov@linaro.org> wrote:
>
> On 01/05/2023 22:24, Bhupesh Sharma wrote:
> > 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.
> >
> > 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..21d00b0295a1 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 0x200>;
>
> I replied with R-B, but then I noticed that the length of the region is
> bad. What is the maximum offset that is used by the driver? I know that
> it is bigger than 0x200.
Sure, let me recheck and fix this in the next version.
Thanks,
Bhupesh
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v9 4/4] arm64: dts: qcom: qrb4210-rb2: Enable USB node
2023-05-01 19:24 [PATCH v9 0/4] Enable USB SS qmp phy for Qualcomm SM6115 SoC Bhupesh Sharma
` (2 preceding siblings ...)
2023-05-01 19:24 ` [PATCH v9 3/4] arm64: dts: qcom: sm6115: Add USB SS qmp phy node Bhupesh Sharma
@ 2023-05-01 19:24 ` Bhupesh Sharma
2023-05-02 0:16 ` Dmitry Baryshkov
3 siblings, 1 reply; 11+ messages in thread
From: Bhupesh Sharma @ 2023-05-01 19:24 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
Enable the USB controller and HS/SS PHYs on qrb4210-rb2 board.
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] 11+ messages in thread* Re: [PATCH v9 4/4] arm64: dts: qcom: qrb4210-rb2: Enable USB node
2023-05-01 19:24 ` [PATCH v9 4/4] arm64: dts: qcom: qrb4210-rb2: Enable USB node Bhupesh Sharma
@ 2023-05-02 0:16 ` Dmitry Baryshkov
0 siblings, 0 replies; 11+ messages in thread
From: Dmitry Baryshkov @ 2023-05-02 0:16 UTC (permalink / raw)
To: Bhupesh Sharma, linux-arm-msm, devicetree, linux-phy
Cc: agross, linux-kernel, andersson, bhupesh.linux,
krzysztof.kozlowski, robh+dt, konrad.dybcio, kishon, vkoul,
krzysztof.kozlowski+dt
On 01/05/2023 22:24, Bhupesh Sharma wrote:
> Enable the USB controller and HS/SS PHYs on qrb4210-rb2 board.
>
> Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@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>;
> };
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 11+ messages in thread