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>
This commit is contained in:
Tushar Behera 2013-12-26 15:48:59 +05:30 коммит произвёл Mike Turquette
Родитель 64d64c3573
Коммит e8e6b840c4
2 изменённых файлов: 9 добавлений и 2 удалений

Просмотреть файл

@ -65,10 +65,12 @@ config COMMON_CLK_SI570
clock generators. clock generators.
config COMMON_CLK_S2MPS11 config COMMON_CLK_S2MPS11
tristate "Clock driver for S2MPS11 MFD" tristate "Clock driver for S2MPS11/S5M8767 MFD"
depends on MFD_SEC_CORE depends on MFD_SEC_CORE
---help--- ---help---
This driver supports S2MPS11 crystal oscillator clock. This driver supports S2MPS11/S5M8767 crystal oscillator clock. These
multi-function devices have 3 fixed-rate oscillators, clocked at
32KHz each.
config CLK_TWL6040 config CLK_TWL6040
tristate "External McPDM functional clock from twl6040" tristate "External McPDM functional clock from twl6040"

Просмотреть файл

@ -27,6 +27,7 @@
#include <linux/clk-provider.h> #include <linux/clk-provider.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/mfd/samsung/s2mps11.h> #include <linux/mfd/samsung/s2mps11.h>
#include <linux/mfd/samsung/s5m8767.h>
#include <linux/mfd/samsung/core.h> #include <linux/mfd/samsung/core.h>
#define s2mps11_name(a) (a->hw.init->name) #define s2mps11_name(a) (a->hw.init->name)
@ -175,6 +176,9 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
case S2MPS11X: case S2MPS11X:
s2mps11_reg = S2MPS11_REG_RTC_CTRL; s2mps11_reg = S2MPS11_REG_RTC_CTRL;
break; break;
case S5M8767X:
s2mps11_reg = S5M8767_REG_CTRL1;
break;
default: default:
dev_err(&pdev->dev, "Invalid device type\n"); dev_err(&pdev->dev, "Invalid device type\n");
return -EINVAL; return -EINVAL;
@ -254,6 +258,7 @@ static int s2mps11_clk_remove(struct platform_device *pdev)
static const struct platform_device_id s2mps11_clk_id[] = { static const struct platform_device_id s2mps11_clk_id[] = {
{ "s2mps11-clk", S2MPS11X}, { "s2mps11-clk", S2MPS11X},
{ "s5m8767-clk", S5M8767X},
{ }, { },
}; };
MODULE_DEVICE_TABLE(platform, s2mps11_clk_id); MODULE_DEVICE_TABLE(platform, s2mps11_clk_id);