1a1f0f2ebSLuca Weiss// SPDX-License-Identifier: BSD-3-Clause 2a1f0f2ebSLuca Weiss/* 3a1f0f2ebSLuca Weiss * Copyright (C) 2023 Luca Weiss <luca@z3ntu.xyz> 4a1f0f2ebSLuca Weiss */ 5a1f0f2ebSLuca Weiss 6a1f0f2ebSLuca Weiss#include <dt-bindings/iio/qcom,spmi-vadc.h> 7a1f0f2ebSLuca Weiss#include <dt-bindings/interrupt-controller/irq.h> 8a1f0f2ebSLuca Weiss#include <dt-bindings/spmi/spmi.h> 9a1f0f2ebSLuca Weiss 10a1f0f2ebSLuca Weiss/ { 11a1f0f2ebSLuca Weiss thermal-zones { 12a1f0f2ebSLuca Weiss pmi632-thermal { 13a1f0f2ebSLuca Weiss polling-delay-passive = <100>; 14a1f0f2ebSLuca Weiss 15a1f0f2ebSLuca Weiss thermal-sensors = <&pmi632_temp>; 16a1f0f2ebSLuca Weiss 17a1f0f2ebSLuca Weiss trips { 18a1f0f2ebSLuca Weiss trip0 { 19a1f0f2ebSLuca Weiss temperature = <95000>; 20a1f0f2ebSLuca Weiss hysteresis = <0>; 21a1f0f2ebSLuca Weiss type = "passive"; 22a1f0f2ebSLuca Weiss }; 23a1f0f2ebSLuca Weiss 24a1f0f2ebSLuca Weiss trip1 { 25a1f0f2ebSLuca Weiss temperature = <115000>; 26a1f0f2ebSLuca Weiss hysteresis = <0>; 27a1f0f2ebSLuca Weiss type = "hot"; 28a1f0f2ebSLuca Weiss }; 29a1f0f2ebSLuca Weiss 30a1f0f2ebSLuca Weiss trip2 { 31a1f0f2ebSLuca Weiss temperature = <125000>; 32a1f0f2ebSLuca Weiss hysteresis = <0>; 33a1f0f2ebSLuca Weiss type = "critical"; 34a1f0f2ebSLuca Weiss }; 35a1f0f2ebSLuca Weiss }; 36a1f0f2ebSLuca Weiss }; 37a1f0f2ebSLuca Weiss }; 38a1f0f2ebSLuca Weiss}; 39a1f0f2ebSLuca Weiss 40a1f0f2ebSLuca Weiss&spmi_bus { 41a1f0f2ebSLuca Weiss pmic@2 { 42a1f0f2ebSLuca Weiss compatible = "qcom,pmi632", "qcom,spmi-pmic"; 43a1f0f2ebSLuca Weiss reg = <0x2 SPMI_USID>; 44a1f0f2ebSLuca Weiss #address-cells = <1>; 45a1f0f2ebSLuca Weiss #size-cells = <0>; 46a1f0f2ebSLuca Weiss 47f69b3e40SDmitry Baryshkov pmi632_vbus: usb-vbus-regulator@1100 { 48f69b3e40SDmitry Baryshkov compatible = "qcom,pmi632-vbus-reg", "qcom,pm8150b-vbus-reg"; 49f69b3e40SDmitry Baryshkov reg = <0x1100>; 50f69b3e40SDmitry Baryshkov status = "disabled"; 51f69b3e40SDmitry Baryshkov }; 52f69b3e40SDmitry Baryshkov 53f69b3e40SDmitry Baryshkov pmi632_typec: typec@1500 { 54f69b3e40SDmitry Baryshkov compatible = "qcom,pmi632-typec"; 55f69b3e40SDmitry Baryshkov reg = <0x1500>; 56f69b3e40SDmitry Baryshkov interrupts = <0x2 0x15 0x00 IRQ_TYPE_EDGE_RISING>, 57f69b3e40SDmitry Baryshkov <0x2 0x15 0x01 IRQ_TYPE_EDGE_BOTH>, 58f69b3e40SDmitry Baryshkov <0x2 0x15 0x02 IRQ_TYPE_EDGE_RISING>, 59f69b3e40SDmitry Baryshkov <0x2 0x15 0x03 IRQ_TYPE_EDGE_BOTH>, 60f69b3e40SDmitry Baryshkov <0x2 0x15 0x04 IRQ_TYPE_EDGE_RISING>, 61f69b3e40SDmitry Baryshkov <0x2 0x15 0x05 IRQ_TYPE_EDGE_RISING>, 62f69b3e40SDmitry Baryshkov <0x2 0x15 0x06 IRQ_TYPE_EDGE_BOTH>, 63f69b3e40SDmitry Baryshkov <0x2 0x15 0x07 IRQ_TYPE_EDGE_RISING>; 64f69b3e40SDmitry Baryshkov interrupt-names = "or-rid-detect-change", 65f69b3e40SDmitry Baryshkov "vpd-detect", 66f69b3e40SDmitry Baryshkov "cc-state-change", 67f69b3e40SDmitry Baryshkov "vconn-oc", 68f69b3e40SDmitry Baryshkov "vbus-change", 69f69b3e40SDmitry Baryshkov "attach-detach", 70f69b3e40SDmitry Baryshkov "legacy-cable-detect", 71f69b3e40SDmitry Baryshkov "try-snk-src-detect"; 72f69b3e40SDmitry Baryshkov vdd-vbus-supply = <&pmi632_vbus>; 73f69b3e40SDmitry Baryshkov 74f69b3e40SDmitry Baryshkov status = "disabled"; 75f69b3e40SDmitry Baryshkov }; 76f69b3e40SDmitry Baryshkov 77a1f0f2ebSLuca Weiss pmi632_temp: temp-alarm@2400 { 78a1f0f2ebSLuca Weiss compatible = "qcom,spmi-temp-alarm"; 79a1f0f2ebSLuca Weiss reg = <0x2400>; 80a1f0f2ebSLuca Weiss interrupts = <0x2 0x24 0x0 IRQ_TYPE_EDGE_BOTH>; 81a1f0f2ebSLuca Weiss #thermal-sensor-cells = <0>; 82a1f0f2ebSLuca Weiss }; 83a1f0f2ebSLuca Weiss 84a1f0f2ebSLuca Weiss pmi632_adc: adc@3100 { 85a1f0f2ebSLuca Weiss compatible = "qcom,spmi-adc5"; 86a1f0f2ebSLuca Weiss reg = <0x3100>; 87a1f0f2ebSLuca Weiss #address-cells = <1>; 88a1f0f2ebSLuca Weiss #size-cells = <0>; 89a1f0f2ebSLuca Weiss #io-channel-cells = <1>; 90a1f0f2ebSLuca Weiss interrupts = <0x2 0x31 0x0 IRQ_TYPE_EDGE_RISING>; 91a1f0f2ebSLuca Weiss 92a1f0f2ebSLuca Weiss channel@0 { 93a1f0f2ebSLuca Weiss reg = <ADC5_REF_GND>; 94a1f0f2ebSLuca Weiss qcom,pre-scaling = <1 1>; 95a1f0f2ebSLuca Weiss label = "ref_gnd"; 96a1f0f2ebSLuca Weiss }; 97a1f0f2ebSLuca Weiss 98a1f0f2ebSLuca Weiss channel@1 { 99a1f0f2ebSLuca Weiss reg = <ADC5_1P25VREF>; 100a1f0f2ebSLuca Weiss qcom,pre-scaling = <1 1>; 101a1f0f2ebSLuca Weiss label = "vref_1p25"; 102a1f0f2ebSLuca Weiss }; 103a1f0f2ebSLuca Weiss 104a1f0f2ebSLuca Weiss channel@6 { 105a1f0f2ebSLuca Weiss reg = <ADC5_DIE_TEMP>; 106a1f0f2ebSLuca Weiss qcom,pre-scaling = <1 1>; 107a1f0f2ebSLuca Weiss label = "die_temp"; 108a1f0f2ebSLuca Weiss }; 109a1f0f2ebSLuca Weiss 110a1f0f2ebSLuca Weiss channel@7 { 111a1f0f2ebSLuca Weiss reg = <ADC5_USB_IN_I>; 112a1f0f2ebSLuca Weiss qcom,pre-scaling = <1 1>; 113a1f0f2ebSLuca Weiss label = "usb_in_i_uv"; 114a1f0f2ebSLuca Weiss }; 115a1f0f2ebSLuca Weiss 116a1f0f2ebSLuca Weiss channel@8 { 117a1f0f2ebSLuca Weiss reg = <ADC5_USB_IN_V_16>; 118a1f0f2ebSLuca Weiss qcom,pre-scaling = <1 16>; 119a1f0f2ebSLuca Weiss label = "usb_in_v_div_16"; 120a1f0f2ebSLuca Weiss }; 121a1f0f2ebSLuca Weiss 122a1f0f2ebSLuca Weiss channel@9 { 123a1f0f2ebSLuca Weiss reg = <ADC5_CHG_TEMP>; 124a1f0f2ebSLuca Weiss qcom,pre-scaling = <1 1>; 125a1f0f2ebSLuca Weiss label = "chg_temp"; 126a1f0f2ebSLuca Weiss }; 127a1f0f2ebSLuca Weiss 128a1f0f2ebSLuca Weiss channel@4b { 129a1f0f2ebSLuca Weiss reg = <ADC5_BAT_ID_100K_PU>; 130a1f0f2ebSLuca Weiss qcom,hw-settle-time = <200>; 131a1f0f2ebSLuca Weiss qcom,pre-scaling = <1 1>; 132a1f0f2ebSLuca Weiss qcom,ratiometric; 133a1f0f2ebSLuca Weiss label = "bat_id"; 134a1f0f2ebSLuca Weiss }; 135a1f0f2ebSLuca Weiss 136a1f0f2ebSLuca Weiss channel@83 { 137a1f0f2ebSLuca Weiss reg = <ADC5_VPH_PWR>; 138a1f0f2ebSLuca Weiss qcom,pre-scaling = <1 3>; 139a1f0f2ebSLuca Weiss label = "vph_pwr"; 140a1f0f2ebSLuca Weiss }; 141a1f0f2ebSLuca Weiss 142a1f0f2ebSLuca Weiss channel@84 { 143a1f0f2ebSLuca Weiss reg = <ADC5_VBAT_SNS>; 144a1f0f2ebSLuca Weiss qcom,pre-scaling = <1 3>; 145a1f0f2ebSLuca Weiss label = "vbat_sns"; 146a1f0f2ebSLuca Weiss }; 147a1f0f2ebSLuca Weiss }; 148a1f0f2ebSLuca Weiss 149a1f0f2ebSLuca Weiss pmi632_adc_tm: adc-tm@3500 { 150a1f0f2ebSLuca Weiss compatible = "qcom,spmi-adc-tm5"; 151a1f0f2ebSLuca Weiss reg = <0x3500>; 152a1f0f2ebSLuca Weiss interrupts = <0x2 0x35 0x0 IRQ_TYPE_EDGE_RISING>; 153a1f0f2ebSLuca Weiss #thermal-sensor-cells = <1>; 154a1f0f2ebSLuca Weiss #address-cells = <1>; 155a1f0f2ebSLuca Weiss #size-cells = <0>; 156a1f0f2ebSLuca Weiss status = "disabled"; 157a1f0f2ebSLuca Weiss }; 158a1f0f2ebSLuca Weiss 159dc145784SLuca Weiss pmi632_pbs_client3: pbs@7400 { 160dc145784SLuca Weiss compatible = "qcom,pmi632-pbs", "qcom,pbs"; 161dc145784SLuca Weiss reg = <0x7400>; 162dc145784SLuca Weiss }; 163dc145784SLuca Weiss 164a1f0f2ebSLuca Weiss pmi632_sdam_7: nvram@b600 { 165a1f0f2ebSLuca Weiss compatible = "qcom,spmi-sdam"; 166a1f0f2ebSLuca Weiss reg = <0xb600>; 167a1f0f2ebSLuca Weiss #address-cells = <1>; 168a1f0f2ebSLuca Weiss #size-cells = <1>; 169a1f0f2ebSLuca Weiss ranges = <0 0xb600 0x100>; 170a1f0f2ebSLuca Weiss }; 171a1f0f2ebSLuca Weiss 172a1f0f2ebSLuca Weiss pmi632_gpios: gpio@c000 { 173a1f0f2ebSLuca Weiss compatible = "qcom,pmi632-gpio", "qcom,spmi-gpio"; 174a1f0f2ebSLuca Weiss reg = <0xc000>; 175a1f0f2ebSLuca Weiss gpio-controller; 176a1f0f2ebSLuca Weiss gpio-ranges = <&pmi632_gpios 0 0 8>; 177a1f0f2ebSLuca Weiss #gpio-cells = <2>; 178a1f0f2ebSLuca Weiss interrupt-controller; 179a1f0f2ebSLuca Weiss #interrupt-cells = <2>; 180a1f0f2ebSLuca Weiss }; 181a1f0f2ebSLuca Weiss }; 182a1f0f2ebSLuca Weiss 183a1f0f2ebSLuca Weiss pmic@3 { 184a1f0f2ebSLuca Weiss compatible = "qcom,pmi632", "qcom,spmi-pmic"; 185a1f0f2ebSLuca Weiss reg = <0x3 SPMI_USID>; 186a1f0f2ebSLuca Weiss #address-cells = <1>; 187a1f0f2ebSLuca Weiss #size-cells = <0>; 188a1f0f2ebSLuca Weiss 189a1f0f2ebSLuca Weiss pmi632_lpg: pwm { 190a1f0f2ebSLuca Weiss compatible = "qcom,pmi632-lpg"; 191a1f0f2ebSLuca Weiss 192dc145784SLuca Weiss nvmem = <&pmi632_sdam_7>; 193dc145784SLuca Weiss nvmem-names = "lpg_chan_sdam"; 194dc145784SLuca Weiss qcom,pbs = <&pmi632_pbs_client3>; 195dc145784SLuca Weiss 196a1f0f2ebSLuca Weiss #address-cells = <1>; 197a1f0f2ebSLuca Weiss #size-cells = <0>; 198a1f0f2ebSLuca Weiss #pwm-cells = <2>; 199a1f0f2ebSLuca Weiss 200a1f0f2ebSLuca Weiss status = "disabled"; 201a1f0f2ebSLuca Weiss }; 202*bbb1dd64SLuca Weiss 203*bbb1dd64SLuca Weiss pmi632_vib: vibrator@5700 { 204*bbb1dd64SLuca Weiss compatible = "qcom,pmi632-vib"; 205*bbb1dd64SLuca Weiss reg = <0x5700>; 206*bbb1dd64SLuca Weiss status = "disabled"; 207*bbb1dd64SLuca Weiss }; 208a1f0f2ebSLuca Weiss }; 209a1f0f2ebSLuca Weiss}; 210