mirror of
https://github.com/torvalds/linux.git
synced 2024-12-19 17:41:29 +00:00
c1b501564c
The ADC on exynos7 is quite similar to ADCv2. The differences are as follows: - exynos7-adc has 8 input channels (as against 10 in ADCv2). - exynos7 does not include an ADC PHY control register. - Some ADC_CON2 register bits being used in ADCv2 are listed as reserved in exynos7-adc. This results in a different init_hw function for exynos7. Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com> Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
101 lines
3.1 KiB
Plaintext
101 lines
3.1 KiB
Plaintext
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 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)
|
|
|
|
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.
|