During dmtimer early init, when device model is not up yet and dmtimer devices are not yet registered, the initialization routine is unable to read clock sources supported by the dmtimers using clk_get() because it searches the list using device names. This problem is overcome by assigning timer device names to the .init_name field. The advantage is that there is one common set of routines for clock access routines for early init and normal access. This patch also modifies the name of millisecond timers (1,2,10) on OMAP3 and OMAP4 from"timer_1ms" to "timer". This means all timers now have common name. This is to allow any one of the available timers as an early timer instead of restricting it just to millisecond timers. The hwmod routine which searches by class name can now search and find all timers for initialization and bind to device model during early init. Signed-off-by: Tarun Kanti DebBarma <tarun.kanti@xxxxxx> Cc: Cousson, Benoit <b-cousson@xxxxxx> Cc: Paul Walmsley <paul@xxxxxxxxx> Cc: Kevin Hilman <khilman@xxxxxxxxxxxxxxxxxxx> Cc: Tony Lindgren <tony@xxxxxxxxxxx> --- arch/arm/mach-omap2/omap_hwmod_2420_data.c | 91 ++++++++++++++++++++++++++++ arch/arm/mach-omap2/omap_hwmod_2430_data.c | 91 ++++++++++++++++++++++++++++ arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 86 ++++++++++++++++++++++++++- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 86 ++++++++++++++++++++++++++- 4 files changed, 352 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c b/arch/arm/mach-omap2/omap_hwmod_2420_data.c index b3dd8ac..fc761a5 100644 --- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c @@ -177,6 +177,85 @@ static struct omap_hwmod_class omap2420_timer_hwmod_class = { .rev = OMAP_TIMER_IP_VERSION_1, }; +/* + * during dmtimer early init, when device model is not up yet and dmtimer + * devices are not yet registered, the initialization routine is unable + * to read clock sources supported by the dmtimers using clk_get() because + * it searches the list using device names. this problem is overcome by + * assigning timer device names to the .init_name field. + */ +static struct omap_device timer1_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.0" }, + }, +}; + +static struct omap_device timer2_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.1" }, + }, +}; + +static struct omap_device timer3_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.2" }, + }, +}; + +static struct omap_device timer4_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.3" }, + }, +}; + +static struct omap_device timer5_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.4" }, + }, +}; + +static struct omap_device timer6_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.5" }, + }, +}; + +static struct omap_device timer7_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.6" }, + }, +}; + +static struct omap_device timer8_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.7" }, + }, +}; + +static struct omap_device timer9_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.8" }, + }, +}; + +static struct omap_device timer10_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.9" }, + }, +}; + +static struct omap_device timer11_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.10" }, + }, +}; + +static struct omap_device timer12_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.11" }, + }, +}; + /* timer1 */ static struct omap_hwmod omap2420_timer1_hwmod; static struct omap_hwmod_irq_info omap2420_timer1_mpu_irqs[] = { @@ -223,6 +302,7 @@ static struct omap_hwmod omap2420_timer1_hwmod = { .slaves = omap2420_timer1_slaves, .slaves_cnt = ARRAY_SIZE(omap2420_timer1_slaves), .class = &omap2420_timer_hwmod_class, + .od = &timer1_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) }; @@ -272,6 +352,7 @@ static struct omap_hwmod omap2420_timer2_hwmod = { .slaves = omap2420_timer2_slaves, .slaves_cnt = ARRAY_SIZE(omap2420_timer2_slaves), .class = &omap2420_timer_hwmod_class, + .od = &timer2_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) }; @@ -321,6 +402,7 @@ static struct omap_hwmod omap2420_timer3_hwmod = { .slaves = omap2420_timer3_slaves, .slaves_cnt = ARRAY_SIZE(omap2420_timer3_slaves), .class = &omap2420_timer_hwmod_class, + .od = &timer3_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) }; @@ -368,6 +450,7 @@ static struct omap_hwmod omap2420_timer4_hwmod = { .slaves = omap2420_timer4_slaves, .slaves_cnt = ARRAY_SIZE(omap2420_timer4_slaves), .class = &omap2420_timer_hwmod_class, + .od = &timer4_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) }; @@ -417,6 +500,7 @@ static struct omap_hwmod omap2420_timer5_hwmod = { .slaves = omap2420_timer5_slaves, .slaves_cnt = ARRAY_SIZE(omap2420_timer5_slaves), .class = &omap2420_timer_hwmod_class, + .od = &timer5_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) }; @@ -466,6 +550,7 @@ static struct omap_hwmod omap2420_timer6_hwmod = { .slaves = omap2420_timer6_slaves, .slaves_cnt = ARRAY_SIZE(omap2420_timer6_slaves), .class = &omap2420_timer_hwmod_class, + .od = &timer6_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) }; @@ -514,6 +599,7 @@ static struct omap_hwmod omap2420_timer7_hwmod = { .slaves = omap2420_timer7_slaves, .slaves_cnt = ARRAY_SIZE(omap2420_timer7_slaves), .class = &omap2420_timer_hwmod_class, + .od = &timer7_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) }; @@ -562,6 +648,7 @@ static struct omap_hwmod omap2420_timer8_hwmod = { .slaves = omap2420_timer8_slaves, .slaves_cnt = ARRAY_SIZE(omap2420_timer8_slaves), .class = &omap2420_timer_hwmod_class, + .od = &timer8_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) }; @@ -610,6 +697,7 @@ static struct omap_hwmod omap2420_timer9_hwmod = { .slaves = omap2420_timer9_slaves, .slaves_cnt = ARRAY_SIZE(omap2420_timer9_slaves), .class = &omap2420_timer_hwmod_class, + .od = &timer9_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) }; @@ -658,6 +746,7 @@ static struct omap_hwmod omap2420_timer10_hwmod = { .slaves = omap2420_timer10_slaves, .slaves_cnt = ARRAY_SIZE(omap2420_timer10_slaves), .class = &omap2420_timer_hwmod_class, + .od = &timer10_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) }; @@ -706,6 +795,7 @@ static struct omap_hwmod omap2420_timer11_hwmod = { .slaves = omap2420_timer11_slaves, .slaves_cnt = ARRAY_SIZE(omap2420_timer11_slaves), .class = &omap2420_timer_hwmod_class, + .od = &timer11_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) }; @@ -754,6 +844,7 @@ static struct omap_hwmod omap2420_timer12_hwmod = { .slaves = omap2420_timer12_slaves, .slaves_cnt = ARRAY_SIZE(omap2420_timer12_slaves), .class = &omap2420_timer_hwmod_class, + .od = &timer12_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) }; diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c b/arch/arm/mach-omap2/omap_hwmod_2430_data.c index 787d3ce..2ac463f 100644 --- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c @@ -183,6 +183,85 @@ static struct omap_hwmod_class omap2430_timer_hwmod_class = { .rev = OMAP_TIMER_IP_VERSION_1, }; +/* + * during dmtimer early init, when device model is not up yet and dmtimer + * devices are not yet registered, the initialization routine is unable + * to read clock sources supported by the dmtimers using clk_get() because + * it searches the list using device names. this problem is overcome by + * assigning timer device names to the .init_name field. + */ +static struct omap_device timer1_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.0" }, + }, +}; + +static struct omap_device timer2_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.1" }, + }, +}; + +static struct omap_device timer3_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.2" }, + }, +}; + +static struct omap_device timer4_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.3" }, + }, +}; + +static struct omap_device timer5_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.4" }, + }, +}; + + +static struct omap_device timer6_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.5" }, + }, +}; + +static struct omap_device timer7_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.6" }, + }, +}; + +static struct omap_device timer8_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.7" }, + }, +}; + +static struct omap_device timer9_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.8" }, + }, +}; + +static struct omap_device timer10_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.9" }, + }, +}; + +static struct omap_device timer11_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.10" }, + }, +}; + +static struct omap_device timer12_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.11" }, + }, +}; /* timer1 */ static struct omap_hwmod omap2430_timer1_hwmod; @@ -232,6 +311,7 @@ static struct omap_hwmod omap2430_timer1_hwmod = { .slaves = omap2430_timer1_slaves, .slaves_cnt = ARRAY_SIZE(omap2430_timer1_slaves), .class = &omap2430_timer_hwmod_class, + .od = &timer1_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) }; @@ -281,6 +361,7 @@ static struct omap_hwmod omap2430_timer2_hwmod = { .slaves = omap2430_timer2_slaves, .slaves_cnt = ARRAY_SIZE(omap2430_timer2_slaves), .class = &omap2430_timer_hwmod_class, + .od = &timer2_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) }; @@ -328,6 +409,7 @@ static struct omap_hwmod omap2430_timer3_hwmod = { .slaves = omap2430_timer3_slaves, .slaves_cnt = ARRAY_SIZE(omap2430_timer3_slaves), .class = &omap2430_timer_hwmod_class, + .od = &timer3_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) }; @@ -377,6 +459,7 @@ static struct omap_hwmod omap2430_timer4_hwmod = { .slaves = omap2430_timer4_slaves, .slaves_cnt = ARRAY_SIZE(omap2430_timer4_slaves), .class = &omap2430_timer_hwmod_class, + .od = &timer4_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) }; @@ -424,6 +507,7 @@ static struct omap_hwmod omap2430_timer5_hwmod = { .slaves = omap2430_timer5_slaves, .slaves_cnt = ARRAY_SIZE(omap2430_timer5_slaves), .class = &omap2430_timer_hwmod_class, + .od = &timer5_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) }; @@ -472,6 +556,7 @@ static struct omap_hwmod omap2430_timer6_hwmod = { .slaves = omap2430_timer6_slaves, .slaves_cnt = ARRAY_SIZE(omap2430_timer6_slaves), .class = &omap2430_timer_hwmod_class, + .od = &timer6_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) }; @@ -520,6 +605,7 @@ static struct omap_hwmod omap2430_timer7_hwmod = { .slaves = omap2430_timer7_slaves, .slaves_cnt = ARRAY_SIZE(omap2430_timer7_slaves), .class = &omap2430_timer_hwmod_class, + .od = &timer7_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) }; @@ -567,6 +653,7 @@ static struct omap_hwmod omap2430_timer8_hwmod = { .slaves = omap2430_timer8_slaves, .slaves_cnt = ARRAY_SIZE(omap2430_timer8_slaves), .class = &omap2430_timer_hwmod_class, + .od = &timer8_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) }; @@ -615,6 +702,7 @@ static struct omap_hwmod omap2430_timer9_hwmod = { .slaves = omap2430_timer9_slaves, .slaves_cnt = ARRAY_SIZE(omap2430_timer9_slaves), .class = &omap2430_timer_hwmod_class, + .od = &timer9_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) }; @@ -662,6 +750,7 @@ static struct omap_hwmod omap2430_timer10_hwmod = { .slaves = omap2430_timer10_slaves, .slaves_cnt = ARRAY_SIZE(omap2430_timer10_slaves), .class = &omap2430_timer_hwmod_class, + .od = &timer10_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) }; @@ -709,6 +798,7 @@ static struct omap_hwmod omap2430_timer11_hwmod = { .slaves = omap2430_timer11_slaves, .slaves_cnt = ARRAY_SIZE(omap2430_timer11_slaves), .class = &omap2430_timer_hwmod_class, + .od = &timer11_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) }; @@ -757,6 +847,7 @@ static struct omap_hwmod omap2430_timer12_hwmod = { .slaves = omap2430_timer12_slaves, .slaves_cnt = ARRAY_SIZE(omap2430_timer12_slaves), .class = &omap2430_timer_hwmod_class, + .od = &timer12_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) }; diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c index 4765cda..1ce40e0 100644 --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c @@ -151,7 +151,7 @@ static struct omap_hwmod_class_sysconfig omap3xxx_timer_1ms_sysc = { }; static struct omap_hwmod_class omap3xxx_timer_1ms_hwmod_class = { - .name = "timer_1ms", + .name = "timer", .sysc = &omap3xxx_timer_1ms_sysc, .rev = OMAP_TIMER_IP_VERSION_1, }; @@ -180,6 +180,79 @@ static struct omap_hwmod_class omap3xxx_timer_hwmod_class = { .rev = OMAP_TIMER_IP_VERSION_1, }; +/* + * during dmtimer early init, when device model is not up yet and dmtimer + * devices are not yet registered, the initialization routine is unable + * to read clock sources supported by the dmtimers using clk_get() because + * it searches the list using device names. this problem is overcome by + * assigning timer device names to the .init_name field. + */ +static struct omap_device timer1_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.0" }, + }, +}; + +static struct omap_device timer2_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.1" }, + }, +}; + +static struct omap_device timer3_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.2" }, + }, +}; + +static struct omap_device timer4_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.3" }, + }, +}; + +static struct omap_device timer5_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.4" }, + }, +}; + + +static struct omap_device timer6_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.5" }, + }, +}; + +static struct omap_device timer7_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.6" }, + }, +}; + +static struct omap_device timer8_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.7" }, + }, +}; + +static struct omap_device timer9_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.8" }, + }, +}; + +static struct omap_device timer10_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.9" }, + }, +}; + +static struct omap_device timer11_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.10" }, + }, +}; /* timer10 */ static struct omap_hwmod omap3xxx_timer10_hwmod; @@ -236,6 +309,7 @@ static struct omap_hwmod omap3xxx_timer10_hwmod = { .slaves = omap3xxx_timer10_slaves, .slaves_cnt = ARRAY_SIZE(omap3xxx_timer10_slaves), .class = &omap3xxx_timer_1ms_hwmod_class, + .od = &timer10_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) }; @@ -294,6 +368,7 @@ static struct omap_hwmod omap3xxx_timer11_hwmod = { .slaves = omap3xxx_timer11_slaves, .slaves_cnt = ARRAY_SIZE(omap3xxx_timer11_slaves), .class = &omap3xxx_timer_hwmod_class, + .od = &timer11_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) }; @@ -364,6 +439,7 @@ static struct omap_hwmod omap3xxx_timer2_hwmod = { .slaves = omap3xxx_timer2_slaves, .slaves_cnt = ARRAY_SIZE(omap3xxx_timer2_slaves), .class = &omap3xxx_timer_1ms_hwmod_class, + .od = &timer2_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) }; @@ -422,6 +498,7 @@ static struct omap_hwmod omap3xxx_timer3_hwmod = { .slaves = omap3xxx_timer3_slaves, .slaves_cnt = ARRAY_SIZE(omap3xxx_timer3_slaves), .class = &omap3xxx_timer_hwmod_class, + .od = &timer3_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) }; @@ -480,6 +557,7 @@ static struct omap_hwmod omap3xxx_timer4_hwmod = { .slaves = omap3xxx_timer4_slaves, .slaves_cnt = ARRAY_SIZE(omap3xxx_timer4_slaves), .class = &omap3xxx_timer_hwmod_class, + .od = &timer4_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) }; @@ -538,6 +616,7 @@ static struct omap_hwmod omap3xxx_timer5_hwmod = { .slaves = omap3xxx_timer5_slaves, .slaves_cnt = ARRAY_SIZE(omap3xxx_timer5_slaves), .class = &omap3xxx_timer_hwmod_class, + .od = &timer5_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) }; @@ -595,6 +674,7 @@ static struct omap_hwmod omap3xxx_timer6_hwmod = { .slaves = omap3xxx_timer6_slaves, .slaves_cnt = ARRAY_SIZE(omap3xxx_timer6_slaves), .class = &omap3xxx_timer_hwmod_class, + .od = &timer6_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) }; @@ -653,6 +733,7 @@ static struct omap_hwmod omap3xxx_timer7_hwmod = { .slaves = omap3xxx_timer7_slaves, .slaves_cnt = ARRAY_SIZE(omap3xxx_timer7_slaves), .class = &omap3xxx_timer_hwmod_class, + .od = &timer7_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) }; @@ -711,6 +792,7 @@ static struct omap_hwmod omap3xxx_timer8_hwmod = { .slaves = omap3xxx_timer8_slaves, .slaves_cnt = ARRAY_SIZE(omap3xxx_timer8_slaves), .class = &omap3xxx_timer_hwmod_class, + .od = &timer8_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) }; @@ -770,6 +852,7 @@ static struct omap_hwmod omap3xxx_timer9_hwmod = { .slaves = omap3xxx_timer9_slaves, .slaves_cnt = ARRAY_SIZE(omap3xxx_timer9_slaves), .class = &omap3xxx_timer_hwmod_class, + .od = &timer9_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) }; @@ -849,6 +932,7 @@ static struct omap_hwmod omap3xxx_timer1_hwmod = { .slaves = omap3xxx_timer1_slaves, .slaves_cnt = ARRAY_SIZE(omap3xxx_timer1_slaves), .class = &omap3xxx_timer_1ms_hwmod_class, + .od = &timer1_init_name, .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) }; diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index 0390270..9edc518 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c @@ -549,7 +549,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_timer_1ms_sysc = { * belongs the .name field is assigned a uniform name 'timer'. */ static struct omap_hwmod_class omap44xx_timer_1ms_hwmod_class = { - .name = "timer_1ms", + .name = "timer", .sysc = &omap44xx_timer_1ms_sysc, .rev = OMAP_TIMER_IP_VERSION_1, }; @@ -569,6 +569,79 @@ static struct omap_hwmod_class omap44xx_timer_hwmod_class = { .rev = OMAP_TIMER_IP_VERSION_2, }; +/* + * during dmtimer early init, when device model is not up yet and dmtimer + * devices are not yet registered, the initialization routine is unable + * to read clock sources supported by the dmtimers using clk_get() because + * it searches the list using device names. this problem is overcome by + * assigning timer device names to the .init_name field. + */ +static struct omap_device timer1_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.0" }, + }, +}; + +static struct omap_device timer2_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.1" }, + }, +}; + +static struct omap_device timer3_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.2" }, + }, +}; + +static struct omap_device timer4_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.3" }, + }, +}; + +static struct omap_device timer5_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.4" }, + }, +}; + +static struct omap_device timer6_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.5" }, + }, +}; + +static struct omap_device timer7_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.6" }, + }, +}; + +static struct omap_device timer8_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.7" }, + }, +}; + +static struct omap_device timer9_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.8" }, + }, +}; + +static struct omap_device timer10_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.9" }, + }, +}; + +static struct omap_device timer11_init_name = { + .pdev = { + .dev = { .init_name = "dmtimer.10" }, + }, +}; + /* timer1 */ static struct omap_hwmod omap44xx_timer1_hwmod; static struct omap_hwmod_irq_info omap44xx_timer1_irqs[] = { @@ -601,6 +674,7 @@ static struct omap_hwmod_ocp_if *omap44xx_timer1_slaves[] = { static struct omap_hwmod omap44xx_timer1_hwmod = { .name = "timer1", .class = &omap44xx_timer_1ms_hwmod_class, + .od = &timer1_init_name, .mpu_irqs = omap44xx_timer1_irqs, .mpu_irqs_cnt = ARRAY_SIZE(omap44xx_timer1_irqs), .main_clk = "timer1_fck", @@ -647,6 +721,7 @@ static struct omap_hwmod_ocp_if *omap44xx_timer2_slaves[] = { static struct omap_hwmod omap44xx_timer2_hwmod = { .name = "timer2", .class = &omap44xx_timer_1ms_hwmod_class, + .od = &timer2_init_name, .mpu_irqs = omap44xx_timer2_irqs, .mpu_irqs_cnt = ARRAY_SIZE(omap44xx_timer2_irqs), .main_clk = "timer2_fck", @@ -693,6 +768,7 @@ static struct omap_hwmod_ocp_if *omap44xx_timer3_slaves[] = { static struct omap_hwmod omap44xx_timer3_hwmod = { .name = "timer3", .class = &omap44xx_timer_hwmod_class, + .od = &timer3_init_name, .mpu_irqs = omap44xx_timer3_irqs, .mpu_irqs_cnt = ARRAY_SIZE(omap44xx_timer3_irqs), .main_clk = "timer3_fck", @@ -739,6 +815,7 @@ static struct omap_hwmod_ocp_if *omap44xx_timer4_slaves[] = { static struct omap_hwmod omap44xx_timer4_hwmod = { .name = "timer4", .class = &omap44xx_timer_hwmod_class, + .od = &timer4_init_name, .mpu_irqs = omap44xx_timer4_irqs, .mpu_irqs_cnt = ARRAY_SIZE(omap44xx_timer4_irqs), .main_clk = "timer4_fck", @@ -804,6 +881,7 @@ static struct omap_hwmod_ocp_if *omap44xx_timer5_slaves[] = { static struct omap_hwmod omap44xx_timer5_hwmod = { .name = "timer5", .class = &omap44xx_timer_hwmod_class, + .od = &timer5_init_name, .mpu_irqs = omap44xx_timer5_irqs, .mpu_irqs_cnt = ARRAY_SIZE(omap44xx_timer5_irqs), .main_clk = "timer5_fck", @@ -869,6 +947,7 @@ static struct omap_hwmod_ocp_if *omap44xx_timer6_slaves[] = { static struct omap_hwmod omap44xx_timer6_hwmod = { .name = "timer6", .class = &omap44xx_timer_hwmod_class, + .od = &timer6_init_name, .mpu_irqs = omap44xx_timer6_irqs, .mpu_irqs_cnt = ARRAY_SIZE(omap44xx_timer6_irqs), .main_clk = "timer6_fck", @@ -934,6 +1013,7 @@ static struct omap_hwmod_ocp_if *omap44xx_timer7_slaves[] = { static struct omap_hwmod omap44xx_timer7_hwmod = { .name = "timer7", .class = &omap44xx_timer_hwmod_class, + .od = &timer7_init_name, .mpu_irqs = omap44xx_timer7_irqs, .mpu_irqs_cnt = ARRAY_SIZE(omap44xx_timer7_irqs), .main_clk = "timer7_fck", @@ -999,6 +1079,7 @@ static struct omap_hwmod_ocp_if *omap44xx_timer8_slaves[] = { static struct omap_hwmod omap44xx_timer8_hwmod = { .name = "timer8", .class = &omap44xx_timer_hwmod_class, + .od = &timer8_init_name, .mpu_irqs = omap44xx_timer8_irqs, .mpu_irqs_cnt = ARRAY_SIZE(omap44xx_timer8_irqs), .main_clk = "timer8_fck", @@ -1045,6 +1126,7 @@ static struct omap_hwmod_ocp_if *omap44xx_timer9_slaves[] = { static struct omap_hwmod omap44xx_timer9_hwmod = { .name = "timer9", .class = &omap44xx_timer_hwmod_class, + .od = &timer9_init_name, .mpu_irqs = omap44xx_timer9_irqs, .mpu_irqs_cnt = ARRAY_SIZE(omap44xx_timer9_irqs), .main_clk = "timer9_fck", @@ -1091,6 +1173,7 @@ static struct omap_hwmod_ocp_if *omap44xx_timer10_slaves[] = { static struct omap_hwmod omap44xx_timer10_hwmod = { .name = "timer10", .class = &omap44xx_timer_1ms_hwmod_class, + .od = &timer10_init_name, .mpu_irqs = omap44xx_timer10_irqs, .mpu_irqs_cnt = ARRAY_SIZE(omap44xx_timer10_irqs), .main_clk = "timer10_fck", @@ -1137,6 +1220,7 @@ static struct omap_hwmod_ocp_if *omap44xx_timer11_slaves[] = { static struct omap_hwmod omap44xx_timer11_hwmod = { .name = "timer11", .class = &omap44xx_timer_hwmod_class, + .od = &timer11_init_name, .mpu_irqs = omap44xx_timer11_irqs, .mpu_irqs_cnt = ARRAY_SIZE(omap44xx_timer11_irqs), .main_clk = "timer11_fck", -- 1.6.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html