diff mbox series

[RFC,3/5] dt-bindings: iio: Add KX022A accelerometer

Message ID eb3edbb63c117f93e8ec534f50d8e3cf91ab3041.1663760018.git.mazziesaccount@gmail.com (mailing list archive)
State Changes Requested
Headers show
Series iio: Support ROHM/Kionix kx022a | expand

Commit Message

Matti Vaittinen Sept. 21, 2022, 11:45 a.m. UTC
KX022A is a 3-axis Accelerometer from ROHM/Kionix. The senor features
include variable ODRs, I2C and SPI control, FIFO/LIFO with watermark IRQ,
tap/motion detection, wake-up & back-to-sleep events, four acceleration
ranges (2, 4, 8 and 16g) and probably some other cool fatures.

Add the basic device tree description for the accelerometer. Only basic
accelerometer features are considered as of now - new properties may or
may not be needed in the future if rest of the features are to be supported.

Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
---
 .../bindings/iio/accel/kionix,kx022a.yaml     | 58 +++++++++++++++++++
 1 file changed, 58 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/accel/kionix,kx022a.yaml

Comments

Krzysztof Kozlowski Sept. 21, 2022, 7:11 p.m. UTC | #1
On 21/09/2022 13:45, Matti Vaittinen wrote:
> KX022A is a 3-axis Accelerometer from ROHM/Kionix. The senor features
> include variable ODRs, I2C and SPI control, FIFO/LIFO with watermark IRQ,

Thank you for your patch. There is something to discuss/improve.

> tap/motion detection, wake-up & back-to-sleep events, four acceleration
> ranges (2, 4, 8 and 16g) and probably some other cool fatures.

s/fatures/features/

> +$id: http://devicetree.org/schemas/iio/accel/kionix,kx022a.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: ROHM/Kionix KX022A Accelerometer bindings

Drop "bindings"

> +
> +maintainers:
> +  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
> +
> +description: |
> +  KX022A is a 3-axis accelerometer supporting +/- 2G, 4G, 8G and 16G ranges,
> +  output data-rates from 0.78Hz to 1600Hz and a hardware-fifo buffering.
> +  KX022A can be accessed either via I2C or SPI.
> +
> +properties:
> +  compatible: kionix,kx022a

Missing const. I wonder how did it pass testing...

> +
> +  reg:
> +    description:
> +      I2C slave address or SPI chip-select.

Skip description, it's obvious.

> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  vdd-supply: true
> +  io_vdd-supply: true

No underscores, so io-vdd-supply

> +
> +  mount-matrix:
> +    description: |
> +      an optional 3x3 mounting rotation matrix.
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +          accel@1f {

Messed up indentation.

> +            compatible = "kionix,kx022a";
> +            reg = <0x1f>;

Best regards,
Krzysztof
Vaittinen, Matti Sept. 21, 2022, 7:30 p.m. UTC | #2
Hi dee Ho Krzysztof,

Thanks for looking through this!

On 9/21/22 22:11, Krzysztof Kozlowski wrote:
> On 21/09/2022 13:45, Matti Vaittinen wrote:
>> KX022A is a 3-axis Accelerometer from ROHM/Kionix. The senor features
>> include variable ODRs, I2C and SPI control, FIFO/LIFO with watermark IRQ,
>> +
>> +maintainers:
>> +  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>

My own comment - switch the email to the gmail-one. Company mail is 
unreliable at best..

>> +
>> +description: |
>> +  KX022A is a 3-axis accelerometer supporting +/- 2G, 4G, 8G and 16G ranges,
>> +  output data-rates from 0.78Hz to 1600Hz and a hardware-fifo buffering.
>> +  KX022A can be accessed either via I2C or SPI.
>> +
>> +properties:
>> +  compatible: kionix,kx022a
> 
> Missing const. I wonder how did it pass testing...

I originally had
oneOf:
  items const ...
construct here as I had separate compatibles for *-spi and *-i2c. I am 
unsure if I remembered to run the tests after dropping the extra 
compatibles :| - Sorry! I'll fix this.

>> +  io_vdd-supply: true
> 
> No underscores, so io-vdd-supply

The rationale behind the underscore is that the data-sheet uses terms 
vdd and vdd_io (with underscore). I wanted to match the supply name to 
what is used in the data-sheet. Not a big thing but I'd rather kept if 
same as the data-sheet if the requirement of "no-underscores" is not 
"hard". (If it is, then I'll drop the underscore).

Other than that I agree with all of your points. Thanks for checking 
this! Appreciated!

Yours,
	--Matti
Krzysztof Kozlowski Sept. 21, 2022, 7:56 p.m. UTC | #3
On 21/09/2022 21:30, Vaittinen, Matti wrote:
> Hi dee Ho Krzysztof,
> 
> Thanks for looking through this!
> 
> On 9/21/22 22:11, Krzysztof Kozlowski wrote:
>> On 21/09/2022 13:45, Matti Vaittinen wrote:
>>> KX022A is a 3-axis Accelerometer from ROHM/Kionix. The senor features
>>> include variable ODRs, I2C and SPI control, FIFO/LIFO with watermark IRQ,
>>> +
>>> +maintainers:
>>> +  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
> 
> My own comment - switch the email to the gmail-one. Company mail is 
> unreliable at best..
> 
>>> +
>>> +description: |
>>> +  KX022A is a 3-axis accelerometer supporting +/- 2G, 4G, 8G and 16G ranges,
>>> +  output data-rates from 0.78Hz to 1600Hz and a hardware-fifo buffering.
>>> +  KX022A can be accessed either via I2C or SPI.
>>> +
>>> +properties:
>>> +  compatible: kionix,kx022a
>>
>> Missing const. I wonder how did it pass testing...
> 
> I originally had
> oneOf:
>   items const ...
> construct here as I had separate compatibles for *-spi and *-i2c. I am 
> unsure if I remembered to run the tests after dropping the extra 
> compatibles :| - Sorry! I'll fix this.

This should be just:
  compatible:
    const: foo,bar

> 
>>> +  io_vdd-supply: true
>>
>> No underscores, so io-vdd-supply
> 
> The rationale behind the underscore is that the data-sheet uses terms 
> vdd and vdd_io (with underscore). I wanted to match the supply name to 
> what is used in the data-sheet. Not a big thing but I'd rather kept if 
> same as the data-sheet if the requirement of "no-underscores" is not 
> "hard". (If it is, then I'll drop the underscore).

Underscores trigger warnings at some dtc W level (W=1 or W=2) so they
are not allowed.


Best regards,
Krzysztof
Matti Vaittinen Sept. 22, 2022, 3:49 a.m. UTC | #4
Good Morning Krzysztof,

On 9/21/22 22:56, Krzysztof Kozlowski wrote:
> On 21/09/2022 21:30, Vaittinen, Matti wrote:
>> Hi dee Ho Krzysztof,
>>
>> Thanks for looking through this!
>>
>> On 9/21/22 22:11, Krzysztof Kozlowski wrote:
>>> On 21/09/2022 13:45, Matti Vaittinen wrote:
>>>> KX022A is a 3-axis Accelerometer from ROHM/Kionix. The senor features
>>>> include variable ODRs, I2C and SPI control, FIFO/LIFO with watermark IRQ,
>>>> +
>>>> +maintainers:
>>>> +  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
>>
>> My own comment - switch the email to the gmail-one. Company mail is
>> unreliable at best..
>>
>>>> +
>>>> +description: |
>>>> +  KX022A is a 3-axis accelerometer supporting +/- 2G, 4G, 8G and 16G ranges,
>>>> +  output data-rates from 0.78Hz to 1600Hz and a hardware-fifo buffering.
>>>> +  KX022A can be accessed either via I2C or SPI.
>>>> +
>>>> +properties:
>>>> +  compatible: kionix,kx022a
>>>
>>> Missing const. I wonder how did it pass testing...
>>
>> I originally had
>> oneOf:
>>    items const ...
>> construct here as I had separate compatibles for *-spi and *-i2c. I am
>> unsure if I remembered to run the tests after dropping the extra
>> compatibles :| - Sorry! I'll fix this.
> 
> This should be just:
>    compatible:
>      const: foo,bar
> 
>>
>>>> +  io_vdd-supply: true
>>>
>>> No underscores, so io-vdd-supply
>>
>> The rationale behind the underscore is that the data-sheet uses terms
>> vdd and vdd_io (with underscore). I wanted to match the supply name to
>> what is used in the data-sheet. Not a big thing but I'd rather kept if
>> same as the data-sheet if the requirement of "no-underscores" is not
>> "hard". (If it is, then I'll drop the underscore).
> 
> Underscores trigger warnings at some dtc W level (W=1 or W=2) so they
> are not allowed.

Thanks for the explanation. I'll change this too.

Yours,
	-- Matti
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/iio/accel/kionix,kx022a.yaml b/Documentation/devicetree/bindings/iio/accel/kionix,kx022a.yaml
new file mode 100644
index 000000000000..62a0c7991a62
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/accel/kionix,kx022a.yaml
@@ -0,0 +1,58 @@ 
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/accel/kionix,kx022a.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ROHM/Kionix KX022A Accelerometer bindings
+
+maintainers:
+  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
+
+description: |
+  KX022A is a 3-axis accelerometer supporting +/- 2G, 4G, 8G and 16G ranges,
+  output data-rates from 0.78Hz to 1600Hz and a hardware-fifo buffering.
+  KX022A can be accessed either via I2C or SPI.
+
+properties:
+  compatible: kionix,kx022a
+
+  reg:
+    description:
+      I2C slave address or SPI chip-select.
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  vdd-supply: true
+  io_vdd-supply: true
+
+  mount-matrix:
+    description: |
+      an optional 3x3 mounting rotation matrix.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+          accel@1f {
+            compatible = "kionix,kx022a";
+            reg = <0x1f>;
+
+            interrupt-parent = <&gpio1>;
+            interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
+
+            io_vdd-supply = <&iovdd>;
+            vdd-supply = <&vdd>;
+        };
+    };