1510f1c13SNicolas Frattaroli# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2510f1c13SNicolas Frattaroli%YAML 1.2 3510f1c13SNicolas Frattaroli--- 4510f1c13SNicolas Frattaroli$id: http://devicetree.org/schemas/sound/rockchip,i2s-tdm.yaml# 5510f1c13SNicolas Frattaroli$schema: http://devicetree.org/meta-schemas/core.yaml# 6510f1c13SNicolas Frattaroli 7510f1c13SNicolas Frattarolititle: Rockchip I2S/TDM Controller 8510f1c13SNicolas Frattaroli 9510f1c13SNicolas Frattarolidescription: 10510f1c13SNicolas Frattaroli The Rockchip I2S/TDM Controller is a Time Division Multiplexed 11510f1c13SNicolas Frattaroli audio interface found in various Rockchip SoCs, allowing up 12510f1c13SNicolas Frattaroli to 8 channels of audio over a serial interface. 13510f1c13SNicolas Frattaroli 14510f1c13SNicolas Frattarolimaintainers: 15510f1c13SNicolas Frattaroli - Nicolas Frattaroli <frattaroli.nicolas@gmail.com> 16510f1c13SNicolas Frattaroli 1758ae9a2aSKrzysztof KozlowskiallOf: 1858ae9a2aSKrzysztof Kozlowski - $ref: dai-common.yaml# 1958ae9a2aSKrzysztof Kozlowski 20510f1c13SNicolas Frattaroliproperties: 21510f1c13SNicolas Frattaroli compatible: 22510f1c13SNicolas Frattaroli enum: 23510f1c13SNicolas Frattaroli - rockchip,px30-i2s-tdm 24510f1c13SNicolas Frattaroli - rockchip,rk1808-i2s-tdm 25510f1c13SNicolas Frattaroli - rockchip,rk3308-i2s-tdm 26510f1c13SNicolas Frattaroli - rockchip,rk3568-i2s-tdm 270643fd36SNicolas Frattaroli - rockchip,rk3588-i2s-tdm 28510f1c13SNicolas Frattaroli - rockchip,rv1126-i2s-tdm 29510f1c13SNicolas Frattaroli 30510f1c13SNicolas Frattaroli reg: 31510f1c13SNicolas Frattaroli maxItems: 1 32510f1c13SNicolas Frattaroli 33510f1c13SNicolas Frattaroli interrupts: 34510f1c13SNicolas Frattaroli maxItems: 1 35510f1c13SNicolas Frattaroli 36510f1c13SNicolas Frattaroli dmas: 37510f1c13SNicolas Frattaroli minItems: 1 38510f1c13SNicolas Frattaroli maxItems: 2 39510f1c13SNicolas Frattaroli 40510f1c13SNicolas Frattaroli dma-names: 41510f1c13SNicolas Frattaroli minItems: 1 42510f1c13SNicolas Frattaroli maxItems: 2 43510f1c13SNicolas Frattaroli items: 44510f1c13SNicolas Frattaroli enum: 45510f1c13SNicolas Frattaroli - rx 46510f1c13SNicolas Frattaroli - tx 47510f1c13SNicolas Frattaroli 48510f1c13SNicolas Frattaroli clocks: 49510f1c13SNicolas Frattaroli minItems: 3 50510f1c13SNicolas Frattaroli items: 51510f1c13SNicolas Frattaroli - description: clock for TX 52510f1c13SNicolas Frattaroli - description: clock for RX 53510f1c13SNicolas Frattaroli - description: AHB clock driving the interface 54510f1c13SNicolas Frattaroli - description: 55510f1c13SNicolas Frattaroli Parent clock for mclk_tx (only required when using mclk-calibrate) 56510f1c13SNicolas Frattaroli - description: 57510f1c13SNicolas Frattaroli Parent clock for mclk_rx (only required when using mclk-calibrate) 58510f1c13SNicolas Frattaroli - description: 59510f1c13SNicolas Frattaroli Clock for sample rates that are an integer multiple of 8000 60510f1c13SNicolas Frattaroli (only required when using mclk-calibrate) 61510f1c13SNicolas Frattaroli - description: 62510f1c13SNicolas Frattaroli Clock for sample rates that are an integer multiple of 11025 63510f1c13SNicolas Frattaroli (only required when using mclk-calibrate) 64510f1c13SNicolas Frattaroli 65510f1c13SNicolas Frattaroli clock-names: 66510f1c13SNicolas Frattaroli minItems: 3 67510f1c13SNicolas Frattaroli items: 68510f1c13SNicolas Frattaroli - const: mclk_tx 69510f1c13SNicolas Frattaroli - const: mclk_rx 70510f1c13SNicolas Frattaroli - const: hclk 71510f1c13SNicolas Frattaroli - const: mclk_tx_src 72510f1c13SNicolas Frattaroli - const: mclk_rx_src 73510f1c13SNicolas Frattaroli - const: mclk_root0 74510f1c13SNicolas Frattaroli - const: mclk_root1 75510f1c13SNicolas Frattaroli 76510f1c13SNicolas Frattaroli resets: 77510f1c13SNicolas Frattaroli minItems: 1 78510f1c13SNicolas Frattaroli maxItems: 2 79510f1c13SNicolas Frattaroli description: resets for the tx and rx directions 80510f1c13SNicolas Frattaroli 81510f1c13SNicolas Frattaroli reset-names: 82510f1c13SNicolas Frattaroli minItems: 1 83510f1c13SNicolas Frattaroli maxItems: 2 84510f1c13SNicolas Frattaroli items: 85510f1c13SNicolas Frattaroli enum: 86510f1c13SNicolas Frattaroli - tx-m 87510f1c13SNicolas Frattaroli - rx-m 88510f1c13SNicolas Frattaroli 89bfbae373SCristian Ciocaltea port: 90bfbae373SCristian Ciocaltea $ref: audio-graph-port.yaml# 91bfbae373SCristian Ciocaltea unevaluatedProperties: false 92bfbae373SCristian Ciocaltea 93*9971f335SCristian Ciocaltea power-domains: 94*9971f335SCristian Ciocaltea maxItems: 1 95*9971f335SCristian Ciocaltea 96510f1c13SNicolas Frattaroli rockchip,grf: 97510f1c13SNicolas Frattaroli $ref: /schemas/types.yaml#/definitions/phandle 98510f1c13SNicolas Frattaroli description: 99510f1c13SNicolas Frattaroli The phandle of the syscon node for the GRF register. 100510f1c13SNicolas Frattaroli 101510f1c13SNicolas Frattaroli rockchip,trcm-sync-tx-only: 102510f1c13SNicolas Frattaroli type: boolean 103510f1c13SNicolas Frattaroli description: Use TX BCLK/LRCK for both TX and RX. 104510f1c13SNicolas Frattaroli 105510f1c13SNicolas Frattaroli rockchip,trcm-sync-rx-only: 106510f1c13SNicolas Frattaroli type: boolean 107510f1c13SNicolas Frattaroli description: Use RX BCLK/LRCK for both TX and RX. 108510f1c13SNicolas Frattaroli 109510f1c13SNicolas Frattaroli "#sound-dai-cells": 110510f1c13SNicolas Frattaroli const: 0 111510f1c13SNicolas Frattaroli 112510f1c13SNicolas Frattaroli rockchip,i2s-rx-route: 113510f1c13SNicolas Frattaroli $ref: /schemas/types.yaml#/definitions/uint32-array 114510f1c13SNicolas Frattaroli description: 115510f1c13SNicolas Frattaroli Defines the mapping of I2S RX sdis to I2S data bus lines. 116510f1c13SNicolas Frattaroli By default, they are mapped one-to-one. 117510f1c13SNicolas Frattaroli rockchip,i2s-rx-route = <3> would mean sdi3 is receiving from data0. 118510f1c13SNicolas Frattaroli maxItems: 4 119510f1c13SNicolas Frattaroli items: 12051a67d6eSGeert Uytterhoeven enum: [0, 1, 2, 3] 121510f1c13SNicolas Frattaroli 122510f1c13SNicolas Frattaroli rockchip,i2s-tx-route: 123510f1c13SNicolas Frattaroli $ref: /schemas/types.yaml#/definitions/uint32-array 124510f1c13SNicolas Frattaroli description: 125510f1c13SNicolas Frattaroli Defines the mapping of I2S TX sdos to I2S data bus lines. 126510f1c13SNicolas Frattaroli By default, they are mapped one-to-one. 127510f1c13SNicolas Frattaroli rockchip,i2s-tx-route = <3> would mean sdo3 is sending to data0. 128510f1c13SNicolas Frattaroli maxItems: 4 129510f1c13SNicolas Frattaroli items: 13051a67d6eSGeert Uytterhoeven enum: [0, 1, 2, 3] 131510f1c13SNicolas Frattaroli 132510f1c13SNicolas Frattaroli rockchip,io-multiplex: 133510f1c13SNicolas Frattaroli description: 134510f1c13SNicolas Frattaroli Specify that the GPIO lines on the I2S bus are multiplexed such that 135510f1c13SNicolas Frattaroli the direction (input/output) needs to be dynamically adjusted. 136510f1c13SNicolas Frattaroli type: boolean 137510f1c13SNicolas Frattaroli 138510f1c13SNicolas Frattaroli 139510f1c13SNicolas Frattarolirequired: 140510f1c13SNicolas Frattaroli - compatible 141510f1c13SNicolas Frattaroli - reg 142510f1c13SNicolas Frattaroli - interrupts 143510f1c13SNicolas Frattaroli - dmas 144510f1c13SNicolas Frattaroli - dma-names 145510f1c13SNicolas Frattaroli - clocks 146510f1c13SNicolas Frattaroli - clock-names 147510f1c13SNicolas Frattaroli - resets 148510f1c13SNicolas Frattaroli - reset-names 149510f1c13SNicolas Frattaroli - "#sound-dai-cells" 150510f1c13SNicolas Frattaroli 15158ae9a2aSKrzysztof KozlowskiunevaluatedProperties: false 152510f1c13SNicolas Frattaroli 153510f1c13SNicolas Frattaroliexamples: 154510f1c13SNicolas Frattaroli - | 155510f1c13SNicolas Frattaroli #include <dt-bindings/clock/rk3568-cru.h> 156510f1c13SNicolas Frattaroli #include <dt-bindings/interrupt-controller/arm-gic.h> 157510f1c13SNicolas Frattaroli #include <dt-bindings/interrupt-controller/irq.h> 158510f1c13SNicolas Frattaroli #include <dt-bindings/pinctrl/rockchip.h> 159510f1c13SNicolas Frattaroli 160510f1c13SNicolas Frattaroli bus { 161510f1c13SNicolas Frattaroli #address-cells = <2>; 162510f1c13SNicolas Frattaroli #size-cells = <2>; 163510f1c13SNicolas Frattaroli i2s@fe410000 { 164510f1c13SNicolas Frattaroli compatible = "rockchip,rk3568-i2s-tdm"; 165510f1c13SNicolas Frattaroli reg = <0x0 0xfe410000 0x0 0x1000>; 166510f1c13SNicolas Frattaroli interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; 167510f1c13SNicolas Frattaroli clocks = <&cru MCLK_I2S1_8CH_TX>, <&cru MCLK_I2S1_8CH_RX>, 168510f1c13SNicolas Frattaroli <&cru HCLK_I2S1_8CH>; 169510f1c13SNicolas Frattaroli clock-names = "mclk_tx", "mclk_rx", "hclk"; 170510f1c13SNicolas Frattaroli dmas = <&dmac1 3>, <&dmac1 2>; 171510f1c13SNicolas Frattaroli dma-names = "rx", "tx"; 172510f1c13SNicolas Frattaroli resets = <&cru SRST_M_I2S1_8CH_TX>, <&cru SRST_M_I2S1_8CH_RX>; 173510f1c13SNicolas Frattaroli reset-names = "tx-m", "rx-m"; 174510f1c13SNicolas Frattaroli rockchip,trcm-sync-tx-only; 175510f1c13SNicolas Frattaroli rockchip,grf = <&grf>; 176510f1c13SNicolas Frattaroli #sound-dai-cells = <0>; 177510f1c13SNicolas Frattaroli pinctrl-names = "default"; 178510f1c13SNicolas Frattaroli pinctrl-0 = 179510f1c13SNicolas Frattaroli <&i2s1m0_sclktx 180510f1c13SNicolas Frattaroli &i2s1m0_sclkrx 181510f1c13SNicolas Frattaroli &i2s1m0_lrcktx 182510f1c13SNicolas Frattaroli &i2s1m0_lrckrx 183510f1c13SNicolas Frattaroli &i2s1m0_sdi0 184510f1c13SNicolas Frattaroli &i2s1m0_sdi1 185510f1c13SNicolas Frattaroli &i2s1m0_sdi2 186510f1c13SNicolas Frattaroli &i2s1m0_sdi3 187510f1c13SNicolas Frattaroli &i2s1m0_sdo0 188510f1c13SNicolas Frattaroli &i2s1m0_sdo1 189510f1c13SNicolas Frattaroli &i2s1m0_sdo2 190510f1c13SNicolas Frattaroli &i2s1m0_sdo3>; 191510f1c13SNicolas Frattaroli }; 192510f1c13SNicolas Frattaroli }; 193