From patchwork Tue May 12 10:15:30 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Magnus Damm X-Patchwork-Id: 23214 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n4CAIO6T031947 for ; Tue, 12 May 2009 10:18:24 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751803AbZELKSW (ORCPT ); Tue, 12 May 2009 06:18:22 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752097AbZELKSW (ORCPT ); Tue, 12 May 2009 06:18:22 -0400 Received: from mail-pz0-f115.google.com ([209.85.222.115]:50758 "EHLO mail-pz0-f115.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751803AbZELKSV (ORCPT ); Tue, 12 May 2009 06:18:21 -0400 X-Greylist: delayed 644 seconds by postgrey-1.27 at vger.kernel.org; Tue, 12 May 2009 06:18:21 EDT Received: by pzk13 with SMTP id 13so91045pzk.33 for ; Tue, 12 May 2009 03:18:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:date:message-id :subject; bh=527kIaQvjXOyYziacctj79KWS8IrciHFSeDzBdxgahE=; b=otPut2dKV0bFmwHs+v0B5eHnQFV8/PPlI+DJMOU1n0yGu3QmvUQ9+Y+ms0u0/1J/74 otOtpbC3R0XmttvbjtaYblfzqJZT/NaKmXfmGMK+e57Viz2ouFJTs3LqTw4OUvxYAkAU T7xnrByXeoX8qxCRRJe+exxRmMn3M5N28OcOU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:date:message-id:subject; b=Rt19IhuNXReAyCdLCEkDY9gtIeKrQpgNc/1AJT2kygNLsGXxrqow7cgdkcIu34Q4U3 Ge1p2204eaT8/Lm2Y41s703j3++jtjGqK4zk9pwugIa2kjVB4nx4PPVFKx03GGrskbXP XyPCeapnf5RhS/GW6bmAYj4VxWEoHp7wchkDw= Received: by 10.114.137.2 with SMTP id k2mr6381529wad.146.1242123501754; Tue, 12 May 2009 03:18:21 -0700 (PDT) Received: from rx1.opensource.se (210.5.32.202.bf.2iij.net [202.32.5.210]) by mx.google.com with ESMTPS id m28sm9212344poh.24.2009.05.12.03.18.19 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 12 May 2009 03:18:20 -0700 (PDT) From: Magnus Damm To: linux-sh@vger.kernel.org Cc: Magnus Damm , lethal@linux-sh.org Date: Tue, 12 May 2009 19:15:30 +0900 Message-Id: <20090512101530.25698.96888.sendpatchset@rx1.opensource.se> Subject: [PATCH] sh: TMU platform data for sh7710/sh7712 Sender: linux-sh-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sh@vger.kernel.org From: Magnus Damm This patch adds TMU platform data for sh7710 and sh7712. Both clockevent and clocksource support is enabled. Signed-off-by: Magnus Damm --- arch/sh/kernel/cpu/sh3/setup-sh7710.c | 108 +++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html --- 0001/arch/sh/kernel/cpu/sh3/setup-sh7710.c +++ work/arch/sh/kernel/cpu/sh3/setup-sh7710.c 2009-05-12 16:09:37.000000000 +0900 @@ -13,6 +13,7 @@ #include #include #include +#include #include enum { @@ -120,7 +121,102 @@ static struct platform_device sci_device }, }; +static struct sh_timer_config tmu0_platform_data = { + .name = "TMU0", + .channel_offset = 0x02, + .timer_bit = 0, + .clk = "module_clk", + .clockevent_rating = 200, +}; + +static struct resource tmu0_resources[] = { + [0] = { + .name = "TMU0", + .start = 0xa412fe94, + .end = 0xa412fe9f, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = 16, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct platform_device tmu0_device = { + .name = "sh_tmu", + .id = 0, + .dev = { + .platform_data = &tmu0_platform_data, + }, + .resource = tmu0_resources, + .num_resources = ARRAY_SIZE(tmu0_resources), +}; + +static struct sh_timer_config tmu1_platform_data = { + .name = "TMU1", + .channel_offset = 0xe, + .timer_bit = 1, + .clk = "module_clk", + .clocksource_rating = 200, +}; + +static struct resource tmu1_resources[] = { + [0] = { + .name = "TMU1", + .start = 0xa412fea0, + .end = 0xa412feab, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = 17, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct platform_device tmu1_device = { + .name = "sh_tmu", + .id = 1, + .dev = { + .platform_data = &tmu1_platform_data, + }, + .resource = tmu1_resources, + .num_resources = ARRAY_SIZE(tmu1_resources), +}; + +static struct sh_timer_config tmu2_platform_data = { + .name = "TMU2", + .channel_offset = 0x1a, + .timer_bit = 2, + .clk = "module_clk", +}; + +static struct resource tmu2_resources[] = { + [0] = { + .name = "TMU2", + .start = 0xa412feac, + .end = 0xa412feb5, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = 18, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct platform_device tmu2_device = { + .name = "sh_tmu", + .id = 2, + .dev = { + .platform_data = &tmu2_platform_data, + }, + .resource = tmu2_resources, + .num_resources = ARRAY_SIZE(tmu2_resources), +}; + static struct platform_device *sh7710_devices[] __initdata = { + &tmu0_device, + &tmu1_device, + &tmu2_device, &sci_device, &rtc_device, }; @@ -132,6 +228,18 @@ static int __init sh7710_devices_setup(v } __initcall(sh7710_devices_setup); +static struct platform_device *sh7710_early_devices[] __initdata = { + &tmu0_device, + &tmu1_device, + &tmu2_device, +}; + +void __init plat_early_device_setup(void) +{ + early_platform_add_devices(sh7710_early_devices, + ARRAY_SIZE(sh7710_early_devices)); +} + void __init plat_irq_setup(void) { register_intc_controller(&intc_desc);