From: Thomas Petazzoni <hidden> Date: 2016-08-05 14:55:42
Hello,
This small patch series intends to add support for the PMU of the
Cortex-A72 cores found in the Marvell Armada 7K/8K SoCs.
However, the interrupt of the PMU is not directly connected to the
GIC, but goes through a secondary interrupt controller called the
PIC. Therefore, this series starts by adding a small driver for this
interrupt controller, before enabling the PIC and the PMU in the
Device Tree.
Thanks!
Thomas
Thomas Petazzoni (4):
dt-bindings: interrupt-controller: add DT binding for Marvell 7K/8K
PIC
irqchip: irq-mvebu-pic: new driver for Marvell Armada 7K/8K PIC
arm64: marvell: enable the Marvell PIC driver
arm64: dts: marvell: describe the PIC and PMU on Armada 7K/8K
.../interrupt-controller/marvell,armada-8k-pic.txt | 25 +++
arch/arm64/Kconfig.platforms | 1 +
arch/arm64/boot/dts/marvell/armada-ap806.dtsi | 14 ++
drivers/irqchip/Kconfig | 3 +
drivers/irqchip/Makefile | 1 +
drivers/irqchip/irq-mvebu-pic.c | 195 +++++++++++++++++++++
6 files changed, 239 insertions(+)
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/marvell,armada-8k-pic.txt
create mode 100644 drivers/irqchip/irq-mvebu-pic.c
--
2.7.4
From: Thomas Petazzoni <hidden> Date: 2016-08-05 14:55:43
This commit adds the Device Tree binding description for the PIC
interrupt controller available in the ARM64 Marvell Armada 7K/8K SoCs.
Signed-off-by: Thomas Petazzoni <redacted>
---
.../interrupt-controller/marvell,armada-8k-pic.txt | 25 ++++++++++++++++++++++
1 file changed, 25 insertions(+)
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/marvell,armada-8k-pic.txt
@@ -0,0 +1,25 @@+Marvell Armada 7K/8K PIC Interrupt controller+---------------------------------------------++This is the Device Tree binding for the PIC, a secondary interrupt+controller available on the Marvell Armada 7K/8K ARM64 SoCs, and+typically connected to the GIC as the primary interrupt controller.++Required properties:+- compatible: should be "marvell,armada-8k-pic"+- interrupt-controller: identifies the node as an interrupt controller+- #interrupt-cells: the number of cells to define interrupts on this+ controller. Should be 1+- reg: the register area for the PIC interrupt controller+- interrupts: the interrupt to the primary interrupt controller,+ typically the GIC++Example:++ pic: interrupt-controller at 3f0100 {+ compatible = "marvell,armada-8k-pic";+ reg = <0x3f0100 0x10>;+ #interrupt-cells = <1>;+ interrupt-controller;+ interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;+ };
From: Thomas Petazzoni <hidden> Date: 2016-08-05 14:55:50
This commit makes sure the driver for the Marvell PIC interrupt
controller (used on Marvell Armada 7K/8K) is enabled.
Signed-off-by: Thomas Petazzoni <redacted>
---
arch/arm64/Kconfig.platforms | 1 +
1 file changed, 1 insertion(+)
From: Thomas Petazzoni <hidden> Date: 2016-08-05 14:55:51
This commit adds the necessary Device Tree description for the PIC
interrupt controller and the PMU available in the Marvell Armada 7K and
Armada 8K SoCs.
Signed-off-by: Thomas Petazzoni <redacted>
---
arch/arm64/boot/dts/marvell/armada-ap806.dtsi | 14 ++++++++++++++
1 file changed, 14 insertions(+)
From: Thomas Petazzoni <hidden> Date: 2016-08-05 14:56:42
The Marvell Armada 7K/8K integrates a secondary interrupt controller
very originally named "PIC". It is connected to the main GIC via a
PPI. Amongst other things, this PIC is used for the ARM PMU.
This commit adds a simple irqchip driver for this interrupt
controller. Since this interrupt controller is not needed early at boot
time, we make the driver a proper platform driver rather than use the
IRQCHIP_DECLARE() mechanism.
Signed-off-by: Thomas Petazzoni <redacted>
---
drivers/irqchip/Kconfig | 3 +
drivers/irqchip/Makefile | 1 +
drivers/irqchip/irq-mvebu-pic.c | 195 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 199 insertions(+)
create mode 100644 drivers/irqchip/irq-mvebu-pic.c
From: Jason Cooper <hidden> Date: 2016-08-05 15:31:47
Hi Thomas,
On Fri, Aug 05, 2016 at 04:55:19PM +0200, Thomas Petazzoni wrote:
quoted hunk
The Marvell Armada 7K/8K integrates a secondary interrupt controller
very originally named "PIC". It is connected to the main GIC via a
PPI. Amongst other things, this PIC is used for the ARM PMU.
This commit adds a simple irqchip driver for this interrupt
controller. Since this interrupt controller is not needed early at boot
time, we make the driver a proper platform driver rather than use the
IRQCHIP_DECLARE() mechanism.
Signed-off-by: Thomas Petazzoni <redacted>
---
drivers/irqchip/Kconfig | 3 +
drivers/irqchip/Makefile | 1 +
drivers/irqchip/irq-mvebu-pic.c | 195 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 199 insertions(+)
create mode 100644 drivers/irqchip/irq-mvebu-pic.c
From: Thomas Petazzoni <hidden> Date: 2016-08-05 15:58:29
Hello,
Thanks for the quick feedback!
On Fri, 5 Aug 2016 15:31:13 +0000, Jason Cooper wrote:
quoted
+config MVEBU_PIC
+ bool
tri-state? Is there anything else attached to the PIC besides the PMU?
tri-state would be fine I believe, it's indeed a secondary interrupt
controller, not essential for booting the platform.
But then I probably need to rework PATCH 3/4 and not have it
unconditionally selected by the platform Kconfig option, right?
Regarding what else is attached to the PIC, I have no idea, I don't
have this information.
You mention 7k in $subject, should you use that here as the youngest
compatible SoC generation?
There isn't anything youngest or oldest between 7K and 8K, they both
got released at the same time. They are really the same family of SoCs,
the 7K having only one CP110, the 8K having two of them, which provides
more I/Os.
For several other IPs, we're using armada-8k as the compatible string:
* marvell,armada8k-pcie
* marvell,armada-8k-xhci
(Yes you will already notice how consistent we are in the naming of the
compatible string :-/).
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
From: Jason Cooper <hidden> Date: 2016-08-05 16:27:19
Hi Thomas,
On Fri, Aug 05, 2016 at 05:58:12PM +0200, Thomas Petazzoni wrote:
On Fri, 5 Aug 2016 15:31:13 +0000, Jason Cooper wrote:
quoted
quoted
+config MVEBU_PIC
+ bool
tri-state? Is there anything else attached to the PIC besides the PMU?
tri-state would be fine I believe, it's indeed a secondary interrupt
controller, not essential for booting the platform.
But then I probably need to rework PATCH 3/4 and not have it
unconditionally selected by the platform Kconfig option, right?
meh. I have no preference either way. It's what works best for your
platform. I've just seen one or two people on a tear lately regarding
module.h/MODULE_* and being boolean. I figured I'd address it while I
was here. :-)
Regarding what else is attached to the PIC, I have no idea, I don't
have this information.
You mention 7k in $subject, should you use that here as the youngest
compatible SoC generation?
There isn't anything youngest or oldest between 7K and 8K, they both
got released at the same time. They are really the same family of SoCs,
the 7K having only one CP110, the 8K having two of them, which provides
more I/Os.
For several other IPs, we're using armada-8k as the compatible string:
* marvell,armada8k-pcie
* marvell,armada-8k-xhci
Ok, sure. That was just a nit. I know human nature, despite logic,
will assume 8k is newer that 7k, like SSLv3 being better than TLS v1.x
because the number is bigger. :-/
Consistency is better at this point.
The rest of it looks fine.
thx,
Jason.
Please switch to a builtin registration call, and remove module.h and
all the MODULE_<xyz> references since this is a bool and not a
tristate Kconfig.
I overlooked that someone else beat me to making the bool/tristate
comment -- oh well, that is a good thing that it is on other people's
minds too now. Apologies for the duplicated feedback.
Paul.
From: Paul Gortmaker <hidden> Date: 2016-08-07 00:54:57
On Fri, Aug 5, 2016 at 10:55 AM, Thomas Petazzoni
[off-list ref] wrote:
quoted hunk
The Marvell Armada 7K/8K integrates a secondary interrupt controller
very originally named "PIC". It is connected to the main GIC via a
PPI. Amongst other things, this PIC is used for the ARM PMU.
This commit adds a simple irqchip driver for this interrupt
controller. Since this interrupt controller is not needed early at boot
time, we make the driver a proper platform driver rather than use the
IRQCHIP_DECLARE() mechanism.
Signed-off-by: Thomas Petazzoni <redacted>
---
drivers/irqchip/Kconfig | 3 +
drivers/irqchip/Makefile | 1 +
drivers/irqchip/irq-mvebu-pic.c | 195 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 199 insertions(+)
create mode 100644 drivers/irqchip/irq-mvebu-pic.c
Please switch to a builtin registration call, and remove module.h and
all the MODULE_<xyz> references since this is a bool and not a
tristate Kconfig.
Thanks,
Paul.
--
quoted hunk
+
config LS_SCFG_MSI
def_bool y if SOC_LS1021A || ARCH_LAYERSCAPE
depends on PCI && PCI_MSI
From: Rob Herring <robh@kernel.org> Date: 2016-08-10 18:36:33
On Fri, Aug 05, 2016 at 04:55:18PM +0200, Thomas Petazzoni wrote:
This commit adds the Device Tree binding description for the PIC
interrupt controller available in the ARM64 Marvell Armada 7K/8K SoCs.
Signed-off-by: Thomas Petazzoni <redacted>
---
.../interrupt-controller/marvell,armada-8k-pic.txt | 25 ++++++++++++++++++++++
1 file changed, 25 insertions(+)
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/marvell,armada-8k-pic.txt
From: Jason Cooper <hidden> Date: 2016-08-16 14:16:01
Hi Thomas,
On Fri, Aug 05, 2016 at 04:55:17PM +0200, Thomas Petazzoni wrote:
Hello,
This small patch series intends to add support for the PMU of the
Cortex-A72 cores found in the Marvell Armada 7K/8K SoCs.
However, the interrupt of the PMU is not directly connected to the
GIC, but goes through a secondary interrupt controller called the
PIC. Therefore, this series starts by adding a small driver for this
interrupt controller, before enabling the PIC and the PMU in the
Device Tree.
Thanks!
Thomas
Thomas Petazzoni (4):
dt-bindings: interrupt-controller: add DT binding for Marvell 7K/8K
PIC
irqchip: irq-mvebu-pic: new driver for Marvell Armada 7K/8K PIC
arm64: marvell: enable the Marvell PIC driver
arm64: dts: marvell: describe the PIC and PMU on Armada 7K/8K
.../interrupt-controller/marvell,armada-8k-pic.txt | 25 +++
arch/arm64/Kconfig.platforms | 1 +
arch/arm64/boot/dts/marvell/armada-ap806.dtsi | 14 ++
drivers/irqchip/Kconfig | 3 +
drivers/irqchip/Makefile | 1 +
drivers/irqchip/irq-mvebu-pic.c | 195 +++++++++++++++++++++
6 files changed, 239 insertions(+)
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/marvell,armada-8k-pic.txt
create mode 100644 drivers/irqchip/irq-mvebu-pic.c
Patches 1-3 applied to irqchip/mvebu64. Patch 1 has Rob's Ack. I
assume you'll route the dtsi change through a separate branch.
thx,
Jason.
From: Thomas Petazzoni <hidden> Date: 2016-08-17 14:27:04
Hello,
On Tue, 16 Aug 2016 14:14:47 +0000, Jason Cooper wrote:
Patches 1-3 applied to irqchip/mvebu64. Patch 1 has Rob's Ack.
Great, thanks! Did you fix the driver for the minor nit that you
pointed out, or do you want a follow-up to fix that?
I assume you'll route the dtsi change through a separate branch.
Yes, Gregory will take care of the .dtsi change, and pass it through
mvebu and arm-soc.
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com