From nobody Mon Feb 9 05:01:37 2026 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (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 5BC23261B96 for ; Wed, 4 Feb 2026 07:04:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770188676; cv=none; b=IcfrjKIFgG2fM1Xj0jjTDFSPmL1Iqw/Xl+sDbGQlrcqiMf8LY7ueOQSk/tXkSQpskiHnln2GqS+noZeMZkbXNDN58v8ki3BnldnAiszujJr3gkh0pZodfcctL/HUV587S7rNGQQGBVStqoLXzt3nFVJCmtzN7s1aly1Fy4/QWiA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770188676; c=relaxed/simple; bh=xyQDC8GbqzF7ArVB2TLv7PIMNcNkx7/tmEYnfpsVsQg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=dVH53VcwsH7D+5HzX5n6/W+PODeY65Zyp1OxfY+2z2HHjG8h1TBZQzj6jv5qsNIQ973xAF1cHbslr6Dj1fdGg7fxqVdzPTBrBZXKExhFR0ASeAJAUeBUek3TtGS/7C8QdsU0e9hekOxrIrw29l6IdR+7nraWl6TLDFFIVYxlgu4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=TnHIqjHx; arc=none smtp.client-ip=209.85.214.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TnHIqjHx" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-2a871daa98fso42335595ad.1 for ; Tue, 03 Feb 2026 23:04:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770188676; x=1770793476; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=LCdqqcfRfC4kbz407KtywqNG2v+O9EPEFpJxtskkRGs=; b=TnHIqjHxna/gjogzFDxhmgMHhyTsESndq4BXdNwthxNFr9wxYXDknlqhOzUEsNdseP 3LSd2iwVCCSreAYi26dZUw4E9P58IctXIlqNevIhP9W6gSRTkcSsdGNQHx2HX4aHjnam 2HUU3Rnm/V6IG3YBniqobZaw9jn1nw5zMK7ojVHXE31eX6Tm5lnikPVjpQmqOD6ijWcp 6h7MvPQsKv2LxMNOMBX4CIH85hLDSngbjn4vxrFRH51K0AbAIa7A+q85LrKIB2eq5WJD ujoQchzYCpvK4FWBA3ex8mnh+/xMyyNtkBKStBkTOP3rgE1JbA4PVKSGNN2W9gU76Bnp U1sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770188676; x=1770793476; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=LCdqqcfRfC4kbz407KtywqNG2v+O9EPEFpJxtskkRGs=; b=hF1VMi2xUAE8YRPBEOmL2c/TUue6ahx6ttzIFFRXPkVDJ6rKoZ9vOVlBspzE2pEqMk bme1uvluvP1tRXzi1+5Op2L4ALGyBNu66v6a2GuTR7nY0z/FVX1JyUdxuBvcAN0vv9ov jX0peLYWlDBhttTiBsF3MB9X+zqzWq221KOtzz5KOib7MqCtiTntsLPkjxxiqsZGdWS4 3KSRcyXoXuSoJ7a9Dgi06VUpsXoMTawiXA63k0AUNQbO57V4mvvB3x/XGFe14FQ6haDE cxCgMUigzbfAGMhTUF1dEO9FHJRSCRdmoW9KZ4cSyzUV/cZ2SyM6kFmrznvaaODhrYqY fkaQ== X-Forwarded-Encrypted: i=1; AJvYcCVHG2Cxp8EMfGPl59RMh2QCWsi4k4ljx1lGgMJh9Kq63xwaR9YRb4tQ36TZTm9xvsZvvPB7vZD8w0n3gYg=@vger.kernel.org X-Gm-Message-State: AOJu0YzcQqF49fir/amRLvUsYAe3HZUhZRXM1RW1ZJ+xl7tOZf77PKDM aEnrwaWHAIjxRvlCsiFgk8Ff43HIqv5EJQtJfRbkkMBBdi+bbFCLHIH5 X-Gm-Gg: AZuq6aLO0cFtxrXqTSb5zXkoV0YBrZrmQfsH3L1Zmt/IlHE/CJNr44GE7FSZZj3mq3h 0uNOraKWim3AjyAb05x92JbxXC9jvRjEnTgFDDOw0N89u/Kl4a1pmOkTOIEyZacQm/8cjI3RiOl v1J80pu27jE80XyDU/t1h9Q6bGNLi7w84dPSL6L4TC2Oz9DArpp8ugyrfDPu1pmjd8zp4NQbThp ketH+5ZIYxxjLNPE+iJSQk+z3cV7ZbCDY56OWwIOry4AZWJ1gIjjzJUtkXWbrAjU0jra9/tKw2h tp2DxUMxGVvd4rfNpEep7hhwdbPDR9u269TKEywJl5PWx+Eyw4Z17x4cpd1jD+JqcC2w2Oysc+7 DiFG8zUQvlfKWoDmJemcusCn6fHqy6PKkREzTwo4/TCiogmR3qlJzx71JtkiDjVl3UeudBD0KMh 34IwJcDZPjKU4iskx7d4bpnIGQb8aCb0qs2VvVfcv5Vd6TbVj99sk= X-Received: by 2002:a17:902:d54a:b0:2a7:8088:371a with SMTP id d9443c01a7336-2a933ea1404mr24497105ad.35.1770188675637; Tue, 03 Feb 2026 23:04:35 -0800 (PST) Received: from [127.0.1.1] (61-220-246-151.hinet-ip.hinet.net. [61.220.246.151]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a933967ca1sm13826205ad.74.2026.02.03.23.04.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Feb 2026 23:04:35 -0800 (PST) From: Kyle Hsieh Date: Wed, 04 Feb 2026 15:04:16 +0800 Subject: [PATCH] hwmon: pmbus: tda38640: Add identification for PMBUS_VOUT_MODE 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: <20260204-tda38640_direct_mode-v1-1-72511cd87b41@gmail.com> X-B4-Tracking: v=1; b=H4sIAG/vgmkC/x3MSQqAMAxA0atI1hbaWOtwFREpJmoWDrQignh3i 8u3+P+ByEE4Qps9EPiSKPuWYPIMxsVvMyuhZECNTqO26iRf1M7qgSTweA7rTqzIsa0MGo9lAyk 9Ak9y/9uuf98P0n/n4mYAAAA= X-Change-ID: 20260204-tda38640_direct_mode-d6e47121a259 To: Guenter Roeck Cc: linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org, Kyle Hsieh X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2738; i=kylehsieh1995@gmail.com; h=from:subject:message-id; bh=xyQDC8GbqzF7ArVB2TLv7PIMNcNkx7/tmEYnfpsVsQg=; b=owEBbQGS/pANAwAKAaWDQrcJVsSBAcsmYgBpgu+Czerc2ZJbkYZk3cw2Kw+zPAJl8gZunEfVt aoMbx12iFyJATMEAAEKAB0WIQTJHsaNZOdY+THGqJelg0K3CVbEgQUCaYLvggAKCRClg0K3CVbE ga7AB/9OJExDUOmDRN/l3Yh/Sbfng8v6lFTaa/8vGQRAWudSJAbZ2EvmEg8ZZs+G4W/PwiOzXYM QGpbv3cqVKuxSwFTmNSwsUW6cNmDhHNpkAqWmn32blyq7w2r5JJDR21WA3L7xj7VDbbdW2PvV0g gKcA04hu9I2fvidU+8aaq6kJXe9+IjR5J7ub4ub39OS0Tzg59fDPHW7zam6Z43WIjnyiPG3LrCg ZFBPGrmAITxY3Gewph594lcEz8Z0cCD7uYZCdEO4jSbg3oy6rwmRlhoqoK/OzPa0bMK1VVX4CbD W7paiLjUQJiJvRfHDxC4sqKbg0mcMOoDhgh4rDOxy2yHWtfH X-Developer-Key: i=kylehsieh1995@gmail.com; a=openpgp; fpr=C91EC68D64E758F931C6A897A58342B70956C481 Add support for detecting the PMBUS_VOUT_MODE for tda38640. Both linear and direct modes are now handled. Previously, only linear mode was assumed, which could trigger "Failed to identify chip capabilities" for chips in direct mode. This change ensures proper identification of the chip regardless of its VOUT mode. Signed-off-by: Kyle Hsieh --- This patch adds proper detection of the PMBUS_VOUT_MODE for the tda38640 PMBus driver. Previously, the driver assumed linear mode only, which would trigger "Failed to identify chip capabilities" for chips operating in direct mode. Changes: - Add support to identify both linear and direct VOUT modes. - Prevent misidentification and improve robustness of the driver. --- drivers/hwmon/pmbus/tda38640.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/drivers/hwmon/pmbus/tda38640.c b/drivers/hwmon/pmbus/tda38640.c index d902d39f49f4..410b7fc5aef5 100644 --- a/drivers/hwmon/pmbus/tda38640.c +++ b/drivers/hwmon/pmbus/tda38640.c @@ -23,6 +23,30 @@ struct tda38640_data { u32 en_pin_lvl; }; =20 +static int tda38640_identify(struct i2c_client *client, + struct pmbus_driver_info *info) +{ + int vout_mode; + + vout_mode =3D pmbus_read_byte_data(client, 0, PMBUS_VOUT_MODE); + if (vout_mode < 0 || vout_mode =3D=3D 0xff) + return vout_mode < 0 ? vout_mode : -ENODEV; + switch (vout_mode >> 5) { + case 0: /* Linear */ + info->format[PSC_VOLTAGE_OUT] =3D linear; + break; + case 2: /* Direct */ + info->format[PSC_VOLTAGE_OUT] =3D direct; + info->m[PSC_VOLTAGE_OUT] =3D 1; + info->b[PSC_VOLTAGE_OUT] =3D 0; + info->R[PSC_VOLTAGE_OUT] =3D 3; + break; + default: + return -ENODEV; + } + return 0; +} + #define to_tda38640_data(x) container_of(x, struct tda38640_data, info) =20 /* @@ -142,7 +166,6 @@ static int svid_mode(struct i2c_client *client, struct = tda38640_data *data) static struct pmbus_driver_info tda38640_info =3D { .pages =3D 1, .format[PSC_VOLTAGE_IN] =3D linear, - .format[PSC_VOLTAGE_OUT] =3D linear, .format[PSC_CURRENT_OUT] =3D linear, .format[PSC_CURRENT_IN] =3D linear, .format[PSC_POWER] =3D linear, @@ -153,6 +176,7 @@ static struct pmbus_driver_info tda38640_info =3D { | PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | PMBUS_HAVE_POUT | PMBUS_HAVE_PIN, + .identify =3D tda38640_identify, #if IS_ENABLED(CONFIG_SENSORS_TDA38640_REGULATOR) .num_regulators =3D 1, .reg_desc =3D tda38640_reg_desc, --- base-commit: 5fd0a1df5d05ad066e5618ccdd3d0fa6cb686c27 change-id: 20260204-tda38640_direct_mode-d6e47121a259 Best regards, --=20 Kyle Hsieh