2022-04-27 09:26:50

by Michael Walle

[permalink] [raw]
Subject: [PATCH v3 0/4] dt-bindings: convert freescale extirq and scfg schemas

The first two patches will be resend to the soc tree once the schema is
approved/picked up.

Please note, I'm still getting these weird "is too short" errors for
for interrupt-map entries, but it seems to work for you, so.. ;)

Michael Walle (4):
ARM: dts: ls1021a: reduce the interrupt-map-mask
arm64: dts: freescale: reduce the interrup-map-mask
dt-bindings: interrupt-controller: fsl,ls-extirq: convert to YAML
dt-bindings: fsl: convert fsl,layerscape-scfg to YAML

.../arm/freescale/fsl,layerscape-scfg.txt | 19 ---
.../interrupt-controller/fsl,ls-extirq.txt | 53 --------
.../interrupt-controller/fsl,ls-extirq.yaml | 118 ++++++++++++++++++
.../bindings/soc/fsl/fsl,layerscape-scfg.yaml | 58 +++++++++
arch/arm/boot/dts/ls1021a.dtsi | 2 +-
.../arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 2 +-
.../arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 2 +-
.../arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 2 +-
.../arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 2 +-
.../arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 2 +-
10 files changed, 182 insertions(+), 78 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-scfg.txt
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.yaml
create mode 100644 Documentation/devicetree/bindings/soc/fsl/fsl,layerscape-scfg.yaml

--
2.30.2


2022-04-27 10:29:10

by Michael Walle

[permalink] [raw]
Subject: [PATCH v3 1/4] ARM: dts: ls1021a: reduce the interrupt-map-mask

Reduce the interrupt-map-mask of the external interrupt controller to
7 to align with the devicetree schema.

Signed-off-by: Michael Walle <[email protected]>
---
arch/arm/boot/dts/ls1021a.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/ls1021a.dtsi b/arch/arm/boot/dts/ls1021a.dtsi
index 2e69d6eab4d1..5354104cae12 100644
--- a/arch/arm/boot/dts/ls1021a.dtsi
+++ b/arch/arm/boot/dts/ls1021a.dtsi
@@ -192,7 +192,7 @@ extirq: interrupt-controller@1ac {
<3 0 &gic GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
<4 0 &gic GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
<5 0 &gic GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-map-mask = <0xffffffff 0x0>;
+ interrupt-map-mask = <0x7 0x0>;
};
};

--
2.30.2

2022-04-27 10:46:12

by Michael Walle

[permalink] [raw]
Subject: [PATCH v3 3/4] dt-bindings: interrupt-controller: fsl,ls-extirq: convert to YAML

Convert the fsl,ls-extirq binding to the new YAML format.

In contrast to the original binding documentation, there are three
compatibles which are used in their corresponding device trees which
have a specific compatible and the (already documented) fallback
compatible:
- "fsl,ls1046a-extirq", "fsl,ls1043a-extirq"
- "fsl,ls2080a-extirq", "fsl,ls1088a-extirq"
- "fsl,lx2160a-extirq", "fsl,ls1088a-extirq"

Depending on the number of the number of the external IRQs which is
usually 12 except for the LS1021A where there are only 6, the
interrupt-map-mask was reduced from 0xffffffff to 0xf and 0x7
respectively and the number of interrupt-map entries have to
match.

Signed-off-by: Michael Walle <[email protected]>
---
changes since v2:
- drop $ref to interrupt-controller.yaml
- use a more strict interrupt-map-mask and make it conditional on SoC

changes since v1:
- new patch

.../interrupt-controller/fsl,ls-extirq.txt | 53 --------
.../interrupt-controller/fsl,ls-extirq.yaml | 118 ++++++++++++++++++
2 files changed, 118 insertions(+), 53 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.yaml

diff --git a/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.txt b/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.txt
deleted file mode 100644
index 4d47df1a5c91..000000000000
--- a/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-* Freescale Layerscape external IRQs
-
-Some Layerscape SOCs (LS1021A, LS1043A, LS1046A
-LS1088A, LS208xA, LX216xA) support inverting
-the polarity of certain external interrupt lines.
-
-The device node must be a child of the node representing the
-Supplemental Configuration Unit (SCFG).
-
-Required properties:
-- compatible: should be "fsl,<soc-name>-extirq", e.g. "fsl,ls1021a-extirq".
- "fsl,ls1043a-extirq": for LS1043A, LS1046A.
- "fsl,ls1088a-extirq": for LS1088A, LS208xA, LX216xA.
-- #interrupt-cells: Must be 2. The first element is the index of the
- external interrupt line. The second element is the trigger type.
-- #address-cells: Must be 0.
-- interrupt-controller: Identifies the node as an interrupt controller
-- reg: Specifies the Interrupt Polarity Control Register (INTPCR) in
- the SCFG or the External Interrupt Control Register (IRQCR) in
- the ISC.
-- interrupt-map: Specifies the mapping from external interrupts to GIC
- interrupts.
-- interrupt-map-mask: Must be <0xffffffff 0>.
-
-Example:
- scfg: scfg@1570000 {
- compatible = "fsl,ls1021a-scfg", "syscon";
- reg = <0x0 0x1570000 0x0 0x10000>;
- big-endian;
- #address-cells = <1>;
- #size-cells = <1>;
- ranges = <0x0 0x0 0x1570000 0x10000>;
-
- extirq: interrupt-controller@1ac {
- compatible = "fsl,ls1021a-extirq";
- #interrupt-cells = <2>;
- #address-cells = <0>;
- interrupt-controller;
- reg = <0x1ac 4>;
- interrupt-map =
- <0 0 &gic GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
- <1 0 &gic GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
- <2 0 &gic GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
- <3 0 &gic GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
- <4 0 &gic GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
- <5 0 &gic GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-map-mask = <0xffffffff 0x0>;
- };
- };
-
-
- interrupts-extended = <&gic GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
- <&extirq 1 IRQ_TYPE_LEVEL_LOW>;
diff --git a/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.yaml b/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.yaml
new file mode 100644
index 000000000000..887e565b9573
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.yaml
@@ -0,0 +1,118 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interrupt-controller/fsl,ls-extirq.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale Layerscape External Interrupt Controller
+
+maintainers:
+ - Shawn Guo <[email protected]>
+ - Li Yang <[email protected]>
+
+description: |
+ Some Layerscape SOCs (LS1021A, LS1043A, LS1046A LS1088A, LS208xA,
+ LX216xA) support inverting the polarity of certain external interrupt
+ lines.
+
+properties:
+ compatible:
+ oneOf:
+ - enum:
+ - fsl,ls1021a-extirq
+ - fsl,ls1043a-extirq
+ - fsl,ls1088a-extirq
+ - items:
+ - enum:
+ - fsl,ls1046a-extirq
+ - const: fsl,ls1043a-extirq
+ - items:
+ - enum:
+ - fsl,ls2080a-extirq
+ - fsl,lx2160a-extirq
+ - const: fsl,ls1088a-extirq
+
+ '#interrupt-cells':
+ const: 2
+
+ '#address-cells':
+ const: 0
+
+ interrupt-controller: true
+
+ reg:
+ maxItems: 1
+ description:
+ Specifies the Interrupt Polarity Control Register (INTPCR) in the
+ SCFG or the External Interrupt Control Register (IRQCR) in the ISC.
+
+ interrupt-map:
+ description: Specifies the mapping from external interrupts to GIC interrupts.
+
+ interrupt-map-mask: true
+
+required:
+ - compatible
+ - '#interrupt-cells'
+ - '#address-cells'
+ - interrupt-controller
+ - reg
+ - interrupt-map
+ - interrupt-map-mask
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - fsl,ls1021a-extirq
+ then:
+ properties:
+ interrupt-map:
+ minItems: 6
+ maxItems: 6
+ interrupt-map-mask:
+ items:
+ - const: 0x7
+ - const: 0
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - fsl,ls1043a-extirq
+ - fsl,ls1046a-extirq
+ - fsl,ls1088a-extirq
+ - fsl,ls2080a-extirq
+ - fsl,lx2160a-extirq
+ then:
+ properties:
+ interrupt-map:
+ minItems: 12
+ maxItems: 12
+ interrupt-map-mask:
+ items:
+ - const: 0xf
+ - const: 0
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ interrupt-controller@1ac {
+ compatible = "fsl,ls1021a-extirq";
+ #interrupt-cells = <2>;
+ #address-cells = <0>;
+ interrupt-controller;
+ reg = <0x1ac 4>;
+ interrupt-map =
+ <0 0 &gic GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
+ <1 0 &gic GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
+ <2 0 &gic GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
+ <3 0 &gic GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
+ <4 0 &gic GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
+ <5 0 &gic GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-map-mask = <0x7 0x0>;
+ };
--
2.30.2

2022-04-27 10:55:05

by Michael Walle

[permalink] [raw]
Subject: [PATCH v3 2/4] arm64: dts: freescale: reduce the interrup-map-mask

Reduce the interrupt-map-mask of the external interrupt controller to
0xf to align with the devicetree schema.

Signed-off-by: Michael Walle <[email protected]>
---
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 2 +-
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 2 +-
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 2 +-
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 2 +-
arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
index 35d1939e690b..46cc8d45ca65 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
@@ -335,7 +335,7 @@ extirq: interrupt-controller@1ac {
<9 0 &gic GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
<10 0 &gic GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
<11 0 &gic GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-map-mask = <0xffffffff 0x0>;
+ interrupt-map-mask = <0xf 0x0>;
};
};

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
index 4e7bd04d9798..3e8def8fe1b4 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
@@ -341,7 +341,7 @@ extirq: interrupt-controller@1ac {
<9 0 &gic GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
<10 0 &gic GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
<11 0 &gic GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-map-mask = <0xffffffff 0x0>;
+ interrupt-map-mask = <0xf 0x0>;
};
};

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
index 18e529118476..33c5ad1b9b96 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -265,7 +265,7 @@ extirq: interrupt-controller@14 {
<9 0 &gic GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
<10 0 &gic GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
<11 0 &gic GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-map-mask = <0xffffffff 0x0>;
+ interrupt-map-mask = <0xf 0x0>;
};
};

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
index 1282b61da8a5..3f767994b02d 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
@@ -305,7 +305,7 @@ extirq: interrupt-controller@14 {
<9 0 &gic GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
<10 0 &gic GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
<11 0 &gic GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-map-mask = <0xffffffff 0x0>;
+ interrupt-map-mask = <0xf 0x0>;
};
};

diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
index 82bd8c0f318b..47ea854720ce 100644
--- a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
@@ -698,7 +698,7 @@ extirq: interrupt-controller@14 {
<9 0 &gic GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
<10 0 &gic GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
<11 0 &gic GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-map-mask = <0xffffffff 0x0>;
+ interrupt-map-mask = <0xf 0x0>;
};
};

--
2.30.2

2022-04-27 22:54:16

by Leo Li

[permalink] [raw]
Subject: RE: [PATCH v3 3/4] dt-bindings: interrupt-controller: fsl,ls-extirq: convert to YAML



> -----Original Message-----
> From: Michael Walle <[email protected]>
> Sent: Wednesday, April 27, 2022 2:54 AM
> To: Rob Herring <[email protected]>; Krzysztof Kozlowski
> <[email protected]>
> Cc: Leo Li <[email protected]>; Michael Walle <[email protected]>; Shawn
> Guo <[email protected]>; Thomas Gleixner <[email protected]>; Marc
> Zyngier <[email protected]>; [email protected]; linux-arm-
> [email protected]; [email protected]; linux-
> [email protected]
> Subject: [PATCH v3 3/4] dt-bindings: interrupt-controller: fsl,ls-extirq:
> convert to YAML
>
> Convert the fsl,ls-extirq binding to the new YAML format.
>
> In contrast to the original binding documentation, there are three
> compatibles which are used in their corresponding device trees which have a
> specific compatible and the (already documented) fallback
> compatible:
> - "fsl,ls1046a-extirq", "fsl,ls1043a-extirq"
> - "fsl,ls2080a-extirq", "fsl,ls1088a-extirq"
> - "fsl,lx2160a-extirq", "fsl,ls1088a-extirq"
>
> Depending on the number of the number of the external IRQs which is
> usually 12 except for the LS1021A where there are only 6, the interrupt-map-
> mask was reduced from 0xffffffff to 0xf and 0x7 respectively and the number
> of interrupt-map entries have to match.

I assume this change won't prevent driver to be compatible with older device trees using the 0xffffffff? The original 0xffffffff should work for both 6/12 interrupts or whatever reasonable number of interrupts that maybe used in future SoCs. So the purpose of this change is to make the binding more specific to catch more errors in device tree?

>
> Signed-off-by: Michael Walle <[email protected]>
> ---
> changes since v2:
> - drop $ref to interrupt-controller.yaml
> - use a more strict interrupt-map-mask and make it conditional on SoC
>
> changes since v1:
> - new patch
>
> .../interrupt-controller/fsl,ls-extirq.txt | 53 --------
> .../interrupt-controller/fsl,ls-extirq.yaml | 118 ++++++++++++++++++
> 2 files changed, 118 insertions(+), 53 deletions(-) delete mode 100644
> Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.txt
> create mode 100644 Documentation/devicetree/bindings/interrupt-
> controller/fsl,ls-extirq.yaml
>
> diff --git a/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-
> extirq.txt b/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-
> extirq.txt
> deleted file mode 100644
> index 4d47df1a5c91..000000000000
> --- a/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-
> extirq.txt
> +++ /dev/null
> @@ -1,53 +0,0 @@
> -* Freescale Layerscape external IRQs
> -
> -Some Layerscape SOCs (LS1021A, LS1043A, LS1046A -LS1088A, LS208xA,
> LX216xA) support inverting -the polarity of certain external interrupt lines.
> -
> -The device node must be a child of the node representing the -
> Supplemental Configuration Unit (SCFG).
> -
> -Required properties:
> -- compatible: should be "fsl,<soc-name>-extirq", e.g. "fsl,ls1021a-extirq".
> - "fsl,ls1043a-extirq": for LS1043A, LS1046A.
> - "fsl,ls1088a-extirq": for LS1088A, LS208xA, LX216xA.
> -- #interrupt-cells: Must be 2. The first element is the index of the
> - external interrupt line. The second element is the trigger type.
> -- #address-cells: Must be 0.
> -- interrupt-controller: Identifies the node as an interrupt controller
> -- reg: Specifies the Interrupt Polarity Control Register (INTPCR) in
> - the SCFG or the External Interrupt Control Register (IRQCR) in
> - the ISC.
> -- interrupt-map: Specifies the mapping from external interrupts to GIC
> - interrupts.
> -- interrupt-map-mask: Must be <0xffffffff 0>.
> -
> -Example:
> - scfg: scfg@1570000 {
> - compatible = "fsl,ls1021a-scfg", "syscon";
> - reg = <0x0 0x1570000 0x0 0x10000>;
> - big-endian;
> - #address-cells = <1>;
> - #size-cells = <1>;
> - ranges = <0x0 0x0 0x1570000 0x10000>;
> -
> - extirq: interrupt-controller@1ac {
> - compatible = "fsl,ls1021a-extirq";
> - #interrupt-cells = <2>;
> - #address-cells = <0>;
> - interrupt-controller;
> - reg = <0x1ac 4>;
> - interrupt-map =
> - <0 0 &gic GIC_SPI 163
> IRQ_TYPE_LEVEL_HIGH>,
> - <1 0 &gic GIC_SPI 164
> IRQ_TYPE_LEVEL_HIGH>,
> - <2 0 &gic GIC_SPI 165
> IRQ_TYPE_LEVEL_HIGH>,
> - <3 0 &gic GIC_SPI 167
> IRQ_TYPE_LEVEL_HIGH>,
> - <4 0 &gic GIC_SPI 168
> IRQ_TYPE_LEVEL_HIGH>,
> - <5 0 &gic GIC_SPI 169
> IRQ_TYPE_LEVEL_HIGH>;
> - interrupt-map-mask = <0xffffffff 0x0>;
> - };
> - };
> -
> -
> - interrupts-extended = <&gic GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
> - <&extirq 1 IRQ_TYPE_LEVEL_LOW>;
> diff --git a/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-
> extirq.yaml b/Documentation/devicetree/bindings/interrupt-
> controller/fsl,ls-extirq.yaml
> new file mode 100644
> index 000000000000..887e565b9573
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-exti
> +++ rq.yaml
> @@ -0,0 +1,118 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2
> +---
> +$id:
> +https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevic
> e
> +tree.org%2Fschemas%2Finterrupt-controller%2Ffsl%2Cls-
> extirq.yaml%23&amp
> +;data=05%7C01%7Cleoyang.li%40nxp.com%7Cdda04b02c8fb455d29a608da2
> 8230f9a
> +%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C1%7C63786642829380089
> 0%7CUnkn
> +own%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6I
> k1haWwiL
> +CJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=FVelhP%2B5CgDLZ8IUc
> 1%2B7b5MOP6n
> +TspGvJyT%2BLtbon70%3D&amp;reserved=0
> +$schema:
> +https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevic
> e
> +tree.org%2Fmeta-
> schemas%2Fcore.yaml%23&amp;data=05%7C01%7Cleoyang.li%40
> +nxp.com%7Cdda04b02c8fb455d29a608da28230f9a%7C686ea1d3bc2b4c6fa9
> 2cd99c5c
> +301635%7C0%7C1%7C637866428293800890%7CUnknown%7CTWFpbGZsb3d
> 8eyJWIjoiMC4
> +wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%
> 7C%7C%7C
> +&amp;sdata=qwIgHY4ZOMNHm7nYBXrqqahH652mZwxGgQ9t1HJzMRQ%3D
> &amp;reserved=
> +0
> +
> +title: Freescale Layerscape External Interrupt Controller
> +
> +maintainers:
> + - Shawn Guo <[email protected]>
> + - Li Yang <[email protected]>
> +
> +description: |
> + Some Layerscape SOCs (LS1021A, LS1043A, LS1046A LS1088A, LS208xA,
> + LX216xA) support inverting the polarity of certain external interrupt
> + lines.
> +
> +properties:
> + compatible:
> + oneOf:
> + - enum:
> + - fsl,ls1021a-extirq
> + - fsl,ls1043a-extirq
> + - fsl,ls1088a-extirq
> + - items:
> + - enum:
> + - fsl,ls1046a-extirq
> + - const: fsl,ls1043a-extirq
> + - items:
> + - enum:
> + - fsl,ls2080a-extirq
> + - fsl,lx2160a-extirq
> + - const: fsl,ls1088a-extirq
> +
> + '#interrupt-cells':
> + const: 2
> +
> + '#address-cells':
> + const: 0
> +
> + interrupt-controller: true
> +
> + reg:
> + maxItems: 1
> + description:
> + Specifies the Interrupt Polarity Control Register (INTPCR) in the
> + SCFG or the External Interrupt Control Register (IRQCR) in the ISC.
> +
> + interrupt-map:
> + description: Specifies the mapping from external interrupts to GIC
> interrupts.
> +
> + interrupt-map-mask: true
> +
> +required:
> + - compatible
> + - '#interrupt-cells'
> + - '#address-cells'
> + - interrupt-controller
> + - reg
> + - interrupt-map
> + - interrupt-map-mask
> +
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - fsl,ls1021a-extirq
> + then:
> + properties:
> + interrupt-map:
> + minItems: 6
> + maxItems: 6
> + interrupt-map-mask:
> + items:
> + - const: 0x7
> + - const: 0
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - fsl,ls1043a-extirq
> + - fsl,ls1046a-extirq
> + - fsl,ls1088a-extirq
> + - fsl,ls2080a-extirq
> + - fsl,lx2160a-extirq
> + then:
> + properties:
> + interrupt-map:
> + minItems: 12
> + maxItems: 12
> + interrupt-map-mask:
> + items:
> + - const: 0xf
> + - const: 0
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + interrupt-controller@1ac {
> + compatible = "fsl,ls1021a-extirq";
> + #interrupt-cells = <2>;
> + #address-cells = <0>;
> + interrupt-controller;
> + reg = <0x1ac 4>;
> + interrupt-map =
> + <0 0 &gic GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
> + <1 0 &gic GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
> + <2 0 &gic GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
> + <3 0 &gic GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
> + <4 0 &gic GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
> + <5 0 &gic GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-map-mask = <0x7 0x0>;
> + };
> --
> 2.30.2

2022-04-28 15:01:08

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v3 3/4] dt-bindings: interrupt-controller: fsl,ls-extirq: convert to YAML

On 27/04/2022 22:08, Leo Li wrote:
>> Convert the fsl,ls-extirq binding to the new YAML format.
>>
>> In contrast to the original binding documentation, there are three
>> compatibles which are used in their corresponding device trees which have a
>> specific compatible and the (already documented) fallback
>> compatible:
>> - "fsl,ls1046a-extirq", "fsl,ls1043a-extirq"
>> - "fsl,ls2080a-extirq", "fsl,ls1088a-extirq"
>> - "fsl,lx2160a-extirq", "fsl,ls1088a-extirq"
>>
>> Depending on the number of the number of the external IRQs which is
>> usually 12 except for the LS1021A where there are only 6, the interrupt-map-
>> mask was reduced from 0xffffffff to 0xf and 0x7 respectively and the number
>> of interrupt-map entries have to match.
>
> I assume this change won't prevent driver to be compatible with older device trees using the 0xffffffff? The original 0xffffffff should work for both 6/12 interrupts or whatever reasonable number of interrupts that maybe used in future SoCs. So the purpose of this change is to make the binding more specific to catch more errors in device tree?

Yes.

Best regards,
Krzysztof

2022-04-29 10:19:26

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v3 3/4] dt-bindings: interrupt-controller: fsl,ls-extirq: convert to YAML

On 27/04/2022 09:53, Michael Walle wrote:
> Convert the fsl,ls-extirq binding to the new YAML format.
>
> In contrast to the original binding documentation, there are three
> compatibles which are used in their corresponding device trees which
> have a specific compatible and the (already documented) fallback
> compatible:
> - "fsl,ls1046a-extirq", "fsl,ls1043a-extirq"
> - "fsl,ls2080a-extirq", "fsl,ls1088a-extirq"
> - "fsl,lx2160a-extirq", "fsl,ls1088a-extirq"
>
> Depending on the number of the number of the external IRQs which is
> usually 12 except for the LS1021A where there are only 6, the
> interrupt-map-mask was reduced from 0xffffffff to 0xf and 0x7
> respectively and the number of interrupt-map entries have to
> match.
>
> Signed-off-by: Michael Walle <[email protected]>
> ---
> changes since v2:
> - drop $ref to interrupt-controller.yaml
> - use a more strict interrupt-map-mask and make it conditional on SoC
>
> changes since v1:
> - new patch
>
> .../interrupt-controller/fsl,ls-extirq.txt | 53 --------
> .../interrupt-controller/fsl,ls-extirq.yaml | 118 ++++++++++++++++++
> 2 files changed, 118 insertions(+), 53 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.txt
> create mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.yaml
>


Reviewed-by: Krzysztof Kozlowski <[email protected]>


Best regards,
Krzysztof

2022-04-29 11:27:04

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v3 3/4] dt-bindings: interrupt-controller: fsl,ls-extirq: convert to YAML

On Wed, 27 Apr 2022 09:53:37 +0200, Michael Walle wrote:
> Convert the fsl,ls-extirq binding to the new YAML format.
>
> In contrast to the original binding documentation, there are three
> compatibles which are used in their corresponding device trees which
> have a specific compatible and the (already documented) fallback
> compatible:
> - "fsl,ls1046a-extirq", "fsl,ls1043a-extirq"
> - "fsl,ls2080a-extirq", "fsl,ls1088a-extirq"
> - "fsl,lx2160a-extirq", "fsl,ls1088a-extirq"
>
> Depending on the number of the number of the external IRQs which is
> usually 12 except for the LS1021A where there are only 6, the
> interrupt-map-mask was reduced from 0xffffffff to 0xf and 0x7
> respectively and the number of interrupt-map entries have to
> match.
>
> Signed-off-by: Michael Walle <[email protected]>
> ---
> changes since v2:
> - drop $ref to interrupt-controller.yaml
> - use a more strict interrupt-map-mask and make it conditional on SoC
>
> changes since v1:
> - new patch
>
> .../interrupt-controller/fsl,ls-extirq.txt | 53 --------
> .../interrupt-controller/fsl,ls-extirq.yaml | 118 ++++++++++++++++++
> 2 files changed, 118 insertions(+), 53 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.txt
> create mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.yaml
>

Applied, thanks!

2022-05-05 15:57:12

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH v3 2/4] arm64: dts: freescale: reduce the interrup-map-mask

On Wed, Apr 27, 2022 at 09:53:36AM +0200, Michael Walle wrote:
> Reduce the interrupt-map-mask of the external interrupt controller to
> 0xf to align with the devicetree schema.
>
> Signed-off-by: Michael Walle <[email protected]>

Applied, thanks!

2022-05-06 03:34:09

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH v3 1/4] ARM: dts: ls1021a: reduce the interrupt-map-mask

On Wed, Apr 27, 2022 at 09:53:35AM +0200, Michael Walle wrote:
> Reduce the interrupt-map-mask of the external interrupt controller to
> 7 to align with the devicetree schema.
>
> Signed-off-by: Michael Walle <[email protected]>

Applied, thanks!