[PATCH 12/14] ARM: S5PV310: Add various clocks
MyungJoo Ham
myungjoo.ham at samsung.com
Thu Aug 19 04:52:55 EDT 2010
On Wed, Aug 18, 2010 at 11:01 PM, Kukjin Kim <kgene.kim at samsung.com> wrote:
> From: Jongpill Lee <boyko.lee at samsung.com>
>
> This patch adds clocks for S5PV310/S5PC210.
>
> Signed-off-by: Jongpill Lee <boyko.lee at samsung.com>
> Signed-off-by: Kukjin Kim <kgene.kim at samsung.com>
> ---
> arch/arm/mach-s5pv310/clock.c | 155 ++++++++++++++++++++++++++++++++++++++++-
> 1 files changed, 154 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/mach-s5pv310/clock.c b/arch/arm/mach-s5pv310/clock.c
> index ec69edc..14c9707 100644
> --- a/arch/arm/mach-s5pv310/clock.c
> +++ b/arch/arm/mach-s5pv310/clock.c
> @@ -61,6 +61,26 @@ static int s5pv310_clksrc_mask_peril0_ctrl(struct clk *clk, int enable)
> return s5p_gatectrl(S5P_CLKSRC_MASK_PERIL0, clk, enable);
> }
>
> +static int s5pv310_clk_ip_cam_ctrl(struct clk *clk, int enable)
> +{
> + return s5p_gatectrl(S5P_CLKGATE_IP_CAM, clk, enable);
> +}
> +
> +static int s5pv310_clk_ip_image_ctrl(struct clk *clk, int enable)
> +{
> + return s5p_gatectrl(S5P_CLKGATE_IP_IMAGE, clk, enable);
> +}
> +
> +static int s5pv310_clk_ip_lcd0_ctrl(struct clk *clk, int enable)
> +{
> + return s5p_gatectrl(S5P_CLKGATE_IP_LCD0, clk, enable);
> +}
> +
> +static int s5pv310_clk_ip_lcd1_ctrl(struct clk *clk, int enable)
> +{
> + return s5p_gatectrl(S5P_CLKGATE_IP_LCD1, clk, enable);
> +}
> +
> static int s5pv310_clk_ip_fsys_ctrl(struct clk *clk, int enable)
> {
> return s5p_gatectrl(S5P_CLKGATE_IP_FSYS, clk, enable);
> @@ -275,6 +295,46 @@ static struct clk init_clocks_disable[] = {
> .enable = s5pv310_clk_ip_peril_ctrl,
> .ctrlbit = (1<<24),
> }, {
> + .name = "csis",
> + .id = 0,
> + .enable = s5pv310_clk_ip_cam_ctrl,
> + .ctrlbit = (1 << 4),
> + }, {
> + .name = "csis",
> + .id = 1,
> + .enable = s5pv310_clk_ip_cam_ctrl,
> + .ctrlbit = (1 << 5),
> + }, {
> + .name = "fimc",
> + .id = 0,
> + .enable = s5pv310_clk_ip_cam_ctrl,
> + .ctrlbit = (1 << 0),
> + }, {
> + .name = "fimc",
> + .id = 1,
> + .enable = s5pv310_clk_ip_cam_ctrl,
> + .ctrlbit = (1 << 1),
> + }, {
> + .name = "fimc",
> + .id = 2,
> + .enable = s5pv310_clk_ip_cam_ctrl,
> + .ctrlbit = (1 << 2),
> + }, {
> + .name = "fimc",
> + .id = 3,
> + .enable = s5pv310_clk_ip_cam_ctrl,
> + .ctrlbit = (1 << 3),
> + }, {
> + .name = "fimd",
> + .id = 0,
> + .enable = s5pv310_clk_ip_lcd0_ctrl,
> + .ctrlbit = (1 << 0),
> + }, {
> + .name = "fimd",
> + .id = 1,
> + .enable = s5pv310_clk_ip_lcd1_ctrl,
> + .ctrlbit = (1 << 0),
> + }, {
> .name = "hsmmc",
> .id = 0,
> .parent = &clk_aclk_133.clk,
> @@ -304,7 +364,100 @@ static struct clk init_clocks_disable[] = {
> .parent = &clk_aclk_133.clk,
> .enable = s5pv310_clk_ip_fsys_ctrl,
> .ctrlbit = (1 << 9),
> - }
> + }, {
> + .name = "sata",
> + .id = -1,
> + .enable = s5pv310_clk_ip_fsys_ctrl,
> + .ctrlbit = (1 << 10),
> + }, {
> + .name = "adc",
> + .id = -1,
> + .enable = s5pv310_clk_ip_peril_ctrl,
> + .ctrlbit = (1 << 15),
> + }, {
> + .name = "watchdog",
> + .id = -1,
> + .enable = s5pv310_clk_ip_peril_ctrl,
s5pv310_clk_ip_perir_ctrl (R, not L) appears to be correct for this entry.
Probably, we may need to sort these according to .enable entry (and
then .ctrlbit entry) later.
> + .ctrlbit = (1 << 14),
> + }, {
> + .name = "usbhost",
> + .id = -1,
> + .enable = s5pv310_clk_ip_fsys_ctrl ,
> + .ctrlbit = (1 << 12),
> + }, {
> + .name = "otg",
> + .id = -1,
> + .enable = s5pv310_clk_ip_fsys_ctrl,
> + .ctrlbit = (1 << 13),
> + }, {
> + .name = "spi",
> + .id = 0,
> + .enable = s5pv310_clk_ip_peril_ctrl,
> + .ctrlbit = (1 << 16),
> + }, {
> + .name = "spi",
> + .id = 1,
> + .enable = s5pv310_clk_ip_peril_ctrl,
> + .ctrlbit = (1 << 17),
> + }, {
> + .name = "spi",
> + .id = 2,
> + .enable = s5pv310_clk_ip_peril_ctrl,
> + .ctrlbit = (1 << 18),
> + }, {
> + .name = "fimg2d",
> + .id = -1,
> + .enable = s5pv310_clk_ip_image_ctrl,
> + .ctrlbit = (1 << 0),
> + }, {
> + .name = "i2c",
> + .id = 0,
> + .parent = &clk_aclk_100.clk,
> + .enable = s5pv310_clk_ip_peril_ctrl,
> + .ctrlbit = (1 << 6),
> + }, {
> + .name = "i2c",
> + .id = 1,
> + .parent = &clk_aclk_100.clk,
> + .enable = s5pv310_clk_ip_peril_ctrl,
> + .ctrlbit = (1 << 7),
> + }, {
> + .name = "i2c",
> + .id = 2,
> + .parent = &clk_aclk_100.clk,
> + .enable = s5pv310_clk_ip_peril_ctrl,
> + .ctrlbit = (1 << 8),
> + }, {
> + .name = "i2c",
> + .id = 3,
> + .parent = &clk_aclk_100.clk,
> + .enable = s5pv310_clk_ip_peril_ctrl,
> + .ctrlbit = (1 << 9),
> + }, {
> + .name = "i2c",
> + .id = 4,
> + .parent = &clk_aclk_100.clk,
> + .enable = s5pv310_clk_ip_peril_ctrl,
> + .ctrlbit = (1 << 10),
> + }, {
> + .name = "i2c",
> + .id = 5,
> + .parent = &clk_aclk_100.clk,
> + .enable = s5pv310_clk_ip_peril_ctrl,
> + .ctrlbit = (1 << 11),
> + }, {
> + .name = "i2c",
> + .id = 6,
> + .parent = &clk_aclk_100.clk,
> + .enable = s5pv310_clk_ip_peril_ctrl,
> + .ctrlbit = (1 << 12),
> + }, {
> + .name = "i2c",
> + .id = 7,
> + .parent = &clk_aclk_100.clk,
> + .enable = s5pv310_clk_ip_peril_ctrl,
> + .ctrlbit = (1 << 13),
> + },
> };
>
> static struct clk init_clocks[] = {
> --
> 1.6.2.5
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
--
MyungJoo Ham, Ph.D.
Mobile Software Platform Lab,
Digital Media and Communications (DMC) Business
Samsung Electronics
cell: 82-10-6714-2858
More information about the linux-arm-kernel
mailing list