Loading Documentation/devicetree/bindings/sound/st,stm32-i2s.txt 0 → 100644 +62 −0 Original line number Diff line number Diff line STMicroelectronics STM32 SPI/I2S Controller The SPI/I2S block supports I2S/PCM protocols when configured on I2S mode. Only some SPI instances support I2S. Required properties: - compatible: Must be "st,stm32h7-i2s" - reg: Offset and length of the device's register set. - interrupts: Must contain the interrupt line id. - clocks: Must contain phandle and clock specifier pairs for each entry in clock-names. - clock-names: Must contain "i2sclk", "pclk", "x8k" and "x11k". "i2sclk": clock which feeds the internal clock generator "pclk": clock which feeds the peripheral bus interface "x8k": I2S parent clock for sampling rates multiple of 8kHz. "x11k": I2S parent clock for sampling rates multiple of 11.025kHz. - dmas: DMA specifiers for tx and rx dma. See Documentation/devicetree/bindings/dma/stm32-dma.txt. - dma-names: Identifier for each DMA request line. Must be "tx" and "rx". - pinctrl-names: should contain only value "default" - pinctrl-0: see Documentation/devicetree/bindings/pinctrl/pinctrl-stm32.txt Optional properties: - resets: Reference to a reset controller asserting the reset controller The device node should contain one 'port' child node with one child 'endpoint' node, according to the bindings defined in Documentation/devicetree/bindings/ graph.txt. Example: sound_card { compatible = "audio-graph-card"; dais = <&i2s2_port>; }; i2s2: audio-controller@40003800 { compatible = "st,stm32h7-i2s"; reg = <0x40003800 0x400>; interrupts = <36>; clocks = <&rcc PCLK1>, <&rcc SPI2_CK>, <&rcc PLL1_Q>, <&rcc PLL2_P>; clock-names = "pclk", "i2sclk", "x8k", "x11k"; dmas = <&dmamux2 2 39 0x400 0x1>, <&dmamux2 3 40 0x400 0x1>; dma-names = "rx", "tx"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2s2>; i2s2_port: port@0 { cpu_endpoint: endpoint { remote-endpoint = <&codec_endpoint>; format = "i2s"; }; }; }; audio-codec { codec_port: port@0 { codec_endpoint: endpoint { remote-endpoint = <&cpu_endpoint>; }; }; }; Documentation/devicetree/bindings/sound/st,stm32-sai.txt +18 −23 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ The SAI contains two independent audio sub-blocks. Each sub-block has its own clock generator and I/O lines controller. Required properties: - compatible: Should be "st,stm32f4-sai" - compatible: Should be "st,stm32f4-sai" or "st,stm32h7-sai" - reg: Base address and size of SAI common register set. - clocks: Must contain phandle and clock specifier pairs for each entry in clock-names. Loading Loading @@ -36,6 +36,10 @@ SAI subnodes required properties: - pinctrl-names: should contain only value "default" - pinctrl-0: see Documentation/devicetree/bindings/pinctrl/pinctrl-stm32.txt The device node should contain one 'port' child node with one child 'endpoint' node, according to the bindings defined in Documentation/devicetree/bindings/ graph.txt. Example: sound_card { compatible = "audio-graph-card"; Loading @@ -43,38 +47,29 @@ sound_card { }; sai1: sai1@40015800 { compatible = "st,stm32f4-sai"; compatible = "st,stm32h7-sai"; #address-cells = <1>; #size-cells = <1>; ranges; ranges = <0 0x40015800 0x400>; reg = <0x40015800 0x4>; clocks = <&rcc 1 CLK_SAIQ_PDIV>, <&rcc 1 CLK_I2SQ_PDIV>; clocks = <&rcc PLL1_Q>, <&rcc PLL2_P>; clock-names = "x8k", "x11k"; interrupts = <87>; sai1b: audio-controller@40015824 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-b"; reg = <0x40015824 0x1C>; clocks = <&rcc 1 CLK_SAI2>; sai1a: audio-controller@40015804 { compatible = "st,stm32-sai-sub-a"; reg = <0x4 0x1C>; clocks = <&rcc SAI1_CK>; clock-names = "sai_ck"; dmas = <&dma2 5 0 0x400 0x0>; dmas = <&dmamux1 1 87 0x400 0x0>; dma-names = "tx"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sai1b>; ports { #address-cells = <1>; #size-cells = <0>; pinctrl-0 = <&pinctrl_sai1a>; sai1b_port: port@0 { reg = <0>; sai1b_port: port { cpu_endpoint: endpoint { remote-endpoint = <&codec_endpoint>; audio-graph-card,format = "i2s"; audio-graph-card,bitclock-master = <&codec_endpoint>; audio-graph-card,frame-master = <&codec_endpoint>; }; format = "i2s"; }; }; }; Loading Documentation/devicetree/bindings/sound/st,stm32-spdifrx.txt 0 → 100644 +56 −0 Original line number Diff line number Diff line STMicroelectronics STM32 S/PDIF receiver (SPDIFRX). The SPDIFRX peripheral, is designed to receive an S/PDIF flow compliant with IEC-60958 and IEC-61937. Required properties: - compatible: should be "st,stm32h7-spdifrx" - reg: cpu DAI IP base address and size - clocks: must contain an entry for kclk (used as S/PDIF signal reference) - clock-names: must contain "kclk" - interrupts: cpu DAI interrupt line - dmas: DMA specifiers for audio data DMA and iec control flow DMA See STM32 DMA bindings, Documentation/devicetree/bindings/dma/stm32-dma.txt - dma-names: two dmas have to be defined, "rx" and "rx-ctrl" Optional properties: - resets: Reference to a reset controller asserting the SPDIFRX The device node should contain one 'port' child node with one child 'endpoint' node, according to the bindings defined in Documentation/devicetree/bindings/ graph.txt. Example: spdifrx: spdifrx@40004000 { compatible = "st,stm32h7-spdifrx"; reg = <0x40004000 0x400>; clocks = <&rcc SPDIFRX_CK>; clock-names = "kclk"; interrupts = <97>; dmas = <&dmamux1 2 93 0x400 0x0>, <&dmamux1 3 94 0x400 0x0>; dma-names = "rx", "rx-ctrl"; pinctrl-0 = <&spdifrx_pins>; pinctrl-names = "default"; spdifrx_port: port { cpu_endpoint: endpoint { remote-endpoint = <&codec_endpoint>; }; }; }; spdif_in: spdif-in { compatible = "linux,spdif-dir"; codec_port: port { codec_endpoint: endpoint { remote-endpoint = <&cpu_endpoint>; }; }; }; soundcard { compatible = "audio-graph-card"; dais = <&spdifrx_port>; }; Documentation/devicetree/bindings/sound/sun4i-codec.txt +7 −4 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ Required properties: - "allwinner,sun7i-a20-codec" - "allwinner,sun8i-a23-codec" - "allwinner,sun8i-h3-codec" - "allwinner,sun8i-v3s-codec" - reg: must contain the registers location and length - interrupts: must contain the codec interrupt - dmas: DMA channels for tx and rx dma. See the DMA client binding, Loading @@ -25,6 +26,7 @@ Required properties for the following compatibles: - "allwinner,sun6i-a31-codec" - "allwinner,sun8i-a23-codec" - "allwinner,sun8i-h3-codec" - "allwinner,sun8i-v3s-codec" - resets: phandle to the reset control for this device - allwinner,audio-routing: A list of the connections between audio components. Each entry is a pair of strings, the first being the Loading @@ -34,15 +36,15 @@ Required properties for the following compatibles: Audio pins on the SoC: "HP" "HPCOM" "LINEIN" "LINEOUT" (not on sun8i-a23) "LINEIN" (not on sun8i-v3s) "LINEOUT" (not on sun8i-a23 or sun8i-v3s) "MIC1" "MIC2" "MIC2" (not on sun8i-v3s) "MIC3" (sun6i-a31 only) Microphone biases from the SoC: "HBIAS" "MBIAS" "MBIAS" (not on sun8i-v3s) Board connectors: "Headphone" Loading @@ -55,6 +57,7 @@ Required properties for the following compatibles: Required properties for the following compatibles: - "allwinner,sun8i-a23-codec" - "allwinner,sun8i-h3-codec" - "allwinner,sun8i-v3s-codec" - allwinner,codec-analog-controls: A phandle to the codec analog controls block in the PRCM. Loading Documentation/devicetree/bindings/sound/sun8i-codec-analog.txt +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ Required properties: - compatible: must be one of the following compatibles: - "allwinner,sun8i-a23-codec-analog" - "allwinner,sun8i-h3-codec-analog" - "allwinner,sun8i-v3s-codec-analog" Required properties if not a sub-node of the PRCM node: - reg: must contain the registers location and length Loading Loading
Documentation/devicetree/bindings/sound/st,stm32-i2s.txt 0 → 100644 +62 −0 Original line number Diff line number Diff line STMicroelectronics STM32 SPI/I2S Controller The SPI/I2S block supports I2S/PCM protocols when configured on I2S mode. Only some SPI instances support I2S. Required properties: - compatible: Must be "st,stm32h7-i2s" - reg: Offset and length of the device's register set. - interrupts: Must contain the interrupt line id. - clocks: Must contain phandle and clock specifier pairs for each entry in clock-names. - clock-names: Must contain "i2sclk", "pclk", "x8k" and "x11k". "i2sclk": clock which feeds the internal clock generator "pclk": clock which feeds the peripheral bus interface "x8k": I2S parent clock for sampling rates multiple of 8kHz. "x11k": I2S parent clock for sampling rates multiple of 11.025kHz. - dmas: DMA specifiers for tx and rx dma. See Documentation/devicetree/bindings/dma/stm32-dma.txt. - dma-names: Identifier for each DMA request line. Must be "tx" and "rx". - pinctrl-names: should contain only value "default" - pinctrl-0: see Documentation/devicetree/bindings/pinctrl/pinctrl-stm32.txt Optional properties: - resets: Reference to a reset controller asserting the reset controller The device node should contain one 'port' child node with one child 'endpoint' node, according to the bindings defined in Documentation/devicetree/bindings/ graph.txt. Example: sound_card { compatible = "audio-graph-card"; dais = <&i2s2_port>; }; i2s2: audio-controller@40003800 { compatible = "st,stm32h7-i2s"; reg = <0x40003800 0x400>; interrupts = <36>; clocks = <&rcc PCLK1>, <&rcc SPI2_CK>, <&rcc PLL1_Q>, <&rcc PLL2_P>; clock-names = "pclk", "i2sclk", "x8k", "x11k"; dmas = <&dmamux2 2 39 0x400 0x1>, <&dmamux2 3 40 0x400 0x1>; dma-names = "rx", "tx"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2s2>; i2s2_port: port@0 { cpu_endpoint: endpoint { remote-endpoint = <&codec_endpoint>; format = "i2s"; }; }; }; audio-codec { codec_port: port@0 { codec_endpoint: endpoint { remote-endpoint = <&cpu_endpoint>; }; }; };
Documentation/devicetree/bindings/sound/st,stm32-sai.txt +18 −23 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ The SAI contains two independent audio sub-blocks. Each sub-block has its own clock generator and I/O lines controller. Required properties: - compatible: Should be "st,stm32f4-sai" - compatible: Should be "st,stm32f4-sai" or "st,stm32h7-sai" - reg: Base address and size of SAI common register set. - clocks: Must contain phandle and clock specifier pairs for each entry in clock-names. Loading Loading @@ -36,6 +36,10 @@ SAI subnodes required properties: - pinctrl-names: should contain only value "default" - pinctrl-0: see Documentation/devicetree/bindings/pinctrl/pinctrl-stm32.txt The device node should contain one 'port' child node with one child 'endpoint' node, according to the bindings defined in Documentation/devicetree/bindings/ graph.txt. Example: sound_card { compatible = "audio-graph-card"; Loading @@ -43,38 +47,29 @@ sound_card { }; sai1: sai1@40015800 { compatible = "st,stm32f4-sai"; compatible = "st,stm32h7-sai"; #address-cells = <1>; #size-cells = <1>; ranges; ranges = <0 0x40015800 0x400>; reg = <0x40015800 0x4>; clocks = <&rcc 1 CLK_SAIQ_PDIV>, <&rcc 1 CLK_I2SQ_PDIV>; clocks = <&rcc PLL1_Q>, <&rcc PLL2_P>; clock-names = "x8k", "x11k"; interrupts = <87>; sai1b: audio-controller@40015824 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-b"; reg = <0x40015824 0x1C>; clocks = <&rcc 1 CLK_SAI2>; sai1a: audio-controller@40015804 { compatible = "st,stm32-sai-sub-a"; reg = <0x4 0x1C>; clocks = <&rcc SAI1_CK>; clock-names = "sai_ck"; dmas = <&dma2 5 0 0x400 0x0>; dmas = <&dmamux1 1 87 0x400 0x0>; dma-names = "tx"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sai1b>; ports { #address-cells = <1>; #size-cells = <0>; pinctrl-0 = <&pinctrl_sai1a>; sai1b_port: port@0 { reg = <0>; sai1b_port: port { cpu_endpoint: endpoint { remote-endpoint = <&codec_endpoint>; audio-graph-card,format = "i2s"; audio-graph-card,bitclock-master = <&codec_endpoint>; audio-graph-card,frame-master = <&codec_endpoint>; }; format = "i2s"; }; }; }; Loading
Documentation/devicetree/bindings/sound/st,stm32-spdifrx.txt 0 → 100644 +56 −0 Original line number Diff line number Diff line STMicroelectronics STM32 S/PDIF receiver (SPDIFRX). The SPDIFRX peripheral, is designed to receive an S/PDIF flow compliant with IEC-60958 and IEC-61937. Required properties: - compatible: should be "st,stm32h7-spdifrx" - reg: cpu DAI IP base address and size - clocks: must contain an entry for kclk (used as S/PDIF signal reference) - clock-names: must contain "kclk" - interrupts: cpu DAI interrupt line - dmas: DMA specifiers for audio data DMA and iec control flow DMA See STM32 DMA bindings, Documentation/devicetree/bindings/dma/stm32-dma.txt - dma-names: two dmas have to be defined, "rx" and "rx-ctrl" Optional properties: - resets: Reference to a reset controller asserting the SPDIFRX The device node should contain one 'port' child node with one child 'endpoint' node, according to the bindings defined in Documentation/devicetree/bindings/ graph.txt. Example: spdifrx: spdifrx@40004000 { compatible = "st,stm32h7-spdifrx"; reg = <0x40004000 0x400>; clocks = <&rcc SPDIFRX_CK>; clock-names = "kclk"; interrupts = <97>; dmas = <&dmamux1 2 93 0x400 0x0>, <&dmamux1 3 94 0x400 0x0>; dma-names = "rx", "rx-ctrl"; pinctrl-0 = <&spdifrx_pins>; pinctrl-names = "default"; spdifrx_port: port { cpu_endpoint: endpoint { remote-endpoint = <&codec_endpoint>; }; }; }; spdif_in: spdif-in { compatible = "linux,spdif-dir"; codec_port: port { codec_endpoint: endpoint { remote-endpoint = <&cpu_endpoint>; }; }; }; soundcard { compatible = "audio-graph-card"; dais = <&spdifrx_port>; };
Documentation/devicetree/bindings/sound/sun4i-codec.txt +7 −4 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ Required properties: - "allwinner,sun7i-a20-codec" - "allwinner,sun8i-a23-codec" - "allwinner,sun8i-h3-codec" - "allwinner,sun8i-v3s-codec" - reg: must contain the registers location and length - interrupts: must contain the codec interrupt - dmas: DMA channels for tx and rx dma. See the DMA client binding, Loading @@ -25,6 +26,7 @@ Required properties for the following compatibles: - "allwinner,sun6i-a31-codec" - "allwinner,sun8i-a23-codec" - "allwinner,sun8i-h3-codec" - "allwinner,sun8i-v3s-codec" - resets: phandle to the reset control for this device - allwinner,audio-routing: A list of the connections between audio components. Each entry is a pair of strings, the first being the Loading @@ -34,15 +36,15 @@ Required properties for the following compatibles: Audio pins on the SoC: "HP" "HPCOM" "LINEIN" "LINEOUT" (not on sun8i-a23) "LINEIN" (not on sun8i-v3s) "LINEOUT" (not on sun8i-a23 or sun8i-v3s) "MIC1" "MIC2" "MIC2" (not on sun8i-v3s) "MIC3" (sun6i-a31 only) Microphone biases from the SoC: "HBIAS" "MBIAS" "MBIAS" (not on sun8i-v3s) Board connectors: "Headphone" Loading @@ -55,6 +57,7 @@ Required properties for the following compatibles: Required properties for the following compatibles: - "allwinner,sun8i-a23-codec" - "allwinner,sun8i-h3-codec" - "allwinner,sun8i-v3s-codec" - allwinner,codec-analog-controls: A phandle to the codec analog controls block in the PRCM. Loading
Documentation/devicetree/bindings/sound/sun8i-codec-analog.txt +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ Required properties: - compatible: must be one of the following compatibles: - "allwinner,sun8i-a23-codec-analog" - "allwinner,sun8i-h3-codec-analog" - "allwinner,sun8i-v3s-codec-analog" Required properties if not a sub-node of the PRCM node: - reg: must contain the registers location and length Loading