Hi,
Changes since v1:
1. Patch 1: Specify Tesla FSD interrupts.
2. New patch 4 for Tesla FSD.
3. Add review tags.
Merging/dependencies
====================
The dt-bindings (patch 1) can go via timer tree and I will take later DTS
patches via Samsung Soc.
Best regards,
Krzysztof
Krzysztof Kozlowski (4):
dt-bindings: timer: exynos4210-mct: describe known hardware and its
interrupts
ARM: dts: exynos: add a specific compatible to MCT
arm64: dts: exynos: add a specific compatible to MCT
arm64: dts: tesla: add a specific compatible to MCT on FSD
.../timer/samsung,exynos4210-mct.yaml | 67 ++++++++++++++++++-
arch/arm/boot/dts/exynos3250.dtsi | 3 +-
arch/arm/boot/dts/exynos5250.dtsi | 3 +-
arch/arm/boot/dts/exynos5260.dtsi | 3 +-
arch/arm/boot/dts/exynos54xx.dtsi | 3 +-
arch/arm64/boot/dts/exynos/exynos5433.dtsi | 3 +-
arch/arm64/boot/dts/exynos/exynos850.dtsi | 3 +-
arch/arm64/boot/dts/tesla/fsd.dtsi | 2 +-
8 files changed, 77 insertions(+), 10 deletions(-)
--
2.32.0
One compatible is used for the Multi-Core Timer on Tesla FSD SoC, which
is correct but not specific enough. The MCT blocks have different
number of interrupts, so add a second specific compatible to Tesla FSD.
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
arch/arm64/boot/dts/tesla/fsd.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/tesla/fsd.dtsi b/arch/arm64/boot/dts/tesla/fsd.dtsi
index 9a652abcbcac..10c217a57a7d 100644
--- a/arch/arm64/boot/dts/tesla/fsd.dtsi
+++ b/arch/arm64/boot/dts/tesla/fsd.dtsi
@@ -727,7 +727,7 @@ spi_2: spi@14160000 {
};
timer@10040000 {
- compatible = "samsung,exynos4210-mct";
+ compatible = "tesla,fsd-mct", "samsung,exynos4210-mct";
reg = <0x0 0x10040000 0x0 0x800>;
interrupts = <GIC_SPI 455 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>,
--
2.32.0
One compatible is used for the Multi-Core Timer on most of the Samsung
Exynos SoCs, which is correct but not specific enough. These MCT blocks
have different number of interrupts, so add a second specific
compatible to Exynos3250 and all Exynos5 SoCs.
Signed-off-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Alim Akhtar <[email protected]>
---
arch/arm/boot/dts/exynos3250.dtsi | 3 ++-
arch/arm/boot/dts/exynos5250.dtsi | 3 ++-
arch/arm/boot/dts/exynos5260.dtsi | 3 ++-
arch/arm/boot/dts/exynos54xx.dtsi | 3 ++-
4 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/arch/arm/boot/dts/exynos3250.dtsi b/arch/arm/boot/dts/exynos3250.dtsi
index ae644315855d..41bb421e67c2 100644
--- a/arch/arm/boot/dts/exynos3250.dtsi
+++ b/arch/arm/boot/dts/exynos3250.dtsi
@@ -269,7 +269,8 @@ gic: interrupt-controller@10481000 {
};
timer@10050000 {
- compatible = "samsung,exynos4210-mct";
+ compatible = "samsung,exynos3250-mct",
+ "samsung,exynos4210-mct";
reg = <0x10050000 0x800>;
interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>,
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi
index 5baaa7eb71a4..63d1dcf2c55c 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -245,7 +245,8 @@ clock_audss: audss-clock-controller@3810000 {
};
timer@101c0000 {
- compatible = "samsung,exynos4210-mct";
+ compatible = "samsung,exynos5250-mct",
+ "samsung,exynos4210-mct";
reg = <0x101C0000 0x800>;
clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MCT>;
clock-names = "fin_pll", "mct";
diff --git a/arch/arm/boot/dts/exynos5260.dtsi b/arch/arm/boot/dts/exynos5260.dtsi
index 56271e7c4587..ff1ee409eff3 100644
--- a/arch/arm/boot/dts/exynos5260.dtsi
+++ b/arch/arm/boot/dts/exynos5260.dtsi
@@ -333,7 +333,8 @@ chipid: chipid@10000000 {
};
mct: timer@100b0000 {
- compatible = "samsung,exynos4210-mct";
+ compatible = "samsung,exynos5260-mct",
+ "samsung,exynos4210-mct";
reg = <0x100B0000 0x1000>;
clocks = <&fin_pll>, <&clock_peri PERI_CLK_MCT>;
clock-names = "fin_pll", "mct";
diff --git a/arch/arm/boot/dts/exynos54xx.dtsi b/arch/arm/boot/dts/exynos54xx.dtsi
index 2ddb7a5f12b3..3ec43761d8b9 100644
--- a/arch/arm/boot/dts/exynos54xx.dtsi
+++ b/arch/arm/boot/dts/exynos54xx.dtsi
@@ -74,7 +74,8 @@ smp-sram@53000 {
};
mct: timer@101c0000 {
- compatible = "samsung,exynos4210-mct";
+ compatible = "samsung,exynos5420-mct",
+ "samsung,exynos4210-mct";
reg = <0x101c0000 0xb00>;
interrupts-extended = <&combiner 23 3>,
<&combiner 23 4>,
--
2.32.0
Most of the Samsung Exynos SoCs use almost the same Multi-Core Timer
block, so only two compatibles were used so far (for Exynos4210 and
Exynos4412 flavors) with Exynos4210-one being used in most of the SoCs.
However the Exynos4210 flavor actually differs by number of interrupts.
Add new compatibles, maintaining backward compatibility with Exynos4210,
and constraints for number of interrupts. This allows to exactly match
the Exynos MCT hardware.
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
.../timer/samsung,exynos4210-mct.yaml | 67 ++++++++++++++++++-
1 file changed, 64 insertions(+), 3 deletions(-)
diff --git a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.yaml b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.yaml
index f11cbc7ccc14..1584944c7ac4 100644
--- a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.yaml
+++ b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.yaml
@@ -19,9 +19,20 @@ description: |+
properties:
compatible:
- enum:
- - samsung,exynos4210-mct
- - samsung,exynos4412-mct
+ oneOf:
+ - enum:
+ - samsung,exynos4210-mct
+ - samsung,exynos4412-mct
+ - items:
+ - enum:
+ - samsung,exynos3250-mct
+ - samsung,exynos5250-mct
+ - samsung,exynos5260-mct
+ - samsung,exynos5420-mct
+ - samsung,exynos5433-mct
+ - samsung,exynos850-mct
+ - tesla,fsd-mct
+ - const: samsung,exynos4210-mct
clocks:
minItems: 2
@@ -63,6 +74,56 @@ required:
- interrupts
- reg
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: samsung,exynos3250-mct
+ then:
+ properties:
+ interrupts:
+ minItems: 8
+ maxItems: 8
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: samsung,exynos5250-mct
+ then:
+ properties:
+ interrupts:
+ minItems: 6
+ maxItems: 6
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - samsung,exynos5260-mct
+ - samsung,exynos5420-mct
+ - samsung,exynos5433-mct
+ - samsung,exynos850-mct
+ then:
+ properties:
+ interrupts:
+ minItems: 12
+ maxItems: 12
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - tesla,fsd-mct
+ then:
+ properties:
+ interrupts:
+ minItems: 16
+ maxItems: 16
+
additionalProperties: false
examples:
--
2.32.0
One compatible is used for the Multi-Core Timer on most of the Samsung
Exynos SoCs, which is correct but not specific enough. These MCT blocks
have different number of interrupts, so add a second specific
compatible to Exynos5433 and Exynos850.
Signed-off-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Alim Akhtar <[email protected]>
---
arch/arm64/boot/dts/exynos/exynos5433.dtsi | 3 ++-
arch/arm64/boot/dts/exynos/exynos850.dtsi | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/exynos/exynos5433.dtsi b/arch/arm64/boot/dts/exynos/exynos5433.dtsi
index 661567d2dd7a..017ccc2f4650 100644
--- a/arch/arm64/boot/dts/exynos/exynos5433.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynos5433.dtsi
@@ -806,7 +806,8 @@ tmu_isp: tmu@1007c000 {
};
timer@101c0000 {
- compatible = "samsung,exynos4210-mct";
+ compatible = "samsung,exynos5433-mct",
+ "samsung,exynos4210-mct";
reg = <0x101c0000 0x800>;
interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
diff --git a/arch/arm64/boot/dts/exynos/exynos850.dtsi b/arch/arm64/boot/dts/exynos/exynos850.dtsi
index d1700e96fee2..12f7ddc6fd0a 100644
--- a/arch/arm64/boot/dts/exynos/exynos850.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynos850.dtsi
@@ -181,7 +181,8 @@ chipid@10000000 {
};
timer@10040000 {
- compatible = "samsung,exynos4210-mct";
+ compatible = "samsung,exynos850-mct",
+ "samsung,exynos4210-mct";
reg = <0x10040000 0x800>;
interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>,
--
2.32.0
>-----Original Message-----
>From: Krzysztof Kozlowski [mailto:[email protected]]
>Sent: Friday, March 4, 2022 5:54 PM
>To: Daniel Lezcano <[email protected]>; Thomas Gleixner
><[email protected]>; Rob Herring <[email protected]>; Krzysztof
>Kozlowski <[email protected]>; Alim Akhtar
><[email protected]>; [email protected];
>[email protected]; [email protected]; linux-
>[email protected]
>Subject: [PATCH v2 1/4] dt-bindings: timer: exynos4210-mct: describe known
>hardware and its interrupts
>
>Most of the Samsung Exynos SoCs use almost the same Multi-Core Timer
>block, so only two compatibles were used so far (for Exynos4210 and
>Exynos4412 flavors) with Exynos4210-one being used in most of the SoCs.
>However the Exynos4210 flavor actually differs by number of interrupts.
>
>Add new compatibles, maintaining backward compatibility with Exynos4210,
>and constraints for number of interrupts. This allows to exactly match the
>Exynos MCT hardware.
>
>Signed-off-by: Krzysztof Kozlowski <[email protected]>
>---
Reviewed-by: Alim Akhtar <[email protected]>
> .../timer/samsung,exynos4210-mct.yaml | 67 ++++++++++++++++++-
> 1 file changed, 64 insertions(+), 3 deletions(-)
>
>diff --git a/Documentation/devicetree/bindings/timer/samsung,exynos4210-
>mct.yaml
>b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.yaml
>index f11cbc7ccc14..1584944c7ac4 100644
>--- a/Documentation/devicetree/bindings/timer/samsung,exynos4210-
>mct.yaml
>+++ b/Documentation/devicetree/bindings/timer/samsung,exynos4210-
>mct.yam
>+++ l
>@@ -19,9 +19,20 @@ description: |+
>
> properties:
> compatible:
>- enum:
>- - samsung,exynos4210-mct
>- - samsung,exynos4412-mct
>+ oneOf:
>+ - enum:
>+ - samsung,exynos4210-mct
>+ - samsung,exynos4412-mct
>+ - items:
>+ - enum:
>+ - samsung,exynos3250-mct
>+ - samsung,exynos5250-mct
>+ - samsung,exynos5260-mct
>+ - samsung,exynos5420-mct
>+ - samsung,exynos5433-mct
>+ - samsung,exynos850-mct
>+ - tesla,fsd-mct
>+ - const: samsung,exynos4210-mct
>
> clocks:
> minItems: 2
>@@ -63,6 +74,56 @@ required:
> - interrupts
> - reg
>
>+allOf:
>+ - if:
>+ properties:
>+ compatible:
>+ contains:
>+ const: samsung,exynos3250-mct
>+ then:
>+ properties:
>+ interrupts:
>+ minItems: 8
>+ maxItems: 8
>+
>+ - if:
>+ properties:
>+ compatible:
>+ contains:
>+ const: samsung,exynos5250-mct
>+ then:
>+ properties:
>+ interrupts:
>+ minItems: 6
>+ maxItems: 6
>+
>+ - if:
>+ properties:
>+ compatible:
>+ contains:
>+ enum:
>+ - samsung,exynos5260-mct
>+ - samsung,exynos5420-mct
>+ - samsung,exynos5433-mct
>+ - samsung,exynos850-mct
>+ then:
>+ properties:
>+ interrupts:
>+ minItems: 12
>+ maxItems: 12
>+
>+ - if:
>+ properties:
>+ compatible:
>+ contains:
>+ enum:
>+ - tesla,fsd-mct
>+ then:
>+ properties:
>+ interrupts:
>+ minItems: 16
>+ maxItems: 16
>+
> additionalProperties: false
>
> examples:
>--
>2.32.0
>-----Original Message-----
>From: Krzysztof Kozlowski [mailto:[email protected]]
>Sent: Friday, March 4, 2022 5:54 PM
>To: Daniel Lezcano <[email protected]>; Thomas Gleixner
><[email protected]>; Rob Herring <[email protected]>; Krzysztof
>Kozlowski <[email protected]>; Alim Akhtar
><[email protected]>; [email protected];
>[email protected]; [email protected]; linux-
>[email protected]
>Subject: [PATCH v2 4/4] arm64: dts: tesla: add a specific compatible to MCT
on
>FSD
>
>One compatible is used for the Multi-Core Timer on Tesla FSD SoC, which is
>correct but not specific enough. The MCT blocks have different number of
>interrupts, so add a second specific compatible to Tesla FSD.
>
>Signed-off-by: Krzysztof Kozlowski <[email protected]>
>---
Reviewed-by: Alim Akhtar <[email protected]>
> arch/arm64/boot/dts/tesla/fsd.dtsi | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/arch/arm64/boot/dts/tesla/fsd.dtsi
>b/arch/arm64/boot/dts/tesla/fsd.dtsi
>index 9a652abcbcac..10c217a57a7d 100644
>--- a/arch/arm64/boot/dts/tesla/fsd.dtsi
>+++ b/arch/arm64/boot/dts/tesla/fsd.dtsi
>@@ -727,7 +727,7 @@ spi_2: spi@14160000 {
> };
>
> timer@10040000 {
>- compatible = "samsung,exynos4210-mct";
>+ compatible = "tesla,fsd-mct", "samsung,exynos4210-
>mct";
> reg = <0x0 0x10040000 0x0 0x800>;
> interrupts = <GIC_SPI 455 IRQ_TYPE_LEVEL_HIGH>,
> <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>,
>--
>2.32.0
On Fri, 04 Mar 2022 13:24:21 +0100, Krzysztof Kozlowski wrote:
> Most of the Samsung Exynos SoCs use almost the same Multi-Core Timer
> block, so only two compatibles were used so far (for Exynos4210 and
> Exynos4412 flavors) with Exynos4210-one being used in most of the SoCs.
> However the Exynos4210 flavor actually differs by number of interrupts.
>
> Add new compatibles, maintaining backward compatibility with Exynos4210,
> and constraints for number of interrupts. This allows to exactly match
> the Exynos MCT hardware.
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
> ---
> .../timer/samsung,exynos4210-mct.yaml | 67 ++++++++++++++++++-
> 1 file changed, 64 insertions(+), 3 deletions(-)
>
Reviewed-by: Rob Herring <[email protected]>
On Fri, 4 Mar 2022 13:24:24 +0100, Krzysztof Kozlowski wrote:
> One compatible is used for the Multi-Core Timer on Tesla FSD SoC, which
> is correct but not specific enough. The MCT blocks have different
> number of interrupts, so add a second specific compatible to Tesla FSD.
>
>
Applied, thanks!
[4/4] arm64: dts: tesla: add a specific compatible to MCT on FSD
commit: 22cbcb8f4a17c194d208f686fc3ea37fc860bd71
Best regards,
--
Krzysztof Kozlowski <[email protected]>
On Fri, 4 Mar 2022 13:24:23 +0100, Krzysztof Kozlowski wrote:
> One compatible is used for the Multi-Core Timer on most of the Samsung
> Exynos SoCs, which is correct but not specific enough. These MCT blocks
> have different number of interrupts, so add a second specific
> compatible to Exynos5433 and Exynos850.
>
>
Applied, thanks!
[3/4] arm64: dts: exynos: add a specific compatible to MCT
commit: 2616922241706ec5c2c5ae95d5ac1d3120575ded
Best regards,
--
Krzysztof Kozlowski <[email protected]>
On Fri, 4 Mar 2022 13:24:22 +0100, Krzysztof Kozlowski wrote:
> One compatible is used for the Multi-Core Timer on most of the Samsung
> Exynos SoCs, which is correct but not specific enough. These MCT blocks
> have different number of interrupts, so add a second specific
> compatible to Exynos3250 and all Exynos5 SoCs.
>
>
Applied, thanks!
[2/4] ARM: dts: exynos: add a specific compatible to MCT
commit: cca50a59f60a6b2b5aa2c90d8c173da89f567ee3
Best regards,
--
Krzysztof Kozlowski <[email protected]>