diff options
author | Tushar Behera <tushar.behera@linaro.org> | 2013-12-26 05:18:59 -0500 |
---|---|---|
committer | Mike Turquette <mturquette@linaro.org> | 2014-03-18 20:13:24 -0400 |
commit | e8e6b840c4b646ce5aaef27875a22251ebc4e0d6 (patch) | |
tree | 1f366a6a7df279cf48b017040c68135064de86d6 | |
parent | 64d64c3573b3b6bf2d67fbb54d80bc73a1850f13 (diff) |
clk: clk-s2mps11: Add support for clocks in S5M8767 MFD
Since clock operation within S2MPS11 and S5M8767 are similar, we can
support both the devices within a single driver.
Signed-off-by: Tushar Behera <tushar.behera@linaro.org>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Reviewed-by: Yadwinder Singh Brar <yadi.brar@samsung.com>
Signed-off-by: Mike Turquette <mturquette@linaro.org>
-rw-r--r-- | drivers/clk/Kconfig | 6 | ||||
-rw-r--r-- | drivers/clk/clk-s2mps11.c | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig index 7641965d208d..da1b416aa579 100644 --- a/drivers/clk/Kconfig +++ b/drivers/clk/Kconfig | |||
@@ -65,10 +65,12 @@ config COMMON_CLK_SI570 | |||
65 | clock generators. | 65 | clock generators. |
66 | 66 | ||
67 | config COMMON_CLK_S2MPS11 | 67 | config COMMON_CLK_S2MPS11 |
68 | tristate "Clock driver for S2MPS11 MFD" | 68 | tristate "Clock driver for S2MPS11/S5M8767 MFD" |
69 | depends on MFD_SEC_CORE | 69 | depends on MFD_SEC_CORE |
70 | ---help--- | 70 | ---help--- |
71 | This driver supports S2MPS11 crystal oscillator clock. | 71 | This driver supports S2MPS11/S5M8767 crystal oscillator clock. These |
72 | multi-function devices have 3 fixed-rate oscillators, clocked at | ||
73 | 32KHz each. | ||
72 | 74 | ||
73 | config CLK_TWL6040 | 75 | config CLK_TWL6040 |
74 | tristate "External McPDM functional clock from twl6040" | 76 | tristate "External McPDM functional clock from twl6040" |
diff --git a/drivers/clk/clk-s2mps11.c b/drivers/clk/clk-s2mps11.c index 43e25bb405ea..f4c1f0881b6c 100644 --- a/drivers/clk/clk-s2mps11.c +++ b/drivers/clk/clk-s2mps11.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <linux/clk-provider.h> | 27 | #include <linux/clk-provider.h> |
28 | #include <linux/platform_device.h> | 28 | #include <linux/platform_device.h> |
29 | #include <linux/mfd/samsung/s2mps11.h> | 29 | #include <linux/mfd/samsung/s2mps11.h> |
30 | #include <linux/mfd/samsung/s5m8767.h> | ||
30 | #include <linux/mfd/samsung/core.h> | 31 | #include <linux/mfd/samsung/core.h> |
31 | 32 | ||
32 | #define s2mps11_name(a) (a->hw.init->name) | 33 | #define s2mps11_name(a) (a->hw.init->name) |
@@ -175,6 +176,9 @@ static int s2mps11_clk_probe(struct platform_device *pdev) | |||
175 | case S2MPS11X: | 176 | case S2MPS11X: |
176 | s2mps11_reg = S2MPS11_REG_RTC_CTRL; | 177 | s2mps11_reg = S2MPS11_REG_RTC_CTRL; |
177 | break; | 178 | break; |
179 | case S5M8767X: | ||
180 | s2mps11_reg = S5M8767_REG_CTRL1; | ||
181 | break; | ||
178 | default: | 182 | default: |
179 | dev_err(&pdev->dev, "Invalid device type\n"); | 183 | dev_err(&pdev->dev, "Invalid device type\n"); |
180 | return -EINVAL; | 184 | return -EINVAL; |
@@ -254,6 +258,7 @@ static int s2mps11_clk_remove(struct platform_device *pdev) | |||
254 | 258 | ||
255 | static const struct platform_device_id s2mps11_clk_id[] = { | 259 | static const struct platform_device_id s2mps11_clk_id[] = { |
256 | { "s2mps11-clk", S2MPS11X}, | 260 | { "s2mps11-clk", S2MPS11X}, |
261 | { "s5m8767-clk", S5M8767X}, | ||
257 | { }, | 262 | { }, |
258 | }; | 263 | }; |
259 | MODULE_DEVICE_TABLE(platform, s2mps11_clk_id); | 264 | MODULE_DEVICE_TABLE(platform, s2mps11_clk_id); |