* [PATCH v2 1/4] dt-bindings: usb: qcom,snps-dwc3: Add Milos compatible
2025-07-09 9:18 [PATCH v2 0/4] Changes for the eUSB2 PHY on Milos Luca Weiss
@ 2025-07-09 9:18 ` Luca Weiss
2025-07-10 11:07 ` Krzysztof Kozlowski
2025-07-09 9:18 ` [PATCH v2 2/4] dt-bindings: phy: qcom,snps-eusb2: document the Milos Synopsys eUSB2 PHY Luca Weiss
` (2 subsequent siblings)
3 siblings, 1 reply; 11+ messages in thread
From: Luca Weiss @ 2025-07-09 9:18 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Vinod Koul, Kishon Vijay Abraham I,
Abel Vesa
Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-usb,
devicetree, linux-kernel, linux-phy, Luca Weiss
Document the Milos dwc3 compatible.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
Documentation/devicetree/bindings/usb/qcom,snps-dwc3.yaml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Documentation/devicetree/bindings/usb/qcom,snps-dwc3.yaml b/Documentation/devicetree/bindings/usb/qcom,snps-dwc3.yaml
index 8dac5eba61b45bc2ea78b23ff38678f909e21317..dfd084ed90242f0e77cb2cde16023c3421c5dfab 100644
--- a/Documentation/devicetree/bindings/usb/qcom,snps-dwc3.yaml
+++ b/Documentation/devicetree/bindings/usb/qcom,snps-dwc3.yaml
@@ -32,6 +32,7 @@ properties:
- qcom,ipq8064-dwc3
- qcom,ipq8074-dwc3
- qcom,ipq9574-dwc3
+ - qcom,milos-dwc3
- qcom,msm8953-dwc3
- qcom,msm8994-dwc3
- qcom,msm8996-dwc3
@@ -338,6 +339,7 @@ allOf:
compatible:
contains:
enum:
+ - qcom,milos-dwc3
- qcom,qcm2290-dwc3
- qcom,qcs615-dwc3
- qcom,sar2130p-dwc3
@@ -453,6 +455,7 @@ allOf:
compatible:
contains:
enum:
+ - qcom,milos-dwc3
- qcom,x1e80100-dwc3
then:
properties:
--
2.50.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: usb: qcom,snps-dwc3: Add Milos compatible
2025-07-09 9:18 ` [PATCH v2 1/4] dt-bindings: usb: qcom,snps-dwc3: Add Milos compatible Luca Weiss
@ 2025-07-10 11:07 ` Krzysztof Kozlowski
0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2025-07-10 11:07 UTC (permalink / raw)
To: Luca Weiss
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Vinod Koul, Kishon Vijay Abraham I,
Abel Vesa, ~postmarketos/upstreaming, phone-devel, linux-arm-msm,
linux-usb, devicetree, linux-kernel, linux-phy
On Wed, Jul 09, 2025 at 11:18:15AM +0200, Luca Weiss wrote:
> Document the Milos dwc3 compatible.
>
> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
> ---
> Documentation/devicetree/bindings/usb/qcom,snps-dwc3.yaml | 3 +++
> 1 file changed, 3 insertions(+)
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 2/4] dt-bindings: phy: qcom,snps-eusb2: document the Milos Synopsys eUSB2 PHY
2025-07-09 9:18 [PATCH v2 0/4] Changes for the eUSB2 PHY on Milos Luca Weiss
2025-07-09 9:18 ` [PATCH v2 1/4] dt-bindings: usb: qcom,snps-dwc3: Add Milos compatible Luca Weiss
@ 2025-07-09 9:18 ` Luca Weiss
2025-07-10 11:07 ` Krzysztof Kozlowski
2025-07-09 9:18 ` [PATCH v2 3/4] phy: qcom: phy-qcom-snps-eusb2: Add missing write from init sequence Luca Weiss
2025-07-09 9:18 ` [PATCH v2 4/4] phy: qcom: phy-qcom-snps-eusb2: Add extra register write for Milos Luca Weiss
3 siblings, 1 reply; 11+ messages in thread
From: Luca Weiss @ 2025-07-09 9:18 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Vinod Koul, Kishon Vijay Abraham I,
Abel Vesa
Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-usb,
devicetree, linux-kernel, linux-phy, Luca Weiss
Document the Synopsys eUSB2 PHY on the Milos SoC by using the SM8550 as
fallback.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
Documentation/devicetree/bindings/phy/qcom,snps-eusb2-phy.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/phy/qcom,snps-eusb2-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,snps-eusb2-phy.yaml
index 142b3c8839d62d91377061ade3a7c400eb970609..854f70af0a6c1ff93615fa8dc1031b4c1ecc2e71 100644
--- a/Documentation/devicetree/bindings/phy/qcom,snps-eusb2-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/qcom,snps-eusb2-phy.yaml
@@ -17,6 +17,7 @@ properties:
oneOf:
- items:
- enum:
+ - qcom,milos-snps-eusb2-phy
- qcom,sar2130p-snps-eusb2-phy
- qcom,sdx75-snps-eusb2-phy
- qcom,sm8650-snps-eusb2-phy
--
2.50.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/4] dt-bindings: phy: qcom,snps-eusb2: document the Milos Synopsys eUSB2 PHY
2025-07-09 9:18 ` [PATCH v2 2/4] dt-bindings: phy: qcom,snps-eusb2: document the Milos Synopsys eUSB2 PHY Luca Weiss
@ 2025-07-10 11:07 ` Krzysztof Kozlowski
0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2025-07-10 11:07 UTC (permalink / raw)
To: Luca Weiss
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Vinod Koul, Kishon Vijay Abraham I,
Abel Vesa, ~postmarketos/upstreaming, phone-devel, linux-arm-msm,
linux-usb, devicetree, linux-kernel, linux-phy
On Wed, Jul 09, 2025 at 11:18:16AM +0200, Luca Weiss wrote:
> Document the Synopsys eUSB2 PHY on the Milos SoC by using the SM8550 as
> fallback.
>
> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
> ---
> Documentation/devicetree/bindings/phy/qcom,snps-eusb2-phy.yaml | 1 +
> 1 file changed, 1 insertion(+)
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 3/4] phy: qcom: phy-qcom-snps-eusb2: Add missing write from init sequence
2025-07-09 9:18 [PATCH v2 0/4] Changes for the eUSB2 PHY on Milos Luca Weiss
2025-07-09 9:18 ` [PATCH v2 1/4] dt-bindings: usb: qcom,snps-dwc3: Add Milos compatible Luca Weiss
2025-07-09 9:18 ` [PATCH v2 2/4] dt-bindings: phy: qcom,snps-eusb2: document the Milos Synopsys eUSB2 PHY Luca Weiss
@ 2025-07-09 9:18 ` Luca Weiss
2025-07-09 9:18 ` [PATCH v2 4/4] phy: qcom: phy-qcom-snps-eusb2: Add extra register write for Milos Luca Weiss
3 siblings, 0 replies; 11+ messages in thread
From: Luca Weiss @ 2025-07-09 9:18 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Vinod Koul, Kishon Vijay Abraham I,
Abel Vesa
Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-usb,
devicetree, linux-kernel, linux-phy, Luca Weiss, Konrad Dybcio,
Neil Armstrong
As per a commit from Qualcomm's downstream 6.1 kernel[0], the init
sequence is missing setting the CMN_CTRL_OVERRIDE_EN bit back to 0 at
the end, as per the 'latest' HPG revision (as of November 2023).
[0] https://git.codelinaro.org/clo/la/kernel/qcom/-/commit/b77774a89e3fda3246e09dd39e16e2ab43cd1329
Fixes: 80090810f5d3 ("phy: qcom: Add QCOM SNPS eUSB2 driver")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
drivers/phy/phy-snps-eusb2.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/phy/phy-snps-eusb2.c b/drivers/phy/phy-snps-eusb2.c
index b73a1d7e57b32cfdfbe314ab938ec54746ed53be..e232b8b4d29100b8fee9e913e2124788af09f2aa 100644
--- a/drivers/phy/phy-snps-eusb2.c
+++ b/drivers/phy/phy-snps-eusb2.c
@@ -437,6 +437,9 @@ static int qcom_snps_eusb2_hsphy_init(struct phy *p)
snps_eusb2_hsphy_write_mask(phy->base, QCOM_USB_PHY_HS_PHY_CTRL2,
USB2_SUSPEND_N_SEL, 0);
+ snps_eusb2_hsphy_write_mask(phy->base, QCOM_USB_PHY_CFG0,
+ CMN_CTRL_OVERRIDE_EN, 0);
+
return 0;
}
--
2.50.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 4/4] phy: qcom: phy-qcom-snps-eusb2: Add extra register write for Milos
2025-07-09 9:18 [PATCH v2 0/4] Changes for the eUSB2 PHY on Milos Luca Weiss
` (2 preceding siblings ...)
2025-07-09 9:18 ` [PATCH v2 3/4] phy: qcom: phy-qcom-snps-eusb2: Add missing write from init sequence Luca Weiss
@ 2025-07-09 9:18 ` Luca Weiss
2025-07-10 12:10 ` Konrad Dybcio
3 siblings, 1 reply; 11+ messages in thread
From: Luca Weiss @ 2025-07-09 9:18 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Vinod Koul, Kishon Vijay Abraham I,
Abel Vesa
Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-usb,
devicetree, linux-kernel, linux-phy, Luca Weiss, Neil Armstrong
As per the downstream devicetree for Milos, add a register write for
QCOM_USB_PHY_CFG_CTRL_1 as per the "eUSB2 HPG version 1.0.2 update".
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
The downstream driver supports an arbitrary extra init sequence via
qcom,param-override-seq.
volcano-usb.dtsi has the following which is implemented in this patch:
/* eUSB2 HPG version 1.0.2 update */
qcom,param-override-seq =
<0x00 0x58>;
---
drivers/phy/phy-snps-eusb2.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/phy/phy-snps-eusb2.c b/drivers/phy/phy-snps-eusb2.c
index e232b8b4d29100b8fee9e913e2124788af09f2aa..87fc086424ba4d9fb3ce870aa7f7971a51d4a567 100644
--- a/drivers/phy/phy-snps-eusb2.c
+++ b/drivers/phy/phy-snps-eusb2.c
@@ -420,6 +420,12 @@ static int qcom_snps_eusb2_hsphy_init(struct phy *p)
/* set default parameters */
qcom_eusb2_default_parameters(phy);
+ if (of_device_is_compatible(p->dev.of_node, "qcom,milos-snps-eusb2-phy")) {
+ /* eUSB2 HPG version 1.0.2 update */
+ writel_relaxed(0x0, phy->base + QCOM_USB_PHY_CFG_CTRL_1);
+ readl_relaxed(phy->base + QCOM_USB_PHY_CFG_CTRL_1);
+ }
+
snps_eusb2_hsphy_write_mask(phy->base, QCOM_USB_PHY_HS_PHY_CTRL2,
USB2_SUSPEND_N_SEL | USB2_SUSPEND_N,
USB2_SUSPEND_N_SEL | USB2_SUSPEND_N);
--
2.50.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 4/4] phy: qcom: phy-qcom-snps-eusb2: Add extra register write for Milos
2025-07-09 9:18 ` [PATCH v2 4/4] phy: qcom: phy-qcom-snps-eusb2: Add extra register write for Milos Luca Weiss
@ 2025-07-10 12:10 ` Konrad Dybcio
2025-07-10 12:25 ` Luca Weiss
0 siblings, 1 reply; 11+ messages in thread
From: Konrad Dybcio @ 2025-07-10 12:10 UTC (permalink / raw)
To: Luca Weiss, Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Vinod Koul, Kishon Vijay Abraham I,
Abel Vesa
Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-usb,
devicetree, linux-kernel, linux-phy, Neil Armstrong
On 7/9/25 11:18 AM, Luca Weiss wrote:
> As per the downstream devicetree for Milos, add a register write for
> QCOM_USB_PHY_CFG_CTRL_1 as per the "eUSB2 HPG version 1.0.2 update".
>
> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
> ---
> The downstream driver supports an arbitrary extra init sequence via
> qcom,param-override-seq.
>
> volcano-usb.dtsi has the following which is implemented in this patch:
>
> /* eUSB2 HPG version 1.0.2 update */
> qcom,param-override-seq =
> <0x00 0x58>;
> ---
> drivers/phy/phy-snps-eusb2.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/phy/phy-snps-eusb2.c b/drivers/phy/phy-snps-eusb2.c
> index e232b8b4d29100b8fee9e913e2124788af09f2aa..87fc086424ba4d9fb3ce870aa7f7971a51d4a567 100644
> --- a/drivers/phy/phy-snps-eusb2.c
> +++ b/drivers/phy/phy-snps-eusb2.c
> @@ -420,6 +420,12 @@ static int qcom_snps_eusb2_hsphy_init(struct phy *p)
> /* set default parameters */
> qcom_eusb2_default_parameters(phy);
>
> + if (of_device_is_compatible(p->dev.of_node, "qcom,milos-snps-eusb2-phy")) {
> + /* eUSB2 HPG version 1.0.2 update */
> + writel_relaxed(0x0, phy->base + QCOM_USB_PHY_CFG_CTRL_1);
> + readl_relaxed(phy->base + QCOM_USB_PHY_CFG_CTRL_1);
Said HPG asks to clear bits [7:1] on all targets
Konrad
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 4/4] phy: qcom: phy-qcom-snps-eusb2: Add extra register write for Milos
2025-07-10 12:10 ` Konrad Dybcio
@ 2025-07-10 12:25 ` Luca Weiss
2025-07-10 12:29 ` Konrad Dybcio
0 siblings, 1 reply; 11+ messages in thread
From: Luca Weiss @ 2025-07-10 12:25 UTC (permalink / raw)
To: Konrad Dybcio, Greg Kroah-Hartman, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Wesley Cheng, Vinod Koul,
Kishon Vijay Abraham I, Abel Vesa
Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-usb,
devicetree, linux-kernel, linux-phy, Neil Armstrong
On Thu Jul 10, 2025 at 2:10 PM CEST, Konrad Dybcio wrote:
> On 7/9/25 11:18 AM, Luca Weiss wrote:
>> As per the downstream devicetree for Milos, add a register write for
>> QCOM_USB_PHY_CFG_CTRL_1 as per the "eUSB2 HPG version 1.0.2 update".
>>
>> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
>> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
>> ---
>> The downstream driver supports an arbitrary extra init sequence via
>> qcom,param-override-seq.
>>
>> volcano-usb.dtsi has the following which is implemented in this patch:
>>
>> /* eUSB2 HPG version 1.0.2 update */
>> qcom,param-override-seq =
>> <0x00 0x58>;
>> ---
>> drivers/phy/phy-snps-eusb2.c | 6 ++++++
>> 1 file changed, 6 insertions(+)
>>
>> diff --git a/drivers/phy/phy-snps-eusb2.c b/drivers/phy/phy-snps-eusb2.c
>> index e232b8b4d29100b8fee9e913e2124788af09f2aa..87fc086424ba4d9fb3ce870aa7f7971a51d4a567 100644
>> --- a/drivers/phy/phy-snps-eusb2.c
>> +++ b/drivers/phy/phy-snps-eusb2.c
>> @@ -420,6 +420,12 @@ static int qcom_snps_eusb2_hsphy_init(struct phy *p)
>> /* set default parameters */
>> qcom_eusb2_default_parameters(phy);
>>
>> + if (of_device_is_compatible(p->dev.of_node, "qcom,milos-snps-eusb2-phy")) {
>> + /* eUSB2 HPG version 1.0.2 update */
>> + writel_relaxed(0x0, phy->base + QCOM_USB_PHY_CFG_CTRL_1);
>> + readl_relaxed(phy->base + QCOM_USB_PHY_CFG_CTRL_1);
>
> Said HPG asks to clear bits [7:1] on all targets
Okay, so make this unconditional and only update those bits instead of
writing the full register?
Keep the write at this location, or move the code somewhere else in the
function?
Regards
Luca
>
> Konrad
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 4/4] phy: qcom: phy-qcom-snps-eusb2: Add extra register write for Milos
2025-07-10 12:25 ` Luca Weiss
@ 2025-07-10 12:29 ` Konrad Dybcio
2025-07-10 14:09 ` Luca Weiss
0 siblings, 1 reply; 11+ messages in thread
From: Konrad Dybcio @ 2025-07-10 12:29 UTC (permalink / raw)
To: Luca Weiss, Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Vinod Koul, Kishon Vijay Abraham I,
Abel Vesa
Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-usb,
devicetree, linux-kernel, linux-phy, Neil Armstrong
On 7/10/25 2:25 PM, Luca Weiss wrote:
> On Thu Jul 10, 2025 at 2:10 PM CEST, Konrad Dybcio wrote:
>> On 7/9/25 11:18 AM, Luca Weiss wrote:
>>> As per the downstream devicetree for Milos, add a register write for
>>> QCOM_USB_PHY_CFG_CTRL_1 as per the "eUSB2 HPG version 1.0.2 update".
>>>
>>> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
>>> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
>>> ---
>>> The downstream driver supports an arbitrary extra init sequence via
>>> qcom,param-override-seq.
>>>
>>> volcano-usb.dtsi has the following which is implemented in this patch:
>>>
>>> /* eUSB2 HPG version 1.0.2 update */
>>> qcom,param-override-seq =
>>> <0x00 0x58>;
>>> ---
>>> drivers/phy/phy-snps-eusb2.c | 6 ++++++
>>> 1 file changed, 6 insertions(+)
>>>
>>> diff --git a/drivers/phy/phy-snps-eusb2.c b/drivers/phy/phy-snps-eusb2.c
>>> index e232b8b4d29100b8fee9e913e2124788af09f2aa..87fc086424ba4d9fb3ce870aa7f7971a51d4a567 100644
>>> --- a/drivers/phy/phy-snps-eusb2.c
>>> +++ b/drivers/phy/phy-snps-eusb2.c
>>> @@ -420,6 +420,12 @@ static int qcom_snps_eusb2_hsphy_init(struct phy *p)
>>> /* set default parameters */
>>> qcom_eusb2_default_parameters(phy);
>>>
>>> + if (of_device_is_compatible(p->dev.of_node, "qcom,milos-snps-eusb2-phy")) {
>>> + /* eUSB2 HPG version 1.0.2 update */
>>> + writel_relaxed(0x0, phy->base + QCOM_USB_PHY_CFG_CTRL_1);
>>> + readl_relaxed(phy->base + QCOM_USB_PHY_CFG_CTRL_1);
>>
>> Said HPG asks to clear bits [7:1] on all targets
>
> Okay, so make this unconditional and only update those bits instead of
> writing the full register?
Yes
>
> Keep the write at this location, or move the code somewhere else in the
> function?
Let's simply do this instead:
diff --git a/drivers/phy/phy-snps-eusb2.c b/drivers/phy/phy-snps-eusb2.c
index 87f323e758d6..6c44d0366f34 100644
--- a/drivers/phy/phy-snps-eusb2.c
+++ b/drivers/phy/phy-snps-eusb2.c
@@ -392,7 +392,7 @@ static int qcom_snps_eusb2_hsphy_init(struct phy *p)
snps_eusb2_hsphy_write_mask(phy->base, QCOM_USB_PHY_CFG_CTRL_1,
PHY_CFG_PLL_CPBIAS_CNTRL_MASK,
- FIELD_PREP(PHY_CFG_PLL_CPBIAS_CNTRL_MASK, 0x1));
+ FIELD_PREP(PHY_CFG_PLL_CPBIAS_CNTRL_MASK, 0x0));
snps_eusb2_hsphy_write_mask(phy->base, QCOM_USB_PHY_CFG_CTRL_4,
PHY_CFG_PLL_INT_CNTRL_MASK
Konrad
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 4/4] phy: qcom: phy-qcom-snps-eusb2: Add extra register write for Milos
2025-07-10 12:29 ` Konrad Dybcio
@ 2025-07-10 14:09 ` Luca Weiss
0 siblings, 0 replies; 11+ messages in thread
From: Luca Weiss @ 2025-07-10 14:09 UTC (permalink / raw)
To: Konrad Dybcio, Greg Kroah-Hartman, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Wesley Cheng, Vinod Koul,
Kishon Vijay Abraham I, Abel Vesa
Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-usb,
devicetree, linux-kernel, linux-phy, Neil Armstrong
On Thu Jul 10, 2025 at 2:29 PM CEST, Konrad Dybcio wrote:
> On 7/10/25 2:25 PM, Luca Weiss wrote:
>> On Thu Jul 10, 2025 at 2:10 PM CEST, Konrad Dybcio wrote:
>>> On 7/9/25 11:18 AM, Luca Weiss wrote:
>>>> As per the downstream devicetree for Milos, add a register write for
>>>> QCOM_USB_PHY_CFG_CTRL_1 as per the "eUSB2 HPG version 1.0.2 update".
>>>>
>>>> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
>>>> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
>>>> ---
>>>> The downstream driver supports an arbitrary extra init sequence via
>>>> qcom,param-override-seq.
>>>>
>>>> volcano-usb.dtsi has the following which is implemented in this patch:
>>>>
>>>> /* eUSB2 HPG version 1.0.2 update */
>>>> qcom,param-override-seq =
>>>> <0x00 0x58>;
>>>> ---
>>>> drivers/phy/phy-snps-eusb2.c | 6 ++++++
>>>> 1 file changed, 6 insertions(+)
>>>>
>>>> diff --git a/drivers/phy/phy-snps-eusb2.c b/drivers/phy/phy-snps-eusb2.c
>>>> index e232b8b4d29100b8fee9e913e2124788af09f2aa..87fc086424ba4d9fb3ce870aa7f7971a51d4a567 100644
>>>> --- a/drivers/phy/phy-snps-eusb2.c
>>>> +++ b/drivers/phy/phy-snps-eusb2.c
>>>> @@ -420,6 +420,12 @@ static int qcom_snps_eusb2_hsphy_init(struct phy *p)
>>>> /* set default parameters */
>>>> qcom_eusb2_default_parameters(phy);
>>>>
>>>> + if (of_device_is_compatible(p->dev.of_node, "qcom,milos-snps-eusb2-phy")) {
>>>> + /* eUSB2 HPG version 1.0.2 update */
>>>> + writel_relaxed(0x0, phy->base + QCOM_USB_PHY_CFG_CTRL_1);
>>>> + readl_relaxed(phy->base + QCOM_USB_PHY_CFG_CTRL_1);
>>>
>>> Said HPG asks to clear bits [7:1] on all targets
>>
>> Okay, so make this unconditional and only update those bits instead of
>> writing the full register?
>
> Yes
>
>>
>> Keep the write at this location, or move the code somewhere else in the
>> function?
> Let's simply do this instead:
>
> diff --git a/drivers/phy/phy-snps-eusb2.c b/drivers/phy/phy-snps-eusb2.c
> index 87f323e758d6..6c44d0366f34 100644
> --- a/drivers/phy/phy-snps-eusb2.c
> +++ b/drivers/phy/phy-snps-eusb2.c
> @@ -392,7 +392,7 @@ static int qcom_snps_eusb2_hsphy_init(struct phy *p)
>
> snps_eusb2_hsphy_write_mask(phy->base, QCOM_USB_PHY_CFG_CTRL_1,
> PHY_CFG_PLL_CPBIAS_CNTRL_MASK,
> - FIELD_PREP(PHY_CFG_PLL_CPBIAS_CNTRL_MASK, 0x1));
> + FIELD_PREP(PHY_CFG_PLL_CPBIAS_CNTRL_MASK, 0x0));
>
> snps_eusb2_hsphy_write_mask(phy->base, QCOM_USB_PHY_CFG_CTRL_4,
> PHY_CFG_PLL_INT_CNTRL_MASK
Sounds reasonable, if the HPG suggests that...
Just asking myself why this wasn't updated in the driver but only added
via the qcom,param-override-seq for some SoCs. But downstream is still
downstream I guess.
Regards
Luca
>
>
> Konrad
^ permalink raw reply [flat|nested] 11+ messages in thread