Skip to content

Add Flex BMR467 PMBus PoL regulator device driver#1439

Merged
ruck314 merged 1 commit into
pre-releasefrom
flex-BMR467
Jun 16, 2026
Merged

Add Flex BMR467 PMBus PoL regulator device driver#1439
ruck314 merged 1 commit into
pre-releasefrom
flex-BMR467

Conversation

@ruck314

@ruck314 ruck314 commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Description

Adds a PyRogue device driver for the Flex BMR467 series PMBus PoL regulator (Input 7.5–14 V, Output up to 120 A / 216 W).

A new `surf/devices/flex/` package was created, modeled on the existing `surf/devices/intel/_EM22xx.py` template and the `surf/devices/analog_devices/_Ltm4664.py` MFR-extension pattern. Register definitions are derived from the BMR467 technical specification (doc 28701-BMR 467 Rev E).

Changes

  • `python/surf/devices/flex/init.py` — package init.
  • `python/surf/devices/flex/_Bmr467.py` — `Bmr467(surf.protocols.i2c.PMBus)`:
    • `NOT_IMPLEMENTED` removes standard PMBus commands the BMR467 does not support (PAGE, fan commands, input-current `READ_IIN`/`IIN_OC_`, `READ_PIN`/`READ_POUT`, `POUT_MAX`/`MAX_DUTY`, `VIN_ON`/`VIN_OFF`, `TON_MAX_`, fan/other status registers, etc.). Also drops `IOUT_OC/UC_FAULT_RESPONSE` since the BMR467 replaces these with MFR variants at 0xE5/0xE6.
    • Adds manufacturer-specific registers (0xAD–0xFD) per the spec appendix.
    • Block-format commands are stubbed as comments (the I2C core only supports fixed-width word/byte transfers).
    • `LinkVariable` conversions: `VIN`, `VOUT`, total `IOUT`, per-phase `IOUT_PHASE[0]/[1]`, `TEMPERATURE[1..3]`, `DUTY_CYCLE`, `FREQUENCY`.

Verification

  • Instantiated under rogue `v6.12.0` with a `MemEmulate` memBase (114 nodes; removed/added register assertions pass).
  • `flake8 --count python/surf/devices/flex/` → clean (matches CI invocation).
  • `compileall` → clean.

Add surf.devices.flex package with a Bmr467 PyRogue device derived from
surf.protocols.i2c.PMBus. Standard PMBus commands not supported by the
BMR467 are removed via notImplemented, and the manufacturer-specific
commands (0xAD-0xFD) from the BMR467 technical specification are added.
Block-format commands are stubbed out as comments since the I2C core
only supports fixed-width transfers.
@ruck314 ruck314 requested a review from scompa18 June 16, 2026 22:08
@ruck314 ruck314 marked this pull request as ready for review June 16, 2026 22:08
@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 25.23%. Comparing base (e5c7de9) to head (51797aa).
⚠️ Report is 447 commits behind head on pre-release.
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@               Coverage Diff                @@
##           pre-release    #1439       +/-   ##
================================================
- Coverage        36.66%   25.23%   -11.44%     
================================================
  Files               28      258      +230     
  Lines             1459    20423    +18964     
================================================
+ Hits               535     5153     +4618     
- Misses             924    15270    +14346     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ruck314 ruck314 merged commit 43a275c into pre-release Jun 16, 2026
5 checks passed
@ruck314 ruck314 deleted the flex-BMR467 branch June 16, 2026 23:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants