On 4.07.2022 23:24, Robert Marko wrote: > PMP8074 is a companion PMIC to the Qualcomm IPQ8074 series that is > controlled via SPMI. > > Add DTSI for it providing GPIO, regulator and RTC support. > > RTC is disabled by default as there is no built-in battery so it will > loose time unless board vendor added a battery, so make it optional. > > Signed-off-by: Robert Marko <robimarko@xxxxxxxxx> > --- > Changes in v6: > * Add RTC and GPIO nodes > > Changes in v5: > * Remove #address-cells and #size-cells as they are not required for > regulator subnodes > --- > arch/arm64/boot/dts/qcom/pmp8074.dtsi | 125 ++++++++++++++++++++++++++ > 1 file changed, 125 insertions(+) > create mode 100644 arch/arm64/boot/dts/qcom/pmp8074.dtsi > > diff --git a/arch/arm64/boot/dts/qcom/pmp8074.dtsi b/arch/arm64/boot/dts/qcom/pmp8074.dtsi > new file mode 100644 > index 000000000000..a3b395e4d78f > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/pmp8074.dtsi > @@ -0,0 +1,125 @@ > +// SPDX-License-Identifier: GPL-2.0-only Hi, Please consider BSD3, or at least dual-licensing with some permissive license (so that for example BSDs can re-use these DTs). > + > +#include <dt-bindings/spmi/spmi.h> > +#include <dt-bindings/iio/qcom,spmi-vadc.h> > + > +&spmi_bus { > + pmic@0 { > + compatible = "qcom,pmp8074", "qcom,spmi-pmic"; > + reg = <0x0 SPMI_USID>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + pmp8074_adc: adc@3100 { > + compatible = "qcom,spmi-adc-rev2"; > + reg = <0x3100>; > + interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>; > + #address-cells = <1>; > + #size-cells = <0>; > + #io-channel-cells = <1>; > + > + ref_gnd@0 { No underscores in node names, please change this to ref-gnd (and consequently for all other nodes). Note that this only concerns node names and not labels. > + reg = <ADC5_REF_GND>; > + qcom,pre-scaling = <1 1>; > + }; > + > + vref_1p25@1 { > + reg = <ADC5_1P25VREF>; > + qcom,pre-scaling = <1 1>; > + }; > + > + vref_vadc@2 { > + reg = <ADC5_VREF_VADC>; > + qcom,pre-scaling = <1 1>; > + }; > + > + pmic_die: die_temp@6 { > + reg = <ADC5_DIE_TEMP>; > + qcom,pre-scaling = <1 1>; > + }; > + > + xo_therm: xo_temp@76 { > + reg = <ADC5_XO_THERM_100K_PU>; > + qcom,ratiometric; > + qcom,hw-settle-time = <200>; > + qcom,pre-scaling = <1 1>; > + }; > + > + pa_therm1: thermistor1@77 { > + reg = <ADC5_AMUX_THM1_100K_PU>; > + qcom,ratiometric; > + qcom,hw-settle-time = <200>; > + qcom,pre-scaling = <1 1>; > + }; > + > + pa_therm2: thermistor2@78 { > + reg = <ADC5_AMUX_THM2_100K_PU>; > + qcom,ratiometric; > + qcom,hw-settle-time = <200>; > + qcom,pre-scaling = <1 1>; > + }; > + > + pa_therm3: thermistor3@79 { > + reg = <ADC5_AMUX_THM3_100K_PU>; > + qcom,ratiometric; > + qcom,hw-settle-time = <200>; > + qcom,pre-scaling = <1 1>; > + }; > + > + vph_pwr@131 { > + reg = <ADC5_VPH_PWR>; > + qcom,pre-scaling = <1 3>; > + }; > + }; > + > + pmp8074_rtc: rtc@6000 { > + compatible = "qcom,pm8941-rtc"; > + reg = <0x6000>; > + reg-names = "rtc", "alarm"; > + interrupts = <0x0 0x61 0x1 IRQ_TYPE_NONE>; > + allow-set-time; > + status = "disabled"; Isn't this PMIC-internal, aka accessible on all devices using PMP8074? > + }; > + > + pmp8074_gpios: gpio@c000 { > + compatible = "qcom,pmp8074-gpio", "qcom,spmi-gpio"; > + reg = <0xc000>; > + gpio-controller; > + #gpio-cells = <2>; > + gpio-ranges = <&pmp8074_gpios 0 0 12>; > + interrupt-controller; > + #interrupt-cells = <2>; > + }; > + }; > + > + pmic@1 { > + compatible = "qcom,pmp8074", "qcom,spmi-pmic"; > + reg = <0x1 SPMI_USID>; > + > + regulators { > + compatible = "qcom,pmp8074-regulators"; > + > + s3: s3 { > + regulator-name = "vdd_s3"; > + regulator-min-microvolt = <592000>; > + regulator-max-microvolt = <1064000>; Are you sure no other configurations are supported with this PMIC? Otherwise you may accidentally burn somebody's board by setting up regulators in a place that's not usually expected to have them.. Konrad > + regulator-always-on; > + regulator-boot-on; > + }; > + > + s4: s4 { > + regulator-name = "vdd_s4"; > + regulator-min-microvolt = <712000>; > + regulator-max-microvolt = <992000>; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + l11: l11 { > + regulator-name = "l11"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <3300000>; > + }; > + }; > + }; > +};