Thread (15 messages) 15 messages, 3 authors, 2016-02-08

Re: [PATCH 3/3] add support for DWC UFS Host Controller

From: Joao Pinto <hidden>
Date: 2016-02-08 15:17:22
Also in: linux-scsi, lkml

Hi Mark and Arnd,

I am planning the v2 of this patch set. I have a doubt in the version
compatibility strings... The core driver must support the UFS 2.0 controller and
this patch set includes a patch that adds 2.0 capabilities to it. The core
driver can get from the controller's version and with that use or not a specific
2.0 feature.

What would be the real added-value of having a compatibility string like
"snps,ufshcd-1.1" and "snps,ufshcd-2.0" if the driver can perform as 2.0 if it
detects a 2.0 controller? Are you saying that a user that puts "snps,ufshcd-1.1"
in the DT compatibility string disables the UFS 2.0 in the core driver despite
the controller is 2.0? Please clarify.

Thanks,
Joao

On 2/4/2016 4:27 PM, Mark Rutland wrote:
On Wed, Feb 03, 2016 at 03:54:48PM +0000, Joao Pinto wrote:
quoted
Hi,

On 2/3/2016 3:39 PM, Arnd Bergmann wrote:
quoted
On Wednesday 03 February 2016 15:01:34 Joao Pinto wrote:
quoted
Hi Arnd,

On 2/3/2016 12:54 PM, Arnd Bergmann wrote:
quoted
On Wednesday 03 February 2016 11:28:26 Joao Pinto wrote:
quoted
Signed-off-by: Joao Pinto <jpinto-HKixBCOQz3hWk0Htik3J/w@public.gmane.org>
This needs a changelog comment, like every patch.
quoted
@@ -0,0 +1,16 @@
+* Universal Flash Storage (UFS) DesignWare Host Controller
+
+DWC_UFSHC nodes are defined to describe on-chip UFS host controllers.
+Each UFS controller instance should have its own node.
+
+Required properties:
+- compatible        : compatible list, contains "snps,ufshcd"
Are there multiple versions of this controller? Usually for designware
parts the version is known, so we should document which versions exist
This controller recent releases was 2.0, but we released last year 1.1. The
driver works with both. The driver must work with all DWC UFS versions.
Ok, then make the driver match on the "snps,ufshcd-1.1" compatible
string, but document both strings in the binding document, and make
it mandatory to specify the 1.1 version as a compatible fallback.

If we ever need to handle a quirk for the 2.0 version then, it can
easily be done.
We need the driver to support UFS 2.0 because it is our latest release and is
the done that Synopsys is focused now. We could call it "snps, ufshcd-2.0" then.
What do you think?
Arnd's point was that the driver can handle only "snps,ufshcd-1.1" for
now, and in your DT you can have:

	compatible = "snps,ufshcd-2.0", "snps,ufshcd-1.1";

That allows driver to handle 2.0 and 1.1 without knowing anything about
2.0 for now. If in future the two need to be handled differently we can
update the driver to explicitly match "snps,ufshcd-2.0".

Regardless, both compatible string should go in the documentation, and
it should be explicitly mentioned that "snps,ufshcd-1.1" should be used
as a fallback entry.

Mark.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help