1*926194a6SManivannan Sadhasivam# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*926194a6SManivannan Sadhasivam%YAML 1.2 3*926194a6SManivannan Sadhasivam--- 4*926194a6SManivannan Sadhasivam$id: http://devicetree.org/schemas/connector/pcie-m2-m-connector.yaml# 5*926194a6SManivannan Sadhasivam$schema: http://devicetree.org/meta-schemas/core.yaml# 6*926194a6SManivannan Sadhasivam 7*926194a6SManivannan Sadhasivamtitle: PCIe M.2 Mechanical Key M Connector 8*926194a6SManivannan Sadhasivam 9*926194a6SManivannan Sadhasivammaintainers: 10*926194a6SManivannan Sadhasivam - Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> 11*926194a6SManivannan Sadhasivam 12*926194a6SManivannan Sadhasivamdescription: 13*926194a6SManivannan Sadhasivam A PCIe M.2 M connector node represents a physical PCIe M.2 Mechanical Key M 14*926194a6SManivannan Sadhasivam connector. The Mechanical Key M connectors are used to connect SSDs to the 15*926194a6SManivannan Sadhasivam host system over PCIe/SATA interfaces. These connectors also offer optional 16*926194a6SManivannan Sadhasivam interfaces like USB, SMBus. 17*926194a6SManivannan Sadhasivam 18*926194a6SManivannan Sadhasivamproperties: 19*926194a6SManivannan Sadhasivam compatible: 20*926194a6SManivannan Sadhasivam const: pcie-m2-m-connector 21*926194a6SManivannan Sadhasivam 22*926194a6SManivannan Sadhasivam vpcie3v3-supply: 23*926194a6SManivannan Sadhasivam description: A phandle to the regulator for 3.3v supply. 24*926194a6SManivannan Sadhasivam 25*926194a6SManivannan Sadhasivam vpcie1v8-supply: 26*926194a6SManivannan Sadhasivam description: A phandle to the regulator for VIO 1.8v supply. 27*926194a6SManivannan Sadhasivam 28*926194a6SManivannan Sadhasivam ports: 29*926194a6SManivannan Sadhasivam $ref: /schemas/graph.yaml#/properties/ports 30*926194a6SManivannan Sadhasivam description: OF graph bindings modeling the interfaces exposed on the 31*926194a6SManivannan Sadhasivam connector. Since a single connector can have multiple interfaces, every 32*926194a6SManivannan Sadhasivam interface has an assigned OF graph port number as described below. 33*926194a6SManivannan Sadhasivam 34*926194a6SManivannan Sadhasivam properties: 35*926194a6SManivannan Sadhasivam port@0: 36*926194a6SManivannan Sadhasivam $ref: /schemas/graph.yaml#/properties/port 37*926194a6SManivannan Sadhasivam description: PCIe interface 38*926194a6SManivannan Sadhasivam 39*926194a6SManivannan Sadhasivam port@1: 40*926194a6SManivannan Sadhasivam $ref: /schemas/graph.yaml#/properties/port 41*926194a6SManivannan Sadhasivam description: SATA interface 42*926194a6SManivannan Sadhasivam 43*926194a6SManivannan Sadhasivam port@2: 44*926194a6SManivannan Sadhasivam $ref: /schemas/graph.yaml#/properties/port 45*926194a6SManivannan Sadhasivam description: USB 2.0 interface 46*926194a6SManivannan Sadhasivam 47*926194a6SManivannan Sadhasivam anyOf: 48*926194a6SManivannan Sadhasivam - required: 49*926194a6SManivannan Sadhasivam - port@0 50*926194a6SManivannan Sadhasivam - required: 51*926194a6SManivannan Sadhasivam - port@1 52*926194a6SManivannan Sadhasivam 53*926194a6SManivannan Sadhasivam i2c-parent: 54*926194a6SManivannan Sadhasivam $ref: /schemas/types.yaml#/definitions/phandle 55*926194a6SManivannan Sadhasivam description: I2C interface 56*926194a6SManivannan Sadhasivam 57*926194a6SManivannan Sadhasivam clocks: 58*926194a6SManivannan Sadhasivam description: 32.768 KHz Suspend Clock (SUSCLK) input from the host system to 59*926194a6SManivannan Sadhasivam the M.2 card. Refer, PCI Express M.2 Specification r4.0, sec 3.1.12.1 for 60*926194a6SManivannan Sadhasivam more details. 61*926194a6SManivannan Sadhasivam maxItems: 1 62*926194a6SManivannan Sadhasivam 63*926194a6SManivannan Sadhasivam pedet-gpios: 64*926194a6SManivannan Sadhasivam description: GPIO input to PEDET signal. This signal is used by the host 65*926194a6SManivannan Sadhasivam systems to determine the communication protocol that the M.2 card uses; 66*926194a6SManivannan Sadhasivam SATA signaling (low) or PCIe signaling (high). Refer, PCI Express M.2 67*926194a6SManivannan Sadhasivam Specification r4.0, sec 3.3.4.2 for more details. 68*926194a6SManivannan Sadhasivam maxItems: 1 69*926194a6SManivannan Sadhasivam 70*926194a6SManivannan Sadhasivam viocfg-gpios: 71*926194a6SManivannan Sadhasivam description: GPIO input to IO voltage configuration (VIO_CFG) signal. This 72*926194a6SManivannan Sadhasivam signal is used by the host systems to determine whether the card supports 73*926194a6SManivannan Sadhasivam an independent IO voltage domain for the sideband signals or not. Refer, 74*926194a6SManivannan Sadhasivam PCI Express M.2 Specification r4.0, sec 3.1.15.1 for more details. 75*926194a6SManivannan Sadhasivam maxItems: 1 76*926194a6SManivannan Sadhasivam 77*926194a6SManivannan Sadhasivam pwrdis-gpios: 78*926194a6SManivannan Sadhasivam description: GPIO output to Power Disable (PWRDIS) signal. This signal is 79*926194a6SManivannan Sadhasivam used by the host system to disable power on the M.2 card. Refer, PCI 80*926194a6SManivannan Sadhasivam Express M.2 Specification r4.0, sec 3.3.5.2 for more details. 81*926194a6SManivannan Sadhasivam maxItems: 1 82*926194a6SManivannan Sadhasivam 83*926194a6SManivannan Sadhasivam pln-gpios: 84*926194a6SManivannan Sadhasivam description: GPIO output to Power Loss Notification (PLN#) signal. This 85*926194a6SManivannan Sadhasivam signal is used by the host system to notify the M.2 card that the power 86*926194a6SManivannan Sadhasivam loss event is about to occur. Refer, PCI Express M.2 Specification r4.0, 87*926194a6SManivannan Sadhasivam sec 3.2.17.1 for more details. 88*926194a6SManivannan Sadhasivam maxItems: 1 89*926194a6SManivannan Sadhasivam 90*926194a6SManivannan Sadhasivam plas3-gpios: 91*926194a6SManivannan Sadhasivam description: GPIO input to Power Loss Acknowledge (PLA_S3#) signal. This 92*926194a6SManivannan Sadhasivam signal is used by the host system to receive the acknowledgment of the M.2 93*926194a6SManivannan Sadhasivam card's preparation for power loss. 94*926194a6SManivannan Sadhasivam maxItems: 1 95*926194a6SManivannan Sadhasivam 96*926194a6SManivannan Sadhasivamrequired: 97*926194a6SManivannan Sadhasivam - compatible 98*926194a6SManivannan Sadhasivam - vpcie3v3-supply 99*926194a6SManivannan Sadhasivam 100*926194a6SManivannan SadhasivamadditionalProperties: false 101*926194a6SManivannan Sadhasivam 102*926194a6SManivannan Sadhasivamexamples: 103*926194a6SManivannan Sadhasivam # PCI M.2 Key M connector for SSDs with PCIe interface 104*926194a6SManivannan Sadhasivam - | 105*926194a6SManivannan Sadhasivam #include <dt-bindings/gpio/gpio.h> 106*926194a6SManivannan Sadhasivam 107*926194a6SManivannan Sadhasivam connector { 108*926194a6SManivannan Sadhasivam compatible = "pcie-m2-m-connector"; 109*926194a6SManivannan Sadhasivam vpcie3v3-supply = <&vreg_nvme>; 110*926194a6SManivannan Sadhasivam i2c-parent = <&i2c0>; 111*926194a6SManivannan Sadhasivam pedet-gpios = <&tlmm 95 GPIO_ACTIVE_HIGH>; 112*926194a6SManivannan Sadhasivam viocfg-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>; 113*926194a6SManivannan Sadhasivam pwrdis-gpios = <&tlmm 97 GPIO_ACTIVE_HIGH>; 114*926194a6SManivannan Sadhasivam pln-gpios = <&tlmm 98 GPIO_ACTIVE_LOW>; 115*926194a6SManivannan Sadhasivam plas3-gpios = <&tlmm 99 GPIO_ACTIVE_LOW>; 116*926194a6SManivannan Sadhasivam 117*926194a6SManivannan Sadhasivam ports { 118*926194a6SManivannan Sadhasivam #address-cells = <1>; 119*926194a6SManivannan Sadhasivam #size-cells = <0>; 120*926194a6SManivannan Sadhasivam 121*926194a6SManivannan Sadhasivam port@0 { 122*926194a6SManivannan Sadhasivam #address-cells = <1>; 123*926194a6SManivannan Sadhasivam #size-cells = <0>; 124*926194a6SManivannan Sadhasivam 125*926194a6SManivannan Sadhasivam reg = <0>; 126*926194a6SManivannan Sadhasivam 127*926194a6SManivannan Sadhasivam endpoint@0 { 128*926194a6SManivannan Sadhasivam reg = <0>; 129*926194a6SManivannan Sadhasivam remote-endpoint = <&pcie6_port0_ep>; 130*926194a6SManivannan Sadhasivam }; 131*926194a6SManivannan Sadhasivam }; 132*926194a6SManivannan Sadhasivam 133*926194a6SManivannan Sadhasivam port@2 { 134*926194a6SManivannan Sadhasivam #address-cells = <1>; 135*926194a6SManivannan Sadhasivam #size-cells = <0>; 136*926194a6SManivannan Sadhasivam 137*926194a6SManivannan Sadhasivam reg = <2>; 138*926194a6SManivannan Sadhasivam 139*926194a6SManivannan Sadhasivam endpoint@0 { 140*926194a6SManivannan Sadhasivam reg = <0>; 141*926194a6SManivannan Sadhasivam remote-endpoint = <&usb_hs_ep>; 142*926194a6SManivannan Sadhasivam }; 143*926194a6SManivannan Sadhasivam }; 144*926194a6SManivannan Sadhasivam }; 145*926194a6SManivannan Sadhasivam }; 146