Thread (1 message) 1 message, 1 author, 2015-06-09

Re: [PATCH v2 06/22] usb: common: add API to get usb otg features from device tree

From: Roger Quadros <hidden>
Date: 2015-06-09 15:20:21

On Tue, 9 Jun 2015 22:15:53 +0800
Li Jun [off-list ref] wrote:
On Tue, Jun 09, 2015 at 03:55:29PM +0300, Roger Quadros wrote:
quoted
Hi,

On Mon, 8 Jun 2015 23:02:01 +0800
Li Jun [off-list ref] wrote:
quoted
Check property of usb hardware to get otg version and if SRP, HNP and ADP
are supported.

Signed-off-by: Li Jun <redacted>
---
 drivers/usb/common/common.c | 64 +++++++++++++++++++++++++++++++++++++++++++++
 include/linux/usb/of.h      | 20 ++++++++++++++
 2 files changed, 84 insertions(+)
diff --git a/drivers/usb/common/common.c b/drivers/usb/common/common.c
index b530fd4..7b0594b 100644
--- a/drivers/usb/common/common.c
+++ b/drivers/usb/common/common.c
@@ -154,6 +154,70 @@ bool of_usb_host_tpl_support(struct device_node *np)
 	return false;
 }
 EXPORT_SYMBOL_GPL(of_usb_host_tpl_support);
+
+/**
+ * of_usb_otg_srp_support -  to get if otg srp is supported by the otg controller
This is not really about otg controller supporting SRP but whether
the DT user wants it enabled or not.
Sorry, correct my precious answer, this is about if otg controller can support
SRP. Meanwhile DT user can disable it via this property even the HW has this
capability.
Whether controller supports any capability shouldn't come from DT but from its
hardware capability registers.

If you want to disable any feature from DT the DT property will have to be called
disable-<foo> rather than <foo>-support.

cheers,
-roger
Li Jun
quoted
IMO this function should be named of_usb_get_otg_srp_enable()
quoted
+ * @np: Pointer to the given device_node
+ *
+ * The function gets if the otg port supports SRP
+ */
+bool of_usb_otg_srp_support(struct device_node *np)
+{
+	if (of_find_property(np, "srp-support", NULL))
+		return true;
+
+	return false;
+}
+EXPORT_SYMBOL_GPL(of_usb_otg_srp_support);
+
+/**
+ * of_usb_otg_hnp_support -  to get if otg hnp is supported by the otg controller
+ * @np: Pointer to the given device_node
+ *
+ * The function gets if the otg port supports HNP
+ */
+bool of_usb_otg_hnp_support(struct device_node *np)
+{
+	if (of_find_property(np, "hnp-support", NULL))
+		return true;
+
+	return false;
+}
+EXPORT_SYMBOL_GPL(of_usb_otg_hnp_support);
+
+/**
+ * of_usb_otg_adp_support -  to get if otg adp is supported by the otg controller
+ * @np: Pointer to the given device_node
+ *
+ * The function gets if the otg port supports ADP
+ */
+bool of_usb_otg_adp_support(struct device_node *np)
+{
+	if (of_find_property(np, "adp-support", NULL))
+		return true;
+
+	return false;
+}
+EXPORT_SYMBOL_GPL(of_usb_otg_adp_support);
+
+/**
+ * of_usb_otg_rev_number -  to get the otg release number the device is
+ * compliant with.
+ * @np: Pointer to the given device_node
+ *
+ * The function gets OTG and EH supplement release number in binary-coded
+ * decimal (i.e. 2.0 is 0200H).
+ */
+int of_usb_otg_rev_number(struct device_node *np)
how about of_usb_get_otg_rev()?
quoted
+{
+	u32 otg_rev;
+
+	if (!of_property_read_u32(np, "otg-rev", &otg_rev))
+		return otg_rev;
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(of_usb_otg_rev_number);
 #endif
 
cheers,
-roger
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" 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