1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/iio/magnetometer/yamaha,yas530.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Yamaha YAS530 family of magnetometer sensors
8
9maintainers:
10  - Linus Walleij <linus.walleij@linaro.org>
11
12description:
13  The Yamaha YAS530 magnetometers is a line of 3-axis magnetometers
14  first introduced by Yamaha in 2009 with the YAS530. They are successors
15  of Yamaha's first magnetometer YAS529. Over the years this magnetometer
16  has been miniaturized and appeared in a number of different variants.
17
18properties:
19  $nodename:
20    pattern: '^magnetometer@[0-9a-f]+$'
21
22  compatible:
23    items:
24      - enum:
25          - yamaha,yas530
26          - yamaha,yas532
27          - yamaha,yas533
28          - yamaha,yas535
29          - yamaha,yas536
30          - yamaha,yas537
31          - yamaha,yas539
32
33  reg:
34    maxItems: 1
35
36  reset-gpios:
37    maxItems: 1
38    description: The YAS530 sensor has a RSTN pin used to reset
39      the logic inside the sensor. This GPIO line should connect
40      to that pin and be marked as GPIO_ACTIVE_LOW.
41
42  interrupts:
43    maxItems: 1
44    description: Interrupt for INT pin for interrupt generation.
45      The polarity, whether the interrupt is active on the rising
46      or the falling edge, is software-configurable in the hardware.
47
48  vdd-supply:
49    description: An optional regulator providing core power supply
50      on the VDD pin, typically 1.8 V or 3.0 V.
51
52  iovdd-supply:
53    description: An optional regulator providing I/O power supply
54      for the I2C interface on the IOVDD pin, typically 1.8 V.
55
56  mount-matrix:
57    description: An optional 3x3 mounting rotation matrix.
58
59allOf:
60  - if:
61      not:
62        properties:
63          compatible:
64            items:
65              const: yamaha,yas530
66    then:
67      properties:
68        reset-gpios: false
69
70  - if:
71      properties:
72        compatible:
73          items:
74            const: yamaha,yas539
75    then:
76      properties:
77        interrupts: false
78
79required:
80  - compatible
81  - reg
82
83additionalProperties: false
84
85examples:
86  - |
87    #include <dt-bindings/interrupt-controller/irq.h>
88    #include <dt-bindings/gpio/gpio.h>
89    i2c-0 {
90        #address-cells = <1>;
91        #size-cells = <0>;
92
93        magnetometer@2e {
94          compatible = "yamaha,yas530";
95          reg = <0x2e>;
96          vdd-supply = <&ldo1_reg>;
97          iovdd-supply = <&ldo2_reg>;
98          reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
99          interrupts = <&gpio6 13 IRQ_TYPE_EDGE_RISING>;
100        };
101    };
102
103    i2c-1 {
104        #address-cells = <1>;
105        #size-cells = <0>;
106
107        magnetometer@2e {
108          compatible = "yamaha,yas539";
109          reg = <0x2e>;
110          vdd-supply = <&ldo1_reg>;
111        };
112    };
113