Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4a9ce7ea authored by Tirupathi Reddy's avatar Tirupathi Reddy
Browse files

ARM: dts: msm: add PM8937, PMI8937 and PMI8940 PMIC peripheral devices



Add new device tree files pm8937, pmi8937.dtsi and pmi8940.dtsi
which contain devices for the PMIC peripherals found in PM8937,
PMI8937 and PMI8940 chips.

These files are based upon msm-pm8937.dtsi, msm-pmi8937.dtsi and
msm-pmi8940.dtsi found in msm-3.18 branch as of:

'commit c0b3f609196f ("ARM: dts: msm: Remove GPU mempool for msm8909")'

CRs-Fixed: 2160311
Change-Id: I0ca62064c54ede929aa921618260c58868b738f4
Signed-off-by: default avatarTirupathi Reddy <tirupath@codeaurora.org>
parent 5a580c0a
Loading
Loading
Loading
Loading
+383 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

&spmi_bus {

	qcom,pm8937@0 {
		spmi-slave-container;
		reg = <0x0>;
		#address-cells = <1>;
		#size-cells = <1>;

		pm8937_revid: qcom,revid@100 {
			compatible = "qcom,qpnp-revid";
			reg = <0x100 0x100>;
		};

		qcom,power-on@800 {
			compatible = "qcom,qpnp-power-on";
			reg = <0x800 0x100>;
			interrupts = <0x0 0x8 0x0>,
				<0x0 0x8 0x1>,
				<0x0 0x8 0x4>,
				<0x0 0x8 0x5>;
			interrupt-names = "kpdpwr", "resin",
				"resin-bark", "kpdpwr-resin-bark";
			qcom,pon-dbc-delay = <15625>;
			qcom,system-reset;

			qcom,pon_1 {
				qcom,pon-type = <0>;
				qcom,pull-up = <1>;
				linux,code = <116>;
			};

			qcom,pon_2 {
				qcom,pon-type = <1>;
				qcom,pull-up = <1>;
				linux,code = <114>;
			};
		};

		pm8937_temp_alarm: qcom,temp-alarm@2400 {
			compatible = "qcom,qpnp-temp-alarm";
			reg = <0x2400 0x100>;
			interrupts = <0x0 0x24 0x0>;
			label = "pm8937_tz";
			qcom,channel-num = <8>;
			qcom,threshold-set = <0>;
			qcom,temp_alarm-vadc = <&pm8937_vadc>;
		};

		pm8937_coincell: qcom,coincell@2800 {
			compatible = "qcom,qpnp-coincell";
			reg = <0x2800 0x100>;
		};

		pm8937_rtc: qcom,pm8937_rtc {
			spmi-dev-container;
			compatible = "qcom,qpnp-rtc";
			#address-cells = <1>;
			#size-cells = <1>;
			qcom,qpnp-rtc-write = <0>;
			qcom,qpnp-rtc-alarm-pwrup = <0>;

			qcom,pm8937_rtc_rw@6000 {
				reg = <0x6000 0x100>;
			};

			qcom,pm8937_rtc_alarm@6100 {
				reg = <0x6100 0x100>;
				interrupts = <0x0 0x61 0x1>;
			};
		};

		pm8937_mpps: mpps {
			compatible = "qcom,qpnp-pin";
			spmi-dev-container;
			gpio-controller;
			#gpio-cells = <2>;
			#address-cells = <1>;
			#size-cells = <1>;
			label = "pm8937-mpp";

			mpp@a000 {
				reg = <0xa000 0x100>;
				qcom,pin-num = <1>;
				status = "disabled";
			};

			mpp@a100 {
				/* MPP2 - PA_THERM config */
				reg = <0xa100 0x100>;
				qcom,pin-num = <2>;
				qcom,mode = <4>; /* AIN input */
				qcom,invert = <1>; /* Enable MPP */
				qcom,ain-route = <1>; /* AMUX 6 */
				qcom,master-en = <1>;
				qcom,src-sel = <0>; /* Function constant */
			};

			mpp@a200 {
				reg = <0xa200 0x100>;
				qcom,pin-num = <3>;
				status = "disabled";
			};

			mpp@a300 {
				/* MPP4 - CASE_THERM config */
				reg = <0xa300 0x100>;
				qcom,pin-num = <4>;
				qcom,mode = <4>; /* AIN input */
				qcom,invert = <1>; /* Enable MPP */
				qcom,ain-route = <3>; /* AMUX 8 */
				qcom,master-en = <1>;
				qcom,src-sel = <0>; /* Function constant */
			};
		};

		pm8937_gpios: gpios {
			spmi-dev-container;
			compatible = "qcom,qpnp-pin";
			gpio-controller;
			#gpio-cells = <2>;
			#address-cells = <1>;
			#size-cells = <1>;
			label = "pm8937-gpio";

			gpio@c000 {
				reg = <0xc000 0x100>;
				qcom,pin-num = <1>;
				status = "disabled";
			};

			gpio@c100 {
				reg = <0xc100 0x100>;
				qcom,pin-num = <2>;
				status = "disabled";
			};

			gpio@c200 {
				reg = <0xc200 0x100>;
				qcom,pin-num = <3>;
				status = "disabled";
			};

			gpio@c300 {
				reg = <0xc300 0x100>;
				qcom,pin-num = <4>;
				status = "disabled";
			};

			gpio@c400 {
				reg = <0xc400 0x100>;
				qcom,pin-num = <5>;
				status = "disabled";
			};

			gpio@c500 {
				reg = <0xc500 0x100>;
				qcom,pin-num = <6>;
				status = "disabled";
			};

			gpio@c600 {
				reg = <0xc600 0x100>;
				qcom,pin-num = <7>;
				status = "disabled";
			};

			gpio@c700 {
				reg = <0xc700 0x100>;
				qcom,pin-num = <8>;
				status = "disabled";
			};
		};

		pm8937_vadc: vadc@3100 {
			compatible = "qcom,qpnp-vadc";
			reg = <0x3100 0x100>;
			#address-cells = <1>;
			#size-cells = <0>;
			interrupts = <0x0 0x31 0x0>;
			interrupt-names = "eoc-int-en-set";
			qcom,adc-bit-resolution = <15>;
			qcom,adc-vdd-reference = <1800>;
			qcom,vadc-poll-eoc;

			chan@5 {
				label = "vcoin";
				reg = <5>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <1>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <0>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};

			chan@7 {
				label = "vph_pwr";
				reg = <7>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <1>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <0>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};

			chan@8 {
				label = "die_temp";
				reg = <8>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <0>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <3>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};

			chan@9 {
				label = "ref_625mv";
				reg = <9>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <0>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <0>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};

			chan@a {
				label = "ref_1250v";
				reg = <0xa>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <0>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <0>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};

			chan@c {
				label = "ref_buf_625mv";
				reg = <0xc>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <0>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <0>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};

			chan@36 {
				label = "pa_therm0";
				reg = <0x36>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <0>;
				qcom,calibration-type = "ratiometric";
				qcom,scale-function = <2>;
				qcom,hw-settle-time = <2>;
				qcom,fast-avg-setup = <0>;
			};

			chan@11 {
				label = "pa_therm1";
				reg = <0x11>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <0>;
				qcom,calibration-type = "ratiometric";
				qcom,scale-function = <2>;
				qcom,hw-settle-time = <2>;
				qcom,fast-avg-setup = <0>;
				qcom,vadc-thermal-node;
			};

			chan@32 {
				label = "xo_therm";
				reg = <0x32>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <0>;
				qcom,calibration-type = "ratiometric";
				qcom,scale-function = <4>;
				qcom,hw-settle-time = <2>;
				qcom,fast-avg-setup = <0>;
				qcom,vadc-thermal-node;
			};

			chan@3c {
				label = "xo_therm_buf";
				reg = <0x3c>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <0>;
				qcom,calibration-type = "ratiometric";
				qcom,scale-function = <4>;
				qcom,hw-settle-time = <2>;
				qcom,fast-avg-setup = <0>;
				qcom,vadc-thermal-node;
			};

			chan@13 {
				label = "case_therm";
				reg = <0x13>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <0>;
				qcom,calibration-type = "ratiometric";
				qcom,scale-function = <2>;
				qcom,hw-settle-time = <2>;
				qcom,fast-avg-setup = <0>;
				qcom,vadc-thermal-node;
			};
		};

		pm8937_adc_tm: vadc@3400 {
			compatible = "qcom,qpnp-adc-tm";
			reg = <0x3400 0x100>;
			#address-cells = <1>;
			#size-cells = <0>;
			interrupts =	<0x0 0x34 0x0>,
					<0x0 0x34 0x3>,
					<0x0 0x34 0x4>;
			interrupt-names =	"eoc-int-en-set",
						"high-thr-en-set",
						"low-thr-en-set";
			qcom,adc-bit-resolution = <15>;
			qcom,adc-vdd-reference = <1800>;
			qcom,adc_tm-vadc = <&pm8937_vadc>;

			chan@36 {
				label = "pa_therm0";
				reg = <0x36>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <0>;
				qcom,calibration-type = "ratiometric";
				qcom,scale-function = <2>;
				qcom,hw-settle-time = <2>;
				qcom,fast-avg-setup = <0>;
				qcom,btm-channel-number = <0x48>;
				qcom,thermal-node;
			};

			chan@7 {
				label = "vph_pwr";
				reg = <0x7>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <1>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <0>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
				qcom,btm-channel-number = <0x68>;
			};
		};

	};

	pm8937_1: qcom,pm8937@1 {
		spmi-slave-container;
		reg = <0x1>;
		#address-cells = <1>;
		#size-cells = <1>;

		pm8937_pwm: pwm@bc00 {
			status = "disabled";
			compatible = "qcom,qpnp-pwm";
			reg = <0xbc00 0x100>;
			reg-names = "qpnp-lpg-channel-base";
			qcom,channel-id = <0>;
			qcom,supported-sizes = <6>, <9>;
			#pwm-cells = <2>;
		};
	};
};
+540 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#include <dt-bindings/msm/power-on.h>

&spmi_bus {

	qcom,pmi8937@2 {
		spmi-slave-container;
		reg = <0x2>;
		#address-cells = <1>;
		#size-cells = <1>;

		pmi8937_revid: qcom,revid@100 {
			compatible = "qcom,qpnp-revid";
			reg = <0x100 0x100>;
		};

		qcom,power-on@800 {
			compatible = "qcom,qpnp-power-on";
			reg = <0x800 0x100>;
			qcom,secondary-pon-reset;
			qcom,hard-reset-poweroff-type =
				<PON_POWER_OFF_SHUTDOWN>;

			pon_perph_reg: qcom,pon_perph_reg {
				regulator-name = "pon_spare_reg";
				qcom,pon-spare-reg-addr = <0x8c>;
				qcom,pon-spare-reg-bit = <1>;
			};
		};

		pmi8937_vadc: vadc@3100 {
			compatible = "qcom,qpnp-vadc";
			reg = <0x3100 0x100>;
			#address-cells = <1>;
			#size-cells = <0>;
			interrupts = <0x2 0x31 0x0>;
			interrupt-names = "eoc-int-en-set";
			qcom,adc-bit-resolution = <15>;
			qcom,adc-vdd-reference = <1800>;
			qcom,vadc-poll-eoc;

			chan@0 {
				label = "usbin";
				reg = <0>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <4>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <0>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};

			chan@1 {
				label = "dcin";
				reg = <1>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <4>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <0>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};

			chan@3 {
				label = "vchg_sns";
				reg = <3>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <1>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <0>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};

			chan@9 {
				label = "ref_625mv";
				reg = <9>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <0>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <0>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};

			chan@a {
				label = "ref_1250v";
				reg = <0xa>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <0>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <0>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};

			chan@d {
				label = "chg_temp";
				reg = <0xd>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <0>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <16>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};

			chan@43 {
				label = "usb_dp";
				reg = <0x43>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <1>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <0>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};

			chan@44 {
				label = "usb_dm";
				reg = <0x44>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <1>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <0>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};
		};

		pmi8937_mpps: mpps {
			spmi-dev-container;
			compatible = "qcom,qpnp-pin";
			gpio-controller;
			#gpio-cells = <2>;
			#address-cells = <1>;
			#size-cells = <1>;
			label = "pmi8937-mpp";

			mpp@a000 {
				reg = <0xa000 0x100>;
				qcom,pin-num = <1>;
				status = "disabled";
			};

			mpp@a100 {
				reg = <0xa100 0x100>;
				qcom,pin-num = <2>;
				status = "disabled";
			};

			mpp@a300 {
				reg = <0xa300 0x100>;
				qcom,pin-num = <4>;
				status = "disabled";
			};
		};

		pmi8937_charger: qcom,qpnp-smbcharger {
			spmi-dev-container;
			compatible = "qcom,qpnp-smbcharger";
			#address-cells = <1>;
			#size-cells = <1>;

			qcom,iterm-ma = <100>;
			qcom,float-voltage-mv = <4200>;
			qcom,resume-delta-mv = <200>;
			qcom,chg-inhibit-fg;
			qcom,rparasitic-uohm = <100000>;
			qcom,bms-psy-name = "bms";
			qcom,thermal-mitigation = <1500 700 600 0>;
			qcom,parallel-usb-min-current-ma = <1400>;
			qcom,parallel-usb-9v-min-current-ma = <900>;
			qcom,parallel-allowed-lowering-ma = <500>;
			qcom,pmic-revid = <&pmi8937_revid>;
			qcom,force-aicl-rerun;
			qcom,aicl-rerun-period-s = <180>;
			qcom,autoadjust-vfloat;

			qcom,chgr@1000 {
				reg = <0x1000 0x100>;
				interrupts =	<0x2 0x10 0x0>,
						<0x2 0x10 0x1>,
						<0x2 0x10 0x2>,
						<0x2 0x10 0x3>,
						<0x2 0x10 0x4>,
						<0x2 0x10 0x5>,
						<0x2 0x10 0x6>,
						<0x2 0x10 0x7>;

				interrupt-names =	"chg-error",
							"chg-inhibit",
							"chg-prechg-sft",
							"chg-complete-chg-sft",
							"chg-p2f-thr",
							"chg-rechg-thr",
							"chg-taper-thr",
							"chg-tcc-thr";
			};

			qcom,otg@1100 {
				reg = <0x1100 0x100>;
				interrupts =	<0x2 0x11 0x0>,
						<0x2 0x11 0x1>,
						<0x2 0x11 0x3>;
				interrupt-names =	"otg-fail",
							"otg-oc",
						"usbid-change";
			};

			qcom,bat-if@1200 {
				reg = <0x1200 0x100>;
				interrupts =	<0x2 0x12 0x0>,
						<0x2 0x12 0x1>,
						<0x2 0x12 0x2>,
						<0x2 0x12 0x3>,
					<0x2 0x12 0x4>,
						<0x2 0x12 0x5>,
						<0x2 0x12 0x6>,
						<0x2 0x12 0x7>;

				interrupt-names =	"batt-hot",
							"batt-warm",
							"batt-cold",
							"batt-cool",
						"batt-ov",
							"batt-low",
							"batt-missing",
							"batt-term-missing";
			};

			qcom,usb-chgpth@1300 {
				reg = <0x1300 0x100>;
				interrupts =	<0x2 0x13 0x0>,
						<0x2 0x13 0x1>,
					<0x2 0x13 0x2>,
						<0x2 0x13 0x5>;

				interrupt-names =	"usbin-uv",
						"usbin-ov",
							"usbin-src-det",
							"aicl-done";
			};

			qcom,dc-chgpth@1400 {
				reg = <0x1400 0x100>;
				interrupts =	<0x2 0x14 0x0>,
						<0x2 0x14 0x1>;
				interrupt-names =	"dcin-uv",
							"dcin-ov";
			};

			qcom,chgr-misc@1600 {
				reg = <0x1600 0x100>;
				interrupts =	<0x2 0x16 0x0>,
						<0x2 0x16 0x1>,
						<0x2 0x16 0x2>,
					<0x2 0x16 0x3>,
						<0x2 0x16 0x4>,
						<0x2 0x16 0x5>;

				interrupt-names =	"power-ok",
							"temp-shutdown",
							"wdog-timeout",
							"flash-fail",
							"otst2",
							"otst3";
			};

			smbcharger_charger_otg: qcom,smbcharger-boost-otg {
				regulator-name = "smbcharger_charger_otg";
			};
		};

		pmi8937_fg: qcom,fg {
			spmi-dev-container;
			compatible = "qcom,qpnp-fg";
			#address-cells = <1>;
			#size-cells = <1>;
			qcom,resume-soc = <95>;
			status = "okay";
			qcom,bcl-lm-threshold-ma = <127>;
			qcom,bcl-mh-threshold-ma = <405>;
			qcom,fg-iterm-ma = <150>;
			qcom,fg-chg-iterm-ma = <100>;
			qcom,pmic-revid = <&pmi8937_revid>;
			qcom,fg-cutoff-voltage-mv = <3500>;
			qcom,cycle-counter-en;
			qcom,capacity-learning-on;

			qcom,fg-soc@4000 {
			status = "okay";
				reg = <0x4000 0x100>;
				interrupts =	<0x2 0x40 0x0>,
						<0x2 0x40 0x1>,
						<0x2 0x40 0x2>,
						<0x2 0x40 0x3>,
						<0x2 0x40 0x4>,
						<0x2 0x40 0x5>,
						<0x2 0x40 0x6>;

				interrupt-names =	"high-soc",
							"low-soc",
							"full-soc",
							"empty-soc",
							"delta-soc",
							"first-est-done",
							"update-soc";
			};

			qcom,fg-batt@4100 {
				reg = <0x4100 0x100>;
				interrupts =	<0x2 0x41 0x0>,
						<0x2 0x41 0x1>,
					<0x2 0x41 0x2>,
						<0x2 0x41 0x3>,
						<0x2 0x41 0x4>,
						<0x2 0x41 0x5>,
						<0x2 0x41 0x6>,
						<0x2 0x41 0x7>;

				interrupt-names =	"soft-cold",
							"soft-hot",
							"vbatt-low",
							"batt-ided",
							"batt-id-req",
							"batt-unknown",
							"batt-missing",
							"batt-match";
			};

			qcom,revid-tp-rev@1f1 {
				reg = <0x1f1 0x1>;
			};

			qcom,fg-memif@4400 {
				status = "okay";
				reg = <0x4400 0x100>;
				interrupts =	<0x2 0x44 0x0>,
						<0x2 0x44 0x2>;

				interrupt-names =	"mem-avail",
							"data-rcvry-sug";
			};
		};

		bcl@4200 {
			compatible = "qcom,msm-bcl";
			reg = <0x4200 0xff>;
			reg-names = "fg_user_adc";
			interrupts = <0x2 0x42 0x0>,
					<0x2 0x42 0x1>;
			interrupt-names = "bcl-high-ibat-int",
					"bcl-low-vbat-int";
			qcom,vbat-scaling-factor = <39000>;
			qcom,vbat-gain-numerator = <1>;
			qcom,vbat-gain-denominator = <128>;
			qcom,vbat-polling-delay-ms = <100>;
			qcom,ibat-scaling-factor = <39000>;
			qcom,ibat-gain-numerator = <1>;
			qcom,ibat-gain-denominator = <128>;
			qcom,ibat-offset-numerator = <1200>;
			qcom,ibat-offset-denominator = <1>;
			qcom,ibat-polling-delay-ms = <100>;
		};

		qcom,leds@a100 {
			compatible = "qcom,leds-qpnp";
			reg = <0xa100 0x100>;
			label = "mpp";
		};
	};

	qcom,pmi8937@3 {
		spmi-slave-container;
		reg = <0x3>;
		#address-cells = <1>;
		#size-cells = <1>;

		pmi8937_pwm: pwm@b000 {
			status = "disabled";
			compatible = "qcom,qpnp-pwm";
			reg = <0xb000 0x100>;
			reg-names = "qpnp-lpg-channel-base";
			qcom,channel-id = <0>;
			qcom,supported-sizes = <6>, <9>;
			#pwm-cells = <2>;
		};

		wled: qcom,leds@d800 {
			compatible = "qcom,qpnp-wled";
			reg = <0xd800 0x100>,
				<0xd900 0x100>;
			reg-names = "qpnp-wled-ctrl-base",
					"qpnp-wled-sink-base";
			interrupts = <0x3 0xd8 0x2>;
			interrupt-names = "sc-irq";
			status = "okay";
			linux,name = "wled";
			linux,default-trigger = "bkl-trigger";
			qcom,fdbk-output = "auto";
			qcom,vref-mv = <350>;
			qcom,switch-freq-khz = <800>;
			qcom,ovp-mv = <29500>;
			qcom,ilim-ma = <980>;
			qcom,boost-duty-ns = <26>;
			qcom,mod-freq-khz = <9600>;
			qcom,dim-mode = "hybrid";
			qcom,dim-method = "linear";
			qcom,hyb-thres = <625>;
			qcom,sync-dly-us = <800>;
			qcom,fs-curr-ua = <20000>;
			qcom,led-strings-list = [00 01];
			qcom,en-ext-pfet-sc-pro;
			qcom,cons-sync-write-delay-us = <1000>;
		};

		flash_led: qcom,leds@d300 {
			compatible = "qcom,qpnp-flash-led";
			status = "okay";
			reg = <0xd300 0x100>;
			label = "flash";
			qcom,headroom = <500>;
			qcom,startup-dly = <128>;
			qcom,clamp-curr = <200>;
			qcom,pmic-charger-support;
			qcom,self-check-enabled;
			qcom,thermal-derate-enabled;
			qcom,thermal-derate-threshold = <100>;
			qcom,thermal-derate-rate = "5_PERCENT";
			qcom,current-ramp-enabled;
			qcom,ramp_up_step = "6P7_US";
			qcom,ramp_dn_step = "6P7_US";
			qcom,vph-pwr-droop-enabled;
			qcom,vph-pwr-droop-threshold = <3000>;
			qcom,vph-pwr-droop-debounce-time = <10>;
			qcom,headroom-sense-ch0-enabled;
			qcom,headroom-sense-ch1-enabled;
			qcom,pmic-revid = <&pmi8937_revid>;

			pmi8937_flash0: qcom,flash_0 {
				label = "flash";
				qcom,led-name = "led:flash_0";
				qcom,default-led-trigger =
						"flash0_trigger";
				qcom,max-current = <1000>;
				qcom,duration = <1280>;
				qcom,id = <0>;
				qcom,current = <625>;
			};

			pmi8937_flash1: qcom,flash_1 {
				label = "flash";
				qcom,led-name = "led:flash_1";
				qcom,default-led-trigger =
						"flash1_trigger";
				qcom,max-current = <1000>;
				qcom,duration = <1280>;
				qcom,id = <1>;
				qcom,current = <625>;
			};

			pmi8937_torch0: qcom,torch_0 {
				label = "torch";
				qcom,led-name = "led:torch_0";
				qcom,default-led-trigger =
						"torch0_trigger";
				qcom,max-current = <200>;
				qcom,id = <0>;
				qcom,current = <120>;
			};

			pmi8937_torch1: qcom,torch_1 {
				label = "torch";
				qcom,led-name = "led:torch_1";
				qcom,default-led-trigger =
						"torch1_trigger";
				qcom,max-current = <200>;
				qcom,id = <1>;
				qcom,current = <120>;
			};

			pmi8937_switch: qcom,switch {
				label = "switch";
				qcom,led-name = "led:switch";
				qcom,default-led-trigger =
						"switch_trigger";
				qcom,max-current = <1000>;
				qcom,duration = <1280>;
				qcom,id = <2>;
				qcom,current = <625>;
				reg0 {
					regulator-name = "pon_spare_reg";
				};
			};
		};

		pmi_haptic: qcom,haptic@c000 {
			compatible = "qcom,qpnp-haptic";
			reg = <0xc000 0x100>;
			interrupts = <0x3 0xc0 0x0>,
				<0x3 0xc0 0x1>;
			interrupt-names = "sc-irq", "play-irq";
			qcom,pmic-revid = <&pmi8937_revid>;
			vcc_pon-supply = <&pon_perph_reg>;
			qcom,play-mode = "direct";
			qcom,wave-play-rate-us = <5263>;
			qcom,actuator-type = "lra";
			qcom,wave-shape = "square";
			qcom,vmax-mv = <2000>;
			qcom,ilim-ma = <800>;
			qcom,sc-deb-cycles = <8>;
			qcom,int-pwm-freq-khz = <505>;
			qcom,en-brake;
			qcom,brake-pattern = [03 03 00 00];
			qcom,use-play-irq;
			qcom,use-sc-irq;
			qcom,wave-samples = [3e 3e 3e 3e 3e 3e 3e 3e];
			qcom,wave-rep-cnt = <1>;
			qcom,wave-samp-rep-cnt = <1>;
			qcom,lra-auto-res-mode="qwd";
			qcom,lra-high-z="opt1";
			qcom,lra-res-cal-period = <4>;
			qcom,correct-lra-drive-freq;
			qcom,misc-trim-error-rc19p2-clk-reg-present;
		};
	};
};
+611 −0

File added.

Preview size limit exceeded, changes collapsed.