# 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 - Maxime Ripard 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"; }; ...