Re: [PATCH] ARM: dts: stm32: Add timer interrupts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Dec 15, 2021 at 9:37 AM Uwe Kleine-König
<u.kleine-koenig@xxxxxxxxxxxxxx> wrote:
>
> The timer units in the stm32mp1 CPUs have interrupts, depending on the
> timer flavour either one "global" or four dedicated ones.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
> ---
>  .../bindings/mfd/st,stm32-timers.yaml         | 13 +++++++
>  arch/arm/boot/dts/stm32mp151.dtsi             | 34 +++++++++++++++++++
>  2 files changed, 47 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml b/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
> index 10b330d42901..5e4214d1613b 100644
> --- a/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
> +++ b/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
> @@ -46,6 +46,19 @@ properties:
>      minItems: 1
>      maxItems: 7
>
> +  interrupts:
> +    maxItems: 4

Please test this against your dts change. It will fail.

You need a 'minItems: 1' otherwise 4 interrupts are always required.
Or more precisely, you can do:

oneOf:
  - maxItems: 1
  - maxItems: 4

> +
> +  interrupt-names:
> +    anyOf:

oneOf

> +      - items:
> +          - const: global
> +      - items:
> +          - const: brk
> +          - const: up
> +          - const: trg-com
> +          - const: cc
> +
>    "#address-cells":
>      const: 1
>
> diff --git a/arch/arm/boot/dts/stm32mp151.dtsi b/arch/arm/boot/dts/stm32mp151.dtsi
> index 1cfc2f011e70..dab3972fcffd 100644
> --- a/arch/arm/boot/dts/stm32mp151.dtsi
> +++ b/arch/arm/boot/dts/stm32mp151.dtsi
> @@ -127,6 +127,8 @@ timers2: timer@40000000 {
>                         #size-cells = <0>;
>                         compatible = "st,stm32-timers";
>                         reg = <0x40000000 0x400>;
> +                       interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
> +                       interrupt-names = "global";
>                         clocks = <&rcc TIM2_K>;
>                         clock-names = "int";
>                         dmas = <&dmamux1 18 0x400 0x1>,
> @@ -160,6 +162,8 @@ timers3: timer@40001000 {
>                         #size-cells = <0>;
>                         compatible = "st,stm32-timers";
>                         reg = <0x40001000 0x400>;
> +                       interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
> +                       interrupt-names = "global";
>                         clocks = <&rcc TIM3_K>;
>                         clock-names = "int";
>                         dmas = <&dmamux1 23 0x400 0x1>,
> @@ -194,6 +198,8 @@ timers4: timer@40002000 {
>                         #size-cells = <0>;
>                         compatible = "st,stm32-timers";
>                         reg = <0x40002000 0x400>;
> +                       interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
> +                       interrupt-names = "global";
>                         clocks = <&rcc TIM4_K>;
>                         clock-names = "int";
>                         dmas = <&dmamux1 29 0x400 0x1>,
> @@ -226,6 +232,8 @@ timers5: timer@40003000 {
>                         #size-cells = <0>;
>                         compatible = "st,stm32-timers";
>                         reg = <0x40003000 0x400>;
> +                       interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
> +                       interrupt-names = "global";
>                         clocks = <&rcc TIM5_K>;
>                         clock-names = "int";
>                         dmas = <&dmamux1 55 0x400 0x1>,
> @@ -260,6 +268,8 @@ timers6: timer@40004000 {
>                         #size-cells = <0>;
>                         compatible = "st,stm32-timers";
>                         reg = <0x40004000 0x400>;
> +                       interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
> +                       interrupt-names = "global";
>                         clocks = <&rcc TIM6_K>;
>                         clock-names = "int";
>                         dmas = <&dmamux1 69 0x400 0x1>;
> @@ -278,6 +288,8 @@ timers7: timer@40005000 {
>                         #size-cells = <0>;
>                         compatible = "st,stm32-timers";
>                         reg = <0x40005000 0x400>;
> +                       interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
> +                       interrupt-names = "global";
>                         clocks = <&rcc TIM7_K>;
>                         clock-names = "int";
>                         dmas = <&dmamux1 70 0x400 0x1>;
> @@ -296,6 +308,8 @@ timers12: timer@40006000 {
>                         #size-cells = <0>;
>                         compatible = "st,stm32-timers";
>                         reg = <0x40006000 0x400>;
> +                       interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
> +                       interrupt-names = "global";
>                         clocks = <&rcc TIM12_K>;
>                         clock-names = "int";
>                         status = "disabled";
> @@ -318,6 +332,8 @@ timers13: timer@40007000 {
>                         #size-cells = <0>;
>                         compatible = "st,stm32-timers";
>                         reg = <0x40007000 0x400>;
> +                       interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
> +                       interrupt-names = "global";
>                         clocks = <&rcc TIM13_K>;
>                         clock-names = "int";
>                         status = "disabled";
> @@ -340,6 +356,8 @@ timers14: timer@40008000 {
>                         #size-cells = <0>;
>                         compatible = "st,stm32-timers";
>                         reg = <0x40008000 0x400>;
> +                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
> +                       interrupt-names = "global";
>                         clocks = <&rcc TIM14_K>;
>                         clock-names = "int";
>                         status = "disabled";
> @@ -605,6 +623,11 @@ timers1: timer@44000000 {
>                         #size-cells = <0>;
>                         compatible = "st,stm32-timers";
>                         reg = <0x44000000 0x400>;
> +                       interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
> +                                    <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
> +                                    <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
> +                                    <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
> +                       interrupt-names = "brk", "up", "trg-com", "cc";
>                         clocks = <&rcc TIM1_K>;
>                         clock-names = "int";
>                         dmas = <&dmamux1 11 0x400 0x1>,
> @@ -641,6 +664,11 @@ timers8: timer@44001000 {
>                         #size-cells = <0>;
>                         compatible = "st,stm32-timers";
>                         reg = <0x44001000 0x400>;
> +                       interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
> +                                    <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
> +                                    <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
> +                                    <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
> +                       interrupt-names = "brk", "up", "trg-com", "cc";
>                         clocks = <&rcc TIM8_K>;
>                         clock-names = "int";
>                         dmas = <&dmamux1 47 0x400 0x1>,
> @@ -725,6 +753,8 @@ timers15: timer@44006000 {
>                         #size-cells = <0>;
>                         compatible = "st,stm32-timers";
>                         reg = <0x44006000 0x400>;
> +                       interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
> +                       interrupt-names = "global";
>                         clocks = <&rcc TIM15_K>;
>                         clock-names = "int";
>                         dmas = <&dmamux1 105 0x400 0x1>,
> @@ -752,6 +782,8 @@ timers16: timer@44007000 {
>                         #size-cells = <0>;
>                         compatible = "st,stm32-timers";
>                         reg = <0x44007000 0x400>;
> +                       interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
> +                       interrupt-names = "global";
>                         clocks = <&rcc TIM16_K>;
>                         clock-names = "int";
>                         dmas = <&dmamux1 109 0x400 0x1>,
> @@ -776,6 +808,8 @@ timers17: timer@44008000 {
>                         #size-cells = <0>;
>                         compatible = "st,stm32-timers";
>                         reg = <0x44008000 0x400>;
> +                       interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
> +                       interrupt-names = "global";
>                         clocks = <&rcc TIM17_K>;
>                         clock-names = "int";
>                         dmas = <&dmamux1 111 0x400 0x1>,
>
> base-commit: 0bafb8f3ebc84525d0ae0fcea22d12151b99312f
> --
> 2.33.0
>




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux