hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-i2s.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
 
title: Allwinner A10 I2S Controller Device Tree Bindings
 
maintainers:
  - Chen-Yu Tsai <wens@csie.org>
  - Maxime Ripard <mripard@kernel.org>
 
properties:
  "#sound-dai-cells":
    const: 0
 
  compatible:
    oneOf:
      - const: allwinner,sun4i-a10-i2s
      - const: allwinner,sun6i-a31-i2s
      - const: allwinner,sun8i-a83t-i2s
      - const: allwinner,sun8i-h3-i2s
      - const: allwinner,sun50i-a64-codec-i2s
      - items:
          - const: allwinner,sun50i-a64-i2s
          - const: allwinner,sun8i-h3-i2s
 
  reg:
    maxItems: 1
 
  interrupts:
    maxItems: 1
 
  clocks:
    items:
      - description: Bus Clock
      - description: Module Clock
 
  clock-names:
    items:
      - const: apb
      - const: mod
 
  # Even though it only applies to subschemas under the conditionals,
  # not listing them here will trigger a warning because of the
  # additionalsProperties set to false.
  dmas: true
  dma-names: true
  resets:
    maxItems: 1
 
allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - allwinner,sun6i-a31-i2s
              - allwinner,sun8i-a83t-i2s
              - allwinner,sun8i-h3-i2s
              - allwinner,sun50i-a64-codec-i2s
 
    then:
      required:
        - resets
 
  - if:
      properties:
        compatible:
          contains:
            const: allwinner,sun8i-a83t-i2s
 
    then:
      properties:
        dmas:
          minItems: 1
          maxItems: 2
          items:
            - description: RX DMA Channel
            - description: TX DMA Channel
          description:
            Some controllers cannot receive but can only transmit
            data. In such a case, the RX DMA channel is to be omitted.
 
        dma-names:
          oneOf:
            - items:
                - const: rx
                - const: tx
            - const: tx
          description:
            Some controllers cannot receive but can only transmit
            data. In such a case, the RX name is to be omitted.
 
    else:
      properties:
        dmas:
          items:
            - description: RX DMA Channel
            - description: TX DMA Channel
 
        dma-names:
          items:
            - const: rx
            - const: tx
 
required:
  - "#sound-dai-cells"
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - dmas
  - dma-names
 
additionalProperties: false
 
examples:
  - |
    i2s0: i2s@1c22400 {
        #sound-dai-cells = <0>;
        compatible = "allwinner,sun4i-a10-i2s";
        reg = <0x01c22400 0x400>;
        interrupts = <0 16 4>;
        clocks = <&apb0_gates 3>, <&i2s0_clk>;
        clock-names = "apb", "mod";
        dmas = <&dma 0 3>, <&dma 0 3>;
        dma-names = "rx", "tx";
    };
 
...