xref: /linux/Documentation/devicetree/bindings/sound/fsl,mqs.yaml (revision c94cd9508b1335b949fd13ebd269313c65492df0)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/fsl,mqs.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NXP Medium Quality Sound (MQS)
8
9maintainers:
10  - Shengjiu Wang <shengjiu.wang@nxp.com>
11  - Chancel Liu <chancel.liu@nxp.com>
12
13description: |
14  Medium quality sound (MQS) is used to generate medium quality audio
15  via a standard GPIO in the pinmux, allowing the user to connect
16  stereo speakers or headphones to a power amplifier without an
17  additional DAC chip.
18
19properties:
20  compatible:
21    enum:
22      - fsl,imx6sx-mqs
23      - fsl,imx8qm-mqs
24      - fsl,imx8qxp-mqs
25      - fsl,imx93-mqs
26      - fsl,imx95-aonmix-mqs
27      - fsl,imx95-netcmix-mqs
28
29  clocks:
30    minItems: 1
31    maxItems: 2
32
33  clock-names:
34    minItems: 1
35    maxItems: 2
36
37  gpr:
38    $ref: /schemas/types.yaml#/definitions/phandle
39    description: The phandle to the General Purpose Register (GPR) node
40
41  reg:
42    maxItems: 1
43
44  power-domains:
45    maxItems: 1
46
47  resets:
48    maxItems: 1
49
50required:
51  - compatible
52  - clocks
53  - clock-names
54
55allOf:
56  - if:
57      properties:
58        compatible:
59          contains:
60            enum:
61              - fsl,imx8qm-mqs
62              - fsl,imx8qxp-mqs
63    then:
64      properties:
65        clocks:
66          items:
67            - description: Master clock
68            - description: Clock for register access
69        clock-names:
70          items:
71            - const: mclk
72            - const: core
73      required:
74        - reg
75        - power-domains
76    else:
77      properties:
78        clocks:
79          items:
80            - description: Master clock
81        clock-names:
82          items:
83            - const: mclk
84      required:
85        - gpr
86
87additionalProperties: false
88
89examples:
90  - |
91    #include <dt-bindings/clock/imx6sx-clock.h>
92    mqs0: mqs {
93        compatible = "fsl,imx6sx-mqs";
94        gpr = <&gpr>;
95        clocks = <&clks IMX6SX_CLK_SAI1>;
96        clock-names = "mclk";
97    };
98
99  - |
100    #include <dt-bindings/firmware/imx/rsrc.h>
101    mqs1: mqs@59850000 {
102        compatible = "fsl,imx8qm-mqs";
103        reg = <0x59850000 0x10000>;
104        clocks = <&mqs0_lpcg 0>, <&mqs0_lpcg 1>;
105        clock-names = "mclk", "core";
106        power-domains = <&pd IMX_SC_R_MQS_0>;
107    };
108