Qualcomm Technologies, Inc. TADC Specific Bindings

TADC (Telemetry ADC) is a 10 bit resolution ADC which has 8 channels: battery
temperature, skin temperature, die temperature, battery current, battery
voltage, input current, input voltage, and OTG current.

=======================
Required Node Structure
=======================

A TADC must be described in two levels of devices nodes.

=======================
First Level Node - TADC
=======================

- reg
  Usage:      required
  Value type: <prop-encoded-array>
  Definition: Address and size of the TADC register block.

TADC specific properties:
- compatible
  Usage:      required
  Value type: <string>
  Definition: Must be "qcom,tadc".

- interrupts
  Usage:      required
  Value type: <prop-encoded-array>
  Definition: Peripheral interrupt specifier.

- interrupt-names
  Usage:      required
  Value type: <stringlist>
  Definition: Interrupt names.  This list must match up 1-to-1 with the
	      interrupts specified in the 'interrupts' property.

=============================================
Second Level Nodes - TADC Thermistor Channels
=============================================

- reg
  Usage:      required
  Value type: <u32>
  Definition: The 0 based channel number.

TADC thermistor channel specific properties:
- qcom,rbias
  Usage:      required
  Value type: <u32>
  Definition: The bias resistor value.

- qcom,therm-at-25degc
  Usage:      required
  Value type: <u32>
  Definition: The thermistor resistance at 25 DegC.

- qcom,beta-coefficient
  Usage:      required
  Value type: <u32>
  Definition: The beta coefficeent or B-parameter of the thermistor.

===============================================
Second Level Nodes - TADC Scale/Offset Channels
===============================================

- reg
  Usage:      required
  Value type: <u32>
  Definition: The 0 based channel number.

TADC scale/offset channel specific properties:
- qcom,scale
  Usage:      required
  Value type: <s32>
  Definition: The RAW scaling factor.

- qcom,offset
  Usage:      optional
  Value type: <s32>
  Definition: The offset after scaling.

=======
Example
=======

smb138x_tadc: qcom,tadc@3600 {
	compatible = "qcom,tadc";
	#address-cells = <1>;
	#size-cells = <0>;
	#io-channel-cells = <1>;
	interrupts = <0x36 0x0 IRQ_TYPE_EDGE_BOTH>;
	interrupt-names = "eoc";

	batt_temp@0 {
		reg = <0>;
		qcom,rbias = <68100>;
		qcom,rtherm-at-25degc = <68000>;
		qcom,beta-coefficient = <3450>;
	};

	skin_temp@1 {
		reg = <1>;
		qcom,rbias = <33000>;
		qcom,rtherm-at-25degc = <68000>;
		qcom,beta-coefficient = <3450>;
	};

	die_temp@2 {
		reg = <2>;
		qcom,scale = <(-1032)>;
		qcom,offset = <344125>;
	};

	batt_i@3 {
		reg = <3>;
		qcom,channel = <3>;
		qcom,scale = <20000000>;
	};

	batt_v@4 {
		reg = <4>;
		qcom,scale = <5000000>;
	};

	input_i@5 {
		reg = <5>;
		qcom,scale = <14285714>;
	};

	input_v@6 {
		reg = <6>;
		qcom,scale = <25000000>;
	};

	otg_i@7 {
		reg = <7>;
		qcom,scale = <5714286>;
	};
};
