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/magnetometer/asahi-kasei,ak8975.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: AsahiKASEI AK8975 magnetometer sensor
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Jonathan Albrieux <jonathan.albrieux@gmail.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciproperties:
1362306a36Sopenharmony_ci  compatible:
1462306a36Sopenharmony_ci    oneOf:
1562306a36Sopenharmony_ci      - enum:
1662306a36Sopenharmony_ci          - asahi-kasei,ak8975
1762306a36Sopenharmony_ci          - asahi-kasei,ak8963
1862306a36Sopenharmony_ci          - asahi-kasei,ak09911
1962306a36Sopenharmony_ci          - asahi-kasei,ak09912
2062306a36Sopenharmony_ci          - asahi-kasei,ak09916
2162306a36Sopenharmony_ci      - enum:
2262306a36Sopenharmony_ci          - ak8975
2362306a36Sopenharmony_ci          - ak8963
2462306a36Sopenharmony_ci          - ak09911
2562306a36Sopenharmony_ci          - ak09912
2662306a36Sopenharmony_ci          - ak09916
2762306a36Sopenharmony_ci        deprecated: true
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  reg:
3062306a36Sopenharmony_ci    maxItems: 1
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci  gpios:
3362306a36Sopenharmony_ci    maxItems: 1
3462306a36Sopenharmony_ci    description: |
3562306a36Sopenharmony_ci      AK8975 has a "Data ready" pin (DRDY) which informs that data
3662306a36Sopenharmony_ci      is ready to be read and is possible to listen on it. If used,
3762306a36Sopenharmony_ci      this should be active high. Prefer interrupt over this.
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci  interrupts:
4062306a36Sopenharmony_ci    maxItems: 1
4162306a36Sopenharmony_ci    description: interrupt for DRDY pin. Triggered on rising edge.
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  vdd-supply:
4462306a36Sopenharmony_ci    description: |
4562306a36Sopenharmony_ci      an optional regulator that needs to be on to provide VDD power to
4662306a36Sopenharmony_ci      the sensor.
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci  vid-supply:
4962306a36Sopenharmony_ci    description: |
5062306a36Sopenharmony_ci      an optional regulator that needs to be on to provide VID power to
5162306a36Sopenharmony_ci      the sensor.
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci  mount-matrix:
5462306a36Sopenharmony_ci    description: an optional 3x3 mounting rotation matrix.
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci  reset-gpios:
5762306a36Sopenharmony_ci    maxItems: 1
5862306a36Sopenharmony_ci    description: |
5962306a36Sopenharmony_ci      an optional pin needed for AK09911 to set the reset state. This should
6062306a36Sopenharmony_ci      be usually active low
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_cirequired:
6362306a36Sopenharmony_ci  - compatible
6462306a36Sopenharmony_ci  - reg
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ciadditionalProperties: false
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ciexamples:
6962306a36Sopenharmony_ci  - |
7062306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
7162306a36Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
7262306a36Sopenharmony_ci    i2c {
7362306a36Sopenharmony_ci        #address-cells = <1>;
7462306a36Sopenharmony_ci        #size-cells = <0>;
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci        magnetometer@c {
7762306a36Sopenharmony_ci            compatible = "asahi-kasei,ak8975";
7862306a36Sopenharmony_ci            reg = <0x0c>;
7962306a36Sopenharmony_ci            interrupt-parent = <&gpio6>;
8062306a36Sopenharmony_ci            interrupts = <15 IRQ_TYPE_EDGE_RISING>;
8162306a36Sopenharmony_ci            vdd-supply = <&ldo_3v3_gnss>;
8262306a36Sopenharmony_ci            reset-gpios = <&msmgpio 111 GPIO_ACTIVE_LOW>;
8362306a36Sopenharmony_ci            mount-matrix = "-0.984807753012208",  /* x0 */
8462306a36Sopenharmony_ci                           "0",                   /* y0 */
8562306a36Sopenharmony_ci                           "-0.173648177666930",  /* z0 */
8662306a36Sopenharmony_ci                           "0",                   /* x1 */
8762306a36Sopenharmony_ci                           "-1",                  /* y1 */
8862306a36Sopenharmony_ci                           "0",                   /* z1 */
8962306a36Sopenharmony_ci                           "-0.173648177666930",  /* x2 */
9062306a36Sopenharmony_ci                           "0",                   /* y2 */
9162306a36Sopenharmony_ci                           "0.984807753012208";   /* z2 */
9262306a36Sopenharmony_ci        };
9362306a36Sopenharmony_ci    };
94