1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/audio-graph-port.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Audio Graph Card 'port'
8
9maintainers:
10  - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
11
12select: false
13
14definitions:
15  port-base:
16    allOf:
17      - $ref: /schemas/graph.yaml#/$defs/port-base
18      - $ref: /schemas/sound/dai-params.yaml#
19    properties:
20      mclk-fs:
21        $ref: simple-card.yaml#/definitions/mclk-fs
22      playback-only:
23        description: port connection used only for playback
24        $ref: /schemas/types.yaml#/definitions/flag
25      capture-only:
26        description: port connection used only for capture
27        $ref: /schemas/types.yaml#/definitions/flag
28
29  endpoint-base:
30    allOf:
31      - $ref: /schemas/graph.yaml#/$defs/endpoint-base
32      - $ref: /schemas/sound/dai-params.yaml#
33    properties:
34      mclk-fs:
35        $ref: simple-card.yaml#/definitions/mclk-fs
36      frame-inversion:
37        description: dai-link uses frame clock inversion
38        $ref: /schemas/types.yaml#/definitions/flag
39      bitclock-inversion:
40        description: dai-link uses bit clock inversion
41        $ref: /schemas/types.yaml#/definitions/flag
42      frame-master:
43        description: Indicates dai-link frame master.
44        oneOf:
45          - $ref: /schemas/types.yaml#/definitions/flag
46          - $ref: /schemas/types.yaml#/definitions/phandle
47      bitclock-master:
48        description: Indicates dai-link bit clock master
49        oneOf:
50          - $ref: /schemas/types.yaml#/definitions/flag
51          - $ref: /schemas/types.yaml#/definitions/phandle
52      clocks:
53        description: Indicates system clock
54        maxItems: 1
55      system-clock-frequency:
56        $ref: simple-card.yaml#/definitions/system-clock-frequency
57      system-clock-direction-out:
58        $ref: simple-card.yaml#/definitions/system-clock-direction-out
59      system-clock-fixed:
60        $ref: simple-card.yaml#/definitions/system-clock-fixed
61
62      dai-format:
63        description: audio format.
64        items:
65          enum:
66            - i2s
67            - right_j
68            - left_j
69            - dsp_a
70            - dsp_b
71            - ac97
72            - pdm
73            - msb
74            - lsb
75
76      dai-tdm-slot-num:
77        description: Number of slots in use.
78        $ref: /schemas/types.yaml#/definitions/uint32
79      dai-tdm-slot-width:
80        description: Width in bits for each slot.
81        $ref: /schemas/types.yaml#/definitions/uint32
82      dai-tdm-slot-width-map:
83        description: Mapping of sample widths to slot widths. For hardware
84          that cannot support a fixed slot width or a slot width always
85          equal to sample width. A matrix of one or more 3-tuples.
86        $ref: /schemas/types.yaml#/definitions/uint32-matrix
87        items:
88          items:
89            -
90              description: Sample width in bits
91              minimum: 8
92              maximum: 64
93            -
94              description: Slot width in bits
95              minimum: 8
96              maximum: 256
97            -
98              description: Slot count
99              minimum: 1
100              maximum: 64
101
102  ports:
103    $ref: "#/definitions/port-base"
104    unevaluatedProperties: false
105    patternProperties:
106      "^port(@[0-9a-f]+)?$":
107        $ref: "#/definitions/port-base"
108        unevaluatedProperties: false
109        patternProperties:
110          "^endpoint(@[0-9a-f]+)?":
111            $ref: "#/definitions/endpoint-base"
112            unevaluatedProperties: false
113
114allOf:
115  - $ref: "#/definitions/port-base"
116
117patternProperties:
118  "^endpoint(@[0-9a-f]+)?":
119    $ref: "#/definitions/endpoint-base"
120    unevaluatedProperties: false
121
122additionalProperties: true
123