xref: /openbmc/linux/Documentation/devicetree/bindings/iio/magnetometer/yamaha,yas530.yaml (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
1165c5147SLinus Walleij# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2165c5147SLinus Walleij%YAML 1.2
3165c5147SLinus Walleij---
4165c5147SLinus Walleij$id: http://devicetree.org/schemas/iio/magnetometer/yamaha,yas530.yaml#
5165c5147SLinus Walleij$schema: http://devicetree.org/meta-schemas/core.yaml#
6165c5147SLinus Walleij
7165c5147SLinus Walleijtitle: Yamaha YAS530 family of magnetometer sensors
8165c5147SLinus Walleij
9165c5147SLinus Walleijmaintainers:
10165c5147SLinus Walleij  - Linus Walleij <linus.walleij@linaro.org>
11165c5147SLinus Walleij
12165c5147SLinus Walleijdescription:
13165c5147SLinus Walleij  The Yamaha YAS530 magnetometers is a line of 3-axis magnetometers
14165c5147SLinus Walleij  first introduced by Yamaha in 2009 with the YAS530. They are successors
15165c5147SLinus Walleij  of Yamaha's first magnetometer YAS529. Over the years this magnetometer
16165c5147SLinus Walleij  has been miniaturized and appeared in a number of different variants.
17165c5147SLinus Walleij
18165c5147SLinus Walleijproperties:
19165c5147SLinus Walleij  $nodename:
20165c5147SLinus Walleij    pattern: '^magnetometer@[0-9a-f]+$'
21165c5147SLinus Walleij
22165c5147SLinus Walleij  compatible:
23165c5147SLinus Walleij    items:
24165c5147SLinus Walleij      - enum:
25165c5147SLinus Walleij          - yamaha,yas530
26165c5147SLinus Walleij          - yamaha,yas532
27165c5147SLinus Walleij          - yamaha,yas533
28165c5147SLinus Walleij          - yamaha,yas535
29165c5147SLinus Walleij          - yamaha,yas536
30165c5147SLinus Walleij          - yamaha,yas537
31165c5147SLinus Walleij          - yamaha,yas539
32165c5147SLinus Walleij
33165c5147SLinus Walleij  reg:
34165c5147SLinus Walleij    maxItems: 1
35165c5147SLinus Walleij
36165c5147SLinus Walleij  reset-gpios:
37165c5147SLinus Walleij    maxItems: 1
38165c5147SLinus Walleij    description: The YAS530 sensor has a RSTN pin used to reset
39165c5147SLinus Walleij      the logic inside the sensor. This GPIO line should connect
40165c5147SLinus Walleij      to that pin and be marked as GPIO_ACTIVE_LOW.
41165c5147SLinus Walleij
42165c5147SLinus Walleij  interrupts:
43165c5147SLinus Walleij    maxItems: 1
44165c5147SLinus Walleij    description: Interrupt for INT pin for interrupt generation.
45165c5147SLinus Walleij      The polarity, whether the interrupt is active on the rising
46165c5147SLinus Walleij      or the falling edge, is software-configurable in the hardware.
47165c5147SLinus Walleij
48165c5147SLinus Walleij  vdd-supply:
49165c5147SLinus Walleij    description: An optional regulator providing core power supply
50165c5147SLinus Walleij      on the VDD pin, typically 1.8 V or 3.0 V.
51165c5147SLinus Walleij
52165c5147SLinus Walleij  iovdd-supply:
53165c5147SLinus Walleij    description: An optional regulator providing I/O power supply
54165c5147SLinus Walleij      for the I2C interface on the IOVDD pin, typically 1.8 V.
55165c5147SLinus Walleij
56165c5147SLinus Walleij  mount-matrix:
57165c5147SLinus Walleij    description: An optional 3x3 mounting rotation matrix.
58165c5147SLinus Walleij
59165c5147SLinus WalleijallOf:
60165c5147SLinus Walleij  - if:
61165c5147SLinus Walleij      not:
62165c5147SLinus Walleij        properties:
63165c5147SLinus Walleij          compatible:
64165c5147SLinus Walleij            items:
65165c5147SLinus Walleij              const: yamaha,yas530
66165c5147SLinus Walleij    then:
67165c5147SLinus Walleij      properties:
68165c5147SLinus Walleij        reset-gpios: false
69165c5147SLinus Walleij
70165c5147SLinus Walleij  - if:
71165c5147SLinus Walleij      properties:
72165c5147SLinus Walleij        compatible:
73165c5147SLinus Walleij          items:
74165c5147SLinus Walleij            const: yamaha,yas539
75165c5147SLinus Walleij    then:
76165c5147SLinus Walleij      properties:
77165c5147SLinus Walleij        interrupts: false
78165c5147SLinus Walleij
79165c5147SLinus Walleijrequired:
80165c5147SLinus Walleij  - compatible
81165c5147SLinus Walleij  - reg
82165c5147SLinus Walleij
83165c5147SLinus WalleijadditionalProperties: false
84165c5147SLinus Walleij
85165c5147SLinus Walleijexamples:
86165c5147SLinus Walleij  - |
87165c5147SLinus Walleij    #include <dt-bindings/interrupt-controller/irq.h>
88165c5147SLinus Walleij    #include <dt-bindings/gpio/gpio.h>
89165c5147SLinus Walleij    i2c-0 {
90165c5147SLinus Walleij        #address-cells = <1>;
91165c5147SLinus Walleij        #size-cells = <0>;
92165c5147SLinus Walleij
93165c5147SLinus Walleij        magnetometer@2e {
94165c5147SLinus Walleij            compatible = "yamaha,yas530";
95165c5147SLinus Walleij            reg = <0x2e>;
96165c5147SLinus Walleij            vdd-supply = <&ldo1_reg>;
97165c5147SLinus Walleij            iovdd-supply = <&ldo2_reg>;
98165c5147SLinus Walleij            reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
99*7b5bfc00SRob Herring            interrupts = <13 IRQ_TYPE_EDGE_RISING>;
100165c5147SLinus Walleij        };
101165c5147SLinus Walleij    };
102165c5147SLinus Walleij
103165c5147SLinus Walleij    i2c-1 {
104165c5147SLinus Walleij        #address-cells = <1>;
105165c5147SLinus Walleij        #size-cells = <0>;
106165c5147SLinus Walleij
107165c5147SLinus Walleij        magnetometer@2e {
108165c5147SLinus Walleij            compatible = "yamaha,yas539";
109165c5147SLinus Walleij            reg = <0x2e>;
110165c5147SLinus Walleij            vdd-supply = <&ldo1_reg>;
111165c5147SLinus Walleij        };
112165c5147SLinus Walleij    };
113