1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) 2022, AngeloGioacchino Del Regno 4 * <angelogioacchino.delregno@somainline.org> 5 * Copyright (c) 2022, Marijn Suijten <marijn.suijten@somainline.org> 6 */ 7 8#include <dt-bindings/iio/qcom,spmi-vadc.h> 9#include <dt-bindings/input/linux-event-codes.h> 10#include <dt-bindings/interrupt-controller/irq.h> 11#include <dt-bindings/pinctrl/qcom,pmic-mpp.h> 12#include <dt-bindings/spmi/spmi.h> 13 14&spmi_bus { 15 pmic@0 { 16 compatible = "qcom,pm8950", "qcom,spmi-pmic"; 17 reg = <0x0 SPMI_USID>; 18 #address-cells = <1>; 19 #size-cells = <0>; 20 21 pon@800 { 22 compatible = "qcom,pm8916-pon"; 23 reg = <0x0800>; 24 mode-bootloader = <0x2>; 25 mode-recovery = <0x1>; 26 27 pwrkey { 28 compatible = "qcom,pm8941-pwrkey"; 29 interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>; 30 debounce = <15625>; 31 bias-pull-up; 32 linux,code = <KEY_POWER>; 33 }; 34 }; 35 36 pm8950_temp: temp-alarm@2400 { 37 compatible = "qcom,spmi-temp-alarm"; 38 reg = <0x2400>; 39 interrupts = <0 0x24 0 IRQ_TYPE_EDGE_RISING>; 40 io-channels = <&pm8950_vadc VADC_DIE_TEMP>; 41 io-channel-names = "thermal"; 42 #thermal-sensor-cells = <0>; 43 }; 44 45 pm8950_vadc: adc@3100 { 46 compatible = "qcom,spmi-vadc"; 47 reg = <0x3100>; 48 interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>; 49 #address-cells = <1>; 50 #size-cells = <0>; 51 #io-channel-cells = <1>; 52 53 channel@5 { 54 reg = <VADC_VCOIN>; 55 qcom,pre-scaling = <1 1>; 56 label = "vcoin"; 57 }; 58 59 channel@7 { 60 reg = <VADC_VSYS>; 61 qcom,pre-scaling = <1 1>; 62 label = "vph_pwr"; 63 }; 64 65 channel@8 { 66 reg = <VADC_DIE_TEMP>; 67 qcom,pre-scaling = <1 1>; 68 label = "die_temp"; 69 }; 70 71 channel@9 { 72 reg = <VADC_REF_625MV>; 73 qcom,pre-scaling = <1 1>; 74 label = "ref_625mv"; 75 }; 76 77 channel@a { 78 reg = <VADC_REF_1250MV>; 79 qcom,pre-scaling = <1 1>; 80 label = "ref_1250mv"; 81 }; 82 83 channel@c { 84 reg = <VADC_SPARE1>; 85 qcom,pre-scaling = <1 1>; 86 label = "ref_buf_625mv"; 87 }; 88 89 channel@e { 90 reg = <VADC_GND_REF>; 91 label = "ref_gnd"; 92 }; 93 94 channel@f { 95 reg = <VADC_VDD_VADC>; 96 label = "ref_vdd"; 97 }; 98 99 channel@11 { 100 reg = <VADC_P_MUX2_1_1>; 101 qcom,pre-scaling = <1 1>; 102 qcom,ratiometric; 103 qcom,hw-settle-time = <200>; 104 label = "pa_therm1"; 105 }; 106 107 channel@13 { 108 reg = <VADC_P_MUX4_1_1>; 109 qcom,pre-scaling = <1 1>; 110 qcom,ratiometric; 111 qcom,hw-settle-time = <200>; 112 label = "case_therm"; 113 }; 114 115 channel@32 { 116 reg = <VADC_LR_MUX3_XO_THERM>; 117 qcom,pre-scaling = <1 1>; 118 qcom,ratiometric; 119 qcom,hw-settle-time = <200>; 120 label = "xo_therm"; 121 }; 122 123 channel@36 { 124 reg = <VADC_LR_MUX7_HW_ID>; 125 qcom,pre-scaling = <1 1>; 126 qcom,ratiometric; 127 qcom,hw-settle-time = <200>; 128 label = "pa_therm0"; 129 }; 130 131 channel@3c { 132 reg = <VADC_LR_MUX3_BUF_XO_THERM>; 133 qcom,pre-scaling = <1 1>; 134 qcom,ratiometric; 135 qcom,hw-settle-time = <200>; 136 label = "xo_therm_buf"; 137 }; 138 }; 139 140 rtc@6000 { 141 compatible = "qcom,pm8941-rtc"; 142 reg = <0x6000>, <0x6100>; 143 reg-names = "rtc", "alarm"; 144 interrupts = <0x0 0x61 0x1 IRQ_TYPE_NONE>; 145 }; 146 147 pm8950_mpps: mpps@a000 { 148 compatible = "qcom,pm8950-mpp", "qcom,spmi-mpp"; 149 reg = <0xa000>; 150 gpio-controller; 151 gpio-ranges = <&pm8950_mpps 0 0 4>; 152 #gpio-cells = <2>; 153 interrupt-controller; 154 #interrupt-cells = <2>; 155 }; 156 157 pm8950_gpios: gpio@c000 { 158 compatible = "qcom,pm8950-gpio", "qcom,spmi-gpio"; 159 reg = <0xc000>; 160 gpio-controller; 161 gpio-ranges = <&pm8950_gpios 0 0 8>; 162 #gpio-cells = <2>; 163 interrupt-controller; 164 #interrupt-cells = <2>; 165 }; 166 }; 167 168 pmic@1 { 169 compatible = "qcom,pm8950", "qcom,spmi-pmic"; 170 reg = <0x1 SPMI_USID>; 171 #address-cells = <1>; 172 #size-cells = <0>; 173 174 pm8950_spmi_regulators: regulators { 175 compatible = "qcom,pm8950-regulators"; 176 }; 177 }; 178}; 179