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/adi,adis16480.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Analog Devices ADIS16480 and similar IMUs
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Alexandru Tachici <alexandru.tachici@analog.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciproperties:
1362306a36Sopenharmony_ci  compatible:
1462306a36Sopenharmony_ci    enum:
1562306a36Sopenharmony_ci      - adi,adis16375
1662306a36Sopenharmony_ci      - adi,adis16480
1762306a36Sopenharmony_ci      - adi,adis16485
1862306a36Sopenharmony_ci      - adi,adis16488
1962306a36Sopenharmony_ci      - adi,adis16490
2062306a36Sopenharmony_ci      - adi,adis16495-1
2162306a36Sopenharmony_ci      - adi,adis16495-2
2262306a36Sopenharmony_ci      - adi,adis16495-3
2362306a36Sopenharmony_ci      - adi,adis16497-1
2462306a36Sopenharmony_ci      - adi,adis16497-2
2562306a36Sopenharmony_ci      - adi,adis16497-3
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci  reg:
2862306a36Sopenharmony_ci    maxItems: 1
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci  interrupts:
3162306a36Sopenharmony_ci    minItems: 1
3262306a36Sopenharmony_ci    maxItems: 2
3362306a36Sopenharmony_ci    description: |
3462306a36Sopenharmony_ci      Accepted interrupt types are:
3562306a36Sopenharmony_ci      * IRQ_TYPE_EDGE_RISING
3662306a36Sopenharmony_ci      * IRQ_TYPE_EDGE_FALLING
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci  interrupt-names:
3962306a36Sopenharmony_ci    minItems: 1
4062306a36Sopenharmony_ci    maxItems: 2
4162306a36Sopenharmony_ci    description:
4262306a36Sopenharmony_ci      Default if not supplied is DIO1.
4362306a36Sopenharmony_ci    items:
4462306a36Sopenharmony_ci      enum:
4562306a36Sopenharmony_ci        - DIO1
4662306a36Sopenharmony_ci        - DIO2
4762306a36Sopenharmony_ci        - DIO3
4862306a36Sopenharmony_ci        - DIO4
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci  spi-cpha: true
5162306a36Sopenharmony_ci  spi-cpol: true
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci  reset-gpios:
5462306a36Sopenharmony_ci    maxItems: 1
5562306a36Sopenharmony_ci    description: Connected to RESET pin which is active low.
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci  clocks:
5862306a36Sopenharmony_ci    maxItems: 1
5962306a36Sopenharmony_ci    description: If not provided, then the internal clock is used.
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci  clock-names:
6262306a36Sopenharmony_ci    description: |
6362306a36Sopenharmony_ci      sync: In sync mode, the internal clock is disabled and the frequency
6462306a36Sopenharmony_ci            of the external clock signal establishes therate of data
6562306a36Sopenharmony_ci            collection and processing. See Fig 14 and 15 in the datasheet.
6662306a36Sopenharmony_ci            The clock-frequency must be:
6762306a36Sopenharmony_ci            * 3000 to 4500 Hz for adis1649x devices.
6862306a36Sopenharmony_ci            * 700 to 2400 Hz for adis1648x devices.
6962306a36Sopenharmony_ci      pps:  In Pulse Per Second (PPS) Mode, the rate of data collection and
7062306a36Sopenharmony_ci            production is equal to the product of the external clock
7162306a36Sopenharmony_ci            frequency and the scale factor in the SYNC_SCALE register, see
7262306a36Sopenharmony_ci            Table 154 in the datasheet.
7362306a36Sopenharmony_ci            The clock-frequency must be:
7462306a36Sopenharmony_ci            * 1 to 128 Hz for adis1649x devices.
7562306a36Sopenharmony_ci            * This mode is not supported by adis1648x devices.
7662306a36Sopenharmony_ci    enum:
7762306a36Sopenharmony_ci      - sync
7862306a36Sopenharmony_ci      - pps
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci  adi,ext-clk-pin:
8162306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/string
8262306a36Sopenharmony_ci    description: |
8362306a36Sopenharmony_ci      The DIOx line to be used as an external clock input.
8462306a36Sopenharmony_ci      Each DIOx pin supports only one function at a time (data ready line
8562306a36Sopenharmony_ci      selection or external clock input). When a single pin has two
8662306a36Sopenharmony_ci      two assignments, the enable bit for the lower priority function
8762306a36Sopenharmony_ci      automatically resets to zero (disabling the lower priority function).
8862306a36Sopenharmony_ci      Data ready has highest priority.
8962306a36Sopenharmony_ci      If not provided then DIO2 is assigned as default external clock
9062306a36Sopenharmony_ci      input pin.
9162306a36Sopenharmony_ci    enum:
9262306a36Sopenharmony_ci      - DIO1
9362306a36Sopenharmony_ci      - DIO2
9462306a36Sopenharmony_ci      - DIO3
9562306a36Sopenharmony_ci      - DIO4
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_cirequired:
9862306a36Sopenharmony_ci  - compatible
9962306a36Sopenharmony_ci  - reg
10062306a36Sopenharmony_ci  - interrupts
10162306a36Sopenharmony_ci  - spi-cpha
10262306a36Sopenharmony_ci  - spi-cpol
10362306a36Sopenharmony_ci  - spi-max-frequency
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ciallOf:
10662306a36Sopenharmony_ci  - $ref: /schemas/spi/spi-peripheral-props.yaml#
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ciunevaluatedProperties: false
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ciexamples:
11162306a36Sopenharmony_ci  - |
11262306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
11362306a36Sopenharmony_ci    spi {
11462306a36Sopenharmony_ci        #address-cells = <1>;
11562306a36Sopenharmony_ci        #size-cells = <0>;
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci        imu@0 {
11862306a36Sopenharmony_ci            compatible = "adi,adis16495-1";
11962306a36Sopenharmony_ci            reg = <0>;
12062306a36Sopenharmony_ci            spi-max-frequency = <3200000>;
12162306a36Sopenharmony_ci            spi-cpol;
12262306a36Sopenharmony_ci            spi-cpha;
12362306a36Sopenharmony_ci            interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
12462306a36Sopenharmony_ci            interrupt-parent = <&gpio>;
12562306a36Sopenharmony_ci            interrupt-names = "DIO2";
12662306a36Sopenharmony_ci            clocks = <&adis16495_sync>;
12762306a36Sopenharmony_ci            clock-names = "sync";
12862306a36Sopenharmony_ci            adi,ext-clk-pin = "DIO1";
12962306a36Sopenharmony_ci        };
13062306a36Sopenharmony_ci    };
13162306a36Sopenharmony_ci...
132