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:
Родитель
64d64c3573
Коммит
e8e6b840c4
|
@ -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);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче