dts/arm/st/stm32f4: Add I2S support to DTS

Add I2S bus initial support to stm32f4 SOC family.
On stm32f4 the I2S shares same controller as SPI, so
the declarations have been adapted from SPI ones.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
This commit is contained in:
Armando Visconti 2018-10-01 13:43:26 +02:00 committed by Carles Cufí
commit ab10f417d8
7 changed files with 150 additions and 2 deletions

View file

@ -192,6 +192,15 @@
label = "SPI_1"; label = "SPI_1";
}; };
i2s1: i2s@40013000 {
compatible = "st,stm32-i2s";
reg = <0x40013000 0x400>;
clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00001000>;
interrupts = <35 5>;
status = "disabled";
label = "I2S_1";
};
usbotg_fs: usb@50000000 { usbotg_fs: usb@50000000 {
compatible = "st,stm32-otgfs"; compatible = "st,stm32-otgfs";
reg = <0x50000000 0x40000>; reg = <0x50000000 0x40000>;

View file

@ -29,5 +29,23 @@
status = "disabled"; status = "disabled";
label = "SPI_3"; label = "SPI_3";
}; };
i2s2: i2s@40003800 {
compatible = "st,stm32-i2s";
reg = <0x40003800 0x400>;
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00004000>;
interrupts = <36 5>;
status = "disabled";
label = "I2S_2";
};
i2s3: i2s@40003C00 {
compatible = "st,stm32-i2s";
reg = <0x40003C00 0x400>;
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00008000>;
interrupts = <51 5>;
status = "disabled";
label = "I2S_3";
};
}; };
}; };

View file

@ -27,5 +27,23 @@
status = "disabled"; status = "disabled";
label = "SPI_5"; label = "SPI_5";
}; };
i2s4: i2s@40013400 {
compatible = "st,stm32-i2s";
reg = <0x40013400 0x400>;
clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00002000>;
interrupts = <84 5>;
status = "disabled";
label = "I2S_4";
};
i2s5: i2s@40015000 {
compatible = "st,stm32-i2s";
reg = <0x40015000 0x400>;
clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00100000>;
interrupts = <85 5>;
status = "disabled";
label = "I2S_5";
};
}; };
}; };

View file

@ -58,7 +58,16 @@
label = "SPI_4"; label = "SPI_4";
}; };
/* spi5 is present on all STM32F429XX SoCs except i2s4: i2s@40013400 {
compatible = "st,stm32-i2s";
reg = <0x40013400 0x400>;
clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00002000>;
interrupts = <84 5>;
status = "disabled";
label = "I2S_4";
};
/* spi5/i2s5 is present on all STM32F429XX SoCs except
* STM32F429vX SoCs. Delete node in stm32f429vX.dtsi. * STM32F429vX SoCs. Delete node in stm32f429vX.dtsi.
*/ */
spi5: spi@40015000 { spi5: spi@40015000 {
@ -71,7 +80,16 @@
label = "SPI_5"; label = "SPI_5";
}; };
/* spi6 is present on all STM32F429XX SoCs except i2s5: i2s@40015000 {
compatible = "st,stm32-i2s";
reg = <0x40015000 0x400>;
clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00100000>;
interrupts = <85 5>;
status = "disabled";
label = "I2S_5";
};
/* spi6/i2s6 is present on all STM32F429XX SoCs except
* STM32F429vX SoCs. Delete node in stm32f429vX.dtsi. * STM32F429vX SoCs. Delete node in stm32f429vX.dtsi.
*/ */
spi6: spi@40015400 { spi6: spi@40015400 {
@ -83,5 +101,14 @@
status = "disabled"; status = "disabled";
label = "SPI_6"; label = "SPI_6";
}; };
i2s6: i2s@40015400 {
compatible = "st,stm32-i2s";
reg = <0x40015400 0x400>;
clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00200000>;
interrupts = <86 5>;
status = "disabled";
label = "I2S_6";
};
}; };
}; };

View file

@ -19,3 +19,7 @@
/delete-node/ &spi5; /delete-node/ &spi5;
/delete-node/ &spi6; /delete-node/ &spi6;
/delete-node/ &i2s5;
/delete-node/ &i2s6;

34
dts/bindings/i2s/i2s.yaml Normal file
View file

@ -0,0 +1,34 @@
#
# Copyright (c) 2018, STMicroelectronics
#
# SPDX-License-Identifier: Apache-2.0
#
---
title: I2S Base Structure
version: 0.1
description: >
This binding gives the base structures for all I2S devices
child:
bus: i2s
properties:
compatible:
type: string
category: required
description: compatible strings
generation: define
label:
type: string
category: required
description: Human readable string describing the device (used by Zephyr for API name)
generation: define
clocks:
type: array
category: optional
description: Clock gate information
generation: define
...

View file

@ -0,0 +1,38 @@
#
# Copyright (c) 2018, STMicroelectronics
#
# SPDX-License-Identifier: Apache-2.0
#
---
title: STM32 I2S
version: 0.1
description: >
This binding gives a base representation of the STM32 I2S controller
inherits:
!include i2s.yaml
properties:
compatible:
constraint: "st,stm32-i2s"
reg:
type: array
description: mmio register space
generation: define
category: required
interrupts:
type: array
category: required
description: required interrupts
generation: define
interrupt-names:
type: stringlist
category: optional
description: readable string describing the interrupts
generation: define
...