dts: add bindings and definitions for intel ssp

Add ssp (i2s) nodes for Intel ssp. Use them in intel_adsp15
and intel_adsp25.

Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
This commit is contained in:
Jaska Uimonen 2022-03-29 16:36:21 +03:00 committed by Anas Nashif
commit fa1eb1d774
3 changed files with 259 additions and 0 deletions

View file

@ -0,0 +1,25 @@
# Copyright (c) 2022 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
description: Intel SSP DAI controller
compatible: "intel,ssp-dai"
include: base.yaml
properties:
reg:
required: true
interrupts:
required: true
interrupt-parent:
required: true
dmas:
required: true
dma-names:
required: true

View file

@ -35,6 +35,24 @@
reg = <0xbe800000 DT_SIZE_K(128)>;
};
sysclk: system-clock {
compatible = "fixed-clock";
clock-frequency = <19200000>;
#clock-cells = <0>;
};
audioclk: audio-clock {
compatible = "fixed-clock";
clock-frequency = <24576000>;
#clock-cells = <0>;
};
pllclk: pll-clock {
compatible = "fixed-clock";
clock-frequency = <96000000>;
#clock-cells = <0>;
};
soc {
shim: shim@1000 {
compatible = "intel,cavs-shim";
@ -107,5 +125,101 @@
interrupts = <8 0 0>;
interrupt-parent = <&cavs0>;
};
ssp0: ssp@8000 {
compatible = "intel,ssp-dai";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x00008000 0x200
0x00008E00 0x008>;
interrupts = <0x01 0 0>;
interrupt-parent = <&cavs3>;
dmas = <&lpgpdma0 2
&lpgpdma0 3>;
dma-names = "tx", "rx";
label = "SSP_0";
status = "okay";
};
ssp1: ssp@8200 {
compatible = "intel,ssp-dai";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x00008200 0x200
0x00008E00 0x008>;
interrupts = <0x01 0 0>;
interrupt-parent = <&cavs3>;
dmas = <&lpgpdma0 4
&lpgpdma0 5>;
dma-names = "tx", "rx";
label = "SSP_1";
status = "okay";
};
ssp2: ssp@8400 {
compatible = "intel,ssp-dai";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x00008400 0x200
0x00008E00 0x008>;
interrupts = <0x02 0 0>;
interrupt-parent = <&cavs3>;
dmas = <&lpgpdma0 6
&lpgpdma0 7>;
dma-names = "tx", "rx";
label = "SSP_2";
status = "okay";
};
ssp3: ssp@8600 {
compatible = "intel,ssp-dai";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x00008600 0x200
0x00008E00 0x008>;
interrupts = <0x03 0 0>;
interrupt-parent = <&cavs3>;
dmas = <&lpgpdma0 8
&lpgpdma0 9>;
dma-names = "tx", "rx";
label = "SSP_3";
status = "okay";
};
ssp4: ssp@8800 {
compatible = "intel,ssp-dai";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x00008800 0x200
0x00008E00 0x008>;
interrupts = <0x03 0 0>;
interrupt-parent = <&cavs3>;
dmas = <&lpgpdma0 10
&lpgpdma0 11>;
dma-names = "tx", "rx";
label = "SSP_4";
status = "okay";
};
ssp5: ssp@8a00 {
compatible = "intel,ssp-dai";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x00008A00 0x200
0x00008E00 0x008>;
interrupts = <0x03 0 0>;
interrupt-parent = <&cavs3>;
dmas = <&lpgpdma0 12
&lpgpdma0 13>;
dma-names = "tx", "rx";
label = "SSP_5";
status = "okay";
};
};
};

View file

@ -49,6 +49,24 @@
reg = <0xbe800000 DT_SIZE_K(64)>;
};
sysclk: system-clock {
compatible = "fixed-clock";
clock-frequency = <38400000>;
#clock-cells = <0>;
};
audioclk: audio-clock {
compatible = "fixed-clock";
clock-frequency = <24576000>;
#clock-cells = <0>;
};
pllclk: pll-clock {
compatible = "fixed-clock";
clock-frequency = <96000000>;
#clock-cells = <0>;
};
soc {
shim: shim@71f00 {
compatible = "intel,cavs-shim";
@ -60,6 +78,11 @@
reg = <0x71a00 0x20>;
};
sspbase: ssp_base@71c00 {
compatible = "intel,cavs-sspbase";
reg = <0x71C00 0x100>;
};
l2lm: l2lm@71d00 {
compatible = "intel,cavs-l2lm";
reg = <0x71d00 0x20>;
@ -131,5 +154,102 @@
compatible = "intel,adsp-tlb";
reg = <0x3000 0x1000>;
};
ssp0: ssp@77000 {
compatible = "intel,ssp-dai";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x00077000 0x200
0x00078C00 0x008>;
interrupts = <0x01 0 0>;
interrupt-parent = <&cavs3>;
dmas = <&lpgpdma0 2
&lpgpdma0 3>;
dma-names = "tx", "rx";
label = "SSP_0";
status = "okay";
};
ssp1: ssp@77200 {
compatible = "intel,ssp-dai";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x00077200 0x200
0x00078C00 0x008>;
interrupts = <0x01 0 0>;
interrupt-parent = <&cavs3>;
dmas = <&lpgpdma0 4
&lpgpdma0 5>;
dma-names = "tx", "rx";
label = "SSP_1";
status = "okay";
};
ssp2: ssp@77400 {
compatible = "intel,ssp-dai";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x00077400 0x200
0x00078C00 0x008>;
interrupts = <0x02 0 0>;
interrupt-parent = <&cavs3>;
dmas = <&lpgpdma0 6
&lpgpdma0 7>;
dma-names = "tx", "rx";
label = "SSP_2";
status = "okay";
};
ssp3: ssp@77600 {
compatible = "intel,ssp-dai";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x00077600 0x200
0x00078C00 0x008>;
interrupts = <0x03 0 0>;
interrupt-parent = <&cavs3>;
dmas = <&lpgpdma0 8
&lpgpdma0 9>;
dma-names = "tx", "rx";
label = "SSP_3";
status = "okay";
};
ssp4: ssp@77800 {
compatible = "intel,ssp-dai";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x00077800 0x200
0x00078C00 0x008>;
interrupts = <0x03 0 0>;
interrupt-parent = <&cavs3>;
dmas = <&lpgpdma0 10
&lpgpdma0 11>;
dma-names = "tx", "rx";
label = "SSP_4";
status = "okay";
};
ssp5: ssp@77a00 {
compatible = "intel,ssp-dai";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x00077A00 0x200
0x00078C00 0x008>;
interrupts = <0x03 0 0>;
interrupt-parent = <&cavs3>;
dmas = <&lpgpdma0 12
&lpgpdma0 13>;
dma-names = "tx", "rx";
label = "SSP_5";
status = "okay";
};
};
};