diff options
author | Heiko Stuebner <heiko@sntech.de> | 2013-05-20 11:56:13 -0400 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2013-05-20 11:56:13 -0400 |
commit | af99a7507469d4fa6dd4d8d633e093b1ff7aff6e (patch) | |
tree | 667e75e419dc30de7d4a34b9492b799c3c140bd9 /drivers/pinctrl/pinctrl-samsung.c | |
parent | f722406faae2d073cc1d01063d1123c35425939e (diff) |
pinctrl: Add pinctrl-s3c24xx driver
The s3c24xx pins follow a similar pattern as the other Samsung SoCs and
can therefore reuse the already introduced infrastructure.
The s3c24xx SoCs have one design oddity in that the first 4 external
interrupts do not reside in the eint pending register but in the main
interrupt controller instead. We solve this by forwarding the external
interrupt from the main controller into the irq domain of the pin bank.
The masking/acking of these interrupts is handled in the same way.
Furthermore the S3C2412/2413 SoCs contain another oddity in that they
keep the same 4 eints in the main interrupt controller and eintpend
register and requiring ack operations to happen in both. This is solved
by using different compatible properties for the wakeup eint node which
set a property accordingly.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'drivers/pinctrl/pinctrl-samsung.c')
-rw-r--r-- | drivers/pinctrl/pinctrl-samsung.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/pinctrl/pinctrl-samsung.c b/drivers/pinctrl/pinctrl-samsung.c index 976366899f68..e2102062f40f 100644 --- a/drivers/pinctrl/pinctrl-samsung.c +++ b/drivers/pinctrl/pinctrl-samsung.c | |||
@@ -977,6 +977,16 @@ static const struct of_device_id samsung_pinctrl_dt_match[] = { | |||
977 | { .compatible = "samsung,s3c64xx-pinctrl", | 977 | { .compatible = "samsung,s3c64xx-pinctrl", |
978 | .data = s3c64xx_pin_ctrl }, | 978 | .data = s3c64xx_pin_ctrl }, |
979 | #endif | 979 | #endif |
980 | #ifdef CONFIG_PINCTRL_S3C24XX | ||
981 | { .compatible = "samsung,s3c2412-pinctrl", | ||
982 | .data = s3c2412_pin_ctrl }, | ||
983 | { .compatible = "samsung,s3c2416-pinctrl", | ||
984 | .data = s3c2416_pin_ctrl }, | ||
985 | { .compatible = "samsung,s3c2440-pinctrl", | ||
986 | .data = s3c2440_pin_ctrl }, | ||
987 | { .compatible = "samsung,s3c2450-pinctrl", | ||
988 | .data = s3c2450_pin_ctrl }, | ||
989 | #endif | ||
980 | {}, | 990 | {}, |
981 | }; | 991 | }; |
982 | MODULE_DEVICE_TABLE(of, samsung_pinctrl_dt_match); | 992 | MODULE_DEVICE_TABLE(of, samsung_pinctrl_dt_match); |