1*8d966b58SJonathan Cameron# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*8d966b58SJonathan Cameron%YAML 1.2 3*8d966b58SJonathan Cameron--- 4*8d966b58SJonathan Cameron$id: http://devicetree.org/schemas/iio/adc/qcom,pm8018-adc.yaml# 5*8d966b58SJonathan Cameron$schema: http://devicetree.org/meta-schemas/core.yaml# 6*8d966b58SJonathan Cameron 7*8d966b58SJonathan Camerontitle: Qualcomm's PM8xxx voltage XOADC 8*8d966b58SJonathan Cameron 9*8d966b58SJonathan Cameronmaintainers: 10*8d966b58SJonathan Cameron - Linus Walleij <linus.walleij@linaro.org> 11*8d966b58SJonathan Cameron 12*8d966b58SJonathan Camerondescription: | 13*8d966b58SJonathan Cameron The Qualcomm PM8xxx PMICs contain a HK/XO ADC (Housekeeping/Crystal 14*8d966b58SJonathan Cameron oscillator ADC) encompassing PM8018, PM8038, PM8058 and PM8921. 15*8d966b58SJonathan Cameron 16*8d966b58SJonathan Cameronproperties: 17*8d966b58SJonathan Cameron compatible: 18*8d966b58SJonathan Cameron enum: 19*8d966b58SJonathan Cameron - qcom,pm8018-adc 20*8d966b58SJonathan Cameron - qcom,pm8038-adc 21*8d966b58SJonathan Cameron - qcom,pm8058-adc 22*8d966b58SJonathan Cameron - qcom,pm8921-adc 23*8d966b58SJonathan Cameron 24*8d966b58SJonathan Cameron reg: 25*8d966b58SJonathan Cameron maxItems: 1 26*8d966b58SJonathan Cameron description: 27*8d966b58SJonathan Cameron ADC base address in the PMIC, typically 0x197. 28*8d966b58SJonathan Cameron 29*8d966b58SJonathan Cameron xoadc-ref-supply: 30*8d966b58SJonathan Cameron description: 31*8d966b58SJonathan Cameron The reference voltage may vary with PMIC variant but is typically 32*8d966b58SJonathan Cameron something like 2.2 or 1.8V. 33*8d966b58SJonathan Cameron 34*8d966b58SJonathan Cameron interrupts: 35*8d966b58SJonathan Cameron maxItems: 1 36*8d966b58SJonathan Cameron 37*8d966b58SJonathan Cameron "#address-cells": 38*8d966b58SJonathan Cameron const: 2 39*8d966b58SJonathan Cameron description: 40*8d966b58SJonathan Cameron The first cell is the prescaler (on PM8058) or premux (on PM8921) 41*8d966b58SJonathan Cameron with two valid bits so legal values are 0x00, 0x01 or 0x02. 42*8d966b58SJonathan Cameron The second cell is the main analog mux setting (0x00..0x0f). 43*8d966b58SJonathan Cameron The combination of prescaler/premux and analog mux uniquely addresses 44*8d966b58SJonathan Cameron a hardware channel on all systems. 45*8d966b58SJonathan Cameron 46*8d966b58SJonathan Cameron "#size-cells": 47*8d966b58SJonathan Cameron const: 0 48*8d966b58SJonathan Cameron 49*8d966b58SJonathan Cameron "#io-channel-cells": 50*8d966b58SJonathan Cameron const: 2 51*8d966b58SJonathan Cameron description: 52*8d966b58SJonathan Cameron The cells are precaler or premux followed by the analog muxing line. 53*8d966b58SJonathan Cameron 54*8d966b58SJonathan CameronadditionalProperties: false 55*8d966b58SJonathan Cameron 56*8d966b58SJonathan Cameronrequired: 57*8d966b58SJonathan Cameron - compatible 58*8d966b58SJonathan Cameron - reg 59*8d966b58SJonathan Cameron - "#io-channel-cells" 60*8d966b58SJonathan Cameron - "#address-cells" 61*8d966b58SJonathan Cameron - "#size-cells" 62*8d966b58SJonathan Cameron - adc-channel@c 63*8d966b58SJonathan Cameron - adc-channel@d 64*8d966b58SJonathan Cameron - adc-channel@f 65*8d966b58SJonathan Cameron 66*8d966b58SJonathan CameronpatternProperties: 67*8d966b58SJonathan Cameron "^(adc-channel@)[0-9a-f]$": 68*8d966b58SJonathan Cameron type: object 69*8d966b58SJonathan Cameron description: | 70*8d966b58SJonathan Cameron ADC channel specific configuration. 71*8d966b58SJonathan Cameron Note that channels c, d and f must be present for calibration. 72*8d966b58SJonathan Cameron These three nodes are used for absolute and ratiometric calibration 73*8d966b58SJonathan Cameron and only need to have these reg values: they are by hardware definition 74*8d966b58SJonathan Cameron 1:1 ratio converters that sample 625, 1250 and 0 milliV and create 75*8d966b58SJonathan Cameron an interpolation calibration for all other ADCs. 76*8d966b58SJonathan Cameron 77*8d966b58SJonathan Cameron properties: 78*8d966b58SJonathan Cameron reg: 79*8d966b58SJonathan Cameron maxItems: 1 80*8d966b58SJonathan Cameron 81*8d966b58SJonathan Cameron qcom,decimation: 82*8d966b58SJonathan Cameron $ref: /schemas/types.yaml#/definitions/uint32 83*8d966b58SJonathan Cameron description: | 84*8d966b58SJonathan Cameron This parameter is used to decrease the ADC sampling rate. 85*8d966b58SJonathan Cameron Quicker measurements can be made by reducing the decimation ratio. 86*8d966b58SJonathan Cameron Valid values are 512, 1024, 2048, 4096. 87*8d966b58SJonathan Cameron If the property is not found, a default value of 512 will be used. 88*8d966b58SJonathan Cameron 89*8d966b58SJonathan Cameron qcom,ratiometric: 90*8d966b58SJonathan Cameron $ref: /schemas/types.yaml#/definitions/uint32 91*8d966b58SJonathan Cameron description: | 92*8d966b58SJonathan Cameron Channel calibration type. If this property is specified 93*8d966b58SJonathan Cameron VADC will use a special voltage references for channel 94*8d966b58SJonathan Cameron calibration. The available references are specified in the 95*8d966b58SJonathan Cameron as a u32 value setting (see below) and it is compulsory 96*8d966b58SJonathan Cameron to also specify this reference if ratiometric calibration 97*8d966b58SJonathan Cameron is selected. 98*8d966b58SJonathan Cameron 99*8d966b58SJonathan Cameron If the property is not found, the channel will be 100*8d966b58SJonathan Cameron calibrated with the 0.625V and 1.25V reference channels, also 101*8d966b58SJonathan Cameron known as an absolute calibration. 102*8d966b58SJonathan Cameron 103*8d966b58SJonathan Cameron The reference voltage pairs when using ratiometric calibration: 104*8d966b58SJonathan Cameron 0 = XO_IN/XOADC_GND 105*8d966b58SJonathan Cameron 1 = PMIC_IN/XOADC_GND 106*8d966b58SJonathan Cameron 2 = PMIC_IN/BMS_CSP 107*8d966b58SJonathan Cameron 3 (invalid) 108*8d966b58SJonathan Cameron 4 = XOADC_GND/XOADC_GND 109*8d966b58SJonathan Cameron 5 = XOADC_VREF/XOADC_GND 110*8d966b58SJonathan Cameron 111*8d966b58SJonathan Cameron additionalProperties: false 112*8d966b58SJonathan Cameron 113*8d966b58SJonathan Cameron required: 114*8d966b58SJonathan Cameron - reg 115*8d966b58SJonathan Cameron 116*8d966b58SJonathan Cameronexamples: 117*8d966b58SJonathan Cameron - | 118*8d966b58SJonathan Cameron #include <dt-bindings/interrupt-controller/irq.h> 119*8d966b58SJonathan Cameron pmic { 120*8d966b58SJonathan Cameron #address-cells = <1>; 121*8d966b58SJonathan Cameron #size-cells = <0>; 122*8d966b58SJonathan Cameron 123*8d966b58SJonathan Cameron adc@197 { 124*8d966b58SJonathan Cameron compatible = "qcom,pm8058-adc"; 125*8d966b58SJonathan Cameron reg = <0x197>; 126*8d966b58SJonathan Cameron interrupts-extended = <&pm8058 76 IRQ_TYPE_EDGE_RISING>; 127*8d966b58SJonathan Cameron #address-cells = <2>; 128*8d966b58SJonathan Cameron #size-cells = <0>; 129*8d966b58SJonathan Cameron #io-channel-cells = <2>; 130*8d966b58SJonathan Cameron 131*8d966b58SJonathan Cameron vcoin: adc-channel@0 { 132*8d966b58SJonathan Cameron reg = <0x00 0x00>; 133*8d966b58SJonathan Cameron }; 134*8d966b58SJonathan Cameron vbat: adc-channel@1 { 135*8d966b58SJonathan Cameron reg = <0x00 0x01>; 136*8d966b58SJonathan Cameron }; 137*8d966b58SJonathan Cameron dcin: adc-channel@2 { 138*8d966b58SJonathan Cameron reg = <0x00 0x02>; 139*8d966b58SJonathan Cameron }; 140*8d966b58SJonathan Cameron ichg: adc-channel@3 { 141*8d966b58SJonathan Cameron reg = <0x00 0x03>; 142*8d966b58SJonathan Cameron }; 143*8d966b58SJonathan Cameron vph_pwr: adc-channel@4 { 144*8d966b58SJonathan Cameron reg = <0x00 0x04>; 145*8d966b58SJonathan Cameron }; 146*8d966b58SJonathan Cameron usb_vbus: adc-channel@a { 147*8d966b58SJonathan Cameron reg = <0x00 0x0a>; 148*8d966b58SJonathan Cameron }; 149*8d966b58SJonathan Cameron die_temp: adc-channel@b { 150*8d966b58SJonathan Cameron reg = <0x00 0x0b>; 151*8d966b58SJonathan Cameron }; 152*8d966b58SJonathan Cameron ref_625mv: adc-channel@c { 153*8d966b58SJonathan Cameron reg = <0x00 0x0c>; 154*8d966b58SJonathan Cameron }; 155*8d966b58SJonathan Cameron ref_1250mv: adc-channel@d { 156*8d966b58SJonathan Cameron reg = <0x00 0x0d>; 157*8d966b58SJonathan Cameron }; 158*8d966b58SJonathan Cameron ref_325mv: adc-channel@e { 159*8d966b58SJonathan Cameron reg = <0x00 0x0e>; 160*8d966b58SJonathan Cameron }; 161*8d966b58SJonathan Cameron ref_muxoff: adc-channel@f { 162*8d966b58SJonathan Cameron reg = <0x00 0x0f>; 163*8d966b58SJonathan Cameron }; 164*8d966b58SJonathan Cameron }; 165*8d966b58SJonathan Cameron }; 166*8d966b58SJonathan Cameron... 167