* [PATCH v2 1/7] dt-bindings: usb: dwc3: Deprecate snps,ref-clock-period-ns
2022-01-19 0:24 [PATCH v2 0/7] usb: dwc3: Calculate REFCLKPER et. al. from reference clock Sean Anderson
@ 2022-01-19 0:24 ` Sean Anderson
2022-01-19 0:24 ` [PATCH v2 6/7] arm64: dts: zynqmp: Move USB clocks to dwc3 node Sean Anderson
` (2 subsequent siblings)
3 siblings, 0 replies; 11+ messages in thread
From: Sean Anderson @ 2022-01-19 0:24 UTC (permalink / raw)
To: Greg Kroah-Hartman, linux-usb
Cc: Felipe Balbi, Thinh Nguyen, Balaji Prakash J, linux-kernel,
Robert Hancock, Baruch Siach, Sean Anderson, Rob Herring,
devicetree
This property is redundant because we can determine the correct value for
REFCLKPER based on the "ref" clock. Deprecate it, and encourage users to
provide a clock instead. This also restricts the minimum and maximum to the
values documented in the register reference [1].
[1] https://www.xilinx.com/html_docs/registers/ug1087/usb3_xhci___guctl.html
Signed-off-by: Sean Anderson <sean.anderson@seco.com>
---
(no changes since v1)
Documentation/devicetree/bindings/usb/snps,dwc3.yaml | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
index d29ffcd27472..4f2b0913ad9f 100644
--- a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
+++ b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
@@ -263,8 +263,11 @@ properties:
Value for REFCLKPER field of GUCTL register for reference clock period in
nanoseconds, when the hardware set default does not match the actual
clock.
- minimum: 1
- maximum: 0x3ff
+
+ This binding is deprecated. Instead, provide an appropriate reference clock.
+ minimum: 8
+ maximum: 62
+ deprecated: true
snps,rx-thr-num-pkt-prd:
description:
--
2.25.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH v2 6/7] arm64: dts: zynqmp: Move USB clocks to dwc3 node
2022-01-19 0:24 [PATCH v2 0/7] usb: dwc3: Calculate REFCLKPER et. al. from reference clock Sean Anderson
2022-01-19 0:24 ` [PATCH v2 1/7] dt-bindings: usb: dwc3: Deprecate snps,ref-clock-period-ns Sean Anderson
@ 2022-01-19 0:24 ` Sean Anderson
2022-01-20 16:56 ` Robert Hancock
2022-01-19 0:24 ` [PATCH v2 7/7] arm64: dts: ipq6018: Use reference clock to set dwc3 period Sean Anderson
2022-01-19 18:14 ` [PATCH v2 0/7] usb: dwc3: Calculate REFCLKPER et. al. from reference clock Baruch Siach
3 siblings, 1 reply; 11+ messages in thread
From: Sean Anderson @ 2022-01-19 0:24 UTC (permalink / raw)
To: Greg Kroah-Hartman, linux-usb
Cc: Felipe Balbi, Thinh Nguyen, Balaji Prakash J, linux-kernel,
Robert Hancock, Baruch Siach, Sean Anderson, Michal Simek,
Rob Herring, devicetree, linux-arm-kernel
These clocks are not used by the dwc3-xilinx driver except to
enable/disable them. Move them to the dwc3 node so its driver can use
them to configure the reference clock period.
Signed-off-by: Sean Anderson <sean.anderson@seco.com>
---
(no changes since v1)
arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi | 4 ++--
arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
index 1e0b1bca7c94..8493dd7d5f1f 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
@@ -223,11 +223,11 @@ &uart1 {
clocks = <&zynqmp_clk UART1_REF>, <&zynqmp_clk LPD_LSBUS>;
};
-&usb0 {
+&dwc3_0 {
clocks = <&zynqmp_clk USB0_BUS_REF>, <&zynqmp_clk USB3_DUAL_REF>;
};
-&usb1 {
+&dwc3_1 {
clocks = <&zynqmp_clk USB1_BUS_REF>, <&zynqmp_clk USB3_DUAL_REF>;
};
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index 74e66443e4ce..ba68fb8529ee 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -811,7 +811,6 @@ usb0: usb@ff9d0000 {
status = "disabled";
compatible = "xlnx,zynqmp-dwc3";
reg = <0x0 0xff9d0000 0x0 0x100>;
- clock-names = "bus_clk", "ref_clk";
power-domains = <&zynqmp_firmware PD_USB_0>;
resets = <&zynqmp_reset ZYNQMP_RESET_USB0_CORERESET>,
<&zynqmp_reset ZYNQMP_RESET_USB0_HIBERRESET>,
@@ -825,6 +824,7 @@ dwc3_0: usb@fe200000 {
interrupt-parent = <&gic>;
interrupt-names = "dwc_usb3", "otg";
interrupts = <0 65 4>, <0 69 4>;
+ clock-names = "bus_early", "ref";
#stream-id-cells = <1>;
iommus = <&smmu 0x860>;
snps,quirk-frame-length-adjustment = <0x20>;
@@ -838,7 +838,6 @@ usb1: usb@ff9e0000 {
status = "disabled";
compatible = "xlnx,zynqmp-dwc3";
reg = <0x0 0xff9e0000 0x0 0x100>;
- clock-names = "bus_clk", "ref_clk";
power-domains = <&zynqmp_firmware PD_USB_1>;
resets = <&zynqmp_reset ZYNQMP_RESET_USB1_CORERESET>,
<&zynqmp_reset ZYNQMP_RESET_USB1_HIBERRESET>,
@@ -852,6 +851,7 @@ dwc3_1: usb@fe300000 {
interrupt-parent = <&gic>;
interrupt-names = "dwc_usb3", "otg";
interrupts = <0 70 4>, <0 74 4>;
+ clock-names = "bus_early", "ref";
#stream-id-cells = <1>;
iommus = <&smmu 0x861>;
snps,quirk-frame-length-adjustment = <0x20>;
--
2.25.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH v2 6/7] arm64: dts: zynqmp: Move USB clocks to dwc3 node
2022-01-19 0:24 ` [PATCH v2 6/7] arm64: dts: zynqmp: Move USB clocks to dwc3 node Sean Anderson
@ 2022-01-20 16:56 ` Robert Hancock
0 siblings, 0 replies; 11+ messages in thread
From: Robert Hancock @ 2022-01-20 16:56 UTC (permalink / raw)
To: sean.anderson@seco.com, gregkh@linuxfoundation.org,
linux-usb@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, robh+dt@kernel.org,
devicetree@vger.kernel.org, bjagadee@codeaurora.org,
Thinh.Nguyen@synopsys.com, michal.simek@xilinx.com,
baruch@tkos.co.il, balbi@kernel.org,
linux-arm-kernel@lists.infradead.org
On Tue, 2022-01-18 at 19:24 -0500, Sean Anderson wrote:
> These clocks are not used by the dwc3-xilinx driver except to
> enable/disable them. Move them to the dwc3 node so its driver can use
> them to configure the reference clock period.
>
> Signed-off-by: Sean Anderson <sean.anderson@seco.com>
> ---
>
> (no changes since v1)
>
> arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi | 4 ++--
> arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 4 ++--
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
> b/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
> index 1e0b1bca7c94..8493dd7d5f1f 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
> @@ -223,11 +223,11 @@ &uart1 {
> clocks = <&zynqmp_clk UART1_REF>, <&zynqmp_clk LPD_LSBUS>;
> };
>
> -&usb0 {
> +&dwc3_0 {
> clocks = <&zynqmp_clk USB0_BUS_REF>, <&zynqmp_clk USB3_DUAL_REF>;
> };
>
> -&usb1 {
> +&dwc3_1 {
> clocks = <&zynqmp_clk USB1_BUS_REF>, <&zynqmp_clk USB3_DUAL_REF>;
> };
>
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> index 74e66443e4ce..ba68fb8529ee 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> @@ -811,7 +811,6 @@ usb0: usb@ff9d0000 {
> status = "disabled";
> compatible = "xlnx,zynqmp-dwc3";
> reg = <0x0 0xff9d0000 0x0 0x100>;
> - clock-names = "bus_clk", "ref_clk";
> power-domains = <&zynqmp_firmware PD_USB_0>;
> resets = <&zynqmp_reset ZYNQMP_RESET_USB0_CORERESET>,
> <&zynqmp_reset ZYNQMP_RESET_USB0_HIBERRESET>,
> @@ -825,6 +824,7 @@ dwc3_0: usb@fe200000 {
> interrupt-parent = <&gic>;
> interrupt-names = "dwc_usb3", "otg";
> interrupts = <0 65 4>, <0 69 4>;
> + clock-names = "bus_early", "ref";
> #stream-id-cells = <1>;
> iommus = <&smmu 0x860>;
> snps,quirk-frame-length-adjustment = <0x20>;
> @@ -838,7 +838,6 @@ usb1: usb@ff9e0000 {
> status = "disabled";
> compatible = "xlnx,zynqmp-dwc3";
> reg = <0x0 0xff9e0000 0x0 0x100>;
> - clock-names = "bus_clk", "ref_clk";
> power-domains = <&zynqmp_firmware PD_USB_1>;
> resets = <&zynqmp_reset ZYNQMP_RESET_USB1_CORERESET>,
> <&zynqmp_reset ZYNQMP_RESET_USB1_HIBERRESET>,
> @@ -852,6 +851,7 @@ dwc3_1: usb@fe300000 {
> interrupt-parent = <&gic>;
> interrupt-names = "dwc_usb3", "otg";
> interrupts = <0 70 4>, <0 74 4>;
> + clock-names = "bus_early", "ref";
> #stream-id-cells = <1>;
> iommus = <&smmu 0x861>;
> snps,quirk-frame-length-adjustment = <0x20>;
Tested and working on ZynqMP.
Reviewed-by: Robert Hancock <robert.hancock@calian.com>
Tested-by: Robert Hancock <robert.hancock@calian.com>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 7/7] arm64: dts: ipq6018: Use reference clock to set dwc3 period
2022-01-19 0:24 [PATCH v2 0/7] usb: dwc3: Calculate REFCLKPER et. al. from reference clock Sean Anderson
2022-01-19 0:24 ` [PATCH v2 1/7] dt-bindings: usb: dwc3: Deprecate snps,ref-clock-period-ns Sean Anderson
2022-01-19 0:24 ` [PATCH v2 6/7] arm64: dts: zynqmp: Move USB clocks to dwc3 node Sean Anderson
@ 2022-01-19 0:24 ` Sean Anderson
2022-01-19 18:14 ` [PATCH v2 0/7] usb: dwc3: Calculate REFCLKPER et. al. from reference clock Baruch Siach
3 siblings, 0 replies; 11+ messages in thread
From: Sean Anderson @ 2022-01-19 0:24 UTC (permalink / raw)
To: Greg Kroah-Hartman, linux-usb
Cc: Felipe Balbi, Thinh Nguyen, Balaji Prakash J, linux-kernel,
Robert Hancock, Baruch Siach, Sean Anderson, Andy Gross,
Bjorn Andersson, Rob Herring, devicetree, linux-arm-msm
Instead of manually setting snps,ref-clock-period-ns, we can let the
driver calculate it automatically from the "ref" clock. I haven't
reviewed this board's schematics, so please let me know if this is the
wrong 24MHz clock to use.
Signed-off-by: Sean Anderson <sean.anderson@seco.com>
---
(no changes since v1)
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
index 66ec5615651d..a614b9f73e2c 100644
--- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
@@ -743,12 +743,13 @@ dwc_0: usb@8A00000 {
interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
phys = <&qusb_phy_0>, <&usb0_ssphy>;
phy-names = "usb2-phy", "usb3-phy";
+ clocks = <&xo>;
+ clock-names = "ref";
tx-fifo-resize;
snps,is-utmi-l1-suspend;
snps,hird-threshold = /bits/ 8 <0x0>;
snps,dis_u2_susphy_quirk;
snps,dis_u3_susphy_quirk;
- snps,ref-clock-period-ns = <0x32>;
dr_mode = "host";
};
};
--
2.25.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH v2 0/7] usb: dwc3: Calculate REFCLKPER et. al. from reference clock
2022-01-19 0:24 [PATCH v2 0/7] usb: dwc3: Calculate REFCLKPER et. al. from reference clock Sean Anderson
` (2 preceding siblings ...)
2022-01-19 0:24 ` [PATCH v2 7/7] arm64: dts: ipq6018: Use reference clock to set dwc3 period Sean Anderson
@ 2022-01-19 18:14 ` Baruch Siach
2022-01-19 18:23 ` Sean Anderson
2022-01-20 5:23 ` Kathiravan T
3 siblings, 2 replies; 11+ messages in thread
From: Baruch Siach @ 2022-01-19 18:14 UTC (permalink / raw)
To: Sean Anderson
Cc: Greg Kroah-Hartman, linux-usb, Felipe Balbi, Thinh Nguyen,
Balaji Prakash J, linux-kernel, Robert Hancock, Andy Gross,
Bjorn Andersson, Michal Simek, Rob Herring, devicetree,
linux-arm-kernel, linux-arm-msm
Hi Sean,
On Tue, Jan 18 2022, Sean Anderson wrote:
> This is a rework of patches 3-5 of [1]. It attempts to correctly program
> REFCLKPER and REFCLK_FLADJ based on the reference clock frequency. Since
> we no longer need a special property duplicating this configuration,
> snps,ref-clock-period-ns is deprecated.
>
> Please test this! Patches 3/4 in this series have the effect of
> programming REFCLKPER and REFCLK_FLADJ on boards which already configure
> the "ref" clock. I have build tested, but not much else.
Tested here on IPQ6010 based system. USB still works. But the with "ref"
clock at 24MHz, period is calculated as 0x29. Previous
snps,ref-clock-period-ns value used to be 0x32.
Is that expected?
Thanks,
baruch
>
> [1] https://lore.kernel.org/linux-usb/20220114044230.2677283-1-robert.hancock@calian.com/
>
> Changes in v2:
> - Document clock members
> - Also program GFLADJ.240MHZDECR
> - Don't program GFLADJ if the version is < 2.50a
> - Add snps,ref-clock-frequency-hz property for ACPI
>
> Sean Anderson (7):
> dt-bindings: usb: dwc3: Deprecate snps,ref-clock-period-ns
> usb: dwc3: Get clocks individually
> usb: dwc3: Calculate REFCLKPER based on reference clock
> usb: dwc3: Program GFLADJ
> usb: dwc3: Add snps,ref-clock-frequency-hz property for ACPI
> arm64: dts: zynqmp: Move USB clocks to dwc3 node
> arm64: dts: ipq6018: Use reference clock to set dwc3 period
>
> .../devicetree/bindings/usb/snps,dwc3.yaml | 7 +-
> arch/arm64/boot/dts/qcom/ipq6018.dtsi | 3 +-
> .../arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi | 4 +-
> arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 4 +-
> drivers/usb/dwc3/core.c | 112 +++++++++++++++---
> drivers/usb/dwc3/core.h | 17 ++-
> 6 files changed, 120 insertions(+), 27 deletions(-)
--
~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [PATCH v2 0/7] usb: dwc3: Calculate REFCLKPER et. al. from reference clock
2022-01-19 18:14 ` [PATCH v2 0/7] usb: dwc3: Calculate REFCLKPER et. al. from reference clock Baruch Siach
@ 2022-01-19 18:23 ` Sean Anderson
2022-01-20 5:23 ` Kathiravan T
1 sibling, 0 replies; 11+ messages in thread
From: Sean Anderson @ 2022-01-19 18:23 UTC (permalink / raw)
To: Baruch Siach
Cc: Greg Kroah-Hartman, linux-usb, Felipe Balbi, Thinh Nguyen,
Balaji Prakash J, linux-kernel, Robert Hancock, Andy Gross,
Bjorn Andersson, Michal Simek, Rob Herring, devicetree,
linux-arm-kernel, linux-arm-msm
Hi Baruch,
On 1/19/22 1:14 PM, Baruch Siach wrote:
> Hi Sean,
>
> On Tue, Jan 18 2022, Sean Anderson wrote:
>> This is a rework of patches 3-5 of [1]. It attempts to correctly program
>> REFCLKPER and REFCLK_FLADJ based on the reference clock frequency. Since
>> we no longer need a special property duplicating this configuration,
>> snps,ref-clock-period-ns is deprecated.
>>
>> Please test this! Patches 3/4 in this series have the effect of
>> programming REFCLKPER and REFCLK_FLADJ on boards which already configure
>> the "ref" clock. I have build tested, but not much else.
>
> Tested here on IPQ6010 based system. USB still works. But the with "ref"
> clock at 24MHz, period is calculated as 0x29. Previous
> snps,ref-clock-period-ns value used to be 0x32.
>
> Is that expected?
Yes. From the documentation for GFLADJ_REFCLK_240MHZ_DECR:
> Examples:
> If the ref_clk is 24 MHz then
> - GUCTL.REF_CLK_PERIOD = 41
> - GFLADJ.GFLADJ_REFCLK_240MHZ_DECR = 240/24 = 10
And 41 == 0x29.
--Sean
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 0/7] usb: dwc3: Calculate REFCLKPER et. al. from reference clock
2022-01-19 18:14 ` [PATCH v2 0/7] usb: dwc3: Calculate REFCLKPER et. al. from reference clock Baruch Siach
2022-01-19 18:23 ` Sean Anderson
@ 2022-01-20 5:23 ` Kathiravan T
2022-01-20 10:29 ` Baruch Siach
1 sibling, 1 reply; 11+ messages in thread
From: Kathiravan T @ 2022-01-20 5:23 UTC (permalink / raw)
To: Baruch Siach
Cc: Sean Anderson, Greg Kroah-Hartman, linux-usb, Felipe Balbi,
Thinh Nguyen, Balaji Prakash J, linux-kernel, Robert Hancock,
Andy Gross, Bjorn Andersson, Michal Simek, Rob Herring,
devicetree, linux-arm-kernel, linux-arm-msm
On 2022-01-19 23:44, Baruch Siach wrote:
> Hi Sean,
>
> On Tue, Jan 18 2022, Sean Anderson wrote:
>> This is a rework of patches 3-5 of [1]. It attempts to correctly
>> program
>> REFCLKPER and REFCLK_FLADJ based on the reference clock frequency.
>> Since
>> we no longer need a special property duplicating this configuration,
>> snps,ref-clock-period-ns is deprecated.
>>
>> Please test this! Patches 3/4 in this series have the effect of
>> programming REFCLKPER and REFCLK_FLADJ on boards which already
>> configure
>> the "ref" clock. I have build tested, but not much else.
>
> Tested here on IPQ6010 based system. USB still works. But the with
> "ref"
> clock at 24MHz, period is calculated as 0x29. Previous
> snps,ref-clock-period-ns value used to be 0x32.
>
> Is that expected?
>
> Thanks,
> baruch
>
Hi Baruch,
Yes, it is 0x29 for IPQ60xx based SoCs. In downstream it was wrongly
mentioned as 0x32, which was corrected recently.
Thanks,
Kathiravan T.
>>
>> [1]
>> https://lore.kernel.org/linux-usb/20220114044230.2677283-1-robert.hancock@calian.com/
>>
>> Changes in v2:
>> - Document clock members
>> - Also program GFLADJ.240MHZDECR
>> - Don't program GFLADJ if the version is < 2.50a
>> - Add snps,ref-clock-frequency-hz property for ACPI
>>
>> Sean Anderson (7):
>> dt-bindings: usb: dwc3: Deprecate snps,ref-clock-period-ns
>> usb: dwc3: Get clocks individually
>> usb: dwc3: Calculate REFCLKPER based on reference clock
>> usb: dwc3: Program GFLADJ
>> usb: dwc3: Add snps,ref-clock-frequency-hz property for ACPI
>> arm64: dts: zynqmp: Move USB clocks to dwc3 node
>> arm64: dts: ipq6018: Use reference clock to set dwc3 period
>>
>> .../devicetree/bindings/usb/snps,dwc3.yaml | 7 +-
>> arch/arm64/boot/dts/qcom/ipq6018.dtsi | 3 +-
>> .../arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi | 4 +-
>> arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 4 +-
>> drivers/usb/dwc3/core.c | 112
>> +++++++++++++++---
>> drivers/usb/dwc3/core.h | 17 ++-
>> 6 files changed, 120 insertions(+), 27 deletions(-)
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a
member of Code Aurora Forum, hosted by The Linux Foundation
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 0/7] usb: dwc3: Calculate REFCLKPER et. al. from reference clock
2022-01-20 5:23 ` Kathiravan T
@ 2022-01-20 10:29 ` Baruch Siach
2022-01-24 15:11 ` Kathiravan Thirumoorthy
0 siblings, 1 reply; 11+ messages in thread
From: Baruch Siach @ 2022-01-20 10:29 UTC (permalink / raw)
To: Kathiravan T
Cc: Sean Anderson, Greg Kroah-Hartman, linux-usb, Felipe Balbi,
Thinh Nguyen, Balaji Prakash J, linux-kernel, Robert Hancock,
Andy Gross, Bjorn Andersson, Michal Simek, Rob Herring,
devicetree, linux-arm-kernel, linux-arm-msm
Hi Kathiravan,
On Thu, Jan 20 2022, Kathiravan T wrote:
> On 2022-01-19 23:44, Baruch Siach wrote:
>> Hi Sean,
>> On Tue, Jan 18 2022, Sean Anderson wrote:
>>> This is a rework of patches 3-5 of [1]. It attempts to correctly program
>>> REFCLKPER and REFCLK_FLADJ based on the reference clock frequency. Since
>>> we no longer need a special property duplicating this configuration,
>>> snps,ref-clock-period-ns is deprecated.
>>> Please test this! Patches 3/4 in this series have the effect of
>>> programming REFCLKPER and REFCLK_FLADJ on boards which already configure
>>> the "ref" clock. I have build tested, but not much else.
>> Tested here on IPQ6010 based system. USB still works. But the with
>> "ref"
>> clock at 24MHz, period is calculated as 0x29. Previous
>> snps,ref-clock-period-ns value used to be 0x32.
>> Is that expected?
>
> Yes, it is 0x29 for IPQ60xx based SoCs. In downstream it was wrongly mentioned
> as 0x32, which was corrected recently.
Thanks for the update. This needs fixing in upstream kernel. I'll send a
patch.
For some reason USB appears to work here with both values. Is it because
I only use USB2 signals? If this is the case them I can not actually
test this series on my system.
Thanks,
baruch
>>> [1]
>>> https://lore.kernel.org/linux-usb/20220114044230.2677283-1-robert.hancock@calian.com/
>>> Changes in v2:
>>> - Document clock members
>>> - Also program GFLADJ.240MHZDECR
>>> - Don't program GFLADJ if the version is < 2.50a
>>> - Add snps,ref-clock-frequency-hz property for ACPI
>>> Sean Anderson (7):
>>> dt-bindings: usb: dwc3: Deprecate snps,ref-clock-period-ns
>>> usb: dwc3: Get clocks individually
>>> usb: dwc3: Calculate REFCLKPER based on reference clock
>>> usb: dwc3: Program GFLADJ
>>> usb: dwc3: Add snps,ref-clock-frequency-hz property for ACPI
>>> arm64: dts: zynqmp: Move USB clocks to dwc3 node
>>> arm64: dts: ipq6018: Use reference clock to set dwc3 period
>>> .../devicetree/bindings/usb/snps,dwc3.yaml | 7 +-
>>> arch/arm64/boot/dts/qcom/ipq6018.dtsi | 3 +-
>>> .../arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi | 4 +-
>>> arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 4 +-
>>> drivers/usb/dwc3/core.c | 112 +++++++++++++++---
>>> drivers/usb/dwc3/core.h | 17 ++-
>>> 6 files changed, 120 insertions(+), 27 deletions(-)
--
~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [PATCH v2 0/7] usb: dwc3: Calculate REFCLKPER et. al. from reference clock
2022-01-20 10:29 ` Baruch Siach
@ 2022-01-24 15:11 ` Kathiravan Thirumoorthy
2022-01-24 23:01 ` Thinh Nguyen
0 siblings, 1 reply; 11+ messages in thread
From: Kathiravan Thirumoorthy @ 2022-01-24 15:11 UTC (permalink / raw)
To: Baruch Siach, Kathiravan T
Cc: Sean Anderson, Greg Kroah-Hartman, linux-usb, Felipe Balbi,
Thinh Nguyen, Balaji Prakash J, linux-kernel, Robert Hancock,
Andy Gross, Bjorn Andersson, Michal Simek, Rob Herring,
devicetree, linux-arm-kernel, linux-arm-msm
Hi Baruch,
On 1/20/2022 3:59 PM, Baruch Siach wrote:
> Hi Kathiravan,
>
> On Thu, Jan 20 2022, Kathiravan T wrote:
>> On 2022-01-19 23:44, Baruch Siach wrote:
>>> Hi Sean,
>>> On Tue, Jan 18 2022, Sean Anderson wrote:
>>>> This is a rework of patches 3-5 of [1]. It attempts to correctly program
>>>> REFCLKPER and REFCLK_FLADJ based on the reference clock frequency. Since
>>>> we no longer need a special property duplicating this configuration,
>>>> snps,ref-clock-period-ns is deprecated.
>>>> Please test this! Patches 3/4 in this series have the effect of
>>>> programming REFCLKPER and REFCLK_FLADJ on boards which already configure
>>>> the "ref" clock. I have build tested, but not much else.
>>> Tested here on IPQ6010 based system. USB still works. But the with
>>> "ref"
>>> clock at 24MHz, period is calculated as 0x29. Previous
>>> snps,ref-clock-period-ns value used to be 0x32.
>>> Is that expected?
>> Yes, it is 0x29 for IPQ60xx based SoCs. In downstream it was wrongly mentioned
>> as 0x32, which was corrected recently.
> Thanks for the update. This needs fixing in upstream kernel. I'll send a
> patch.
>
> For some reason USB appears to work here with both values. Is it because
> I only use USB2 signals? If this is the case them I can not actually
> test this series on my system.
I could recollect we did see some issue on USB2.0 port as well, but it
wasn't fatal one. Anyways it is better to test it.
Thanks,
Kathiravan T.
>
> Thanks,
> baruch
>
>>>> [1]
>>>> https://lore.kernel.org/linux-usb/20220114044230.2677283-1-robert.hancock@calian.com/
>>>> Changes in v2:
>>>> - Document clock members
>>>> - Also program GFLADJ.240MHZDECR
>>>> - Don't program GFLADJ if the version is < 2.50a
>>>> - Add snps,ref-clock-frequency-hz property for ACPI
>>>> Sean Anderson (7):
>>>> dt-bindings: usb: dwc3: Deprecate snps,ref-clock-period-ns
>>>> usb: dwc3: Get clocks individually
>>>> usb: dwc3: Calculate REFCLKPER based on reference clock
>>>> usb: dwc3: Program GFLADJ
>>>> usb: dwc3: Add snps,ref-clock-frequency-hz property for ACPI
>>>> arm64: dts: zynqmp: Move USB clocks to dwc3 node
>>>> arm64: dts: ipq6018: Use reference clock to set dwc3 period
>>>> .../devicetree/bindings/usb/snps,dwc3.yaml | 7 +-
>>>> arch/arm64/boot/dts/qcom/ipq6018.dtsi | 3 +-
>>>> .../arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi | 4 +-
>>>> arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 4 +-
>>>> drivers/usb/dwc3/core.c | 112 +++++++++++++++---
>>>> drivers/usb/dwc3/core.h | 17 ++-
>>>> 6 files changed, 120 insertions(+), 27 deletions(-)
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 0/7] usb: dwc3: Calculate REFCLKPER et. al. from reference clock
2022-01-24 15:11 ` Kathiravan Thirumoorthy
@ 2022-01-24 23:01 ` Thinh Nguyen
0 siblings, 0 replies; 11+ messages in thread
From: Thinh Nguyen @ 2022-01-24 23:01 UTC (permalink / raw)
To: Kathiravan Thirumoorthy, Baruch Siach, Kathiravan T
Cc: Sean Anderson, Greg Kroah-Hartman, linux-usb@vger.kernel.org,
Felipe Balbi, Thinh Nguyen, Balaji Prakash J,
linux-kernel@vger.kernel.org, Robert Hancock, Andy Gross,
Bjorn Andersson, Michal Simek, Rob Herring,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-arm-msm@vger.kernel.org
Kathiravan Thirumoorthy wrote:
> Hi Baruch,
>
> On 1/20/2022 3:59 PM, Baruch Siach wrote:
>> Hi Kathiravan,
>>
>> On Thu, Jan 20 2022, Kathiravan T wrote:
>>> On 2022-01-19 23:44, Baruch Siach wrote:
>>>> Hi Sean,
>>>> On Tue, Jan 18 2022, Sean Anderson wrote:
>>>>> This is a rework of patches 3-5 of [1]. It attempts to correctly
>>>>> program
>>>>> REFCLKPER and REFCLK_FLADJ based on the reference clock frequency.
>>>>> Since
>>>>> we no longer need a special property duplicating this configuration,
>>>>> snps,ref-clock-period-ns is deprecated.
>>>>> Please test this! Patches 3/4 in this series have the effect of
>>>>> programming REFCLKPER and REFCLK_FLADJ on boards which already
>>>>> configure
>>>>> the "ref" clock. I have build tested, but not much else.
>>>> Tested here on IPQ6010 based system. USB still works. But the with
>>>> "ref"
>>>> clock at 24MHz, period is calculated as 0x29. Previous
>>>> snps,ref-clock-period-ns value used to be 0x32.
>>>> Is that expected?
>>> Yes, it is 0x29 for IPQ60xx based SoCs. In downstream it was wrongly
>>> mentioned
>>> as 0x32, which was corrected recently.
>> Thanks for the update. This needs fixing in upstream kernel. I'll send a
>> patch.
>>
>> For some reason USB appears to work here with both values. Is it because
>> I only use USB2 signals? If this is the case them I can not actually
>> test this series on my system.
The controller uses the GUCTL.REFCLKPER under specific conditions and
settings, and the conditions are different between host mode and device
mode. For example, if you're running as device-mode and not operating in
low power, and or not using periodic endpoints, you're not probably
testing this.
BR,
Thinh
>
> I could recollect we did see some issue on USB2.0 port as well, but it
> wasn't fatal one. Anyways it is better to test it.
>
> Thanks,
>
> Kathiravan T.
>
>>
>> Thanks,
>> baruch
>>
>>>>> [1]
>>>>> https://urldefense.com/v3/__https://lore.kernel.org/linux-usb/20220114044230.2677283-1-robert.hancock@calian.com/__;!!A4F2R9G_pg!MCqqTGYTR42-4_LUHhrSJjkUOkDZKb795I8lB3PY4dB-kVCBnR9YKucgzrwhlj0tZZm5$
>>>>> Changes in v2:
>>>>> - Document clock members
>>>>> - Also program GFLADJ.240MHZDECR
>>>>> - Don't program GFLADJ if the version is < 2.50a
>>>>> - Add snps,ref-clock-frequency-hz property for ACPI
>>>>> Sean Anderson (7):
>>>>> dt-bindings: usb: dwc3: Deprecate snps,ref-clock-period-ns
>>>>> usb: dwc3: Get clocks individually
>>>>> usb: dwc3: Calculate REFCLKPER based on reference clock
>>>>> usb: dwc3: Program GFLADJ
>>>>> usb: dwc3: Add snps,ref-clock-frequency-hz property for ACPI
>>>>> arm64: dts: zynqmp: Move USB clocks to dwc3 node
>>>>> arm64: dts: ipq6018: Use reference clock to set dwc3 period
>>>>> .../devicetree/bindings/usb/snps,dwc3.yaml | 7 +-
>>>>> arch/arm64/boot/dts/qcom/ipq6018.dtsi | 3 +-
>>>>> .../arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi | 4 +-
>>>>> arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 4 +-
>>>>> drivers/usb/dwc3/core.c | 112
>>>>> +++++++++++++++---
>>>>> drivers/usb/dwc3/core.h | 17 ++-
>>>>> 6 files changed, 120 insertions(+), 27 deletions(-)
>>
^ permalink raw reply [flat|nested] 11+ messages in thread