From patchwork Fri Dec 6 16:31:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andr=C3=A9_Draszik?= X-Patchwork-Id: 13897444 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CC3E3E77173 for ; Fri, 6 Dec 2024 16:34:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=VPcp32i194zjkohuP3ghdoazYclk/zwkpzXjsI6FYvY=; b=PDKwlnq8LkeD6H1LQyDpNLH8Ze rcNn1BLI+3MFX0tnzbsnW5TVDOdlihkCq34/AwXSFUxzGVmkSAFyOPu6FOHw1DRKZJR8wewhprXOC 3tVluKFXmOFSZuClhHeCLArAZB70AuKGC3Xnz6b953U4ettsFMK1tWVnaGzizQUJApz7Dk4A82uG8 mTEfUIu++Noxskv8CMW6p3osN7FRPdTOXoJONoY8er5RKP9EiXv+npGMeYnlCPiu9ymIep048VjLu xrk83DUDI/huW70Ik2CXSyeDxZxGHMknDqL9+kRE7uOy1WNlNOdDDzbhMqDgSTQE9I0S4dXQbL6wv DBe4BfPA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tJbHR-00000002B7e-1z9x; Fri, 06 Dec 2024 16:34:13 +0000 Received: from mail-ed1-x536.google.com ([2a00:1450:4864:20::536]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tJbEO-00000002ACw-1PQA for linux-arm-kernel@lists.infradead.org; Fri, 06 Dec 2024 16:31:06 +0000 Received: by mail-ed1-x536.google.com with SMTP id 4fb4d7f45d1cf-5d34030ebb2so2512155a12.1 for ; Fri, 06 Dec 2024 08:31:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1733502662; x=1734107462; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=VPcp32i194zjkohuP3ghdoazYclk/zwkpzXjsI6FYvY=; b=cJiC1N3RpzTfC+2WemAML9EZFB1y/XRY+qAyzWojTtaZ41YVLcwyZ6c8aBjNfCD2uO KXI6hAqrHBmIdc3fXyrPJvCcq0ue1iHaBrUgIvaUsjjhLoetJFQjxl7xRAHZG6lLGbwW kM7TVfajl63AxERS1cocTamFrXwXxo6ket83EC6/RRuMZIxhYuwMy0AgjTLtdqbfFg5O X9fuXaZT9dDPecwklBeZk3yx5Wp+w4447bcRs5TjMOoiQRFd7qvqDXsfc42wZg+/oKgf zlNoof3SMannJHHKCVxzST6yCf6pR04cblT/v0UEAU421xwcM8DD5tkp9xY6DajZ0OBn ACDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733502662; x=1734107462; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VPcp32i194zjkohuP3ghdoazYclk/zwkpzXjsI6FYvY=; b=v0BADBrHI7rpumfgKfLfqTzyrms2dE45R3ieNAVD6qiJLUCx6fjhr8a912+n+RI9xc HTBzvxwXEWcX60NII7N/FBZryKIqpKTIDzza4cQQenVZdmFiLK8jmYRMAgPbZjbq7MB/ sDKWLyb1byMMLQgOYwgUeu2WEYHgkUm/Q+GIVxGYRppUfBM1hTDNwm79oivPOL4Mld5x HcIjZRffS+F65sNuuGvnSVg6BGaXFTNLG7TmgngRRBN41Lg18zNvJSiGcLTk+6BQPgc9 9naG8b2ep7soTKx4kJuKGgUsk2/S7OfaPngIy7hgMhF+gRDT/TV7Uw6L3Kgy3zvwqmzN vcTA== X-Forwarded-Encrypted: i=1; AJvYcCUKq2+rvshAkCKZvQRAAos3HvOjyUkkNsv8YBlyHP/0ah9KstIQyir2+XD9RLvJfNPoxpEK3jvSCw4hEQb6vYC+@lists.infradead.org X-Gm-Message-State: AOJu0Yy0xagFbZhsM0Aqk7FOlXBhYcu2EvmcSmlq/322g8zPT/oeGtS6 Yc0PiVv040cXOs+TlKRbM0JqF8TKu9iRkQslNF++21el6tlpUGW2tyoUZSMX5Yc= X-Gm-Gg: ASbGnctf53aXuINO7GUMuZWVRD0t7s0UN2IXXsnz3eKCtz9pJGXSpU1a33RcAsabYkG tf3PXouTFd7sH2LSG1PyGukvIthH3LdHbdjCQhs9AqmVLrhQ+AdqGA9scquTne7SZJyiwDu33EN eU7uQtLGJ9RlNG3x0+4bCw/jC6EJL5VnlirgQeWXM4uZRDi9FnxKQiBYEd3bnPu3WGEmmvuHh8Q 3HM373qoBKlbnujeGeQ5KMEDPIlPwUfW3caovL5S0rgVFJQqqJENNo6sRmcj4AVhPB3usRfq2yC afazwfx6tD2EzAg4Hhe+N/m3JDASY49iDA== X-Google-Smtp-Source: AGHT+IEYYMQ/h9d08asabi/0+odqzF/CyOlSqdYyLjSN9hUXcwqfK0GjZYzhh1sXE6LLkhg8iDS+AQ== X-Received: by 2002:a17:907:9145:b0:aa5:1cdf:7c02 with SMTP id a640c23a62f3a-aa639fa52d3mr294338966b.3.1733502662183; Fri, 06 Dec 2024 08:31:02 -0800 (PST) Received: from puffmais.c.googlers.com (64.227.90.34.bc.googleusercontent.com. [34.90.227.64]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aa6260e8af8sm257710266b.191.2024.12.06.08.31.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Dec 2024 08:31:01 -0800 (PST) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Fri, 06 Dec 2024 16:31:01 +0000 Subject: [PATCH v4 1/7] dt-bindings: phy: samsung,usb3-drd-phy: add blank lines between DT properties MIME-Version: 1.0 Message-Id: <20241206-gs101-phy-lanes-orientation-phy-v4-1-f5961268b149@linaro.org> References: <20241206-gs101-phy-lanes-orientation-phy-v4-0-f5961268b149@linaro.org> In-Reply-To: <20241206-gs101-phy-lanes-orientation-phy-v4-0-f5961268b149@linaro.org> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Marek Szyprowski , Sylwester Nawrocki , Alim Akhtar Cc: Peter Griffin , Tudor Ambarus , Sam Protsenko , Will McVicker , Roy Luo , kernel-team@android.com, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.13.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241206_083104_370200_C1677A1C X-CRM114-Status: UNSURE ( 8.51 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org In [1], Rob pointed out that we should really be separating properties with blank lines in between, which is universal style. Only where properties are booleans, empty lines are not required. Do so. Link: https://lore.kernel.org/all/20240711212359.GA3023490-robh@kernel.org/ [1] Reviewed-by: Peter Griffin Acked-by: Rob Herring (Arm) Signed-off-by: André Draszik --- v3: * update subject line (Rob) * collect tags v2: * collect tags --- .../devicetree/bindings/phy/samsung,usb3-drd-phy.yaml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Documentation/devicetree/bindings/phy/samsung,usb3-drd-phy.yaml b/Documentation/devicetree/bindings/phy/samsung,usb3-drd-phy.yaml index 16321cdd4919..1f8b35917b11 100644 --- a/Documentation/devicetree/bindings/phy/samsung,usb3-drd-phy.yaml +++ b/Documentation/devicetree/bindings/phy/samsung,usb3-drd-phy.yaml @@ -83,14 +83,19 @@ properties: pll-supply: description: Power supply for the USB PLL. + dvdd-usb20-supply: description: DVDD power supply for the USB 2.0 phy. + vddh-usb20-supply: description: VDDh power supply for the USB 2.0 phy. + vdd33-usb20-supply: description: 3.3V power supply for the USB 2.0 phy. + vdda-usbdp-supply: description: VDDa power supply for the USB DP phy. + vddh-usbdp-supply: description: VDDh power supply for the USB DP phy. @@ -117,6 +122,7 @@ allOf: - description: Gate of control interface AXI clock - description: Gate of control interface APB clock - description: Gate of SCL APB clock + clock-names: items: - const: phy @@ -124,10 +130,13 @@ allOf: - const: ctrl_aclk - const: ctrl_pclk - const: scl_pclk + reg: minItems: 3 + reg-names: minItems: 3 + required: - reg-names - pll-supply @@ -149,6 +158,7 @@ allOf: clocks: minItems: 5 maxItems: 5 + clock-names: items: - const: phy @@ -156,8 +166,10 @@ allOf: - const: phy_utmi - const: phy_pipe - const: itp + reg: maxItems: 1 + reg-names: maxItems: 1 @@ -174,12 +186,15 @@ allOf: clocks: minItems: 2 maxItems: 2 + clock-names: items: - const: phy - const: ref + reg: maxItems: 1 + reg-names: maxItems: 1 From patchwork Fri Dec 6 16:31:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andr=C3=A9_Draszik?= X-Patchwork-Id: 13897428 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 52762E77173 for ; Fri, 6 Dec 2024 16:33:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=PKgkddTbsb36SqzZl1dMALspeUepmvmFxGiaTIa2E3A=; b=tFwRquRcvHZ/U8r0gkLXcogM+C cEBXjX3YRg/XVn/ROtUllGbHxS6t2pNOHZyArr2f28C9hWDptFEPGsgE9PdGe/bx3MP3p0FL3qsSi IxlxJ3gHOMNsWP6z6Wp33a1l9Mi970vgnYyt5hdmbG3DflQSz77kWZIGbcfyAQdqeMozTScNcUSc1 Zl/clHB+oUumx1ezNZzUFGPTWckDhEKUY5Z9fJ21k9h+gIEM81eluelzpxwMSmKp9u0MpAFr8wZ/M NuX6b7tAljCJRVB73wcr9Wbn4jMfgqjSQgVsBuU+20w6cgidSoVqt6bDLMQIAn14OwZiE3G6g1TLV rz3eyZ/w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tJbGQ-00000002AtH-3eoM; Fri, 06 Dec 2024 16:33:10 +0000 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tJbEO-00000002AD1-2GQr for linux-arm-kernel@lists.infradead.org; Fri, 06 Dec 2024 16:31:06 +0000 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-aa53ebdf3caso406227266b.2 for ; Fri, 06 Dec 2024 08:31:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1733502663; x=1734107463; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=PKgkddTbsb36SqzZl1dMALspeUepmvmFxGiaTIa2E3A=; b=f1/Gb1LVDJ2gygESXZ1YGtEpkj2zaIWqbsfaspr3BGU9ZFUPnjEyFS2o4giyvSsqMF Ocjd7zFlzjd4Inr4yC3PQ61oCV1JR2airmMq4W5MlsO0DYOSOI12+KecZLCoddUjfijl VSzGQ9JK9oc2GvfNrBx30xjQ23CZBD33gNJ+OLzwBTQS5fiZE8AuATupbczD1k3gb+J0 mP9BUNGDpNi4lnVol/VkfIIGAOHQPg4ZVBKUrqUYCsreeFgvjDnxH7g8rdou3AJy/fmi xfSEfjBKYzOxSrGzaWJpmifjqK0SAwE/rHsNbC7SjkpwqFIUZSY9a6an5de3K3ZBlclN XWSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733502663; x=1734107463; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PKgkddTbsb36SqzZl1dMALspeUepmvmFxGiaTIa2E3A=; b=o74WAeKZD/aPYU3BHIuhvzoON16w3yLJPNx3Q/4z18ZnXxuEwGb/KpTpNbyFyFLpou AVIGKE8Hw2bsGTxirDuPpfEAaF4o9sncmbUvFuLbyZMZHq8TYs7AOzWfMQeW5f+RlVuq kybTUD+ugqWgxPRgGA922+memms90qlYm/psocdstzhg0o44CMs30MOJbbC2hZpuB6K2 hJy3chpeHTqiXkQoRFNw3d8JMQImj1XEMM62lUlCkRF2SyLs/vd6zLcaG8VY8InlEdns YgTls4WQu++MvY0mgOmjznNXjPz4OAqfgWq8JjDIj30lVnygXQJ8zEU5vRAEFJVC4bkt daSg== X-Forwarded-Encrypted: i=1; AJvYcCVK/ZOrxH+LMFEVxQPoCw48qGiBActLiYZG8trTwEoIzw12ddsuBNR+FxPIqNlb3E3bYlit/juUQNE9I4muez9Q@lists.infradead.org X-Gm-Message-State: AOJu0Yxs63xpom+JpwCbPPYwK1HRRal1+WgX+53voLnW1+DNoRl0+QTV umzWYD3fPNPOnx/VIj9gDFNrcFPhIhrqStbMI27dExacyiOV4uYrU9r3fbfqAIk= X-Gm-Gg: ASbGncv1lK3FTEJU6HTYcnmNkJTsho4G64i++Swsmkc6gYCsNDjd3ZEI0ZBW8CxIzOb oyEuPS7zGU6isqEpPya2Zwud7fnLkRAZ+Aw5bwYbfexzdbwnhqZR7ieVjD6J2nceq2u7E/JwIPi JSp5bOlSbaUGs9qruA0clpsIx0VS0xWIAud16WesvESGOd5Jv23HmtJ9/5yKRAxtR0GFM6oMux2 8vn8G9b6t5Fzz2IX33K2nCPxFOOXb2MOktLRbEGR4opwWZxisW6eoHt+FXelDHzcUwOW8mcozsf TAbifZoWSg1W/Ki0+0P4iugmWv5ZKIEjhw== X-Google-Smtp-Source: AGHT+IGRlX7BIbgKcq4E8LlKztNa00vBgQAERS4YEdJ5MYW+4Wqp/mGqY/4IqsX/I0DaInCg04SuNg== X-Received: by 2002:a17:907:7841:b0:aa6:32c0:5d05 with SMTP id a640c23a62f3a-aa639febf00mr320394766b.13.1733502662697; Fri, 06 Dec 2024 08:31:02 -0800 (PST) Received: from puffmais.c.googlers.com (64.227.90.34.bc.googleusercontent.com. [34.90.227.64]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aa6260e8af8sm257710266b.191.2024.12.06.08.31.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Dec 2024 08:31:02 -0800 (PST) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Fri, 06 Dec 2024 16:31:02 +0000 Subject: [PATCH v4 2/7] dt-bindings: phy: samsung,usb3-drd-phy: gs101: require Type-C properties MIME-Version: 1.0 Message-Id: <20241206-gs101-phy-lanes-orientation-phy-v4-2-f5961268b149@linaro.org> References: <20241206-gs101-phy-lanes-orientation-phy-v4-0-f5961268b149@linaro.org> In-Reply-To: <20241206-gs101-phy-lanes-orientation-phy-v4-0-f5961268b149@linaro.org> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Marek Szyprowski , Sylwester Nawrocki , Alim Akhtar Cc: Peter Griffin , Tudor Ambarus , Sam Protsenko , Will McVicker , Roy Luo , kernel-team@android.com, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.13.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241206_083104_574363_3BB8B373 X-CRM114-Status: GOOD ( 12.38 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org orientation-switch is the standard declaration to inform the Type-C mux layer that a remote-endpoint is capable of processing orientation change messages. The USB PHY on gs101 needs to be configured based on the orientation of the connector. For that the DTS needs a link between the phy's port and a TCPCi, and we'll need to inform the phy driver that it should handle the orientation (register a handler). Update the schema to enforce that by requiring the orientation-switch and port properties on gs101 (only). We disallow orientation-switch on all other supported platforms, since other versions of this phy (or its system integration) don't currently support or even need it. Even though this new required gs101 property is an ABI break, the intention for the driver is to behave as before if it's missing (meaning for gs101 it will work in SS mode in one orientation only). Other platforms are not affected. Reviewed-by: Peter Griffin Signed-off-by: André Draszik Reviewed-by: Rob Herring (Arm) --- v3: * update as per Rob's suggestion (I hope :-) v2: * squash original patches #2 and #3 * actually disallow orientation-switch on !gs101 (not just optional) (Conor) * update commit message to clarify that the intention for the driver is to work with old and new DTS (Conor) * collect tags foo --- Documentation/devicetree/bindings/phy/samsung,usb3-drd-phy.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/phy/samsung,usb3-drd-phy.yaml b/Documentation/devicetree/bindings/phy/samsung,usb3-drd-phy.yaml index 1f8b35917b11..27295acbba76 100644 --- a/Documentation/devicetree/bindings/phy/samsung,usb3-drd-phy.yaml +++ b/Documentation/devicetree/bindings/phy/samsung,usb3-drd-phy.yaml @@ -114,6 +114,8 @@ allOf: contains: const: google,gs101-usb31drd-phy then: + $ref: /schemas/usb/usb-switch.yaml# + properties: clocks: items: @@ -139,6 +141,8 @@ allOf: required: - reg-names + - orientation-switch + - port - pll-supply - dvdd-usb20-supply - vddh-usb20-supply @@ -198,7 +202,7 @@ allOf: reg-names: maxItems: 1 -additionalProperties: false +unevaluatedProperties: false examples: - | From patchwork Fri Dec 6 16:31:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andr=C3=A9_Draszik?= X-Patchwork-Id: 13897445 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2051FE77173 for ; Fri, 6 Dec 2024 16:35:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=H11rnIjZ/6A+y0BhElAhFFU5gZO2NZydl8Xc9FZjLpY=; b=mfGCytdLavA8bNqOipi1HF8mfc yh0XnkBU058f2YryMYpG5sckiKIUs4HARg5dB+w7E2uJN3HlIOH6BVPQVpSaDrkqTZExfa+Qni32o wRlTRkn/Cq6AUxEPecAMO39bzZzvlZeIH8P0nc50MYrVznFVMwWrEhNKzj0dCxEbiQiCQfzoxoCKL YWK9q1+9aUtwqsb2UkouxXzBxLedaxfxyskdTmkk/Z/SKgAaBPBmGsaBvgEJmMGRyJ93uu5GvYSfy AzS2aqy+N6ByA5mX0Q7lEukHoRt0S4zWDCnbKNGd58FZcS2+Rh0rb9/9VU/Jbq+J9hHTufpo/GHUe dlkAtEKQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tJbIR-00000002BTG-1rur; Fri, 06 Dec 2024 16:35:15 +0000 Received: from mail-lf1-x129.google.com ([2a00:1450:4864:20::129]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tJbEO-00000002ADS-48uA for linux-arm-kernel@lists.infradead.org; Fri, 06 Dec 2024 16:31:07 +0000 Received: by mail-lf1-x129.google.com with SMTP id 2adb3069b0e04-53e274f149fso2617283e87.1 for ; Fri, 06 Dec 2024 08:31:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1733502663; x=1734107463; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=H11rnIjZ/6A+y0BhElAhFFU5gZO2NZydl8Xc9FZjLpY=; b=oKT9uGmUWvsupxgmEMebfD8zhvFhR+J7axPfIuTycsrQVY/Jcxt9Henvfhif0bDVfQ lQOeBz6wljqM93nd5YL9+H7oFJfw+y9JxPmORgcr9sCZ6aPceh8wMl6nKf0GO1/GfZOu AWJHs7RTpeZqNy3eQXpC4bDcm+Oo+g07h0aCLVZl8PxQCpLIE6KwNt/51zD1C61dIsA6 AtEoPn2DO4Pe777wD1JtDcmuZpjVRwY4fo3c5sTsfGnRJz/o8YkaiQMb2gG4L23fFMPP BiNxMI40Xe0za4CvXE0hxiTMoDYC8NZtbOEE0WjQKnxPQ4q2QRiEoCiax7LkuO04tY3y 3Yaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733502663; x=1734107463; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=H11rnIjZ/6A+y0BhElAhFFU5gZO2NZydl8Xc9FZjLpY=; b=VLZS76nIPHaeBEjZ/O4zzhR7fA2VgbxLHa2Gt5p7zl/6dfyp+QW/jE9ScPnRJt2PvP m7w6qONPGf7Q03Nj1OQi1C4poafv4QHWuSEoaGiGaXHhBKMQ1EGf2I90lkdeTuqOPz+d CNNqNwSHpWK7hiv0JIoww8wvF1k3zBbsnaY4jAJQVhSNW2pSAu5DBVf0XQnFiDZ9zZgC mIdE0kBCXD5UMUBJ7useZkEU8MfDJMCYGcAQS89Db2Mv+Fs+k4WmlR9OVXZUMBkZbTyn +GeLroCDsPm5DZLucwNbPpIOWVYusn7hnMjwLIOm8jWmP2jzlrjbxtJSnwmy5q89OjN2 wN8g== X-Forwarded-Encrypted: i=1; AJvYcCUqgD/YVFikTyjULZAzD50JnvxbKi/9dECNDvVYo81W1htKB1ua91APYMu3TA/A3o0+dyH+R4iXNicJCiYA+mG2@lists.infradead.org X-Gm-Message-State: AOJu0YyXdbr64FtMWZlApGqdtrJroUGndIwAAzpUH2Ad9UNZ80vsbZ0n sG5mtTvdJk9qYu0SCYACmdadI4Uh4f4dLL6voRlYe4/m3m6uUsgdW/fhA8w7hYA= X-Gm-Gg: ASbGncs6UpYZWY21yhDJU4+wKbgaeCXpBfoXU/3tajZYDcfRD9hsME3NED5TAAS2ZT2 DdWGDPj+Q6LY2Qp1zPkEXnDNlGPhzYM3uTqdIrbT8CQUCPpLRnB4MSpdMZDG9SfgijU3g43TIb0 EJ8RLdaQLL70fpt0Ag47VOueJCl3Am4KRBmX7omp7H0jLCTAUrVvyTqndNHjAYVio85dLlTIj0M eVIZlHVbz3tJb7PVOMUh4fhp3V1dtFYv1AGpgvpF/J68ijMnfImM1QqlG9wzWA+WmPt0PTuDLhk EGKmT3yIYdfYsEUY+IAhWsgFG9XDV1vZYw== X-Google-Smtp-Source: AGHT+IExkzoUN1HflnT9opUQAW9MqmmpGeThLHiF2BwdjV6cAu9grD1ih7bZFlXxIc4t4D7GinRxbw== X-Received: by 2002:a05:6512:ad1:b0:539:da76:c77e with SMTP id 2adb3069b0e04-53e2c2ac7fcmr2130253e87.5.1733502663241; Fri, 06 Dec 2024 08:31:03 -0800 (PST) Received: from puffmais.c.googlers.com (64.227.90.34.bc.googleusercontent.com. [34.90.227.64]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aa6260e8af8sm257710266b.191.2024.12.06.08.31.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Dec 2024 08:31:02 -0800 (PST) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Fri, 06 Dec 2024 16:31:03 +0000 Subject: [PATCH v4 3/7] phy: exynos5-usbdrd: convert to dev_err_probe MIME-Version: 1.0 Message-Id: <20241206-gs101-phy-lanes-orientation-phy-v4-3-f5961268b149@linaro.org> References: <20241206-gs101-phy-lanes-orientation-phy-v4-0-f5961268b149@linaro.org> In-Reply-To: <20241206-gs101-phy-lanes-orientation-phy-v4-0-f5961268b149@linaro.org> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Marek Szyprowski , Sylwester Nawrocki , Alim Akhtar Cc: Peter Griffin , Tudor Ambarus , Sam Protsenko , Will McVicker , Roy Luo , kernel-team@android.com, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= , Krzysztof Kozlowski X-Mailer: b4 0.13.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241206_083105_017689_9C9E4F03 X-CRM114-Status: GOOD ( 11.51 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org dev_err_probe() exists to simplify code. Reviewed-by: Krzysztof Kozlowski Reviewed-by: Peter Griffin Signed-off-by: André Draszik Tested-by: Will McVicker --- v2: * collect tags --- drivers/phy/samsung/phy-exynos5-usbdrd.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/drivers/phy/samsung/phy-exynos5-usbdrd.c b/drivers/phy/samsung/phy-exynos5-usbdrd.c index c421b495eb0f..ceae4b47cece 100644 --- a/drivers/phy/samsung/phy-exynos5-usbdrd.c +++ b/drivers/phy/samsung/phy-exynos5-usbdrd.c @@ -1725,10 +1725,9 @@ static int exynos5_usbdrd_phy_probe(struct platform_device *pdev) reg_pmu = syscon_regmap_lookup_by_phandle(dev->of_node, "samsung,pmu-syscon"); - if (IS_ERR(reg_pmu)) { - dev_err(dev, "Failed to lookup PMU regmap\n"); - return PTR_ERR(reg_pmu); - } + if (IS_ERR(reg_pmu)) + return dev_err_probe(dev, PTR_ERR(reg_pmu), + "Failed to lookup PMU regmap\n"); /* * Exynos5420 SoC has multiple channels for USB 3.0 PHY, with @@ -1759,10 +1758,9 @@ static int exynos5_usbdrd_phy_probe(struct platform_device *pdev) for (i = 0; i < EXYNOS5_DRDPHYS_NUM; i++) { struct phy *phy = devm_phy_create(dev, NULL, drv_data->phy_ops); - if (IS_ERR(phy)) { - dev_err(dev, "Failed to create usbdrd_phy phy\n"); - return PTR_ERR(phy); - } + if (IS_ERR(phy)) + return dev_err_probe(dev, PTR_ERR(phy), + "Failed to create usbdrd_phy phy\n"); phy_drd->phys[i].phy = phy; phy_drd->phys[i].index = i; @@ -1786,10 +1784,9 @@ static int exynos5_usbdrd_phy_probe(struct platform_device *pdev) phy_provider = devm_of_phy_provider_register(dev, exynos5_usbdrd_phy_xlate); - if (IS_ERR(phy_provider)) { - dev_err(phy_drd->dev, "Failed to register phy provider\n"); - return PTR_ERR(phy_provider); - } + if (IS_ERR(phy_provider)) + return dev_err_probe(phy_drd->dev, PTR_ERR(phy_provider), + "Failed to register phy provider\n"); return 0; } From patchwork Fri Dec 6 16:31:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andr=C3=A9_Draszik?= X-Patchwork-Id: 13897446 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4575EE77173 for ; Fri, 6 Dec 2024 16:36:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=XyAJZWh204Jg961AaAOy2+aPUgd1uUQOUoQ33ic9q34=; b=fFO5IbuXIJD7FYwdgmV/WX8Fgx wsFb/AWij0+0WZLeNbeLALD12n+J7RYSqeq3vZCWZNHAXp7El1xw7GENGEJuqbNQXNeKFXKPuSl/i ryuPYc+QzFVx8NVlFZzAlWVqpFbtRZIfDVNUez5XrB1q9Vus9jQiQ5tDqKR02SbLEMd2gAinZ/LOM KHA2AVUHyoCQQjhdQPLLObi9ZsPI8Y5oLp9P0vLKAfaZcIStL8bR5Sims/romCuyDv5IlrfeNrMCm n0Fm9DAVs3gtw4tdDKm6dkqdVs3HH2sHiey7/CH+jEw5m8yPtubGgb9aGTWqC0E6M7eXyRiGAGfZc V9nHfzHA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tJbJR-00000002BnP-1gbC; Fri, 06 Dec 2024 16:36:17 +0000 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tJbEP-00000002AEI-3Wb2 for linux-arm-kernel@lists.infradead.org; Fri, 06 Dec 2024 16:31:08 +0000 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-434a736518eso25985435e9.1 for ; Fri, 06 Dec 2024 08:31:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1733502664; x=1734107464; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=XyAJZWh204Jg961AaAOy2+aPUgd1uUQOUoQ33ic9q34=; b=KhcHPotYrU6XRRnuI3kkqTobLkcadO8v33TKusIJzxpX3G9ULAwUb898dRxx3R+4ta cJuuFmDalBnG+PLkyCU5WZQID01YyWKLM9IfPAPjVGxy/JU0akiPeP8/ZCE4byiPZ/J3 9tpD0S6WIqSkwHy6TEtEEVh+2LYgz+rE3lKg+0nta96pcQ8CmIKKRGRthsqA8weDec5V qM6/hmhk5Z8lo663a/GWLXEN2zoBs8Km3uRucH1Vq2b/m/OHDGuTLUk1tKYJkKneECtt AwUcxgl8Ujv9JdlTBxrNFcwV4hIRuNITyjLt/6vXoUQnEdgUIM+IVO5pA6NQReEjgq2f v6YQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733502664; x=1734107464; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XyAJZWh204Jg961AaAOy2+aPUgd1uUQOUoQ33ic9q34=; b=X6sCGm4/mwJkpyqEvjSzpCwerQCFnpF5hCpsXmQebPhbtPv54Cy9WRYBtgv18zh/jG dk78n4ZchfZjMI4yIeHXdPNutPVC2TPm7SuqQiG0NHG84U6+blC3LX+HAZ0GR1tel2s4 K50idztkld/3Ep1B7kHW5LB7/3Qwe2O7zcrPXxW80F9UX3RYfNNJgEbjQTU/lnjvXYHE tYx077Y+aFXBtjms1xJOeBY/B1+8QS9aubBGWOeaB0X+i/hxwb38e91zOm1Tmp5m9lZl aLATvniApxcqd21XMX+fGgN6zG09cnrvIpRsGBChjERSExZmAit3l4vZs0gErpI3apmt FjhQ== X-Forwarded-Encrypted: i=1; AJvYcCUOOJ4fv/kX1WC8YJ71M2cfpWX80w9O2SmTnR69YnLLrxCRvYQdSCzn5WoiM7onQIWNuDPMv+vvsAMkjoORG0ax@lists.infradead.org X-Gm-Message-State: AOJu0YzvUXk2+OIGD4tuPOjl7E9G0d0KnMxwqilADRlNzCjqG6IzXZFB BJH2lbDu7NT0AU3kutdZ7zZEZhTkwaLF4P6WjMGnbzi0moMS+ECv0qOWnHnZJ90= X-Gm-Gg: ASbGncskpvX8cAjX+10/4pB6Xvsf+wwOky9dyDXUomzDET5ZOivSVO9AzlYwxCj4Iot XOz5CyDw+PgPrWMnvuuRGDhuz/rH7utcMYr9xijL/849Rfk61VgUYmlvj4c9/axpBCqkPGTKpkP UUn3E+aVRcjLVGof9ghRT3CGpiQF33tbbttSOrdcbMgJ9y/h+b+4nGAqJRcHoV3PLmWJEfYjmNa 0SCAWYAQ8h/MGZYpPUDFu8IWfEsgeq5Wd1oifA/nJ0SciXgfvEtnAuVIwzURlkFOI4iwoBjtmvj Xv9i4SvuFqofzru5YRYR7tU+Z20gsuvofA== X-Google-Smtp-Source: AGHT+IG1rlIGyO/nnPLuP1Na7RwgQmQmvS86new+NKYuNxLnewiatbb2kxtQ1hikVy0uIxEBRnzdMw== X-Received: by 2002:a05:6000:1865:b0:385:ed1e:20fe with SMTP id ffacd0b85a97d-3862b3e649amr3139459f8f.59.1733502663773; Fri, 06 Dec 2024 08:31:03 -0800 (PST) Received: from puffmais.c.googlers.com (64.227.90.34.bc.googleusercontent.com. [34.90.227.64]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aa6260e8af8sm257710266b.191.2024.12.06.08.31.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Dec 2024 08:31:03 -0800 (PST) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Fri, 06 Dec 2024 16:31:04 +0000 Subject: [PATCH v4 4/7] phy: exynos5-usbdrd: fix EDS distribution tuning (gs101) MIME-Version: 1.0 Message-Id: <20241206-gs101-phy-lanes-orientation-phy-v4-4-f5961268b149@linaro.org> References: <20241206-gs101-phy-lanes-orientation-phy-v4-0-f5961268b149@linaro.org> In-Reply-To: <20241206-gs101-phy-lanes-orientation-phy-v4-0-f5961268b149@linaro.org> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Marek Szyprowski , Sylwester Nawrocki , Alim Akhtar Cc: Peter Griffin , Tudor Ambarus , Sam Protsenko , Will McVicker , Roy Luo , kernel-team@android.com, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.13.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241206_083105_886841_D3A778B6 X-CRM114-Status: GOOD ( 13.83 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This code's intention is to configure lane0 and lane2 tunings, but for lane2 there is a typo and it ends up tuning something else. Fix the typo, as it doesn't appear to make sense to apply different tunings for lane0 vs lane2. The same typo appears to exist in the bootloader, hence we restore the original value in the typo'd registers as well. This can be removed once / if the bootloader is updated. Note that this is incorrect in the downstream driver as well - the values had been copied from there. Reviewed-by: Peter Griffin Tested-by: Peter Griffin Signed-off-by: André Draszik Tested-by: Will McVicker --- v2: * collect tags --- drivers/phy/samsung/phy-exynos5-usbdrd.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/phy/samsung/phy-exynos5-usbdrd.c b/drivers/phy/samsung/phy-exynos5-usbdrd.c index ceae4b47cece..2a724d362c2d 100644 --- a/drivers/phy/samsung/phy-exynos5-usbdrd.c +++ b/drivers/phy/samsung/phy-exynos5-usbdrd.c @@ -1510,8 +1510,11 @@ static const struct exynos5_usbdrd_phy_tuning gs101_tunes_pipe3_preinit[] = { PHY_TUNING_ENTRY_PMA(0x09e0, -1, 0x00), PHY_TUNING_ENTRY_PMA(0x09e4, -1, 0x36), PHY_TUNING_ENTRY_PMA(0x1e7c, -1, 0x06), - PHY_TUNING_ENTRY_PMA(0x1e90, -1, 0x00), - PHY_TUNING_ENTRY_PMA(0x1e94, -1, 0x36), + PHY_TUNING_ENTRY_PMA(0x19e0, -1, 0x00), + PHY_TUNING_ENTRY_PMA(0x19e4, -1, 0x36), + /* fix bootloader bug */ + PHY_TUNING_ENTRY_PMA(0x1e90, -1, 0x02), + PHY_TUNING_ENTRY_PMA(0x1e94, -1, 0x0b), /* improve LVCC */ PHY_TUNING_ENTRY_PMA(0x08f0, -1, 0x30), PHY_TUNING_ENTRY_PMA(0x18f0, -1, 0x30), From patchwork Fri Dec 6 16:31:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andr=C3=A9_Draszik?= X-Patchwork-Id: 13897448 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 54E12E77179 for ; Fri, 6 Dec 2024 16:38:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=HPP5c8pu/eBBjcmsKsNPv6zfp1yvfxbHuQGEFAVxnBk=; b=TDzgAs3rQED27mt8ylD+YB+zXX CWxxsNTpj9Zn8ysWvMMgu7n+yZSnOSFRMKmDyBwgeVdQUrOx1Y3VrqIv5C9jqsKRg7QFF4YXUpqVc CRykRdCUQEuJK7izFudDmNyxfQzY9vFI8uMbKQlkPx+8lrGxXhFTgXBKehhUGNxi0yNNyQ90IK87J P3OPniSTwDPSLE5vegP3EGqwb0KdMEUd+73X/AnYCT5b8jRe54y2GQgppPBLXREiHACah4jTjVISC oNLz6GiOS+Tew7b8V0Wyc+m4sg0CglV9uDeAQV+8/r40rCim1OKl/0VBNzSB7wn2u2foLkGapucvQ O585F4AA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tJbLR-00000002CJK-3q4B; Fri, 06 Dec 2024 16:38:21 +0000 Received: from mail-ej1-x634.google.com ([2a00:1450:4864:20::634]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tJbEQ-00000002AEn-1R7v for linux-arm-kernel@lists.infradead.org; Fri, 06 Dec 2024 16:31:09 +0000 Received: by mail-ej1-x634.google.com with SMTP id a640c23a62f3a-aa1e6ecd353so350568866b.1 for ; Fri, 06 Dec 2024 08:31:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1733502664; x=1734107464; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=HPP5c8pu/eBBjcmsKsNPv6zfp1yvfxbHuQGEFAVxnBk=; b=dAx9JobJTKXKinzerbtbmxC7z53runLMUOntSKQexWkPOTwgdOCn2KHDPX8nlmUinN bwl91tC+Ou7LIxGNwAWRQBZNbZyv2c3u1jBGyCKN/YmFsM8DkPLmNDmX8sI18KgTqr0I lNv/ZhILF0qjXU9Hb0V9za2eBoiE2i5RgR3bRSyChGj+wU0+bwOs4/2BbIn2upN3gwly Q5KZ5HQ9Y2kgozBiV4DC39+BvYD7IucN2FHOjZyNH8s45cxnxeFPTLS/hV5PTRKpuuWc L/1OKk4jYpWRv6Gfeo0Uaa7ucpYImf/Uz3Gn6r34u69c9ysmtx0tpHGCvLC08eR14Xig IAYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733502664; x=1734107464; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HPP5c8pu/eBBjcmsKsNPv6zfp1yvfxbHuQGEFAVxnBk=; b=RkbO82DkLndpmkXe6Lxdbpbzn7ACHMzaWmCca8RHVQ0KPyyDq092vlVQm9WVaqWRg1 NP7um9T0TjOcoeJoeEtaDw/VWvAV2qVqJ2GymuyZa1Dewu5NveLbVYH3c2tKMJp8ES52 6LTQF2z/z7lXnKA6EBaIxVpaYeDRIG88LfX0/71wDh9he0r1p5tx6VP8IC1D0dVQ8FxW j4kg8UJ28wYAaJAQM4mX69z7sSOiu16n6F77wKg1OxTEEK+oxRxpiS+N/dtyfu9LP5dl 41xpYNd98qSeuzfyEsjObNkjwv7UsT5wI5EHnER5sqb75GNsVY0WsihuGDj2ex517YFG IAlQ== X-Forwarded-Encrypted: i=1; AJvYcCW+LDj8pOl2k4iBytE7puf9RWWF3p9rqAfgGr/ZuB9CB6rj5qTn0CGkUfdYCO+OOU8ODflE2d8uO47vAinL+BP1@lists.infradead.org X-Gm-Message-State: AOJu0Yw17bbhaKT53e5EfnPtoXD8AjGlyBsqAInEwvnaOinXSO2cRnqz 0USzuPfu5UhAnWvADy9Dc4CN/Q1kHau6HgCvzOBEHRgxlIErdZDAQea4zSVstUc= X-Gm-Gg: ASbGnctT4AGeZ7FjR9kdONar0ej8jJw1bUJNFOh8e0j5FJh10KcUVuoAOpbnePzQbrv CAJRJj2uEJlH6tW8Gra87VS4ZYAcKNYXpzT/m4I6802D9Myzg8rgh09Wff88/td4fJFFiXm4t4e kG+vGxdcndAhu+qAGl2J1x7XNgCl3MWUupQSLgf9Qir96sseP6VwWudwxSou6FAo4+NUk6daohR YQxvFq+M1Rig9aTjBF0hK6PvTuuiiNuJejhdpBh1xKI0slHTWeX0Gljz4Qdjc4aOAciurX2ygaz acDsXB3+9jeiO2m61me072LRtX1JCYPTqQ== X-Google-Smtp-Source: AGHT+IF0uwzYhahKwpQYpBdboLh/QXBH7mKUfu774OKt/A3dvzGhzk66TWaKHzqzwzigsHn6DM6krA== X-Received: by 2002:a05:6402:1ec2:b0:5d0:cfad:f71 with SMTP id 4fb4d7f45d1cf-5d3be7215damr8856222a12.32.1733502664348; Fri, 06 Dec 2024 08:31:04 -0800 (PST) Received: from puffmais.c.googlers.com (64.227.90.34.bc.googleusercontent.com. [34.90.227.64]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aa6260e8af8sm257710266b.191.2024.12.06.08.31.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Dec 2024 08:31:03 -0800 (PST) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Fri, 06 Dec 2024 16:31:05 +0000 Subject: [PATCH v4 5/7] phy: exynos5-usbdrd: gs101: configure SS lanes based on orientation MIME-Version: 1.0 Message-Id: <20241206-gs101-phy-lanes-orientation-phy-v4-5-f5961268b149@linaro.org> References: <20241206-gs101-phy-lanes-orientation-phy-v4-0-f5961268b149@linaro.org> In-Reply-To: <20241206-gs101-phy-lanes-orientation-phy-v4-0-f5961268b149@linaro.org> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Marek Szyprowski , Sylwester Nawrocki , Alim Akhtar Cc: Peter Griffin , Tudor Ambarus , Sam Protsenko , Will McVicker , Roy Luo , kernel-team@android.com, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.13.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241206_083106_378262_E8AC6710 X-CRM114-Status: GOOD ( 22.76 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org USB SS lanes need to be configured based on the connector orientation - at most two lanes will be in use for USB (and the remaining two for alternate modes like DP). For the USB link to come up in SS, the lane configuration registers have to be programmed accordingly. While we still need a way to be notified of the actual connector orientation and then reprogram the registers accordingly (at the moment the configuration happens just once during phy_init() and never again), we can prepare the code doing the configuration to take the orientation into account. Do so. Note: the mutex is needed to synchronize this with the upcoming connector orientation callback. Reviewed-by: Peter Griffin Tested-by: Peter Griffin Signed-off-by: André Draszik Tested-by: Will McVicker --- v2: * collect tags * replace #include typec_mux.h with typec.h, and move the former into next patch (Peter) * commit message typo (Peter) --- drivers/phy/samsung/phy-exynos5-usbdrd.c | 72 ++++++++++++++++++++++---------- 1 file changed, 51 insertions(+), 21 deletions(-) diff --git a/drivers/phy/samsung/phy-exynos5-usbdrd.c b/drivers/phy/samsung/phy-exynos5-usbdrd.c index 2a724d362c2d..61e0de4b3d4b 100644 --- a/drivers/phy/samsung/phy-exynos5-usbdrd.c +++ b/drivers/phy/samsung/phy-exynos5-usbdrd.c @@ -23,6 +23,7 @@ #include #include #include +#include /* Exynos USB PHY registers */ #define EXYNOS5_FSEL_9MHZ6 0x0 @@ -209,6 +210,10 @@ #define EXYNOS9_PMA_USBDP_CMN_REG00B8 0x02e0 #define CMN_REG00B8_LANE_MUX_SEL_DP GENMASK(3, 0) +#define CMN_REG00B8_LANE_MUX_SEL_DP_LANE3 BIT(3) +#define CMN_REG00B8_LANE_MUX_SEL_DP_LANE2 BIT(2) +#define CMN_REG00B8_LANE_MUX_SEL_DP_LANE1 BIT(1) +#define CMN_REG00B8_LANE_MUX_SEL_DP_LANE0 BIT(0) #define EXYNOS9_PMA_USBDP_CMN_REG01C0 0x0700 #define CMN_REG01C0_ANA_LCPLL_LOCK_DONE BIT(7) @@ -383,11 +388,13 @@ struct exynos5_usbdrd_phy_drvdata { * @clks: clocks for register access * @core_clks: core clocks for phy (ref, pipe3, utmi+, ITP, etc. as required) * @drv_data: pointer to SoC level driver data structure + * @phy_mutex: mutex protecting phy_init/exit & TCPC callbacks * @phys: array for 'EXYNOS5_DRDPHYS_NUM' number of PHY * instances each with its 'phy' and 'phy_cfg'. * @extrefclk: frequency select settings when using 'separate * reference clocks' for SS and HS operations * @regulators: regulators for phy + * @orientation: TypeC connector orientation - normal or flipped */ struct exynos5_usbdrd_phy { struct device *dev; @@ -397,6 +404,7 @@ struct exynos5_usbdrd_phy { struct clk_bulk_data *clks; struct clk_bulk_data *core_clks; const struct exynos5_usbdrd_phy_drvdata *drv_data; + struct mutex phy_mutex; struct phy_usb_instance { struct phy *phy; u32 index; @@ -406,6 +414,8 @@ struct exynos5_usbdrd_phy { } phys[EXYNOS5_DRDPHYS_NUM]; u32 extrefclk; struct regulator_bulk_data *regulators; + + enum typec_orientation orientation; }; static inline @@ -647,22 +657,38 @@ exynos5_usbdrd_usbdp_g2_v4_pma_lane_mux_sel(struct exynos5_usbdrd_phy *phy_drd) /* lane configuration: USB on all lanes */ reg = readl(regs_base + EXYNOS9_PMA_USBDP_CMN_REG00B8); reg &= ~CMN_REG00B8_LANE_MUX_SEL_DP; - writel(reg, regs_base + EXYNOS9_PMA_USBDP_CMN_REG00B8); - /* - * FIXME: below code supports one connector orientation only. It needs - * updating once we can receive connector events. + * USB on lanes 0 & 1 in normal mode, or 2 & 3 if reversed, DP on the + * other ones. */ + reg |= FIELD_PREP(CMN_REG00B8_LANE_MUX_SEL_DP, + ((phy_drd->orientation == TYPEC_ORIENTATION_NORMAL) + ? (CMN_REG00B8_LANE_MUX_SEL_DP_LANE3 + | CMN_REG00B8_LANE_MUX_SEL_DP_LANE2) + : (CMN_REG00B8_LANE_MUX_SEL_DP_LANE1 + | CMN_REG00B8_LANE_MUX_SEL_DP_LANE0))); + writel(reg, regs_base + EXYNOS9_PMA_USBDP_CMN_REG00B8); + /* override of TX receiver detector and comparator: lane 1 */ reg = readl(regs_base + EXYNOS9_PMA_USBDP_TRSV_REG0413); - reg &= ~TRSV_REG0413_OVRD_LN1_TX_RXD_COMP_EN; - reg &= ~TRSV_REG0413_OVRD_LN1_TX_RXD_EN; + if (phy_drd->orientation == TYPEC_ORIENTATION_NORMAL) { + reg &= ~TRSV_REG0413_OVRD_LN1_TX_RXD_COMP_EN; + reg &= ~TRSV_REG0413_OVRD_LN1_TX_RXD_EN; + } else { + reg |= TRSV_REG0413_OVRD_LN1_TX_RXD_COMP_EN; + reg |= TRSV_REG0413_OVRD_LN1_TX_RXD_EN; + } writel(reg, regs_base + EXYNOS9_PMA_USBDP_TRSV_REG0413); /* lane 3 */ reg = readl(regs_base + EXYNOS9_PMA_USBDP_TRSV_REG0813); - reg |= TRSV_REG0813_OVRD_LN3_TX_RXD_COMP_EN; - reg |= TRSV_REG0813_OVRD_LN3_TX_RXD_EN; + if (phy_drd->orientation == TYPEC_ORIENTATION_NORMAL) { + reg |= TRSV_REG0813_OVRD_LN3_TX_RXD_COMP_EN; + reg |= TRSV_REG0813_OVRD_LN3_TX_RXD_EN; + } else { + reg &= ~TRSV_REG0813_OVRD_LN3_TX_RXD_COMP_EN; + reg &= ~TRSV_REG0813_OVRD_LN3_TX_RXD_EN; + } writel(reg, regs_base + EXYNOS9_PMA_USBDP_TRSV_REG0813); } @@ -700,21 +726,18 @@ exynos5_usbdrd_usbdp_g2_v4_pma_check_cdr_lock(struct exynos5_usbdrd_phy *phy_drd int err; err = readl_poll_timeout( - phy_drd->reg_pma + EXYNOS9_PMA_USBDP_TRSV_REG03C3, - reg, (reg & locked) == locked, sleep_us, timeout_us); - if (!err) - return; - - dev_err(phy_drd->dev, - "timed out waiting for CDR lock (l0): %#.8x, retrying\n", reg); - - /* based on cable orientation, this might be on the other phy port */ - err = readl_poll_timeout( - phy_drd->reg_pma + EXYNOS9_PMA_USBDP_TRSV_REG07C3, + /* lane depends on cable orientation */ + (phy_drd->reg_pma + + ((phy_drd->orientation == TYPEC_ORIENTATION_NORMAL) + ? EXYNOS9_PMA_USBDP_TRSV_REG03C3 + : EXYNOS9_PMA_USBDP_TRSV_REG07C3)), reg, (reg & locked) == locked, sleep_us, timeout_us); if (err) dev_err(phy_drd->dev, - "timed out waiting for CDR lock (l2): %#.8x\n", reg); + "timed out waiting for CDR(l%d) lock: %#.8x\n", + ((phy_drd->orientation == TYPEC_ORIENTATION_NORMAL) + ? 0 + : 2), reg); } static void exynos5_usbdrd_utmi_init(struct exynos5_usbdrd_phy *phy_drd) @@ -1184,7 +1207,8 @@ static int exynos850_usbdrd_phy_init(struct phy *phy) return ret; /* UTMI or PIPE3 specific init */ - inst->phy_cfg->phy_init(phy_drd); + scoped_guard(mutex, &phy_drd->phy_mutex) + inst->phy_cfg->phy_init(phy_drd); clk_bulk_disable_unprepare(phy_drd->drv_data->n_clks, phy_drd->clks); @@ -1203,6 +1227,8 @@ static int exynos850_usbdrd_phy_exit(struct phy *phy) if (ret) return ret; + guard(mutex)(&phy_drd->phy_mutex); + /* Set PHY clock and control HS PHY */ reg = readl(regs_base + EXYNOS850_DRD_UTMI); reg &= ~(UTMI_DP_PULLDOWN | UTMI_DM_PULLDOWN); @@ -1698,6 +1724,10 @@ static int exynos5_usbdrd_phy_probe(struct platform_device *pdev) return -EINVAL; phy_drd->drv_data = drv_data; + ret = devm_mutex_init(dev, &phy_drd->phy_mutex); + if (ret) + return ret; + if (of_property_present(dev->of_node, "reg-names")) { void __iomem *reg; From patchwork Fri Dec 6 16:31:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andr=C3=A9_Draszik?= X-Patchwork-Id: 13897447 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7C70DE77173 for ; Fri, 6 Dec 2024 16:37:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=LXCLmnvsdZndLgej1FOJpSFQm/25z8Ym6KzN52uYasw=; b=S/UgMnWtzpdnkfpFYtXEVIRo7s w/09+kB5XJZgexrpHHk+ddnMMeFAHsuRwxao7Fr4OcGsUBmdNAezlIlviiqWC1mhyh7h/bXAB9tmN ERAT90Otq+Zvii3huYnHlEtAwC/HKOy/vGWwCnF0Mq4UPbOefgFMTThcjzDcq3OsOECx7qGYjhCj3 PMhiefvIl1/UkfQIOMwoVZJrR0yTvjn2UiOkDvAdBGeHzy4CoLb2chlqxZ77SgHiWdHyzUMnIX/fx UANttgPYt/WiynRw/hAmbkguxonMZOHunwYaF+5eeVQZne/OK9hfVOHtQrgbIeLADvZHxYkO73Ud2 s68PD2YA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tJbKR-00000002C3U-09ho; Fri, 06 Dec 2024 16:37:19 +0000 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tJbEQ-00000002AF3-0o18 for linux-arm-kernel@lists.infradead.org; Fri, 06 Dec 2024 16:31:08 +0000 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-a9e44654ae3so365599066b.1 for ; Fri, 06 Dec 2024 08:31:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1733502665; x=1734107465; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=LXCLmnvsdZndLgej1FOJpSFQm/25z8Ym6KzN52uYasw=; b=McPxZ9z8Pa71EdrFKQvo/Gr9RgYXjsJqqpD9flocWiIxoSTsBqut7/pLGKKesdR4jA HH4SDCfoxGQGWALCr+RrMLkKtCxF6PHzzMZVTEVpE2T8eyTTeS5wT6t9q0JLMLoMQKB0 OjIrlXhAklEzYnHgtGZ8wd6+TCudJlqJmG4+NgOnaA1o/dYRn+fiYa4pReMzPOavsMpp JIyd9gp3VpwVhyGOX7Cgd+dKBwGOoZNlipzFSDO05u1C9q5rvIT4KybdjZ6nsvYQvjR8 mPoEMQ2ThxHhMpGcsrcXWIQoC3Uh4IW6dALI8ESyWj6f3vVNc4gebdgUI0Q/5k0Gnex7 ygTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733502665; x=1734107465; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LXCLmnvsdZndLgej1FOJpSFQm/25z8Ym6KzN52uYasw=; b=qcXF2O4i2z7YCnATRlNp+UcCmuInINOh1l0CGFdwOZUHjI7GifSAH15OP7Zvvp8op/ d81ScojOxHMjRDbONQQ3peIT2lbUffH6vjds/QLy/fSBjq3OP2XZL0R35uiRTNq/txpy z+RASXPb09l/W7R+Qn3SzHTx7oMy+24XdWsCFsBnH1g1sGW8Uie8qmM+x3sHt0DdlGrs zExU8RAQUBNNiyFR6ambX6kYft9fDNZRkMu6TPfc6rIMMyhuB4gnt+h9iw8hWDKhxziu ewC/u/HWlr/YqJYgIreLWRX4xvgbhwRLxlx4NBO0SMDg0NAUR2LCz82yXMnFvnXsOWdt KDwA== X-Forwarded-Encrypted: i=1; AJvYcCUuBTRWrUBNnvhthSe3DVp+gqWwiiT19v94hj/0OawTKqyubD0cYH94fNwGP9CWvS091/KosxmPmjdcxQK0Z9pa@lists.infradead.org X-Gm-Message-State: AOJu0Yw24xQsdDouCz7oFbEpQy8rmhLFBBaSlkDAb6Y1rhagKuTBriJM hEcXmTFpJhjpWOfGaojyU+SQ0kCqroo5ncD44iF0pjlBXakjWxBemDYFgCYNwXE= X-Gm-Gg: ASbGncu+Au1pfWONM15tQgI4WAtuI1/hHhZOWKNvk8P4BaFCq+DJxNZo1ctS7eDLHqs m5whwJcEavG+vsIq10Wf9JAGteYF4tu79guBYnphF83+VnMxiq31fdp5a45f9tOAD1m2vVO9VSq uWWgE2xUZPhuRV/A9omT4UIlwUCoC47onYM9+IctoWS2vciEY3f20OdJDDi7bX2YIcLVJVHl0rR bHXPU/yenDtq9t6mFpih0FngEQMRtyjKs6GdCG9cpLOgqE0DYqxYBCUUlqsASPexHDOucAW8+kH K1dQSNHgqaOHPyKaVmIvbTpjxmCkmLb67A== X-Google-Smtp-Source: AGHT+IE3dSSPOFbEcuaDJ4aqvtGwpINMyqS4vaGKxwRrqFEWJNjc/LOYtTgNWvcadsFJ1ENxhoDVuw== X-Received: by 2002:a17:907:6196:b0:aa4:a3be:28dd with SMTP id a640c23a62f3a-aa63a254ab9mr340005666b.55.1733502664857; Fri, 06 Dec 2024 08:31:04 -0800 (PST) Received: from puffmais.c.googlers.com (64.227.90.34.bc.googleusercontent.com. [34.90.227.64]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aa6260e8af8sm257710266b.191.2024.12.06.08.31.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Dec 2024 08:31:04 -0800 (PST) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Fri, 06 Dec 2024 16:31:06 +0000 Subject: [PATCH v4 6/7] phy: exynos5-usbdrd: subscribe to orientation notifier if required MIME-Version: 1.0 Message-Id: <20241206-gs101-phy-lanes-orientation-phy-v4-6-f5961268b149@linaro.org> References: <20241206-gs101-phy-lanes-orientation-phy-v4-0-f5961268b149@linaro.org> In-Reply-To: <20241206-gs101-phy-lanes-orientation-phy-v4-0-f5961268b149@linaro.org> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Marek Szyprowski , Sylwester Nawrocki , Alim Akhtar Cc: Peter Griffin , Tudor Ambarus , Sam Protsenko , Will McVicker , Roy Luo , kernel-team@android.com, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.13.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241206_083106_240238_C4F39C0F X-CRM114-Status: GOOD ( 21.83 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org gs101's SS phy needs to be configured differently based on the connector orientation, as the SS link can only be established if the mux is configured correctly. The code to handle programming of the mux is in place already, this commit now adds the missing pieces to subscribe to the Type-C orientation switch event. Note that for this all to work we rely on the USB controller re-initialising us. It should invoke our .exit() upon cable unplug, and during cable plug we'll receive the orientation event after which we expect our .init() to be called. Above reinitialisation happens if the DWC3 controller can enter runtime suspend automatically. For the DWC3 driver, this is an opt-in: echo auto > /sys/devices/.../11110000.usb/power/control Once done, things work as long as the UDC is not bound as otherwise it stays busy because it doesn't cancel / stop outstanding TRBs. For now we have to manually unbind the UDC in that case: echo "" > sys/kernel/config/usb_gadget/.../UDC Note that if the orientation-switch property is missing from the DT, the code will behave as before this commit (meaning for gs101 it will work in SS mode in one orientation only). Other platforms are not affected either way. Signed-off-by: André Draszik Reviewed-by: Peter Griffin Tested-by: Peter Griffin Tested-by: Will McVicker --- v3: * drop init to -1 of phy_drd->orientation (Vinod) * avoid #ifdef and switch to normal conditional IS_ENABLED() for CONFIG_TYPEC v2: * move #include typec_mux.h from parent patch into this one (Peter) --- drivers/phy/samsung/Kconfig | 1 + drivers/phy/samsung/phy-exynos5-usbdrd.c | 56 ++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/drivers/phy/samsung/Kconfig b/drivers/phy/samsung/Kconfig index f10afa3d7ff5..fc7bd1088576 100644 --- a/drivers/phy/samsung/Kconfig +++ b/drivers/phy/samsung/Kconfig @@ -80,6 +80,7 @@ config PHY_EXYNOS5_USBDRD tristate "Exynos5 SoC series USB DRD PHY driver" depends on (ARCH_EXYNOS && OF) || COMPILE_TEST depends on HAS_IOMEM + depends on TYPEC || (TYPEC=n && COMPILE_TEST) depends on USB_DWC3_EXYNOS select GENERIC_PHY select MFD_SYSCON diff --git a/drivers/phy/samsung/phy-exynos5-usbdrd.c b/drivers/phy/samsung/phy-exynos5-usbdrd.c index 61e0de4b3d4b..8fc15847cfd8 100644 --- a/drivers/phy/samsung/phy-exynos5-usbdrd.c +++ b/drivers/phy/samsung/phy-exynos5-usbdrd.c @@ -24,6 +24,7 @@ #include #include #include +#include /* Exynos USB PHY registers */ #define EXYNOS5_FSEL_9MHZ6 0x0 @@ -394,6 +395,7 @@ struct exynos5_usbdrd_phy_drvdata { * @extrefclk: frequency select settings when using 'separate * reference clocks' for SS and HS operations * @regulators: regulators for phy + * @sw: TypeC orientation switch handle * @orientation: TypeC connector orientation - normal or flipped */ struct exynos5_usbdrd_phy { @@ -415,6 +417,7 @@ struct exynos5_usbdrd_phy { u32 extrefclk; struct regulator_bulk_data *regulators; + struct typec_switch_dev *sw; enum typec_orientation orientation; }; @@ -1397,6 +1400,55 @@ static int exynos5_usbdrd_phy_clk_handle(struct exynos5_usbdrd_phy *phy_drd) return 0; } +static int exynos5_usbdrd_orien_sw_set(struct typec_switch_dev *sw, + enum typec_orientation orientation) +{ + struct exynos5_usbdrd_phy *phy_drd = typec_switch_get_drvdata(sw); + + scoped_guard(mutex, &phy_drd->phy_mutex) + phy_drd->orientation = orientation; + + return 0; +} + +static void exynos5_usbdrd_orien_switch_unregister(void *data) +{ + struct exynos5_usbdrd_phy *phy_drd = data; + + typec_switch_unregister(phy_drd->sw); +} + +static int exynos5_usbdrd_setup_notifiers(struct exynos5_usbdrd_phy *phy_drd) +{ + int ret; + + if (!IS_ENABLED(CONFIG_TYPEC)) + return 0; + + if (device_property_present(phy_drd->dev, "orientation-switch")) { + struct typec_switch_desc sw_desc = { }; + + sw_desc.drvdata = phy_drd; + sw_desc.fwnode = dev_fwnode(phy_drd->dev); + sw_desc.set = exynos5_usbdrd_orien_sw_set; + + phy_drd->sw = typec_switch_register(phy_drd->dev, &sw_desc); + if (IS_ERR(phy_drd->sw)) + return dev_err_probe(phy_drd->dev, + PTR_ERR(phy_drd->sw), + "Failed to register TypeC orientation switch\n"); + + ret = devm_add_action_or_reset(phy_drd->dev, + exynos5_usbdrd_orien_switch_unregister, + phy_drd); + if (ret) + return dev_err_probe(phy_drd->dev, ret, + "Failed to register TypeC orientation devm action\n"); + } + + return 0; +} + static const struct exynos5_usbdrd_phy_config phy_cfg_exynos5[] = { { .id = EXYNOS5_DRDPHY_UTMI, @@ -1786,6 +1838,10 @@ static int exynos5_usbdrd_phy_probe(struct platform_device *pdev) if (ret) return dev_err_probe(dev, ret, "failed to get regulators\n"); + ret = exynos5_usbdrd_setup_notifiers(phy_drd); + if (ret) + return ret; + dev_vdbg(dev, "Creating usbdrd_phy phy\n"); for (i = 0; i < EXYNOS5_DRDPHYS_NUM; i++) { From patchwork Fri Dec 6 16:31:07 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andr=C3=A9_Draszik?= X-Patchwork-Id: 13897450 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 55E38E77173 for ; Fri, 6 Dec 2024 16:39:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=uFUL3kCwx3cUbzg7B5UVd/jZ4AQMlp0js1yIPxGumCU=; b=wIYcirNHsT867Sn9RUP7ZLI+0Y 2xb1f4Gq7YOkxGAV0qZGVdfdmIc1aglLEuBQg3iuudqNy0L+7C+NIpjZPvd0rx8C+VyQhdQq8zedv I4G9PSmRzcHtd7sdVxIx+OhtjCv0MLU7dVBQvgxTyxNs1llomr4aolSWSvcosH1hNNiB4mZLVE//n JKbBQ5pOktNBuGlkj2fCM8RxB1NymsMFO0hwWmh1DcEj+eXG0JSDErzO0aOuzn48v8A0xweLhUwY2 BV+rbm2b/1QI2sag0+qeVlnjq/P/jFNE9s3Ncs9K7jU28DKmF4bKIcmxbmVpjbwlAtPGSqMxjAZX1 DB3x2qDQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tJbMR-00000002CYj-0ZQ5; Fri, 06 Dec 2024 16:39:23 +0000 Received: from mail-ej1-x632.google.com ([2a00:1450:4864:20::632]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tJbER-00000002AG7-1aZS for linux-arm-kernel@lists.infradead.org; Fri, 06 Dec 2024 16:31:09 +0000 Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-aa642e45241so115210166b.1 for ; Fri, 06 Dec 2024 08:31:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1733502665; x=1734107465; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=uFUL3kCwx3cUbzg7B5UVd/jZ4AQMlp0js1yIPxGumCU=; b=U1RMAdwDHmwwJ/9S4iAJ+o3H7Q8+HWcWVhzfwXmQH7fLJrl6Ju+KdIULNhQw9jCnXf QGy2vOTod93SGUxi2uyDXJR+hf3iijB52xzt7d5kzPuGHjPL0iqYUjyOuxPnC1h6TdBV ttE56Z197btBsm3o3/ijmt0Gl8q3l49JKqdhvQ/3hQTuGVxDx2fDGInUc+AhYO1FDF4X mQhzuHG8IgocPVD7s2jgd325ax2cFP3t7WbF70fTXQt6O+RknCX6cFShd3yHuJU1oEwf qcWzb0X5rYjNKNuIKv2KqP4Jp38tJGiJ0ML3x6cQ/Isf/kPTbLhTSaDT4Fp5JVl6Ymoy lL4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733502665; x=1734107465; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uFUL3kCwx3cUbzg7B5UVd/jZ4AQMlp0js1yIPxGumCU=; b=EP5e+Jh6ek8FQUQUK1FfAcOgSP/iIvVtFRpPYERlsz64t6jJ2yVEi2nmQl3bh8l1Cc tlenB3ws2zef4GCGASwmMmciXwVFgqikKZwJKQ+Cb12lrhc2hB8TFwPPRm2qAyIOIsAU yD5bLZ1prGW4leptRaVmwXzwBgYCdZE3Ytiro4EI4L/+ua4ic/ks+PQlVj1x8vS3zXa2 GdfqRRMZdmSXEvR8IhMo8sIaAdTeG0a2MMGPpua+XDwQD97Eshpk9rCwI1dOpIlzwc0P J52LxtKkJhPS2Zm4RlXKWrsqUCfEBPHrVF1OxvWeQLO8jUiV0+vUJgP8V8a7zla8iIlh cM/w== X-Forwarded-Encrypted: i=1; AJvYcCUUafoEUczOXh42sQyiNSJkzeYPQRUfqm8es2BLd8zlV6y9pWMXRzkdTb7kFs/wWjHxxX+D0Wf8FFeJjN+EzS1b@lists.infradead.org X-Gm-Message-State: AOJu0YyBgbCBt8SNaO/PXk/n5fNqeZLe8jSfD449jUTKR8b2nrhk9UUo nSneQE4riG55IFkUljNbr5BcoUuSYsiA9tNRgrK/yaploKLvlK3nsgVXs4GmPXc= X-Gm-Gg: ASbGncvpwHiY4p6h+UYImdUCX0g8SjJr9cQQLLM8LdSUCGs7ncNq3q0C/B2x1/wUt+G faiz0V/8h9zibiKbHWJdaiuMuXCruPUtzlXBLG6WYU3KPxqGktfV6F/lBuaaUfa/mKq5BLdhLgq 2gsohRZawgQVsqhoQuCNEZYQCPvvBjG6Fqv/oN6/azcGi0zabUywFllRsGnsWLSFbXpDnFBPlgS qVvx6D/fO5K1PAGSoslFRTv3GI2jTB+BG7iBDQFiMY+3L/HLtYgNpqELxqvC9g7l/GhObim1CuX Tm+nW4qj9FWyeeY1cJZXMYmPAutSH+wygA== X-Google-Smtp-Source: AGHT+IFdGgwrC3n71nQi/9MjgKXvQ3xt8s29XoT1ICJHQ14fSF1EZzWFJtu/VD99oVNhBiVQ1DgX2Q== X-Received: by 2002:a17:906:310d:b0:aa6:2ff8:d62d with SMTP id a640c23a62f3a-aa63a2419ccmr313287766b.45.1733502665369; Fri, 06 Dec 2024 08:31:05 -0800 (PST) Received: from puffmais.c.googlers.com (64.227.90.34.bc.googleusercontent.com. [34.90.227.64]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aa6260e8af8sm257710266b.191.2024.12.06.08.31.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Dec 2024 08:31:05 -0800 (PST) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Fri, 06 Dec 2024 16:31:07 +0000 Subject: [PATCH v4 7/7] phy: exynos5-usbdrd: allow DWC3 runtime suspend with UDC bound (E850+) MIME-Version: 1.0 Message-Id: <20241206-gs101-phy-lanes-orientation-phy-v4-7-f5961268b149@linaro.org> References: <20241206-gs101-phy-lanes-orientation-phy-v4-0-f5961268b149@linaro.org> In-Reply-To: <20241206-gs101-phy-lanes-orientation-phy-v4-0-f5961268b149@linaro.org> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Marek Szyprowski , Sylwester Nawrocki , Alim Akhtar Cc: Peter Griffin , Tudor Ambarus , Sam Protsenko , Will McVicker , Roy Luo , kernel-team@android.com, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.13.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241206_083107_434771_3EC0EA8E X-CRM114-Status: GOOD ( 14.85 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org To make USB runtime suspend work when a UDC has been bound, the phy needs to inform the USBDRD controller (DWC3) that Vbus and bvalid are gone, so that it can in turn raise the respective gadget interrupt with event == DWC3_DEVICE_EVENT_DISCONNECT, which will cause the USB stack to clean up, allowing DWC3 to enter runtime suspend. On e850 and gs101 this isn't working, as the respective signals are not directly connected, and instead this driver uses override bits in the PHY IP to set those signals. It currently forcefully sets them to 'on', so the above mentioned interrupt will not be raised, preventing runtime suspend. To detect that state, update this driver to act on the TCPC's orientation signal - when orientation == NONE, Vbus is gone and we can clear the respective bits. Similarly, for other orientation values we re-enable them. This makes runtime suspend work on platforms with a TCPC (like Pixel6), while keeping compatibility with platforms without (e850-96). With runtime suspend working, USB-C cable orientation detection now also fully works on such platforms, and the link comes up as Superspeed as expected irrespective of the cable orientation and whether UDC / gadget are configured and active. Signed-off-by: André Draszik Tested-by: Will McVicker --- v3: * update exynos5_usbdrd_orien_sw_set() to not test against previous orientation --- drivers/phy/samsung/phy-exynos5-usbdrd.c | 50 +++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/drivers/phy/samsung/phy-exynos5-usbdrd.c b/drivers/phy/samsung/phy-exynos5-usbdrd.c index 8fc15847cfd8..bac1dc927b26 100644 --- a/drivers/phy/samsung/phy-exynos5-usbdrd.c +++ b/drivers/phy/samsung/phy-exynos5-usbdrd.c @@ -1137,13 +1137,15 @@ static void exynos850_usbdrd_utmi_init(struct exynos5_usbdrd_phy *phy_drd) reg |= LINKCTRL_BUS_FILTER_BYPASS(0xf); writel(reg, regs_base + EXYNOS850_DRD_LINKCTRL); - reg = readl(regs_base + EXYNOS850_DRD_UTMI); - reg |= UTMI_FORCE_BVALID | UTMI_FORCE_VBUSVALID; - writel(reg, regs_base + EXYNOS850_DRD_UTMI); - - reg = readl(regs_base + EXYNOS850_DRD_HSP); - reg |= HSP_VBUSVLDEXT | HSP_VBUSVLDEXTSEL; - writel(reg, regs_base + EXYNOS850_DRD_HSP); + if (!phy_drd->sw) { + reg = readl(regs_base + EXYNOS850_DRD_UTMI); + reg |= UTMI_FORCE_BVALID | UTMI_FORCE_VBUSVALID; + writel(reg, regs_base + EXYNOS850_DRD_UTMI); + + reg = readl(regs_base + EXYNOS850_DRD_HSP); + reg |= HSP_VBUSVLDEXT | HSP_VBUSVLDEXTSEL; + writel(reg, regs_base + EXYNOS850_DRD_HSP); + } reg = readl(regs_base + EXYNOS850_DRD_SSPPLLCTL); reg &= ~SSPPLLCTL_FSEL; @@ -1404,9 +1406,41 @@ static int exynos5_usbdrd_orien_sw_set(struct typec_switch_dev *sw, enum typec_orientation orientation) { struct exynos5_usbdrd_phy *phy_drd = typec_switch_get_drvdata(sw); + int ret; + + ret = clk_bulk_prepare_enable(phy_drd->drv_data->n_clks, phy_drd->clks); + if (ret) { + dev_err(phy_drd->dev, "Failed to enable PHY clocks(s)\n"); + return ret; + } + + scoped_guard(mutex, &phy_drd->phy_mutex) { + void __iomem * const regs_base = phy_drd->reg_phy; + unsigned int reg; + + if (orientation == TYPEC_ORIENTATION_NONE) { + reg = readl(regs_base + EXYNOS850_DRD_UTMI); + reg &= ~(UTMI_FORCE_VBUSVALID | UTMI_FORCE_BVALID); + writel(reg, regs_base + EXYNOS850_DRD_UTMI); + + reg = readl(regs_base + EXYNOS850_DRD_HSP); + reg |= HSP_VBUSVLDEXTSEL; + reg &= ~HSP_VBUSVLDEXT; + writel(reg, regs_base + EXYNOS850_DRD_HSP); + } else { + reg = readl(regs_base + EXYNOS850_DRD_UTMI); + reg |= UTMI_FORCE_VBUSVALID | UTMI_FORCE_BVALID; + writel(reg, regs_base + EXYNOS850_DRD_UTMI); + + reg = readl(regs_base + EXYNOS850_DRD_HSP); + reg |= HSP_VBUSVLDEXTSEL | HSP_VBUSVLDEXT; + writel(reg, regs_base + EXYNOS850_DRD_HSP); + } - scoped_guard(mutex, &phy_drd->phy_mutex) phy_drd->orientation = orientation; + } + + clk_bulk_disable(phy_drd->drv_data->n_clks, phy_drd->clks); return 0; }