Re: [PATCH 0/6] usb: dwc3: Calculate REFCLKPER et. al. from reference clock

From: Sean Anderson
Date: Tue Jan 18 2022 - 15:59:28 EST


Hi Thinh,

On 1/18/22 3:00 PM, Thinh Nguyen wrote:
Sean Anderson wrote:
Hi Thinh,

On 1/18/22 2:46 PM, Thinh Nguyen wrote:
Hi Sean,

Baruch Siach wrote:
Hi Sean, Thinh,

On Fri, Jan 14 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.

[1]
https://urldefense.com/v3/__https://lore.kernel.org/linux-usb/20220114044230.2677283-1-robert.hancock@xxxxxxxxxx/__;!!A4F2R9G_pg!M3zKxDZC9a_etqzXo7GSEMTHRWfc1wR_84wwM4-fShiA35CsGcxcTEffHPbprbdC4d2R$


Thinh, you suggested the dedicated DT property for the reference clock:


https://urldefense.com/v3/__https://lore.kernel.org/all/d5acb192-80b9-36f7-43f5-81f21c4e6ba0@xxxxxxxxxxxx/__;!!A4F2R9G_pg!M3zKxDZC9a_etqzXo7GSEMTHRWfc1wR_84wwM4-fShiA35CsGcxcTEffHPbprbpOFmvX$


Can you comment on this series?


Unless there's a good way to pass this information for PCI devices, my
opinion hasn't changed. (Btw, I don't think creating a dummy clock
provider and its dummy ops is a good solution as seems to complicate and
bloat the PCI glue drivers).

Can you explain your situation a bit more? I'm not sure how you can
access a device tree property but not add a fixed-rate clock.

--Sean

Currently for dwc3 pci devices, we have glue drivers that create a
platform_device with specific properties to pass to the dwc3 core
driver. Without a ref clock property, we would need another way to pass
this information to the core driver or another way for the dwc3 core
driver to check for specific pci device's properties and quirks.

The primary problem with the existing binding is that it does not
contain enough information to calculate the fractional period. With the
frequency, we can calculate the correct values for the registers without
needing an additional binding. So we need to transition to some kind of
frequency-based system. So perhaps we should add a "ref-clock-frequency"
property and use that as a default for when the clock is missing.

--Sean