Commit 65441ba9 authored by Thomas Gleixner's avatar Thomas Gleixner

Merge tag 'irqchip-4.18' of...

Merge tag 'irqchip-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/core

Pull irqchip updates for 4.18 from Marc Zyngier:

 - Support for Meson-AXG GPIO irqchip

 - Large stm32 irqchip rework (suspend/resume, hierarchical domains)
parents 48bda43e 6a88c221
...@@ -9,11 +9,12 @@ number of interrupt exposed depends on the SoC. ...@@ -9,11 +9,12 @@ number of interrupt exposed depends on the SoC.
Required properties: Required properties:
- compatible : must have "amlogic,meson8-gpio-intc” and either - compatible : must have "amlogic,meson8-gpio-intc" and either
“amlogic,meson8-gpio-intc” for meson8 SoCs (S802) or "amlogic,meson8-gpio-intc" for meson8 SoCs (S802) or
“amlogic,meson8b-gpio-intc” for meson8b SoCs (S805) or "amlogic,meson8b-gpio-intc" for meson8b SoCs (S805) or
“amlogic,meson-gxbb-gpio-intc” for GXBB SoCs (S905) or "amlogic,meson-gxbb-gpio-intc" for GXBB SoCs (S905) or
“amlogic,meson-gxl-gpio-intc” for GXL SoCs (S905X, S912) "amlogic,meson-gxl-gpio-intc" for GXL SoCs (S905X, S912)
"amlogic,meson-axg-gpio-intc" for AXG SoCs (A113D, A113X)
- interrupt-parent : a phandle to the GIC the interrupts are routed to. - interrupt-parent : a phandle to the GIC the interrupts are routed to.
Usually this is provided at the root level of the device tree as it is Usually this is provided at the root level of the device tree as it is
common to most of the SoC. common to most of the SoC.
......
...@@ -5,11 +5,14 @@ Required properties: ...@@ -5,11 +5,14 @@ Required properties:
- compatible: Should be: - compatible: Should be:
"st,stm32-exti" "st,stm32-exti"
"st,stm32h7-exti" "st,stm32h7-exti"
"st,stm32mp1-exti"
- reg: Specifies base physical address and size of the registers - reg: Specifies base physical address and size of the registers
- interrupt-controller: Indentifies the node as an interrupt controller - interrupt-controller: Indentifies the node as an interrupt controller
- #interrupt-cells: Specifies the number of cells to encode an interrupt - #interrupt-cells: Specifies the number of cells to encode an interrupt
specifier, shall be 2 specifier, shall be 2
- interrupts: interrupts references to primary interrupt controller - interrupts: interrupts references to primary interrupt controller
(only needed for exti controller with multiple exti under
same parent interrupt: st,stm32-exti and st,stm32h7-exti")
Example: Example:
......
...@@ -12,6 +12,8 @@ pinctrl: pin-controller { ...@@ -12,6 +12,8 @@ pinctrl: pin-controller {
#size-cells = <1>; #size-cells = <1>;
compatible = "st,stm32mp157-pinctrl"; compatible = "st,stm32mp157-pinctrl";
ranges = <0 0x50002000 0xa400>; ranges = <0 0x50002000 0xa400>;
interrupt-parent = <&exti>;
st,syscfg = <&exti 0x60 0xff>;
pins-are-numbered; pins-are-numbered;
gpioa: gpio@50002000 { gpioa: gpio@50002000 {
...@@ -166,6 +168,8 @@ pinctrl_z: pin-controller-z { ...@@ -166,6 +168,8 @@ pinctrl_z: pin-controller-z {
compatible = "st,stm32mp157-z-pinctrl"; compatible = "st,stm32mp157-z-pinctrl";
ranges = <0 0x54004000 0x400>; ranges = <0 0x54004000 0x400>;
pins-are-numbered; pins-are-numbered;
interrupt-parent = <&exti>;
st,syscfg = <&exti 0x60 0xff>;
status = "disabled"; status = "disabled";
gpioz: gpio@54004000 { gpioz: gpio@54004000 {
......
...@@ -183,6 +183,13 @@ usart6: serial@44003000 { ...@@ -183,6 +183,13 @@ usart6: serial@44003000 {
status = "disabled"; status = "disabled";
}; };
exti: interrupt-controller@5000d000 {
compatible = "st,stm32mp1-exti", "syscon";
interrupt-controller;
#interrupt-cells = <2>;
reg = <0x5000d000 0x400>;
};
usart1: serial@5c000000 { usart1: serial@5c000000 {
compatible = "st,stm32h7-uart"; compatible = "st,stm32h7-uart";
reg = <0x5c000000 0x400>; reg = <0x5c000000 0x400>;
......
...@@ -63,11 +63,16 @@ static const struct meson_gpio_irq_params gxl_params = { ...@@ -63,11 +63,16 @@ static const struct meson_gpio_irq_params gxl_params = {
.nr_hwirq = 110, .nr_hwirq = 110,
}; };
static const struct meson_gpio_irq_params axg_params = {
.nr_hwirq = 100,
};
static const struct of_device_id meson_irq_gpio_matches[] = { static const struct of_device_id meson_irq_gpio_matches[] = {
{ .compatible = "amlogic,meson8-gpio-intc", .data = &meson8_params }, { .compatible = "amlogic,meson8-gpio-intc", .data = &meson8_params },
{ .compatible = "amlogic,meson8b-gpio-intc", .data = &meson8b_params }, { .compatible = "amlogic,meson8b-gpio-intc", .data = &meson8b_params },
{ .compatible = "amlogic,meson-gxbb-gpio-intc", .data = &gxbb_params }, { .compatible = "amlogic,meson-gxbb-gpio-intc", .data = &gxbb_params },
{ .compatible = "amlogic,meson-gxl-gpio-intc", .data = &gxl_params }, { .compatible = "amlogic,meson-gxl-gpio-intc", .data = &gxl_params },
{ .compatible = "amlogic,meson-axg-gpio-intc", .data = &axg_params },
{ } { }
}; };
......
This diff is collapsed.
...@@ -267,12 +267,13 @@ static void stm32_gpio_irq_release_resources(struct irq_data *irq_data) ...@@ -267,12 +267,13 @@ static void stm32_gpio_irq_release_resources(struct irq_data *irq_data)
} }
static struct irq_chip stm32_gpio_irq_chip = { static struct irq_chip stm32_gpio_irq_chip = {
.name = "stm32gpio", .name = "stm32gpio",
.irq_ack = irq_chip_ack_parent, .irq_eoi = irq_chip_eoi_parent,
.irq_mask = irq_chip_mask_parent, .irq_ack = irq_chip_ack_parent,
.irq_unmask = irq_chip_unmask_parent, .irq_mask = irq_chip_mask_parent,
.irq_set_type = irq_chip_set_type_parent, .irq_unmask = irq_chip_unmask_parent,
.irq_set_wake = irq_chip_set_wake_parent, .irq_set_type = irq_chip_set_type_parent,
.irq_set_wake = irq_chip_set_wake_parent,
.irq_request_resources = stm32_gpio_irq_request_resources, .irq_request_resources = stm32_gpio_irq_request_resources,
.irq_release_resources = stm32_gpio_irq_release_resources, .irq_release_resources = stm32_gpio_irq_release_resources,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment