diff options
| author | Ben Dooks <ben-linux@org.rmk.(none)> | 2004-09-05 20:26:49 +0100 |
|---|---|---|
| committer | Russell King <rmk@flint.arm.linux.org.uk> | 2004-09-05 20:26:49 +0100 |
| commit | 79fdcc0cad33e375c925f9ddb36db52b1c747cb8 (patch) | |
| tree | 8bd5a2961b19642f38e376d47f4cfceec5aa61a1 | |
| parent | 38afd9dd48ea74e2afa0036b679661b8d8096f5c (diff) | |
[ARM PATCH] 2058/2: S3C2410 - Add PWM devices, update ID on existing devices
Patch from Ben Dooks
Add PWM timers 0 through 3
Update ID on single devices to -1
Signed-off-by: Ben Dooks
| -rw-r--r-- | arch/arm/mach-s3c2410/devs.c | 120 | ||||
| -rw-r--r-- | arch/arm/mach-s3c2410/devs.h | 9 |
2 files changed, 118 insertions, 11 deletions
diff --git a/arch/arm/mach-s3c2410/devs.c b/arch/arm/mach-s3c2410/devs.c index f6316bcef90c..e2401f48b002 100644 --- a/arch/arm/mach-s3c2410/devs.c +++ b/arch/arm/mach-s3c2410/devs.c @@ -10,6 +10,8 @@ * published by the Free Software Foundation. * * Modifications: + * 29-Aug-2004 BJD Added timers 0 through 3 + * 29-Aug-2004 BJD Changed index of devices we only have one of to -1 * 21-Aug-2004 BJD Added IRQ_TICK to RTC resources * 18-Aug-2004 BJD Created initial version */ @@ -82,7 +84,7 @@ static u64 s3c_device_lcd_dmamask = 0xffffffffUL; struct platform_device s3c_device_lcd = { .name = "s3c2410-lcd", - .id = 0, + .id = -1, .num_resources = ARRAY_SIZE(s3c_lcd_resource), .resource = s3c_lcd_resource, .dev = { @@ -111,7 +113,7 @@ static struct resource s3c_nand_resource[] = { struct platform_device s3c_device_nand = { .name = "s3c2410-nand", - .id = 0, + .id = -1, .num_resources = ARRAY_SIZE(s3c_nand_resource), .resource = s3c_nand_resource, }; @@ -136,7 +138,7 @@ static struct resource s3c_usbgadget_resource[] = { struct platform_device s3c_device_usbgadget = { .name = "s3c2410-usbgadget", - .id = 0, + .id = -1, .num_resources = ARRAY_SIZE(s3c_usbgadget_resource), .resource = s3c_usbgadget_resource, }; @@ -161,7 +163,7 @@ static struct resource s3c_wdt_resource[] = { struct platform_device s3c_device_wdt = { .name = "s3c2410-wdt", - .id = 0, + .id = -1, .num_resources = ARRAY_SIZE(s3c_wdt_resource), .resource = s3c_wdt_resource, }; @@ -186,7 +188,7 @@ static struct resource s3c_i2c_resource[] = { struct platform_device s3c_device_i2c = { .name = "s3c2410-i2c", - .id = 0, + .id = -1, .num_resources = ARRAY_SIZE(s3c_i2c_resource), .resource = s3c_i2c_resource, }; @@ -207,7 +209,7 @@ static u64 s3c_device_iis_dmamask = 0xffffffffUL; struct platform_device s3c_device_iis = { .name = "s3c2410-iis", - .id = 0, + .id = -1, .num_resources = ARRAY_SIZE(s3c_iis_resource), .resource = s3c_iis_resource, .dev = { @@ -240,7 +242,7 @@ static struct resource s3c_rtc_resource[] = { struct platform_device s3c_device_rtc = { .name = "s3c2410-rtc", - .id = 0, + .id = -1, .num_resources = ARRAY_SIZE(s3c_rtc_resource), .resource = s3c_rtc_resource, }; @@ -265,7 +267,7 @@ static struct resource s3c_adc_resource[] = { struct platform_device s3c_device_adc = { .name = "s3c2410-adc", - .id = 0, + .id = -1, .num_resources = ARRAY_SIZE(s3c_adc_resource), .resource = s3c_adc_resource, }; @@ -288,7 +290,7 @@ static struct resource s3c_sdi_resource[] = { struct platform_device s3c_device_sdi = { .name = "s3c2410-sdi", - .id = 0, + .id = -1, .num_resources = ARRAY_SIZE(s3c_sdi_resource), .resource = s3c_sdi_resource, }; @@ -344,3 +346,103 @@ struct platform_device s3c_device_spi1 = { }; EXPORT_SYMBOL(s3c_device_spi1); + +/* pwm timer blocks */ + +static struct resource s3c_timer0_resource[] = { + [0] = { + .start = S3C2410_PA_TIMER + 0x0C, + .end = S3C2410_PA_TIMER + 0x0C + 0xB, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = IRQ_TIMER0, + .end = IRQ_TIMER0, + .flags = IORESOURCE_IRQ, + } + +}; + +struct platform_device s3c_device_timer0 = { + .name = "s3c2410-timer", + .id = 0, + .num_resources = ARRAY_SIZE(s3c_timer0_resource), + .resource = s3c_timer0_resource, +}; + +EXPORT_SYMBOL(s3c_device_timer0); + +/* timer 1 */ + +static struct resource s3c_timer1_resource[] = { + [0] = { + .start = S3C2410_PA_TIMER + 0x18, + .end = S3C2410_PA_TIMER + 0x23, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = IRQ_TIMER1, + .end = IRQ_TIMER1, + .flags = IORESOURCE_IRQ, + } + +}; + +struct platform_device s3c_device_timer1 = { + .name = "s3c2410-timer", + .id = 1, + .num_resources = ARRAY_SIZE(s3c_timer1_resource), + .resource = s3c_timer1_resource, +}; + +EXPORT_SYMBOL(s3c_device_timer1); + +/* timer 2 */ + +static struct resource s3c_timer2_resource[] = { + [0] = { + .start = S3C2410_PA_TIMER + 0x24, + .end = S3C2410_PA_TIMER + 0x2F, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = IRQ_TIMER2, + .end = IRQ_TIMER2, + .flags = IORESOURCE_IRQ, + } + +}; + +struct platform_device s3c_device_timer2 = { + .name = "s3c2410-timer", + .id = 2, + .num_resources = ARRAY_SIZE(s3c_timer2_resource), + .resource = s3c_timer2_resource, +}; + +EXPORT_SYMBOL(s3c_device_timer2); + +/* timer 3 */ + +static struct resource s3c_timer3_resource[] = { + [0] = { + .start = S3C2410_PA_TIMER + 0x30, + .end = S3C2410_PA_TIMER + 0x3B, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = IRQ_TIMER3, + .end = IRQ_TIMER3, + .flags = IORESOURCE_IRQ, + } + +}; + +struct platform_device s3c_device_timer3 = { + .name = "s3c2410-timer", + .id = 3, + .num_resources = ARRAY_SIZE(s3c_timer3_resource), + .resource = s3c_timer3_resource, +}; + +EXPORT_SYMBOL(s3c_device_timer3); diff --git a/arch/arm/mach-s3c2410/devs.h b/arch/arm/mach-s3c2410/devs.h index 226fb2b02d37..08a4416595f8 100644 --- a/arch/arm/mach-s3c2410/devs.h +++ b/arch/arm/mach-s3c2410/devs.h @@ -10,8 +10,8 @@ * published by the Free Software Foundation. * * Modifications: - * 18-Aug-2004 BJD Created initial version - * + * 18-Aug-2004 BJD Created initial version + * 27-Aug-2004 BJD Added timers 0 through 3 */ extern struct platform_device s3c_device_usb; @@ -28,4 +28,9 @@ extern struct platform_device s3c_device_spi1; extern struct platform_device s3c_device_nand; +extern struct platform_device s3c_device_timer0; +extern struct platform_device s3c_device_timer1; +extern struct platform_device s3c_device_timer2; +extern struct platform_device s3c_device_timer3; + extern struct platform_device s3c_device_usbgadget; |
