1*00bb478bSBryan O'Donoghue# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*00bb478bSBryan O'Donoghue%YAML 1.2 3*00bb478bSBryan O'Donoghue--- 4*00bb478bSBryan O'Donoghue$id: http://devicetree.org/schemas/usb/qcom,pmic-typec.yaml# 5*00bb478bSBryan O'Donoghue$schema: http://devicetree.org/meta-schemas/core.yaml# 6*00bb478bSBryan O'Donoghue 7*00bb478bSBryan O'Donoghuetitle: Qualcomm PMIC based USB Type-C block 8*00bb478bSBryan O'Donoghue 9*00bb478bSBryan O'Donoghuemaintainers: 10*00bb478bSBryan O'Donoghue - Bryan O'Donoghue <bryan.odonoghue@linaro.org> 11*00bb478bSBryan O'Donoghue 12*00bb478bSBryan O'Donoghuedescription: 13*00bb478bSBryan O'Donoghue Qualcomm PMIC Type-C block 14*00bb478bSBryan O'Donoghue 15*00bb478bSBryan O'Donoghueproperties: 16*00bb478bSBryan O'Donoghue compatible: 17*00bb478bSBryan O'Donoghue enum: 18*00bb478bSBryan O'Donoghue - qcom,pm8150b-typec 19*00bb478bSBryan O'Donoghue 20*00bb478bSBryan O'Donoghue connector: 21*00bb478bSBryan O'Donoghue type: object 22*00bb478bSBryan O'Donoghue $ref: /schemas/connector/usb-connector.yaml# 23*00bb478bSBryan O'Donoghue unevaluatedProperties: false 24*00bb478bSBryan O'Donoghue 25*00bb478bSBryan O'Donoghue reg: 26*00bb478bSBryan O'Donoghue description: Type-C port and pdphy SPMI register base offsets 27*00bb478bSBryan O'Donoghue maxItems: 2 28*00bb478bSBryan O'Donoghue 29*00bb478bSBryan O'Donoghue interrupts: 30*00bb478bSBryan O'Donoghue items: 31*00bb478bSBryan O'Donoghue - description: Type-C CC attach notification, VBUS error, tCCDebounce done 32*00bb478bSBryan O'Donoghue - description: Type-C VCONN powered 33*00bb478bSBryan O'Donoghue - description: Type-C CC state change 34*00bb478bSBryan O'Donoghue - description: Type-C VCONN over-current 35*00bb478bSBryan O'Donoghue - description: Type-C VBUS state change 36*00bb478bSBryan O'Donoghue - description: Type-C Attach/detach notification 37*00bb478bSBryan O'Donoghue - description: Type-C Legacy cable detect 38*00bb478bSBryan O'Donoghue - description: Type-C Try.Src Try.Snk state change 39*00bb478bSBryan O'Donoghue - description: Power Domain Signal TX - HardReset or CableReset signal TX 40*00bb478bSBryan O'Donoghue - description: Power Domain Signal RX - HardReset or CableReset signal RX 41*00bb478bSBryan O'Donoghue - description: Power Domain TX complete 42*00bb478bSBryan O'Donoghue - description: Power Domain RX complete 43*00bb478bSBryan O'Donoghue - description: Power Domain TX fail 44*00bb478bSBryan O'Donoghue - description: Power Domain TX message discard 45*00bb478bSBryan O'Donoghue - description: Power Domain RX message discard 46*00bb478bSBryan O'Donoghue - description: Power Domain Fast Role Swap event 47*00bb478bSBryan O'Donoghue 48*00bb478bSBryan O'Donoghue interrupt-names: 49*00bb478bSBryan O'Donoghue items: 50*00bb478bSBryan O'Donoghue - const: or-rid-detect-change 51*00bb478bSBryan O'Donoghue - const: vpd-detect 52*00bb478bSBryan O'Donoghue - const: cc-state-change 53*00bb478bSBryan O'Donoghue - const: vconn-oc 54*00bb478bSBryan O'Donoghue - const: vbus-change 55*00bb478bSBryan O'Donoghue - const: attach-detach 56*00bb478bSBryan O'Donoghue - const: legacy-cable-detect 57*00bb478bSBryan O'Donoghue - const: try-snk-src-detect 58*00bb478bSBryan O'Donoghue - const: sig-tx 59*00bb478bSBryan O'Donoghue - const: sig-rx 60*00bb478bSBryan O'Donoghue - const: msg-tx 61*00bb478bSBryan O'Donoghue - const: msg-rx 62*00bb478bSBryan O'Donoghue - const: msg-tx-failed 63*00bb478bSBryan O'Donoghue - const: msg-tx-discarded 64*00bb478bSBryan O'Donoghue - const: msg-rx-discarded 65*00bb478bSBryan O'Donoghue - const: fr-swap 66*00bb478bSBryan O'Donoghue 67*00bb478bSBryan O'Donoghue vdd-vbus-supply: 68*00bb478bSBryan O'Donoghue description: VBUS power supply. 69*00bb478bSBryan O'Donoghue 70*00bb478bSBryan O'Donoghue vdd-pdphy-supply: 71*00bb478bSBryan O'Donoghue description: VDD regulator supply to the PDPHY. 72*00bb478bSBryan O'Donoghue 73*00bb478bSBryan O'Donoghue port: 74*00bb478bSBryan O'Donoghue $ref: /schemas/graph.yaml#/properties/port 75*00bb478bSBryan O'Donoghue description: 76*00bb478bSBryan O'Donoghue Contains a port which produces data-role switching messages. 77*00bb478bSBryan O'Donoghue 78*00bb478bSBryan O'Donoghuerequired: 79*00bb478bSBryan O'Donoghue - compatible 80*00bb478bSBryan O'Donoghue - reg 81*00bb478bSBryan O'Donoghue - interrupts 82*00bb478bSBryan O'Donoghue - interrupt-names 83*00bb478bSBryan O'Donoghue - vdd-vbus-supply 84*00bb478bSBryan O'Donoghue - vdd-pdphy-supply 85*00bb478bSBryan O'Donoghue 86*00bb478bSBryan O'DonoghueadditionalProperties: false 87*00bb478bSBryan O'Donoghue 88*00bb478bSBryan O'Donoghueexamples: 89*00bb478bSBryan O'Donoghue - | 90*00bb478bSBryan O'Donoghue #include <dt-bindings/interrupt-controller/arm-gic.h> 91*00bb478bSBryan O'Donoghue #include <dt-bindings/usb/pd.h> 92*00bb478bSBryan O'Donoghue 93*00bb478bSBryan O'Donoghue pmic { 94*00bb478bSBryan O'Donoghue #address-cells = <1>; 95*00bb478bSBryan O'Donoghue #size-cells = <0>; 96*00bb478bSBryan O'Donoghue 97*00bb478bSBryan O'Donoghue pm8150b_typec: typec@1500 { 98*00bb478bSBryan O'Donoghue compatible = "qcom,pm8150b-typec"; 99*00bb478bSBryan O'Donoghue reg = <0x1500>, 100*00bb478bSBryan O'Donoghue <0x1700>; 101*00bb478bSBryan O'Donoghue 102*00bb478bSBryan O'Donoghue interrupts = <0x2 0x15 0x00 IRQ_TYPE_EDGE_RISING>, 103*00bb478bSBryan O'Donoghue <0x2 0x15 0x01 IRQ_TYPE_EDGE_BOTH>, 104*00bb478bSBryan O'Donoghue <0x2 0x15 0x02 IRQ_TYPE_EDGE_RISING>, 105*00bb478bSBryan O'Donoghue <0x2 0x15 0x03 IRQ_TYPE_EDGE_BOTH>, 106*00bb478bSBryan O'Donoghue <0x2 0x15 0x04 IRQ_TYPE_EDGE_RISING>, 107*00bb478bSBryan O'Donoghue <0x2 0x15 0x05 IRQ_TYPE_EDGE_RISING>, 108*00bb478bSBryan O'Donoghue <0x2 0x15 0x06 IRQ_TYPE_EDGE_BOTH>, 109*00bb478bSBryan O'Donoghue <0x2 0x15 0x07 IRQ_TYPE_EDGE_RISING>, 110*00bb478bSBryan O'Donoghue <0x2 0x17 0x00 IRQ_TYPE_EDGE_RISING>, 111*00bb478bSBryan O'Donoghue <0x2 0x17 0x01 IRQ_TYPE_EDGE_RISING>, 112*00bb478bSBryan O'Donoghue <0x2 0x17 0x02 IRQ_TYPE_EDGE_RISING>, 113*00bb478bSBryan O'Donoghue <0x2 0x17 0x03 IRQ_TYPE_EDGE_RISING>, 114*00bb478bSBryan O'Donoghue <0x2 0x17 0x04 IRQ_TYPE_EDGE_RISING>, 115*00bb478bSBryan O'Donoghue <0x2 0x17 0x05 IRQ_TYPE_EDGE_RISING>, 116*00bb478bSBryan O'Donoghue <0x2 0x17 0x06 IRQ_TYPE_EDGE_RISING>, 117*00bb478bSBryan O'Donoghue <0x2 0x17 0x07 IRQ_TYPE_EDGE_RISING>; 118*00bb478bSBryan O'Donoghue 119*00bb478bSBryan O'Donoghue interrupt-names = "or-rid-detect-change", 120*00bb478bSBryan O'Donoghue "vpd-detect", 121*00bb478bSBryan O'Donoghue "cc-state-change", 122*00bb478bSBryan O'Donoghue "vconn-oc", 123*00bb478bSBryan O'Donoghue "vbus-change", 124*00bb478bSBryan O'Donoghue "attach-detach", 125*00bb478bSBryan O'Donoghue "legacy-cable-detect", 126*00bb478bSBryan O'Donoghue "try-snk-src-detect", 127*00bb478bSBryan O'Donoghue "sig-tx", 128*00bb478bSBryan O'Donoghue "sig-rx", 129*00bb478bSBryan O'Donoghue "msg-tx", 130*00bb478bSBryan O'Donoghue "msg-rx", 131*00bb478bSBryan O'Donoghue "msg-tx-failed", 132*00bb478bSBryan O'Donoghue "msg-tx-discarded", 133*00bb478bSBryan O'Donoghue "msg-rx-discarded", 134*00bb478bSBryan O'Donoghue "fr-swap"; 135*00bb478bSBryan O'Donoghue 136*00bb478bSBryan O'Donoghue vdd-vbus-supply = <&pm8150b_vbus>; 137*00bb478bSBryan O'Donoghue vdd-pdphy-supply = <&vreg_l2a_3p1>; 138*00bb478bSBryan O'Donoghue 139*00bb478bSBryan O'Donoghue connector { 140*00bb478bSBryan O'Donoghue compatible = "usb-c-connector"; 141*00bb478bSBryan O'Donoghue 142*00bb478bSBryan O'Donoghue power-role = "source"; 143*00bb478bSBryan O'Donoghue data-role = "dual"; 144*00bb478bSBryan O'Donoghue self-powered; 145*00bb478bSBryan O'Donoghue 146*00bb478bSBryan O'Donoghue source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_DUAL_ROLE | 147*00bb478bSBryan O'Donoghue PDO_FIXED_USB_COMM | PDO_FIXED_DATA_SWAP)>; 148*00bb478bSBryan O'Donoghue 149*00bb478bSBryan O'Donoghue ports { 150*00bb478bSBryan O'Donoghue #address-cells = <1>; 151*00bb478bSBryan O'Donoghue #size-cells = <0>; 152*00bb478bSBryan O'Donoghue 153*00bb478bSBryan O'Donoghue port@0 { 154*00bb478bSBryan O'Donoghue reg = <0>; 155*00bb478bSBryan O'Donoghue pmic_typec_mux_out: endpoint { 156*00bb478bSBryan O'Donoghue remote-endpoint = <&usb_phy_typec_mux_in>; 157*00bb478bSBryan O'Donoghue }; 158*00bb478bSBryan O'Donoghue }; 159*00bb478bSBryan O'Donoghue 160*00bb478bSBryan O'Donoghue port@1 { 161*00bb478bSBryan O'Donoghue reg = <1>; 162*00bb478bSBryan O'Donoghue pmic_typec_role_switch_out: endpoint { 163*00bb478bSBryan O'Donoghue remote-endpoint = <&usb_role_switch_in>; 164*00bb478bSBryan O'Donoghue }; 165*00bb478bSBryan O'Donoghue }; 166*00bb478bSBryan O'Donoghue }; 167*00bb478bSBryan O'Donoghue }; 168*00bb478bSBryan O'Donoghue }; 169*00bb478bSBryan O'Donoghue }; 170*00bb478bSBryan O'Donoghue 171*00bb478bSBryan O'Donoghue usb { 172*00bb478bSBryan O'Donoghue dr_mode = "otg"; 173*00bb478bSBryan O'Donoghue usb-role-switch; 174*00bb478bSBryan O'Donoghue port { 175*00bb478bSBryan O'Donoghue usb_role_switch_in: endpoint { 176*00bb478bSBryan O'Donoghue remote-endpoint = <&pmic_typec_role_switch_out>; 177*00bb478bSBryan O'Donoghue }; 178*00bb478bSBryan O'Donoghue }; 179*00bb478bSBryan O'Donoghue }; 180*00bb478bSBryan O'Donoghue 181*00bb478bSBryan O'Donoghue usb-phy { 182*00bb478bSBryan O'Donoghue orientation-switch; 183*00bb478bSBryan O'Donoghue port { 184*00bb478bSBryan O'Donoghue usb_phy_typec_mux_in: endpoint { 185*00bb478bSBryan O'Donoghue remote-endpoint = <&pmic_typec_mux_out>; 186*00bb478bSBryan O'Donoghue }; 187*00bb478bSBryan O'Donoghue }; 188*00bb478bSBryan O'Donoghue }; 189*00bb478bSBryan O'Donoghue 190*00bb478bSBryan O'Donoghue... 191