Re: [PATCH 1/3] dt-bindings: connector: Add PCIe M.2 Mechanical Key B connector

From: Krishna Chaitanya Chundru

Date: Fri Nov 13 2026 - 20:45:50 EST




On 10/30/2026 11:14 PM, Rob Herring wrote:
> On Wed, Oct 21, 2026 at 07:21:22PM +0530, Krishna Chaitanya Chundru wrote:
>> Add the devicetree binding for PCIe M.2 Mechanical Key B connector
>> defined in the PCI Express M.2 Specification, r4.2, sec 3.2.19.1. This
>> connector is used to attach WWAN Adapters to the host machine over
>> interfaces such as PCIe, USB3.1 Gen1, SSIC, or USB 2.0, selected by the
>> Adapter's configuration pins.
>>
>> The connector provides a primary power supply of 3.3V/VBAT, along with
>> optional GPIO signals for WWAN-specific power/radio control:
>> FULL_CARD_POWER_OFF#, RESET#, W_DISABLE1#/2#, WAKE_ON_WWAN#, and DPR.
>>
>> Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@xxxxxxxxxxxxxxxx>
>> ---
>> .../bindings/connector/pcie-m2-b-connector.yaml | 146 +++++++++++++++++++++
>> MAINTAINERS | 1 +
>> 2 files changed, 147 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/connector/pcie-m2-b-connector.yaml b/Documentation/devicetree/bindings/connector/pcie-m2-b-connector.yaml
>> new file mode 100644
>> index 000000000000..a7f4bcbc5119
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/connector/pcie-m2-b-connector.yaml
>> @@ -0,0 +1,146 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/connector/pcie-m2-b-connector.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: PCIe M.2 Mechanical Key B Connector
>> +
>> +maintainers:
>> + - Krishna Chaitanya Chundru <krishna.chundru@xxxxxxxxxxxxxxxx>
>> +
>> +description:
>> + A PCIe M.2 B connector node represents a physical PCIe M.2 Mechanical Key B
>> + connector. Mechanical Key B connectors are used to connect WWAN devices to
>> + the host machine over interfaces like PCIe, USB3.1 Gen1, SSIC, or USB 2.0,
>> + selected by the Adapter's configuration pins.
>> +
>> +properties:
>> + compatible:
>> + const: pcie-m2-b-connector
>> +
>> + vpcie3v3-supply:
>> + description: A phandle to the regulator for the 3.3v/VBAT supply.
>> +
>> + full-card-power-off-gpios:
>> + description: GPIO output to FULL_CARD_POWER_OFF# signal. This signal is
>> + used by the host system to turn off the entire Adapter. Refer, PCI
>> + Express M.2 Specification r4.0, sec 3.2.13.1 for more details.
>> + maxItems: 1
>> +
>> + reset-gpios:
>> + description: GPIO output to RESET# signal. This signal is used by the
>> + host system to place the WWAN Adapter into a power-on reset condition.
>> + Refer, PCI Express M.2 Specification r4.0, sec 3.2.13.2 for more
>> + details.
>> + maxItems: 1
>> +
>> + w-disable1-gpios:
>> + description: GPIO output to W_DISABLE1# signal. This signal is used by
>> + the host system to disable the WWAN radio on the Adapter. Refer, PCI
>> + Express M.2 Specification r4.0, sec 3.1.12.3 for more details.
>> + maxItems: 1
>> +
>> + w-disable2-gpios:
>> + description: GPIO output to W_DISABLE2# signal (default function of
>> + GPIO_10). This signal is used by the host system to disable a second
>> + radio on the Adapter. Refer, PCI Express M.2 Specification r4.0,
>> + sec 3.1.12.3 for more details.
>> + maxItems: 1
> On the pinouts I find, I only see 0 or 1 w_disable.
W_DISABLE1# is pin 8. W_DISABLE2# is GPIO_10 (pin 26), valid in Port
Config_0..2 only and absent from the SSD pinouts. It stays optional, and I'll
document the dependency.
>> +
>> + wowwan-gpios:
>> + description: GPIO input to WAKE_ON_WWAN# (WoWWAN#) signal. The Adapter
>> + asserts this signal to wake up the host system. Refer, PCI Express M.2
>> + Specification r4.0, sec 3.2.13.3.6 for more details.
>> + maxItems: 1
> Don't see this on any of them. There is an ALERT# signal.
 WoWWAN# is GPIO_11 (pin 23) in Tables 3-21/3-22, Config_0..2 only. ALERT#
(pin 44) is the SSD SMBus alert in 3-23/3-24.  I'll keep WoWWAN# optional and
add ALERT# separately, since Alexey noted the socket also takes SSDs.+
>> + dpr-gpios:
>> + description: GPIO output to the Dynamic Power Reduction (DPR) signal.
>> + This signal is provided by a host system proximity sensor to the
>> + Adapter to trigger a reduction in the radio transmit output power to
>> + meet regulatory SAR requirements. Refer, PCI Express M.2 Specification
>> + r4.0, sec 3.2.13.4 for more details.
>> + maxItems: 1
>> +
>> + clocks:
>> + description: 32.768 KHz Suspend Clock (SUSCLK) input from the host system to
>> + the M.2 card. Refer, PCI Express M.2 Specification r4.0, sec 3.1.12.1 for
>> + more details.
>> + maxItems: 1
>> +
>> + ports:
>> + $ref: /schemas/graph.yaml#/properties/ports
>> + description: OF graph bindings modeling the interfaces exposed on the
>> + connector. Since a single connector can have multiple interfaces, every
>> + interface has an assigned OF graph port number as described below.
>> +
>> + properties:
>> + port@0:
>> + $ref: /schemas/graph.yaml#/properties/port
>> + description: PCIe interface for WWAN
>> +
>> + port@1:
>> + $ref: /schemas/graph.yaml#/properties/port
>> + description: SSIC interface for WWAN
>> +
>> + port@2:
>> + $ref: /schemas/graph.yaml#/properties/port
>> + description: USB 2.0 interface for WWAN
>> +
>> + port@3:
>> + $ref: /schemas/graph.yaml#/properties/port
>> + description: USB3.1 Gen1 interface for WWAN
> Port nodes are generally independent. Endpoints are muxed connections.
> As SSIC and USB3 are the same pins, they should be the same port. You
> could use endpoint numbering to define SSIC vs. USB3.
 Agreed. I'll use pin-group ports with endpoints as the alternatives. Should
PCIe lane 1 be an endpoint on the 29-37 port,  or should the PCIe port imply
link width and leave lane 1 out of the graph?

- Krishna Chaitanya.
> Rob