From nobody Thu Oct 9 20:24:41 2025 Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) (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 7B38921B184 for ; Tue, 17 Jun 2025 08:26:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750148814; cv=none; b=s7vuAxC7md6sDEw53JUIJjBhyuKXxux+PBPvHuc3mAqGuvi67Add08nRDJeAFDDD1eI8SV+yo1d0xXjGpbAQIiZLpRW+XvyoU4TdXCNVI56MBJqntxWqgMLfq1q70e+gL2ra5JlH+C45Md4rRiu+ATZ8hZMo6hNhyFYerM/VLNk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750148814; c=relaxed/simple; bh=OuFHBPiSDnHElYnOnjmGAqSP02DaggUPcI3IBLQcgxo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mwvGw+osVq2QJsTfFi7kAdYcK3KW6hd0SMjkRZwvHLPMJxQCZqZR7gAA5UtuCC3FvldUdjg8Cc+63O5SrRmFdchw76aFgkbScokAHj5U2bwQs/D2fVZkbyYecb2gAqlxXZK12B7S/nUo4iLGpMF0m2V0U00tGW5xG1SS3++CQDI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=fairphone.com; spf=pass smtp.mailfrom=fairphone.com; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b=hwB8MCAl; arc=none smtp.client-ip=209.85.208.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=fairphone.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fairphone.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b="hwB8MCAl" Received: by mail-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-6071ac9dc3eso9449419a12.1 for ; Tue, 17 Jun 2025 01:26:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fairphone.com; s=fair; t=1750148810; x=1750753610; 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=YviJvB3mEmC6/KWy4TJGLCulrpnF3rGNjKlkw3ObS4E=; b=hwB8MCAlQPWyirbl2PJIuLMLLwk2+BWAKVQHUna5ugou356P4gpZVZVAoxQyZfzOHV 383nDkRku9cU8xoaR2njit1B/1EZ8247fS+Iu6zp2JMCTxkBJjXsaZ/C4uCRNqbe9GRj 11dDmoqy9en3zudEzofc8TAtxipwqtp4A1cE7f7JiPaFUecb2+SpNWRXactUzVoBhIEy SaCMsSkR2buYHg2y4F8sw9RwkRIH6xB05IQoSEY+DXalTb52iEVG9yI6YmiwSLehAcVP tWZEnmDvL8NyrMLme9JSOIuMLWBKS9iOknu5puKe00FWKAelzIfFEDjt61zgqkHfjX4D 2Ubw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750148810; x=1750753610; 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=YviJvB3mEmC6/KWy4TJGLCulrpnF3rGNjKlkw3ObS4E=; b=tj2iY9+B6+yu3DhSrKO4fnWqH3aKYf/0+9sOT++OJAbAOr/7/S/gPoZN+X1W9hRWea b49khVCgFtpfuW3Xyop/o7V3as21R7sU2q7DCwDrzbS4xtdee49sql87PkjPrwcBRlOB hA+bYVUAJSHN3Mh3xFRuOFX6kd0STEItvRYZuvtEJC2fbNl95QXPJB9idb9QvsSeXkfv hRj/UajQjLtUraPP+BHCk3yIMNndAwQwCr21hFuqc6MXliECxvelQI+emgmNGeA0wpOb iI1dtn7Tv7bTf0RQa3ClXZINoLl/bqsVRKKYQ0V/SIFDuQN40Vo7JmE4FCJA1gD/yCMn b1rg== X-Forwarded-Encrypted: i=1; AJvYcCXnGr2LY/vMujAMDioxX2enekawIRsRZxjguH76qA4vqd9FOgXS3PEnH4HgilJO1NXboDnIJpF8RbmDEcQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzkDDgU61a6lXm4r9jwcQQMh8YGZLoHkXnCBTcgg9Xi6P/9nbc8 LuiSPksLVdSaouKaHvrs5/QeBcQY85YwpAHN1uxogSuVJ6ADHtvuaBetmCLCGSE9B4o= X-Gm-Gg: ASbGncujHKIDggk+8PZ/a3NGha2zJ3gSyqk7OLriW7lSgTkzNwXy/X7YmIGcBz0f+4h IhZ0XwGCEHIWfs6Ef1I4ztAOsd+cowTMiXOYGhEmt04wgPMwVORbdy8aPms4hu+RGDOR9aUEIry JFzqaZ6fWM5hvo6TAUrEGMQ7DhUtQcyxPGAl8kMKH7ZVwsf0dfQXM9Nogo0rj0x7+yjtEcHnURf 3/8b8hcRmxySVzGCLtYTuwchpt0M+zQWM1bv5nuTXGNCUwvspyj3B6KVUEWQGQnYFrBNc5WGPGw m1T0qR57v93T+9d3HdKQQtWQZzIKJbAnuPx4MAdPw92DtcBnwKbXPGnF90nKIm4itoOhdRfVWNa eYPbQy71CTeGrmr6gArkPASgb6PNueEHl X-Google-Smtp-Source: AGHT+IGBvTpgEQKuySRgZVEiRHZ2+eHm/TawSN1WIXCTKv0QJZ0mFrD/xYMqMzEBC005W5SZjLK1TA== X-Received: by 2002:a17:907:db15:b0:ad2:28be:9a16 with SMTP id a640c23a62f3a-adfad4829eamr1145395366b.51.1750148809831; Tue, 17 Jun 2025 01:26:49 -0700 (PDT) Received: from otso.local (144-178-202-138.static.ef-service.nl. [144.178.202.138]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-adec88fd993sm840343166b.94.2025.06.17.01.26.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Jun 2025 01:26:49 -0700 (PDT) From: Luca Weiss Date: Tue, 17 Jun 2025 10:26:35 +0200 Subject: [PATCH v2 1/2] dt-bindings: phy: qcom,snps-eusb2-repeater: Remove default tuning values 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: <20250617-eusb2-repeater-tuning-v2-1-ed6c484f18ee@fairphone.com> References: <20250617-eusb2-repeater-tuning-v2-0-ed6c484f18ee@fairphone.com> In-Reply-To: <20250617-eusb2-repeater-tuning-v2-0-ed6c484f18ee@fairphone.com> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Abel Vesa , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Luca Weiss X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1750148807; l=1248; i=luca.weiss@fairphone.com; s=20250611; h=from:subject:message-id; bh=OuFHBPiSDnHElYnOnjmGAqSP02DaggUPcI3IBLQcgxo=; b=UCQ80CGhJn/9FqQFeZwlp30F3hVlXhrqM3yVHy6N6PzQRXNd5o3I3x9xZBw7MwlAHFwnNd4d6 GwTHiLUsOF9Bq/0tBC90+tbE7BOOReriWMhCM7iRdLHn+l8kQzBkcpo X-Developer-Key: i=luca.weiss@fairphone.com; a=ed25519; pk=O1aw+AAust5lEmgrNJ1Bs7PTY0fEsJm+mdkjExA69q8= The reset default tuning value depends on the PMIC, so remove them from the doc since they're not accurate for all PMICs. Signed-off-by: Luca Weiss Acked-by: Rob Herring (Arm) --- Documentation/devicetree/bindings/phy/qcom,snps-eusb2-repeater.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/Documentation/devicetree/bindings/phy/qcom,snps-eusb2-repeater= .yaml b/Documentation/devicetree/bindings/phy/qcom,snps-eusb2-repeater.yaml index d16a543a784887eabc69faae2233057c4554be31..27f064a71c9fb8cb60e8333fb28= 5f0510a4af94f 100644 --- a/Documentation/devicetree/bindings/phy/qcom,snps-eusb2-repeater.yaml +++ b/Documentation/devicetree/bindings/phy/qcom,snps-eusb2-repeater.yaml @@ -39,21 +39,18 @@ properties: description: High-Speed disconnect threshold minimum: 0 maximum: 7 - default: 0 =20 qcom,tune-usb2-amplitude: $ref: /schemas/types.yaml#/definitions/uint8 description: High-Speed transmit amplitude minimum: 0 maximum: 15 - default: 8 =20 qcom,tune-usb2-preem: $ref: /schemas/types.yaml#/definitions/uint8 description: High-Speed TX pre-emphasis tuning minimum: 0 maximum: 7 - default: 5 =20 required: - compatible --=20 2.49.0 From nobody Thu Oct 9 20:24:41 2025 Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) (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 903D528F508 for ; Tue, 17 Jun 2025 08:26:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750148815; cv=none; b=iFO5KT3BRG7xgAn60Tts3ilZOkmrkR/ONsUjgrTUjRrV+uloCYpmkIdqwtYx2rggZzGivVvEVovPHAbW+X7Cc/bELaJ5rD+dqdcpVUK+QY+Bjpz7Ovp1gSUkFJF9Sm2d1OscB4n3P/i+NfBDwcNIBFRoAYQ+bKR/IYzwuDOTW94= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750148815; c=relaxed/simple; bh=A5GxHr710Py2e24QTu8TcBh/WJDiSncJIFM883A5ZMo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=iePvfeaPWmogx/DwoMTGahpcu+DIg3cgbf1CVp04QM2INja4xRRFo/kWJr1K0/qwCzg65mNuzLHn96srY4pTUQXLavpvQa03AoQcN4V6nNhjMT2E+io8/NbRx5vkXczq9m+RhpvDtTGPuV/9TxrLGCKg244ItY6tiBPMZlKXqL0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=fairphone.com; spf=pass smtp.mailfrom=fairphone.com; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b=tT1zeNoo; arc=none smtp.client-ip=209.85.208.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=fairphone.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fairphone.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b="tT1zeNoo" Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-6071ac9dc3eso9449440a12.1 for ; Tue, 17 Jun 2025 01:26:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fairphone.com; s=fair; t=1750148811; x=1750753611; 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=sX84cZ3SaMTPuPXdeTupdXKRRBNOI+FmBiR+Od8TZ3M=; b=tT1zeNooluyhiuSXy2texMyQDbHUVN3HoZc3QjqkJ9ENb64QxigA3FsYI293hTke5z C3IWW2XK2fYNen14y2j5PUyN3jlNOcVrvjUvtvr99BHrgBg9vbgpBwAgJENhzYmh7A5s V86VL2VQqVE8OdU8sqKCUPgX8esbZE6Wm+V4nl7vskbSLaprkgVKux6uP95wbVOfoCcO 41q6Mhv7nSgpVDY3fAG3dKIBl0QTgqUULTFB61NNAfJBDV/0aDH8s9TRG0N3qxbkNQm1 02686MV72j+DPfLfIjKBXOaax+QCfZmgMS7SKASUoraNA0BgA8ukvwfU3/n9nS5xSQmf EZgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750148811; x=1750753611; 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=sX84cZ3SaMTPuPXdeTupdXKRRBNOI+FmBiR+Od8TZ3M=; b=PLxU9QVGih+lnhv197Hv9Z/CddrbVWQm3fyqoLowfbKxBIcCSYtEfZ60ViyNI+rjkJ aGYysSIYcShIcQ1lerQyn5t1WXquRwIbreHj3kAg3ZyhsYXzvvK0glwvH3dGii/BAhJ8 d5yWkTmOkzNhXkw1hXLt7iBEbxriadKQAVWMqZQcq/vBx6gWBTp2lOmyCkw6lWPgsq/i MgcJ+W+riJMJrfJ1XkVEm3vOO18+nLPCZjZz90FywUx7F0jIwjtKqz8nuCWIeXm5sHXR 2rN/ecY1KfBiW6O4JPWwc+VXB6/4SJyo3zDgKU3M7Oqf4HDyhrJPu2zHI01w1XHVIlMJ buwQ== X-Forwarded-Encrypted: i=1; AJvYcCV71ZwYOIkkVHFTzqNuIy0EMmdkKtPbQEbg7NHY3R4AoVnIuhm7xvoQ2MYnF2vAgsVzsejdDipc4GBAUck=@vger.kernel.org X-Gm-Message-State: AOJu0Yx+h7dMsiphEXVC99IGlMAmb2SCJIN7pw5I+/JHpVvO5Ydio9CF 8+sPh2NXSpI0INTN4MwmYWsqg56Yd5z5T/LSBkAcf+yOcVYAsxv9djLM1lxwLJjDiac= X-Gm-Gg: ASbGncumY0C7SvboCJh8wmuxRJhe5jagYVsZ/2TfVWuvsx9bC4vZIBfdyDhNnTU6mHR L+zVXCIXg3gaoDHwZi5bbrxhdmcnGzFpcsT7CZ+Y03u8A1TQDjFwLemu7tPSkPbpWbILQv5+ken aJNUUY35wJHLj0yYgHYpB1xhQcnSujfp2ukiUZpAbs58o9hDXzgulRfsAi3PFj+kaL109jlWMV5 6rUCDw2i6z3f9IU75cBvhZ2clZv3rVm3GJrOHwi4Ild4y7ACpTu4GnSzTU9mtKLShnlySTeHT8q XF8+9qHnHGdr4FeZ+2c32e20QskGAM7BnqorXPhIX034Fh4UyOA6BG7/GA0kuYC8VosuJVvYQKK 3hwIMVtCMqEu1357ofKoglURyGob6Ao4j X-Google-Smtp-Source: AGHT+IE1KdvEzFDJ50Blvw8RRapFgbU1vb3QXm2KGvBTd08g0S8rGE5KDmFA84KI0+LHpMrERmOUIA== X-Received: by 2002:a17:907:7fab:b0:ad5:a29c:efed with SMTP id a640c23a62f3a-adfad4181f0mr1236100266b.33.1750148810832; Tue, 17 Jun 2025 01:26:50 -0700 (PDT) Received: from otso.local (144-178-202-138.static.ef-service.nl. [144.178.202.138]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-adec88fd993sm840343166b.94.2025.06.17.01.26.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Jun 2025 01:26:50 -0700 (PDT) From: Luca Weiss Date: Tue, 17 Jun 2025 10:26:36 +0200 Subject: [PATCH v2 2/2] phy: qualcomm: phy-qcom-eusb2-repeater: Don't zero-out registers 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: <20250617-eusb2-repeater-tuning-v2-2-ed6c484f18ee@fairphone.com> References: <20250617-eusb2-repeater-tuning-v2-0-ed6c484f18ee@fairphone.com> In-Reply-To: <20250617-eusb2-repeater-tuning-v2-0-ed6c484f18ee@fairphone.com> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Abel Vesa , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Luca Weiss , Konrad Dybcio , Neil Armstrong X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1750148807; l=5504; i=luca.weiss@fairphone.com; s=20250611; h=from:subject:message-id; bh=A5GxHr710Py2e24QTu8TcBh/WJDiSncJIFM883A5ZMo=; b=NLVDwJceLeVh2CyY4RVOJ2w1bVSH89L0XBbHwU6333cyzpMfLbdJ26mUh4I6AXhR6OfQ7Vfop aVUPMGbgwyNBuYqFB64O1xnLl6Jr8WKGgjjPmUXuguwCFENib0h4FH0 X-Developer-Key: i=luca.weiss@fairphone.com; a=ed25519; pk=O1aw+AAust5lEmgrNJ1Bs7PTY0fEsJm+mdkjExA69q8= Zeroing out registers does not happen in the downstream kernel, and will "tune" the repeater in surely unexpected ways since most registers don't have a reset value of 0x0. Stop doing that and instead just set the registers that are in the init sequence (though long term I don't think there's actually PMIC-specific init sequences, there's board specific tuning, but that's a story for another day). Fixes: 99a517a582fc ("phy: qualcomm: phy-qcom-eusb2-repeater: Zero out unto= uched tuning regs") Reviewed-by: Konrad Dybcio Reviewed-by: Neil Armstrong Signed-off-by: Luca Weiss Reviewed-by: Abel Vesa Reviewed-by: Dmitry Baryshkov --- drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c | 83 ++++++++++------------= ---- 1 file changed, 30 insertions(+), 53 deletions(-) diff --git a/drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c b/drivers/phy/q= ualcomm/phy-qcom-eusb2-repeater.c index 6bd1b3c75c779d2db2744703262e132cc439f76e..d7493c2294ef23e37e484019a49= ddf7b3d6a6a46 100644 --- a/drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c +++ b/drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c @@ -37,32 +37,13 @@ #define EUSB2_TUNE_EUSB_EQU 0x5A #define EUSB2_TUNE_EUSB_HS_COMP_CUR 0x5B =20 -enum eusb2_reg_layout { - TUNE_EUSB_HS_COMP_CUR, - TUNE_EUSB_EQU, - TUNE_EUSB_SLEW, - TUNE_USB2_HS_COMP_CUR, - TUNE_USB2_PREEM, - TUNE_USB2_EQU, - TUNE_USB2_SLEW, - TUNE_SQUELCH_U, - TUNE_HSDISC, - TUNE_RES_FSDIF, - TUNE_IUSB2, - TUNE_USB2_CROSSOVER, - NUM_TUNE_FIELDS, - - FORCE_VAL_5 =3D NUM_TUNE_FIELDS, - FORCE_EN_5, - - EN_CTL1, - - RPTR_STATUS, - LAYOUT_SIZE, +struct eusb2_repeater_init_tbl_reg { + unsigned int reg; + unsigned int value; }; =20 struct eusb2_repeater_cfg { - const u32 *init_tbl; + const struct eusb2_repeater_init_tbl_reg *init_tbl; int init_tbl_num; const char * const *vreg_list; int num_vregs; @@ -82,16 +63,16 @@ static const char * const pm8550b_vreg_l[] =3D { "vdd18", "vdd3", }; =20 -static const u32 pm8550b_init_tbl[NUM_TUNE_FIELDS] =3D { - [TUNE_IUSB2] =3D 0x8, - [TUNE_SQUELCH_U] =3D 0x3, - [TUNE_USB2_PREEM] =3D 0x5, +static const struct eusb2_repeater_init_tbl_reg pm8550b_init_tbl[] =3D { + { EUSB2_TUNE_IUSB2, 0x8 }, + { EUSB2_TUNE_SQUELCH_U, 0x3 }, + { EUSB2_TUNE_USB2_PREEM, 0x5 }, }; =20 -static const u32 smb2360_init_tbl[NUM_TUNE_FIELDS] =3D { - [TUNE_IUSB2] =3D 0x5, - [TUNE_SQUELCH_U] =3D 0x3, - [TUNE_USB2_PREEM] =3D 0x2, +static const struct eusb2_repeater_init_tbl_reg smb2360_init_tbl[] =3D { + { EUSB2_TUNE_IUSB2, 0x5 }, + { EUSB2_TUNE_SQUELCH_U, 0x3 }, + { EUSB2_TUNE_USB2_PREEM, 0x2 }, }; =20 static const struct eusb2_repeater_cfg pm8550b_eusb2_cfg =3D { @@ -129,17 +110,10 @@ static int eusb2_repeater_init(struct phy *phy) struct eusb2_repeater *rptr =3D phy_get_drvdata(phy); struct device_node *np =3D rptr->dev->of_node; struct regmap *regmap =3D rptr->regmap; - const u32 *init_tbl =3D rptr->cfg->init_tbl; - u8 tune_usb2_preem =3D init_tbl[TUNE_USB2_PREEM]; - u8 tune_hsdisc =3D init_tbl[TUNE_HSDISC]; - u8 tune_iusb2 =3D init_tbl[TUNE_IUSB2]; u32 base =3D rptr->base; - u32 val; + u32 poll_val; int ret; - - of_property_read_u8(np, "qcom,tune-usb2-amplitude", &tune_iusb2); - of_property_read_u8(np, "qcom,tune-usb2-disc-thres", &tune_hsdisc); - of_property_read_u8(np, "qcom,tune-usb2-preem", &tune_usb2_preem); + u8 val; =20 ret =3D regulator_bulk_enable(rptr->cfg->num_vregs, rptr->vregs); if (ret) @@ -147,21 +121,24 @@ static int eusb2_repeater_init(struct phy *phy) =20 regmap_write(regmap, base + EUSB2_EN_CTL1, EUSB2_RPTR_EN); =20 - regmap_write(regmap, base + EUSB2_TUNE_EUSB_HS_COMP_CUR, init_tbl[TUNE_EU= SB_HS_COMP_CUR]); - regmap_write(regmap, base + EUSB2_TUNE_EUSB_EQU, init_tbl[TUNE_EUSB_EQU]); - regmap_write(regmap, base + EUSB2_TUNE_EUSB_SLEW, init_tbl[TUNE_EUSB_SLEW= ]); - regmap_write(regmap, base + EUSB2_TUNE_USB2_HS_COMP_CUR, init_tbl[TUNE_US= B2_HS_COMP_CUR]); - regmap_write(regmap, base + EUSB2_TUNE_USB2_EQU, init_tbl[TUNE_USB2_EQU]); - regmap_write(regmap, base + EUSB2_TUNE_USB2_SLEW, init_tbl[TUNE_USB2_SLEW= ]); - regmap_write(regmap, base + EUSB2_TUNE_SQUELCH_U, init_tbl[TUNE_SQUELCH_U= ]); - regmap_write(regmap, base + EUSB2_TUNE_RES_FSDIF, init_tbl[TUNE_RES_FSDIF= ]); - regmap_write(regmap, base + EUSB2_TUNE_USB2_CROSSOVER, init_tbl[TUNE_USB2= _CROSSOVER]); + /* Write registers from init table */ + for (int i =3D 0; i < rptr->cfg->init_tbl_num; i++) + regmap_write(regmap, base + rptr->cfg->init_tbl[i].reg, + rptr->cfg->init_tbl[i].value); =20 - regmap_write(regmap, base + EUSB2_TUNE_USB2_PREEM, tune_usb2_preem); - regmap_write(regmap, base + EUSB2_TUNE_HSDISC, tune_hsdisc); - regmap_write(regmap, base + EUSB2_TUNE_IUSB2, tune_iusb2); + /* Override registers from devicetree values */ + if (!of_property_read_u8(np, "qcom,tune-usb2-amplitude", &val)) + regmap_write(regmap, base + EUSB2_TUNE_USB2_PREEM, val); =20 - ret =3D regmap_read_poll_timeout(regmap, base + EUSB2_RPTR_STATUS, val, v= al & RPTR_OK, 10, 5); + if (!of_property_read_u8(np, "qcom,tune-usb2-disc-thres", &val)) + regmap_write(regmap, base + EUSB2_TUNE_HSDISC, val); + + if (!of_property_read_u8(np, "qcom,tune-usb2-preem", &val)) + regmap_write(regmap, base + EUSB2_TUNE_IUSB2, val); + + /* Wait for status OK */ + ret =3D regmap_read_poll_timeout(regmap, base + EUSB2_RPTR_STATUS, poll_v= al, + poll_val & RPTR_OK, 10, 5); if (ret) dev_err(rptr->dev, "initialization timed-out\n"); =20 --=20 2.49.0