ARM: S3C24XX: transform irq handling into a declarative form

The irqs available on the machine and even the bit settings in the
irq registers differ a lot through all the s3c24xx subarchitectures.
This results in each subarch having its own irq init which adds its
specific irqs to the base ones created in plat-s3c24xx/irq.c.

This of course makes a future move to devicetree hard to implement.

Therefore this patch transforms the base irq handling to a declarative
style, where the irq types as well as its parent/child relationship
gets read from a predefined datastructure, which later on can hopefully
be easily represented in devicetree too.

It should also be easy to include the subarch specific irqs here
in later patches, reducing code size and duplication.

It should not affect anything outside of the file, as the original
irq numbers and their handling are preserved (hopefully) correctly.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
ARM: S3C24XX: Move irq syscore-ops to irq-pm

With this the definition of s3c24xx_irq_syscore_ops can also move to
common.h from plat/pm.h and the definitions of s3c24xx_irq_suspend
and s3c24xx_irq_resume are also not necessary anymore in plat/pm.h

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
ARM: S3C24XX: Modify s3c_irq_wake to use the hwirq property

This gets rid of the use of static irq mappings there.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
ARM: S3C24XX: move s3c2416 irq init to common irq code

This is needed to further clean up the irq init.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
ARM: S3C24XX: modify s3c2416 irq init to initialize all irqs

Previously the irq init used s3c24xx_init_irq and an additional
arch_initcall to add the cpu specific irqs.

To be able to simplyfy the irq init later, create a new function
s3c416_init_irq, which then calls s3c24xx_init_irq but also adds
the cpu specific irqs.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
ARM: S3C24XX: transform s3c2416 irqs into new structure

Share the common irq code by simply defining a correct mapping declaration
for the s3c2416.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
ARM: S3C24XX: move s3c2443 irq code to irq.c

Prequisite for further optimizations.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
ARM: S3C24XX: modify s3c2443 irq init to initialize all irqs

Previously the irq init used s3c24xx_init_irq and an additional
arch_initcall to add the cpu specific irqs.

To be able to simplyfy the irq init later, create a new function
s3c2443_init_irq, which then calls s3c24xx_init_irq but also adds
the cpu specific irqs.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
ARM: S3C24XX: transform s3c2443 subirqs into new structure

Share the common irq code by simply defining a correct mapping declaration
for the s3c2443.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Merge branch 'next/cleanup-samsung' into for-next
Merge branch 'next/cleanup-header' into for-next
Merge branch 'next/cleanup-s3c24xx' into for-next
Merge branch 'next/common-exynos' into for-next
Merge branch 'next/common-samsung' into for-next
Merge branch 'next/cpufreq-exynos' into for-next
Merge branch 'next/iommu-exynos' into for-next
Merge branch 'next/pmu-exynos' into for-next

Conflicts:
	arch/arm/mach-exynos/common.c
Merge branch 'next/secure-exynos' into for-next
Merge branch 'next/pinctrl-exynos' into for-next

Conflicts:
	arch/arm/mach-exynos/common.c
	drivers/gpio/gpio-samsung.c
Merge branch 'next/dt-exynos' into for-next