diff options
author | Tomasz Figa <tomasz.figa@gmail.com> | 2013-04-12 15:17:21 -0400 |
---|---|---|
committer | Tomasz Figa <tomasz.figa@gmail.com> | 2013-08-05 19:21:45 -0400 |
commit | 95e43d4640b9891482c46470389fe8bf7267079d (patch) | |
tree | 746d3b0ce7508d121b1379fcc5278481bb6f94c4 | |
parent | 49d9eab595b50be74be51ce30843358cfc43bb14 (diff) |
ARM: SAMSUNG: Add new PWM platform device
This patch adds new samsung_device_pwm platform device that represents
the whole PWM/timer block and includes memory and IRQ resources.
Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: Mark Brown <broonie@linaro.org>
Tested-by: Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r-- | arch/arm/plat-samsung/devs.c | 17 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/devs.h | 1 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/pwm-core.h | 22 |
3 files changed, 40 insertions, 0 deletions
diff --git a/arch/arm/plat-samsung/devs.c b/arch/arm/plat-samsung/devs.c index 0f9c3f431a5f..bba6d78a4c24 100644 --- a/arch/arm/plat-samsung/devs.c +++ b/arch/arm/plat-samsung/devs.c | |||
@@ -58,6 +58,7 @@ | |||
58 | #include <plat/keypad.h> | 58 | #include <plat/keypad.h> |
59 | #include <linux/platform_data/mmc-s3cmci.h> | 59 | #include <linux/platform_data/mmc-s3cmci.h> |
60 | #include <linux/platform_data/mtd-nand-s3c2410.h> | 60 | #include <linux/platform_data/mtd-nand-s3c2410.h> |
61 | #include <plat/pwm-core.h> | ||
61 | #include <plat/sdhci.h> | 62 | #include <plat/sdhci.h> |
62 | #include <linux/platform_data/touchscreen-s3c2410.h> | 63 | #include <linux/platform_data/touchscreen-s3c2410.h> |
63 | #include <linux/platform_data/usb-s3c2410_udc.h> | 64 | #include <linux/platform_data/usb-s3c2410_udc.h> |
@@ -1127,6 +1128,22 @@ struct platform_device s3c_device_timer[] = { | |||
1127 | [3] = { DEFINE_S3C_TIMER(3, IRQ_TIMER3) }, | 1128 | [3] = { DEFINE_S3C_TIMER(3, IRQ_TIMER3) }, |
1128 | [4] = { DEFINE_S3C_TIMER(4, IRQ_TIMER4) }, | 1129 | [4] = { DEFINE_S3C_TIMER(4, IRQ_TIMER4) }, |
1129 | }; | 1130 | }; |
1131 | |||
1132 | static struct resource samsung_pwm_resource[] = { | ||
1133 | DEFINE_RES_MEM(SAMSUNG_PA_TIMER, SZ_4K), | ||
1134 | }; | ||
1135 | |||
1136 | struct platform_device samsung_device_pwm = { | ||
1137 | .name = "samsung-pwm", | ||
1138 | .id = -1, | ||
1139 | .num_resources = ARRAY_SIZE(samsung_pwm_resource), | ||
1140 | .resource = samsung_pwm_resource, | ||
1141 | }; | ||
1142 | |||
1143 | void __init samsung_pwm_set_platdata(struct samsung_pwm_variant *pd) | ||
1144 | { | ||
1145 | samsung_device_pwm.dev.platform_data = pd; | ||
1146 | } | ||
1130 | #endif /* CONFIG_SAMSUNG_DEV_PWM */ | 1147 | #endif /* CONFIG_SAMSUNG_DEV_PWM */ |
1131 | 1148 | ||
1132 | /* RTC */ | 1149 | /* RTC */ |
diff --git a/arch/arm/plat-samsung/include/plat/devs.h b/arch/arm/plat-samsung/include/plat/devs.h index 87d501ff3328..0dc4ac4909b0 100644 --- a/arch/arm/plat-samsung/include/plat/devs.h +++ b/arch/arm/plat-samsung/include/plat/devs.h | |||
@@ -134,6 +134,7 @@ extern struct platform_device exynos4_device_spdif; | |||
134 | 134 | ||
135 | extern struct platform_device samsung_asoc_idma; | 135 | extern struct platform_device samsung_asoc_idma; |
136 | extern struct platform_device samsung_device_keypad; | 136 | extern struct platform_device samsung_device_keypad; |
137 | extern struct platform_device samsung_device_pwm; | ||
137 | 138 | ||
138 | /* s3c2440 specific devices */ | 139 | /* s3c2440 specific devices */ |
139 | 140 | ||
diff --git a/arch/arm/plat-samsung/include/plat/pwm-core.h b/arch/arm/plat-samsung/include/plat/pwm-core.h new file mode 100644 index 000000000000..5bff1facb672 --- /dev/null +++ b/arch/arm/plat-samsung/include/plat/pwm-core.h | |||
@@ -0,0 +1,22 @@ | |||
1 | /* | ||
2 | * Copyright 2013 Tomasz Figa <tomasz.figa@gmail.com> | ||
3 | * | ||
4 | * Samsung PWM controller platform data helpers. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #ifndef __ASM_ARCH_PWM_CORE_H | ||
12 | #define __ASM_ARCH_PWM_CORE_H __FILE__ | ||
13 | |||
14 | #include <clocksource/samsung_pwm.h> | ||
15 | |||
16 | #ifdef CONFIG_SAMSUNG_DEV_PWM | ||
17 | extern void samsung_pwm_set_platdata(struct samsung_pwm_variant *pd); | ||
18 | #else | ||
19 | static inline void samsung_pwm_set_platdata(struct samsung_pwm_variant *pd) { } | ||
20 | #endif | ||
21 | |||
22 | #endif /* __ASM_ARCH_PWM_CORE_H */ | ||