This patch adds a new property to ignore the ID signal on a board. Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx> --- 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 devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html