diff options
| author | Andrew Victor <linux@maxim.org.za> | 2008-01-22 05:43:26 -0500 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-01-26 10:00:31 -0500 |
| commit | e2920802351b3e01a3e70a26bb1bbb22f29da4cb (patch) | |
| tree | fb2ba713860aefbcda802c092fdb4bd16da6ce7b | |
| parent | f06e656fb4f6f41ae9cba0f5d6948a6c7f6250ba (diff) | |
[ARM] 4751/1: [AT91] ISI peripheral on SAM9263
Add support for the Image Sensor Interface (ISI) peripheral integrated
in the Atmel AT91SAM9263 processor.
Patch from MaLiK
Signed-off-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| -rw-r--r-- | arch/arm/mach-at91/at91sam9263_devices.c | 50 | ||||
| -rw-r--r-- | include/asm-arm/arch-at91/board.h | 3 |
2 files changed, 53 insertions, 0 deletions
diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c index ac329a98e959..d50a8dfb916d 100644 --- a/arch/arm/mach-at91/at91sam9263_devices.c +++ b/arch/arm/mach-at91/at91sam9263_devices.c | |||
| @@ -732,6 +732,56 @@ void __init at91_add_device_lcdc(struct atmel_lcdfb_info *data) {} | |||
| 732 | 732 | ||
| 733 | 733 | ||
| 734 | /* -------------------------------------------------------------------- | 734 | /* -------------------------------------------------------------------- |
| 735 | * Image Sensor Interface | ||
| 736 | * -------------------------------------------------------------------- */ | ||
| 737 | |||
| 738 | #if defined(CONFIG_VIDEO_AT91_ISI) || defined(CONFIG_VIDEO_AT91_ISI_MODULE) | ||
| 739 | |||
| 740 | struct resource isi_resources[] = { | ||
| 741 | [0] = { | ||
| 742 | .start = AT91SAM9263_BASE_ISI, | ||
| 743 | .end = AT91SAM9263_BASE_ISI + SZ_16K - 1, | ||
| 744 | .flags = IORESOURCE_MEM, | ||
| 745 | }, | ||
| 746 | [1] = { | ||
| 747 | .start = AT91SAM9263_ID_ISI, | ||
| 748 | .end = AT91SAM9263_ID_ISI, | ||
| 749 | .flags = IORESOURCE_IRQ, | ||
| 750 | }, | ||
| 751 | }; | ||
| 752 | |||
| 753 | static struct platform_device at91sam9263_isi_device = { | ||
| 754 | .name = "at91_isi", | ||
| 755 | .id = -1, | ||
| 756 | .resource = isi_resources, | ||
| 757 | .num_resources = ARRAY_SIZE(isi_resources), | ||
| 758 | }; | ||
| 759 | |||
| 760 | void __init at91_add_device_isi(void) | ||
| 761 | { | ||
| 762 | at91_set_A_periph(AT91_PIN_PE0, 0); /* ISI_D0 */ | ||
| 763 | at91_set_A_periph(AT91_PIN_PE1, 0); /* ISI_D1 */ | ||
| 764 | at91_set_A_periph(AT91_PIN_PE2, 0); /* ISI_D2 */ | ||
| 765 | at91_set_A_periph(AT91_PIN_PE3, 0); /* ISI_D3 */ | ||
| 766 | at91_set_A_periph(AT91_PIN_PE4, 0); /* ISI_D4 */ | ||
| 767 | at91_set_A_periph(AT91_PIN_PE5, 0); /* ISI_D5 */ | ||
| 768 | at91_set_A_periph(AT91_PIN_PE6, 0); /* ISI_D6 */ | ||
| 769 | at91_set_A_periph(AT91_PIN_PE7, 0); /* ISI_D7 */ | ||
| 770 | at91_set_A_periph(AT91_PIN_PE8, 0); /* ISI_PCK */ | ||
| 771 | at91_set_A_periph(AT91_PIN_PE9, 0); /* ISI_HSYNC */ | ||
| 772 | at91_set_A_periph(AT91_PIN_PE10, 0); /* ISI_VSYNC */ | ||
| 773 | at91_set_B_periph(AT91_PIN_PE11, 0); /* ISI_MCK (PCK3) */ | ||
| 774 | at91_set_B_periph(AT91_PIN_PE12, 0); /* ISI_PD8 */ | ||
| 775 | at91_set_B_periph(AT91_PIN_PE13, 0); /* ISI_PD9 */ | ||
| 776 | at91_set_B_periph(AT91_PIN_PE14, 0); /* ISI_PD10 */ | ||
| 777 | at91_set_B_periph(AT91_PIN_PE15, 0); /* ISI_PD11 */ | ||
| 778 | } | ||
| 779 | #else | ||
| 780 | void __init at91_add_device_isi(void) {} | ||
| 781 | #endif | ||
| 782 | |||
| 783 | |||
| 784 | /* -------------------------------------------------------------------- | ||
| 735 | * LEDs | 785 | * LEDs |
| 736 | * -------------------------------------------------------------------- */ | 786 | * -------------------------------------------------------------------- */ |
| 737 | 787 | ||
diff --git a/include/asm-arm/arch-at91/board.h b/include/asm-arm/arch-at91/board.h index 79054965baa6..762148cc48c1 100644 --- a/include/asm-arm/arch-at91/board.h +++ b/include/asm-arm/arch-at91/board.h | |||
| @@ -126,6 +126,9 @@ struct atmel_ac97_data { | |||
| 126 | }; | 126 | }; |
| 127 | extern void __init at91_add_device_ac97(struct atmel_ac97_data *data); | 127 | extern void __init at91_add_device_ac97(struct atmel_ac97_data *data); |
| 128 | 128 | ||
| 129 | /* ISI */ | ||
| 130 | extern void __init at91_add_device_isi(void); | ||
| 131 | |||
| 129 | /* LEDs */ | 132 | /* LEDs */ |
| 130 | extern u8 at91_leds_cpu; | 133 | extern u8 at91_leds_cpu; |
| 131 | extern u8 at91_leds_timer; | 134 | extern u8 at91_leds_timer; |
