162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/iio/imu/st,lsm6dsx.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: STM 6-axis (acc + gyro) IMU Mems sensors
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Lorenzo Bianconi <lorenzo@kernel.org>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription:
1362306a36Sopenharmony_ci  Devices have both I2C and SPI interfaces.
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciproperties:
1662306a36Sopenharmony_ci  compatible:
1762306a36Sopenharmony_ci    oneOf:
1862306a36Sopenharmony_ci      - enum:
1962306a36Sopenharmony_ci          - st,lsm6ds3
2062306a36Sopenharmony_ci          - st,lsm6ds3h
2162306a36Sopenharmony_ci          - st,lsm6dsl
2262306a36Sopenharmony_ci          - st,lsm6dsm
2362306a36Sopenharmony_ci          - st,ism330dlc
2462306a36Sopenharmony_ci          - st,lsm6dso
2562306a36Sopenharmony_ci          - st,asm330lhh
2662306a36Sopenharmony_ci          - st,lsm6dsox
2762306a36Sopenharmony_ci          - st,lsm6dsr
2862306a36Sopenharmony_ci          - st,lsm6ds3tr-c
2962306a36Sopenharmony_ci          - st,ism330dhcx
3062306a36Sopenharmony_ci          - st,lsm9ds1-imu
3162306a36Sopenharmony_ci          - st,lsm6ds0
3262306a36Sopenharmony_ci          - st,lsm6dsrx
3362306a36Sopenharmony_ci          - st,lsm6dst
3462306a36Sopenharmony_ci          - st,lsm6dsop
3562306a36Sopenharmony_ci          - st,lsm6dsv
3662306a36Sopenharmony_ci          - st,lsm6dso16is
3762306a36Sopenharmony_ci      - items:
3862306a36Sopenharmony_ci          - const: st,asm330lhhx
3962306a36Sopenharmony_ci          - const: st,lsm6dsr
4062306a36Sopenharmony_ci      - items:
4162306a36Sopenharmony_ci          - const: st,lsm6dstx
4262306a36Sopenharmony_ci          - const: st,lsm6dst
4362306a36Sopenharmony_ci      - items:
4462306a36Sopenharmony_ci          - const: st,lsm6dsv16x
4562306a36Sopenharmony_ci          - const: st,lsm6dsv
4662306a36Sopenharmony_ci      - items:
4762306a36Sopenharmony_ci          - const: st,ism330is
4862306a36Sopenharmony_ci          - const: st,lsm6dso16is
4962306a36Sopenharmony_ci      - items:
5062306a36Sopenharmony_ci          - const: st,asm330lhb
5162306a36Sopenharmony_ci          - const: st,asm330lhh
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci  reg:
5462306a36Sopenharmony_ci    maxItems: 1
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci  interrupts:
5762306a36Sopenharmony_ci    minItems: 1
5862306a36Sopenharmony_ci    maxItems: 2
5962306a36Sopenharmony_ci    description:
6062306a36Sopenharmony_ci      Supports up to 2 interrupt lines via the INT1 and INT2 pins.
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci  vdd-supply:
6362306a36Sopenharmony_ci    description: if defined provides VDD power to the sensor.
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci  vddio-supply:
6662306a36Sopenharmony_ci    description: if defined provides VDD IO power to the sensor.
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci  st,drdy-int-pin:
6962306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
7062306a36Sopenharmony_ci    description: |
7162306a36Sopenharmony_ci      The pin on the package that will be used to signal data ready
7262306a36Sopenharmony_ci    enum:
7362306a36Sopenharmony_ci      - 1
7462306a36Sopenharmony_ci      - 2
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci  st,pullups:
7762306a36Sopenharmony_ci    type: boolean
7862306a36Sopenharmony_ci    description: enable/disable internal i2c controller pullup resistors.
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci  st,disable-sensor-hub:
8162306a36Sopenharmony_ci    type: boolean
8262306a36Sopenharmony_ci    description:
8362306a36Sopenharmony_ci      Enable/disable internal i2c controller slave autoprobing at bootstrap.
8462306a36Sopenharmony_ci      Disable sensor-hub is useful if i2c controller clock/data lines are
8562306a36Sopenharmony_ci      connected through a pull-up with other chip lines (e.g. SDO/SA0).
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci  drive-open-drain:
8862306a36Sopenharmony_ci    type: boolean
8962306a36Sopenharmony_ci    description:
9062306a36Sopenharmony_ci      The interrupt/data ready line will be configured as open drain, which
9162306a36Sopenharmony_ci      is useful if several sensors share the same interrupt line.
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci  wakeup-source:
9462306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/flag
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_cirequired:
9762306a36Sopenharmony_ci  - compatible
9862306a36Sopenharmony_ci  - reg
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ciallOf:
10162306a36Sopenharmony_ci  - $ref: /schemas/iio/iio.yaml#
10262306a36Sopenharmony_ci  - $ref: /schemas/spi/spi-peripheral-props.yaml#
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ciunevaluatedProperties: false
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ciexamples:
10762306a36Sopenharmony_ci  - |
10862306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
10962306a36Sopenharmony_ci    i2c {
11062306a36Sopenharmony_ci        #address-cells = <1>;
11162306a36Sopenharmony_ci        #size-cells = <0>;
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci        imu@6b {
11462306a36Sopenharmony_ci            compatible = "st,lsm6dsm";
11562306a36Sopenharmony_ci            reg = <0x6b>;
11662306a36Sopenharmony_ci            interrupt-parent = <&gpio0>;
11762306a36Sopenharmony_ci            interrupts = <0 IRQ_TYPE_EDGE_RISING>;
11862306a36Sopenharmony_ci        };
11962306a36Sopenharmony_ci    };
12062306a36Sopenharmony_ci...
121