Re: [PATCH] mfd: Add support for TI LMP92001
From: Rob Herring <robh@kernel.org>
Date: 2017-08-25 18:35:24
Also in:
linux-gpio, linux-iio, lkml
On Tue, Aug 22, 2017 at 01:26:11PM +0700, s.abhisit@gmail.com wrote:
From: Abhisit Sangjan <redacted> TI LMP92001 Analog System Monitor and Controller 8-bit GPIOs. 12 DACs with 12-bit resolution. The GPIOs and DACs are shared port function with Cy function pin to take control the pin suddenly from external hardware. DAC's referance voltage selectable for Internal/External. 16 + 1 ADCs with 12-bit resolution. Built-in internal Temperature Sensor on channel 17. Windows Comparator Function is supported on channel 1-3 and 9-11 for monitoring with interrupt signal (pending to implement for interrupt). ADC's referance voltage selectable for Internal/External. Signed-off-by: Abhisit Sangjan <redacted> --- Documentation/ABI/testing/sysfs-bus-iio-lmp920001 | 92 ++++ .../devicetree/bindings/gpio/gpio-lmp92001.txt | 22 + .../bindings/iio/adc/ti-lmp92001-adc.txt | 21 + .../bindings/iio/dac/ti-lmp92001-dac.txt | 35 ++
quoted hunk ↗ jump to hunk
diff --git a/Documentation/devicetree/bindings/gpio/gpio-lmp92001.txt b/Documentation/devicetree/bindings/gpio/gpio-lmp92001.txt new file mode 100644 index 0000000..c68784e --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-lmp92001.txt@@ -0,0 +1,22 @@ +* Texas Instruments' LMP92001 GPIOs + +Required properties: + - compatible: Must be set to "ti,lmp92001-gpio". + - reg: i2c chip address for the device.
No, you show this in the parent which needs to be described in bindings/mtd/... You could have reg here too if all the registers for each sub-block are in a well defined range.
+ - gpio-controller: Marks the device node as a gpio controller.
+ - #gpio-cells : Should be two. The first cell is the pin number and the
+ second cell is used to specify the gpio polarity:
+ 0 = Active high
+ 1 = Active low
+
+Example:
+lmp92001@20 {
+ compatible = "ti,lmp92001";
+ reg = <0x20>;
+
+ lmp92001_gpio: lmp92001-gpio {
gpio-controller {
quoted hunk ↗ jump to hunk
+ compatible = "ti,lmp92001-gpio"; + gpio-controller; + #gpio-cells = <2>; + }; +};diff --git a/Documentation/devicetree/bindings/iio/adc/ti-lmp92001-adc.txt b/Documentation/devicetree/bindings/iio/adc/ti-lmp92001-adc.txt new file mode 100644 index 0000000..34d7809 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/adc/ti-lmp92001-adc.txt@@ -0,0 +1,21 @@ +* Texas Instruments' LMP92001 ADCs + +Required properties: + - compatible: Must be set to "ti,lmp92001-adc". + - reg: i2c chip address for the device.
Same comment here.
+ - ti,lmp92001-adc-mode: adc operation, either continuous or single-shot.
No standard property for this?
quoted hunk ↗ jump to hunk
+ - ti,lmp92001-adc-mask: bit mask for which channel is enable. + 0 = Off + 1 = On + +Example: +lmp92001@20 { + compatible = "ti,lmp92001"; + reg = <0x20>; + + lmp92001-adc { + compatible = "ti,lmp92001-adc"; + ti,lmp92001-adc-mode = "continuous"; + ti,lmp92001-adc-mask = <0x00000079>; + }; +}; \ No newline at end of filediff --git a/Documentation/devicetree/bindings/iio/dac/ti-lmp92001-dac.txt b/Documentation/devicetree/bindings/iio/dac/ti-lmp92001-dac.txt new file mode 100644 index 0000000..882db9c --- /dev/null +++ b/Documentation/devicetree/bindings/iio/dac/ti-lmp92001-dac.txt@@ -0,0 +1,35 @@ +* Texas Instruments' LMP92001 DACs + +Required properties: + - compatible: Must be set to "ti,lmp92001-dac". + - reg: i2c chip address for the device. + - ti,lmp92001-dac-hiz: hi-impedance control, + 1 = Forces all OUT[1:12] outputs to hi-z, 0 = normal
Just make this a boolean (i.e. no value).
+ - ti,lmp92001-dac-outx:
+ Cy = 0, 1 = will force associated OUTx outputs to VDD
+ Cy = 0, 0 = will force associated OUTx outputs to GND
+ - ti,lmp92001-dac-gang: What group of Cy is governed to.
+ -----------------------------------------
+ | Cy | CDAC:GANG = 0 | CDAC:GANG = 1 |
+ -----------------------------------------
+ | C1 | OUT[1:4] | OUT[1:3] |
+ -----------------------------------------
+ | C2 | OUT[5:6] | OUT[4:6] |
+ -----------------------------------------
+ | C3 | OUT[7:8] | OUT[7:9] |
+ -----------------------------------------
+ | C4 | OUT[9:12] | OUT[10:12] |
+ -----------------------------------------
+
+Example:
+lmp92001@20 {
+ compatible = "ti,lmp92001";
+ reg = <0x20>;
+
+ lmp92001-dac {
+ compatible = "ti,lmp92001-dac";
+ ti,lmp92001-dac-hiz = /bits/ 8 <0>;
+ ti,lmp92001-dac-outx = /bits/ 8 <0>;
+ ti,lmp92001-dac-gang = /bits/ 8 <0>;
+ };
+};