boards: shields: add MR-MCXN-T1-OFL, MR-MCXN-T1-F9P and MR-MCXN-T1-IO shields - #117416
Draft
bperseghetti wants to merge 6 commits into
Draft
boards: shields: add MR-MCXN-T1-OFL, MR-MCXN-T1-F9P and MR-MCXN-T1-IO shields#117416bperseghetti wants to merge 6 commits into
bperseghetti wants to merge 6 commits into
Conversation
Add a GPIO nexus binding for the MR-MCXN-T1 stacking header. The board mates a stacking header that carries the expansion boards. Expansion-board overlays must reference connector nexus labels rather than raw SoC GPIO controllers, so the board needs a nexus that maps the header's control lines (sensor interrupts, resets, indicator and user inputs). The binding follows the existing connector-header pattern and includes gpio-nexus.yaml. Signed-off-by: Benjamin Perseghetti <bperseghetti@rudislabs.com>
Add board support for the NXP MR-MCXN-T1, a dual-core MCXN947 mobile-robotics controller. CPU0 runs the TrustZone-secure image and CPU1 is the secondary core. On-board hardware: - ENET-QoS MAC with a TJA1103 100BASE-T1 PHY, MAC derived from the SoC unique ID - Two FlexCAN controllers, each behind a TJA1462 CAN transceiver - I3C barometer (BMP581) and magnetometer (BMM350) - ICM-45686 hub IMU on LPSPI8 - APA102 indicator LED driven over FlexIO SPI The board mates a series of stacking expansion boards through the board connector. A GPIO nexus (mr-mcxn-t1-header) maps the header control lines, and the multiplexed peripheral buses are exposed as labeled bus nodes so expansion-board overlays reference the board instead of raw SoC controllers. FlexCOMM3 and FlexCOMM7 are shared across expansion boards, so only one function per instance is active at a time. The I3C bus stalls in a busy-wait at startup, so I3C and its two sensors are disabled by default. Doing so also frees flexcomm1 for the physical LPUART1 console, as the board has no USB CDC ACM console. The 32.768 kHz VBAT crystal oscillator is left off because enabling it wedges the boot ROM on warm reset, and the RTC counts the internal FRO16K until that ROM behavior is understood. To re-attempt enabling the VBAT 32.768 kHz crystal, gate it on the devicetree rtc clock-src being 1 and guard the switch with VBAT0->STATUSA OSC_RDY. Co-authored-by: Peter van der Perk <peter.vanderperk@nxp.com> Signed-off-by: Benjamin Perseghetti <bperseghetti@rudislabs.com>
Add the board documentation page for the MR-MCXN-T1. It covers the overview, hardware, supported features, the stacking-header connections, and programming and debugging. Signed-off-by: Benjamin Perseghetti <bperseghetti@rudislabs.com>
Add the optical-flow stacking shield for the MR-MCXN-T1 board. The shield carries an AFBR-S50 time-of-flight rangefinder, a PAA3905 optical-flow sensor and two InvenSense IMUs (ICM-42688 and ICM-45686), each on its own SPI bus routed through the board stacking header. The overlay enables the FlexCOMM SPI parents and their children exposed by the board and attaches the sensor nodes. Interrupt lines reference the board stacking-header GPIO nexus. The AFBR-S50 SPI-in-GPIO-mode pins and its chip select are the FlexCOMM3 SPI signals reused in GPIO mode, so they are named on the SoC GPIO controller alongside their bus. A shield Kconfig fragment raises the main stack to the 4096-byte minimum the AFBR-S50 driver asserts at build time. Signed-off-by: Benjamin Perseghetti <bperseghetti@rudislabs.com>
Add the GNSS stacking shield for the MR-MCXN-T1 board. The shield carries a u-blox F9P RTK GNSS receiver and a PNI RM3100 magnetometer. The receiver primary UART is on FlexCOMM7, its RTCM corrections UART is on FlexCOMM3, and the magnetometer is on the FlexCOMM4 I2C bus. The overlay enables the FlexCOMM parents and children exposed by the board and attaches the receiver and magnetometer nodes. The receiver reset and the magnetometer data-ready line reference the board stacking-header GPIO nexus. The receiver output rate, time-pulse capture, and network time distribution are left to the application. Signed-off-by: Benjamin Perseghetti <bperseghetti@rudislabs.com>
Add the Flex IO stacking shield for the MR-MCXN-T1 board. The shield is a passive breakout that routes an expansion I2C bus, two flow-controlled UARTs, two FlexPWM blocks and an ADC from the board to the stacking-header connectors. The overlay enables the FlexCOMM, FlexPWM and ADC instances the board exposes for the connector. Because the board carries no fixed silicon, the devices on the expansion connectors, the ADC channel setup and any PWM consumers are left to the application overlay. Signed-off-by: Benjamin Perseghetti <bperseghetti@rudislabs.com>
bperseghetti
force-pushed
the
pr-mcxn-t1-shields
branch
from
August 26, 2026 04:38
2b6720d to
345396c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add three stacking shields for the MR-MCXN-T1 board's expansion header:
Each shield ships its overlay, config fragment, shield.yml, and documentation with a board-view image, and builds against the mr_mcxn_t1 board with the documented sample commands.
Co-stacking notes documented on each page: OFL and F9P contend for FlexCOMM7, F9P and IO contend for the port 3 pins, and OFL and IO contend for FlexCOMM3, so those pairs are mutually exclusive.
Opened as a draft: the branch is stacked on the MR-MCXN-T1 board PR and carries its commits until that merges.
Dependencies: #117414 (the MR-MCXN-T1 board, which this branch stacks on). For full sensor function: #117396 and #117406 (AFBR-S50 LPSPI path and error recovery), #117394 (ICM45686 streaming), #117395 (RM3100).