diff --git a/qcom/pm7550ba.dtsi b/qcom/pm7550ba.dtsi new file mode 100644 index 00000000..4110ca1f --- /dev/null +++ b/qcom/pm7550ba.dtsi @@ -0,0 +1,87 @@ +#include +#include + +&spmi_bus { + #address-cells = <2>; + #size-cells = <0>; + interrupt-controller; + #interrupt-cells = <4>; + + qcom,pm7550ba@7 { + compatible = "qcom,spmi-pmic"; + reg = <7 SPMI_USID>; + #address-cells = <1>; + #size-cells = <0>; + + pm7550ba_tz: qcom,temp-alarm@a00 { + compatible = "qcom,spmi-temp-alarm"; + reg = <0xa00>; + interrupts = <0x7 0xa 0x0 IRQ_TYPE_EDGE_BOTH>; + #thermal-sensor-cells = <0>; + }; + + pm7550ba_sdam_1: sdam@7000 { + compatible = "qcom,spmi-sdam"; + reg = <0x7000>; + }; + + pm7550ba_sdam_2: sdam@7100 { + compatible = "qcom,spmi-sdam"; + reg = <0x7100>; + }; + + pm7550ba_sdam_3: sdam@7200 { + compatible = "qcom,spmi-sdam"; + reg = <0x7200>; + }; + + pm7550ba_sdam_4: sdam@7300 { + compatible = "qcom,spmi-sdam"; + reg = <0x7300>; + }; + + pm7550ba_gpios: pinctrl@8800 { + compatible = "qcom,pm7550ba-gpio"; + reg = <0x8800>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + pm7550ba_eusb2_repeater: qcom,eusb2-repeater@fd00 { + compatible = "qcom,pmic-eusb2-repeater"; + reg = <0xfd00>; + status = "disabled"; + }; + }; +}; + +&thermal_zones { + pm7550ba_temp_alarm: pm7550ba_tz { + polling-delay-passive = <100>; + polling-delay = <0>; + thermal-governor = "step_wise"; + thermal-sensors = <&pm7550ba_tz>; + + trips { + pm7550ba_trip0: trip0 { + temperature = <95000>; + hysteresis = <0>; + type = "passive"; + }; + + pm7550ba_trip1: trip1 { + temperature = <115000>; + hysteresis = <0>; + type = "critical"; + }; + + pm7550ba_trip2: trip2 { + temperature = <145000>; + hysteresis = <0>; + type = "critical"; + }; + }; + }; +}; diff --git a/qcom/pmx75.dtsi b/qcom/pmx75.dtsi new file mode 100644 index 00000000..9bcec7cc --- /dev/null +++ b/qcom/pmx75.dtsi @@ -0,0 +1,83 @@ +#include +#include + +&spmi_bus { + #address-cells = <2>; + #size-cells = <0>; + interrupt-controller; + #interrupt-cells = <4>; + + qcom,pmx75@1 { + compatible = "qcom,spmi-pmic"; + reg = <1 SPMI_USID>; + #address-cells = <1>; + #size-cells = <0>; + + pmx75_tz: qcom,temp-alarm@a00 { + compatible = "qcom,spmi-temp-alarm"; + reg = <0xa00>; + interrupts = <0x1 0xa 0x0 IRQ_TYPE_EDGE_BOTH>; + #thermal-sensor-cells = <0>; + }; + + pmx75_vbus_detect: qcom,pmd-vbus-det@1500 { + compatible = "qcom,pm8941-misc"; + reg = <0x1500>; + interrupts = <0x1 0x15 0x0 IRQ_TYPE_EDGE_BOTH>; + interrupt-names = "usb_vbus"; + status = "disabled"; + }; + + pmx75_gpios: pinctrl@8800 { + compatible = "qcom,pmx75-gpio"; + reg = <0x8800>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + pmx75_pwm: pwms@e800 { + compatible = "qcom,pwm-lpg"; + reg = <0xe800>; + reg-names = "lpg-base"; + #pwm-cells = <2>; + qcom,num-lpg-channels = <4>; + }; + + pmx75_eusb2_repeater: qcom,eusb2-repeater@fd00 { + compatible = "qcom,pmic-eusb2-repeater"; + reg = <0xfd00>; + status = "disabled"; + }; + }; +}; + +&thermal_zones { + pmx75_temp_alarm: pmx75_tz { + polling-delay-passive = <100>; + polling-delay = <0>; + thermal-governor = "step_wise"; + thermal-sensors = <&pmx75_tz>; + + trips { + pmx75_trip0: trip0 { + temperature = <95000>; + hysteresis = <0>; + type = "passive"; + }; + + pmx75_trip1: trip1 { + temperature = <115000>; + hysteresis = <0>; + type = "critical"; + }; + + pmx75_trip2: trip2 { + temperature = <145000>; + hysteresis = <0>; + type = "critical"; + }; + }; + }; +}; diff --git a/qcom/sdxpinn-pmic-overlay.dtsi b/qcom/sdxpinn-pmic-overlay.dtsi new file mode 100644 index 00000000..e39061c3 --- /dev/null +++ b/qcom/sdxpinn-pmic-overlay.dtsi @@ -0,0 +1,3 @@ +#include "pmk8550.dtsi" +#include "pmx75.dtsi" +#include "pm7550ba.dtsi" diff --git a/qcom/sdxpinn.dtsi b/qcom/sdxpinn.dtsi index 04d74526..6d1e4164 100644 --- a/qcom/sdxpinn.dtsi +++ b/qcom/sdxpinn.dtsi @@ -624,6 +624,29 @@ #interrupt-cells = <3>; #mbox-cells = <2>; }; + + spmi_bus: qcom,spmi@c42d000 { + compatible = "qcom,spmi-pmic-arb"; + reg = <0xc42d000 0x4000>, + <0xc400000 0x2800>, + <0xc500000 0x200000>, + <0xc440000 0x3c000>, + <0xc4c0000 0x10000>; + reg-names = "cnfg", "core", "chnls", "obsrvr", "intr"; + interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "periph_irq"; + interrupt-controller; + #interrupt-cells = <4>; + #address-cells = <2>; + #size-cells = <0>; + cell-index = <0>; + qcom,channel = <0>; + qcom,ee = <0>; + qcom,bus-id = <0>; + }; + + thermal_zones: thermal-zones { + }; }; #include "ipcc-test-sdxpinn.dtsi"