Thread (14 messages) flat view 14 messages, 7 authors, 2014-07-18

[Patch v7 3/3] usb: dwc3: qcom: Add device tree binding

From: arnd@arndb.de (Arnd Bergmann)
Date: 2014-07-02 12:48:49
Also in: linux-arm-msm, lkml

On Wednesday 02 July 2014 11:43:25 Ivan T. Ivanov wrote:
quoted
quoted
<snip>
quoted
quoted
+
+                       ranges;
+
+                       status = "disabled";
+
+                       dwc3 at 11000000 {
+                               compatible = "snps,dwc3";
This sub-node is just wrong. Why can't you have a single node with '
"qcom,dwc3", "snps,dwc3" ' for the compatible property? All you are
adding here is clocks. Does the Synopsys block have no clocks?

I guess this is copied from other broken dwc3 bindings... That doesn't
mean you have to copy it.
The dwc3 core does not deal with clocks.  That is why everyone has a wrapper.
That, in addition to pm, has to be handled from the wrapper.  That's my take
anyway.  I am sure Felipe can speak more to this.
That is a Linux driver issue which is irrelevant to the binding.
DWC3 IP core from Synopsys is the same across SoC's (OMAP, Exynos..),
vendors are adding glue IP to provide necessary clocks and voltages. 
I think that the DT bindings properly reflect this fact.
Not really. The proper way to do this is to have a single node that
lists multiple compatible strings from the most specific (per SoC variant)
to most generic (the underlying IP core) and have all properties in it.

We have seen many cases before where it later turned out that whatever
feature people thought was SoC specific actually was common to all
of them and that we later want to change the code to handle it in a
common way, and to reflect it in the common binding. The clocks that
Rob mentioned are one example of that.

If you have a binding that separates one IP block into two device nodes,
you cannot later adapt the common driver to be more generic and handle
all sorts of SoCs. See the usb-ehci.txt for an example: it started out
really simple but the generic driver has been extended multiple times
to the point where it handles a lot of SoCs by default.

	Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help