1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/power/reset/qcom,pon.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm PON Device 8 9maintainers: 10 - Vinod Koul <vkoul@kernel.org> 11 12description: | 13 The Power On device for Qualcomm PM8xxx is MFD supporting pwrkey 14 and resin along with the Android reboot-mode. 15 16 This DT node has pwrkey and resin as sub nodes. 17 18properties: 19 compatible: 20 enum: 21 - qcom,pm8916-pon 22 - qcom,pm8941-pon 23 - qcom,pms405-pon 24 - qcom,pm8998-pon 25 - qcom,pmk8350-pon 26 27 reg: 28 description: | 29 Specifies the SPMI base address for the PON (power-on) peripheral. For 30 PMICs that have the PON peripheral (GEN3) split into PON_HLOS and PON_PBS 31 (e.g. PMK8350), this can hold addresses of both PON_HLOS and PON_PBS 32 peripherals. In that case, the PON_PBS address needs to be specified to 33 facilitate software debouncing on some PMIC. 34 minItems: 1 35 maxItems: 2 36 37 reg-names: 38 minItems: 1 39 maxItems: 2 40 41 pwrkey: 42 type: object 43 $ref: /schemas/input/qcom,pm8941-pwrkey.yaml# 44 45 resin: 46 type: object 47 $ref: /schemas/input/qcom,pm8941-pwrkey.yaml# 48 49 watchdog: 50 type: object 51 $ref: /schemas/watchdog/qcom,pm8916-wdt.yaml 52 53required: 54 - compatible 55 - reg 56 57unevaluatedProperties: false 58 59allOf: 60 - if: 61 properties: 62 compatible: 63 contains: 64 enum: 65 - qcom,pm8916-pon 66 - qcom,pms405-pon 67 - qcom,pm8998-pon 68 then: 69 allOf: 70 - $ref: reboot-mode.yaml# 71 72 properties: 73 reg: 74 maxItems: 1 75 reg-names: 76 items: 77 - const: pon 78 79 # Special case for pm8941, which doesn't store reset mode 80 - if: 81 properties: 82 compatible: 83 contains: 84 const: qcom,pm8941-pon 85 then: 86 properties: 87 reg: 88 maxItems: 1 89 reg-names: 90 items: 91 - const: pon 92 93 - if: 94 properties: 95 compatible: 96 contains: 97 const: qcom,pmk8350-pon 98 then: 99 properties: 100 reg: 101 minItems: 1 102 maxItems: 2 103 reg-names: 104 minItems: 1 105 items: 106 - const: hlos 107 - const: pbs 108 109examples: 110 - | 111 #include <dt-bindings/interrupt-controller/irq.h> 112 #include <dt-bindings/input/linux-event-codes.h> 113 #include <dt-bindings/spmi/spmi.h> 114 spmi_bus: spmi@c440000 { 115 reg = <0x0c440000 0x1100>; 116 #address-cells = <2>; 117 #size-cells = <0>; 118 pmk8350: pmic@0 { 119 reg = <0x0 SPMI_USID>; 120 #address-cells = <1>; 121 #size-cells = <0>; 122 pmk8350_pon: pon_hlos@1300 { 123 reg = <0x1300>; 124 compatible = "qcom,pm8998-pon"; 125 126 pwrkey { 127 compatible = "qcom,pm8941-pwrkey"; 128 interrupts = < 0x0 0x8 0 IRQ_TYPE_EDGE_BOTH >; 129 debounce = <15625>; 130 bias-pull-up; 131 linux,code = <KEY_POWER>; 132 }; 133 134 resin { 135 compatible = "qcom,pm8941-resin"; 136 interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>; 137 debounce = <15625>; 138 bias-pull-up; 139 linux,code = <KEY_VOLUMEDOWN>; 140 }; 141 }; 142 }; 143 }; 144... 145