18c2ecf20Sopenharmony_ciSamsung S3C24XX Interrupt Controllers 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciThe S3C24XX SoCs contain a custom set of interrupt controllers providing a 48c2ecf20Sopenharmony_civarying number of interrupt sources. The set consists of a main- and sub- 58c2ecf20Sopenharmony_cicontroller and on newer SoCs even a second main controller. 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ciRequired properties: 88c2ecf20Sopenharmony_ci- compatible: Compatible property value should be "samsung,s3c2410-irq" 98c2ecf20Sopenharmony_ci for machines before s3c2416 and "samsung,s3c2416-irq" for s3c2416 and later. 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci- reg: Physical base address of the controller and length of memory mapped 128c2ecf20Sopenharmony_ci region. 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci- interrupt-controller : Identifies the node as an interrupt controller 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ci- #interrupt-cells : Specifies the number of cells needed to encode an 178c2ecf20Sopenharmony_ci interrupt source. The value shall be 4 and interrupt descriptor shall 188c2ecf20Sopenharmony_ci have the following format: 198c2ecf20Sopenharmony_ci <ctrl_num parent_irq ctrl_irq type> 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci ctrl_num contains the controller to use: 228c2ecf20Sopenharmony_ci - 0 ... main controller 238c2ecf20Sopenharmony_ci - 1 ... sub controller 248c2ecf20Sopenharmony_ci - 2 ... second main controller on s3c2416 and s3c2450 258c2ecf20Sopenharmony_ci parent_irq contains the parent bit in the main controller and will be 268c2ecf20Sopenharmony_ci ignored in main controllers 278c2ecf20Sopenharmony_ci ctrl_irq contains the interrupt bit of the controller 288c2ecf20Sopenharmony_ci type contains the trigger type to use 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ciExample: 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci interrupt-controller@4a000000 { 338c2ecf20Sopenharmony_ci compatible = "samsung,s3c2410-irq"; 348c2ecf20Sopenharmony_ci reg = <0x4a000000 0x100>; 358c2ecf20Sopenharmony_ci interrupt-controller; 368c2ecf20Sopenharmony_ci #interrupt-cells=<4>; 378c2ecf20Sopenharmony_ci }; 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci [...] 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci serial@50000000 { 428c2ecf20Sopenharmony_ci compatible = "samsung,s3c2410-uart"; 438c2ecf20Sopenharmony_ci reg = <0x50000000 0x4000>; 448c2ecf20Sopenharmony_ci interrupt-parent = <&subintc>; 458c2ecf20Sopenharmony_ci interrupts = <1 28 0 4>, <1 28 1 4>; 468c2ecf20Sopenharmony_ci }; 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci rtc@57000000 { 498c2ecf20Sopenharmony_ci compatible = "samsung,s3c2410-rtc"; 508c2ecf20Sopenharmony_ci reg = <0x57000000 0x100>; 518c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 528c2ecf20Sopenharmony_ci interrupts = <0 30 0 3>, <0 8 0 3>; 538c2ecf20Sopenharmony_ci }; 54