summaryrefslogtreecommitdiffstats
path: root/dts/Bindings/iio/imu/adi,adis16480.yaml
blob: 5dbe24be9925b500676372a257a96b7f06f58a77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/imu/adi,adis16480.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices ADIS16480 and similar IMUs

maintainers:
  - Alexandru Ardelean <alexandru.ardelean@analog.com>

properties:
  compatible:
    enum:
      - adi,adis16375
      - adi,adis16480
      - adi,adis16485
      - adi,adis16488
      - adi,adis16490
      - adi,adis16495-1
      - adi,adis16495-2
      - adi,adis16495-3
      - adi,adis16497-1
      - adi,adis16497-2
      - adi,adis16497-3

  reg:
    maxItems: 1

  interrupts:
    minItems: 1
    maxItems: 2
    description: |
      Accepted interrupt types are:
      * IRQ_TYPE_EDGE_RISING
      * IRQ_TYPE_EDGE_FALLING

  interrupt-names:
    minItems: 1
    maxItems: 2
    description:
      Default if not supplied is DIO1.
    items:
      enum:
        - DIO1
        - DIO2
        - DIO3
        - DIO4

  spi-max-frequency: true

  spi-cpha: true
  spi-cpol: true

  reset-gpios:
    maxItems: 1
    description: Connected to RESET pin which is active low.

  clocks:
    maxItems: 1
    description: If not provided, then the internal clock is used.

  clock-names:
    description: |
      sync: In sync mode, the internal clock is disabled and the frequency
            of the external clock signal establishes therate of data
            collection and processing. See Fig 14 and 15 in the datasheet.
            The clock-frequency must be:
            * 3000 to 4500 Hz for adis1649x devices.
            * 700 to 2400 Hz for adis1648x devices.
      pps:  In Pulse Per Second (PPS) Mode, the rate of data collection and
            production is equal to the product of the external clock
            frequency and the scale factor in the SYNC_SCALE register, see
            Table 154 in the datasheet.
            The clock-frequency must be:
            * 1 to 128 Hz for adis1649x devices.
            * This mode is not supported by adis1648x devices.
    enum:
      - sync
      - pps

  adi,ext-clk-pin:
    $ref: /schemas/types.yaml#/definitions/string
    description: |
      The DIOx line to be used as an external clock input.
      Each DIOx pin supports only one function at a time (data ready line
      selection or external clock input). When a single pin has two
      two assignments, the enable bit for the lower priority function
      automatically resets to zero (disabling the lower priority function).
      Data ready has highest priority.
      If not provided then DIO2 is assigned as default external clock
      input pin.
    enum:
      - DIO1
      - DIO2
      - DIO3
      - DIO4

additionalProperties: false

required:
  - compatible
  - reg
  - interrupts
  - spi-cpha
  - spi-cpol
  - spi-max-frequency

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        imu@0 {
            compatible = "adi,adis16495-1";
            reg = <0>;
            spi-max-frequency = <3200000>;
            spi-cpol;
            spi-cpha;
            interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
            interrupt-parent = <&gpio>;
            interrupt-names = "DIO2";
            clocks = <&adis16495_sync>;
            clock-names = "sync";
            adi,ext-clk-pin = "DIO1";
        };
    };
...