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
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>;
+ };
+ };
--
2.37.1
--
Matti Vaittinen, Linux device drivers
ROHM Semiconductors, Finland SWDC
Kiviharjunlenkki 1E
90220 OULU
FINLAND
~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~
Simon says - in Latin please.
~~~ "non cogito me" dixit Rene Descarte, deinde evanescavit ~~~
Thanks to Simon Glass for the translation =]
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
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 -- Matti Vaittinen Linux kernel developer at ROHM Semiconductors Oulu Finland ~~ When things go utterly wrong vim users can always type :help! ~~
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
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 -- Matti Vaittinen Linux kernel developer at ROHM Semiconductors Oulu Finland ~~ When things go utterly wrong vim users can always type :help! ~~
© 2016 - 2026 Red Hat, Inc.