Skip to content

hwmon: (pmbus/ltc2978) Add support for LT7175, LT7176P, LTM4681, LTM4682 - #3596

Open
cdeguzm4 wants to merge 4 commits into
analogdevicesinc:mainfrom
cdeguzm4:pmbus-lt7175-ltm4681
Open

cdeguzm4 wants to merge 4 commits into
analogdevicesinc:mainfrom
cdeguzm4:pmbus-lt7175-ltm4681

Conversation

@cdeguzm4

@cdeguzm4 cdeguzm4 commented Oct 9, 2026

Copy link
Copy Markdown

PR Description

Adds support for the following chips to the existing ltc2978 PMBus driver:

  • LT7175 / LT7175-1 (part of LT7170 family, MFR_SPECIAL_ID 0x1C1D masked to 0x1C10)
  • LT7176P / LT7176P-1 (same family, same MFR_SPECIAL_ID)
  • LTM4681 — quad 31.25A / single 125A µModule step-down regulator (commits inherited from reviewed PR Dev/ltm4681 add LTM4681 and LTM4682 #3085, now owned by this PR)
  • LTM4682 — same architecture as LTM4681 (commits inherited from reviewed PR Dev/ltm4681 add LTM4681 and LTM4682 #3085, now owned by this PR)

Changes include:

  • DT bindings YAML updates (Documentation/devicetree/bindings/hwmon/lltc,ltc2978.yaml)
  • Driver code additions in drivers/hwmon/pmbus/ltc2978.c (chip IDs, ltc2978_get_id() string matches, probe switch cases, i2c_id/of_match tables)
  • Driver documentation updates (Documentation/hwmon/ltc2978.rst)
  • Kconfig help text update

PR Type

  • Bug fix (a change that fixes an issue)
  • New feature (a change that adds new functionality)
  • Breaking change (a change that affects other repos or cause CIs to fail)

PR Checklist

  • I have conducted a self-review of my own code changes
  • I have compiled my changes, including the documentation
  • I have tested the changes on the relevant hardware
  • I have updated the documentation outside this repo accordingly
  • I have provided links for the relevant upstream lore

ivangilmercano and others added 4 commits October 9, 2026 19:52
Add LTM4682 and LTM4681 to supported devices of LTC2978. Unlike other LTM46xx
devices, LTM4681 and LTM4682 is a μModule regulator that outputs four channels.

Signed-off-by: ivangilmercano <ivangil.mercano@analog.com>
Add support for LTM4681 and LTM4682. The LTM4681 an LTM4682 is a quad 31.25A and
single 125A, switching mode DC/DC step-down μModule regulator integrated with
4-channel power system manager.

This adds only the chip id, the checks for the manufacturer special id,
and the relevant attributes for the device's pmbus_driver_info.

Signed-off-by: ivangilmercano <ivangil.mercano@analog.com>
Document the compatible strings for the LT7175/LT7175-1 and
LT7176P/LT7176P-1 PMBus buck regulators newly supported by the
ltc2978 driver.

Signed-off-by: Christopher de Guzman <christopher.deguzman@analog.com>
Add support for LT7175/LT7175-1 and LT7176P/LT7176P-1 PMBus buck
regulators. These parts share the LT7170 family MFR_SPECIAL_ID
(0x1C1D masked to 0x1C10) and use the same PMBus register layout,
so they reuse the existing lt7170/lt7171 probe path. Variants are
distinguished by reading the PMBUS_IC_DEVICE_ID ASCII string.

Signed-off-by: Christopher de Guzman <christopher.deguzman@analog.com>
@github-actions

This comment was marked as low quality.

@github-actions

Copy link
Copy Markdown
Contributor

LLM review

This series adds support for the LTM4681/LTM4682 µModule regulators and the
LT7175/LT7176P buck regulators to the hwmon/pmbus/ltc2978 driver, along with
the corresponding dt-bindings and documentation updates.

Session: 38230823284

1f8f28d672c5 - Add support for LTM4681 and LTM4682

Wrong MFR_SPECIAL_ID for LTM4681: LTM4681_ID is defined as 0x4140,
identical to LTM4680_ID. The LTM4681 datasheet (now available in the
corpus) documents MFR_SPECIAL_ID as 0x415X, which masks to 0x4150 with
LTC2978_ID_MASK (0xfff0), not 0x4140. LTM4680_ID (0x414X) and
LTM4682_ID (0x418X → 0x4180) are correctly defined per their own
datasheets. As written, ltc2978_get_id() can never distinguish LTM4681 from
LTM4680 over the primary MFR_SPECIAL_ID path - it always resolves to
ltm4680.

Missing switch case: separately, ltm4681 is added to enum chips, the
i2c_device_id/of_device_id tables, and the MFR_MODEL ASCII fallback
table, but ltc2978_probe() has no case ltm4681:. Even if the ID value
above is fixed and ltc2978_get_id() correctly returns ltm4681, probe()
falls through to default: return -ENODEV; because pmbus_driver_info is
never populated for it.

Incorrect comment: /* Undocumented on LTM4682 */ was added next to
LTC3880_MFR_TEMPERATURE2_PEAK (0xf4), but both the LTM4681 and LTM4682
datasheets explicitly document MFR_TEMPERATURE_2_PEAK at 0xF4. The
comment also introduces the checkpatch "space before tabs" warning.

Also a Kconfig typo ("TM4686" instead of "LTM4686") and broken
indentation (spaces instead of tabs) in Documentation/hwmon/ltc2978.rst.

536bd674d45a - Add support for LT7175 and LT7176P

The 0x1C1D → 0x1C10 MFR_SPECIAL_ID masking claim in the commit message
is confirmed against both the LT7170/LT7170-1 and LT7176/LT7176-1
datasheets (both report 0x1C1D). However, no datasheet for "LT7175" or
"LT7176P" exists in the available corpus; only "LT7176/LT7176-1" (no "P") is
documented, with IC_DEVICE_ID string "LT7176 or LT7176-1" (no trailing
P). The new code matches "LT7176P"/"LT7176P-1" against
PMBUS_IC_DEVICE_ID - if actual silicon reports "LT7176", this match never
succeeds. Could not confirm or deny this is a real product variant; worth
double-checking against real silicon.

The Kconfig help text for SENSORS_LTC2978_REGULATOR was not updated to
mention LT7175/LT7176P.

CI warnings

checkpatch flagged (non-strict, didn't fail the job):

  • Two commit descriptions (27076a97a764, 1f8f28d672c5) exceed 75
    chars/line.
  • drivers/hwmon/pmbus/ltc2978.c:52: space before tab in the
    LTC3880_MFR_TEMPERATURE2_PEAK definition (1f8f28d672c5).

Verification data

Datasheets were pulled from the docling-converted corpus: ltm4680.md,
ltm4681.md, ltm4682.md, lt7170-lt7170-1.md, lt7176_lt7176-1.md. A
corpus-wide search confirmed no LT7175/LT7176P datasheet is present.
ltm4681.md's MFR_SPECIAL_ID entry (0x415X) and MFR_TEMPERATURE_2_PEAK
entry (0xF4) were used for the findings above. dt-doc-validate was run
against the updated binding with no errors. The driver was rebuilt with
set_arch gcc_x86 + get_adi_ci_defconfig + auto_set_kconfig (enables
CONFIG_SENSORS_LTC2978), confirming it compiles cleanly both before and
after the suggested fixups.

Suggested patches

  • 0001-fixup-hwmon-pmbus-ltc2978-Add-support-for-LTM4681-an.patch
    (1f8f28d672c5) — fixes LTM4681_ID, adds the missing case ltm4681:,
    removes the incorrect "Undocumented on LTM4682" comment (also fixes the
    space-before-tab warning), and fixes the rst indentation.
  • 0002-fixup-hwmon-pmbus-ltc2978-Add-support-for-LT7175-and.patch
    (536bd674d45a) — fixes the Kconfig "TM4686" typo and adds LT7175/LT7176P
    to the SENSORS_LTC2978_REGULATOR help text.

Apply with:

cd path/to/repository
export GITHUB_TOKEN=ghp_***
apply-patches --repo=analogdevicesinc/linux 38230823284
Install instructions

The following one-liner installs the script if not present already:

curl -fSsL "https://raw.githubusercontent.com/analogdevicesinc/doctools/refs/heads/main/ci/scripts/apply-patches.sh"      -o ~/.local/bin/apply-patches.sh &&   grep -q "/apply-patches.sh" ~/.bashrc || echo "source ~/.local/bin/apply-patches.sh" >> $_ ; . $_

More information at AI Usage.

#define LTM4678_ID_REV1 0x4100
#define LTM4678_ID_REV2 0x4110
#define LTM4680_ID 0x4140
#define LTM4681_ID 0x4140

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

llm findings seem correct.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

llm review Request a review from a LLM Reviewer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants