From nobody Wed Jul 1 21:30:41 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CFBB8C433EF for ; Wed, 15 Dec 2021 21:03:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231524AbhLOVDD (ORCPT ); Wed, 15 Dec 2021 16:03:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58916 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230184AbhLOVC7 (ORCPT ); Wed, 15 Dec 2021 16:02:59 -0500 Received: from mail-qt1-x836.google.com (mail-qt1-x836.google.com [IPv6:2607:f8b0:4864:20::836]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AD98FC061574; Wed, 15 Dec 2021 13:02:59 -0800 (PST) Received: by mail-qt1-x836.google.com with SMTP id j17so23279713qtx.2; Wed, 15 Dec 2021 13:02:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QDf8L1xIrFciKx4PVgYUU1gFjdk1Lld2RBueXaQLg24=; b=hlHDC1W1PZGMkes3FOWjFsTerhBsRWGAMo82E/tZA8QxUEY/oxGrMeq92vwH2MzORG 9IjPH7v6txbgQZXLB6nnWw2QiVJROEP0o3po6q213oYMZo7/33ptQ1jpQ2dHrmzKUcD0 6NyIH4iE1IDVYSZxC8SBoCE4UUV928G5o3zLwDbYv/fBL5RdjlWlHMSt8yBHFUUca/AJ frNKexNrjxd80RqceR4MTmaOW6neT7YT/bxkdRi1AHWXgSfVc3M3mNDOfETpI1nRylrq pivxliDDXXfE3NOLTVHu5h2ciz2pi9VCYpSQyRt0RXNh+UAo0zoFrZ7ez8cQ/u0tioPG YgGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QDf8L1xIrFciKx4PVgYUU1gFjdk1Lld2RBueXaQLg24=; b=z6u3JmY1UhgdOBUa0ON59G37wanPhWxN4DA1pN2TXXOWxGQ8pYW/ptjUDYn3Bt3gyA KVwwNwUz5w+AdlcnHF76YP3Fq7siELzeZDEX/uKrZKrjOF8tzbN3wdFHGgBlF4oCamvQ 25b6e02zCM/sWvfibBsKl7EsymmnB7qxYM0z2qUpm62ogUxhV41cIuHMNOD9MltNzm7d 8dX2f0VdHKYDD3tM3CmSPSTOFsUZf6EsuTkHEwvAaHjmmXdvT+XOTtSS790nGS189naG sU1XMVdQF1epapzK7FxNPR0BAxuej/c59KrCDJq0pllCUwAmwv9jgGH9BzO+yHVmJ7OC v4RA== X-Gm-Message-State: AOAM531Sy5BDrN6itSWfZOZlNhbLs1nZ5kTf1omhc2BgUPtbrH8WmIOb 9q4TgXJU1hBHYdKasU+3FTZenZhuz/AIiw== X-Google-Smtp-Source: ABdhPJxNYLQhbWh35a7CkPw2Na7K1M2NsaZIjwG3yQXzNQsAU5+ZkhqlljxeFjs5C0WH7q1XUh0ZQQ== X-Received: by 2002:a05:622a:1389:: with SMTP id o9mr14135725qtk.109.1639602178832; Wed, 15 Dec 2021 13:02:58 -0800 (PST) Received: from master-x64.sparksnet (c-98-233-193-225.hsd1.md.comcast.net. [98.233.193.225]) by smtp.gmail.com with ESMTPSA id a20sm1644356qkh.63.2021.12.15.13.02.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Dec 2021 13:02:58 -0800 (PST) From: Peter Geis To: Rob Herring , Heiko Stuebner Cc: Peter Geis , Rob Herring , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 1/8] dt-bindings: soc: rockchip: add rk3568-usb2phy-grf Date: Wed, 15 Dec 2021 16:02:45 -0500 Message-Id: <20211215210252.120923-2-pgwipeout@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211215210252.120923-1-pgwipeout@gmail.com> References: <20211215210252.120923-1-pgwipeout@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add the documentation for the rk3568-usb2phy-grf node, which is separate from the usb2phy node on this chip. Signed-off-by: Peter Geis Acked-by: Rob Herring Tested-by: Michael Riesch --- Documentation/devicetree/bindings/soc/rockchip/grf.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Docu= mentation/devicetree/bindings/soc/rockchip/grf.yaml index dfebf425ca49..b2ba7bed89b2 100644 --- a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml +++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml @@ -15,6 +15,7 @@ properties: - items: - enum: - rockchip,rk3288-sgrf + - rockchip,rk3568-usb2phy-grf - rockchip,rv1108-usbgrf - const: syscon - items: --=20 2.25.1 From nobody Wed Jul 1 21:30:41 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3CCE1C433EF for ; Wed, 15 Dec 2021 21:03:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231742AbhLOVDF (ORCPT ); Wed, 15 Dec 2021 16:03:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58928 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231132AbhLOVDB (ORCPT ); Wed, 15 Dec 2021 16:03:01 -0500 Received: from mail-qt1-x836.google.com (mail-qt1-x836.google.com [IPv6:2607:f8b0:4864:20::836]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 42FADC06173F; Wed, 15 Dec 2021 13:03:01 -0800 (PST) Received: by mail-qt1-x836.google.com with SMTP id 8so23249808qtx.5; Wed, 15 Dec 2021 13:03:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Qtvoh3tWKPnOw1Z92Liu2Y3L35YeCARO/v2RhKvSqa0=; b=mtzYePaF3q6HIoiwUrD0Qpoz7PMauWz+vbmYJ+etGbJ+OJRihIBkniO1SJtHiYRvBA IWAyQW69QJiqB8j5Nx4u0aivp7TATGW+K6mrQAjEeEDN5q1V5kbNCR9vDoKFgOGr47Ol NXJcJIpg6es+Ku0I6+uFDD2KW2nx3T0zXhQKr5sOuZ3d6pZ1ntQ3lY86HAy/4NCQEess bpOhLYfvUo5wSZFFowYAcCig4XlKqjKf99PPPd1cZdXk6dsnBv/USG70cVj9Rfrzm/65 FqunVFl+qqIxwchUM4kipSLPbISHrIKn4BdcgWzz1bUbQPIGW06zFWJCpuMfjYuzsb6R xNEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Qtvoh3tWKPnOw1Z92Liu2Y3L35YeCARO/v2RhKvSqa0=; b=gF28N8VZcVcWeTcKejLoSbsVfoIMJICbATmPq88u5EaUqbURYf9lzLUmiQ/GDs2TcR wf1+12HpSA0pAY6BFOliC+Yvn6tZnbeoPLf4poFtQOdek4fGmibeNi7SEcWOLuRXXvOR 1sPcLpH7/ZBjPNsnP9llu0TbTdTnYSgVvqVJA974gB91J4zzUKAAJDZusVs+a0r/CxKS W0X/KGY0SItprqroD7ELeuDF4y4jNlK2BA7SZ0PZjFULBYmn/Cb6Peib/QQ85Qzt1CHB tn9CuYX/qGDBSGHpplVSXsP8CTVQAIOcR5vCisqofNnalyCOFV/o9bVUjPH3LseaNm0J JAhQ== X-Gm-Message-State: AOAM531HmoVyLiX1l3sGTrXHn58XJcgTT0LDYFlNE76DVFRdhBwfBXxN nSEhiotBgI9AEeMs8C8ouGs= X-Google-Smtp-Source: ABdhPJzCgrybsdVfbHcMg+6x0kMS2UAJKkjdtqiz97/N6CuLvJ+knNOQtRgNMNMWkdBoAQCjKsaXuA== X-Received: by 2002:ac8:5e4a:: with SMTP id i10mr14343170qtx.569.1639602180345; Wed, 15 Dec 2021 13:03:00 -0800 (PST) Received: from master-x64.sparksnet (c-98-233-193-225.hsd1.md.comcast.net. [98.233.193.225]) by smtp.gmail.com with ESMTPSA id a20sm1644356qkh.63.2021.12.15.13.02.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Dec 2021 13:02:59 -0800 (PST) From: Peter Geis To: Kishon Vijay Abraham I , Vinod Koul , Rob Herring , Heiko Stuebner Cc: Peter Geis , Johan Jonker , Rob Herring , linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 2/8] dt-bindings: phy: phy-rockchip-inno-usb2: add rk3568 documentation Date: Wed, 15 Dec 2021 16:02:46 -0500 Message-Id: <20211215210252.120923-3-pgwipeout@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211215210252.120923-1-pgwipeout@gmail.com> References: <20211215210252.120923-1-pgwipeout@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The rk3568 usb2phy node is a standalone node with a single muxed interrupt. Add documentation for it to phy-rockchip-inno-usb2. Signed-off-by: Peter Geis Tested-by: Michael Riesch --- This was the best solution I've come up with for this. I avoided creating another binding since this is such a simple change to the actual driver and would likely require renaming the existing binding. I've tested that this correctly flags if the interrupts are missing or incorrectly assigned on both rk356x and rk3399. Thank you Johan and Rob for your constructive feedback. .../bindings/phy/phy-rockchip-inno-usb2.yaml | 44 +++++++++++++++++-- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.y= aml b/Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.yaml index 5bebd86bf8b6..4b75289735eb 100644 --- a/Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.yaml +++ b/Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.yaml @@ -18,6 +18,7 @@ properties: - rockchip,rk3328-usb2phy - rockchip,rk3366-usb2phy - rockchip,rk3399-usb2phy + - rockchip,rk3568-usb2phy - rockchip,rv1108-usb2phy =20 reg: @@ -50,6 +51,10 @@ properties: description: Phandle to the extcon device providing the cable state for the otg p= hy. =20 + interrupts: + description: Muxed interrupt for both ports + maxItems: 1 + rockchip,usbgrf: $ref: /schemas/types.yaml#/definitions/phandle description: @@ -67,6 +72,7 @@ properties: =20 interrupts: description: host linestate interrupt + maxItems: 1 =20 interrupt-names: const: linestate @@ -78,8 +84,6 @@ properties: =20 required: - "#phy-cells" - - interrupts - - interrupt-names =20 otg-port: type: object @@ -109,8 +113,6 @@ properties: =20 required: - "#phy-cells" - - interrupts - - interrupt-names =20 required: - compatible @@ -120,6 +122,40 @@ required: - host-port - otg-port =20 +allOf: + - if: + properties: + compatible: + contains: + const: rockchip,rk3568-usb2phy + + then: + properties: + host-port: + properties: + interrupts: false + + otg-port: + properties: + interrupts: false + + required: + - interrupts + + else: + properties: + interrupts: false + + host-port: + required: + - interrupts + - interrupt-names + + otg-port: + required: + - interrupts + - interrupt-names + additionalProperties: false =20 examples: --=20 2.25.1 From nobody Wed Jul 1 21:30:41 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 958EEC433F5 for ; Wed, 15 Dec 2021 21:03:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232518AbhLOVDM (ORCPT ); Wed, 15 Dec 2021 16:03:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58936 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230492AbhLOVDC (ORCPT ); Wed, 15 Dec 2021 16:03:02 -0500 Received: from mail-qv1-xf29.google.com (mail-qv1-xf29.google.com [IPv6:2607:f8b0:4864:20::f29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5AE72C061574 for ; Wed, 15 Dec 2021 13:03:02 -0800 (PST) Received: by mail-qv1-xf29.google.com with SMTP id m6so4324691qvh.10 for ; Wed, 15 Dec 2021 13:03:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=df9+jLGWpWWmT9NM3fIUAh5IVXi+6QBCR7ad2jz9wxs=; b=JzeCQwWGA2Y/dMp1IC8Y1WVUbgo5GqL9++OUCRZzN+3uREgW8CmSli1xUFG3hD34VO iSBckW1mjWpPLH+TBXPVe6C6AS1b1PybBiFfJ8rk20C0mvzdZgF0CvrVNV/RUNZK9lot DzhYCTou5DyMyM2BJ1LcwYhitMfRUqCyjSGTfV34Ds9fR6sDjdgDYvtIQb1VM205cM/B LVjPh0E2yPZzstwuuj7IQWmnvoeeC1bN3CKwZ56z7Ht2BFD1X6HZQZuqRQCk3P60p9it UFG4VxenQrnkUCWtDvqRR8PazIl2VlYuQ3nkKfSXWR3jjTvlut3hHx44wvIzseEC1Kt/ Tijg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=df9+jLGWpWWmT9NM3fIUAh5IVXi+6QBCR7ad2jz9wxs=; b=wuAM7vxyi7Wypht1vLcPPzJN27aCPqSvW+krrj3vtbB150/s16bNrywBnZbTIASv21 slsC/mqQjXtxdEZvKswbbBtrzI0FlV90TcubmumroDae4ArltdXFHVck5cBV2UNaApdn +Uq5Z15pnfij3YxOkWzA0VHK9Xx4KhFMSfPUy0XVekfXi7dTUWtKZFDHlx4P1wCg9KCl j9hpkh5ydf8xZjFWT7/6/0NP5r6sPVafkSIaILh7aVMn6SvykHhQCJQiBSzgZDPj9KJy AmUu4BTmjUieylhSeuIxAj7ItW7+a5CH3QK4R1S5XxKbZ7n/qTitSbYi3CwRyCTo3IRX 55Uw== X-Gm-Message-State: AOAM533uQDFdtqau6cT/C1qBi48fBWN+T6lMG3t9mOI3OZOsowAjQfiU ToP5Ct8QZuTappnIaUt7aBg= X-Google-Smtp-Source: ABdhPJzHXdQm0FRg98q5/QgMAlc0JVYTPSGVQQd9VCPiFNJsnjMNmYl5B1HSmn6brcszCZCQc+qC+g== X-Received: by 2002:a05:6214:260c:: with SMTP id gu12mr13331158qvb.87.1639602181519; Wed, 15 Dec 2021 13:03:01 -0800 (PST) Received: from master-x64.sparksnet (c-98-233-193-225.hsd1.md.comcast.net. [98.233.193.225]) by smtp.gmail.com with ESMTPSA id a20sm1644356qkh.63.2021.12.15.13.03.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Dec 2021 13:03:01 -0800 (PST) From: Peter Geis To: Kishon Vijay Abraham I , Vinod Koul , Heiko Stuebner Cc: Peter Geis , Michael Riesch , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 3/8] phy: phy-rockchip-inno-usb2: support #address_cells = 2 Date: Wed, 15 Dec 2021 16:02:47 -0500 Message-Id: <20211215210252.120923-4-pgwipeout@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211215210252.120923-1-pgwipeout@gmail.com> References: <20211215210252.120923-1-pgwipeout@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" New Rockchip devices have the usb phy nodes as standalone devices. These nodes have register nodes with #address_cells =3D 2, but only use 32 bit addresses. Adjust the driver to check if the returned address is "0", and adjust the index in that case. Signed-off-by: Peter Geis Tested-by: Michael Riesch --- drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/ro= ckchip/phy-rockchip-inno-usb2.c index 1938365abbb3..5cfa7169d879 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c @@ -1091,12 +1091,21 @@ static int rockchip_usb2phy_probe(struct platform_d= evice *pdev) rphy->usbgrf =3D NULL; } =20 - if (of_property_read_u32(np, "reg", ®)) { + if (of_property_read_u32_index(np, "reg", 0, ®)) { dev_err(dev, "the reg property is not assigned in %pOFn node\n", np); return -EINVAL; } =20 + /* support address_cells=3D2 */ + if (reg =3D=3D 0) { + if (of_property_read_u32_index(np, "reg", 1, ®)) { + dev_err(dev, "the reg property is not assigned in %pOFn node\n", + np); + return -EINVAL; + } + } + rphy->dev =3D dev; phy_cfgs =3D match->data; rphy->chg_state =3D USB_CHG_STATE_UNDEFINED; --=20 2.25.1 From nobody Wed Jul 1 21:30:41 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AB996C433FE for ; Wed, 15 Dec 2021 21:03:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232302AbhLOVDI (ORCPT ); Wed, 15 Dec 2021 16:03:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58942 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231609AbhLOVDD (ORCPT ); Wed, 15 Dec 2021 16:03:03 -0500 Received: from mail-qk1-x731.google.com (mail-qk1-x731.google.com [IPv6:2607:f8b0:4864:20::731]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A8F46C06173E for ; Wed, 15 Dec 2021 13:03:03 -0800 (PST) Received: by mail-qk1-x731.google.com with SMTP id t83so21363226qke.8 for ; Wed, 15 Dec 2021 13:03:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=dxn6GGaZuVidLca/WMl3sqT9jVHJLPvQP6VZiUsVJrY=; b=XaWurc0R+0NGNOVmgUDJyVMha1V09ZYhzefIqaFhfkj0OWCWJ2k2r296h/SAHvtQ4+ NuTgnojrPxsYbSqfv296jcpMCB1OJbHpbWwEhzXk0OSplmoiAQy4DA652/H53A8EZhka 4LCfn7mdyifEhwEIJ4AoE7nuPfAIwjCZONbsY2DCmQmIuF/bsjQOTfdpJA33ffWfHyZL M1imDOgnAb9viTpFk3htBEeCa9uJCBbenjA4+TGWsmYROojLlM2IaSDMd3Ag8c1Xam9d VocniaETqsUqF5oqKT6P+KHxsB85eVTfaGDDq4jCStFPQcetcGG3eSmzcS4UvAJRwO3G vWhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=dxn6GGaZuVidLca/WMl3sqT9jVHJLPvQP6VZiUsVJrY=; b=T170Ncz65ZFyCe49ZI7IcwX6y1oAiK4u0Be1Eh+qMGv2K4CM4mBbLHrnURqwEadsie j67RqYAUK98Sy6hW1V2xw8iUu8tMN7napAe74aJRtbe7KvuBSjlgSGnJXfNGUfjOZnfl 1CI8lQ1QgvNVdzChGD2u8W+EG9dE8m3GqsOpW5q7DVTz6L3HD9/ximlUULEvsTirWmwY orWihMAJKaCpeMxTkojZCPdslaYBe4F+DbaCcqg71Yi59sQ07WeGl7o3G+TY3wS/hg4J YkXydtMegsUF2zBMCxdCBPSCCmYIlvci3WWovm5h5GipolKexKROMENBwg47XGP8CNGZ 2Axw== X-Gm-Message-State: AOAM533lTtYo1tTmMnPbtNVbNho7oB9lCnXtXxe6536U7jcWRi2gckIo AX9XvKcKVYUrqXc+dBq+BYQ= X-Google-Smtp-Source: ABdhPJwz8LraXYh5bgWPQ24gKaH1IILFk+lRM2zMLltMoydsz/oJ62aRgdKdO2xo/lVSfOzWaIbFzg== X-Received: by 2002:a37:3d6:: with SMTP id 205mr10120606qkd.250.1639602182773; Wed, 15 Dec 2021 13:03:02 -0800 (PST) Received: from master-x64.sparksnet (c-98-233-193-225.hsd1.md.comcast.net. [98.233.193.225]) by smtp.gmail.com with ESMTPSA id a20sm1644356qkh.63.2021.12.15.13.03.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Dec 2021 13:03:02 -0800 (PST) From: Peter Geis To: Kishon Vijay Abraham I , Vinod Koul , Heiko Stuebner Cc: Peter Geis , Michael Riesch , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 4/8] phy: phy-rockchip-inno-usb2: support standalone phy nodes Date: Wed, 15 Dec 2021 16:02:48 -0500 Message-Id: <20211215210252.120923-5-pgwipeout@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211215210252.120923-1-pgwipeout@gmail.com> References: <20211215210252.120923-1-pgwipeout@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" New Rockchip devices have the usb2 phy devices as standalone nodes instead of children of the grf node. Allow the driver to find the grf node from a phandle. Signed-off-by: Peter Geis Tested-by: Michael Riesch --- drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/ro= ckchip/phy-rockchip-inno-usb2.c index 5cfa7169d879..29e3a0da8c26 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c @@ -1074,12 +1074,19 @@ static int rockchip_usb2phy_probe(struct platform_d= evice *pdev) return -EINVAL; } =20 - if (!dev->parent || !dev->parent->of_node) - return -EINVAL; + if (!dev->parent || !dev->parent->of_node) { + rphy->grf =3D syscon_regmap_lookup_by_phandle(np, "rockchip,usbgrf"); + if (IS_ERR(rphy->grf)) { + dev_err(dev, "failed to locate usbgrf\n"); + return PTR_ERR(rphy->grf); + } + } =20 - rphy->grf =3D syscon_node_to_regmap(dev->parent->of_node); - if (IS_ERR(rphy->grf)) - return PTR_ERR(rphy->grf); + else { + rphy->grf =3D syscon_node_to_regmap(dev->parent->of_node); + if (IS_ERR(rphy->grf)) + return PTR_ERR(rphy->grf); + } =20 if (of_device_is_compatible(np, "rockchip,rv1108-usb2phy")) { rphy->usbgrf =3D --=20 2.25.1 From nobody Wed Jul 1 21:30:41 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 216D3C433EF for ; Wed, 15 Dec 2021 21:03:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233276AbhLOVDO (ORCPT ); Wed, 15 Dec 2021 16:03:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58950 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231132AbhLOVDF (ORCPT ); Wed, 15 Dec 2021 16:03:05 -0500 Received: from mail-qv1-xf33.google.com (mail-qv1-xf33.google.com [IPv6:2607:f8b0:4864:20::f33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4E08BC061574 for ; Wed, 15 Dec 2021 13:03:05 -0800 (PST) Received: by mail-qv1-xf33.google.com with SMTP id i13so21493352qvm.1 for ; Wed, 15 Dec 2021 13:03:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=cnamIWiam6by9Jdhi724L3CQvNB2/lSRkVxwvCCRpTo=; b=E1AEu1MGDxZu4j9qDkDta96pULE2hKFf4bJroAvAfoO6ZR1WTD2ERJD10H4LjEyEeI dTQKhY6wVd3TJVuMAb/bffsIFdIwL2YZiftTd5KOw8m+JM1uh69nSPCqoakNr5fIyHap h+55/q9gAcX6H85tvC9BsJzN0fsPEn4lYjeISWXbIb2gJ1+48TidjdfjpK+XsMixD4H/ oFI/YiPt47j041oTRZpU3m99Q4pz56J1PTqfXcW7iSRtXHHyTr8AtDHEyzBY5PfTRJgh +rWmMQpk/K3/4+Kv2w7HCiGZr+/foO9LibEUcWulrEO6IUhtTALAzS6wp+AxASB6GsvI 8DQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=cnamIWiam6by9Jdhi724L3CQvNB2/lSRkVxwvCCRpTo=; b=tEWmN0ncJMJXYoVQXN60pa3957iqmEnOVEDvy95PPpQky+D0pqwy/judsQ8qD0Vq+G LcBa0JQ258oBs9AcgC4vHikeMz6DvY7chc/lS176+kBhLbPgV0XQKYleIc2jZCz86BPM HsoytlPjt4XpdwOCM/0dcKzcRgte4+6IGdQhrnKLGUe34xkJ0EVdQ8iwmJ42dG2GnEy0 tEynKs07LbIdS8C0nM3ZOijH4slJW+fCFfN1MwiObYEbMWBge04TVasUkyGpB3fglinP Xee3J54YTePipcpuOFkGHoqvvw+MNaOPiYSZSfUbBhvk/ks58edsy+ogZzM0OF+RmaLu xvXA== X-Gm-Message-State: AOAM531NgEpyBveD7+7bNtxkEOLjaoierOpRAJiAjp/3eGkx+cs6af2T k0uaSaoYGvJAjw9YM3ZQRTY= X-Google-Smtp-Source: ABdhPJyifKmch0bI2sQrC3Chf/fDbNCvoFrt+qpN0s4H2EE7hzMscwXnhgQhMaapBWbNRPcoFcccHQ== X-Received: by 2002:a05:6214:1bcb:: with SMTP id m11mr10695510qvc.0.1639602184347; Wed, 15 Dec 2021 13:03:04 -0800 (PST) Received: from master-x64.sparksnet (c-98-233-193-225.hsd1.md.comcast.net. [98.233.193.225]) by smtp.gmail.com with ESMTPSA id a20sm1644356qkh.63.2021.12.15.13.03.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Dec 2021 13:03:03 -0800 (PST) From: Peter Geis To: Kishon Vijay Abraham I , Vinod Koul , Heiko Stuebner Cc: Peter Geis , Michael Riesch , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 5/8] phy: phy-rockchip-inno-usb2: support muxed interrupts Date: Wed, 15 Dec 2021 16:02:49 -0500 Message-Id: <20211215210252.120923-6-pgwipeout@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211215210252.120923-1-pgwipeout@gmail.com> References: <20211215210252.120923-1-pgwipeout@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The rk3568 usb2phy has a single muxed interrupt that handles all interrupts. Allow the driver to plug in only a single interrupt as necessary. Signed-off-by: Peter Geis Tested-by: Michael Riesch --- drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 168 +++++++++++++----- 1 file changed, 119 insertions(+), 49 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/ro= ckchip/phy-rockchip-inno-usb2.c index 29e3a0da8c26..285958fdab38 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c @@ -204,6 +204,7 @@ struct rockchip_usb2phy_port { * @dcd_retries: The retry count used to track Data contact * detection process. * @edev: extcon device for notification registration + * @irq: muxed interrupt for single irq configuration * @phy_cfg: phy register configuration, assigned by driver data. * @ports: phy port instance. */ @@ -218,6 +219,7 @@ struct rockchip_usb2phy { enum power_supply_type chg_type; u8 dcd_retries; struct extcon_dev *edev; + int irq; const struct rockchip_usb2phy_cfg *phy_cfg; struct rockchip_usb2phy_port ports[USB2PHY_NUM_PORTS]; }; @@ -927,6 +929,102 @@ static irqreturn_t rockchip_usb2phy_otg_mux_irq(int i= rq, void *data) return IRQ_NONE; } =20 +static irqreturn_t rockchip_usb2phy_irq(int irq, void *data) +{ + struct rockchip_usb2phy *rphy =3D data; + struct rockchip_usb2phy_port *rport; + irqreturn_t ret =3D IRQ_NONE; + unsigned int index; + + for (index =3D 0; index < rphy->phy_cfg->num_ports; index++) { + rport =3D &rphy->ports[index]; + if (!rport->phy) + continue; + + /* Handle linestate irq for both otg port and host port */ + ret =3D rockchip_usb2phy_linestate_irq(irq, rport); + } + + return ret; +} + +static int rockchip_usb2phy_port_irq_init(struct rockchip_usb2phy *rphy, + struct rockchip_usb2phy_port *rport, + struct device_node *child_np) +{ + int ret; + + /* + * If the usb2 phy used combined irq for otg and host port, + * don't need to init otg and host port irq separately. + */ + if (rphy->irq > 0) + return 0; + + switch (rport->port_id) { + case USB2PHY_PORT_HOST: + rport->ls_irq =3D of_irq_get_byname(child_np, "linestate"); + if (rport->ls_irq < 0) { + dev_err(rphy->dev, "no linestate irq provided\n"); + return rport->ls_irq; + } + + ret =3D devm_request_threaded_irq(rphy->dev, rport->ls_irq, NULL, + rockchip_usb2phy_linestate_irq, + IRQF_ONESHOT, + "rockchip_usb2phy", rport); + if (ret) { + dev_err(rphy->dev, "failed to request linestate irq handle\n"); + return ret; + } + break; + case USB2PHY_PORT_OTG: + /* + * Some SoCs use one interrupt with otg-id/otg-bvalid/linestate + * interrupts muxed together, so probe the otg-mux interrupt first, + * if not found, then look for the regular interrupts one by one. + */ + rport->otg_mux_irq =3D of_irq_get_byname(child_np, "otg-mux"); + if (rport->otg_mux_irq > 0) { + ret =3D devm_request_threaded_irq(rphy->dev, rport->otg_mux_irq, + NULL, + rockchip_usb2phy_otg_mux_irq, + IRQF_ONESHOT, + "rockchip_usb2phy_otg", + rport); + if (ret) { + dev_err(rphy->dev, + "failed to request otg-mux irq handle\n"); + return ret; + } + } else { + rport->bvalid_irq =3D of_irq_get_byname(child_np, "otg-bvalid"); + if (rport->bvalid_irq < 0) { + dev_err(rphy->dev, "no vbus valid irq provided\n"); + ret =3D rport->bvalid_irq; + return ret; + } + + ret =3D devm_request_threaded_irq(rphy->dev, rport->bvalid_irq, + NULL, + rockchip_usb2phy_bvalid_irq, + IRQF_ONESHOT, + "rockchip_usb2phy_bvalid", + rport); + if (ret) { + dev_err(rphy->dev, + "failed to request otg-bvalid irq handle\n"); + return ret; + } + } + break; + default: + return -EINVAL; + } + + return 0; +} + static int rockchip_usb2phy_host_port_init(struct rockchip_usb2phy *rphy, struct rockchip_usb2phy_port *rport, struct device_node *child_np) @@ -940,18 +1038,9 @@ static int rockchip_usb2phy_host_port_init(struct roc= kchip_usb2phy *rphy, mutex_init(&rport->mutex); INIT_DELAYED_WORK(&rport->sm_work, rockchip_usb2phy_sm_work); =20 - rport->ls_irq =3D of_irq_get_byname(child_np, "linestate"); - if (rport->ls_irq < 0) { - dev_err(rphy->dev, "no linestate irq provided\n"); - return rport->ls_irq; - } - - ret =3D devm_request_threaded_irq(rphy->dev, rport->ls_irq, NULL, - rockchip_usb2phy_linestate_irq, - IRQF_ONESHOT, - "rockchip_usb2phy", rport); + ret =3D rockchip_usb2phy_port_irq_init(rphy, rport, child_np); if (ret) { - dev_err(rphy->dev, "failed to request linestate irq handle\n"); + dev_err(rphy->dev, "failed to setup host irq\n"); return ret; } =20 @@ -1000,44 +1089,10 @@ static int rockchip_usb2phy_otg_port_init(struct ro= ckchip_usb2phy *rphy, INIT_DELAYED_WORK(&rport->chg_work, rockchip_chg_detect_work); INIT_DELAYED_WORK(&rport->otg_sm_work, rockchip_usb2phy_otg_sm_work); =20 - /* - * Some SoCs use one interrupt with otg-id/otg-bvalid/linestate - * interrupts muxed together, so probe the otg-mux interrupt first, - * if not found, then look for the regular interrupts one by one. - */ - rport->otg_mux_irq =3D of_irq_get_byname(child_np, "otg-mux"); - if (rport->otg_mux_irq > 0) { - ret =3D devm_request_threaded_irq(rphy->dev, rport->otg_mux_irq, - NULL, - rockchip_usb2phy_otg_mux_irq, - IRQF_ONESHOT, - "rockchip_usb2phy_otg", - rport); - if (ret) { - dev_err(rphy->dev, - "failed to request otg-mux irq handle\n"); - goto out; - } - } else { - rport->bvalid_irq =3D of_irq_get_byname(child_np, "otg-bvalid"); - if (rport->bvalid_irq < 0) { - dev_err(rphy->dev, "no vbus valid irq provided\n"); - ret =3D rport->bvalid_irq; - goto out; - } - - ret =3D devm_request_threaded_irq(rphy->dev, rport->bvalid_irq, - NULL, - rockchip_usb2phy_bvalid_irq, - IRQF_ONESHOT, - "rockchip_usb2phy_bvalid", - rport); - if (ret) { - dev_err(rphy->dev, - "failed to request otg-bvalid irq handle\n"); - goto out; - } - } + ret =3D rockchip_usb2phy_port_irq_init(rphy, rport, child_np); + if (ret) { + dev_err(rphy->dev, "failed to init irq for host port\n"); + goto out; =20 if (!IS_ERR(rphy->edev)) { rport->event_nb.notifier_call =3D rockchip_otg_event; @@ -1117,6 +1172,7 @@ static int rockchip_usb2phy_probe(struct platform_dev= ice *pdev) phy_cfgs =3D match->data; rphy->chg_state =3D USB_CHG_STATE_UNDEFINED; rphy->chg_type =3D POWER_SUPPLY_TYPE_UNKNOWN; + rphy->irq =3D platform_get_irq_optional(pdev, 0); platform_set_drvdata(pdev, rphy); =20 ret =3D rockchip_usb2phy_extcon_register(rphy); @@ -1196,6 +1252,20 @@ static int rockchip_usb2phy_probe(struct platform_de= vice *pdev) } =20 provider =3D devm_of_phy_provider_register(dev, of_phy_simple_xlate); + + if (rphy->irq > 0) { + ret =3D devm_request_threaded_irq(rphy->dev, rphy->irq, NULL, + rockchip_usb2phy_irq, + IRQF_ONESHOT, + "rockchip_usb2phy", + rphy); + if (ret) { + dev_err(rphy->dev, + "failed to request usb2phy irq handle\n"); + goto put_child; + } + } + return PTR_ERR_OR_ZERO(provider); =20 put_child: --=20 2.25.1 From nobody Wed Jul 1 21:30:41 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 12A2DC433EF for ; Wed, 15 Dec 2021 21:03:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234081AbhLOVD2 (ORCPT ); Wed, 15 Dec 2021 16:03:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58964 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232183AbhLOVDH (ORCPT ); Wed, 15 Dec 2021 16:03:07 -0500 Received: from mail-qk1-x729.google.com (mail-qk1-x729.google.com [IPv6:2607:f8b0:4864:20::729]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B220CC061747 for ; Wed, 15 Dec 2021 13:03:06 -0800 (PST) Received: by mail-qk1-x729.google.com with SMTP id g28so21381271qkk.9 for ; Wed, 15 Dec 2021 13:03:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=js1jSO4OFQ7U7dS2izOYemvuMGJjz15gack2xht55jQ=; b=PtnYZZC4ELrFfJxFdXB/6jicCKg5x9/uj9D0bTr4fEufKEE7dleAzzjWUIwmbuclzD 2R7MySzIs+F1/17ZqnIQ8ipu+R1pSn+sdruOYeQyLSzm95/bR4jouhkg5bfcgBSZEDSs PC++lAgq14GowmWLAb7atAfctc2JJvxJp2PyQu446TCmjei8BQBg3SKeRA2AAT6mtmuw 4XMNx0T01o7sVZE5+CkbL3ucb+13a2z4MvBO1xRt9xhgiCmPhW9ekq+LHWyp+r54AFQv i8h2JnEUforYH3LHdXHYm1f67Wdo1olwmWQ1G8mq6C42jI+cjfQnilIfvV38rtc9S9b9 HEvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=js1jSO4OFQ7U7dS2izOYemvuMGJjz15gack2xht55jQ=; b=ykmBP6Xu9wzfsUbiDYzYQZnX2XWYZzvqhgKR707Xs7ylJKmHPsm5P1ySKolnYzaTfp Q1QsNYHlHeAMLnVGVV4D9SBnycvmS7jct3zb8K3oxybryFUoZm6IuGoskiTFc9HuECw7 8o7hzSxFkZLStZRBIiW7DBOVoI0m/tT3SGIpoz2M0FNi/GPotBITlIkRXb4ZkIBdw+Gf 3CzcVkC9LcZe+70To/h9dvsXYw2TPlnktWXc6p0N4KVhIQ1gNaaRp19gI3cu0Rl03yQY 3ob6QmZGASHYW1caxC0WawAtHrcf3GKlvN7E7uPxW3AaOkDWue6j8wqPjz683Dkt1/wB O4nA== X-Gm-Message-State: AOAM532k2+x1YsqPwuncWnwgIMVsDJ0n8O3pVawvAwvU3ZgUYDm0dyFc I6qbgk/OMBiya/9n27ScUD0= X-Google-Smtp-Source: ABdhPJxgxGpTirbr48viDuS6QNylWAPqepFaT7ltRmbj/eF8GAp+AmJ96662/GcMqD0KghZz+Y1GHg== X-Received: by 2002:a37:6716:: with SMTP id b22mr10005020qkc.123.1639602185799; Wed, 15 Dec 2021 13:03:05 -0800 (PST) Received: from master-x64.sparksnet (c-98-233-193-225.hsd1.md.comcast.net. [98.233.193.225]) by smtp.gmail.com with ESMTPSA id a20sm1644356qkh.63.2021.12.15.13.03.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Dec 2021 13:03:05 -0800 (PST) From: Peter Geis To: Kishon Vijay Abraham I , Vinod Koul , Heiko Stuebner Cc: Peter Geis , Michael Riesch , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 6/8] phy: phy-rockchip-inno-usb2: add rk3568 support Date: Wed, 15 Dec 2021 16:02:50 -0500 Message-Id: <20211215210252.120923-7-pgwipeout@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211215210252.120923-1-pgwipeout@gmail.com> References: <20211215210252.120923-1-pgwipeout@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The rk3568 usb2phy is a standalone device with a single muxed interrupt. Add support for the registers to the usb2phy driver. Signed-off-by: Peter Geis Tested-by: Michael Riesch --- drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/ro= ckchip/phy-rockchip-inno-usb2.c index 285958fdab38..bdc5a861891c 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c @@ -1093,6 +1093,7 @@ static int rockchip_usb2phy_otg_port_init(struct rock= chip_usb2phy *rphy, if (ret) { dev_err(rphy->dev, "failed to init irq for host port\n"); goto out; + } =20 if (!IS_ERR(rphy->edev)) { rport->event_nb.notifier_call =3D rockchip_otg_event; @@ -1504,6 +1505,69 @@ static const struct rockchip_usb2phy_cfg rk3399_phy_= cfgs[] =3D { { /* sentinel */ } }; =20 +static const struct rockchip_usb2phy_cfg rk3568_phy_cfgs[] =3D { + { + .reg =3D 0xfe8a0000, + .num_ports =3D 2, + .clkout_ctl =3D { 0x0008, 4, 4, 1, 0 }, + .port_cfgs =3D { + [USB2PHY_PORT_OTG] =3D { + .phy_sus =3D { 0x0000, 8, 0, 0, 0x1d1 }, + .bvalid_det_en =3D { 0x0080, 2, 2, 0, 1 }, + .bvalid_det_st =3D { 0x0084, 2, 2, 0, 1 }, + .bvalid_det_clr =3D { 0x0088, 2, 2, 0, 1 }, + .utmi_avalid =3D { 0x00c0, 10, 10, 0, 1 }, + .utmi_bvalid =3D { 0x00c0, 9, 9, 0, 1 }, + }, + [USB2PHY_PORT_HOST] =3D { + /* Select suspend control from controller */ + .phy_sus =3D { 0x0004, 8, 0, 0x1d2, 0x1d2 }, + .ls_det_en =3D { 0x0080, 1, 1, 0, 1 }, + .ls_det_st =3D { 0x0084, 1, 1, 0, 1 }, + .ls_det_clr =3D { 0x0088, 1, 1, 0, 1 }, + .utmi_ls =3D { 0x00c0, 17, 16, 0, 1 }, + .utmi_hstdet =3D { 0x00c0, 19, 19, 0, 1 } + } + }, + .chg_det =3D { + .opmode =3D { 0x0000, 3, 0, 5, 1 }, + .cp_det =3D { 0x00c0, 24, 24, 0, 1 }, + .dcp_det =3D { 0x00c0, 23, 23, 0, 1 }, + .dp_det =3D { 0x00c0, 25, 25, 0, 1 }, + .idm_sink_en =3D { 0x0008, 8, 8, 0, 1 }, + .idp_sink_en =3D { 0x0008, 7, 7, 0, 1 }, + .idp_src_en =3D { 0x0008, 9, 9, 0, 1 }, + .rdm_pdwn_en =3D { 0x0008, 10, 10, 0, 1 }, + .vdm_src_en =3D { 0x0008, 12, 12, 0, 1 }, + .vdp_src_en =3D { 0x0008, 11, 11, 0, 1 }, + }, + }, + { + .reg =3D 0xfe8b0000, + .num_ports =3D 2, + .clkout_ctl =3D { 0x0008, 4, 4, 1, 0 }, + .port_cfgs =3D { + [USB2PHY_PORT_OTG] =3D { + .phy_sus =3D { 0x0000, 8, 0, 0x1d2, 0x1d1 }, + .ls_det_en =3D { 0x0080, 0, 0, 0, 1 }, + .ls_det_st =3D { 0x0084, 0, 0, 0, 1 }, + .ls_det_clr =3D { 0x0088, 0, 0, 0, 1 }, + .utmi_ls =3D { 0x00c0, 5, 4, 0, 1 }, + .utmi_hstdet =3D { 0x00c0, 7, 7, 0, 1 } + }, + [USB2PHY_PORT_HOST] =3D { + .phy_sus =3D { 0x0004, 8, 0, 0x1d2, 0x1d1 }, + .ls_det_en =3D { 0x0080, 1, 1, 0, 1 }, + .ls_det_st =3D { 0x0084, 1, 1, 0, 1 }, + .ls_det_clr =3D { 0x0088, 1, 1, 0, 1 }, + .utmi_ls =3D { 0x00c0, 17, 16, 0, 1 }, + .utmi_hstdet =3D { 0x00c0, 19, 19, 0, 1 } + } + }, + }, + { /* sentinel */ } +}; + static const struct rockchip_usb2phy_cfg rv1108_phy_cfgs[] =3D { { .reg =3D 0x100, @@ -1553,6 +1617,7 @@ static const struct of_device_id rockchip_usb2phy_dt_= match[] =3D { { .compatible =3D "rockchip,rk3328-usb2phy", .data =3D &rk3328_phy_cfgs }, { .compatible =3D "rockchip,rk3366-usb2phy", .data =3D &rk3366_phy_cfgs }, { .compatible =3D "rockchip,rk3399-usb2phy", .data =3D &rk3399_phy_cfgs }, + { .compatible =3D "rockchip,rk3568-usb2phy", .data =3D &rk3568_phy_cfgs }, { .compatible =3D "rockchip,rv1108-usb2phy", .data =3D &rv1108_phy_cfgs }, {} }; --=20 2.25.1 From nobody Wed Jul 1 21:30:41 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0A100C433EF for ; Wed, 15 Dec 2021 21:03:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233058AbhLOVDW (ORCPT ); Wed, 15 Dec 2021 16:03:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58956 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232555AbhLOVDM (ORCPT ); Wed, 15 Dec 2021 16:03:12 -0500 Received: from mail-qt1-x836.google.com (mail-qt1-x836.google.com [IPv6:2607:f8b0:4864:20::836]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3E269C061757; Wed, 15 Dec 2021 13:03:08 -0800 (PST) Received: by mail-qt1-x836.google.com with SMTP id z9so23231795qtj.9; Wed, 15 Dec 2021 13:03:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=z18VL31coTBk76De+PcvAvUu+q+yeDGJv5K7mB9qqFw=; b=J9XNv/fYF4yS+FKG6kZSUlwuAusLvMKrtMDyPR8xCHge5JwdPgXyNqGbO3WZ2k57S6 gNGfa6c5M34B0eePU/pjcgxU6ULW07Pq5f4GcF1/WEysrwnDc0o1hx2mUT07I19B6u5c CmA4Y4Pz7L7kjg+j+tNUWsgMvUs2zrVv12uQ8Aey4oLRo7tqlKQX6JVMsXX1Ku6L13pc cJx5n7mxBm85gfqxhBhwCnP+d1DbXXvMOVUm3s1mINYqi9V8eyhJrP1D6d4VOR+8GcrE CcDnKvfpaYdhpw5Sfmm9Vju8LIBdm1navTKdX8rGtxgm5rKZGdDVQ+AybCnCxAlgEwM8 kJcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=z18VL31coTBk76De+PcvAvUu+q+yeDGJv5K7mB9qqFw=; b=mMxOsnhzTh3qfnIPlNib3n3+bt0UQtAE7CvSgucf4XRv9ye7uKI4KX81+Gv+Lf2nWJ WYFGMThJbsMvAw9xr46flCHFw3OvWr/HtACNu9be+tm+2qgGDl9NBG1pRCJXLCUsPgxJ LFLADk7UAWU7z/V0TvqnaJEAZXHyP5p9u5p0fX8p7SsQxhfi6ERmYT43UhJYIizwjf2D 7JxSHjjKyGo5c5iR7st+Hev7o26cjX5vZDIByu5HA2GFTVEG7B0Js7qP5zD+RK6SCz26 Tk+CUcj7uz8uK3bHdxwVLS4KFo1+lefQ674J+x2TRVKsKmpOQ9lDH5LZHokPsZu3BgQ0 vPJg== X-Gm-Message-State: AOAM531jl/FojUyNvw72cyS347u/eGS+NyIiGjUY8FD4hsLZT+7v5uWh enob+PahwP2IIUUR9oAOuTg= X-Google-Smtp-Source: ABdhPJwRLjnZxRAdAtPRk7bkReWkOSFDrqr33VbRi2bU1fO9JuxHDWcLtRB4jmdGyPjrw1tAYqQV6w== X-Received: by 2002:a05:622a:1310:: with SMTP id v16mr14127043qtk.431.1639602187353; Wed, 15 Dec 2021 13:03:07 -0800 (PST) Received: from master-x64.sparksnet (c-98-233-193-225.hsd1.md.comcast.net. [98.233.193.225]) by smtp.gmail.com with ESMTPSA id a20sm1644356qkh.63.2021.12.15.13.03.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Dec 2021 13:03:06 -0800 (PST) From: Peter Geis To: Rob Herring , Heiko Stuebner Cc: Peter Geis , Michael Riesch , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 7/8] arm64: dts: rockchip: add usb2 nodes to rk3568 device tree Date: Wed, 15 Dec 2021 16:02:51 -0500 Message-Id: <20211215210252.120923-8-pgwipeout@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211215210252.120923-1-pgwipeout@gmail.com> References: <20211215210252.120923-1-pgwipeout@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add the requisite nodes to the rk3568 device tree to enable the usb2 device controllers. Includes the usb2phy nodes, usb2phy grf nodes, and usb2 controller nodes. Signed-off-by: Peter Geis Tested-by: Michael Riesch --- arch/arm64/boot/dts/rockchip/rk356x.dtsi | 98 ++++++++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts= /rockchip/rk356x.dtsi index 46d9552f6028..2c2b1014e53b 100644 --- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi @@ -204,6 +204,50 @@ gic: interrupt-controller@fd400000 { msi-controller; }; =20 + usb_host0_ehci: usb@fd800000 { + compatible =3D "generic-ehci"; + reg =3D <0x0 0xfd800000 0x0 0x40000>; + interrupts =3D ; + clocks =3D <&cru HCLK_USB2HOST0>, <&cru HCLK_USB2HOST0_ARB>, + <&cru PCLK_USB>; + phys =3D <&u2phy1_otg>; + phy-names =3D "usb"; + status =3D "disabled"; + }; + + usb_host0_ohci: usb@fd840000 { + compatible =3D "generic-ohci"; + reg =3D <0x0 0xfd840000 0x0 0x40000>; + interrupts =3D ; + clocks =3D <&cru HCLK_USB2HOST0>, <&cru HCLK_USB2HOST0_ARB>, + <&cru PCLK_USB>; + phys =3D <&u2phy1_otg>; + phy-names =3D "usb"; + status =3D "disabled"; + }; + + usb_host1_ehci: usb@fd880000 { + compatible =3D "generic-ehci"; + reg =3D <0x0 0xfd880000 0x0 0x40000>; + interrupts =3D ; + clocks =3D <&cru HCLK_USB2HOST1>, <&cru HCLK_USB2HOST1_ARB>, + <&cru PCLK_USB>; + phys =3D <&u2phy1_host>; + phy-names =3D "usb"; + status =3D "disabled"; + }; + + usb_host1_ohci: usb@fd8c0000 { + compatible =3D "generic-ohci"; + reg =3D <0x0 0xfd8c0000 0x0 0x40000>; + interrupts =3D ; + clocks =3D <&cru HCLK_USB2HOST1>, <&cru HCLK_USB2HOST1_ARB>, + <&cru PCLK_USB>; + phys =3D <&u2phy1_host>; + phy-names =3D "usb"; + status =3D "disabled"; + }; + pmugrf: syscon@fdc20000 { compatible =3D "rockchip,rk3568-pmugrf", "syscon", "simple-mfd"; reg =3D <0x0 0xfdc20000 0x0 0x10000>; @@ -219,6 +263,16 @@ grf: syscon@fdc60000 { reg =3D <0x0 0xfdc60000 0x0 0x10000>; }; =20 + usb2phy0_grf: syscon@fdca0000 { + compatible =3D "rockchip,rk3568-usb2phy-grf", "syscon"; + reg =3D <0x0 0xfdca0000 0x0 0x8000>; + }; + + usb2phy1_grf: syscon@fdca8000 { + compatible =3D "rockchip,rk3568-usb2phy-grf", "syscon"; + reg =3D <0x0 0xfdca8000 0x0 0x8000>; + }; + pmucru: clock-controller@fdd00000 { compatible =3D "rockchip,rk3568-pmucru"; reg =3D <0x0 0xfdd00000 0x0 0x1000>; @@ -1077,6 +1131,50 @@ pwm15: pwm@fe700030 { status =3D "disabled"; }; =20 + u2phy0: usb2phy@fe8a0000 { + compatible =3D "rockchip,rk3568-usb2phy"; + reg =3D <0x0 0xfe8a0000 0x0 0x10000>; + clocks =3D <&pmucru CLK_USBPHY0_REF>; + clock-names =3D "phyclk"; + clock-output-names =3D "clk_usbphy0_480m"; + interrupts =3D ; + rockchip,usbgrf =3D <&usb2phy0_grf>; + #clock-cells =3D <0>; + status =3D "disabled"; + + u2phy0_host: host-port { + #phy-cells =3D <0>; + status =3D "disabled"; + }; + + u2phy0_otg: otg-port { + #phy-cells =3D <0>; + status =3D "disabled"; + }; + }; + + u2phy1: usb2phy@fe8b0000 { + compatible =3D "rockchip,rk3568-usb2phy"; + reg =3D <0x0 0xfe8b0000 0x0 0x10000>; + clocks =3D <&pmucru CLK_USBPHY1_REF>; + clock-names =3D "phyclk"; + clock-output-names =3D "clk_usbphy1_480m"; + interrupts =3D ; + rockchip,usbgrf =3D <&usb2phy1_grf>; + #clock-cells =3D <0>; + status =3D "disabled"; + + u2phy1_host: host-port { + #phy-cells =3D <0>; + status =3D "disabled"; + }; + + u2phy1_otg: otg-port { + #phy-cells =3D <0>; + status =3D "disabled"; + }; + }; + pinctrl: pinctrl { compatible =3D "rockchip,rk3568-pinctrl"; rockchip,grf =3D <&grf>; --=20 2.25.1 From nobody Wed Jul 1 21:30:41 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2E700C433EF for ; Wed, 15 Dec 2021 21:03:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233360AbhLOVD0 (ORCPT ); Wed, 15 Dec 2021 16:03:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58994 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232580AbhLOVDM (ORCPT ); Wed, 15 Dec 2021 16:03:12 -0500 Received: from mail-qk1-x72a.google.com (mail-qk1-x72a.google.com [IPv6:2607:f8b0:4864:20::72a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8FDC0C06175B; Wed, 15 Dec 2021 13:03:09 -0800 (PST) Received: by mail-qk1-x72a.google.com with SMTP id a11so21370505qkh.13; Wed, 15 Dec 2021 13:03:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=eZzjv6PEcKc8tKRxH0kjZUoCXyO3M8rdYy6VBQjMZIk=; b=j/cbQ7ZkNwbCC4EnPjBRyMUYWeEcRvj1dQ2i+c2ancEl6Kw5PCtNOXjz2wR25eyXoY WBKYz6vds2J4v7pSSAx6xqfGLhUvuHYBa/KeVHXlsNIJTiCDY6Y2nkFV+m7Rn9RfhEt1 Y0E/bkmZZdY9mMpZTM0fNEaywocnxf4FmSm11UOnBBKLFGhm7FzI4YsePYARb5mxAibk ueujdVekwICe6DthNPzT42QAWB8mlhY1Yxik6i2ugk65ALKVM3skLDsiael+IF023Evo ncHq2G0b7HOiETEHH/GpbL52PtuxqsC6Y860j3jIezesYi525qkx/hYDA77Ukra6HiHp U1kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=eZzjv6PEcKc8tKRxH0kjZUoCXyO3M8rdYy6VBQjMZIk=; b=4BsZlwluAZWoYcLzt6iO7PSUJlpC9SrTec+QyW69I1zUg4uXDUOpxN2EGvYq00z1VX R3U3fvDHI8Hu7oVbyXMkvasHVBjYnFPjnXRuDvtIl6TLbJYyMUMlUcQG3Et283uLAyUB ZkpzkPBcEov6KKVGBE4wpHNrM9GWTAa8g8zR7Pu4nlLLPSEKuLTP0klGz0YPtGODJ345 KJJNUf1csmuq1u9n+ipObcGtOU90M0qlshfogwlSDRNWQoCpIxCd+SwAXFw6rYEWSIzq tfp4Hw89FVXxQ9tB05Mr7dJ96eiwhqMuoXqzLTbLtvAfKHl1D0eOZWfZkJteZV0iwHGW kXmw== X-Gm-Message-State: AOAM533MYqTYfZYsOTVWyEL8lz9l1o3YYKnhf5Ipacct8/y9KemK5bSV 6AnoqaSoUcMSRjOwIu0JC/c= X-Google-Smtp-Source: ABdhPJzR1emnZ2WdfeP0+0vXOW/jlCE4yfiLz/eq6GEZ9SkRx5xm+EuQbaRIYJbqmRQAUnEFLhHvtA== X-Received: by 2002:a05:620a:1253:: with SMTP id a19mr10174631qkl.293.1639602188652; Wed, 15 Dec 2021 13:03:08 -0800 (PST) Received: from master-x64.sparksnet (c-98-233-193-225.hsd1.md.comcast.net. [98.233.193.225]) by smtp.gmail.com with ESMTPSA id a20sm1644356qkh.63.2021.12.15.13.03.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Dec 2021 13:03:08 -0800 (PST) From: Peter Geis To: Rob Herring , Heiko Stuebner Cc: Peter Geis , Michael Riesch , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 8/8] arm64: dts: rockchip: add Quartz64-A usb2 support Date: Wed, 15 Dec 2021 16:02:52 -0500 Message-Id: <20211215210252.120923-9-pgwipeout@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211215210252.120923-1-pgwipeout@gmail.com> References: <20211215210252.120923-1-pgwipeout@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add the nodes and regulators to enable usb2 support on the Quartz64 Model A. Signed-off-by: Peter Geis Tested-by: Michael Riesch --- .../boot/dts/rockchip/rk3566-quartz64-a.dts | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts b/arch/arm6= 4/boot/dts/rockchip/rk3566-quartz64-a.dts index 4d4b2a301b1a..e5a70ff4e920 100644 --- a/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts +++ b/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts @@ -124,6 +124,22 @@ vcc5v0_usb: vcc5v0_usb { vin-supply =3D <&vcc12v_dcin>; }; =20 + /* all four ports are controlled by one gpio + * the host ports are sourced from vcc5v0_usb + * the otg port is sourced from vcc5v0_midu + */ + vcc5v0_usb20_host: vcc5v0_usb20_host { + compatible =3D "regulator-fixed"; + regulator-name =3D "vcc5v0_usb20_host"; + enable-active-high; + gpio =3D <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&vcc5v0_usb20_host_en>; + regulator-min-microvolt =3D <5000000>; + regulator-max-microvolt =3D <5000000>; + vin-supply =3D <&vcc5v0_usb>; + }; + vcc3v3_sd: vcc3v3_sd { compatible =3D "regulator-fixed"; enable-active-low; @@ -477,6 +493,12 @@ pmic_int_l: pmic-int-l { }; }; =20 + usb2 { + vcc5v0_usb20_host_en: vcc5v0-usb20-host-en { + rockchip,pins =3D <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + vcc_sd { vcc_sd_h: vcc-sd-h { rockchip,pins =3D <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; @@ -546,3 +568,33 @@ bluetooth { &uart2 { status =3D "okay"; }; + +&u2phy1_host { + phy-supply =3D <&vcc5v0_usb20_host>; + status =3D "okay"; +}; + +&u2phy1_otg { + phy-supply =3D <&vcc5v0_usb20_host>; + status =3D "okay"; +}; + +&u2phy1 { + status =3D "okay"; +}; + +&usb_host0_ehci { + status =3D "okay"; +}; + +&usb_host0_ohci { + status =3D "okay"; +}; + +&usb_host1_ehci { + status =3D "okay"; +}; + +&usb_host1_ohci { + status =3D "okay"; +}; --=20 2.25.1