blob: dab45c310670b59d8731359655d017626a333230 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/imx-audmux.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Freescale Digital Audio Mux device
8
9maintainers:
10 - Oleksij Rempel <o.rempel@pengutronix.de>
11
12properties:
13 compatible:
14 oneOf:
15 - items:
16 - enum:
17 - fsl,imx27-audmux
18 - const: fsl,imx21-audmux
19 - items:
20 - enum:
21 - fsl,imx25-audmux
22 - fsl,imx35-audmux
23 - fsl,imx50-audmux
24 - fsl,imx51-audmux
25 - fsl,imx53-audmux
26 - fsl,imx6q-audmux
27 - fsl,imx6sl-audmux
28 - fsl,imx6sll-audmux
29 - fsl,imx6sx-audmux
30 - const: fsl,imx31-audmux
31
32 reg:
33 maxItems: 1
34
35 clocks:
36 maxItems: 1
37
38 clock-names:
39 items:
40 - const: audmux
41
42patternProperties:
43 "^mux-[0-9a-z]*$":
44 type: object
45 properties:
46 fsl,audmux-port:
47 $ref: /schemas/types.yaml#/definitions/uint32
48 description: |
49 Integer of the audmux port that is configured by this child node
50
51 fsl,port-config:
52 $ref: /schemas/types.yaml#/definitions/uint32-array
53 description: |
54 List of configuration options for the specific port.
55 For imx31-audmux and above, it is a list of tuples ptcr pdcr.
56 For imx21-audmux it is a list of pcr values.
57
58 required:
59 - fsl,audmux-port
60 - fsl,port-config
61
62 additionalProperties: false
63
64required:
65 - compatible
66 - reg
67
68additionalProperties: false
69
70examples:
71 - |
72 audmux@21d8000 {
73 compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux";
74 reg = <0x021d8000 0x4000>;
75 };
76 - |
77 audmux@10016000 {
78 compatible = "fsl,imx27-audmux", "fsl,imx21-audmux";
79 reg = <0x10016000 0x1000>;
80 clocks = <&clks 1>;
81 clock-names = "audmux";
82
83 mux-ssi0 {
84 fsl,audmux-port = <0>;
85 fsl,port-config = <0xcb205000>;
86 };
87
88 mux-pins4 {
89 fsl,audmux-port = <2>;
90 fsl,port-config = <0x00001000>;
91 };
92 };
93 - |
94 #include <dt-bindings/sound/fsl-imx-audmux.h>
95 audmux@21d8000 {
96 compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux";
97 reg = <0x021d8000 0x4000>;
98 pinctrl-names = "default";
99 pinctrl-0 = <&pinctrl_audmux>;
100
101 mux-ssi1 {
102 fsl,audmux-port = <0>;
103 fsl,port-config = <
104 IMX_AUDMUX_V2_PTCR_SYN 0
105 IMX_AUDMUX_V2_PTCR_TFSEL(2) 0
106 IMX_AUDMUX_V2_PTCR_TCSEL(2) 0
107 IMX_AUDMUX_V2_PTCR_TFSDIR 0
108 IMX_AUDMUX_V2_PTCR_TCLKDIR IMX_AUDMUX_V2_PDCR_RXDSEL(2)
109 >;
110 };
111
112 mux-pins3 {
113 fsl,audmux-port = <2>;
114 fsl,port-config = <
115 IMX_AUDMUX_V2_PTCR_SYN IMX_AUDMUX_V2_PDCR_RXDSEL(0)
116 0 IMX_AUDMUX_V2_PDCR_TXRXEN
117 >;
118 };
119 };