]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ARM: dts: exynos: Fix invalid GIC interrupt flags in exynos4
authorKrzysztof Kozlowski <krzk@kernel.org>
Fri, 16 Sep 2016 19:42:42 +0000 (21:42 +0200)
committerKrzysztof Kozlowski <krzk@kernel.org>
Thu, 3 Nov 2016 20:39:38 +0000 (22:39 +0200)
Interrupt of type IRQ_TYPE_NONE is not allowed for GIC interrupts and
generates an error:
genirq: Setting trigger mode 0 for irq 16 failed (gic_set_type+0x0/0x68)

The GIC requires shared interrupts to be edge rising or level high.
Platform declares support for both.  Arbitrarily choose level high
everywhere hoping it will work on each platform.

Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reported-by: Alban Browaeys <alban.browaeys@gmail.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
arch/arm/boot/dts/exynos4.dtsi

index 5f034eb5a5e271af11258480298937f8ec220bd5..e6f4da7f00381d95dbd79acc6662b27078afab94 100644 (file)
@@ -21,6 +21,7 @@
 
 #include <dt-bindings/clock/exynos4.h>
 #include <dt-bindings/clock/exynos-audss-clk.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 #include "exynos-syscon-restart.dtsi"
 
 / {
        dsi_0: dsi@11C80000 {
                compatible = "samsung,exynos4210-mipi-dsi";
                reg = <0x11C80000 0x10000>;
-               interrupts = <0 79 0>;
+               interrupts = <0 79 IRQ_TYPE_LEVEL_HIGH>;
                power-domains = <&pd_lcd0>;
                phys = <&mipi_phy 1>;
                phy-names = "dsim";
                fimc_0: fimc@11800000 {
                        compatible = "samsung,exynos4210-fimc";
                        reg = <0x11800000 0x1000>;
-                       interrupts = <0 84 0>;
+                       interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clock CLK_FIMC0>, <&clock CLK_SCLK_FIMC0>;
                        clock-names = "fimc", "sclk_fimc";
                        power-domains = <&pd_cam>;
                fimc_1: fimc@11810000 {
                        compatible = "samsung,exynos4210-fimc";
                        reg = <0x11810000 0x1000>;
-                       interrupts = <0 85 0>;
+                       interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clock CLK_FIMC1>, <&clock CLK_SCLK_FIMC1>;
                        clock-names = "fimc", "sclk_fimc";
                        power-domains = <&pd_cam>;
                fimc_2: fimc@11820000 {
                        compatible = "samsung,exynos4210-fimc";
                        reg = <0x11820000 0x1000>;
-                       interrupts = <0 86 0>;
+                       interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clock CLK_FIMC2>, <&clock CLK_SCLK_FIMC2>;
                        clock-names = "fimc", "sclk_fimc";
                        power-domains = <&pd_cam>;
                fimc_3: fimc@11830000 {
                        compatible = "samsung,exynos4210-fimc";
                        reg = <0x11830000 0x1000>;
-                       interrupts = <0 87 0>;
+                       interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clock CLK_FIMC3>, <&clock CLK_SCLK_FIMC3>;
                        clock-names = "fimc", "sclk_fimc";
                        power-domains = <&pd_cam>;
                csis_0: csis@11880000 {
                        compatible = "samsung,exynos4210-csis";
                        reg = <0x11880000 0x4000>;
-                       interrupts = <0 78 0>;
+                       interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clock CLK_CSIS0>, <&clock CLK_SCLK_CSIS0>;
                        clock-names = "csis", "sclk_csis";
                        bus-width = <4>;
                csis_1: csis@11890000 {
                        compatible = "samsung,exynos4210-csis";
                        reg = <0x11890000 0x4000>;
-                       interrupts = <0 80 0>;
+                       interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clock CLK_CSIS1>, <&clock CLK_SCLK_CSIS1>;
                        clock-names = "csis", "sclk_csis";
                        bus-width = <2>;
        watchdog: watchdog@10060000 {
                compatible = "samsung,s3c2410-wdt";
                reg = <0x10060000 0x100>;
-               interrupts = <0 43 0>;
+               interrupts = <0 43 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_WDT>;
                clock-names = "watchdog";
                status = "disabled";
                compatible = "samsung,s3c6410-rtc";
                reg = <0x10070000 0x100>;
                interrupt-parent = <&pmu_system_controller>;
-               interrupts = <0 44 0>, <0 45 0>;
+               interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 45 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_RTC>;
                clock-names = "rtc";
                status = "disabled";
        keypad: keypad@100A0000 {
                compatible = "samsung,s5pv210-keypad";
                reg = <0x100A0000 0x100>;
-               interrupts = <0 109 0>;
+               interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_KEYIF>;
                clock-names = "keypad";
                status = "disabled";
        sdhci_0: sdhci@12510000 {
                compatible = "samsung,exynos4210-sdhci";
                reg = <0x12510000 0x100>;
-               interrupts = <0 73 0>;
+               interrupts = <0 73 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_SDMMC0>, <&clock CLK_SCLK_MMC0>;
                clock-names = "hsmmc", "mmc_busclk.2";
                status = "disabled";
        sdhci_1: sdhci@12520000 {
                compatible = "samsung,exynos4210-sdhci";
                reg = <0x12520000 0x100>;
-               interrupts = <0 74 0>;
+               interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_SDMMC1>, <&clock CLK_SCLK_MMC1>;
                clock-names = "hsmmc", "mmc_busclk.2";
                status = "disabled";
        sdhci_2: sdhci@12530000 {
                compatible = "samsung,exynos4210-sdhci";
                reg = <0x12530000 0x100>;
-               interrupts = <0 75 0>;
+               interrupts = <0 75 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_SDMMC2>, <&clock CLK_SCLK_MMC2>;
                clock-names = "hsmmc", "mmc_busclk.2";
                status = "disabled";
        sdhci_3: sdhci@12540000 {
                compatible = "samsung,exynos4210-sdhci";
                reg = <0x12540000 0x100>;
-               interrupts = <0 76 0>;
+               interrupts = <0 76 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_SDMMC3>, <&clock CLK_SCLK_MMC3>;
                clock-names = "hsmmc", "mmc_busclk.2";
                status = "disabled";
        hsotg: hsotg@12480000 {
                compatible = "samsung,s3c6400-hsotg";
                reg = <0x12480000 0x20000>;
-               interrupts = <0 71 0>;
+               interrupts = <0 71 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_USB_DEVICE>;
                clock-names = "otg";
                phys = <&exynos_usbphy 0>;
        ehci: ehci@12580000 {
                compatible = "samsung,exynos4210-ehci";
                reg = <0x12580000 0x100>;
-               interrupts = <0 70 0>;
+               interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_USB_HOST>;
                clock-names = "usbhost";
                status = "disabled";
        ohci: ohci@12590000 {
                compatible = "samsung,exynos4210-ohci";
                reg = <0x12590000 0x100>;
-               interrupts = <0 70 0>;
+               interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_USB_HOST>;
                clock-names = "usbhost";
                status = "disabled";
        mfc: codec@13400000 {
                compatible = "samsung,mfc-v5";
                reg = <0x13400000 0x10000>;
-               interrupts = <0 94 0>;
+               interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
                power-domains = <&pd_mfc>;
                clocks = <&clock CLK_MFC>, <&clock CLK_SCLK_MFC>;
                clock-names = "mfc", "sclk_mfc";
        serial_0: serial@13800000 {
                compatible = "samsung,exynos4210-uart";
                reg = <0x13800000 0x100>;
-               interrupts = <0 52 0>;
+               interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_UART0>, <&clock CLK_SCLK_UART0>;
                clock-names = "uart", "clk_uart_baud0";
                dmas = <&pdma0 15>, <&pdma0 16>;
        serial_1: serial@13810000 {
                compatible = "samsung,exynos4210-uart";
                reg = <0x13810000 0x100>;
-               interrupts = <0 53 0>;
+               interrupts = <0 53 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_UART1>, <&clock CLK_SCLK_UART1>;
                clock-names = "uart", "clk_uart_baud0";
                dmas = <&pdma1 15>, <&pdma1 16>;
        serial_2: serial@13820000 {
                compatible = "samsung,exynos4210-uart";
                reg = <0x13820000 0x100>;
-               interrupts = <0 54 0>;
+               interrupts = <0 54 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>;
                clock-names = "uart", "clk_uart_baud0";
                dmas = <&pdma0 17>, <&pdma0 18>;
        serial_3: serial@13830000 {
                compatible = "samsung,exynos4210-uart";
                reg = <0x13830000 0x100>;
-               interrupts = <0 55 0>;
+               interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>;
                clock-names = "uart", "clk_uart_baud0";
                dmas = <&pdma1 17>, <&pdma1 18>;
                #size-cells = <0>;
                compatible = "samsung,s3c2440-i2c";
                reg = <0x13860000 0x100>;
-               interrupts = <0 58 0>;
+               interrupts = <0 58 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_I2C0>;
                clock-names = "i2c";
                pinctrl-names = "default";
                #size-cells = <0>;
                compatible = "samsung,s3c2440-i2c";
                reg = <0x13870000 0x100>;
-               interrupts = <0 59 0>;
+               interrupts = <0 59 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_I2C1>;
                clock-names = "i2c";
                pinctrl-names = "default";
                #size-cells = <0>;
                compatible = "samsung,s3c2440-i2c";
                reg = <0x13880000 0x100>;
-               interrupts = <0 60 0>;
+               interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_I2C2>;
                clock-names = "i2c";
                pinctrl-names = "default";
                #size-cells = <0>;
                compatible = "samsung,s3c2440-i2c";
                reg = <0x13890000 0x100>;
-               interrupts = <0 61 0>;
+               interrupts = <0 61 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_I2C3>;
                clock-names = "i2c";
                pinctrl-names = "default";
                #size-cells = <0>;
                compatible = "samsung,s3c2440-i2c";
                reg = <0x138A0000 0x100>;
-               interrupts = <0 62 0>;
+               interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_I2C4>;
                clock-names = "i2c";
                pinctrl-names = "default";
                #size-cells = <0>;
                compatible = "samsung,s3c2440-i2c";
                reg = <0x138B0000 0x100>;
-               interrupts = <0 63 0>;
+               interrupts = <0 63 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_I2C5>;
                clock-names = "i2c";
                pinctrl-names = "default";
                #size-cells = <0>;
                compatible = "samsung,s3c2440-i2c";
                reg = <0x138C0000 0x100>;
-               interrupts = <0 64 0>;
+               interrupts = <0 64 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_I2C6>;
                clock-names = "i2c";
                pinctrl-names = "default";
                #size-cells = <0>;
                compatible = "samsung,s3c2440-i2c";
                reg = <0x138D0000 0x100>;
-               interrupts = <0 65 0>;
+               interrupts = <0 65 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_I2C7>;
                clock-names = "i2c";
                pinctrl-names = "default";
                #size-cells = <0>;
                compatible = "samsung,s3c2440-hdmiphy-i2c";
                reg = <0x138E0000 0x100>;
-               interrupts = <0 93 0>;
+               interrupts = <0 93 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_I2C_HDMI>;
                clock-names = "i2c";
                status = "disabled";
        spi_0: spi@13920000 {
                compatible = "samsung,exynos4210-spi";
                reg = <0x13920000 0x100>;
-               interrupts = <0 66 0>;
+               interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>;
                dmas = <&pdma0 7>, <&pdma0 6>;
                dma-names = "tx", "rx";
                #address-cells = <1>;
        spi_1: spi@13930000 {
                compatible = "samsung,exynos4210-spi";
                reg = <0x13930000 0x100>;
-               interrupts = <0 67 0>;
+               interrupts = <0 67 IRQ_TYPE_LEVEL_HIGH>;
                dmas = <&pdma1 7>, <&pdma1 6>;
                dma-names = "tx", "rx";
                #address-cells = <1>;
        spi_2: spi@13940000 {
                compatible = "samsung,exynos4210-spi";
                reg = <0x13940000 0x100>;
-               interrupts = <0 68 0>;
+               interrupts = <0 68 IRQ_TYPE_LEVEL_HIGH>;
                dmas = <&pdma0 9>, <&pdma0 8>;
                dma-names = "tx", "rx";
                #address-cells = <1>;
        pwm: pwm@139D0000 {
                compatible = "samsung,exynos4210-pwm";
                reg = <0x139D0000 0x1000>;
-               interrupts = <0 37 0>, <0 38 0>, <0 39 0>, <0 40 0>, <0 41 0>;
+               interrupts = <0 37 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 38 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 39 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 40 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 41 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_PWM>;
                clock-names = "timers";
                #pwm-cells = <3>;
                pdma0: pdma@12680000 {
                        compatible = "arm,pl330", "arm,primecell";
                        reg = <0x12680000 0x1000>;
-                       interrupts = <0 35 0>;
+                       interrupts = <0 35 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clock CLK_PDMA0>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
                pdma1: pdma@12690000 {
                        compatible = "arm,pl330", "arm,primecell";
                        reg = <0x12690000 0x1000>;
-                       interrupts = <0 36 0>;
+                       interrupts = <0 36 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clock CLK_PDMA1>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
                mdma1: mdma@12850000 {
                        compatible = "arm,pl330", "arm,primecell";
                        reg = <0x12850000 0x1000>;
-                       interrupts = <0 34 0>;
+                       interrupts = <0 34 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clock CLK_MDMA>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
        jpeg_codec: jpeg-codec@11840000 {
                compatible = "samsung,exynos4210-jpeg";
                reg = <0x11840000 0x1000>;
-               interrupts = <0 88 0>;
+               interrupts = <0 88 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_JPEG>;
                clock-names = "jpeg";
                power-domains = <&pd_cam>;
        rotator: rotator@12810000 {
                compatible = "samsung,exynos4210-rotator";
                reg = <0x12810000 0x64>;
-               interrupts = <0 83 0>;
+               interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_ROTATOR>;
                clock-names = "rotator";
                iommus = <&sysmmu_rotator>;
        hdmi: hdmi@12D00000 {
                compatible = "samsung,exynos4210-hdmi";
                reg = <0x12D00000 0x70000>;
-               interrupts = <0 92 0>;
+               interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
                clock-names = "hdmi", "sclk_hdmi", "sclk_pixel", "sclk_hdmiphy",
                        "mout_hdmi";
                clocks = <&clock CLK_HDMI>, <&clock CLK_SCLK_HDMI>,
        hdmicec: cec@100B0000 {
                compatible = "samsung,s5p-cec";
                reg = <0x100B0000 0x200>;
-               interrupts = <0 114 0>;
+               interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_HDMI_CEC>;
                clock-names = "hdmicec";
                samsung,syscon-phandle = <&pmu_system_controller>;
 
        mixer: mixer@12C10000 {
                compatible = "samsung,exynos4210-mixer";
-               interrupts = <0 91 0>;
+               interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>;
                reg = <0x12C10000 0x2100>, <0x12c00000 0x300>;
                power-domains = <&pd_tv>;
                iommus = <&sysmmu_tv>;
        sss: sss@10830000 {
                compatible = "samsung,exynos4210-secss";
                reg = <0x10830000 0x300>;
-               interrupts = <0 112 0>;
+               interrupts = <0 112 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_SSS>;
                clock-names = "secss";
        };