1 // SPDX-License-Identifier: BSD-3-Clause 1 // SPDX-License-Identifier: BSD-3-Clause 2 /* 2 /* 3 * Copyright (c) 2017-2019, The Linux Foundati 3 * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. 4 * Copyright (c) 2021-2023, Linaro Limited 4 * Copyright (c) 2021-2023, Linaro Limited 5 */ 5 */ 6 6 7 #include <dt-bindings/input/input.h> 7 #include <dt-bindings/input/input.h> 8 #include <dt-bindings/interrupt-controller/irq 8 #include <dt-bindings/interrupt-controller/irq.h> 9 #include <dt-bindings/spmi/spmi.h> 9 #include <dt-bindings/spmi/spmi.h> 10 #include <dt-bindings/iio/qcom,spmi-vadc.h> 10 #include <dt-bindings/iio/qcom,spmi-vadc.h> 11 11 12 / { 12 / { 13 thermal-zones { 13 thermal-zones { 14 pmc8180-thermal { 14 pmc8180-thermal { 15 polling-delay-passive 15 polling-delay-passive = <100>; >> 16 polling-delay = <0>; 16 17 17 thermal-sensors = <&pm 18 thermal-sensors = <&pmc8180_temp>; 18 19 19 trips { 20 trips { 20 trip0 { 21 trip0 { 21 temper 22 temperature = <95000>; 22 hyster 23 hysteresis = <0>; 23 type = 24 type = "passive"; 24 }; 25 }; 25 26 26 trip1 { 27 trip1 { 27 temper 28 temperature = <115000>; 28 hyster 29 hysteresis = <0>; 29 type = 30 type = "hot"; 30 }; 31 }; 31 32 32 trip2 { 33 trip2 { 33 temper 34 temperature = <145000>; 34 hyster 35 hysteresis = <0>; 35 type = 36 type = "critical"; 36 }; 37 }; 37 }; 38 }; 38 }; 39 }; 39 40 40 pmc8180c-thermal { 41 pmc8180c-thermal { 41 polling-delay-passive 42 polling-delay-passive = <100>; >> 43 polling-delay = <0>; 42 44 43 thermal-sensors = <&pm 45 thermal-sensors = <&pmc8180c_temp>; 44 46 45 trips { 47 trips { 46 trip0 { 48 trip0 { 47 temper 49 temperature = <95000>; 48 hyster 50 hysteresis = <0>; 49 type = 51 type = "passive"; 50 }; 52 }; 51 53 52 trip1 { 54 trip1 { 53 temper 55 temperature = <115000>; 54 hyster 56 hysteresis = <0>; 55 type = 57 type = "hot"; 56 }; 58 }; 57 59 58 trip2 { 60 trip2 { 59 temper 61 temperature = <145000>; 60 hyster 62 hysteresis = <0>; 61 type = 63 type = "critical"; 62 }; 64 }; 63 }; 65 }; 64 }; 66 }; 65 }; 67 }; 66 }; 68 }; 67 69 68 &spmi_bus { 70 &spmi_bus { 69 pmc8180_0: pmic@0 { 71 pmc8180_0: pmic@0 { 70 compatible = "qcom,pm8150", "q 72 compatible = "qcom,pm8150", "qcom,spmi-pmic"; 71 reg = <0x0 SPMI_USID>; 73 reg = <0x0 SPMI_USID>; 72 #address-cells = <1>; 74 #address-cells = <1>; 73 #size-cells = <0>; 75 #size-cells = <0>; 74 76 75 pon: pon@800 { 77 pon: pon@800 { 76 compatible = "qcom,pm8 78 compatible = "qcom,pm8916-pon"; 77 reg = <0x0800>; 79 reg = <0x0800>; 78 pmc8180_pwrkey: pwrkey !! 80 pwrkey { 79 compatible = " 81 compatible = "qcom,pm8941-pwrkey"; 80 interrupts = < 82 interrupts = <0x0 0x8 0x0 IRQ_TYPE_EDGE_BOTH>; 81 debounce = <15 83 debounce = <15625>; 82 bias-pull-up; 84 bias-pull-up; 83 linux,code = < 85 linux,code = <KEY_POWER>; 84 86 85 status = "disa 87 status = "disabled"; 86 }; 88 }; 87 }; 89 }; 88 90 89 pmc8180_temp: temp-alarm@2400 91 pmc8180_temp: temp-alarm@2400 { 90 compatible = "qcom,spm 92 compatible = "qcom,spmi-temp-alarm"; 91 reg = <0x2400>; 93 reg = <0x2400>; 92 interrupts = <0x0 0x24 94 interrupts = <0x0 0x24 0x0 IRQ_TYPE_EDGE_BOTH>; 93 io-channels = <&pmc818 95 io-channels = <&pmc8180_adc ADC5_DIE_TEMP>; 94 io-channel-names = "th 96 io-channel-names = "thermal"; 95 #thermal-sensor-cells 97 #thermal-sensor-cells = <0>; 96 }; 98 }; 97 99 98 pmc8180_adc: adc@3100 { 100 pmc8180_adc: adc@3100 { 99 compatible = "qcom,spm 101 compatible = "qcom,spmi-adc5"; 100 reg = <0x3100>; 102 reg = <0x3100>; 101 #address-cells = <1>; 103 #address-cells = <1>; 102 #size-cells = <0>; 104 #size-cells = <0>; 103 #io-channel-cells = <1 105 #io-channel-cells = <1>; 104 interrupts = <0x0 0x31 106 interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>; 105 107 106 channel@0 { 108 channel@0 { 107 reg = <ADC5_RE 109 reg = <ADC5_REF_GND>; 108 qcom,pre-scali 110 qcom,pre-scaling = <1 1>; 109 label = "ref_g 111 label = "ref_gnd"; 110 }; 112 }; 111 113 112 channel@1 { 114 channel@1 { 113 reg = <ADC5_1P 115 reg = <ADC5_1P25VREF>; 114 qcom,pre-scali 116 qcom,pre-scaling = <1 1>; 115 label = "vref_ 117 label = "vref_1p25"; 116 }; 118 }; 117 119 118 channel@6 { 120 channel@6 { 119 reg = <ADC5_DI 121 reg = <ADC5_DIE_TEMP>; 120 qcom,pre-scali 122 qcom,pre-scaling = <1 1>; 121 label = "die_t 123 label = "die_temp"; 122 }; 124 }; 123 }; 125 }; 124 126 125 pmc8180_adc_tm: adc-tm@3500 { 127 pmc8180_adc_tm: adc-tm@3500 { 126 compatible = "qcom,spm 128 compatible = "qcom,spmi-adc-tm5"; 127 reg = <0x3500>; 129 reg = <0x3500>; 128 interrupts = <0x0 0x35 130 interrupts = <0x0 0x35 0x0 IRQ_TYPE_EDGE_RISING>; 129 #thermal-sensor-cells 131 #thermal-sensor-cells = <1>; 130 #address-cells = <1>; 132 #address-cells = <1>; 131 #size-cells = <0>; 133 #size-cells = <0>; 132 status = "disabled"; 134 status = "disabled"; 133 }; 135 }; 134 136 135 rtc@6000 { 137 rtc@6000 { 136 compatible = "qcom,pm8 138 compatible = "qcom,pm8941-rtc"; 137 reg = <0x6000>; 139 reg = <0x6000>; 138 reg-names = "rtc", "al 140 reg-names = "rtc", "alarm"; 139 interrupts = <0x0 0x61 141 interrupts = <0x0 0x61 0x1 IRQ_TYPE_NONE>; 140 }; 142 }; 141 143 142 pmc8180_1_gpios: gpio@c000 { !! 144 pmc8180_gpios: gpio@c000 { 143 compatible = "qcom,pmc 145 compatible = "qcom,pmc8180-gpio", "qcom,spmi-gpio"; 144 reg = <0xc000>; 146 reg = <0xc000>; 145 gpio-controller; 147 gpio-controller; 146 gpio-ranges = <&pmc818 !! 148 gpio-ranges = <&pmc8180_gpios 0 0 10>; 147 #gpio-cells = <2>; 149 #gpio-cells = <2>; 148 interrupt-controller; 150 interrupt-controller; 149 #interrupt-cells = <2> 151 #interrupt-cells = <2>; 150 }; 152 }; 151 }; 153 }; 152 154 153 pmic@1 { 155 pmic@1 { 154 compatible = "qcom,pmc8180", " 156 compatible = "qcom,pmc8180", "qcom,spmi-pmic"; 155 reg = <0x1 SPMI_USID>; 157 reg = <0x1 SPMI_USID>; 156 #address-cells = <1>; 158 #address-cells = <1>; 157 #size-cells = <0>; 159 #size-cells = <0>; 158 }; 160 }; 159 161 160 pmic@2 { 162 pmic@2 { 161 compatible = "qcom,smb2351", " 163 compatible = "qcom,smb2351", "qcom,spmi-pmic"; 162 reg = <0x2 SPMI_USID>; 164 reg = <0x2 SPMI_USID>; 163 #address-cells = <1>; 165 #address-cells = <1>; 164 #size-cells = <0>; 166 #size-cells = <0>; 165 167 166 adc@3100 { 168 adc@3100 { 167 compatible = "qcom,spm 169 compatible = "qcom,spmi-adc-rev2"; 168 reg = <0x3100>; 170 reg = <0x3100>; 169 #address-cells = <1>; 171 #address-cells = <1>; 170 #size-cells = <0>; 172 #size-cells = <0>; 171 #io-channel-cells = <1 173 #io-channel-cells = <1>; 172 interrupts = <0x2 0x31 174 interrupts = <0x2 0x31 0x0 IRQ_TYPE_EDGE_RISING>; 173 175 174 channel@0 { 176 channel@0 { 175 reg = <ADC5_RE 177 reg = <ADC5_REF_GND>; 176 qcom,pre-scali 178 qcom,pre-scaling = <1 1>; 177 label = "ref_g 179 label = "ref_gnd"; 178 }; 180 }; 179 181 180 channel@1 { 182 channel@1 { 181 reg = <ADC5_1P 183 reg = <ADC5_1P25VREF>; 182 qcom,pre-scali 184 qcom,pre-scaling = <1 1>; 183 label = "vref_ 185 label = "vref_1p25"; 184 }; 186 }; 185 187 186 channel@85 { 188 channel@85 { 187 reg = <0x85>; 189 reg = <0x85>; 188 qcom,pre-scali 190 qcom,pre-scaling = <1 1>; 189 label = "vcoin 191 label = "vcoin2"; 190 }; 192 }; 191 }; 193 }; 192 }; 194 }; 193 195 194 pmic@6 { 196 pmic@6 { 195 compatible = "qcom,pm8150c", " 197 compatible = "qcom,pm8150c", "qcom,spmi-pmic"; 196 reg = <0x6 SPMI_USID>; 198 reg = <0x6 SPMI_USID>; 197 #address-cells = <1>; 199 #address-cells = <1>; 198 #size-cells = <0>; 200 #size-cells = <0>; 199 }; 201 }; 200 202 201 pmc8180_2: pmic@8 { !! 203 pmic@8 { 202 compatible = "qcom,pm8150", "q 204 compatible = "qcom,pm8150", "qcom,spmi-pmic"; 203 reg = <0x8 SPMI_USID>; 205 reg = <0x8 SPMI_USID>; 204 #address-cells = <1>; 206 #address-cells = <1>; 205 #size-cells = <0>; 207 #size-cells = <0>; 206 << 207 pmc8180_2_gpios: gpio@c000 { << 208 compatible = "qcom,pmc << 209 reg = <0xc000>; << 210 gpio-controller; << 211 gpio-ranges = <&pmc818 << 212 #gpio-cells = <2>; << 213 interrupt-controller; << 214 #interrupt-cells = <2> << 215 }; << 216 }; 208 }; 217 209 218 pmic@a { 210 pmic@a { 219 compatible = "qcom,smb2351", " 211 compatible = "qcom,smb2351", "qcom,spmi-pmic"; 220 reg = <0xa SPMI_USID>; 212 reg = <0xa SPMI_USID>; 221 #address-cells = <1>; 213 #address-cells = <1>; 222 #size-cells = <0>; 214 #size-cells = <0>; 223 215 224 adc@3100 { 216 adc@3100 { 225 compatible = "qcom,spm 217 compatible = "qcom,spmi-adc-rev2"; 226 reg = <0x3100>; 218 reg = <0x3100>; 227 #address-cells = <1>; 219 #address-cells = <1>; 228 #size-cells = <0>; 220 #size-cells = <0>; 229 #io-channel-cells = <1 221 #io-channel-cells = <1>; 230 interrupts = <0xa 0x31 222 interrupts = <0xa 0x31 0x0 IRQ_TYPE_EDGE_RISING>; 231 223 232 channel@0 { 224 channel@0 { 233 reg = <ADC5_RE 225 reg = <ADC5_REF_GND>; 234 qcom,pre-scali 226 qcom,pre-scaling = <1 1>; 235 label = "ref_g 227 label = "ref_gnd"; 236 }; 228 }; 237 229 238 channel@1 { 230 channel@1 { 239 reg = <ADC5_1P 231 reg = <ADC5_1P25VREF>; 240 qcom,pre-scali 232 qcom,pre-scaling = <1 1>; 241 label = "vref_ 233 label = "vref_1p25"; 242 }; 234 }; 243 235 244 channel@85 { 236 channel@85 { 245 reg = <0x85>; 237 reg = <0x85>; 246 qcom,pre-scali 238 qcom,pre-scaling = <1 1>; 247 label = "vcoin 239 label = "vcoin"; 248 }; 240 }; 249 }; 241 }; 250 }; 242 }; 251 243 252 pmic@4 { 244 pmic@4 { 253 compatible = "qcom,pm8150c", " 245 compatible = "qcom,pm8150c", "qcom,spmi-pmic"; 254 reg = <0x4 SPMI_USID>; 246 reg = <0x4 SPMI_USID>; 255 #address-cells = <1>; 247 #address-cells = <1>; 256 #size-cells = <0>; 248 #size-cells = <0>; 257 249 258 pon@800 { 250 pon@800 { 259 compatible = "qcom,pm8 251 compatible = "qcom,pm8916-pon"; 260 reg = <0x0800>; 252 reg = <0x0800>; 261 253 262 status = "disabled"; 254 status = "disabled"; 263 }; 255 }; 264 256 265 pmc8180c_temp: temp-alarm@2400 257 pmc8180c_temp: temp-alarm@2400 { 266 compatible = "qcom,spm 258 compatible = "qcom,spmi-temp-alarm"; 267 reg = <0x2400>; 259 reg = <0x2400>; 268 interrupts = <0x4 0x24 260 interrupts = <0x4 0x24 0x0 IRQ_TYPE_EDGE_BOTH>; 269 io-channels = <&pmc818 261 io-channels = <&pmc8180c_adc ADC5_DIE_TEMP>; 270 io-channel-names = "th 262 io-channel-names = "thermal"; 271 #thermal-sensor-cells 263 #thermal-sensor-cells = <0>; 272 }; 264 }; 273 265 274 pmc8180c_adc: adc@3100 { 266 pmc8180c_adc: adc@3100 { 275 compatible = "qcom,spm 267 compatible = "qcom,spmi-adc5"; 276 reg = <0x3100>; 268 reg = <0x3100>; 277 #address-cells = <1>; 269 #address-cells = <1>; 278 #size-cells = <0>; 270 #size-cells = <0>; 279 #io-channel-cells = <1 271 #io-channel-cells = <1>; 280 interrupts = <0x4 0x31 272 interrupts = <0x4 0x31 0x0 IRQ_TYPE_EDGE_RISING>; 281 273 282 channel@0 { 274 channel@0 { 283 reg = <ADC5_RE 275 reg = <ADC5_REF_GND>; 284 qcom,pre-scali 276 qcom,pre-scaling = <1 1>; 285 label = "ref_g 277 label = "ref_gnd"; 286 }; 278 }; 287 279 288 channel@1 { 280 channel@1 { 289 reg = <ADC5_1P 281 reg = <ADC5_1P25VREF>; 290 qcom,pre-scali 282 qcom,pre-scaling = <1 1>; 291 label = "vref_ 283 label = "vref_1p25"; 292 }; 284 }; 293 285 294 channel@6 { 286 channel@6 { 295 reg = <ADC5_DI 287 reg = <ADC5_DIE_TEMP>; 296 qcom,pre-scali 288 qcom,pre-scaling = <1 1>; 297 label = "die_t 289 label = "die_temp"; 298 }; 290 }; 299 }; 291 }; 300 292 301 pmc8180c_adc_tm: adc-tm@3500 { 293 pmc8180c_adc_tm: adc-tm@3500 { 302 compatible = "qcom,spm 294 compatible = "qcom,spmi-adc-tm5"; 303 reg = <0x3500>; 295 reg = <0x3500>; 304 interrupts = <0x4 0x35 296 interrupts = <0x4 0x35 0x0 IRQ_TYPE_EDGE_RISING>; 305 #thermal-sensor-cells 297 #thermal-sensor-cells = <1>; 306 #address-cells = <1>; 298 #address-cells = <1>; 307 #size-cells = <0>; 299 #size-cells = <0>; 308 status = "disabled"; 300 status = "disabled"; 309 }; 301 }; 310 302 311 pmc8180c_gpios: gpio@c000 { 303 pmc8180c_gpios: gpio@c000 { 312 compatible = "qcom,pmc 304 compatible = "qcom,pmc8180c-gpio", "qcom,spmi-gpio"; 313 reg = <0xc000>; 305 reg = <0xc000>; 314 gpio-controller; 306 gpio-controller; 315 gpio-ranges = <&pmc818 307 gpio-ranges = <&pmc8180c_gpios 0 0 12>; 316 #gpio-cells = <2>; 308 #gpio-cells = <2>; 317 interrupt-controller; 309 interrupt-controller; 318 #interrupt-cells = <2> 310 #interrupt-cells = <2>; 319 }; 311 }; 320 }; 312 }; 321 313 322 pmic@5 { 314 pmic@5 { 323 compatible = "qcom,pmc8180c", 315 compatible = "qcom,pmc8180c", "qcom,spmi-pmic"; 324 reg = <0x5 SPMI_USID>; 316 reg = <0x5 SPMI_USID>; 325 317 326 pmc8180c_lpg: pwm { 318 pmc8180c_lpg: pwm { 327 compatible = "qcom,pmc 319 compatible = "qcom,pmc8180c-lpg"; 328 320 329 #address-cells = <1>; 321 #address-cells = <1>; 330 #size-cells = <0>; 322 #size-cells = <0>; 331 #pwm-cells = <2>; 323 #pwm-cells = <2>; 332 324 333 status = "disabled"; 325 status = "disabled"; 334 }; 326 }; 335 }; 327 }; 336 }; 328 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.