Commit 81cdab79 authored by Stefan Agner's avatar Stefan Agner Committed by Lee Jones
Browse files

iio: adc: add STMPE ADC devicetree bindings



This adds the devicetree bindings for the STMPE ADC. This also corrects
a typo in st,sample-time it is rather "6 -> 124 clocks" according
to the datasheet and not 144.
We need to use the naming stmpe_adc in devicetree because this is given
by the mfd device.

Signed-off-by: default avatarStefan Agner <stefan@agner.ch>
Signed-off-by: default avatarMax Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: default avatarPhilippe Schenker <philippe.schenker@toradex.com>
Reviewed-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent 9f3d0849
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
STMPE ADC driver
----------------

Required properties:
 - compatible: "st,stmpe-adc"

Optional properties:
Note that the ADC is shared with the STMPE touchscreen. ADC related settings
have to be done in the mfd.
- st,norequest-mask: bitmask specifying which ADC channels should _not_ be
  requestable due to different usage (e.g. touch)

Node name must be stmpe_adc and should be child node of stmpe node to
which it belongs.

Example:

	stmpe_adc {
		compatible = "st,stmpe-adc";
		st,norequest-mask = <0x0F>; /* dont use ADC CH3-0 */
	};
+63 −25
Original line number Diff line number Diff line
@@ -5,24 +5,6 @@ Required properties:
 - compatible: "st,stmpe-ts"

Optional properties:
- st,sample-time	: ADC conversion time in number of clock.
				0 -> 36 clocks
				1 -> 44 clocks
				2 -> 56 clocks
				3 -> 64 clocks
				4 -> 80 clocks (recommended)
				5 -> 96 clocks
				6 -> 144 clocks
- st,mod-12b		: ADC Bit mode
				0 -> 10bit ADC
				1 -> 12bit ADC
- st,ref-sel		: ADC reference source
				0 -> internal
				1 -> external
- st,adc-freq		: ADC Clock speed
				0 -> 1.625 MHz
				1 -> 3.25 MHz
				2 || 3 -> 6.5 MHz
- st,ave-ctrl		: Sample average control
				0 -> 1 sample
				1 -> 2 samples
@@ -52,20 +34,76 @@ Optional properties:
				0 -> 20 mA (typical 35mA max)
				1 -> 50 mA (typical 80 mA max)

Optional properties common with MFD (deprecated):
 - st,sample-time	: ADC conversion time in number of clock.
				0 -> 36 clocks
				1 -> 44 clocks
				2 -> 56 clocks
				3 -> 64 clocks
				4 -> 80 clocks (recommended)
				5 -> 96 clocks
				6 -> 124 clocks
 - st,mod-12b		: ADC Bit mode
				0 -> 10bit ADC
				1 -> 12bit ADC
 - st,ref-sel		: ADC reference source
				0 -> internal
				1 -> external
 - st,adc-freq		: ADC Clock speed
				0 -> 1.625 MHz
				1 -> 3.25 MHz
				2 || 3 -> 6.5 MHz

Node name must be stmpe_touchscreen and should be child node of stmpe node to
which it belongs.

Note that common ADC settings of stmpe_touchscreen (child) will take precedence
over the settings done in MFD.

Example:

	stmpe_touchscreen {
		compatible = "st,stmpe-ts";
		st,sample-time = <4>;
stmpe811@41 {
	compatible = "st,stmpe811";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_touch_int>;
	#address-cells = <1>;
	#size-cells = <0>;
	reg = <0x41>;
	interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
	interrupt-parent = <&gpio4>;
	interrupt-controller;
	id = <0>;
	blocks = <0x5>;
	irq-trigger = <0x1>;
	/* Common ADC settings */
	/* 3.25 MHz ADC clock speed */
	st,adc-freq = <1>;
	/* 12-bit ADC */
	st,mod-12b = <1>;
	/* internal ADC reference */
	st,ref-sel = <0>;
		st,adc-freq = <1>;
		st,ave-ctrl = <1>;
		st,touch-det-delay = <2>;
		st,settling = <2>;
	/* ADC converstion time: 80 clocks */
	st,sample-time = <4>;

	stmpe_touchscreen {
		compatible = "st,stmpe-ts";
		reg = <0>;
		/* 8 sample average control */
		st,ave-ctrl = <3>;
		/* 5 ms touch detect interrupt delay */
		st,touch-det-delay = <5>;
		/* 1 ms panel driver settling time */
		st,settling = <3>;
		/* 7 length fractional part in z */
		st,fraction-z = <7>;
		/*
		 * 50 mA typical 80 mA max touchscreen drivers
		 * current limit value
		 */
		st,i-drive = <1>;
	};
	stmpe_adc {
		compatible = "st,stmpe-adc";
		st,norequest-mask = <0x0F>;
	};
};
+14 −0
Original line number Diff line number Diff line
@@ -14,6 +14,20 @@ Optional properties:
 - st,autosleep-timeout		: Valid entries (ms); 4, 16, 32, 64, 128, 256, 512 and 1024
 - irq-gpio			: If present, which GPIO to use for event IRQ

Optional properties for devices with touch and ADC (STMPE811|STMPE610):
 - st,sample-time		: ADC conversion time in number of clock.
					0 -> 36 clocks		4 -> 80 clocks (recommended)
					1 -> 44 clocks		5 -> 96 clocks
					2 -> 56 clocks		6 -> 124 clocks
					3 -> 64 clocks
 - st,mod-12b			: ADC Bit mode
					0 -> 10bit ADC		1 -> 12bit ADC
 - st,ref-sel			: ADC reference source
					0 -> internal		1 -> external
 - st,adc-freq			: ADC Clock speed
					0 -> 1.625 MHz		2 || 3 -> 6.5 MHz
					1 -> 3.25 MHz

Example:

	stmpe1601: stmpe1601@40 {