Re: [PATCH v5 1/7] dt-bindings: pinctrl: add NXP MC33978/MC34978 MSDI
From: "Rob Herring (Arm)" <robh@kernel.org>
Date: 2026-03-16 17:18:55
Also in:
linux-gpio, linux-hwmon, lkml
On Mon, 16 Mar 2026 15:05:06 +0100, Oleksij Rempel wrote:
Add device tree binding documentation for the NXP MC33978 and MC34978 Multiple Switch Detection Interface (MSDI) devices. The MC33978 and MC34978 differ primarily in their operating temperature ranges. While not software-detectable, providing specific compatible strings allows the hwmon subsystem to correctly interpret thermal thresholds and hardware faults. These ICs monitor up to 22 mechanical switch contacts in automotive and industrial environments. They provide configurable wetting currents to break through contact oxidation and feature extensive hardware protection against thermal overload and voltage transients (load dumps/brown-outs). The device interfaces via SPI. While it provides multiple functions, its primary hardware purpose is pin/switch control. To accurately represent the hardware as a single physical integrated circuit without unnecessary DT overhead, all functions are flattened into a single pinctrl node: - pinctrl: Exposing the 22 switch inputs (SG/SP pins) as a GPIO controller and managing their pin configurations. - hwmon: Exposing critical hardware faults (OT, OV, UV) and static voltage/temperature thresholds. - mux: Controlling the 24-to-1 analog multiplexer to route pin voltages, internal temperature, or battery voltage to an external SoC ADC. Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> --- changes v5: - Commit Message: Added justification for distinct compatible strings based on temperature ranges. - Restricted pins property to an explicit enum of valid hardware pins changes v4: - Drop the standalone mfd/nxp,mc33978.yaml schema entirely. - Move the unified device binding to bindings/pinctrl/nxp,mc33978.yaml, - Remove the dedicated child node compatible strings (nxp,mc33978-pinctrl). - Flatten the pinctrl/gpio properties directly into the main SPI device node. changes v3: - Drop regular expression pattern from pinctrl child node and define it as a standard property - Reorder required properties list in MFD binding - Remove stray blank line from the MFD binding devicetree example - Replace unevaluatedProperties with additionalProperties in the pinctrl binding changes v2: - Squashed MFD, pinctrl, hwmon, and mux bindings into a single patch - Removed the empty hwmon child node - Folded the mux-controller node into the parent MFD node - Added vbatp-supply and vddq-supply to the required properties block - Changed the example node name from mc33978@0 to gpio@0 - Removed unnecessary literal block scalars (|) from descriptions - Documented SG, SP, and SB pin acronyms in the pinctrl description - Added consumer polarity guidance (GPIO_ACTIVE_LOW/HIGH) for SG/SB inputs, with a note on output circuit dependency - Updated commit message --- .../bindings/pinctrl/nxp,mc33978.yaml | 153 ++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 Documentation/devicetree/bindings/pinctrl/nxp,mc33978.yaml
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>