Samsung Exynos Analog to Digital Converter bindings

The devicetree bindings are for the new ADC driver written for
Exynos4 and upward SoCs from Samsung.

New driver handles the following
1. Supports ADC IF found on EXYNOS4412/EXYNOS5250
   and future SoCs from Samsung
2. Add ADC driver under iio/adc framework
3. Also adds the Documentation for device tree bindings

Required properties:
- compatible:		Must be "samsung,exynos-adc-v1"
				for exynos4412/5250 controllers.
			Must be "samsung,exynos-adc-v2" for
				future controllers.
			Must be "samsung,exynos3250-adc" for
				controllers compatible with ADC of Exynos3250.
			Must be "samsung,exynos7-adc" for
				the ADC in Exynos7 and compatibles
			Must be "samsung,s3c2410-adc" for
				the ADC in s3c2410 and compatibles
			Must be "samsung,s3c2416-adc" for
				the ADC in s3c2416 and compatibles
			Must be "samsung,s3c2440-adc" for
				the ADC in s3c2440 and compatibles
			Must be "samsung,s3c2443-adc" for
				the ADC in s3c2443 and compatibles
			Must be "samsung,s3c6410-adc" for
				the ADC in s3c6410 and compatibles
			Must be "samsung,s5pv210-adc" for
				the ADC in s5pv210 and compatibles
- reg:			List of ADC register address range
			- The base address and range of ADC register
			- The base address and range of ADC_PHY register (every
			  SoC except for s3c24xx/s3c64xx ADC)
- interrupts: 		Contains the interrupt information for the timer. The
			format is being dependent on which interrupt controller
			the Samsung device uses.
- #io-channel-cells = <1>; As ADC has multiple outputs
- clocks		From common clock bindings: handles to clocks specified
			in "clock-names" property, in the same order.
- clock-names		From common clock bindings: list of clock input names
			used by ADC block:
			- "adc" : ADC bus clock
			- "sclk" : ADC special clock (only for Exynos3250 and
				   compatible ADC block)
- vdd-supply		VDD input supply.

- samsung,syscon-phandle Contains the PMU system controller node
			(To access the ADC_PHY register on Exynos5250/5420/5800/3250)
Optional properties:
- has-touchscreen:	If present, indicates that a touchscreen is
			connected an usable.

Note: child nodes can be added for auto probing from device tree.

Example: adding device info in dtsi file

adc: adc@12d10000 {
	compatible = "samsung,exynos-adc-v1";
	reg = <0x12D10000 0x100>;
	interrupts = <0 106 0>;
	#io-channel-cells = <1>;
	io-channel-ranges;

	clocks = <&clock 303>;
	clock-names = "adc";

	vdd-supply = <&buck5_reg>;
	samsung,syscon-phandle = <&pmu_system_controller>;
};

Example: adding device info in dtsi file for Exynos3250 with additional sclk

adc: adc@126c0000 {
	compatible = "samsung,exynos3250-adc", "samsung,exynos-adc-v2;
	reg = <0x126C0000 0x100>;
	interrupts = <0 137 0>;
	#io-channel-cells = <1>;
	io-channel-ranges;

	clocks = <&cmu CLK_TSADC>, <&cmu CLK_SCLK_TSADC>;
	clock-names = "adc", "sclk";

	vdd-supply = <&buck5_reg>;
	samsung,syscon-phandle = <&pmu_system_controller>;
};

Example: Adding child nodes in dts file

adc@12d10000 {

	/* NTC thermistor is a hwmon device */
	ncp15wb473@0 {
		compatible = "murata,ncp15wb473";
		pullup-uv = <1800000>;
		pullup-ohm = <47000>;
		pulldown-ohm = <0>;
		io-channels = <&adc 4>;
	};
};

Note: Does not apply to ADC driver under arch/arm/plat-samsung/
Note: The child node can be added under the adc node or separately.
