From patchwork Tue Mar 28 11:53:22 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yoshihiro Shimoda X-Patchwork-Id: 9648937 X-Patchwork-Delegate: geert@linux-m68k.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 10E7860349 for ; Tue, 28 Mar 2017 11:56:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0C1F8282E8 for ; Tue, 28 Mar 2017 11:56:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0102528343; Tue, 28 Mar 2017 11:56:21 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 773E328338 for ; Tue, 28 Mar 2017 11:56:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751618AbdC1L4K (ORCPT ); Tue, 28 Mar 2017 07:56:10 -0400 Received: from relmlor4.renesas.com ([210.160.252.174]:35178 "EHLO relmlie3.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751364AbdC1L4I (ORCPT ); Tue, 28 Mar 2017 07:56:08 -0400 Received: from unknown (HELO relmlir3.idc.renesas.com) ([10.200.68.153]) by relmlie3.idc.renesas.com with ESMTP; 28 Mar 2017 20:55:41 +0900 Received: from relmlac4.idc.renesas.com (relmlac4.idc.renesas.com [10.200.69.24]) by relmlir3.idc.renesas.com (Postfix) with ESMTP id 906D96780F; Tue, 28 Mar 2017 20:55:41 +0900 (JST) Received: by relmlac4.idc.renesas.com (Postfix, from userid 0) id 6E230480A5; Tue, 28 Mar 2017 20:55:41 +0900 (JST) Received: from relmlac4.idc.renesas.com (localhost [127.0.0.1]) by relmlac4.idc.renesas.com (Postfix) with ESMTP id 65C7548014; Tue, 28 Mar 2017 20:55:41 +0900 (JST) Received: from relmlii2.idc.renesas.com [10.200.68.66] by relmlac4.idc.renesas.com with ESMTP id WBM02093; Tue, 28 Mar 2017 20:55:41 +0900 X-IronPort-AV: E=Sophos;i="5.36,236,1486393200"; d="scan'208";a="238840604" Received: from mail-sg2apc01lp0240.outbound.protection.outlook.com (HELO APC01-SG2-obe.outbound.protection.outlook.com) ([65.55.88.240]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 28 Mar 2017 20:55:40 +0900 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesasgroup.onmicrosoft.com; s=selector1-renesas-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=bHxCYb88rZB85bYOYPe90LrlvUEqgZ/lvP84+oIjSEQ=; b=lsikoQhUE+2msef64oJgMZy+5Bs+bFsbFLt3BYUljdOs43gdGuZR/HxtHNp7AYXSfqVtnvf+AMS1/ui7gG6923slaiGBAoKILa6vo5LWOIDedW5gkyH4zC6TyZN6mi0FraqPGwb4AOFrERfaVgrLlvlGFVck+1F3LFkERIvfLZU= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none; kernel.org; dmarc=none action=none header.from=renesas.com; Received: from localhost.localdomain (211.11.155.144) by PS1PR06MB1691.apcprd06.prod.outlook.com (10.167.53.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.991.14; Tue, 28 Mar 2017 11:55:37 +0000 From: Yoshihiro Shimoda To: CC: , , , Yoshihiro Shimoda Subject: [PATCH 2/4] usb: gadget: udc: add USB ID signal monitoring Date: Tue, 28 Mar 2017 20:53:22 +0900 Message-ID: <1490702004-8167-3-git-send-email-yoshihiro.shimoda.uh@renesas.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1490702004-8167-1-git-send-email-yoshihiro.shimoda.uh@renesas.com> References: <1490702004-8167-1-git-send-email-yoshihiro.shimoda.uh@renesas.com> MIME-Version: 1.0 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: TY1PR0201CA0036.apcprd02.prod.outlook.com (10.164.90.174) To PS1PR06MB1691.apcprd06.prod.outlook.com (10.167.53.13) X-MS-Office365-Filtering-Correlation-Id: 71f8b632-17b3-4fa0-bef2-08d475d1596e X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081)(201703131423060)(201703031133066); SRVR:PS1PR06MB1691; X-Microsoft-Exchange-Diagnostics: 1; PS1PR06MB1691; 3:PrVGAYZXqrMEDife7YVy4JaJINxn7XOMKTcb9TJBQUG++y10Zbj3E5j8Zg8aEijsJVzN9ZOIco8gmxoklJyPUCT3ehMgBjzq9IMpX1NlhWxeLIfM4DEBbeuaAVYGPMJFmpX9mYaxS8DMWxRsKfBP1EB/lvrji9Fi7mksyUueSHvMBo0feFCzMtg9w2MbCcsc1+IwD85sXDGDLEGNGwtXbajGQKdaepfkHcVzvS8+TbJ0xQouxg5YzuvWxZg4HqzBBZX5HGO5KpOp4rR8YHSOuq3fdchZ3k74RTmcQGMWi3BUqcN6hyFWUHhACUp4uZ9zneBqMiJWpzpphLR1hbaA+CaGC+GVgOi1joKA6LOT2c4=; 25:EYaEjsdCkEMvcr06R4HdXWsiKbiiwrsEVN3gzkyEZ2wjZ1LhiZfcFrseXMoMXwD17KLUxGysLv42ERgRt6KE0PkQLEfzz9BVCr1WzT7Og3jddMuq6wiAikhFr/0IF/KJEu+uUdtn4dx0FIJ2ImVgZ0SRQLSDQGo1NmnRej2jcuInKjW26wdfJ0LMYJAicm+diNrnX6/LyJyE6PdNtIGhcTWFqT0oxpobMOSl3hCUDz33hQ81p+YLQmFEY5rcSmufMnn/EjQoLThbr48+Sude7bZaUT/xI8U5FvCPM7RsOm1QUDvn/0wos3qzBVBAmB5xZfneJB4t4KS76Gl50Yhl+DLe6H/ocTHtRG48vBoOeO7IkYPnyAzGj6g0oHt+FGWsMhyvRNlbeOqsx5RbhIiNBIzPXzm05sPZ5XeI6jVvyHvEqecP7O5D27FQG8qrlvEicfxOskAFkuyLjVtyPs4CXQ== X-Microsoft-Exchange-Diagnostics: 1; PS1PR06MB1691; 31:FA1XC82oWaYRLMP83bx8txdUN1XmRaCJm0IU8tg9aoaiNzUvU9zvUKDrFQylfVMSF0PAKfEvGeUu2oiYRO8brjmdiY/CK422kTQtYJ0rrgdd/nGKPB7AVzg9iUc009uUK5MP7snNItKk20Mjh9czHvSX+W2I9djl+trgj5XWRP3mE4vGUE+6+NWYKxHcviwCxBJF8/rPJvWTWnw6xJ41nEJaNMxVLaMB7gLfVN1fZrvKWOxCMocCz609CPBdF/ER; 20:z9eFBL9oAC4rPJMzSdFu1Uir3mn3qFu//X4IrgO9uIPlQV13tdUyVQo5iauR950LK4sFO2QCBfWsllnIKVrZvZXCqKuP38gmPZ367ftIqlLGBsg36M1Ne/LZ3+oe78PwcmQxWm2EHOWL9HLHg3InK9aMwUug1G8EBDX8h6n7oLAeCUnjroGaPrKDvHhdDlXqXKF86xOpiUPtNQYiLtERqVMQs6AFyPFz0dk+xVwEWt5EOsXa/t705pX272OHSHb+DVmZQTrvICvcNblB15nydn8TFarZBr5WAQNl7+XSqprlKuiXB1Pw2sF0SuydxZGTWG5aubdk7jOw9nVN9Joxhm8kWQJmJNB/EgnfuEJieQSLKzf2h09roaczfHuesLR/hCf5zERpZIfhIYOrdyJ5bRI354XdnVG42DZZqiejfKscAPfVFvNP1Mz1kLYFPcEwfwKM+fKeVQYd610eSr1TriZMtWJk238g5Ya2TACsrlB1WND/xjOJPiu6rhxJ7DRZ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(72170088055959); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040435)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6055026)(6041248)(20161123555025)(20161123562025)(201703131423059)(201702281528059)(201703061421059)(201703061750059)(20161123564025)(20161123558025)(20161123560025)(6072148); SRVR:PS1PR06MB1691; BCL:0; PCL:0; RULEID:; SRVR:PS1PR06MB1691; X-Microsoft-Exchange-Diagnostics: 1; PS1PR06MB1691; 4:FEKKvqzz7i3XOQFnWOYOjcrcIFHFb3pEpoIquf6AJEiGfquOH4lFHNVhQfyao1H8ElnaG3LuYFEpvQvs7VJZSJ8roPzYMGWUrN7dW7YDXfuvfIcjdjnvxDqsE4nLFod7ZLfJwpyTmLBwnGoDwd3MN/tbs3B1jkFdiF/iLfmfgjUpOtogrXnKGFgb8CrfKiPi0bmLPKqjldfO12huPYChsIhkyR51hL5/8hBEq5HaTTovBIbQYwFOguQB+r043tpMd5dN4BSDE+gwmL74co3fxQfdS11Bbxik3o/dg06s0ubHyZo+gy5+O68gO6SqrUXnZP3kYZKc22jhJ7Ih3YI2ySVNbFCkZIXa7hzlLPva7IeM2vWsAA9RRrVRwhJTSkJ+/xcqsSwmPjqHdb15BffOgDJ37luQu8Owxb+byqMXkIVz60Eaba8lvdD7C0si83TIzSVZSZVUZYvScHyrXAqdjFqqmYp7aDmswt5tk0fZ6z10pJa4y8uBCj2UqBMi4DsFt9n/ldTlEp/l5f/gXTBVyO+a6LGvO9BnX1rk+M1wK1Tb7kbL/Ab5/pjL59HZWXd0X6NjMOr2VxPHS+JGn/icaXVM1dLkVbcDSA1/XFGMLY41ATq6lD0rb4+Kd4MjcrXraGLfsiqyrFTARiWYO9pGbit4jxjY2aLH+9XRs10urOmdz4CSMgCUzc+pNxfx69Y3xhK2LGVwHUgbSUR65+ASCI7a+W71MXaGAV1M0G73jXpDolPnymmzooKC68+FXNlNIfhSELEa1KA1BLe45v4hiEmEEzaT2NnxrTAGIFUfd7uN2sVcRndxmIcao2A+rIgY X-Forefront-PRVS: 0260457E99 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(6069001)(39410400002)(39400400002)(39450400003)(39860400002)(39850400002)(39840400002)(81156014)(81166006)(50226002)(25786009)(3846002)(8676002)(4326008)(6116002)(42882006)(110136004)(2950100002)(38730400002)(6666003)(189998001)(107886003)(42186005)(33646002)(97736004)(6916009)(78352004)(2351001)(36756003)(50466002)(48376002)(5660300001)(76176999)(50986999)(7736002)(5003940100001)(6506006)(66066001)(6486002)(6512007)(53936002)(2906002)(47776003)(54906002)(305945005); DIR:OUT; SFP:1102; SCL:1; SRVR:PS1PR06MB1691; H:localhost.localdomain; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; PS1PR06MB1691; 23:ruBXUSemvTbezg59ZJZ+eCDfKusKa8V8J+TW37sJ1?= =?us-ascii?Q?ObEFng4q78Tha+pJlX0vSMHKmDK3nCPeO7s9rMxITKwYOoc2eybkzu3A26MX?= =?us-ascii?Q?pYBdUg+yP3s8MlbXXmc9I3TKIlU9YoZTchzr6N7a/pGOaKL2b4ui3XhYFSrQ?= =?us-ascii?Q?VWbLp9tiSak1xnR9GL+FKOpH5h57d13Z5mnT+sQo/12VhyXFqEUO3OjCLMmn?= =?us-ascii?Q?nsUY9IlQznnOSQXV89x45tFJY1AiF1wmD844S83GKYAhJUb7cdyJpbyZ8Lyy?= =?us-ascii?Q?BV0KFxf3tClbheCJFdHB7g+rsqUrDqlfd+vadTKGUvFBvRYHRd3rlH3cYu2R?= =?us-ascii?Q?AT4/C4b/ejdvKVErYWoiwCGVo6e+yQ1unUzfC9W9gjrRBEdCKsfgjTCCR4Cq?= =?us-ascii?Q?5QVwDlAaNJeicQ8gmKM2epOoXmznWgSUS4B8VaOKvxRdiHxgTloqnGCrYoOE?= =?us-ascii?Q?qankUTG7nmD/zDUbA4taji7qHzX2rh8E3lmDPAronmcQ+zcN5h2/0QX8WfBz?= =?us-ascii?Q?nin5ycJT7hkMSf8MkMs2dCwgvDL+uQIwALYHoZZ7QyC8Ei06CVQsdGWXyP9w?= =?us-ascii?Q?NPE8veV42kUwTqapCXVpZO4azNZkEqS3Rq0WRkmCs13PDSg96zJToP+OAk5v?= =?us-ascii?Q?HtHfgp7AfB9LWXVpFE76RWJzOyHaCIBxYL+8hzs1DMzNvjyugx1zxwrxZ62t?= =?us-ascii?Q?FYzcl6e4HqC00YdfiQ/3ieyrYimEiwoExLFtZt9zjDPl3wRLq0G3KePlgAuS?= =?us-ascii?Q?FYehekG57zuXEvNZVe3LNEINnmfeFyHVsmhtcNG+jLgQSixumnH0f2Owh+Ak?= =?us-ascii?Q?oE+VA+/Qfij7I+Qks8XYdiqVf7/dbWk0WBSxFAnrtgD3EdIU+sHwspZT5QfU?= =?us-ascii?Q?rzpE4dG2XuT1+y+aA+o27Y57KybPUTNKwr9bSkNieUWzl/+mvrR87ca71Ees?= =?us-ascii?Q?4AoQZI77fnw3jCOYC7hKPbpCtD2BthA8+ZoPB6YBxdkdoct3MLKuZ+cQJ4ac?= =?us-ascii?Q?c1ptyGed2DsBNHeJBGqcJEfUOeszM8Of0wpZKlztE9LKxr7zOazH06tk8vdY?= =?us-ascii?Q?Tv0MPb2GJCsrpRWGJms3boqLLYI575UYkKNBt6Vxsnd43cr/8M7YTs+kWWZA?= =?us-ascii?Q?SfF0M6UTxbUW6pTTXr2AeOZiM7vBex2CFZcxfHdJ/OmJLx2BMJAl10lCJnvj?= =?us-ascii?Q?69UxNm3/Bv8paw=3D?= X-Microsoft-Exchange-Diagnostics: 1; PS1PR06MB1691; 6:iuIXKCck1c48Qs1P2qLNzBd9YsSgkWTNyWhqOMzTpDzhMHLVRSnIP1VrimjfoCLmvxHBS97Y8JEnVAoHm9gk5cLKpK7/dCXQ0Xww1+rYK7MvwjSa0Xs3wAg3G19+y3PGRg1te2H6GIE5V13PcHSddG01GU5t5SzK9w4Ie+TEeZkGYlDlgRh1MrAfE9UdZYtYPYmCdzIecI7PcysmDGRRyBaOj3RdkFuCvDDlGaSrRDt96Ho+2duW3DwiHmihPHAotmf/OlJHL5llufe8LxfcI6W+gifrojonNM4xb910l48/lE8RhPwi3JQWoiNGTL34uGtrfRhILebh47LTrfk9CZrvWLfGeYN/0fSgmh4uPg9ioWXq0hH3xHAGsG2i7+fJ9PO9s8T2OZHExUE7eAAcSwbSemV8MY4f2xllaaepUoE=; 5:PHIohj9iCM3YnrrxGzwfksZJZwGEGCciVhjCNkBdlfNU4jTPSj+khaICXRVAoWeUq7SbPLXwobK12OLK4BdwkbeyYhJTr4T66BgKHLrwHeNjudgD1mdrRUIvfz+g4rSfzLTbg2jvDyRXh8zngJK4CQ==; 24:e5movQVC+3+e6BoRobWOt7X58E3HUHaJF/tVFQwj9Jna3CpaytmOnzrRMkF/tmXQWN9QyDjibeDhh+cNBdUqzLbUCENA+Gd2xUvdyFhue9k= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; PS1PR06MB1691; 7:P7JuFBsLOZ8kOULarO2k67EDlyurIcgplhMWqJO91J9cJxrUXuEsMGSoK8FekyapxcTdQOtjPd7pSuNN51XqCoSF5qlx0Tp8VcVar+WJazMQJhmxumgNR198127ssJQF16z+CHdwpjTp+se7f4y4RizAq8A+Y5ikjlDY9XehUoUms/Ux+rVvMJYOVqokUePR5gjImuIdY8d+gygPIf+6H/u25lg8q7zm1DaoTn+xTBHPfYn0yhLOlgmc2Muy6XzbsU3pS84WMtLQXjNvU3Faj8wiQo7LxZP0OGrVOBMsBseLsLfkJklecYmuBX25ekXGib7Owbt1nRimta8/EjoCOQ==; 20:x0Y0pVUR1JA7aGsKjwnYRsCkXzNVY3kX+xN5QaFpXbLp9oWNsxJVvocEhg2BNbusZ+1hZlzTKXcvMc/+Eu5wxHFyG+mvffQgzN7uWOFMg1lznVMMKv8hsJw5Dls1inP5MVHchyYKEyXorZ1c6i+XERYtwEtBmtqLQ5wzgSzO3lY= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Mar 2017 11:55:37.1694 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PR06MB1691 Sender: linux-renesas-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-renesas-soc@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This usb 3.0 peripheral controller has a register (USB_OTG_STA) to monitor the USB ID signal. So, this patch adds the ID signal monitoring to change the mode to host (A-Device) or peripheral (B-Device). Signed-off-by: Yoshihiro Shimoda --- drivers/usb/gadget/udc/renesas_usb3.c | 47 +++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/drivers/usb/gadget/udc/renesas_usb3.c b/drivers/usb/gadget/udc/renesas_usb3.c index 4029593..d81953b 100644 --- a/drivers/usb/gadget/udc/renesas_usb3.c +++ b/drivers/usb/gadget/udc/renesas_usb3.c @@ -37,6 +37,9 @@ #define USB3_USB_INT_ENA_2 0x22c #define USB3_STUP_DAT_0 0x230 #define USB3_STUP_DAT_1 0x234 +#define USB3_USB_OTG_STA 0x268 +#define USB3_USB_OTG_INT_STA 0x26c +#define USB3_USB_OTG_INT_ENA 0x270 #define USB3_P0_MOD 0x280 #define USB3_P0_CON 0x288 #define USB3_P0_STA 0x28c @@ -124,6 +127,9 @@ /* USB_INT_ENA_2 and USB_INT_STA_2 */ #define USB_INT_2_PIPE(n) BIT(n) +/* USB_OTG_STA, USB_OTG_INT_STA and USB_OTG_INT_ENA */ +#define USB_OTG_IDMON BIT(4) + /* P0_MOD */ #define P0_MOD_DIR BIT(6) @@ -540,17 +546,39 @@ static void usb3_check_vbus(struct renesas_usb3 *usb3) } } +static void usb3_mode_a_host(struct renesas_usb3 *usb3) +{ + usb3_clear_bit(usb3, DRD_CON_PERI_CON, USB3_DRD_CON); + usb3_set_bit(usb3, DRD_CON_VBOUT, USB3_DRD_CON); +} + static void usb3_mode_b_peri(struct renesas_usb3 *usb3) { usb3_set_bit(usb3, DRD_CON_PERI_CON, USB3_DRD_CON); usb3_clear_bit(usb3, DRD_CON_VBOUT, USB3_DRD_CON); } +static bool usb3_is_a_device(struct renesas_usb3 *usb3) +{ + return !(usb3_read(usb3, USB3_USB_OTG_STA) & USB_OTG_IDMON); +} + +static void usb3_check_id(struct renesas_usb3 *usb3) +{ + if (usb3_is_a_device(usb3) && !usb3->forced_b_device) + usb3_mode_a_host(usb3); + else + usb3_mode_b_peri(usb3); +} + static void renesas_usb3_init_controller(struct renesas_usb3 *usb3) { usb3_init_axi_bridge(usb3); usb3_init_epc_registers(usb3); + usb3_write(usb3, USB_OTG_IDMON, USB3_USB_OTG_INT_STA); + usb3_write(usb3, USB_OTG_IDMON, USB3_USB_OTG_INT_ENA); + usb3_check_id(usb3); usb3_check_vbus(usb3); } @@ -559,6 +587,7 @@ static void renesas_usb3_stop_controller(struct renesas_usb3 *usb3) usb3_disconnect(usb3); usb3_write(usb3, 0, USB3_P0_INT_ENA); usb3_write(usb3, 0, USB3_PN_INT_ENA); + usb3_write(usb3, 0, USB3_USB_OTG_INT_ENA); usb3_write(usb3, 0, USB3_USB_INT_ENA_1); usb3_write(usb3, 0, USB3_USB_INT_ENA_2); usb3_write(usb3, 0, USB3_AXI_INT_ENA); @@ -1492,10 +1521,22 @@ static void usb3_irq_epc_int_2(struct renesas_usb3 *usb3, u32 int_sta_2) } } +static void usb3_irq_idmon_change(struct renesas_usb3 *usb3) +{ + usb3_check_id(usb3); +} + +static void usb3_irq_otg_int(struct renesas_usb3 *usb3, u32 otg_int_sta) +{ + if (otg_int_sta & USB_OTG_IDMON) + usb3_irq_idmon_change(usb3); +} + static void usb3_irq_epc(struct renesas_usb3 *usb3) { u32 int_sta_1 = usb3_read(usb3, USB3_USB_INT_STA_1); u32 int_sta_2 = usb3_read(usb3, USB3_USB_INT_STA_2); + u32 otg_int_sta = usb3_read(usb3, USB3_USB_OTG_INT_STA); int_sta_1 &= usb3_read(usb3, USB3_USB_INT_ENA_1); if (int_sta_1) { @@ -1506,6 +1547,12 @@ static void usb3_irq_epc(struct renesas_usb3 *usb3) int_sta_2 &= usb3_read(usb3, USB3_USB_INT_ENA_2); if (int_sta_2) usb3_irq_epc_int_2(usb3, int_sta_2); + + otg_int_sta &= usb3_read(usb3, USB3_USB_OTG_INT_ENA); + if (otg_int_sta) { + usb3_write(usb3, otg_int_sta, USB3_USB_OTG_INT_STA); + usb3_irq_otg_int(usb3, otg_int_sta); + } } static irqreturn_t renesas_usb3_irq(int irq, void *_usb3)