xref: /freebsd/sys/contrib/device-tree/Bindings/interrupt-controller/qca,ath79-cpu-intc.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotBinding for Qualcomm Atheros AR7xxx/AR9XXX CPU interrupt controller
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotOn most SoC the IRQ controller need to flush the DDR FIFO before running
4*c66ec88fSEmmanuel Vadotthe interrupt handler of some devices. This is configured using the
5*c66ec88fSEmmanuel Vadotqca,ddr-wb-channels and qca,ddr-wb-channel-interrupts properties.
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel VadotRequired Properties:
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel Vadot- compatible: has to be "qca,<soctype>-cpu-intc", "qca,ar7100-cpu-intc"
10*c66ec88fSEmmanuel Vadot  as fallback
11*c66ec88fSEmmanuel Vadot- interrupt-controller : Identifies the node as an interrupt controller
12*c66ec88fSEmmanuel Vadot- #interrupt-cells : Specifies the number of cells needed to encode interrupt
13*c66ec88fSEmmanuel Vadot		     source, should be 1 for intc
14*c66ec88fSEmmanuel Vadot
15*c66ec88fSEmmanuel VadotPlease refer to interrupts.txt in this directory for details of the common
16*c66ec88fSEmmanuel VadotInterrupt Controllers bindings used by client devices.
17*c66ec88fSEmmanuel Vadot
18*c66ec88fSEmmanuel VadotOptional Properties:
19*c66ec88fSEmmanuel Vadot
20*c66ec88fSEmmanuel Vadot- qca,ddr-wb-channel-interrupts: List of the interrupts needing a write
21*c66ec88fSEmmanuel Vadot  buffer flush
22*c66ec88fSEmmanuel Vadot- qca,ddr-wb-channels: List of phandles to the write buffer channels for
23*c66ec88fSEmmanuel Vadot  each interrupt. If qca,ddr-wb-channel-interrupts is not present the interrupt
24*c66ec88fSEmmanuel Vadot  default to the entry's index.
25*c66ec88fSEmmanuel Vadot
26*c66ec88fSEmmanuel VadotExample:
27*c66ec88fSEmmanuel Vadot
28*c66ec88fSEmmanuel Vadot	interrupt-controller {
29*c66ec88fSEmmanuel Vadot		compatible = "qca,ar9132-cpu-intc", "qca,ar7100-cpu-intc";
30*c66ec88fSEmmanuel Vadot
31*c66ec88fSEmmanuel Vadot		interrupt-controller;
32*c66ec88fSEmmanuel Vadot		#interrupt-cells = <1>;
33*c66ec88fSEmmanuel Vadot
34*c66ec88fSEmmanuel Vadot		qca,ddr-wb-channel-interrupts = <2>, <3>, <4>, <5>;
35*c66ec88fSEmmanuel Vadot		qca,ddr-wb-channels = <&ddr_ctrl 3>, <&ddr_ctrl 2>,
36*c66ec88fSEmmanuel Vadot					<&ddr_ctrl 0>, <&ddr_ctrl 1>;
37*c66ec88fSEmmanuel Vadot	};
38*c66ec88fSEmmanuel Vadot
39*c66ec88fSEmmanuel Vadot	...
40*c66ec88fSEmmanuel Vadot
41*c66ec88fSEmmanuel Vadot	ddr_ctrl: memory-controller@18000000 {
42*c66ec88fSEmmanuel Vadot		...
43*c66ec88fSEmmanuel Vadot		#qca,ddr-wb-channel-cells = <1>;
44*c66ec88fSEmmanuel Vadot	};
45