Re: [PATCH 1/3] dt-bindings: connector: Add PCIe M.2 Mechanical Key B connector
From: Alexey Charkov
Date: Wed Oct 21 2026 - 11:51:59 EST
Hi Krishna,
On Wed, Oct 21, 2026 at 5:51 PM Krishna Chaitanya Chundru
<krishna.chundru@xxxxxxxxxxxxxxxx> 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
> +
> + 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
> +
> + 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
This seems to be missing the four CONFIG_* pins, which are quite
crucial in these connectors, as they define which interfaces the
module asks the host to provide on the respective pins. Without those
module type detection is impossible.
> + 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
> +
> + anyOf:
> + - required:
> + - port@0
> + - required:
> + - port@1
> + - required:
> + - port@3
This misses SATA which shares pins with PCIe. PCIe second lane also
conflicts with USB 3.1/SSIC, which isn't captured here. Should it be?
Should the graph also envisage connections for the I2C bus (GNSS),
audio (2 or 4 wire), re-muxing of W_DISABLE2# and WAKE_ON_WWAN# into
HSIC functions in Port Config_3, GNSS interrupt line and the such?
Should the connector node also define pinctrl configurations for each
of the 15 interface configurations?
Best regards,
Alexey