On Tue, Apr 10, 2018 at 09:13:53PM +0900, Yoshihiro Shimoda wrote:
> 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;
I wonder if this is better expressed as:
usb3->ignore_id = of_property_read_bool(pdev->dev.of_node,
"renesas,no-id"));
> +
> 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