From nobody Fri Dec 19 07:02:22 2025 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 00E1A1F37A7 for ; Fri, 6 Dec 2024 16:31:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733502665; cv=none; b=rCy/64p3+FDTdNNPNiZF5/hIl9jqWvqwH0vyjY8zvhy1F0+/+kqTbRO/x1xYABMKLSonbE1xYOPZLrtdj5rnkJVG9rk5AY5ILTuDjKnNiDrXJhPwDSY66OEp8fFvSMe9fWSzBvS2TRAA052DYmgQHKPSQix722tt8IVvRr5Cw0Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733502665; c=relaxed/simple; bh=4L1d1fZ/CUtuGNTGhkvnq4cl0ag43qy7j+Nalp/6Vps=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kLtlmrdmOxS/XTeKlhI2AyG3v61qUHTf4S06jErsKITgI/646lB9RgbArwCm2mXQc4sU7U6PKRMQq7T4AukGTv34zrEqgw4gacIBs3ax7kGhnT5bVkFccZG/MgI3K4R3Cqb8gfQT3CygjhqhQMR9dXxyUwpzwVIrqH3EPFbDXik= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=AQVAlChR; arc=none smtp.client-ip=209.85.218.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="AQVAlChR" Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-aa63dbda904so178167166b.3 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=vger.kernel.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=AQVAlChRgXD256vithgfZdOWYax8BX5V6ttuMFd0svMxfupIL8hUbsKe5pH/bF/PTN GmDWI2tF3vIO2KUnw5zi+EJKApBEEH3XxGd1cZgpyLsrqcAAtYLyq36ai9JscBfTv9KD WxJ370dL4+vJ4jG2p1FGLVYLBShcxmiYA64OGsVII6pclhczSaerrSMUOAofSh7MVSUf 1wtQ5NCXYkoox5e/yoiK8/ux6koy+ZsImkKFwlxej9GuO9tDYSagytJ1gCsBlfa96rlG 3BhMOfBun0qYjCbYoUpycaO8WDFs/UEKF6BJMOLEAkayl4JrJO2N6Cua+G4Rcv6EAfUy xBwg== 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=aJtDfccO70q4gLBeZDucZQdKHPPXPDd526VcHkwYyb1eVQEI4x1DYh691hEXOJ5BBa i8fym+ELitUvJ3zUJMTV3pHGdRz5RVbAxHs8Ndzr/Po9fw1aAtDksVcpjVzOLFmzKyn+ Hq/ZvoADtlr3BF6jPZNKPK9xycfnbfzME/UsptAN2vj5oOoGWlZr+yEQbUDec5jVv/VA gzi4M35cSUi/2le2t7yNObMGN93a6BBqLgWoHlzuyvfCGn5ChSXV5I4Kf3YPniYzeN4I EEElK8xBVXe9IKWY8fL/qIRY0+oEia20gsBG0ErYXkf+qT40sgoLf9bE+KywGvb6EYUG L6HQ== X-Forwarded-Encrypted: i=1; AJvYcCVOfw2sCotHVgVHzKJyiq6siQsNRFIJomHyB8U6cp3HMyrS0wuoWBVgIcSeXz5UH8B4G+BIvjtobdl39P4=@vger.kernel.org X-Gm-Message-State: AOJu0YxqmOQttkIOh2fuMFTxgM9oZ9ENNZzzMT6WA9jbk+4WB7LLb9ET 9uWvOv6l7u11Fb9d9yF1leKbwcZAb1pGCyzMsr/xmPV/k6lf/nCKHpTwUIFhIgY= X-Gm-Gg: ASbGnctUXjDhWT4o/+DtpmQ+cdzic4Q4OE5B9ZrOgR/2SnJegb4XMkncwulEaLa2ZK6 pavrRcbsNOdzUo76L8hKxiHzwWmi7zUNwLAgxhsH5RLyGQvB+Vmt5mfhDFSAriwYa9wimGjq3nB +gWAZ1rHuAo9wBFzK73HmLO5FCY48XOfusmDDPczmjE0hJ1/3BYW4wFw+wJDIWGUQKC9m5Ldh06 2T/77kMT5qzPMNyCQudWlL5/ipQoBkujCwYOcwJKI1uxAkoqj0PLUu5xwFGnAjbYZH0khKoti2Q SUnWa/NPcWA71H32OsiY1oLnV2abJw9s+w== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 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=C3=A9 Draszik Tested-by: Will McVicker --- 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.yam= l 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: =20 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. =20 @@ -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 =20 @@ -174,12 +186,15 @@ allOf: clocks: minItems: 2 maxItems: 2 + clock-names: items: - const: phy - const: ref + reg: maxItems: 1 + reg-names: maxItems: 1 =20 --=20 2.47.0.338.g60cca15819-goog From nobody Fri Dec 19 07:02:22 2025 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8BC361F37B4 for ; Fri, 6 Dec 2024 16:31:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733502666; cv=none; b=SFW4GoZZBOx4gBdrW6KsCgwN7tQclgPBPsMSYuXO3k/v0GPwx1z8Vl90Q/VruEFb9YxDwi0yNjhk59E+uBpGFtQA55D0DZT1F4fEguMOKb1RQAr1d2i19wYYcxbFH1+VpFRdaZHqf1J670muOHxp/4L3OJh2F0lLLj0rsd0uqCQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733502666; c=relaxed/simple; bh=Jp2ObEzqJQpaKbhTocAaM82TdjXKoBGT2+8/pE/oY9Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dXcOwPkDAtN66QyOkjvRWUaDhgMmoxDuI1+g3r7lpW/fElYzsV8gTqQyAK6Yno9e7kNDGSftIIUWQS9TFWI9PExZ0ICd1TbDYN9ZFQDwX1Tjt1uhqbPS9C+8/t6FMvPUM7peplzxP3vvo4CTz7qFBQzroe9TzM4zP4lrCSA34hA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=LZ5VoBHc; arc=none smtp.client-ip=209.85.218.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="LZ5VoBHc" Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-aa6332dde13so61676566b.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=vger.kernel.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=LZ5VoBHcwLIPmXLWoqvoD5UnDX1YqYkRUe6j4i5j9Vo2vHFJ51MTseoZJAhbq/o6SF vYX2xeL7JAb1/dr5Atg73Paze+6cFyGPFCydRr6M8lwcxYu7qK0+Xc02G6WmPYbJI+Jm 2COGbCLvSKXBOMKiPYhWQIRre3xyj/D8FLI86Skth7Y6qCWcMMQlZuv364xFayTf3rfm TOvSq7cSdAEeZjyFvLMdtJZXpqpJJIukrfBlGlQ7/PnOb/n42st6bAEf7t1IAAO7qOhA M+iMJ99/GkOG1bO0dT1vaNBEFAE0JP+dZWMLOwWWjvRNIQWU3Cw98EZPI3NycjwJU6IO 1TLQ== 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=GCecPrvsKPzgShaSTmR2Udls11nvCWc4X5rOKhAhaN8/clssgqw0Lh4m2d42pd2D4j 9rIVHswo6mQ2SbRLkoMJMpq+SM/fMWdw2KgUR0xThdaZz+i70dMAsVQpEYiILBh/09BP cqMV/9fGLldLJlgPURJG/OfvkINrOGZYz6CDuBgIcVVuyPPjiff6IZgNH87vIHWsydlI 7FJIjd1NJGvku7s1p4iCmigA09sRlGch7L9GvGadgfyhP2eYjjrcbteXKiowNS3RZcB7 mhpG8kuPzGpvTc94yJkWXO3NpEhpDOaoQse24qb1qmmxurHx99jMPeJP9CkDHFZw53QJ uUyQ== X-Forwarded-Encrypted: i=1; AJvYcCWEXyS/2WXZS7J2adrCzs2mAdPfc0Dc7JkBN8WsaQRF4hSHZ2YrL/oAgXEoAw9nUX4ktwnAoT3jT7mtu3U=@vger.kernel.org X-Gm-Message-State: AOJu0YzmmAALWTVaXE0yEISg5Z0EbK3IbP3Z7TnvzzbqMDvLkguP7rjS CplYquNABry3bzXD/I7CyIb0uFIvphx/jg1nbnCCIJfj/FmOZT5AUuLWp1GX2m4= X-Gm-Gg: ASbGncvanpQg5vCdKIxAL6IUzfFudsXhxUk/VgkLoDL5d7dskCHvuqZHE+RY9u53kNL xwEg1ebbVlDjnYwrxhhRTKb8eh7Ag3BIqCRy9p3TdgQ2g9khrjxDDLYDeSOepm5/5mWdq+ANP8f FhIcCq42ED1pgpD9yWi5gxzaa0Pnr+m+6HsL8KR6t/y0BY8chdKcpnyMFG0jqVWAjbhuFNN8zj+ DA/1ZJcm8NMVwjewmTpCQNniDKM3dj3pojpDR1rkxCm7Wn2+ewH17NtyvkURs/G4nJun68dFz1f 9NRzLqmpxEo9XrV6Ha9jzK1elqbUmrpkFg== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 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=C3=A9 Draszik Reviewed-by: Rob Herring (Arm) Tested-by: Will McVicker --- 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.yam= l 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: =20 required: - reg-names + - orientation-switch + - port - pll-supply - dvdd-usb20-supply - vddh-usb20-supply @@ -198,7 +202,7 @@ allOf: reg-names: maxItems: 1 =20 -additionalProperties: false +unevaluatedProperties: false =20 examples: - | --=20 2.47.0.338.g60cca15819-goog From nobody Fri Dec 19 07:02:22 2025 Received: from mail-lf1-f47.google.com (mail-lf1-f47.google.com [209.85.167.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 286E31F37BD for ; Fri, 6 Dec 2024 16:31:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733502667; cv=none; b=Byx0JhG0byKIvi4GM38X6Ort+dqm9V/NHXbcZKkdQkZmV6ACZVmsmvbuM+yXdR/gf/QsCuYQ2ngB+AdJj5TS+aCC7QvltFg3XqCkX1a/3jDfTlBYS8J38B/M77S71bsMLbdb4um/1ruWhg1roSaaguzZRypGBNqHaysFEK2xya8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733502667; c=relaxed/simple; bh=fD1l+jNkgnfWuXI1bHIvbywED4CP+GtggJNFPuFqDcw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qblO0FySQ7kWadXMEn087+ThN/zNdO6Bnju5Vu4W2EFKsWd4GL9sRbh+4WYFhKUXBIA/9QqHRAK7Xk34eeoLOvwnBrwfn5XbtcBDFyfIDn15kGT6bazR5gpMMA93U/VI1+JUijuNqoSwmJOChsa1tZXx2gdc3v/ldaqBVNOv41M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=US3SiTNt; arc=none smtp.client-ip=209.85.167.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="US3SiTNt" Received: by mail-lf1-f47.google.com with SMTP id 2adb3069b0e04-53e274f149fso2617284e87.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=vger.kernel.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=US3SiTNtbX3OZZXbKxTpAR6pVq2vY3Y3f/v2VOzNiuH21jEJ8ZvzyfJfjZr5WpWpr2 wvzur5rqAqHoF/DXrbjVnI+xIAxWgahYRLsc3XiOkqlZcapSlq5jxsm0uJN/9RIT4w3I mCq6FqtJ49BbNjMt6gZA3rSRgc+dky0WwS62FX1hIVifGSUd0pXUnmvtEWDH+cY4Sbjl Exxih7Sx9k1FBKEwU8W/5/ikVZ3tcSlTeXA7mhJhurnffbF5Er9ssiNzVEhAzDOY02KQ 9PMpuRpH7r3veh0YKZpYN+ZQtfkbIETaDYe9LSapc54yyjtV6wRx84DktfT/nzfzV4++ z6HQ== 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=ssYOl1wC8TBN0Qw5uH15tNAcioYnmgYGeBcHFnXHEjVqR3qg4UNl/LG0zxlMABQplp 9b2RQofFxlTQw/We6/MspzdQLdSX9Q+aNjqftDT3vKuaPaI1T/DvF96Phm2lzyZzBCEz 7n2E7/zjXACVNry3xF3mu+CLwwP7QkJqnbjjXU4tMT+VTRp0mRbk0Rl5RJWXYNucYwWz GIMKHXIjl3FndAwOJmAqX6ZT0mA2W++JsZqobKlDQPc/VmSCshB3Mns0DWI7tmIzjcs9 huHPK+ZOyeLzCtBDHlrspFfYwS8nhXbw36LogIf7Q9FnAYVgzQCoofcl9bDgIySbNDA9 vJYQ== X-Forwarded-Encrypted: i=1; AJvYcCXA4vSa+fw+Vf2iq0jaA2Deo4rrUpOAdGamWOVYJQNOzITVZTgt9X560fhXx8+6JKH77VpA4O5cG7AjjAY=@vger.kernel.org X-Gm-Message-State: AOJu0YyK8wLvO/ZJcnHEuHozuGNCUc3oV6qEnu8BAZXypRHNI1sXZtN7 lYJF64h5X/zGdnymHZMaFipSBgA2gy4OG2ooUT1LWfO7rGODvlQCUpCPUCEpb3Y= X-Gm-Gg: ASbGnctu/dnb10q01gAYjNHnRkukRO6d6R/s5N11rp8lrZqx/0mFJHd2/FSGo4nNqSv BN2X2FC5LL/J1bZ63mt4mJo2AEFfcVZGRCdIY5V4UqYrQX8kP6NTR100VrrmkAfmAfYrbs4Bgl+ 6stZi1iEziI+8QYTVHyREFJbNUJRy/ypfk1CRoY2lsqwlzRdPCyUK9rIMOnNW90Tfen9VB+RKFA hrFIA6D9HVrA3ZbtVcxjFKbCPbp0cIrY4YVwgLbT3cNuMS0yDy8JT/96yYxsrsN+H+OrTy5Bhob b9zRCBG+MhJptLAdnMbUSvNBy6hkJTTa1g== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 dev_err_probe() exists to simplify code. Reviewed-by: Krzysztof Kozlowski Reviewed-by: Peter Griffin Signed-off-by: Andr=C3=A9 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) =20 reg_pmu =3D 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"); =20 /* * 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 =3D 0; i < EXYNOS5_DRDPHYS_NUM; i++) { struct phy *phy =3D devm_phy_create(dev, NULL, drv_data->phy_ops); =20 - 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"); =20 phy_drd->phys[i].phy =3D phy; phy_drd->phys[i].index =3D i; @@ -1786,10 +1784,9 @@ static int exynos5_usbdrd_phy_probe(struct platform_= device *pdev) =20 phy_provider =3D 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"); =20 return 0; } --=20 2.47.0.338.g60cca15819-goog From nobody Fri Dec 19 07:02:22 2025 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A36411F37C9 for ; Fri, 6 Dec 2024 16:31:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733502667; cv=none; b=cEr+/A8ROo2n/+Xhb2SsvzrIuwnPdvZBcN7kKMu3WtYz51FVnJR7QTuTzi4Q8MCgk4uoUev9Lv3rnflAmfFbt6jtT1+SGH/TCVuENMtSc6UFWLpgDZr+V6AbkmL58ZGJmUSitVHHWF1+0fEmIi/XVECm2PED54S7jBFpnjZMkec= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733502667; c=relaxed/simple; bh=kjL8CHF2jTNzGFGAJHP0ju9sbOFLoVxrk7RH0N2gvDA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hJ9fLVYPkIum9X5v4rvPJcLr1BjVkxgPOAWHBbGVHxp8HKlSC8of5fB/3xR/1Y/m0C8tM7KcBDJQF+Ve54CnkX7S2ccv9WPOQzRhrsPGJBl6RZxsnIbN54KFy0jW6EIDC3yO2JuaNIfJ5g2uUIm9CrGDH5R4D28JzDSX4WFv+V8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=YQHoedMm; arc=none smtp.client-ip=209.85.221.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="YQHoedMm" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-385e2880606so1961100f8f.3 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=vger.kernel.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=YQHoedMmgvRiuh2hSU3mf7YXj1WMAJ4acMQ/kCoRrXuIjpDZ1d/yQozbXOM7w56GXj QFcbDpuy6ijuBq0RVFwIlXHE51sw1muHV+KU5UxYDQodnLizsSxC6k0U/wTj5eN36KXf sQvAkGE8st9KDbwATW0vmaTZKpK7NNxCvyarf+8/LwKo1VA6+1cKd8LjP+x6wfOTWn7C dLoTf1eeOCs7WhAh/GTG+lz9yjaS2eEfNBKAXgrf9fc1GYDKH77Gr7kBkRPR0Yw9LWie GYVzfxdSVMfTr5/gdmmflnCCMSVkQdBJHYfyx/qztREv3n8cMHuFpVlmYi0SZ1zk4U3D 2F7Q== 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=Odfl+5mdndyNkA1MVRXlG3BIo8puWq9D78fHJfWHF7Z6a+VcGwq0DzSijoiyM5/3nA l4VPDuSJqAvfBdKotpOiYScMF0V5qjOw7eMM4/dOvPmTMnYbFMa/E47HHVME11fGaVG9 yZfY/VRF9rV/2MLFh7x6hoHGmPxjOwdaYm77LjzaqT0Oarc7hTmnWlpEl8+7fr4nykYD qc1DX9XWLIs1pnDSPg8i9j1PrOw2EIG2o49JDB1SwoUcGlkHr63xTb3rpBswM8TkhCdd nIBV4HgiiCQHm+fvbchbrHvdfcKnmXk4WTOy77dRF/39TLtOUhG/ef78xJNngQg5Woij 0VAg== X-Forwarded-Encrypted: i=1; AJvYcCUxuVBR6Hda1xlYWspxddoIZooRU6apJzR2UMOv/0iJU/mVK0cLcatE5n2czpSO+xqqL2EBIVVCmGc2J+k=@vger.kernel.org X-Gm-Message-State: AOJu0YwuSxJQxUqJo2wDGRCbAl/yjfJyHzwHQ+ukbZ+xINd9r7AZQ169 9sFc34SjeD4OHR66Fs2N0aCHDzDII0/rXS0tRXFCXG5aihlkuWoLXwhPfXvX/2w= X-Gm-Gg: ASbGncu1OTCovY50HqfOICZif2S7Bje8iY/RNlQ5iAynIJhpoKcgHlPyK/LcAXQbS3q NL2CxljtNCHpSQYRASrOzaAu96w1xu+FWFdhXznTb7Hy4yqolnxztTIYV1PT/PyWTRDmU+P1jn+ UCF6ZN75rTAEtH1vDp4c6P3HiHra93xL1Z9seEyyC6HP3oHmM6/leAMfRV1+Vv4phPw3TbO9imm UQ+0wRQhzyr/mb0oK+pTr8jqXe2X3fV4Z0WspkuPfTC0HEP0lOtNHJVJe6Kl57LuochkcCtESOS T0NMGoHyjfV3U3cDAAmf6kc6RrBHXZUMNw== 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) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 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=C3=A9 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[] =3D { 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), --=20 2.47.0.338.g60cca15819-goog From nobody Fri Dec 19 07:02:22 2025 Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E56FE1F37D0 for ; Fri, 6 Dec 2024 16:31:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733502668; cv=none; b=jF5J6S6J27SVVjl91VAe5OnW29lSfoL4oaa3ObIIU+O+F8IJfF3ojHes8dBOwv6P7MBPlwR1k9650ud8SXJO12Uyg+P1yIJNX/a29GCgfS/gRvr74ISMIkXTZcuIKm0+sptGaAwuCAHu73S0RLERN7EWHBGQCxD127vquB+cg9o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733502668; c=relaxed/simple; bh=TF8EJuIyEuOlIkArt9nQqQifLl3IOyOaBcgjSVCByT4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Apjw+JdgnR2uPnpwFJRCdFNJrjfYAH87RbA/GCR4usCq8m6dirYe3UW33psqbTy56V4jeCe4yzc0MPLWKdukSRmMBbMrktzEa7fXlMn6I9ei5EBQHzsePc8UBVArDPppGKeLd2hxA+REID+YM+RaM6or3d44a+YgO4ApHXVUsBU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=TngauVdz; arc=none smtp.client-ip=209.85.218.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="TngauVdz" Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-aa6413fc7c5so86237766b.0 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=vger.kernel.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=TngauVdzYrZXbR+48xNkbUW3SH24u34lOg1oi07JZacdi9JJGZiZOjuquYU4b1zVZw 0zW+hOTc9ck2gLThG30b6yWqw6st7tQxwPCmT2WhxQLqs4JnjL5CyhGytG/cBhtlfsqw iAYS/sW+DQs+cxN7J0TUm3lVnZ2ixlcL+jKVcqeW4F7s7sgLx7Ovqt9fh68dj7DjtPFR grZ0ztQYOeV/4RpmFpbvT+uFVjDqAIeT6TXFpUoTycXBMXCYDi0LospeXNdfF5lNRynX vMRPyVtRFxeOTySHNHKu7pEgjtYgJY8VB5agva93b6/injUWo93/yHclmSOlCUvRFj5F 5Lyg== 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=Zntx4wQYXTFTLiwNSvHhh827T0s28vb/JPddyW2sNkGwsj+qcmH1d7i8XYvaPG4sCZ xrSFEDujHem0uAjkMyY7ucvsnKt4OLqq3PTiMlrRGuQbVe15R383yqcqhccmh8ptfrfs XXEZPqnkHZFz2DBFRGnsxyhuFen0BaVEsiO6hoLUCEKAqOhu3HfGPjb4KZWs4TiPULgr wu/Ael25kGhaaNdKz673FFfqvhLtqRVKFov06IrsBsngQnnDpT1QdCpQzBkkMwSzb1ok uuRQ3lOhMSw0HVYY9/4/nnCe3cTYSVw4JftgZwIYpQ3s7UoKc1GlRjvjA4AJ/T0zNObC AxYA== X-Forwarded-Encrypted: i=1; AJvYcCUy2oP7DJa45Hdvsj8RYmasWCssyow7WKMv3Pi7i0Ty0pwP5/8TL/+3mSrbpD8XfLBelh5MWg5FVbW8MVY=@vger.kernel.org X-Gm-Message-State: AOJu0YxH3h1jAkf99WzRRizeMo18iB3DydIq6ro9nL3k0VS87Q/tlLpN Xg501lBGC5C9FaZyqNvToeOFLs8PQwcwlBi/ZWmPs4Lnck+vVRqQ43Zo0Bo5QVk= X-Gm-Gg: ASbGncs65jqDFW2mwgo1Ur+8rEulNIhVEnClzhs3ucbPQ5YS1+QonQy7Gd3sdGiAniQ iwtURofZm1FIrbK6+Ua7D5bHHYE4MDFhHeqIVu4OHO/IV/G2wmBmbo4cM/szgB3jm/X3yMijcE2 CD+5iCTbgWFXWpO84MMDN32eVWzoFiYu4LFIPa6ggpNVk6XNsMQSrqIbZLceyW2Y1RcsXdUffal yiBZgfhr2be1yP+5vTAgUrv+8RV32yZ3hupyi9WCZVbHb3HZ+SkRnMaeEXjdGh9tk/kZgGAQ8nx e4kKjbwGYgY4IhLSYPlIk4WsctOSjC80Ag== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 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=C3=A9 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 =20 /* Exynos USB PHY registers */ #define EXYNOS5_FSEL_9MHZ6 0x0 @@ -209,6 +210,10 @@ =20 #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) =20 #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 requir= ed) * @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; }; =20 static inline @@ -647,22 +657,38 @@ exynos5_usbdrd_usbdp_g2_v4_pma_lane_mux_sel(struct ex= ynos5_usbdrd_phy *phy_drd) /* lane configuration: USB on all lanes */ reg =3D readl(regs_base + EXYNOS9_PMA_USBDP_CMN_REG00B8); reg &=3D ~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 |=3D FIELD_PREP(CMN_REG00B8_LANE_MUX_SEL_DP, + ((phy_drd->orientation =3D=3D 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 =3D readl(regs_base + EXYNOS9_PMA_USBDP_TRSV_REG0413); - reg &=3D ~TRSV_REG0413_OVRD_LN1_TX_RXD_COMP_EN; - reg &=3D ~TRSV_REG0413_OVRD_LN1_TX_RXD_EN; + if (phy_drd->orientation =3D=3D TYPEC_ORIENTATION_NORMAL) { + reg &=3D ~TRSV_REG0413_OVRD_LN1_TX_RXD_COMP_EN; + reg &=3D ~TRSV_REG0413_OVRD_LN1_TX_RXD_EN; + } else { + reg |=3D TRSV_REG0413_OVRD_LN1_TX_RXD_COMP_EN; + reg |=3D TRSV_REG0413_OVRD_LN1_TX_RXD_EN; + } writel(reg, regs_base + EXYNOS9_PMA_USBDP_TRSV_REG0413); =20 /* lane 3 */ reg =3D readl(regs_base + EXYNOS9_PMA_USBDP_TRSV_REG0813); - reg |=3D TRSV_REG0813_OVRD_LN3_TX_RXD_COMP_EN; - reg |=3D TRSV_REG0813_OVRD_LN3_TX_RXD_EN; + if (phy_drd->orientation =3D=3D TYPEC_ORIENTATION_NORMAL) { + reg |=3D TRSV_REG0813_OVRD_LN3_TX_RXD_COMP_EN; + reg |=3D TRSV_REG0813_OVRD_LN3_TX_RXD_EN; + } else { + reg &=3D ~TRSV_REG0813_OVRD_LN3_TX_RXD_COMP_EN; + reg &=3D ~TRSV_REG0813_OVRD_LN3_TX_RXD_EN; + } writel(reg, regs_base + EXYNOS9_PMA_USBDP_TRSV_REG0813); } =20 @@ -700,21 +726,18 @@ exynos5_usbdrd_usbdp_g2_v4_pma_check_cdr_lock(struct = exynos5_usbdrd_phy *phy_drd int err; =20 err =3D readl_poll_timeout( - phy_drd->reg_pma + EXYNOS9_PMA_USBDP_TRSV_REG03C3, - reg, (reg & locked) =3D=3D 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 =3D readl_poll_timeout( - phy_drd->reg_pma + EXYNOS9_PMA_USBDP_TRSV_REG07C3, + /* lane depends on cable orientation */ + (phy_drd->reg_pma + + ((phy_drd->orientation =3D=3D TYPEC_ORIENTATION_NORMAL) + ? EXYNOS9_PMA_USBDP_TRSV_REG03C3 + : EXYNOS9_PMA_USBDP_TRSV_REG07C3)), reg, (reg & locked) =3D=3D 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 =3D=3D TYPEC_ORIENTATION_NORMAL) + ? 0 + : 2), reg); } =20 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; =20 /* 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); =20 clk_bulk_disable_unprepare(phy_drd->drv_data->n_clks, phy_drd->clks); =20 @@ -1203,6 +1227,8 @@ static int exynos850_usbdrd_phy_exit(struct phy *phy) if (ret) return ret; =20 + guard(mutex)(&phy_drd->phy_mutex); + /* Set PHY clock and control HS PHY */ reg =3D readl(regs_base + EXYNOS850_DRD_UTMI); reg &=3D ~(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 =3D drv_data; =20 + ret =3D devm_mutex_init(dev, &phy_drd->phy_mutex); + if (ret) + return ret; + if (of_property_present(dev->of_node, "reg-names")) { void __iomem *reg; =20 --=20 2.47.0.338.g60cca15819-goog From nobody Fri Dec 19 07:02:22 2025 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8C3CC2163BC for ; Fri, 6 Dec 2024 16:31:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733502669; cv=none; b=kOBhvCmL99GlmL8oXFd34NO0aBRskvc6PoEHbErb+mzFbx/diZqYHbXj2A5fGPaesHmAw49nFYi0PF9Sq2++K8xyHdEY/HgDSUQj1N5ih9Uwfrz92IbNKE2DT796TJAEu3kufnhV1D4quZI93eSKq7FtqSMalHI1fySuXmLLtS0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733502669; c=relaxed/simple; bh=MI1pXFy+YIXyOBj4VYqO3It4g4viQYj6QlpmQiGlHho=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=StcOiaQs9J+rx65XWnaMXHeLfchUieJPRYZMVt4WvSXRDdKUWgrSQ8+sMT4PY8MRZpuYLI7NaTbh+bguTcw3aiKeDJtdH+TbdjM16OFimY7NBDlsIBmDn7JLOB0xzpY0Q/KdBuWwZlaxLJ1R1g11s32tpQx64dcEnp4Y+Gmifco= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=rOD3A1b9; arc=none smtp.client-ip=209.85.218.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="rOD3A1b9" Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-aa5f1909d6fso442986166b.3 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=vger.kernel.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=rOD3A1b9KRf7GVo3wc1ORLPvQ5OE9LiFLvMLla8veGK+WVx7VjiXPR0OGA+R2rZ6Ud l6yBwB0XxLyQw2HPG+SfOEeRvKm+2v3bz6C4sENpT0zzfTy6atmvTZvvOD9Nt5zvxH2/ zpoEwU4tHkU7AUi4oPGJcwNDYWHkKthS/fbqveUafEyGYvvLyNQ44Q1VpxncJHsqC6XF tvjmI2yUXD9zr7PkS9HQg8DTZupvM4pMt91mzHw5m3zerdI5JZylhBzXULqdQ8QXQk5C P/9E5j4GIBt/k84oXREbkf0ziMbyYI8RpFwc+xGrMRwA5j4cRy4hpeRevhmwQFAphSVZ CZhw== 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=pHF2XmAz5MbkXcIX/ZAJvJmxVGr7SDdWIRuuGNcGW0+lA+hv9alvOctW6xtSzbn1ma p+ep/8tfVfODw3jMZCAhhgz+3mDDHOkEQx2Br8zds03YKRdQ9XjTpOFr/1Nf5IFK+xBT OblrxCQIZQLOPo2FwN7fpaYpplBokeBkpMYZokbWr1nGULYvIyuzfb/g5M2kCiJEHCWe JQbGcm4BpA6TS4f1cqrk44GHIdayaEqYvqmBxu5dowkAvn2/HYicbLQt3fQ+kS1+IvJO A637HrTKyqoTC/9a6O0uRwvPNcj1kyU3cQYeYkfY7GSdmcs56+oMCMd01LsstD4FD86m AYtw== X-Forwarded-Encrypted: i=1; AJvYcCVtAKH4k9PGG5jMl6yRNBMyH3s/HWBtkKdYfGxeQ+9K/vBcQx0PzvtV7UK/AMYqQMIR35DTYV+kLQSsQD8=@vger.kernel.org X-Gm-Message-State: AOJu0YyAJ6+dlonX9PifhtMTZFND1FKZZAxUKUZxv1NPm7MYrfMrgIbc t3jO70RaIucvxNVsm7mkMtzV1jY9rvlwg5NHHAJrMJ0vPd0gta8AemCq7DPZ34w= X-Gm-Gg: ASbGnctcWkoJhwWZeg+vqDBkbk1QSPDQi4+jHuf1YGnUW44s4z26Onkhb2Gr6Gx3Rpy jTat0Nhqqu+u8YZZdqM6h+KRvQdv1T6Qv9h2pHecGOA9cmOi30bz7eVANJGWKsDGWV2OVxyqtEI 9uByfIwYam8D+0U1Bvkv6e8174YTwTl3JN0icEV97qdi2hWdErRIWuRyqlu+WMF+1gDSG1sO761 WfNccxYGikY5l+qrmpWibX1RXyppJV1CRHEAliGAzRLRHT+FKPqMFp34QORjWVw+hNSkUi3CKGc 5iS+lyqMUX71RKFkWGwHTYxIkWOqWrn5RA== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 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=C3=A9 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=3Dn && 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 =20 /* 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; =20 + struct typec_switch_dev *sw; enum typec_orientation orientation; }; =20 @@ -1397,6 +1400,55 @@ static int exynos5_usbdrd_phy_clk_handle(struct exyn= os5_usbdrd_phy *phy_drd) return 0; } =20 +static int exynos5_usbdrd_orien_sw_set(struct typec_switch_dev *sw, + enum typec_orientation orientation) +{ + struct exynos5_usbdrd_phy *phy_drd =3D typec_switch_get_drvdata(sw); + + scoped_guard(mutex, &phy_drd->phy_mutex) + phy_drd->orientation =3D orientation; + + return 0; +} + +static void exynos5_usbdrd_orien_switch_unregister(void *data) +{ + struct exynos5_usbdrd_phy *phy_drd =3D data; + + typec_switch_unregister(phy_drd->sw); +} + +static int exynos5_usbdrd_setup_notifiers(struct exynos5_usbdrd_phy *phy_d= rd) +{ + int ret; + + if (!IS_ENABLED(CONFIG_TYPEC)) + return 0; + + if (device_property_present(phy_drd->dev, "orientation-switch")) { + struct typec_switch_desc sw_desc =3D { }; + + sw_desc.drvdata =3D phy_drd; + sw_desc.fwnode =3D dev_fwnode(phy_drd->dev); + sw_desc.set =3D exynos5_usbdrd_orien_sw_set; + + phy_drd->sw =3D 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 =3D 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[] =3D { { .id =3D 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"); =20 + ret =3D exynos5_usbdrd_setup_notifiers(phy_drd); + if (ret) + return ret; + dev_vdbg(dev, "Creating usbdrd_phy phy\n"); =20 for (i =3D 0; i < EXYNOS5_DRDPHYS_NUM; i++) { --=20 2.47.0.338.g60cca15819-goog From nobody Fri Dec 19 07:02:22 2025 Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 408AE1F4E34 for ; Fri, 6 Dec 2024 16:31:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733502669; cv=none; b=PVY6Qydzzo1+0QKJMybBgxXGxCjGmoPPxuXRVzsm+m2IHWEazzf3ftTplnrCJwgO+ubU1vI8aNVrm1o3vAC6PpXH4uFx7EbL0JLVqi/2vW6RmZj8ZS13ieRGVK/V6942oPN68fB+jM5a2+B7mH/L011EQkq4pG3nz8M/KwL28wM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733502669; c=relaxed/simple; bh=J6z5q62M8vmTkZ3jTBoKrO19txxGlcIk+1Ry1NXvBGw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IXAUtRMZXOgUe3oCxvbMwYSiCVvQb9J9CENfW25Kx4rACeEEng95+0uIohbqmIhyjKIuMCpRJV3AZHeNIxuNc++WDnWDvQ9F7zV3GTEGfKT5l7jK/VtAde7XPB1IxTU+OUOajUlVS6j6+en6MJWJ5KnZrXcQzcVGZxyQkaw8e3E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=S0LG+Xnj; arc=none smtp.client-ip=209.85.218.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="S0LG+Xnj" Received: by mail-ej1-f47.google.com with SMTP id a640c23a62f3a-aa642e45241so115210266b.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=vger.kernel.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=S0LG+XnjbJXITJXGXbMiIo3Q58qXxxiAswNrXoFZ0Gl0m+/fe/WX4yizhX0qIiZt/b G6vb4hNUnj6V5OHDolg6/JJGfzgnr7SCdvuSV8sOuc5Kb5peQ77dqlV5WhNRgkF/0OJp X2R34n6Rk0iLrW+ckbQOnipWAQpyoqWaVSSdH4BSwYV8862Jw93812+QVmCmr6Fb2gPI 33/Q087NJE/lfsQCxiKuE2FKgxqWDpjiGIDWahD2DLNZ2pGFp+R6UC0KKuA6VHCfojQF WRXuv1aikEV50i2PFGoLxvZcClN0eTi41DQ04Ixwt3tn/qX6xxQ5OmS9B3WJi6iAfgzH 5KPw== 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=LFCs032hrJM5UMGEUNeTBl+RhOXran+9qzvszQVeQjKW0xUKdtLykhdbYXXev7UiJP yJGv6+tAbEQ1GAFv1Y70e3TddGtD4YewPfYmZlGHABj+lr6QlKOkA4OUG8Nqpa4aewOK zknVfvHVrKx/I5NXOBXOI4WfJc9Y1/al8YcG42baLxQKybjCw+ui6X+e6+teNrVu+/NB UtXvZZjUOwdZsMGnM92GabwlFwBC6xXyd/nXcEgSsUcXhe4O0F83DBQS5kKiDV9Ra+vE rLpKHyRhbHwJGdVMp0OaDT6amenZiK+u4bxuiAljlZf+lR69SKR9xADfQvowVAErLOI+ QmsQ== X-Forwarded-Encrypted: i=1; AJvYcCW63f0YHO0qn0jRD2YMpWePYbiDNPCWe04E4j7EjXpSfgXldXXsL98h1ssRal2zfSLasq6+JVbcorqbTnw=@vger.kernel.org X-Gm-Message-State: AOJu0YzeOeMl8sI47G597m170zWfYu4l+uGRglxWv5YYNeDmVpz36jod FIFdhRL8w8J1i3sawOXEOK9sDXBLBdwVdy8MPGuB7BAsW0nHoikB/ajguI6v2P4= X-Gm-Gg: ASbGnctyaCzusQ5NuimGf7VaKcguKMRkrwcW1Rlv+azIjrZu7e17SgNxXNCtJVNVieS s5T9/IYTeuBcZRgYDTB55LWHAmoCCv10J9kJm2gv/DdOKTw5O5/6Ejo4wn71EowG18Lkz9oRmFn RyXFcI40lkOuUC0+VrOJ6C8wodUZq32EmK158xccSnXNK3kE3kLkNEAnYcv+tA+f6wG4fQIcnl7 Jr4A02YO82e20lZHWfq84n9Fx2J4ZpduFdlIuKKRUKbnFkRyKkbnW5PlbwKn+vtFmavY8+ZsH3r AuMBzK1un02kPQsLxCjAy4CZ4c2dO6BeGA== 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+) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 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 =3D=3D 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 =3D=3D 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=C3=A9 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 exyno= s5_usbdrd_phy *phy_drd) reg |=3D LINKCTRL_BUS_FILTER_BYPASS(0xf); writel(reg, regs_base + EXYNOS850_DRD_LINKCTRL); =20 - reg =3D readl(regs_base + EXYNOS850_DRD_UTMI); - reg |=3D UTMI_FORCE_BVALID | UTMI_FORCE_VBUSVALID; - writel(reg, regs_base + EXYNOS850_DRD_UTMI); - - reg =3D readl(regs_base + EXYNOS850_DRD_HSP); - reg |=3D HSP_VBUSVLDEXT | HSP_VBUSVLDEXTSEL; - writel(reg, regs_base + EXYNOS850_DRD_HSP); + if (!phy_drd->sw) { + reg =3D readl(regs_base + EXYNOS850_DRD_UTMI); + reg |=3D UTMI_FORCE_BVALID | UTMI_FORCE_VBUSVALID; + writel(reg, regs_base + EXYNOS850_DRD_UTMI); + + reg =3D readl(regs_base + EXYNOS850_DRD_HSP); + reg |=3D HSP_VBUSVLDEXT | HSP_VBUSVLDEXTSEL; + writel(reg, regs_base + EXYNOS850_DRD_HSP); + } =20 reg =3D readl(regs_base + EXYNOS850_DRD_SSPPLLCTL); reg &=3D ~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 =3D typec_switch_get_drvdata(sw); + int ret; + + ret =3D 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 =3D phy_drd->reg_phy; + unsigned int reg; + + if (orientation =3D=3D TYPEC_ORIENTATION_NONE) { + reg =3D readl(regs_base + EXYNOS850_DRD_UTMI); + reg &=3D ~(UTMI_FORCE_VBUSVALID | UTMI_FORCE_BVALID); + writel(reg, regs_base + EXYNOS850_DRD_UTMI); + + reg =3D readl(regs_base + EXYNOS850_DRD_HSP); + reg |=3D HSP_VBUSVLDEXTSEL; + reg &=3D ~HSP_VBUSVLDEXT; + writel(reg, regs_base + EXYNOS850_DRD_HSP); + } else { + reg =3D readl(regs_base + EXYNOS850_DRD_UTMI); + reg |=3D UTMI_FORCE_VBUSVALID | UTMI_FORCE_BVALID; + writel(reg, regs_base + EXYNOS850_DRD_UTMI); + + reg =3D readl(regs_base + EXYNOS850_DRD_HSP); + reg |=3D HSP_VBUSVLDEXTSEL | HSP_VBUSVLDEXT; + writel(reg, regs_base + EXYNOS850_DRD_HSP); + } =20 - scoped_guard(mutex, &phy_drd->phy_mutex) phy_drd->orientation =3D orientation; + } + + clk_bulk_disable(phy_drd->drv_data->n_clks, phy_drd->clks); =20 return 0; } --=20 2.47.0.338.g60cca15819-goog