| Qualcomm Technologies Inc. SPMI PMIC5 voltage and current ADC |
| |
| SPMI PMIC5 voltage ADC (ADC) provides interface to clients to read |
| voltage. The ADC is a 15-bit sigma-delta ADC. |
| |
| ADC node: |
| |
| - compatible: |
| Usage: required |
| Value type: <string> |
| Definition: Should contain "qcom,spmi-adc5" for PMIC5 ADC devices. |
| Should contain "qcom,spmi-adc7" for PMIC7 ADC devices. |
| Should contain "qcom,spmi-adc-rev2" for PMIC refresh ADC devices. |
| Should contain "qcom,spmi-adc5-lite" for PMIC5 ADC-lite devices. |
| |
| - reg: |
| Usage: required for VADC base address |
| Value type: <prop-encoded-array> |
| Definition: VADC base address and length in the SPMI PMIC register map. |
| ADC_CAL base address and length in SPMI PMIC register map. |
| ADC_CAL base is optional and is dependent on USB_IN_V channel |
| read sequence for the PMIC. |
| |
| - reg-names |
| Usage: required |
| Value type: <string> |
| Definition: Names associated with base addresses. should be |
| "adc5-usr-base", "adc5-cal-base". |
| |
| - #address-cells: |
| Usage: required |
| Value type: <u32> |
| Definition: Must be one. Child node 'reg' property should define ADC |
| channel number. |
| |
| - #size-cells: |
| Usage: required |
| Value type: <u32> |
| Definition: Must be zero. |
| |
| - #io-channel-cells: |
| Usage: required |
| Value type: <u32> |
| Definition: Must be one. For details about IIO bindings see: |
| Documentation/devicetree/bindings/iio/iio-bindings.txt |
| |
| - interrupts: |
| Usage: optional |
| Value type: <prop-encoded-array> |
| Definition: End of conversion interrupt. |
| |
| - qcom,pmic-revid: |
| Usage: optional |
| Value type:<u32> |
| Definition: phandle pointing to the revision peripheral node. Use it to query the |
| PMIC type and revision. |
| |
| Channel node properties: |
| |
| - reg: |
| Usage: required |
| Value type: <u32> |
| Definition: ADC channel number. |
| See include/dt-bindings/iio/qcom,spmi-vadc.h |
| |
| - label: |
| Usage: required |
| Value type: <empty> |
| Definition: ADC datasheet channel name. |
| For thermistor inputs connected to generic AMUX or GPIO inputs |
| these can vary across platform for the same pins. Hence select |
| the datasheet name for this channel. |
| |
| - qcom,pre-scaling: |
| Usage: required |
| Value type: <u32 array> |
| Definition: Used for scaling the channel input signal before the signal is |
| fed to VADC. The configuration for this node is to know the |
| pre-determined ratio and use it for post scaling. Select one from |
| the following options. |
| <1 1>, <1 3>, <1 4>, <1 6>, <1 20>, <1 8>, <10 81>, <1 10> |
| If property is not found default value depending on chip will be used. |
| |
| - qcom,decimation: |
| Usage: optional |
| Value type: <u32> |
| Definition: This parameter is used to decrease ADC sampling rate. |
| Quicker measurements can be made by reducing decimation ratio. |
| For PMIC5 ADC, combined two step decimation values are 250, 420 and 840. |
| If property is not found, default value of 840 will be used. |
| For PMIC7 ADC, combined two step decimation values are 85, 340 and 1360. |
| If property is not found, default value of 1360 will be used. |
| For PMIC refresh ADC, supported decimation values are 256, 512, 1024. |
| If property is not found, default value of 1024 will be used. |
| |
| - qcom,ratiometric: |
| Usage: optional |
| Value type: <empty> |
| Definition: Channel calibration type. If this property is specified |
| VADC will use the VDD reference (1.875V) and GND for channel |
| calibration. If property is not found, channel will be |
| calibrated with 0V and 1.25V reference channels, also |
| known as absolute calibration. |
| |
| - qcom,hw-settle-time: |
| Usage: optional |
| Value type: <u32> |
| Definition: Time in microseconds between AMUX getting configured and the ADC starting |
| conversion. |
| For PMIC5, delay = 15us for value 0, |
| 100us * (value) for values 0 < value < 11, and |
| 2ms * (value - 10) otherwise. |
| Valid values are: 15, 100, 200, 300, 400, 500, 600, 700, 800, |
| 900 us and 1, 2, 4, 6, 8, 10 ms |
| If property is not found, channel will use 15us. |
| For PMIC7, delay = 15us for value 0, |
| 100us * (value) for values < 8, 1ms for value 8 and |
| 2ms * (value - 8) otherwise. |
| Valid values are: 15, 100, 200, 300, 400, 500, 600, 700, 1000, |
| 2000, 4000, 8000, 16000, 32000, 64000, 128000 us. |
| If property is not found, channel will use 15us. |
| For PMIC rev2, delay = 100us * (value) for values 0 < value < 11, and |
| 2ms * (value - 10) otherwise. |
| Valid values are: 0, 100, 200, 300, 400, 500, 600, 700, 800, |
| 900 us and 1, 2, 4, 6, 8, 10 ms |
| If property is not found, channel will use 0 us. |
| |
| - qcom,avg-samples: |
| Usage: optional |
| Value type: <u32> |
| Definition: Number of samples to be used for measurement. |
| Averaging provides the option to obtain a single measurement |
| from the ADC that is an average of multiple samples. The value |
| selected is 2^(value). |
| Valid values are: 1, 2, 4, 8, 16 |
| If property is not found, 1 sample will be used. |
| |
| - qcom,lut-index: |
| Usage: optional |
| Value type: <u32> |
| Definition: Lookup table index (only for bat_therm channels). |
| A bat_therm channel (for 30k, 100k or 400k pull-up resistance) |
| requires a voltage-temperature look-up table which depends on the target. |
| The LUT to be used for a channel is selected from a table of LUTs |
| for that particular channel. |
| If property is not found, a default LUT is used for that channel, |
| corresponding to index 0. |
| |
| - qcom,scale-fn-type: |
| Usage: optional |
| Value type: <u32> |
| Definition: The index of the VADC scale function used to convert raw ADC |
| code to physical scaled units for the channel. |
| See include/dt-bindings/iio/qcom,spmi-vadc.h |
| |
| Example: |
| |
| /* VADC node */ |
| pmic_vadc: vadc@3100 { |
| compatible = "qcom,spmi-adc5"; |
| reg = <0x3100 0x100>; |
| interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| #io-channel-cells = <1>; |
| io-channel-ranges; |
| |
| /* Channel node */ |
| vph_pwr { |
| reg = <ADC_VPH_PWR>; |
| label = "vph_pwr"; |
| qcom,decimation = <840>; |
| qcom,hw-settle-time = <0>; |
| qcom,avg-samples = <1>; |
| qcom,pre-scaling = <1 3>; |
| }; |
| }; |
| |
| /* IIO client node */ |
| usb { |
| io-channels = <&pmic_vadc ADC_VPH_PWR>; |
| io-channel-names = "vadc"; |
| }; |