Linux Audio

Check our new training course

Embedded Linux training

Mar 31-Apr 8, 2025
Register
Loading...
Note: File does not exist in v4.17.
  1// SPDX-License-Identifier: GPL-2.0
  2
  3&ssbi {
  4	pm8921: pmic {
  5		compatible = "qcom,pm8921";
  6		#interrupt-cells = <2>;
  7		interrupt-controller;
  8		#address-cells = <1>;
  9		#size-cells = <0>;
 10
 11		pwrkey@1c {
 12			compatible = "qcom,pm8921-pwrkey";
 13			reg = <0x1c>;
 14			interrupts-extended = <&pm8921 50 IRQ_TYPE_EDGE_RISING>,
 15					      <&pm8921 51 IRQ_TYPE_EDGE_RISING>;
 16			debounce = <15625>;
 17			pull-up;
 18		};
 19
 20		pm8921_mpps: mpps@50 {
 21			compatible = "qcom,pm8921-mpp",
 22				     "qcom,ssbi-mpp";
 23			reg = <0x50>;
 24			gpio-controller;
 25			#gpio-cells = <2>;
 26			gpio-ranges = <&pm8921_mpps 0 0 12>;
 27			interrupt-controller;
 28			#interrupt-cells = <2>;
 29		};
 30
 31		rtc@11d {
 32			compatible = "qcom,pm8921-rtc";
 33			reg = <0x11d>;
 34			interrupts-extended = <&pm8921 39 IRQ_TYPE_EDGE_RISING>;
 35			allow-set-time;
 36		};
 37
 38		pm8921_keypad: keypad@148 {
 39			compatible = "qcom,pm8921-keypad";
 40			reg = <0x148>;
 41			interrupts-extended = <&pm8921 74 IRQ_TYPE_EDGE_RISING>,
 42					      <&pm8921 75 IRQ_TYPE_EDGE_RISING>;
 43			debounce = <15>;
 44			scan-delay = <32>;
 45			row-hold = <91500>;
 46			status = "disabled";
 47		};
 48
 49		pm8921_gpio: gpio@150 {
 50
 51			compatible = "qcom,pm8921-gpio",
 52				     "qcom,ssbi-gpio";
 53			reg = <0x150>;
 54			interrupt-controller;
 55			#interrupt-cells = <2>;
 56			gpio-controller;
 57			gpio-ranges = <&pm8921_gpio 0 0 44>;
 58			#gpio-cells = <2>;
 59
 60		};
 61
 62		pm8921_xoadc: xoadc@197 {
 63			compatible = "qcom,pm8921-adc";
 64			reg = <0x197>;
 65			interrupts-extended = <&pm8921 78 IRQ_TYPE_EDGE_RISING>;
 66			#address-cells = <2>;
 67			#size-cells = <0>;
 68			#io-channel-cells = <2>;
 69
 70			vcoin: adc-channel@0 {
 71				reg = <0x00 0x00>;
 72			};
 73
 74			vbat: adc-channel@1 {
 75				reg = <0x00 0x01>;
 76			};
 77
 78			dcin: adc-channel@2 {
 79				reg = <0x00 0x02>;
 80			};
 81
 82			vph_pwr: adc-channel@4 {
 83				reg = <0x00 0x04>;
 84			};
 85
 86			batt_therm: adc-channel@8 {
 87				reg = <0x00 0x08>;
 88			};
 89
 90			batt_id: adc-channel@9 {
 91				reg = <0x00 0x09>;
 92			};
 93
 94			usb_vbus: adc-channel@a {
 95				reg = <0x00 0x0a>;
 96			};
 97
 98			die_temp: adc-channel@b {
 99				reg = <0x00 0x0b>;
100			};
101
102			ref_625mv: adc-channel@c {
103				reg = <0x00 0x0c>;
104			};
105
106			ref_1250mv: adc-channel@d {
107				reg = <0x00 0x0d>;
108			};
109
110			chg_temp: adc-channel@e {
111				reg = <0x00 0x0e>;
112			};
113
114			ref_muxoff: adc-channel@f {
115				reg = <0x00 0x0f>;
116			};
117		};
118	};
119};
120
121/ {
122	/*
123	 * These channels from the ADC are simply hardware monitors.
124	 * That is why the ADC is referred to as "HKADC" - HouseKeeping
125	 * ADC.
126	 */
127	iio-hwmon {
128		compatible = "iio-hwmon";
129		io-channels = <&pm8921_xoadc 0x00 0x01>, /* Battery */
130			      <&pm8921_xoadc 0x00 0x02>, /* DC in (charger) */
131			      <&pm8921_xoadc 0x00 0x04>, /* VPH the main system voltage */
132			      <&pm8921_xoadc 0x00 0x0b>, /* Die temperature */
133			      <&pm8921_xoadc 0x00 0x0c>, /* Reference voltage 1.25V */
134			      <&pm8921_xoadc 0x00 0x0d>, /* Reference voltage 0.625V */
135			      <&pm8921_xoadc 0x00 0x0e>; /* Charger temperature */
136	};
137};