111975b9bSLuca Weiss// SPDX-License-Identifier: BSD-3-Clause 211975b9bSLuca Weiss/* 311975b9bSLuca Weiss * Copyright (C) 2022 Luca Weiss <luca.weiss@fairphone.com> 411975b9bSLuca Weiss */ 511975b9bSLuca Weiss 683022f64SLuca Weiss#include <dt-bindings/iio/qcom,spmi-vadc.h> 711975b9bSLuca Weiss#include <dt-bindings/interrupt-controller/irq.h> 811975b9bSLuca Weiss#include <dt-bindings/spmi/spmi.h> 911975b9bSLuca Weiss 1011975b9bSLuca Weiss/ { 1111975b9bSLuca Weiss thermal-zones { 1211975b9bSLuca Weiss pm7250b-thermal { 1311975b9bSLuca Weiss polling-delay-passive = <100>; 1411975b9bSLuca Weiss 1511975b9bSLuca Weiss thermal-sensors = <&pm7250b_temp>; 1611975b9bSLuca Weiss 1711975b9bSLuca Weiss trips { 1811975b9bSLuca Weiss trip0 { 1911975b9bSLuca Weiss temperature = <95000>; 2011975b9bSLuca Weiss hysteresis = <0>; 2111975b9bSLuca Weiss type = "passive"; 2211975b9bSLuca Weiss }; 2311975b9bSLuca Weiss 2411975b9bSLuca Weiss trip1 { 2511975b9bSLuca Weiss temperature = <115000>; 2611975b9bSLuca Weiss hysteresis = <0>; 2711975b9bSLuca Weiss type = "hot"; 2811975b9bSLuca Weiss }; 2911975b9bSLuca Weiss 3011975b9bSLuca Weiss trip2 { 3111975b9bSLuca Weiss temperature = <145000>; 3211975b9bSLuca Weiss hysteresis = <0>; 3311975b9bSLuca Weiss type = "critical"; 3411975b9bSLuca Weiss }; 3511975b9bSLuca Weiss }; 3611975b9bSLuca Weiss }; 3711975b9bSLuca Weiss }; 3811975b9bSLuca Weiss}; 3911975b9bSLuca Weiss 4011975b9bSLuca Weiss&spmi_bus { 418e2d56f6SLuca Weiss pmic@PM7250B_SID { 4211975b9bSLuca Weiss compatible = "qcom,pm7250b", "qcom,spmi-pmic"; 438e2d56f6SLuca Weiss reg = <PM7250B_SID SPMI_USID>; 4411975b9bSLuca Weiss #address-cells = <1>; 4511975b9bSLuca Weiss #size-cells = <0>; 4611975b9bSLuca Weiss 4737ff5d0dSLuca Weiss pm7250b_vbus: usb-vbus-regulator@1100 { 4837ff5d0dSLuca Weiss compatible = "qcom,pm7250b-vbus-reg", "qcom,pm8150b-vbus-reg"; 4937ff5d0dSLuca Weiss reg = <0x1100>; 5037ff5d0dSLuca Weiss status = "disabled"; 5137ff5d0dSLuca Weiss }; 5237ff5d0dSLuca Weiss 53*6b5b15a1SLuca Weiss pm7250b_typec: typec@1500 { 54*6b5b15a1SLuca Weiss compatible = "qcom,pm7250b-typec", "qcom,pm8150b-typec"; 55*6b5b15a1SLuca Weiss reg = <0x1500>, 56*6b5b15a1SLuca Weiss <0x1700>; 57*6b5b15a1SLuca Weiss interrupts = <PM7250B_SID 0x15 0x00 IRQ_TYPE_EDGE_RISING>, 58*6b5b15a1SLuca Weiss <PM7250B_SID 0x15 0x01 IRQ_TYPE_EDGE_BOTH>, 59*6b5b15a1SLuca Weiss <PM7250B_SID 0x15 0x02 IRQ_TYPE_EDGE_RISING>, 60*6b5b15a1SLuca Weiss <PM7250B_SID 0x15 0x03 IRQ_TYPE_EDGE_BOTH>, 61*6b5b15a1SLuca Weiss <PM7250B_SID 0x15 0x04 IRQ_TYPE_EDGE_RISING>, 62*6b5b15a1SLuca Weiss <PM7250B_SID 0x15 0x05 IRQ_TYPE_EDGE_RISING>, 63*6b5b15a1SLuca Weiss <PM7250B_SID 0x15 0x06 IRQ_TYPE_EDGE_BOTH>, 64*6b5b15a1SLuca Weiss <PM7250B_SID 0x15 0x07 IRQ_TYPE_EDGE_RISING>, 65*6b5b15a1SLuca Weiss <PM7250B_SID 0x17 0x00 IRQ_TYPE_EDGE_RISING>, 66*6b5b15a1SLuca Weiss <PM7250B_SID 0x17 0x01 IRQ_TYPE_EDGE_RISING>, 67*6b5b15a1SLuca Weiss <PM7250B_SID 0x17 0x02 IRQ_TYPE_EDGE_RISING>, 68*6b5b15a1SLuca Weiss <PM7250B_SID 0x17 0x03 IRQ_TYPE_EDGE_RISING>, 69*6b5b15a1SLuca Weiss <PM7250B_SID 0x17 0x04 IRQ_TYPE_EDGE_RISING>, 70*6b5b15a1SLuca Weiss <PM7250B_SID 0x17 0x05 IRQ_TYPE_EDGE_RISING>, 71*6b5b15a1SLuca Weiss <PM7250B_SID 0x17 0x06 IRQ_TYPE_EDGE_RISING>, 72*6b5b15a1SLuca Weiss <PM7250B_SID 0x17 0x07 IRQ_TYPE_EDGE_RISING>; 73*6b5b15a1SLuca Weiss interrupt-names = "or-rid-detect-change", 74*6b5b15a1SLuca Weiss "vpd-detect", 75*6b5b15a1SLuca Weiss "cc-state-change", 76*6b5b15a1SLuca Weiss "vconn-oc", 77*6b5b15a1SLuca Weiss "vbus-change", 78*6b5b15a1SLuca Weiss "attach-detach", 79*6b5b15a1SLuca Weiss "legacy-cable-detect", 80*6b5b15a1SLuca Weiss "try-snk-src-detect", 81*6b5b15a1SLuca Weiss "sig-tx", 82*6b5b15a1SLuca Weiss "sig-rx", 83*6b5b15a1SLuca Weiss "msg-tx", 84*6b5b15a1SLuca Weiss "msg-rx", 85*6b5b15a1SLuca Weiss "msg-tx-failed", 86*6b5b15a1SLuca Weiss "msg-tx-discarded", 87*6b5b15a1SLuca Weiss "msg-rx-discarded", 88*6b5b15a1SLuca Weiss "fr-swap"; 89*6b5b15a1SLuca Weiss vdd-vbus-supply = <&pm7250b_vbus>; 90*6b5b15a1SLuca Weiss status = "disabled"; 91*6b5b15a1SLuca Weiss }; 92*6b5b15a1SLuca Weiss 9311975b9bSLuca Weiss pm7250b_temp: temp-alarm@2400 { 9411975b9bSLuca Weiss compatible = "qcom,spmi-temp-alarm"; 9511975b9bSLuca Weiss reg = <0x2400>; 968e2d56f6SLuca Weiss interrupts = <PM7250B_SID 0x24 0x0 IRQ_TYPE_EDGE_BOTH>; 9711975b9bSLuca Weiss io-channels = <&pm7250b_adc ADC5_DIE_TEMP>; 9811975b9bSLuca Weiss io-channel-names = "thermal"; 9911975b9bSLuca Weiss #thermal-sensor-cells = <0>; 10011975b9bSLuca Weiss }; 10111975b9bSLuca Weiss 10211975b9bSLuca Weiss pm7250b_adc: adc@3100 { 10311975b9bSLuca Weiss compatible = "qcom,spmi-adc5"; 10411975b9bSLuca Weiss reg = <0x3100>; 10511975b9bSLuca Weiss #address-cells = <1>; 10611975b9bSLuca Weiss #size-cells = <0>; 10711975b9bSLuca Weiss #io-channel-cells = <1>; 1088e2d56f6SLuca Weiss interrupts = <PM7250B_SID 0x31 0x0 IRQ_TYPE_EDGE_RISING>; 10911975b9bSLuca Weiss 11041c18552SMarijn Suijten channel@0 { 11111975b9bSLuca Weiss reg = <ADC5_REF_GND>; 11211975b9bSLuca Weiss qcom,pre-scaling = <1 1>; 11311975b9bSLuca Weiss label = "ref_gnd"; 11411975b9bSLuca Weiss }; 11511975b9bSLuca Weiss 11641c18552SMarijn Suijten channel@1 { 11711975b9bSLuca Weiss reg = <ADC5_1P25VREF>; 11811975b9bSLuca Weiss qcom,pre-scaling = <1 1>; 11911975b9bSLuca Weiss label = "vref_1p25"; 12011975b9bSLuca Weiss }; 12111975b9bSLuca Weiss 12241c18552SMarijn Suijten channel@2 { 12311975b9bSLuca Weiss reg = <ADC5_DIE_TEMP>; 12411975b9bSLuca Weiss qcom,pre-scaling = <1 1>; 12511975b9bSLuca Weiss label = "die_temp"; 12611975b9bSLuca Weiss }; 12711975b9bSLuca Weiss 12841c18552SMarijn Suijten channel@7 { 12911975b9bSLuca Weiss reg = <ADC5_USB_IN_I>; 13011975b9bSLuca Weiss qcom,pre-scaling = <1 1>; 13111975b9bSLuca Weiss label = "usb_in_i_uv"; 13211975b9bSLuca Weiss }; 13311975b9bSLuca Weiss 13441c18552SMarijn Suijten channel@8 { 13511975b9bSLuca Weiss reg = <ADC5_USB_IN_V_16>; 13611975b9bSLuca Weiss qcom,pre-scaling = <1 16>; 13711975b9bSLuca Weiss label = "usb_in_v_div_16"; 13811975b9bSLuca Weiss }; 13911975b9bSLuca Weiss 14041c18552SMarijn Suijten channel@9 { 14111975b9bSLuca Weiss reg = <ADC5_CHG_TEMP>; 14211975b9bSLuca Weiss qcom,pre-scaling = <1 1>; 14311975b9bSLuca Weiss label = "chg_temp"; 14411975b9bSLuca Weiss }; 14511975b9bSLuca Weiss 14641c18552SMarijn Suijten channel@e { 14711975b9bSLuca Weiss reg = <ADC5_AMUX_THM2>; 14811975b9bSLuca Weiss qcom,hw-settle-time = <200>; 14911975b9bSLuca Weiss qcom,pre-scaling = <1 1>; 15011975b9bSLuca Weiss label = "smb1390_therm"; 15111975b9bSLuca Weiss }; 15211975b9bSLuca Weiss 15341c18552SMarijn Suijten channel@1e { 15411975b9bSLuca Weiss reg = <ADC5_MID_CHG_DIV6>; 15511975b9bSLuca Weiss qcom,pre-scaling = <1 6>; 15611975b9bSLuca Weiss label = "chg_mid"; 15711975b9bSLuca Weiss }; 15811975b9bSLuca Weiss 15941c18552SMarijn Suijten channel@4b { 1607592ba4dSLuca Weiss reg = <ADC5_BAT_ID_100K_PU>; 1617592ba4dSLuca Weiss qcom,hw-settle-time = <200>; 1627592ba4dSLuca Weiss qcom,pre-scaling = <1 1>; 1637592ba4dSLuca Weiss qcom,ratiometric; 1647592ba4dSLuca Weiss label = "bat_id"; 1657592ba4dSLuca Weiss }; 1667592ba4dSLuca Weiss 16741c18552SMarijn Suijten channel@83 { 16811975b9bSLuca Weiss reg = <ADC5_VPH_PWR>; 16911975b9bSLuca Weiss qcom,pre-scaling = <1 3>; 17011975b9bSLuca Weiss label = "vph_pwr"; 17111975b9bSLuca Weiss }; 17211975b9bSLuca Weiss 17341c18552SMarijn Suijten channel@84 { 17411975b9bSLuca Weiss reg = <ADC5_VBAT_SNS>; 17511975b9bSLuca Weiss qcom,pre-scaling = <1 3>; 17611975b9bSLuca Weiss label = "vbat_sns"; 17711975b9bSLuca Weiss }; 17811975b9bSLuca Weiss 17941c18552SMarijn Suijten channel@99 { 18011975b9bSLuca Weiss reg = <ADC5_SBUx>; 18111975b9bSLuca Weiss qcom,pre-scaling = <1 3>; 18211975b9bSLuca Weiss label = "chg_sbux"; 18311975b9bSLuca Weiss }; 18411975b9bSLuca Weiss }; 18511975b9bSLuca Weiss 18611975b9bSLuca Weiss pm7250b_adc_tm: adc-tm@3500 { 18711975b9bSLuca Weiss compatible = "qcom,spmi-adc-tm5"; 18811975b9bSLuca Weiss reg = <0x3500>; 1898e2d56f6SLuca Weiss interrupts = <PM7250B_SID 0x35 0x0 IRQ_TYPE_EDGE_RISING>; 19011975b9bSLuca Weiss #thermal-sensor-cells = <1>; 19111975b9bSLuca Weiss #address-cells = <1>; 19211975b9bSLuca Weiss #size-cells = <0>; 19311975b9bSLuca Weiss status = "disabled"; 19411975b9bSLuca Weiss }; 195e99a7a0cSRohit Agarwal 1966cd86217SLuca Weiss pm7250b_gpios: gpio@c000 { 197e99a7a0cSRohit Agarwal compatible = "qcom,pm7250b-gpio", "qcom,spmi-gpio"; 198e99a7a0cSRohit Agarwal reg = <0xc000>; 199e99a7a0cSRohit Agarwal gpio-controller; 200e99a7a0cSRohit Agarwal gpio-ranges = <&pm7250b_gpios 0 0 12>; 201e99a7a0cSRohit Agarwal #gpio-cells = <2>; 202e99a7a0cSRohit Agarwal interrupt-controller; 203e99a7a0cSRohit Agarwal #interrupt-cells = <2>; 204e99a7a0cSRohit Agarwal }; 20511975b9bSLuca Weiss }; 20611975b9bSLuca Weiss 2078e2d56f6SLuca Weiss pmic@PM7250B_SID1 { 20811975b9bSLuca Weiss compatible = "qcom,pm7250b", "qcom,spmi-pmic"; 2098e2d56f6SLuca Weiss reg = <PM7250B_SID1 SPMI_USID>; 21011975b9bSLuca Weiss #address-cells = <1>; 21111975b9bSLuca Weiss #size-cells = <0>; 21211975b9bSLuca Weiss }; 21311975b9bSLuca Weiss}; 214