This patch adds a new property to ignore the ID signal on a board.
Signed-off-by: Yoshihiro Shimoda <[email protected]>
---
Documentation/devicetree/bindings/usb/renesas_usb3.txt | 2 ++
drivers/usb/gadget/udc/renesas_usb3.c | 10 ++++++++++
2 files changed, 12 insertions(+)
diff --git a/Documentation/devicetree/bindings/usb/renesas_usb3.txt
b/Documentation/devicetree/bindings/usb/renesas_usb3.txt
index 2c071bb..53949bd 100644
--- a/Documentation/devicetree/bindings/usb/renesas_usb3.txt
+++ b/Documentation/devicetree/bindings/usb/renesas_usb3.txt
@@ -19,6 +19,8 @@ Required properties:
Optional properties:
- phys: phandle + phy specifier pair
- phy-names: must be "usb"
+ - renesas,ignore-id: when a board doesn't use ID pin, you can add this
+ property to ignore the ID state.
Example of R-Car H3 ES1.x:
usb3_peri0: usb@ee020000 {
diff --git a/drivers/usb/gadget/udc/renesas_usb3.c
b/drivers/usb/gadget/udc/renesas_usb3.c
index 409cde4..59e1485 100644
--- a/drivers/usb/gadget/udc/renesas_usb3.c
+++ b/drivers/usb/gadget/udc/renesas_usb3.c
@@ -350,6 +350,7 @@ struct renesas_usb3 {
bool extcon_host; /* check id and set EXTCON_USB_HOST */
bool extcon_usb; /* check vbus and set EXTCON_USB */
bool forced_b_device;
+ bool ignore_id;
};
#define gadget_to_renesas_usb3(_gadget) \
@@ -645,6 +646,9 @@ static void usb3_check_vbus(struct renesas_usb3 *usb3)
static void usb3_set_mode(struct renesas_usb3 *usb3, bool host)
{
+ if (usb3->ignore_id && !usb3->forced_b_device)
+ return;
+
if (host)
usb3_clear_bit(usb3, DRD_CON_PERI_CON, USB3_DRD_CON);
else
@@ -675,6 +679,9 @@ static void usb3_mode_config(struct renesas_usb3 *usb3,
bool host, bool a_dev)
static bool usb3_is_a_device(struct renesas_usb3 *usb3)
{
+ if (usb3->ignore_id)
+ return false;
+
return !(usb3_read(usb3, USB3_USB_OTG_STA) & USB_OTG_IDMON);
}
@@ -2632,6 +2639,9 @@ static int renesas_usb3_probe(struct platform_device
*pdev)
if (ret < 0)
goto err_add_udc;
+ if (of_property_read_bool(pdev->dev.of_node, "renesas,no-id"))
+ usb3->ignore_id = true;
+
ret = device_create_file(&pdev->dev, &dev_attr_role);
if (ret < 0)
goto err_dev_create;
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html