Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1a4120bc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull arm-soc timer updates from Arnd Bergmann:
 "This contains two branches dealing with timers, one for the picoxcell
  platform that is now using DT with the platform-independent
  dw_apb_timer driver.  The other change is for the omap-specific
  dmtimer driver."

* tag 'timer' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
  clocksource: dw_apb_timer: Add common DTS glue for dw_apb_timer
  ARM: OMAP2+: Simplify dmtimer clock aliases
  ARM: OMAP2+: Move dmtimer clock set function to dmtimer driver
  ARM: OMAP1: Fix dmtimer support
  ARM: OMAP: Add flag to indicate if a timer needs a manual reset
  ARM: OMAP: Remove timer function pointer for context loss counter
  ARM: OMAP: Remove loses_context variable from timer platform data
  ARM: OMAP2+: Fix external clock support for dmtimers
  ARM: OMAP2+: HWMOD: Correct timer device attributes
  ARM: OMAP: Add DMTIMER capability variable to represent timer features
  ARM: OMAP2+: Add dmtimer platform function to reserve systimers
  ARM: OMAP2+: Remove unused max number of timers definition
  ARM: OMAP: Remove unnecessary clk structure
parents 2fa37947 35bf8cc7
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
* Designware APB timer

Required properties:
- compatible: "snps,dw-apb-timer-sp" or "snps,dw-apb-timer-osc"
- reg: physical base address of the controller and length of memory mapped
  region.
- interrupts: IRQ line for the timer.
- clock-frequency: The frequency in HZ of the timer.
- clock-freq: For backwards compatibility with picoxcell

Example:

		timer1: timer@ffc09000 {
				compatible = "snps,dw-apb-timer-sp";
				interrupts = <0 168 4>;
				clock-frequency = <200000000>;
				reg = <0xffc09000 0x1000>;
			};

		timer2: timer@ffd00000 {
				compatible = "snps,dw-apb-timer-osc";
				interrupts = <0 169 4>;
				clock-frequency = <200000000>;
				reg = <0xffd00000 0x1000>;
			};
+1 −0
Original line number Diff line number Diff line
@@ -663,6 +663,7 @@ config ARCH_PICOXCELL
	select ARM_VIC
	select CPU_V6K
	select DW_APB_TIMER
	select DW_APB_TIMER_OF
	select GENERIC_CLOCKEVENTS
	select GENERIC_GPIO
	select HAVE_TCM
+2 −1
Original line number Diff line number Diff line
@@ -140,7 +140,8 @@ static int __init omap1_dm_timer_init(void)
		}

		pdata->set_timer_src = omap1_dm_timer_set_src;
		pdata->needs_manual_reset = 1;
		pdata->timer_capability = OMAP_TIMER_ALWON |
				OMAP_TIMER_NEEDS_RESET;

		ret = platform_device_add_data(pdev, pdata, sizeof(*pdata));
		if (ret) {
+3 −36
Original line number Diff line number Diff line
@@ -1897,42 +1897,9 @@ static struct omap_clk omap2420_clks[] = {
	CLK(NULL,	"pka_ick",	&pka_ick,	CK_242X),
	CLK(NULL,	"usb_fck",	&usb_fck,	CK_242X),
	CLK("musb-hdrc",	"fck",	&osc_ck,	CK_242X),
	CLK("omap_timer.1",	"32k_ck",	&func_32k_ck,	CK_243X),
	CLK("omap_timer.2",	"32k_ck",	&func_32k_ck,	CK_243X),
	CLK("omap_timer.3",	"32k_ck",	&func_32k_ck,	CK_243X),
	CLK("omap_timer.4",	"32k_ck",	&func_32k_ck,	CK_243X),
	CLK("omap_timer.5",	"32k_ck",	&func_32k_ck,	CK_243X),
	CLK("omap_timer.6",	"32k_ck",	&func_32k_ck,	CK_243X),
	CLK("omap_timer.7",	"32k_ck",	&func_32k_ck,	CK_243X),
	CLK("omap_timer.8",	"32k_ck",	&func_32k_ck,	CK_243X),
	CLK("omap_timer.9",	"32k_ck",	&func_32k_ck,	CK_243X),
	CLK("omap_timer.10",	"32k_ck",	&func_32k_ck,	CK_243X),
	CLK("omap_timer.11",	"32k_ck",	&func_32k_ck,	CK_243X),
	CLK("omap_timer.12",	"32k_ck",	&func_32k_ck,	CK_243X),
	CLK("omap_timer.1",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.2",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.3",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.4",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.5",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.6",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.7",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.8",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.9",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.10",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.11",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.12",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.1",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.2",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.3",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.4",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.5",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.6",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.7",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.8",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.9",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.10",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.11",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.12",	"alt_ck",	&alt_ck,	CK_243X),
	CLK(NULL,	"timer_32k_ck",	&func_32k_ck,	CK_243X),
	CLK(NULL,	"timer_sys_ck",	&sys_ck,	CK_243X),
	CLK(NULL,	"timer_ext_ck",	&alt_ck,	CK_243X),
};

/*
+3 −36
Original line number Diff line number Diff line
@@ -1990,42 +1990,9 @@ static struct omap_clk omap2430_clks[] = {
	CLK(NULL,	"mdm_intc_ick",	&mdm_intc_ick,	CK_243X),
	CLK("omap_hsmmc.0", "mmchsdb_fck",	&mmchsdb1_fck,	CK_243X),
	CLK("omap_hsmmc.1", "mmchsdb_fck",	&mmchsdb2_fck,	CK_243X),
	CLK("omap_timer.1",	"32k_ck",  &func_32k_ck,   CK_243X),
	CLK("omap_timer.2",	"32k_ck",  &func_32k_ck,   CK_243X),
	CLK("omap_timer.3",	"32k_ck",  &func_32k_ck,   CK_243X),
	CLK("omap_timer.4",	"32k_ck",  &func_32k_ck,   CK_243X),
	CLK("omap_timer.5",	"32k_ck",  &func_32k_ck,   CK_243X),
	CLK("omap_timer.6",	"32k_ck",  &func_32k_ck,   CK_243X),
	CLK("omap_timer.7",	"32k_ck",  &func_32k_ck,   CK_243X),
	CLK("omap_timer.8",	"32k_ck",  &func_32k_ck,   CK_243X),
	CLK("omap_timer.9",	"32k_ck",  &func_32k_ck,   CK_243X),
	CLK("omap_timer.10",	"32k_ck",  &func_32k_ck,   CK_243X),
	CLK("omap_timer.11",	"32k_ck",  &func_32k_ck,   CK_243X),
	CLK("omap_timer.12",	"32k_ck",  &func_32k_ck,   CK_243X),
	CLK("omap_timer.1",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.2",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.3",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.4",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.5",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.6",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.7",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.8",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.9",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.10",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.11",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.12",	"sys_ck",	&sys_ck,	CK_243X),
	CLK("omap_timer.1",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.2",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.3",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.4",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.5",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.6",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.7",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.8",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.9",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.10",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.11",	"alt_ck",	&alt_ck,	CK_243X),
	CLK("omap_timer.12",	"alt_ck",	&alt_ck,	CK_243X),
	CLK(NULL,	"timer_32k_ck",  &func_32k_ck,   CK_243X),
	CLK(NULL,	"timer_sys_ck",	&sys_ck,	CK_243X),
	CLK(NULL,	"timer_ext_ck",	&alt_ck,	CK_243X),
};

/*
Loading