ipq807x: 6.1: copy patches and config from 5.15
[openwrt/staging/jow.git] / target / linux / ipq807x / patches-6.1 / 0066-v6.2-arm64-dts-qcom-add-PMP8074-DTSI.patch
diff --git a/target/linux/ipq807x/patches-6.1/0066-v6.2-arm64-dts-qcom-add-PMP8074-DTSI.patch b/target/linux/ipq807x/patches-6.1/0066-v6.2-arm64-dts-qcom-add-PMP8074-DTSI.patch
new file mode 100644 (file)
index 0000000..cd14642
--- /dev/null
@@ -0,0 +1,149 @@
+From fb76b808f8628215afebaf0f8af0bde635302590 Mon Sep 17 00:00:00 2001
+From: Robert Marko <robimarko@gmail.com>
+Date: Fri, 19 Aug 2022 00:18:14 +0200
+Subject: [PATCH] arm64: dts: qcom: add PMP8074 DTSI
+
+PMP8074 is a companion PMIC to the Qualcomm IPQ8074 series that is
+controlled via SPMI.
+
+Add DTSI for it providing GPIO, regulator, RTC and VADC 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@gmail.com>
+Signed-off-by: Bjorn Andersson <andersson@kernel.org>
+Link: https://lore.kernel.org/r/20220818221815.346233-4-robimarko@gmail.com
+---
+ arch/arm64/boot/dts/qcom/pmp8074.dtsi | 125 ++++++++++++++++++++++++++
+ 1 file changed, 125 insertions(+)
+ create mode 100644 arch/arm64/boot/dts/qcom/pmp8074.dtsi
+
+--- /dev/null
++++ b/arch/arm64/boot/dts/qcom/pmp8074.dtsi
+@@ -0,0 +1,125 @@
++// SPDX-License-Identifier: GPL-2.0-only OR BSD-3-Clause
++
++#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 {
++                              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";
++              };
++
++              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>;
++                              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>;
++                      };
++              };
++      };
++};