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
- Supports ADC IF found on EXYNOS4412/EXYNOS5250
and future SoCs from Samsung - Add ADC driver under iio/adc framework
- Also adds the Documentation for device tree bindings
Required properties:
compatible: Must be “samsung,exynos-adc-v1”
for exynos4412/5250 and s5pv210 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
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.