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 23*ce09d1a6STobias Schramm - items: 24*ce09d1a6STobias Schramm - const: allwinner,sun8i-v3-i2s 25*ce09d1a6STobias Schramm - const: allwinner,sun8i-h3-i2s 260a0ca8e9SMaxime Ripard - const: allwinner,sun50i-a64-codec-i2s 270a0ca8e9SMaxime Ripard - items: 280a0ca8e9SMaxime Ripard - const: allwinner,sun50i-a64-i2s 290a0ca8e9SMaxime Ripard - const: allwinner,sun8i-h3-i2s 30e84f44baSJernej Skrabec - const: allwinner,sun50i-h6-i2s 310a0ca8e9SMaxime Ripard 320a0ca8e9SMaxime Ripard reg: 330a0ca8e9SMaxime Ripard maxItems: 1 340a0ca8e9SMaxime Ripard 350a0ca8e9SMaxime Ripard interrupts: 360a0ca8e9SMaxime Ripard maxItems: 1 370a0ca8e9SMaxime Ripard 380a0ca8e9SMaxime Ripard clocks: 390a0ca8e9SMaxime Ripard items: 400a0ca8e9SMaxime Ripard - description: Bus Clock 410a0ca8e9SMaxime Ripard - description: Module Clock 420a0ca8e9SMaxime Ripard 430a0ca8e9SMaxime Ripard clock-names: 440a0ca8e9SMaxime Ripard items: 450a0ca8e9SMaxime Ripard - const: apb 460a0ca8e9SMaxime Ripard - const: mod 470a0ca8e9SMaxime Ripard 480a0ca8e9SMaxime Ripard # Even though it only applies to subschemas under the conditionals, 490a0ca8e9SMaxime Ripard # not listing them here will trigger a warning because of the 500a0ca8e9SMaxime Ripard # additionalsProperties set to false. 51eb5b1284SMaxime Ripard dmas: true 52eb5b1284SMaxime Ripard dma-names: true 530a0ca8e9SMaxime Ripard resets: 540a0ca8e9SMaxime Ripard maxItems: 1 550a0ca8e9SMaxime Ripard 560a0ca8e9SMaxime RipardallOf: 570a0ca8e9SMaxime Ripard - if: 580a0ca8e9SMaxime Ripard properties: 590a0ca8e9SMaxime Ripard compatible: 600a0ca8e9SMaxime Ripard contains: 610a0ca8e9SMaxime Ripard enum: 620a0ca8e9SMaxime Ripard - allwinner,sun6i-a31-i2s 630a0ca8e9SMaxime Ripard - allwinner,sun8i-a83t-i2s 640a0ca8e9SMaxime Ripard - allwinner,sun8i-h3-i2s 650a0ca8e9SMaxime Ripard - allwinner,sun50i-a64-codec-i2s 66e84f44baSJernej Skrabec - allwinner,sun50i-h6-i2s 670a0ca8e9SMaxime Ripard 680a0ca8e9SMaxime Ripard then: 690a0ca8e9SMaxime Ripard required: 700a0ca8e9SMaxime Ripard - resets 710a0ca8e9SMaxime Ripard 72eb5b1284SMaxime Ripard - if: 73eb5b1284SMaxime Ripard properties: 74eb5b1284SMaxime Ripard compatible: 75eb5b1284SMaxime Ripard contains: 760bc1bf24SClément Péron enum: 770bc1bf24SClément Péron - allwinner,sun8i-a83t-i2s 780bc1bf24SClément Péron - allwinner,sun8i-h3-i2s 79eb5b1284SMaxime Ripard 80eb5b1284SMaxime Ripard then: 81eb5b1284SMaxime Ripard properties: 82eb5b1284SMaxime Ripard dmas: 83eb5b1284SMaxime Ripard minItems: 1 84eb5b1284SMaxime Ripard maxItems: 2 85eb5b1284SMaxime Ripard items: 86eb5b1284SMaxime Ripard - description: RX DMA Channel 87eb5b1284SMaxime Ripard - description: TX DMA Channel 88eb5b1284SMaxime Ripard description: 89eb5b1284SMaxime Ripard Some controllers cannot receive but can only transmit 90eb5b1284SMaxime Ripard data. In such a case, the RX DMA channel is to be omitted. 91eb5b1284SMaxime Ripard 92eb5b1284SMaxime Ripard dma-names: 93eb5b1284SMaxime Ripard oneOf: 94eb5b1284SMaxime Ripard - items: 95eb5b1284SMaxime Ripard - const: rx 96eb5b1284SMaxime Ripard - const: tx 97eb5b1284SMaxime Ripard - const: tx 98eb5b1284SMaxime Ripard description: 99eb5b1284SMaxime Ripard Some controllers cannot receive but can only transmit 100eb5b1284SMaxime Ripard data. In such a case, the RX name is to be omitted. 101eb5b1284SMaxime Ripard 102eb5b1284SMaxime Ripard else: 103eb5b1284SMaxime Ripard properties: 104eb5b1284SMaxime Ripard dmas: 105eb5b1284SMaxime Ripard items: 106eb5b1284SMaxime Ripard - description: RX DMA Channel 107eb5b1284SMaxime Ripard - description: TX DMA Channel 108eb5b1284SMaxime Ripard 109eb5b1284SMaxime Ripard dma-names: 110eb5b1284SMaxime Ripard items: 111eb5b1284SMaxime Ripard - const: rx 112eb5b1284SMaxime Ripard - const: tx 113eb5b1284SMaxime Ripard 1140a0ca8e9SMaxime Ripardrequired: 1150a0ca8e9SMaxime Ripard - "#sound-dai-cells" 1160a0ca8e9SMaxime Ripard - compatible 1170a0ca8e9SMaxime Ripard - reg 1180a0ca8e9SMaxime Ripard - interrupts 1190a0ca8e9SMaxime Ripard - clocks 1200a0ca8e9SMaxime Ripard - clock-names 1210a0ca8e9SMaxime Ripard - dmas 1220a0ca8e9SMaxime Ripard - dma-names 1230a0ca8e9SMaxime Ripard 1240a0ca8e9SMaxime RipardadditionalProperties: false 1250a0ca8e9SMaxime Ripard 1260a0ca8e9SMaxime Ripardexamples: 1270a0ca8e9SMaxime Ripard - | 1280a0ca8e9SMaxime Ripard i2s0: i2s@1c22400 { 1290a0ca8e9SMaxime Ripard #sound-dai-cells = <0>; 1300a0ca8e9SMaxime Ripard compatible = "allwinner,sun4i-a10-i2s"; 1310a0ca8e9SMaxime Ripard reg = <0x01c22400 0x400>; 1320a0ca8e9SMaxime Ripard interrupts = <0 16 4>; 1330a0ca8e9SMaxime Ripard clocks = <&apb0_gates 3>, <&i2s0_clk>; 1340a0ca8e9SMaxime Ripard clock-names = "apb", "mod"; 1350a0ca8e9SMaxime Ripard dmas = <&dma 0 3>, <&dma 0 3>; 1360a0ca8e9SMaxime Ripard dma-names = "rx", "tx"; 1370a0ca8e9SMaxime Ripard }; 1380a0ca8e9SMaxime Ripard 1390a0ca8e9SMaxime Ripard... 140