10a0ca8e9SMaxime Ripard# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause) 20a0ca8e9SMaxime Ripard%YAML 1.2 30a0ca8e9SMaxime Ripard--- 40a0ca8e9SMaxime Ripard$id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-i2s.yaml# 50a0ca8e9SMaxime Ripard$schema: http://devicetree.org/meta-schemas/core.yaml# 60a0ca8e9SMaxime Ripard 70a0ca8e9SMaxime Ripardtitle: Allwinner A10 I2S Controller Device Tree Bindings 80a0ca8e9SMaxime Ripard 90a0ca8e9SMaxime Ripardmaintainers: 100a0ca8e9SMaxime Ripard - Chen-Yu Tsai <wens@csie.org> 115c7404bbSMaxime Ripard - Maxime Ripard <mripard@kernel.org> 120a0ca8e9SMaxime Ripard 130a0ca8e9SMaxime Ripardproperties: 140a0ca8e9SMaxime Ripard "#sound-dai-cells": 150a0ca8e9SMaxime Ripard const: 0 160a0ca8e9SMaxime Ripard 170a0ca8e9SMaxime Ripard compatible: 180a0ca8e9SMaxime Ripard oneOf: 190a0ca8e9SMaxime Ripard - const: allwinner,sun4i-a10-i2s 200a0ca8e9SMaxime Ripard - const: allwinner,sun6i-a31-i2s 210a0ca8e9SMaxime Ripard - const: allwinner,sun8i-a83t-i2s 220a0ca8e9SMaxime Ripard - const: allwinner,sun8i-h3-i2s 230a0ca8e9SMaxime Ripard - const: allwinner,sun50i-a64-codec-i2s 240a0ca8e9SMaxime Ripard - items: 250a0ca8e9SMaxime Ripard - const: allwinner,sun50i-a64-i2s 260a0ca8e9SMaxime Ripard - const: allwinner,sun8i-h3-i2s 27e84f44baSJernej Skrabec - const: allwinner,sun50i-h6-i2s 280a0ca8e9SMaxime Ripard 290a0ca8e9SMaxime Ripard reg: 300a0ca8e9SMaxime Ripard maxItems: 1 310a0ca8e9SMaxime Ripard 320a0ca8e9SMaxime Ripard interrupts: 330a0ca8e9SMaxime Ripard maxItems: 1 340a0ca8e9SMaxime Ripard 350a0ca8e9SMaxime Ripard clocks: 360a0ca8e9SMaxime Ripard items: 370a0ca8e9SMaxime Ripard - description: Bus Clock 380a0ca8e9SMaxime Ripard - description: Module Clock 390a0ca8e9SMaxime Ripard 400a0ca8e9SMaxime Ripard clock-names: 410a0ca8e9SMaxime Ripard items: 420a0ca8e9SMaxime Ripard - const: apb 430a0ca8e9SMaxime Ripard - const: mod 440a0ca8e9SMaxime Ripard 450a0ca8e9SMaxime Ripard # Even though it only applies to subschemas under the conditionals, 460a0ca8e9SMaxime Ripard # not listing them here will trigger a warning because of the 470a0ca8e9SMaxime Ripard # additionalsProperties set to false. 48eb5b1284SMaxime Ripard dmas: true 49eb5b1284SMaxime Ripard dma-names: true 500a0ca8e9SMaxime Ripard resets: 510a0ca8e9SMaxime Ripard maxItems: 1 520a0ca8e9SMaxime Ripard 530a0ca8e9SMaxime RipardallOf: 540a0ca8e9SMaxime Ripard - if: 550a0ca8e9SMaxime Ripard properties: 560a0ca8e9SMaxime Ripard compatible: 570a0ca8e9SMaxime Ripard contains: 580a0ca8e9SMaxime Ripard enum: 590a0ca8e9SMaxime Ripard - allwinner,sun6i-a31-i2s 600a0ca8e9SMaxime Ripard - allwinner,sun8i-a83t-i2s 610a0ca8e9SMaxime Ripard - allwinner,sun8i-h3-i2s 620a0ca8e9SMaxime Ripard - allwinner,sun50i-a64-codec-i2s 63e84f44baSJernej Skrabec - allwinner,sun50i-h6-i2s 640a0ca8e9SMaxime Ripard 650a0ca8e9SMaxime Ripard then: 660a0ca8e9SMaxime Ripard required: 670a0ca8e9SMaxime Ripard - resets 680a0ca8e9SMaxime Ripard 69eb5b1284SMaxime Ripard - if: 70eb5b1284SMaxime Ripard properties: 71eb5b1284SMaxime Ripard compatible: 72eb5b1284SMaxime Ripard contains: 73*0bc1bf24SClément Péron enum: 74*0bc1bf24SClément Péron - allwinner,sun8i-a83t-i2s 75*0bc1bf24SClément Péron - allwinner,sun8i-h3-i2s 76eb5b1284SMaxime Ripard 77eb5b1284SMaxime Ripard then: 78eb5b1284SMaxime Ripard properties: 79eb5b1284SMaxime Ripard dmas: 80eb5b1284SMaxime Ripard minItems: 1 81eb5b1284SMaxime Ripard maxItems: 2 82eb5b1284SMaxime Ripard items: 83eb5b1284SMaxime Ripard - description: RX DMA Channel 84eb5b1284SMaxime Ripard - description: TX DMA Channel 85eb5b1284SMaxime Ripard description: 86eb5b1284SMaxime Ripard Some controllers cannot receive but can only transmit 87eb5b1284SMaxime Ripard data. In such a case, the RX DMA channel is to be omitted. 88eb5b1284SMaxime Ripard 89eb5b1284SMaxime Ripard dma-names: 90eb5b1284SMaxime Ripard oneOf: 91eb5b1284SMaxime Ripard - items: 92eb5b1284SMaxime Ripard - const: rx 93eb5b1284SMaxime Ripard - const: tx 94eb5b1284SMaxime Ripard - const: tx 95eb5b1284SMaxime Ripard description: 96eb5b1284SMaxime Ripard Some controllers cannot receive but can only transmit 97eb5b1284SMaxime Ripard data. In such a case, the RX name is to be omitted. 98eb5b1284SMaxime Ripard 99eb5b1284SMaxime Ripard else: 100eb5b1284SMaxime Ripard properties: 101eb5b1284SMaxime Ripard dmas: 102eb5b1284SMaxime Ripard items: 103eb5b1284SMaxime Ripard - description: RX DMA Channel 104eb5b1284SMaxime Ripard - description: TX DMA Channel 105eb5b1284SMaxime Ripard 106eb5b1284SMaxime Ripard dma-names: 107eb5b1284SMaxime Ripard items: 108eb5b1284SMaxime Ripard - const: rx 109eb5b1284SMaxime Ripard - const: tx 110eb5b1284SMaxime Ripard 1110a0ca8e9SMaxime Ripardrequired: 1120a0ca8e9SMaxime Ripard - "#sound-dai-cells" 1130a0ca8e9SMaxime Ripard - compatible 1140a0ca8e9SMaxime Ripard - reg 1150a0ca8e9SMaxime Ripard - interrupts 1160a0ca8e9SMaxime Ripard - clocks 1170a0ca8e9SMaxime Ripard - clock-names 1180a0ca8e9SMaxime Ripard - dmas 1190a0ca8e9SMaxime Ripard - dma-names 1200a0ca8e9SMaxime Ripard 1210a0ca8e9SMaxime RipardadditionalProperties: false 1220a0ca8e9SMaxime Ripard 1230a0ca8e9SMaxime Ripardexamples: 1240a0ca8e9SMaxime Ripard - | 1250a0ca8e9SMaxime Ripard i2s0: i2s@1c22400 { 1260a0ca8e9SMaxime Ripard #sound-dai-cells = <0>; 1270a0ca8e9SMaxime Ripard compatible = "allwinner,sun4i-a10-i2s"; 1280a0ca8e9SMaxime Ripard reg = <0x01c22400 0x400>; 1290a0ca8e9SMaxime Ripard interrupts = <0 16 4>; 1300a0ca8e9SMaxime Ripard clocks = <&apb0_gates 3>, <&i2s0_clk>; 1310a0ca8e9SMaxime Ripard clock-names = "apb", "mod"; 1320a0ca8e9SMaxime Ripard dmas = <&dma 0 3>, <&dma 0 3>; 1330a0ca8e9SMaxime Ripard dma-names = "rx", "tx"; 1340a0ca8e9SMaxime Ripard }; 1350a0ca8e9SMaxime Ripard 1360a0ca8e9SMaxime Ripard... 137