Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df7cb455 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'at91-for-next-cleanup' of git://github.com/at91linux/linux-at91 into next/cleanup



Nicolas Ferre <nicolas.ferre@atmel.com> writes:

   A series about interrupt controller cleanup. AT91 AIC is moving to
   fasteoi type of handler and sparse IRQ.
   The Device Tree support is added to take into account priority
   and external IRQ.
   In addition to that, the new AIC5 IP is introduced.

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>

* tag 'at91-for-next-cleanup' of git://github.com/at91linux/linux-at91:
  ARM: at91: add AIC5 support
  ARM: at91: remove mach/irqs.h
  ARM: at91: sparse irq support
  ARM: at91: at91 based machines specify their own irq handler at run time
  ARM: at91: remove static irq priorities for sam9x5
  ARM: at91: add of irq priorities support
  ARM: at91: aic add dt support for external irqs
  ARM: at91: aic can use fast eoi handler type
  ARM: at91: fix at91_aic_write macro
  ARM: at91: remove two unused headers
parents 6887a413 c4b68520
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ Required properties:
- compatible: Should be "atmel,<chip>-aic"
- interrupt-controller: Identifies the node as an interrupt controller.
- interrupt-parent: For single AIC system, it is an empty property.
- #interrupt-cells: The number of cells to define the interrupts. It sould be 2.
- #interrupt-cells: The number of cells to define the interrupts. It sould be 3.
  The first cell is the IRQ number (aka "Peripheral IDentifier" on datasheet).
  The second cell is used to specify flags:
    bits[3:0] trigger type and level flags:
@@ -14,7 +14,10 @@ Required properties:
      8 = active low level-sensitive.
      Valid combinations are 1, 2, 3, 4, 8.
      Default flag for internal sources should be set to 4 (active high).
  The third cell is used to specify the irq priority from 0 (lowest) to 7
  (highest).
- reg: Should contain AIC registers location and length
- atmel,external-irqs: u32 array of external irqs.

Examples:
	/*
@@ -24,7 +27,7 @@ Examples:
		compatible = "atmel,at91rm9200-aic";
		interrupt-controller;
		interrupt-parent;
		#interrupt-cells = <2>;
		#interrupt-cells = <3>;
		reg = <0xfffff000 0x200>;
	};

@@ -34,5 +37,5 @@ Examples:
	dma: dma-controller@ffffec00 {
		compatible = "atmel,at91sam9g45-dma";
		reg = <0xffffec00 0x200>;
		interrupts = <21 4>;
		interrupts = <21 4 5>;
	};
+19 −18
Original line number Diff line number Diff line
@@ -52,10 +52,11 @@
			ranges;

			aic: interrupt-controller@fffff000 {
				#interrupt-cells = <2>;
				#interrupt-cells = <3>;
				compatible = "atmel,at91rm9200-aic";
				interrupt-controller;
				reg = <0xfffff000 0x200>;
				atmel,external-irqs = <29 30 31>;
			};

			ramc0: ramc@ffffea00 {
@@ -81,25 +82,25 @@
			pit: timer@fffffd30 {
				compatible = "atmel,at91sam9260-pit";
				reg = <0xfffffd30 0xf>;
				interrupts = <1 4>;
				interrupts = <1 4 7>;
			};

			tcb0: timer@fffa0000 {
				compatible = "atmel,at91rm9200-tcb";
				reg = <0xfffa0000 0x100>;
				interrupts = <17 4 18 4 19 4>;
				interrupts = <17 4 0 18 4 0 19 4 0>;
			};

			tcb1: timer@fffdc000 {
				compatible = "atmel,at91rm9200-tcb";
				reg = <0xfffdc000 0x100>;
				interrupts = <26 4 27 4 28 4>;
				interrupts = <26 4 0 27 4 0 28 4 0>;
			};

			pioA: gpio@fffff400 {
				compatible = "atmel,at91rm9200-gpio";
				reg = <0xfffff400 0x100>;
				interrupts = <2 4>;
				interrupts = <2 4 1>;
				#gpio-cells = <2>;
				gpio-controller;
				interrupt-controller;
@@ -108,7 +109,7 @@
			pioB: gpio@fffff600 {
				compatible = "atmel,at91rm9200-gpio";
				reg = <0xfffff600 0x100>;
				interrupts = <3 4>;
				interrupts = <3 4 1>;
				#gpio-cells = <2>;
				gpio-controller;
				interrupt-controller;
@@ -117,7 +118,7 @@
			pioC: gpio@fffff800 {
				compatible = "atmel,at91rm9200-gpio";
				reg = <0xfffff800 0x100>;
				interrupts = <4 4>;
				interrupts = <4 4 1>;
				#gpio-cells = <2>;
				gpio-controller;
				interrupt-controller;
@@ -126,14 +127,14 @@
			dbgu: serial@fffff200 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfffff200 0x200>;
				interrupts = <1 4>;
				interrupts = <1 4 7>;
				status = "disabled";
			};

			usart0: serial@fffb0000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfffb0000 0x200>;
				interrupts = <6 4>;
				interrupts = <6 4 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				status = "disabled";
@@ -142,7 +143,7 @@
			usart1: serial@fffb4000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfffb4000 0x200>;
				interrupts = <7 4>;
				interrupts = <7 4 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				status = "disabled";
@@ -151,7 +152,7 @@
			usart2: serial@fffb8000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfffb8000 0x200>;
				interrupts = <8 4>;
				interrupts = <8 4 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				status = "disabled";
@@ -160,7 +161,7 @@
			usart3: serial@fffd0000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfffd0000 0x200>;
				interrupts = <23 4>;
				interrupts = <23 4 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				status = "disabled";
@@ -169,7 +170,7 @@
			usart4: serial@fffd4000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfffd4000 0x200>;
				interrupts = <24 4>;
				interrupts = <24 4 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				status = "disabled";
@@ -178,7 +179,7 @@
			usart5: serial@fffd8000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfffd8000 0x200>;
				interrupts = <25 4>;
				interrupts = <25 4 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				status = "disabled";
@@ -187,21 +188,21 @@
			macb0: ethernet@fffc4000 {
				compatible = "cdns,at32ap7000-macb", "cdns,macb";
				reg = <0xfffc4000 0x100>;
				interrupts = <21 4>;
				interrupts = <21 4 3>;
				status = "disabled";
			};

			usb1: gadget@fffa4000 {
				compatible = "atmel,at91rm9200-udc";
				reg = <0xfffa4000 0x4000>;
				interrupts = <10 4>;
				interrupts = <10 4 2>;
				status = "disabled";
			};

			adc0: adc@fffe0000 {
				compatible = "atmel,at91sam9260-adc";
				reg = <0xfffe0000 0x100>;
				interrupts = <5 4>;
				interrupts = <5 4 0>;
				atmel,adc-use-external-triggers;
				atmel,adc-channels-used = <0xf>;
				atmel,adc-vref = <3300>;
@@ -253,7 +254,7 @@
		usb0: ohci@00500000 {
			compatible = "atmel,at91rm9200-ohci", "usb-ohci";
			reg = <0x00500000 0x100000>;
			interrupts = <20 4>;
			interrupts = <20 4 2>;
			status = "disabled";
		};
	};
+16 −15
Original line number Diff line number Diff line
@@ -48,10 +48,11 @@
			ranges;

			aic: interrupt-controller@fffff000 {
				#interrupt-cells = <2>;
				#interrupt-cells = <3>;
				compatible = "atmel,at91rm9200-aic";
				interrupt-controller;
				reg = <0xfffff000 0x200>;
				atmel,external-irqs = <30 31>;
			};

			pmc: pmc@fffffc00 {
@@ -68,13 +69,13 @@
			pit: timer@fffffd30 {
				compatible = "atmel,at91sam9260-pit";
				reg = <0xfffffd30 0xf>;
				interrupts = <1 4>;
				interrupts = <1 4 7>;
			};

			tcb0: timer@fff7c000 {
				compatible = "atmel,at91rm9200-tcb";
				reg = <0xfff7c000 0x100>;
				interrupts = <19 4>;
				interrupts = <19 4 0>;
			};

			rstc@fffffd00 {
@@ -90,7 +91,7 @@
			pioA: gpio@fffff200 {
				compatible = "atmel,at91rm9200-gpio";
				reg = <0xfffff200 0x100>;
				interrupts = <2 4>;
				interrupts = <2 4 1>;
				#gpio-cells = <2>;
				gpio-controller;
				interrupt-controller;
@@ -99,7 +100,7 @@
			pioB: gpio@fffff400 {
				compatible = "atmel,at91rm9200-gpio";
				reg = <0xfffff400 0x100>;
				interrupts = <3 4>;
				interrupts = <3 4 1>;
				#gpio-cells = <2>;
				gpio-controller;
				interrupt-controller;
@@ -108,7 +109,7 @@
			pioC: gpio@fffff600 {
				compatible = "atmel,at91rm9200-gpio";
				reg = <0xfffff600 0x100>;
				interrupts = <4 4>;
				interrupts = <4 4 1>;
				#gpio-cells = <2>;
				gpio-controller;
				interrupt-controller;
@@ -117,7 +118,7 @@
			pioD: gpio@fffff800 {
				compatible = "atmel,at91rm9200-gpio";
				reg = <0xfffff800 0x100>;
				interrupts = <4 4>;
				interrupts = <4 4 1>;
				#gpio-cells = <2>;
				gpio-controller;
				interrupt-controller;
@@ -126,7 +127,7 @@
			pioE: gpio@fffffa00 {
				compatible = "atmel,at91rm9200-gpio";
				reg = <0xfffffa00 0x100>;
				interrupts = <4 4>;
				interrupts = <4 4 1>;
				#gpio-cells = <2>;
				gpio-controller;
				interrupt-controller;
@@ -135,14 +136,14 @@
			dbgu: serial@ffffee00 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xffffee00 0x200>;
				interrupts = <1 4>;
				interrupts = <1 4 7>;
				status = "disabled";
			};

			usart0: serial@fff8c000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfff8c000 0x200>;
				interrupts = <7 4>;
				interrupts = <7 4 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				status = "disabled";
@@ -151,7 +152,7 @@
			usart1: serial@fff90000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfff90000 0x200>;
				interrupts = <8 4>;
				interrupts = <8 4 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				status = "disabled";
@@ -160,7 +161,7 @@
			usart2: serial@fff94000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfff94000 0x200>;
				interrupts = <9 4>;
				interrupts = <9 4 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				status = "disabled";
@@ -169,14 +170,14 @@
			macb0: ethernet@fffbc000 {
				compatible = "cdns,at32ap7000-macb", "cdns,macb";
				reg = <0xfffbc000 0x100>;
				interrupts = <21 4>;
				interrupts = <21 4 3>;
				status = "disabled";
			};

			usb1: gadget@fff78000 {
				compatible = "atmel,at91rm9200-udc";
				reg = <0xfff78000 0x4000>;
				interrupts = <24 4>;
				interrupts = <24 4 2>;
				status = "disabled";
			};
		};
@@ -200,7 +201,7 @@
		usb0: ohci@00a00000 {
			compatible = "atmel,at91rm9200-ohci", "usb-ohci";
			reg = <0x00a00000 0x100000>;
			interrupts = <29 4>;
			interrupts = <29 4 2>;
			status = "disabled";
		};
	};
+20 −19
Original line number Diff line number Diff line
@@ -53,10 +53,11 @@
			ranges;

			aic: interrupt-controller@fffff000 {
				#interrupt-cells = <2>;
				#interrupt-cells = <3>;
				compatible = "atmel,at91rm9200-aic";
				interrupt-controller;
				reg = <0xfffff000 0x200>;
				atmel,external-irqs = <31>;
			};

			ramc0: ramc@ffffe400 {
@@ -78,7 +79,7 @@
			pit: timer@fffffd30 {
				compatible = "atmel,at91sam9260-pit";
				reg = <0xfffffd30 0xf>;
				interrupts = <1 4>;
				interrupts = <1 4 7>;
			};


@@ -90,25 +91,25 @@
			tcb0: timer@fff7c000 {
				compatible = "atmel,at91rm9200-tcb";
				reg = <0xfff7c000 0x100>;
				interrupts = <18 4>;
				interrupts = <18 4 0>;
			};

			tcb1: timer@fffd4000 {
				compatible = "atmel,at91rm9200-tcb";
				reg = <0xfffd4000 0x100>;
				interrupts = <18 4>;
				interrupts = <18 4 0>;
			};

			dma: dma-controller@ffffec00 {
				compatible = "atmel,at91sam9g45-dma";
				reg = <0xffffec00 0x200>;
				interrupts = <21 4>;
				interrupts = <21 4 0>;
			};

			pioA: gpio@fffff200 {
				compatible = "atmel,at91rm9200-gpio";
				reg = <0xfffff200 0x100>;
				interrupts = <2 4>;
				interrupts = <2 4 1>;
				#gpio-cells = <2>;
				gpio-controller;
				interrupt-controller;
@@ -117,7 +118,7 @@
			pioB: gpio@fffff400 {
				compatible = "atmel,at91rm9200-gpio";
				reg = <0xfffff400 0x100>;
				interrupts = <3 4>;
				interrupts = <3 4 1>;
				#gpio-cells = <2>;
				gpio-controller;
				interrupt-controller;
@@ -126,7 +127,7 @@
			pioC: gpio@fffff600 {
				compatible = "atmel,at91rm9200-gpio";
				reg = <0xfffff600 0x100>;
				interrupts = <4 4>;
				interrupts = <4 4 1>;
				#gpio-cells = <2>;
				gpio-controller;
				interrupt-controller;
@@ -135,7 +136,7 @@
			pioD: gpio@fffff800 {
				compatible = "atmel,at91rm9200-gpio";
				reg = <0xfffff800 0x100>;
				interrupts = <5 4>;
				interrupts = <5 4 1>;
				#gpio-cells = <2>;
				gpio-controller;
				interrupt-controller;
@@ -144,7 +145,7 @@
			pioE: gpio@fffffa00 {
				compatible = "atmel,at91rm9200-gpio";
				reg = <0xfffffa00 0x100>;
				interrupts = <5 4>;
				interrupts = <5 4 1>;
				#gpio-cells = <2>;
				gpio-controller;
				interrupt-controller;
@@ -153,14 +154,14 @@
			dbgu: serial@ffffee00 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xffffee00 0x200>;
				interrupts = <1 4>;
				interrupts = <1 4 7>;
				status = "disabled";
			};

			usart0: serial@fff8c000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfff8c000 0x200>;
				interrupts = <7 4>;
				interrupts = <7 4 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				status = "disabled";
@@ -169,7 +170,7 @@
			usart1: serial@fff90000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfff90000 0x200>;
				interrupts = <8 4>;
				interrupts = <8 4 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				status = "disabled";
@@ -178,7 +179,7 @@
			usart2: serial@fff94000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfff94000 0x200>;
				interrupts = <9 4>;
				interrupts = <9 4 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				status = "disabled";
@@ -187,7 +188,7 @@
			usart3: serial@fff98000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfff98000 0x200>;
				interrupts = <10 4>;
				interrupts = <10 4 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				status = "disabled";
@@ -196,14 +197,14 @@
			macb0: ethernet@fffbc000 {
				compatible = "cdns,at32ap7000-macb", "cdns,macb";
				reg = <0xfffbc000 0x100>;
				interrupts = <25 4>;
				interrupts = <25 4 3>;
				status = "disabled";
			};

			adc0: adc@fffb0000 {
				compatible = "atmel,at91sam9260-adc";
				reg = <0xfffb0000 0x100>;
				interrupts = <20 4>;
				interrupts = <20 4 0>;
				atmel,adc-use-external-triggers;
				atmel,adc-channels-used = <0xff>;
				atmel,adc-vref = <3300>;
@@ -257,14 +258,14 @@
		usb0: ohci@00700000 {
			compatible = "atmel,at91rm9200-ohci", "usb-ohci";
			reg = <0x00700000 0x100000>;
			interrupts = <22 4>;
			interrupts = <22 4 2>;
			status = "disabled";
		};

		usb1: ehci@00800000 {
			compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
			reg = <0x00800000 0x100000>;
			interrupts = <22 4>;
			interrupts = <22 4 2>;
			status = "disabled";
		};
	};
+15 −15
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@
			ranges;

			aic: interrupt-controller@fffff000 {
				#interrupt-cells = <2>;
				#interrupt-cells = <3>;
				compatible = "atmel,at91rm9200-aic";
				interrupt-controller;
				reg = <0xfffff000 0x200>;
@@ -74,7 +74,7 @@
			pit: timer@fffffe30 {
				compatible = "atmel,at91sam9260-pit";
				reg = <0xfffffe30 0xf>;
				interrupts = <1 4>;
				interrupts = <1 4 7>;
			};

			shdwc@fffffe10 {
@@ -85,25 +85,25 @@
			tcb0: timer@f8008000 {
				compatible = "atmel,at91sam9x5-tcb";
				reg = <0xf8008000 0x100>;
				interrupts = <17 4>;
				interrupts = <17 4 0>;
			};

			tcb1: timer@f800c000 {
				compatible = "atmel,at91sam9x5-tcb";
				reg = <0xf800c000 0x100>;
				interrupts = <17 4>;
				interrupts = <17 4 0>;
			};

			dma: dma-controller@ffffec00 {
				compatible = "atmel,at91sam9g45-dma";
				reg = <0xffffec00 0x200>;
				interrupts = <20 4>;
				interrupts = <20 4 0>;
			};

			pioA: gpio@fffff400 {
				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
				reg = <0xfffff400 0x100>;
				interrupts = <2 4>;
				interrupts = <2 4 1>;
				#gpio-cells = <2>;
				gpio-controller;
				interrupt-controller;
@@ -112,7 +112,7 @@
			pioB: gpio@fffff600 {
				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
				reg = <0xfffff600 0x100>;
				interrupts = <2 4>;
				interrupts = <2 4 1>;
				#gpio-cells = <2>;
				gpio-controller;
				interrupt-controller;
@@ -121,7 +121,7 @@
			pioC: gpio@fffff800 {
				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
				reg = <0xfffff800 0x100>;
				interrupts = <3 4>;
				interrupts = <3 4 1>;
				#gpio-cells = <2>;
				gpio-controller;
				interrupt-controller;
@@ -130,7 +130,7 @@
			pioD: gpio@fffffa00 {
				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
				reg = <0xfffffa00 0x100>;
				interrupts = <3 4>;
				interrupts = <3 4 1>;
				#gpio-cells = <2>;
				gpio-controller;
				interrupt-controller;
@@ -139,14 +139,14 @@
			dbgu: serial@fffff200 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfffff200 0x200>;
				interrupts = <1 4>;
				interrupts = <1 4 7>;
				status = "disabled";
			};

			usart0: serial@f801c000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xf801c000 0x4000>;
				interrupts = <5 4>;
				interrupts = <5 4 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				status = "disabled";
@@ -155,7 +155,7 @@
			usart1: serial@f8020000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xf8020000 0x4000>;
				interrupts = <6 4>;
				interrupts = <6 4 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				status = "disabled";
@@ -164,7 +164,7 @@
			usart2: serial@f8024000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xf8024000 0x4000>;
				interrupts = <7 4>;
				interrupts = <7 4 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				status = "disabled";
@@ -173,7 +173,7 @@
			usart3: serial@f8028000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xf8028000 0x4000>;
				interrupts = <8 4>;
				interrupts = <8 4 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				status = "disabled";
@@ -201,7 +201,7 @@
		usb0: ohci@00500000 {
			compatible = "atmel,at91rm9200-ohci", "usb-ohci";
			reg = <0x00500000 0x00100000>;
			interrupts = <22 4>;
			interrupts = <22 4 2>;
			status = "disabled";
		};
	};
Loading