All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ARM: S5P: Add Timer support
@ 2010-01-21  7:53 Kukjin Kim
  2010-01-21  8:23 ` Ben Dooks
  0 siblings, 1 reply; 2+ messages in thread
From: Kukjin Kim @ 2010-01-21  7:53 UTC (permalink / raw)
  To: linux-samsung-soc; +Cc: ben-linux, Kukjin Kim

This patch adds timer support common functions for S5P. Samsung S5P
SoC uses the PWM timer for the system clock ticks and so reuses the
s3c implementation of the timer. This patch also adds support
definitions required by the s3c timer implementation.
And files of same function remove in the mach-s5p6440/include/mach.

Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
---
 arch/arm/mach-s5p6440/include/mach/pwm-clock.h |   62 ---------------------
 arch/arm/mach-s5p6440/include/mach/tick.h      |   24 --------
 arch/arm/plat-s5p/include/mach/pwm-clock.h     |   69 ++++++++++++++++++++++++
 arch/arm/plat-s5p/include/mach/tick.h          |   26 +++++++++
 4 files changed, 95 insertions(+), 86 deletions(-)
 delete mode 100644 arch/arm/mach-s5p6440/include/mach/pwm-clock.h
 delete mode 100644 arch/arm/mach-s5p6440/include/mach/tick.h
 create mode 100644 arch/arm/plat-s5p/include/mach/pwm-clock.h
 create mode 100644 arch/arm/plat-s5p/include/mach/tick.h

diff --git a/arch/arm/mach-s5p6440/include/mach/pwm-clock.h b/arch/arm/mach-s5p6440/include/mach/pwm-clock.h
deleted file mode 100644
index c4bb7c5..0000000
--- a/arch/arm/mach-s5p6440/include/mach/pwm-clock.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* linux/arch/arm/mach-s5p6440/include/mach/pwm-clock.h
- *
- * Copyright 2008 Simtec Electronics
- *      Ben Dooks <ben@simtec.co.uk>
- *      http://armlinux.simtec.co.uk/
- *
- * Copyright 2009 Samsung Electronics Co., Ltd.
- *		http://www.samsung.com/
- *
- * S5P6440 - pwm clock and timer support
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-/**
- * pwm_cfg_src_is_tclk() - return whether the given mux config is a tclk
- * @cfg: The timer TCFG1 register bits shifted down to 0.
- *
- * Return true if the given configuration from TCFG1 is a TCLK instead
- * any of the TDIV clocks.
- */
-static inline int pwm_cfg_src_is_tclk(unsigned long tcfg)
-{
-	return tcfg == S3C2410_TCFG1_MUX_TCLK;
-}
-
-/**
- * tcfg_to_divisor() - convert tcfg1 setting to a divisor
- * @tcfg1: The tcfg1 setting, shifted down.
- *
- * Get the divisor value for the given tcfg1 setting. We assume the
- * caller has already checked to see if this is not a TCLK source.
- */
-static inline unsigned long tcfg_to_divisor(unsigned long tcfg1)
-{
-	return 1 << (1 + tcfg1);
-}
-
-/**
- * pwm_tdiv_has_div1() - does the tdiv setting have a /1
- *
- * Return true if we have a /1 in the tdiv setting.
- */
-static inline unsigned int pwm_tdiv_has_div1(void)
-{
-	return 0;
-}
-
-/**
- * pwm_tdiv_div_bits() - calculate TCFG1 divisor value.
- * @div: The divisor to calculate the bit information for.
- *
- * Turn a divisor into the necessary bit field for TCFG1.
- */
-static inline unsigned long pwm_tdiv_div_bits(unsigned int div)
-{
-	return ilog2(div) - 1;
-}
-
-#define S3C_TCFG1_MUX_TCLK S3C2410_TCFG1_MUX_TCLK
diff --git a/arch/arm/mach-s5p6440/include/mach/tick.h b/arch/arm/mach-s5p6440/include/mach/tick.h
deleted file mode 100644
index 0815aeb..0000000
--- a/arch/arm/mach-s5p6440/include/mach/tick.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* linux/arch/arm/mach-s5p6440/include/mach/tick.h
- *
- * Copyright (c) 2009 Samsung Electronics Co., Ltd.
- *		http://www.samsung.com/
- *
- * S5P6440 - Timer tick support definitions
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#ifndef __ASM_ARCH_TICK_H
-#define __ASM_ARCH_TICK_H __FILE__
-
-static inline u32 s3c24xx_ostimer_pending(void)
-{
-	u32 pend = __raw_readl(S5P_VA_VIC0 + VIC_RAW_STATUS);
-	return pend & (1 << (IRQ_TIMER4_VIC - S5P_IRQ_VIC0(0)));
-}
-
-#define TICK_MAX	(0xffffffff)
-
-#endif /* __ASM_ARCH_TICK_H */
diff --git a/arch/arm/plat-s5p/include/mach/pwm-clock.h b/arch/arm/plat-s5p/include/mach/pwm-clock.h
new file mode 100644
index 0000000..6d35cc5
--- /dev/null
+++ b/arch/arm/plat-s5p/include/mach/pwm-clock.h
@@ -0,0 +1,69 @@
+/* linux/arch/arm/plat-s5p/include/mach/pwm-clock.h
+ *
+ * Copyright 2008 Simtec Electronics
+ *      Ben Dooks <ben@simtec.co.uk>
+ *      http://armlinux.simtec.co.uk/
+ *
+ * Copyright (c) 2009 Samsung Electronics Co., Ltd.
+ *		http://www.samsung.com/
+ *
+ * Based on arch/arm/plat-s3c24xx/include/mach/pwm-clock.h
+ *
+ * S5P pwm clock and timer support
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#ifndef __ASM_ARCH_PWMCLK_H
+#define __ASM_ARCH_PWMCLK_H __FILE__
+
+/**
+ * pwm_cfg_src_is_tclk() - return whether the given mux config is a tclk
+ * @cfg: The timer TCFG1 register bits shifted down to 0.
+ *
+ * Return true if the given configuration from TCFG1 is a TCLK instead
+ * any of the TDIV clocks.
+ */
+static inline int pwm_cfg_src_is_tclk(unsigned long tcfg)
+{
+	return tcfg == S3C2410_TCFG1_MUX_TCLK;
+}
+
+/**
+ * tcfg_to_divisor() - convert tcfg1 setting to a divisor
+ * @tcfg1: The tcfg1 setting, shifted down.
+ *
+ * Get the divisor value for the given tcfg1 setting. We assume the
+ * caller has already checked to see if this is not a TCLK source.
+ */
+static inline unsigned long tcfg_to_divisor(unsigned long tcfg1)
+{
+	return 1 << (1 + tcfg1);
+}
+
+/**
+ * pwm_tdiv_has_div1() - does the tdiv setting have a /1
+ *
+ * Return true if we have a /1 in the tdiv setting.
+ */
+static inline unsigned int pwm_tdiv_has_div1(void)
+{
+	return 0;
+}
+
+/**
+ * pwm_tdiv_div_bits() - calculate TCFG1 divisor value.
+ * @div: The divisor to calculate the bit information for.
+ *
+ * Turn a divisor into the necessary bit field for TCFG1.
+ */
+static inline unsigned long pwm_tdiv_div_bits(unsigned int div)
+{
+	return ilog2(div) - 1;
+}
+
+#define S3C_TCFG1_MUX_TCLK S3C2410_TCFG1_MUX_TCLK
+
+#endif /* __ASM_ARCH_PWMCLK_H */
diff --git a/arch/arm/plat-s5p/include/mach/tick.h b/arch/arm/plat-s5p/include/mach/tick.h
new file mode 100644
index 0000000..9ab0c19
--- /dev/null
+++ b/arch/arm/plat-s5p/include/mach/tick.h
@@ -0,0 +1,26 @@
+/* linux/arch/arm/plat-s5pv210/include/mach/tick.h
+ *
+ * Copyright (c) 2009 Samsung Electronics Co., Ltd.
+ *		http://www.samsung.com/
+ *
+ * Based on arch/arm/mach-s3c6400/include/mach/tick.h
+ *
+ * S5P Timer tick support definitions
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#ifndef __ASM_ARCH_TICK_H
+#define __ASM_ARCH_TICK_H __FILE__
+
+static inline u32 s3c24xx_ostimer_pending(void)
+{
+	u32 pend = __raw_readl(S5P_VA_VIC0 + VIC_RAW_STATUS);
+	return pend & (1 << (IRQ_TIMER4_VIC - S5P_IRQ_VIC0(0)));
+}
+
+#define TICK_MAX	(0xffffffff)
+
+#endif /* __ASM_ARCH_TICK_H */
-- 
1.6.2.5

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] ARM: S5P: Add Timer support
  2010-01-21  7:53 [PATCH] ARM: S5P: Add Timer support Kukjin Kim
@ 2010-01-21  8:23 ` Ben Dooks
  0 siblings, 0 replies; 2+ messages in thread
From: Ben Dooks @ 2010-01-21  8:23 UTC (permalink / raw)
  To: Kukjin Kim; +Cc: linux-samsung-soc, ben-linux

On Thu, Jan 21, 2010 at 04:53:03PM +0900, Kukjin Kim wrote:
> This patch adds timer support common functions for S5P. Samsung S5P
> SoC uses the PWM timer for the system clock ticks and so reuses the
> s3c implementation of the timer. This patch also adds support
> definitions required by the s3c timer implementation.
> And files of same function remove in the mach-s5p6440/include/mach.

ok, will apply to next-samsung-s5p-updates
 
> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
> ---
>  arch/arm/mach-s5p6440/include/mach/pwm-clock.h |   62 ---------------------
>  arch/arm/mach-s5p6440/include/mach/tick.h      |   24 --------
>  arch/arm/plat-s5p/include/mach/pwm-clock.h     |   69 ++++++++++++++++++++++++
>  arch/arm/plat-s5p/include/mach/tick.h          |   26 +++++++++
>  4 files changed, 95 insertions(+), 86 deletions(-)
>  delete mode 100644 arch/arm/mach-s5p6440/include/mach/pwm-clock.h
>  delete mode 100644 arch/arm/mach-s5p6440/include/mach/tick.h
>  create mode 100644 arch/arm/plat-s5p/include/mach/pwm-clock.h
>  create mode 100644 arch/arm/plat-s5p/include/mach/tick.h
> 
> diff --git a/arch/arm/mach-s5p6440/include/mach/pwm-clock.h b/arch/arm/mach-s5p6440/include/mach/pwm-clock.h
> deleted file mode 100644
> index c4bb7c5..0000000
> --- a/arch/arm/mach-s5p6440/include/mach/pwm-clock.h
> +++ /dev/null
> @@ -1,62 +0,0 @@
> -/* linux/arch/arm/mach-s5p6440/include/mach/pwm-clock.h
> - *
> - * Copyright 2008 Simtec Electronics
> - *      Ben Dooks <ben@simtec.co.uk>
> - *      http://armlinux.simtec.co.uk/
> - *
> - * Copyright 2009 Samsung Electronics Co., Ltd.
> - *		http://www.samsung.com/
> - *
> - * S5P6440 - pwm clock and timer support
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License version 2 as
> - * published by the Free Software Foundation.
> -*/
> -
> -/**
> - * pwm_cfg_src_is_tclk() - return whether the given mux config is a tclk
> - * @cfg: The timer TCFG1 register bits shifted down to 0.
> - *
> - * Return true if the given configuration from TCFG1 is a TCLK instead
> - * any of the TDIV clocks.
> - */
> -static inline int pwm_cfg_src_is_tclk(unsigned long tcfg)
> -{
> -	return tcfg == S3C2410_TCFG1_MUX_TCLK;
> -}
> -
> -/**
> - * tcfg_to_divisor() - convert tcfg1 setting to a divisor
> - * @tcfg1: The tcfg1 setting, shifted down.
> - *
> - * Get the divisor value for the given tcfg1 setting. We assume the
> - * caller has already checked to see if this is not a TCLK source.
> - */
> -static inline unsigned long tcfg_to_divisor(unsigned long tcfg1)
> -{
> -	return 1 << (1 + tcfg1);
> -}
> -
> -/**
> - * pwm_tdiv_has_div1() - does the tdiv setting have a /1
> - *
> - * Return true if we have a /1 in the tdiv setting.
> - */
> -static inline unsigned int pwm_tdiv_has_div1(void)
> -{
> -	return 0;
> -}
> -
> -/**
> - * pwm_tdiv_div_bits() - calculate TCFG1 divisor value.
> - * @div: The divisor to calculate the bit information for.
> - *
> - * Turn a divisor into the necessary bit field for TCFG1.
> - */
> -static inline unsigned long pwm_tdiv_div_bits(unsigned int div)
> -{
> -	return ilog2(div) - 1;
> -}
> -
> -#define S3C_TCFG1_MUX_TCLK S3C2410_TCFG1_MUX_TCLK
> diff --git a/arch/arm/mach-s5p6440/include/mach/tick.h b/arch/arm/mach-s5p6440/include/mach/tick.h
> deleted file mode 100644
> index 0815aeb..0000000
> --- a/arch/arm/mach-s5p6440/include/mach/tick.h
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -/* linux/arch/arm/mach-s5p6440/include/mach/tick.h
> - *
> - * Copyright (c) 2009 Samsung Electronics Co., Ltd.
> - *		http://www.samsung.com/
> - *
> - * S5P6440 - Timer tick support definitions
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License version 2 as
> - * published by the Free Software Foundation.
> -*/
> -
> -#ifndef __ASM_ARCH_TICK_H
> -#define __ASM_ARCH_TICK_H __FILE__
> -
> -static inline u32 s3c24xx_ostimer_pending(void)
> -{
> -	u32 pend = __raw_readl(S5P_VA_VIC0 + VIC_RAW_STATUS);
> -	return pend & (1 << (IRQ_TIMER4_VIC - S5P_IRQ_VIC0(0)));
> -}
> -
> -#define TICK_MAX	(0xffffffff)
> -
> -#endif /* __ASM_ARCH_TICK_H */
> diff --git a/arch/arm/plat-s5p/include/mach/pwm-clock.h b/arch/arm/plat-s5p/include/mach/pwm-clock.h
> new file mode 100644
> index 0000000..6d35cc5
> --- /dev/null
> +++ b/arch/arm/plat-s5p/include/mach/pwm-clock.h
> @@ -0,0 +1,69 @@
> +/* linux/arch/arm/plat-s5p/include/mach/pwm-clock.h
> + *
> + * Copyright 2008 Simtec Electronics
> + *      Ben Dooks <ben@simtec.co.uk>
> + *      http://armlinux.simtec.co.uk/
> + *
> + * Copyright (c) 2009 Samsung Electronics Co., Ltd.
> + *		http://www.samsung.com/
> + *
> + * Based on arch/arm/plat-s3c24xx/include/mach/pwm-clock.h
> + *
> + * S5P pwm clock and timer support
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> +*/
> +
> +#ifndef __ASM_ARCH_PWMCLK_H
> +#define __ASM_ARCH_PWMCLK_H __FILE__
> +
> +/**
> + * pwm_cfg_src_is_tclk() - return whether the given mux config is a tclk
> + * @cfg: The timer TCFG1 register bits shifted down to 0.
> + *
> + * Return true if the given configuration from TCFG1 is a TCLK instead
> + * any of the TDIV clocks.
> + */
> +static inline int pwm_cfg_src_is_tclk(unsigned long tcfg)
> +{
> +	return tcfg == S3C2410_TCFG1_MUX_TCLK;
> +}
> +
> +/**
> + * tcfg_to_divisor() - convert tcfg1 setting to a divisor
> + * @tcfg1: The tcfg1 setting, shifted down.
> + *
> + * Get the divisor value for the given tcfg1 setting. We assume the
> + * caller has already checked to see if this is not a TCLK source.
> + */
> +static inline unsigned long tcfg_to_divisor(unsigned long tcfg1)
> +{
> +	return 1 << (1 + tcfg1);
> +}
> +
> +/**
> + * pwm_tdiv_has_div1() - does the tdiv setting have a /1
> + *
> + * Return true if we have a /1 in the tdiv setting.
> + */
> +static inline unsigned int pwm_tdiv_has_div1(void)
> +{
> +	return 0;
> +}
> +
> +/**
> + * pwm_tdiv_div_bits() - calculate TCFG1 divisor value.
> + * @div: The divisor to calculate the bit information for.
> + *
> + * Turn a divisor into the necessary bit field for TCFG1.
> + */
> +static inline unsigned long pwm_tdiv_div_bits(unsigned int div)
> +{
> +	return ilog2(div) - 1;
> +}
> +
> +#define S3C_TCFG1_MUX_TCLK S3C2410_TCFG1_MUX_TCLK
> +
> +#endif /* __ASM_ARCH_PWMCLK_H */
> diff --git a/arch/arm/plat-s5p/include/mach/tick.h b/arch/arm/plat-s5p/include/mach/tick.h
> new file mode 100644
> index 0000000..9ab0c19
> --- /dev/null
> +++ b/arch/arm/plat-s5p/include/mach/tick.h
> @@ -0,0 +1,26 @@
> +/* linux/arch/arm/plat-s5pv210/include/mach/tick.h
> + *
> + * Copyright (c) 2009 Samsung Electronics Co., Ltd.
> + *		http://www.samsung.com/
> + *
> + * Based on arch/arm/mach-s3c6400/include/mach/tick.h
> + *
> + * S5P Timer tick support definitions
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> +*/
> +
> +#ifndef __ASM_ARCH_TICK_H
> +#define __ASM_ARCH_TICK_H __FILE__
> +
> +static inline u32 s3c24xx_ostimer_pending(void)
> +{
> +	u32 pend = __raw_readl(S5P_VA_VIC0 + VIC_RAW_STATUS);
> +	return pend & (1 << (IRQ_TIMER4_VIC - S5P_IRQ_VIC0(0)));
> +}
> +
> +#define TICK_MAX	(0xffffffff)
> +
> +#endif /* __ASM_ARCH_TICK_H */
> -- 
> 1.6.2.5
> 

-- 
-- 
Ben

Q:      What's a light-year?
A:      One-third less calories than a regular year.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-01-21  8:23 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-21  7:53 [PATCH] ARM: S5P: Add Timer support Kukjin Kim
2010-01-21  8:23 ` Ben Dooks

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.