diff options
23 files changed, 2049 insertions, 102 deletions
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig index 414a8ad97f52..35e3bd9858df 100644 --- a/arch/avr32/Kconfig +++ b/arch/avr32/Kconfig | |||
| @@ -144,6 +144,19 @@ config BOARD_FAVR_32 | |||
| 144 | bool "Favr-32 LCD-board" | 144 | bool "Favr-32 LCD-board" |
| 145 | select CPU_AT32AP7000 | 145 | select CPU_AT32AP7000 |
| 146 | 146 | ||
| 147 | config BOARD_MERISC | ||
| 148 | bool "Merisc board" | ||
| 149 | select CPU_AT32AP7000 | ||
| 150 | help | ||
| 151 | Merisc is the family name for a range of AVR32-based boards. | ||
| 152 | |||
| 153 | The boards are designed to be used in a man-machine | ||
| 154 | interfacing environment, utilizing a touch-based graphical | ||
| 155 | user interface. They host a vast range of I/O peripherals as | ||
| 156 | well as a large SDRAM & Flash memory bank. | ||
| 157 | |||
| 158 | For more information see: http://www.martinsson.se/merisc | ||
| 159 | |||
| 147 | config BOARD_MIMC200 | 160 | config BOARD_MIMC200 |
| 148 | bool "MIMC200 CPU board" | 161 | bool "MIMC200 CPU board" |
| 149 | select CPU_AT32AP7000 | 162 | select CPU_AT32AP7000 |
| @@ -153,6 +166,7 @@ source "arch/avr32/boards/atstk1000/Kconfig" | |||
| 153 | source "arch/avr32/boards/atngw100/Kconfig" | 166 | source "arch/avr32/boards/atngw100/Kconfig" |
| 154 | source "arch/avr32/boards/hammerhead/Kconfig" | 167 | source "arch/avr32/boards/hammerhead/Kconfig" |
| 155 | source "arch/avr32/boards/favr-32/Kconfig" | 168 | source "arch/avr32/boards/favr-32/Kconfig" |
| 169 | source "arch/avr32/boards/merisc/Kconfig" | ||
| 156 | 170 | ||
| 157 | choice | 171 | choice |
| 158 | prompt "Boot loader type" | 172 | prompt "Boot loader type" |
diff --git a/arch/avr32/Makefile b/arch/avr32/Makefile index f3ef3bbf797c..0b97e14f73f6 100644 --- a/arch/avr32/Makefile +++ b/arch/avr32/Makefile | |||
| @@ -35,6 +35,7 @@ core-$(CONFIG_BOARD_ATSTK1000) += arch/avr32/boards/atstk1000/ | |||
| 35 | core-$(CONFIG_BOARD_ATNGW100) += arch/avr32/boards/atngw100/ | 35 | core-$(CONFIG_BOARD_ATNGW100) += arch/avr32/boards/atngw100/ |
| 36 | core-$(CONFIG_BOARD_HAMMERHEAD) += arch/avr32/boards/hammerhead/ | 36 | core-$(CONFIG_BOARD_HAMMERHEAD) += arch/avr32/boards/hammerhead/ |
| 37 | core-$(CONFIG_BOARD_FAVR_32) += arch/avr32/boards/favr-32/ | 37 | core-$(CONFIG_BOARD_FAVR_32) += arch/avr32/boards/favr-32/ |
| 38 | core-$(CONFIG_BOARD_MERISC) += arch/avr32/boards/merisc/ | ||
| 38 | core-$(CONFIG_BOARD_MIMC200) += arch/avr32/boards/mimc200/ | 39 | core-$(CONFIG_BOARD_MIMC200) += arch/avr32/boards/mimc200/ |
| 39 | core-$(CONFIG_LOADER_U_BOOT) += arch/avr32/boot/u-boot/ | 40 | core-$(CONFIG_LOADER_U_BOOT) += arch/avr32/boot/u-boot/ |
| 40 | core-y += arch/avr32/kernel/ | 41 | core-y += arch/avr32/kernel/ |
diff --git a/arch/avr32/boards/atngw100/evklcd10x.c b/arch/avr32/boards/atngw100/evklcd10x.c index 8140b22b3461..00337112c5ac 100644 --- a/arch/avr32/boards/atngw100/evklcd10x.c +++ b/arch/avr32/boards/atngw100/evklcd10x.c | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | 11 | ||
| 12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
| 13 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
| 14 | #include <linux/gpio.h> | ||
| 14 | #include <linux/fb.h> | 15 | #include <linux/fb.h> |
| 15 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
| 16 | 17 | ||
| @@ -19,26 +20,26 @@ | |||
| 19 | #include <asm/setup.h> | 20 | #include <asm/setup.h> |
| 20 | 21 | ||
| 21 | #include <mach/at32ap700x.h> | 22 | #include <mach/at32ap700x.h> |
| 23 | #include <mach/portmux.h> | ||
| 22 | #include <mach/board.h> | 24 | #include <mach/board.h> |
| 23 | 25 | ||
| 26 | #include <sound/atmel-ac97c.h> | ||
| 27 | |||
| 24 | static struct ac97c_platform_data __initdata ac97c0_data = { | 28 | static struct ac97c_platform_data __initdata ac97c0_data = { |
| 25 | .dma_rx_periph_id = 3, | 29 | .reset_pin = GPIO_PIN_PB(19), |
| 26 | .dma_tx_periph_id = 4, | ||
| 27 | .dma_controller_id = 0, | ||
| 28 | .reset_pin = GPIO_PIN_PB(19), | ||
| 29 | }; | 30 | }; |
| 30 | 31 | ||
| 31 | #ifdef CONFIG_BOARD_ATNGW100_EVKLCD10X_VGA | 32 | #ifdef CONFIG_BOARD_ATNGW100_EVKLCD10X_VGA |
| 32 | static struct fb_videomode __initdata tcg057vglad_modes[] = { | 33 | static struct fb_videomode __initdata tcg057vglad_modes[] = { |
| 33 | { | 34 | { |
| 34 | .name = "640x480 @ 60", | 35 | .name = "640x480 @ 50", |
| 35 | .refresh = 60, | 36 | .refresh = 50, |
| 36 | .xres = 640, .yres = 480, | 37 | .xres = 640, .yres = 480, |
| 37 | .pixclock = KHZ2PICOS(25180), | 38 | .pixclock = KHZ2PICOS(25180), |
| 38 | 39 | ||
| 39 | .left_margin = 64, .right_margin = 31, | 40 | .left_margin = 64, .right_margin = 96, |
| 40 | .upper_margin = 34, .lower_margin = 2, | 41 | .upper_margin = 34, .lower_margin = 11, |
| 41 | .hsync_len = 96, .vsync_len = 4, | 42 | .hsync_len = 64, .vsync_len = 15, |
| 42 | 43 | ||
| 43 | .sync = 0, | 44 | .sync = 0, |
| 44 | .vmode = FB_VMODE_NONINTERLACED, | 45 | .vmode = FB_VMODE_NONINTERLACED, |
| @@ -69,14 +70,14 @@ static struct atmel_lcdfb_info __initdata atevklcd10x_lcdc_data = { | |||
| 69 | #elif CONFIG_BOARD_ATNGW100_EVKLCD10X_QVGA | 70 | #elif CONFIG_BOARD_ATNGW100_EVKLCD10X_QVGA |
| 70 | static struct fb_videomode __initdata tcg057qvlad_modes[] = { | 71 | static struct fb_videomode __initdata tcg057qvlad_modes[] = { |
| 71 | { | 72 | { |
| 72 | .name = "320x240 @ 60", | 73 | .name = "320x240 @ 50", |
| 73 | .refresh = 60, | 74 | .refresh = 50, |
| 74 | .xres = 320, .yres = 240, | 75 | .xres = 320, .yres = 240, |
| 75 | .pixclock = KHZ2PICOS(6300), | 76 | .pixclock = KHZ2PICOS(6300), |
| 76 | 77 | ||
| 77 | .left_margin = 52, .right_margin = 28, | 78 | .left_margin = 34, .right_margin = 46, |
| 78 | .upper_margin = 7, .lower_margin = 2, | 79 | .upper_margin = 7, .lower_margin = 15, |
| 79 | .hsync_len = 96, .vsync_len = 4, | 80 | .hsync_len = 64, .vsync_len = 12, |
| 80 | 81 | ||
| 81 | .sync = 0, | 82 | .sync = 0, |
| 82 | .vmode = FB_VMODE_NONINTERLACED, | 83 | .vmode = FB_VMODE_NONINTERLACED, |
| @@ -144,12 +145,29 @@ static struct atmel_lcdfb_info __initdata atevklcd10x_lcdc_data = { | |||
| 144 | }; | 145 | }; |
| 145 | #endif | 146 | #endif |
| 146 | 147 | ||
| 148 | static void atevklcd10x_lcdc_power_control(int on) | ||
| 149 | { | ||
| 150 | gpio_set_value(GPIO_PIN_PB(15), on); | ||
| 151 | } | ||
| 152 | |||
| 147 | static int __init atevklcd10x_init(void) | 153 | static int __init atevklcd10x_init(void) |
| 148 | { | 154 | { |
| 149 | at32_add_device_ac97c(0, &ac97c0_data); | 155 | /* PB15 is connected to the enable line on the boost regulator |
| 156 | * controlling the backlight for the LCD panel. | ||
| 157 | */ | ||
| 158 | at32_select_gpio(GPIO_PIN_PB(15), AT32_GPIOF_OUTPUT); | ||
| 159 | gpio_request(GPIO_PIN_PB(15), "backlight"); | ||
| 160 | gpio_direction_output(GPIO_PIN_PB(15), 0); | ||
| 161 | |||
| 162 | atevklcd10x_lcdc_data.atmel_lcdfb_power_control = | ||
| 163 | atevklcd10x_lcdc_power_control; | ||
| 150 | 164 | ||
| 151 | at32_add_device_lcdc(0, &atevklcd10x_lcdc_data, | 165 | at32_add_device_lcdc(0, &atevklcd10x_lcdc_data, |
| 152 | fbmem_start, fbmem_size, 1); | 166 | fbmem_start, fbmem_size, |
| 167 | ATMEL_LCDC_ALT_18BIT | ATMEL_LCDC_PE_DVAL); | ||
| 168 | |||
| 169 | at32_add_device_ac97c(0, &ac97c0_data, AC97C_BOTH); | ||
| 170 | |||
| 153 | return 0; | 171 | return 0; |
| 154 | } | 172 | } |
| 155 | postcore_initcall(atevklcd10x_init); | 173 | postcore_initcall(atevklcd10x_init); |
diff --git a/arch/avr32/boards/atngw100/setup.c b/arch/avr32/boards/atngw100/setup.c index 05d3722fff18..5b022aad4bd9 100644 --- a/arch/avr32/boards/atngw100/setup.c +++ b/arch/avr32/boards/atngw100/setup.c | |||
| @@ -56,13 +56,8 @@ static struct spi_board_info spi0_board_info[] __initdata = { | |||
| 56 | static struct mci_platform_data __initdata mci0_data = { | 56 | static struct mci_platform_data __initdata mci0_data = { |
| 57 | .slot[0] = { | 57 | .slot[0] = { |
| 58 | .bus_width = 4, | 58 | .bus_width = 4, |
| 59 | #ifndef CONFIG_BOARD_ATNGW100_EVKLCD10X | ||
| 60 | .detect_pin = GPIO_PIN_PC(25), | 59 | .detect_pin = GPIO_PIN_PC(25), |
| 61 | .wp_pin = GPIO_PIN_PE(0), | 60 | .wp_pin = GPIO_PIN_PE(0), |
| 62 | #else | ||
| 63 | .detect_pin = GPIO_PIN_NONE, | ||
| 64 | .wp_pin = GPIO_PIN_NONE, | ||
| 65 | #endif | ||
| 66 | }, | 61 | }, |
| 67 | }; | 62 | }; |
| 68 | 63 | ||
| @@ -123,7 +118,7 @@ static void __init set_hw_addr(struct platform_device *pdev) | |||
| 123 | 118 | ||
| 124 | void __init setup_board(void) | 119 | void __init setup_board(void) |
| 125 | { | 120 | { |
| 126 | at32_map_usart(1, 0); /* USART 1: /dev/ttyS0, DB9 */ | 121 | at32_map_usart(1, 0, 0); /* USART 1: /dev/ttyS0, DB9 */ |
| 127 | at32_setup_serial_console(0); | 122 | at32_setup_serial_console(0); |
| 128 | } | 123 | } |
| 129 | 124 | ||
diff --git a/arch/avr32/boards/atstk1000/atstk1002.c b/arch/avr32/boards/atstk1000/atstk1002.c index 1f33a106905c..2adc261c9e3d 100644 --- a/arch/avr32/boards/atstk1000/atstk1002.c +++ b/arch/avr32/boards/atstk1000/atstk1002.c | |||
| @@ -252,12 +252,12 @@ static void __init atstk1002_setup_extdac(void) | |||
| 252 | void __init setup_board(void) | 252 | void __init setup_board(void) |
| 253 | { | 253 | { |
| 254 | #ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM | 254 | #ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM |
| 255 | at32_map_usart(0, 1); /* USART 0/B: /dev/ttyS1, IRDA */ | 255 | at32_map_usart(0, 1, 0); /* USART 0/B: /dev/ttyS1, IRDA */ |
| 256 | #else | 256 | #else |
| 257 | at32_map_usart(1, 0); /* USART 1/A: /dev/ttyS0, DB9 */ | 257 | at32_map_usart(1, 0, 0); /* USART 1/A: /dev/ttyS0, DB9 */ |
| 258 | #endif | 258 | #endif |
| 259 | /* USART 2/unused: expansion connector */ | 259 | /* USART 2/unused: expansion connector */ |
| 260 | at32_map_usart(3, 2); /* USART 3/C: /dev/ttyS2, DB9 */ | 260 | at32_map_usart(3, 2, 0); /* USART 3/C: /dev/ttyS2, DB9 */ |
| 261 | 261 | ||
| 262 | at32_setup_serial_console(0); | 262 | at32_setup_serial_console(0); |
| 263 | } | 263 | } |
diff --git a/arch/avr32/boards/atstk1000/atstk1003.c b/arch/avr32/boards/atstk1000/atstk1003.c index b3a23c88bcfe..ff7e23298827 100644 --- a/arch/avr32/boards/atstk1000/atstk1003.c +++ b/arch/avr32/boards/atstk1000/atstk1003.c | |||
| @@ -115,12 +115,12 @@ static void __init atstk1003_setup_extdac(void) | |||
| 115 | void __init setup_board(void) | 115 | void __init setup_board(void) |
| 116 | { | 116 | { |
| 117 | #ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM | 117 | #ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM |
| 118 | at32_map_usart(0, 1); /* USART 0/B: /dev/ttyS1, IRDA */ | 118 | at32_map_usart(0, 1, 0); /* USART 0/B: /dev/ttyS1, IRDA */ |
| 119 | #else | 119 | #else |
| 120 | at32_map_usart(1, 0); /* USART 1/A: /dev/ttyS0, DB9 */ | 120 | at32_map_usart(1, 0, 0); /* USART 1/A: /dev/ttyS0, DB9 */ |
| 121 | #endif | 121 | #endif |
| 122 | /* USART 2/unused: expansion connector */ | 122 | /* USART 2/unused: expansion connector */ |
| 123 | at32_map_usart(3, 2); /* USART 3/C: /dev/ttyS2, DB9 */ | 123 | at32_map_usart(3, 2, 0); /* USART 3/C: /dev/ttyS2, DB9 */ |
| 124 | 124 | ||
| 125 | at32_setup_serial_console(0); | 125 | at32_setup_serial_console(0); |
| 126 | } | 126 | } |
diff --git a/arch/avr32/boards/atstk1000/atstk1004.c b/arch/avr32/boards/atstk1000/atstk1004.c index 29b35aca96cd..69a9f0f08c6e 100644 --- a/arch/avr32/boards/atstk1000/atstk1004.c +++ b/arch/avr32/boards/atstk1000/atstk1004.c | |||
| @@ -120,12 +120,12 @@ static void __init atstk1004_setup_extdac(void) | |||
| 120 | void __init setup_board(void) | 120 | void __init setup_board(void) |
| 121 | { | 121 | { |
| 122 | #ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM | 122 | #ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM |
| 123 | at32_map_usart(0, 1); /* USART 0/B: /dev/ttyS1, IRDA */ | 123 | at32_map_usart(0, 1, 0); /* USART 0/B: /dev/ttyS1, IRDA */ |
| 124 | #else | 124 | #else |
| 125 | at32_map_usart(1, 0); /* USART 1/A: /dev/ttyS0, DB9 */ | 125 | at32_map_usart(1, 0, 0); /* USART 1/A: /dev/ttyS0, DB9 */ |
| 126 | #endif | 126 | #endif |
| 127 | /* USART 2/unused: expansion connector */ | 127 | /* USART 2/unused: expansion connector */ |
| 128 | at32_map_usart(3, 2); /* USART 3/C: /dev/ttyS2, DB9 */ | 128 | at32_map_usart(3, 2, 0); /* USART 3/C: /dev/ttyS2, DB9 */ |
| 129 | 129 | ||
| 130 | at32_setup_serial_console(0); | 130 | at32_setup_serial_console(0); |
| 131 | } | 131 | } |
diff --git a/arch/avr32/boards/favr-32/setup.c b/arch/avr32/boards/favr-32/setup.c index 745c408c2ac5..46c9b0a224cf 100644 --- a/arch/avr32/boards/favr-32/setup.c +++ b/arch/avr32/boards/favr-32/setup.c | |||
| @@ -22,6 +22,8 @@ | |||
| 22 | #include <linux/spi/spi.h> | 22 | #include <linux/spi/spi.h> |
| 23 | #include <linux/spi/ads7846.h> | 23 | #include <linux/spi/ads7846.h> |
| 24 | 24 | ||
| 25 | #include <sound/atmel-abdac.h> | ||
| 26 | |||
| 25 | #include <video/atmel_lcdc.h> | 27 | #include <video/atmel_lcdc.h> |
| 26 | 28 | ||
| 27 | #include <asm/setup.h> | 29 | #include <asm/setup.h> |
| @@ -41,6 +43,9 @@ unsigned long at32_board_osc_rates[3] = { | |||
| 41 | /* Initialized by bootloader-specific startup code. */ | 43 | /* Initialized by bootloader-specific startup code. */ |
| 42 | struct tag *bootloader_tags __initdata; | 44 | struct tag *bootloader_tags __initdata; |
| 43 | 45 | ||
| 46 | static struct atmel_abdac_pdata __initdata abdac0_data = { | ||
| 47 | }; | ||
| 48 | |||
| 44 | struct eth_addr { | 49 | struct eth_addr { |
| 45 | u8 addr[6]; | 50 | u8 addr[6]; |
| 46 | }; | 51 | }; |
| @@ -245,7 +250,7 @@ static void __init favr32_setup_atmel_pwm_bl(void) | |||
| 245 | 250 | ||
| 246 | void __init setup_board(void) | 251 | void __init setup_board(void) |
| 247 | { | 252 | { |
| 248 | at32_map_usart(3, 0); /* USART 3 => /dev/ttyS0 */ | 253 | at32_map_usart(3, 0, 0); /* USART 3 => /dev/ttyS0 */ |
| 249 | at32_setup_serial_console(0); | 254 | at32_setup_serial_console(0); |
| 250 | } | 255 | } |
| 251 | 256 | ||
| @@ -326,7 +331,7 @@ static int __init favr32_init(void) | |||
| 326 | 331 | ||
| 327 | spi1_board_info[0].irq = gpio_to_irq(GPIO_PIN_PB(3)); | 332 | spi1_board_info[0].irq = gpio_to_irq(GPIO_PIN_PB(3)); |
| 328 | 333 | ||
| 329 | set_abdac_rate(at32_add_device_abdac(0)); | 334 | set_abdac_rate(at32_add_device_abdac(0, &abdac0_data)); |
| 330 | 335 | ||
| 331 | at32_add_device_pwm(1 << atmel_pwm_bl_pdata.pwm_channel); | 336 | at32_add_device_pwm(1 << atmel_pwm_bl_pdata.pwm_channel); |
| 332 | at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); | 337 | at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); |
diff --git a/arch/avr32/boards/hammerhead/setup.c b/arch/avr32/boards/hammerhead/setup.c index 4d2fe82b2029..dd009875a405 100644 --- a/arch/avr32/boards/hammerhead/setup.c +++ b/arch/avr32/boards/hammerhead/setup.c | |||
| @@ -29,6 +29,8 @@ | |||
| 29 | #include <mach/init.h> | 29 | #include <mach/init.h> |
| 30 | #include <mach/portmux.h> | 30 | #include <mach/portmux.h> |
| 31 | 31 | ||
| 32 | #include <sound/atmel-ac97c.h> | ||
| 33 | |||
| 32 | #include "../../mach-at32ap/clock.h" | 34 | #include "../../mach-at32ap/clock.h" |
| 33 | #include "flash.h" | 35 | #include "flash.h" |
| 34 | 36 | ||
| @@ -163,7 +165,7 @@ static void __init set_hw_addr(struct platform_device *pdev) | |||
| 163 | 165 | ||
| 164 | void __init setup_board(void) | 166 | void __init setup_board(void) |
| 165 | { | 167 | { |
| 166 | at32_map_usart(1, 0); /* USART 1: /dev/ttyS0, DB9 */ | 168 | at32_map_usart(1, 0, 0); /* USART 1: /dev/ttyS0, DB9 */ |
| 167 | at32_setup_serial_console(0); | 169 | at32_setup_serial_console(0); |
| 168 | } | 170 | } |
| 169 | 171 | ||
| @@ -233,7 +235,7 @@ static int __init hammerhead_init(void) | |||
| 233 | i2c_register_board_info(0, i2c_info, ARRAY_SIZE(i2c_info)); | 235 | i2c_register_board_info(0, i2c_info, ARRAY_SIZE(i2c_info)); |
| 234 | 236 | ||
| 235 | #ifdef CONFIG_BOARD_HAMMERHEAD_SND | 237 | #ifdef CONFIG_BOARD_HAMMERHEAD_SND |
| 236 | at32_add_device_ac97c(0, &ac97c_data); | 238 | at32_add_device_ac97c(0, &ac97c_data, AC97C_BOTH); |
| 237 | #endif | 239 | #endif |
| 238 | 240 | ||
| 239 | /* Select the Touchscreen interrupt pin mode */ | 241 | /* Select the Touchscreen interrupt pin mode */ |
diff --git a/arch/avr32/boards/merisc/Kconfig b/arch/avr32/boards/merisc/Kconfig new file mode 100644 index 000000000000..7e043275d5a9 --- /dev/null +++ b/arch/avr32/boards/merisc/Kconfig | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | # Merisc customization | ||
| 2 | |||
| 3 | if BOARD_MERISC | ||
| 4 | |||
| 5 | endif # BOARD_MERISC | ||
diff --git a/arch/avr32/boards/merisc/Makefile b/arch/avr32/boards/merisc/Makefile new file mode 100644 index 000000000000..d24c78729bd1 --- /dev/null +++ b/arch/avr32/boards/merisc/Makefile | |||
| @@ -0,0 +1 @@ | |||
| obj-y += setup.o flash.o display.o merisc_sysfs.o | |||
diff --git a/arch/avr32/boards/merisc/display.c b/arch/avr32/boards/merisc/display.c new file mode 100644 index 000000000000..85a543cd4abc --- /dev/null +++ b/arch/avr32/boards/merisc/display.c | |||
| @@ -0,0 +1,65 @@ | |||
| 1 | /* | ||
| 2 | * Display setup code for the Merisc board | ||
| 3 | * | ||
| 4 | * Copyright (C) 2008 Martinsson Elektronik AB | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License version 2 as | ||
| 8 | * published by the Free Software Foundation. | ||
| 9 | */ | ||
| 10 | #include <linux/init.h> | ||
| 11 | #include <linux/platform_device.h> | ||
| 12 | #include <linux/fb.h> | ||
| 13 | #include <video/atmel_lcdc.h> | ||
| 14 | #include <asm/setup.h> | ||
| 15 | #include <mach/board.h> | ||
| 16 | #include "merisc.h" | ||
| 17 | |||
| 18 | static struct fb_videomode merisc_fb_videomode[] = { | ||
| 19 | { | ||
| 20 | .refresh = 44, | ||
| 21 | .xres = 640, | ||
| 22 | .yres = 480, | ||
| 23 | .left_margin = 96, | ||
| 24 | .right_margin = 96, | ||
| 25 | .upper_margin = 34, | ||
| 26 | .lower_margin = 8, | ||
| 27 | .hsync_len = 64, | ||
| 28 | .vsync_len = 64, | ||
| 29 | .name = "640x480 @ 44", | ||
| 30 | .pixclock = KHZ2PICOS(25180), | ||
| 31 | .sync = 0, | ||
| 32 | .vmode = FB_VMODE_NONINTERLACED, | ||
| 33 | }, | ||
| 34 | }; | ||
| 35 | |||
| 36 | static struct fb_monspecs merisc_fb_monspecs = { | ||
| 37 | .manufacturer = "Kyo", | ||
| 38 | .monitor = "TCG075VG2AD", | ||
| 39 | .modedb = merisc_fb_videomode, | ||
| 40 | .modedb_len = ARRAY_SIZE(merisc_fb_videomode), | ||
| 41 | .hfmin = 30000, | ||
| 42 | .hfmax = 33333, | ||
| 43 | .vfmin = 60, | ||
| 44 | .vfmax = 90, | ||
| 45 | .dclkmax = 30000000, | ||
| 46 | }; | ||
| 47 | |||
| 48 | struct atmel_lcdfb_info merisc_lcdc_data = { | ||
| 49 | .default_bpp = 24, | ||
| 50 | .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, | ||
| 51 | .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT | ||
| 52 | | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE | ||
| 53 | | ATMEL_LCDC_MEMOR_BIG), | ||
| 54 | .default_monspecs = &merisc_fb_monspecs, | ||
| 55 | .guard_time = 2, | ||
| 56 | }; | ||
| 57 | |||
| 58 | static int __init merisc_display_init(void) | ||
| 59 | { | ||
| 60 | at32_add_device_lcdc(0, &merisc_lcdc_data, fbmem_start, | ||
| 61 | fbmem_size, 0); | ||
| 62 | |||
| 63 | return 0; | ||
| 64 | } | ||
| 65 | device_initcall(merisc_display_init); | ||
diff --git a/arch/avr32/boards/merisc/flash.c b/arch/avr32/boards/merisc/flash.c new file mode 100644 index 000000000000..8e856fd6f013 --- /dev/null +++ b/arch/avr32/boards/merisc/flash.c | |||
| @@ -0,0 +1,139 @@ | |||
| 1 | /* | ||
| 2 | * Merisc board-specific flash initialization | ||
| 3 | * | ||
| 4 | * Copyright (C) 2008 Martinsson Elektronik AB | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License version 2 as | ||
| 8 | * published by the Free Software Foundation. | ||
| 9 | */ | ||
| 10 | #include <linux/init.h> | ||
| 11 | #include <linux/platform_device.h> | ||
| 12 | #include <linux/mtd/mtd.h> | ||
| 13 | #include <linux/mtd/partitions.h> | ||
| 14 | #include <linux/mtd/physmap.h> | ||
| 15 | #include <mach/smc.h> | ||
| 16 | |||
| 17 | /* Will be translated to units of 14.3 ns, rounded up */ | ||
| 18 | static struct smc_timing flash_timing __initdata = { | ||
| 19 | .ncs_read_setup = 1 * 14, | ||
| 20 | .nrd_setup = 5 * 14, | ||
| 21 | .ncs_write_setup = 1 * 14, | ||
| 22 | .nwe_setup = 2 * 14, | ||
| 23 | |||
| 24 | .ncs_read_pulse = 12 * 14, | ||
| 25 | .nrd_pulse = 7 * 14, | ||
| 26 | .ncs_write_pulse = 8 * 14, | ||
| 27 | .nwe_pulse = 4 * 14, | ||
| 28 | |||
| 29 | .read_cycle = 14 * 14, | ||
| 30 | .write_cycle = 10 * 14, | ||
| 31 | }; | ||
| 32 | |||
| 33 | static struct smc_config flash_config __initdata = { | ||
| 34 | .bus_width = 2, | ||
| 35 | .nrd_controlled = 1, | ||
| 36 | .nwe_controlled = 1, | ||
| 37 | .byte_write = 1, | ||
| 38 | .tdf_cycles = 3, | ||
| 39 | }; | ||
| 40 | |||
| 41 | static struct mtd_partition flash_0_parts[] = { | ||
| 42 | { | ||
| 43 | .name = "boot", | ||
| 44 | .offset = 0x00000000, | ||
| 45 | .size = 0x00060000, | ||
| 46 | .mask_flags = 0, | ||
| 47 | }, | ||
| 48 | { | ||
| 49 | .name = "kernel", | ||
| 50 | .offset = 0x00060000, | ||
| 51 | .size = 0x00200000, | ||
| 52 | .mask_flags = 0, | ||
| 53 | }, | ||
| 54 | { | ||
| 55 | .name = "root", | ||
| 56 | .offset = 0x00260000, | ||
| 57 | .size = MTDPART_SIZ_FULL, | ||
| 58 | .mask_flags = 0, | ||
| 59 | }, | ||
| 60 | }; | ||
| 61 | |||
| 62 | static struct mtd_partition flash_1_parts[] = { | ||
| 63 | { | ||
| 64 | .name = "2ndflash", | ||
| 65 | .offset = 0x00000000, | ||
| 66 | .size = MTDPART_SIZ_FULL, | ||
| 67 | .mask_flags = 0, | ||
| 68 | }, | ||
| 69 | }; | ||
| 70 | |||
| 71 | static struct physmap_flash_data flash_data[] = { | ||
| 72 | { | ||
| 73 | .width = 2, | ||
| 74 | .nr_parts = ARRAY_SIZE(flash_0_parts), | ||
| 75 | .parts = flash_0_parts, | ||
| 76 | }, | ||
| 77 | { | ||
| 78 | .width = 2, | ||
| 79 | .nr_parts = ARRAY_SIZE(flash_1_parts), | ||
| 80 | .parts = flash_1_parts, | ||
| 81 | } | ||
| 82 | }; | ||
| 83 | |||
| 84 | static struct resource flash_resource[] = { | ||
| 85 | { | ||
| 86 | .start = 0x00000000, | ||
| 87 | .end = 0x03ffffff, | ||
| 88 | .flags = IORESOURCE_MEM, | ||
| 89 | }, | ||
| 90 | { | ||
| 91 | .start = 0x04000000, | ||
| 92 | .end = 0x07ffffff, | ||
| 93 | .flags = IORESOURCE_MEM, | ||
| 94 | }, | ||
| 95 | }; | ||
| 96 | |||
| 97 | static struct platform_device flash_device[] = { | ||
| 98 | { | ||
| 99 | .name = "physmap-flash", | ||
| 100 | .id = 0, | ||
| 101 | .resource = &flash_resource[0], | ||
| 102 | .num_resources = 1, | ||
| 103 | .dev = { | ||
| 104 | .platform_data = &flash_data[0], | ||
| 105 | }, | ||
| 106 | }, | ||
| 107 | { | ||
| 108 | .name = "physmap-flash", | ||
| 109 | .id = 1, | ||
| 110 | .resource = &flash_resource[1], | ||
| 111 | .num_resources = 1, | ||
| 112 | .dev = { | ||
| 113 | .platform_data = &flash_data[1], | ||
| 114 | }, | ||
| 115 | }, | ||
| 116 | }; | ||
| 117 | |||
| 118 | static int __init merisc_flash_init(void) | ||
| 119 | { | ||
| 120 | int ret; | ||
| 121 | smc_set_timing(&flash_config, &flash_timing); | ||
| 122 | |||
| 123 | ret = smc_set_configuration(0, &flash_config); | ||
| 124 | if (ret < 0) { | ||
| 125 | printk(KERN_ERR "Merisc: failed to set NOR flash timing #0\n"); | ||
| 126 | return ret; | ||
| 127 | } | ||
| 128 | |||
| 129 | ret = smc_set_configuration(4, &flash_config); | ||
| 130 | if (ret < 0) { | ||
| 131 | printk(KERN_ERR "Merisc: failed to set NOR flash timing #1\n"); | ||
| 132 | return ret; | ||
| 133 | } | ||
| 134 | |||
| 135 | platform_device_register(&flash_device[0]); | ||
| 136 | platform_device_register(&flash_device[1]); | ||
| 137 | return 0; | ||
| 138 | } | ||
| 139 | device_initcall(merisc_flash_init); | ||
diff --git a/arch/avr32/boards/merisc/merisc.h b/arch/avr32/boards/merisc/merisc.h new file mode 100644 index 000000000000..50ffb2f3fcbf --- /dev/null +++ b/arch/avr32/boards/merisc/merisc.h | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | /* | ||
| 2 | * Merisc exports | ||
| 3 | * | ||
| 4 | * Copyright (C) 2008 Martinsson Elektronik AB | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License version 2 as | ||
| 8 | * published by the Free Software Foundation. | ||
| 9 | */ | ||
| 10 | #ifndef __ARCH_AVR32_BOARDS_MERISC_MERISC_H | ||
| 11 | #define __ARCH_AVR32_BOARDS_MERISC_MERISC_H | ||
| 12 | |||
| 13 | const char *merisc_revision(void); | ||
| 14 | const char *merisc_model(void); | ||
| 15 | |||
| 16 | extern struct class merisc_class; | ||
| 17 | |||
| 18 | #endif /* __ARCH_AVR32_BOARDS_MERISC_MERISC_H */ | ||
diff --git a/arch/avr32/boards/merisc/merisc_sysfs.c b/arch/avr32/boards/merisc/merisc_sysfs.c new file mode 100644 index 000000000000..df431fdba9ad --- /dev/null +++ b/arch/avr32/boards/merisc/merisc_sysfs.c | |||
| @@ -0,0 +1,65 @@ | |||
| 1 | /* | ||
| 2 | * Merisc sysfs exports | ||
| 3 | * | ||
| 4 | * Copyright (C) 2008 Martinsson Elektronik AB | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License version 2 as | ||
| 8 | * published by the Free Software Foundation. | ||
| 9 | */ | ||
| 10 | #include <linux/module.h> | ||
| 11 | #include <linux/kernel.h> | ||
| 12 | #include <linux/init.h> | ||
| 13 | #include <linux/list.h> | ||
| 14 | #include <linux/spinlock.h> | ||
| 15 | #include <linux/device.h> | ||
| 16 | #include <linux/sysdev.h> | ||
| 17 | #include <linux/timer.h> | ||
| 18 | #include <linux/err.h> | ||
| 19 | #include <linux/ctype.h> | ||
| 20 | #include "merisc.h" | ||
| 21 | |||
| 22 | static ssize_t merisc_model_show(struct class *class, char *buf) | ||
| 23 | { | ||
| 24 | ssize_t ret = 0; | ||
| 25 | |||
| 26 | sprintf(buf, "%s\n", merisc_model()); | ||
| 27 | ret = strlen(buf) + 1; | ||
| 28 | |||
| 29 | return ret; | ||
| 30 | } | ||
| 31 | |||
| 32 | static ssize_t merisc_revision_show(struct class *class, char *buf) | ||
| 33 | { | ||
| 34 | ssize_t ret = 0; | ||
| 35 | |||
| 36 | sprintf(buf, "%s\n", merisc_revision()); | ||
| 37 | ret = strlen(buf) + 1; | ||
| 38 | |||
| 39 | return ret; | ||
| 40 | } | ||
| 41 | |||
| 42 | static struct class_attribute merisc_class_attrs[] = { | ||
| 43 | __ATTR(model, S_IRUGO, merisc_model_show, NULL), | ||
| 44 | __ATTR(revision, S_IRUGO, merisc_revision_show, NULL), | ||
| 45 | __ATTR_NULL, | ||
| 46 | }; | ||
| 47 | |||
| 48 | struct class merisc_class = { | ||
| 49 | .name = "merisc", | ||
| 50 | .owner = THIS_MODULE, | ||
| 51 | .class_attrs = merisc_class_attrs, | ||
| 52 | }; | ||
| 53 | |||
| 54 | static int __init merisc_sysfs_init(void) | ||
| 55 | { | ||
| 56 | int status; | ||
| 57 | |||
| 58 | status = class_register(&merisc_class); | ||
| 59 | if (status < 0) | ||
| 60 | return status; | ||
| 61 | |||
| 62 | return 0; | ||
| 63 | } | ||
| 64 | |||
| 65 | postcore_initcall(merisc_sysfs_init); | ||
diff --git a/arch/avr32/boards/merisc/setup.c b/arch/avr32/boards/merisc/setup.c new file mode 100644 index 000000000000..20b300cf105a --- /dev/null +++ b/arch/avr32/boards/merisc/setup.c | |||
| @@ -0,0 +1,297 @@ | |||
| 1 | /* | ||
| 2 | * Board-specific setup code for the Merisc | ||
| 3 | * | ||
| 4 | * Copyright (C) 2008 Martinsson Elektronik AB | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License version 2 as | ||
| 8 | * published by the Free Software Foundation. | ||
| 9 | */ | ||
| 10 | #include <linux/clk.h> | ||
| 11 | #include <linux/etherdevice.h> | ||
| 12 | #include <linux/i2c.h> | ||
| 13 | #include <linux/i2c-gpio.h> | ||
| 14 | #include <linux/gpio.h> | ||
| 15 | #include <linux/init.h> | ||
| 16 | #include <linux/linkage.h> | ||
| 17 | #include <linux/platform_device.h> | ||
| 18 | #include <linux/types.h> | ||
| 19 | #include <linux/leds.h> | ||
| 20 | #include <linux/spi/spi.h> | ||
| 21 | #include <linux/spi/ads7846.h> | ||
| 22 | #include <linux/irq.h> | ||
| 23 | #include <linux/fb.h> | ||
| 24 | #include <linux/atmel-mci.h> | ||
| 25 | |||
| 26 | #include <asm/io.h> | ||
| 27 | #include <asm/setup.h> | ||
| 28 | #include <asm/gpio.h> | ||
| 29 | |||
| 30 | #include <mach/at32ap700x.h> | ||
| 31 | #include <mach/board.h> | ||
| 32 | #include <mach/init.h> | ||
| 33 | #include <mach/portmux.h> | ||
| 34 | |||
| 35 | #include "merisc.h" | ||
| 36 | |||
| 37 | /* Holds the autodetected board model and revision */ | ||
| 38 | static int merisc_board_id; | ||
| 39 | |||
| 40 | /* Initialized by bootloader-specific startup code. */ | ||
| 41 | struct tag *bootloader_tags __initdata; | ||
| 42 | |||
| 43 | /* Oscillator frequencies. These are board specific */ | ||
| 44 | unsigned long at32_board_osc_rates[3] = { | ||
| 45 | [0] = 32768, /* 32.768 kHz on RTC osc */ | ||
| 46 | [1] = 20000000, /* 20 MHz on osc0 */ | ||
| 47 | [2] = 12000000, /* 12 MHz on osc1 */ | ||
| 48 | }; | ||
| 49 | |||
| 50 | struct eth_addr { | ||
| 51 | u8 addr[6]; | ||
| 52 | }; | ||
| 53 | |||
| 54 | static struct eth_addr __initdata hw_addr[2]; | ||
| 55 | static struct eth_platform_data __initdata eth_data[2]; | ||
| 56 | |||
| 57 | static int ads7846_get_pendown_state_PB26(void) | ||
| 58 | { | ||
| 59 | return !gpio_get_value(GPIO_PIN_PB(26)); | ||
| 60 | } | ||
| 61 | |||
| 62 | static int ads7846_get_pendown_state_PB28(void) | ||
| 63 | { | ||
| 64 | return !gpio_get_value(GPIO_PIN_PB(28)); | ||
| 65 | } | ||
| 66 | |||
| 67 | static struct ads7846_platform_data __initdata ads7846_data = { | ||
| 68 | .model = 7846, | ||
| 69 | .vref_delay_usecs = 100, | ||
| 70 | .vref_mv = 0, | ||
| 71 | .keep_vref_on = 0, | ||
| 72 | .settle_delay_usecs = 150, | ||
| 73 | .penirq_recheck_delay_usecs = 1, | ||
| 74 | .x_plate_ohms = 800, | ||
| 75 | .debounce_rep = 4, | ||
| 76 | .debounce_max = 10, | ||
| 77 | .debounce_tol = 50, | ||
| 78 | .get_pendown_state = ads7846_get_pendown_state_PB26, | ||
| 79 | .filter_init = NULL, | ||
| 80 | .filter = NULL, | ||
| 81 | .filter_cleanup = NULL, | ||
| 82 | }; | ||
| 83 | |||
| 84 | static struct spi_board_info __initdata spi0_board_info[] = { | ||
| 85 | { | ||
| 86 | .modalias = "ads7846", | ||
| 87 | .max_speed_hz = 3250000, | ||
| 88 | .chip_select = 0, | ||
| 89 | .bus_num = 0, | ||
| 90 | .platform_data = &ads7846_data, | ||
| 91 | .mode = SPI_MODE_0, | ||
| 92 | }, | ||
| 93 | }; | ||
| 94 | |||
| 95 | static struct mci_platform_data __initdata mci0_data = { | ||
| 96 | .slot[0] = { | ||
| 97 | .bus_width = 4, | ||
| 98 | .detect_pin = GPIO_PIN_PE(19), | ||
| 99 | .wp_pin = GPIO_PIN_PE(20), | ||
| 100 | }, | ||
| 101 | }; | ||
| 102 | |||
| 103 | static int __init parse_tag_ethernet(struct tag *tag) | ||
| 104 | { | ||
| 105 | int i; | ||
| 106 | |||
| 107 | i = tag->u.ethernet.mac_index; | ||
| 108 | if (i < ARRAY_SIZE(hw_addr)) { | ||
| 109 | memcpy(hw_addr[i].addr, tag->u.ethernet.hw_address, | ||
| 110 | sizeof(hw_addr[i].addr)); | ||
| 111 | } | ||
| 112 | |||
| 113 | return 0; | ||
| 114 | } | ||
| 115 | __tagtable(ATAG_ETHERNET, parse_tag_ethernet); | ||
| 116 | |||
| 117 | static void __init set_hw_addr(struct platform_device *pdev) | ||
| 118 | { | ||
| 119 | struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
| 120 | const u8 *addr; | ||
| 121 | void __iomem *regs; | ||
| 122 | struct clk *pclk; | ||
| 123 | |||
| 124 | if (!res) | ||
| 125 | return; | ||
| 126 | |||
| 127 | if (pdev->id >= ARRAY_SIZE(hw_addr)) | ||
| 128 | return; | ||
| 129 | |||
| 130 | addr = hw_addr[pdev->id].addr; | ||
| 131 | if (!is_valid_ether_addr(addr)) | ||
| 132 | return; | ||
| 133 | |||
| 134 | regs = (void __iomem __force *)res->start; | ||
| 135 | pclk = clk_get(&pdev->dev, "pclk"); | ||
| 136 | if (!pclk) | ||
| 137 | return; | ||
| 138 | |||
| 139 | clk_enable(pclk); | ||
| 140 | __raw_writel((addr[3] << 24) | (addr[2] << 16) | ||
| 141 | | (addr[1] << 8) | addr[0], regs + 0x98); | ||
| 142 | __raw_writel((addr[5] << 8) | addr[4], regs + 0x9c); | ||
| 143 | clk_disable(pclk); | ||
| 144 | clk_put(pclk); | ||
| 145 | } | ||
| 146 | |||
| 147 | static struct i2c_gpio_platform_data i2c_gpio_data = { | ||
| 148 | .sda_pin = GPIO_PIN_PA(6), | ||
| 149 | .scl_pin = GPIO_PIN_PA(7), | ||
| 150 | .sda_is_open_drain = 1, | ||
| 151 | .scl_is_open_drain = 1, | ||
| 152 | .udelay = 2, | ||
| 153 | }; | ||
| 154 | |||
| 155 | static struct platform_device i2c_gpio_device = { | ||
| 156 | .name = "i2c-gpio", | ||
| 157 | .id = 0, | ||
| 158 | .dev = { | ||
| 159 | .platform_data = &i2c_gpio_data, | ||
| 160 | }, | ||
| 161 | }; | ||
| 162 | |||
| 163 | static struct i2c_board_info __initdata i2c_info[] = { | ||
| 164 | { | ||
| 165 | I2C_BOARD_INFO("pcf8563", 0x51) | ||
| 166 | }, | ||
| 167 | }; | ||
| 168 | |||
| 169 | #ifdef CONFIG_LEDS_ATMEL_PWM | ||
| 170 | static struct gpio_led stk_pwm_led[] = { | ||
| 171 | { | ||
| 172 | .name = "backlight", | ||
| 173 | .gpio = 0, /* PWM channel 0 (LCD backlight) */ | ||
| 174 | }, | ||
| 175 | }; | ||
| 176 | |||
| 177 | static struct gpio_led_platform_data stk_pwm_led_data = { | ||
| 178 | .num_leds = ARRAY_SIZE(stk_pwm_led), | ||
| 179 | .leds = stk_pwm_led, | ||
| 180 | }; | ||
| 181 | |||
| 182 | static struct platform_device stk_pwm_led_dev = { | ||
| 183 | .name = "leds-atmel-pwm", | ||
| 184 | .id = -1, | ||
| 185 | .dev = { | ||
| 186 | .platform_data = &stk_pwm_led_data, | ||
| 187 | }, | ||
| 188 | }; | ||
| 189 | #endif | ||
| 190 | |||
| 191 | const char *merisc_model(void) | ||
| 192 | { | ||
| 193 | switch (merisc_board_id) { | ||
| 194 | case 0: | ||
| 195 | case 1: | ||
| 196 | return "500-01"; | ||
| 197 | case 2: | ||
| 198 | return "BT"; | ||
| 199 | default: | ||
| 200 | return "Unknown"; | ||
| 201 | } | ||
| 202 | } | ||
| 203 | |||
| 204 | const char *merisc_revision(void) | ||
| 205 | { | ||
| 206 | switch (merisc_board_id) { | ||
| 207 | case 0: | ||
| 208 | return "B"; | ||
| 209 | case 1: | ||
| 210 | return "D"; | ||
| 211 | case 2: | ||
| 212 | return "A"; | ||
| 213 | default: | ||
| 214 | return "Unknown"; | ||
| 215 | } | ||
| 216 | } | ||
| 217 | |||
| 218 | static void detect_merisc_board_id(void) | ||
| 219 | { | ||
| 220 | /* Board ID pins MUST be set as input or the board may be damaged */ | ||
| 221 | at32_select_gpio(GPIO_PIN_PA(24), AT32_GPIOF_PULLUP); | ||
| 222 | at32_select_gpio(GPIO_PIN_PA(25), AT32_GPIOF_PULLUP); | ||
| 223 | at32_select_gpio(GPIO_PIN_PA(26), AT32_GPIOF_PULLUP); | ||
| 224 | at32_select_gpio(GPIO_PIN_PA(27), AT32_GPIOF_PULLUP); | ||
| 225 | |||
| 226 | merisc_board_id = !gpio_get_value(GPIO_PIN_PA(24)) + | ||
| 227 | !gpio_get_value(GPIO_PIN_PA(25)) * 2 + | ||
| 228 | !gpio_get_value(GPIO_PIN_PA(26)) * 4 + | ||
| 229 | !gpio_get_value(GPIO_PIN_PA(27)) * 8; | ||
| 230 | } | ||
| 231 | |||
| 232 | void __init setup_board(void) | ||
| 233 | { | ||
| 234 | at32_map_usart(0, 0, 0); | ||
| 235 | at32_map_usart(1, 1, 0); | ||
| 236 | at32_map_usart(3, 3, 0); | ||
| 237 | at32_setup_serial_console(1); | ||
| 238 | } | ||
| 239 | |||
| 240 | static int __init merisc_init(void) | ||
| 241 | { | ||
| 242 | detect_merisc_board_id(); | ||
| 243 | |||
| 244 | printk(KERN_NOTICE "BOARD: Merisc %s revision %s\n", merisc_model(), | ||
| 245 | merisc_revision()); | ||
| 246 | |||
| 247 | /* Reserve pins for SDRAM */ | ||
| 248 | at32_reserve_pin(GPIO_PIOE_BASE, ATMEL_EBI_PE_DATA_ALL | (1 << 26)); | ||
| 249 | |||
| 250 | if (merisc_board_id >= 1) | ||
| 251 | at32_map_usart(2, 2, 0); | ||
| 252 | |||
| 253 | at32_add_device_usart(0); | ||
| 254 | at32_add_device_usart(1); | ||
| 255 | if (merisc_board_id >= 1) | ||
| 256 | at32_add_device_usart(2); | ||
| 257 | at32_add_device_usart(3); | ||
| 258 | set_hw_addr(at32_add_device_eth(0, ð_data[0])); | ||
| 259 | |||
| 260 | /* ADS7846 PENIRQ */ | ||
| 261 | if (merisc_board_id == 0) { | ||
| 262 | ads7846_data.get_pendown_state = ads7846_get_pendown_state_PB26; | ||
| 263 | at32_select_periph(GPIO_PIOB_BASE, 1 << 26, | ||
| 264 | GPIO_PERIPH_A, AT32_GPIOF_PULLUP); | ||
| 265 | spi0_board_info[0].irq = AT32_EXTINT(1); | ||
| 266 | } else { | ||
| 267 | ads7846_data.get_pendown_state = ads7846_get_pendown_state_PB28; | ||
| 268 | at32_select_periph(GPIO_PIOB_BASE, 1 << 28, GPIO_PERIPH_A, | ||
| 269 | AT32_GPIOF_PULLUP); | ||
| 270 | spi0_board_info[0].irq = AT32_EXTINT(3); | ||
| 271 | } | ||
| 272 | |||
| 273 | /* ADS7846 busy pin */ | ||
| 274 | at32_select_gpio(GPIO_PIN_PA(4), AT32_GPIOF_PULLUP); | ||
| 275 | |||
| 276 | at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info)); | ||
| 277 | |||
| 278 | at32_add_device_mci(0, &mci0_data); | ||
| 279 | |||
| 280 | #ifdef CONFIG_LEDS_ATMEL_PWM | ||
| 281 | at32_add_device_pwm((1 << 0) | (1 << 2)); | ||
| 282 | platform_device_register(&stk_pwm_led_dev); | ||
| 283 | #else | ||
| 284 | at32_add_device_pwm((1 << 2)); | ||
| 285 | #endif | ||
| 286 | |||
| 287 | at32_select_gpio(i2c_gpio_data.sda_pin, | ||
| 288 | AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH); | ||
| 289 | at32_select_gpio(i2c_gpio_data.scl_pin, | ||
| 290 | AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH); | ||
| 291 | platform_device_register(&i2c_gpio_device); | ||
| 292 | |||
| 293 | i2c_register_board_info(0, i2c_info, ARRAY_SIZE(i2c_info)); | ||
| 294 | |||
| 295 | return 0; | ||
| 296 | } | ||
| 297 | postcore_initcall(merisc_init); | ||
diff --git a/arch/avr32/boards/mimc200/setup.c b/arch/avr32/boards/mimc200/setup.c index 2b58d61f0afc..c1b2175b4fea 100644 --- a/arch/avr32/boards/mimc200/setup.c +++ b/arch/avr32/boards/mimc200/setup.c | |||
| @@ -175,10 +175,10 @@ static void __init set_hw_addr(struct platform_device *pdev) | |||
| 175 | 175 | ||
| 176 | void __init setup_board(void) | 176 | void __init setup_board(void) |
| 177 | { | 177 | { |
| 178 | at32_map_usart(0, 0); /* USART 0: /dev/ttyS0 (TTL --> Altera) */ | 178 | at32_map_usart(0, 0, 0); /* USART 0: /dev/ttyS0 (TTL --> Altera) */ |
| 179 | at32_map_usart(1, 1); /* USART 1: /dev/ttyS1 (RS232) */ | 179 | at32_map_usart(1, 1, 0); /* USART 1: /dev/ttyS1 (RS232) */ |
| 180 | at32_map_usart(2, 2); /* USART 2: /dev/ttyS2 (RS485) */ | 180 | at32_map_usart(2, 2, 0); /* USART 2: /dev/ttyS2 (RS485) */ |
| 181 | at32_map_usart(3, 3); /* USART 3: /dev/ttyS3 (RS422 Multidrop) */ | 181 | at32_map_usart(3, 3, 0); /* USART 3: /dev/ttyS3 (RS422 Multidrop) */ |
| 182 | } | 182 | } |
| 183 | 183 | ||
| 184 | static struct i2c_gpio_platform_data i2c_gpio_data = { | 184 | static struct i2c_gpio_platform_data i2c_gpio_data = { |
diff --git a/arch/avr32/configs/merisc_defconfig b/arch/avr32/configs/merisc_defconfig new file mode 100644 index 000000000000..41554db4877f --- /dev/null +++ b/arch/avr32/configs/merisc_defconfig | |||
| @@ -0,0 +1,1237 @@ | |||
| 1 | # | ||
| 2 | # Automatically generated make config: don't edit | ||
| 3 | # Linux kernel version: 2.6.29-rc1 | ||
| 4 | # Wed Mar 25 14:06:15 2009 | ||
| 5 | # | ||
| 6 | CONFIG_AVR32=y | ||
| 7 | CONFIG_GENERIC_GPIO=y | ||
| 8 | CONFIG_GENERIC_HARDIRQS=y | ||
| 9 | CONFIG_STACKTRACE_SUPPORT=y | ||
| 10 | CONFIG_LOCKDEP_SUPPORT=y | ||
| 11 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
| 12 | CONFIG_HARDIRQS_SW_RESEND=y | ||
| 13 | CONFIG_GENERIC_IRQ_PROBE=y | ||
| 14 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
| 15 | CONFIG_GENERIC_TIME=y | ||
| 16 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
| 17 | # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set | ||
| 18 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
| 19 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
| 20 | CONFIG_GENERIC_HWEIGHT=y | ||
| 21 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
| 22 | CONFIG_GENERIC_BUG=y | ||
| 23 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
| 24 | |||
| 25 | # | ||
| 26 | # General setup | ||
| 27 | # | ||
| 28 | CONFIG_EXPERIMENTAL=y | ||
| 29 | CONFIG_BROKEN_ON_SMP=y | ||
| 30 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
| 31 | CONFIG_LOCALVERSION="" | ||
| 32 | # CONFIG_LOCALVERSION_AUTO is not set | ||
| 33 | CONFIG_SWAP=y | ||
| 34 | CONFIG_SYSVIPC=y | ||
| 35 | CONFIG_SYSVIPC_SYSCTL=y | ||
| 36 | CONFIG_POSIX_MQUEUE=y | ||
| 37 | CONFIG_BSD_PROCESS_ACCT=y | ||
| 38 | CONFIG_BSD_PROCESS_ACCT_V3=y | ||
| 39 | # CONFIG_TASKSTATS is not set | ||
| 40 | # CONFIG_AUDIT is not set | ||
| 41 | # CONFIG_IKCONFIG is not set | ||
| 42 | CONFIG_LOG_BUF_SHIFT=14 | ||
| 43 | CONFIG_GROUP_SCHED=y | ||
| 44 | CONFIG_FAIR_GROUP_SCHED=y | ||
| 45 | # CONFIG_RT_GROUP_SCHED is not set | ||
| 46 | CONFIG_USER_SCHED=y | ||
| 47 | # CONFIG_CGROUP_SCHED is not set | ||
| 48 | # CONFIG_CGROUPS is not set | ||
| 49 | CONFIG_SYSFS_DEPRECATED=y | ||
| 50 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 51 | # CONFIG_RELAY is not set | ||
| 52 | # CONFIG_NAMESPACES is not set | ||
| 53 | CONFIG_BLK_DEV_INITRD=y | ||
| 54 | CONFIG_INITRAMFS_SOURCE="" | ||
| 55 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
| 56 | CONFIG_SYSCTL=y | ||
| 57 | CONFIG_EMBEDDED=y | ||
| 58 | # CONFIG_SYSCTL_SYSCALL is not set | ||
| 59 | CONFIG_KALLSYMS=y | ||
| 60 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
| 61 | CONFIG_HOTPLUG=y | ||
| 62 | CONFIG_PRINTK=y | ||
| 63 | CONFIG_BUG=y | ||
| 64 | CONFIG_ELF_CORE=y | ||
| 65 | CONFIG_COMPAT_BRK=y | ||
| 66 | # CONFIG_BASE_FULL is not set | ||
| 67 | CONFIG_FUTEX=y | ||
| 68 | CONFIG_ANON_INODES=y | ||
| 69 | CONFIG_EPOLL=y | ||
| 70 | CONFIG_SIGNALFD=y | ||
| 71 | CONFIG_TIMERFD=y | ||
| 72 | CONFIG_EVENTFD=y | ||
| 73 | CONFIG_SHMEM=y | ||
| 74 | CONFIG_AIO=y | ||
| 75 | CONFIG_VM_EVENT_COUNTERS=y | ||
| 76 | CONFIG_SLUB_DEBUG=y | ||
| 77 | # CONFIG_SLAB is not set | ||
| 78 | CONFIG_SLUB=y | ||
| 79 | # CONFIG_SLOB is not set | ||
| 80 | # CONFIG_PROFILING is not set | ||
| 81 | CONFIG_HAVE_OPROFILE=y | ||
| 82 | # CONFIG_KPROBES is not set | ||
| 83 | CONFIG_HAVE_KPROBES=y | ||
| 84 | CONFIG_HAVE_CLK=y | ||
| 85 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | ||
| 86 | CONFIG_SLABINFO=y | ||
| 87 | CONFIG_RT_MUTEXES=y | ||
| 88 | CONFIG_BASE_SMALL=1 | ||
| 89 | CONFIG_MODULES=y | ||
| 90 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
| 91 | CONFIG_MODULE_UNLOAD=y | ||
| 92 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
| 93 | # CONFIG_MODVERSIONS is not set | ||
| 94 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
| 95 | CONFIG_BLOCK=y | ||
| 96 | # CONFIG_LBD is not set | ||
| 97 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
| 98 | # CONFIG_BLK_DEV_BSG is not set | ||
| 99 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
| 100 | |||
| 101 | # | ||
| 102 | # IO Schedulers | ||
| 103 | # | ||
| 104 | CONFIG_IOSCHED_NOOP=y | ||
| 105 | # CONFIG_IOSCHED_AS is not set | ||
| 106 | # CONFIG_IOSCHED_DEADLINE is not set | ||
| 107 | CONFIG_IOSCHED_CFQ=y | ||
| 108 | # CONFIG_DEFAULT_AS is not set | ||
| 109 | # CONFIG_DEFAULT_DEADLINE is not set | ||
| 110 | CONFIG_DEFAULT_CFQ=y | ||
| 111 | # CONFIG_DEFAULT_NOOP is not set | ||
| 112 | CONFIG_DEFAULT_IOSCHED="cfq" | ||
| 113 | CONFIG_CLASSIC_RCU=y | ||
| 114 | # CONFIG_TREE_RCU is not set | ||
| 115 | # CONFIG_PREEMPT_RCU is not set | ||
| 116 | # CONFIG_TREE_RCU_TRACE is not set | ||
| 117 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
| 118 | # CONFIG_FREEZER is not set | ||
| 119 | |||
| 120 | # | ||
| 121 | # System Type and features | ||
| 122 | # | ||
| 123 | CONFIG_TICK_ONESHOT=y | ||
| 124 | CONFIG_NO_HZ=y | ||
| 125 | CONFIG_HIGH_RES_TIMERS=y | ||
| 126 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
| 127 | CONFIG_SUBARCH_AVR32B=y | ||
| 128 | CONFIG_MMU=y | ||
| 129 | CONFIG_PERFORMANCE_COUNTERS=y | ||
| 130 | CONFIG_PLATFORM_AT32AP=y | ||
| 131 | CONFIG_CPU_AT32AP700X=y | ||
| 132 | CONFIG_CPU_AT32AP7000=y | ||
| 133 | # CONFIG_BOARD_ATSTK1000 is not set | ||
| 134 | # CONFIG_BOARD_ATNGW100 is not set | ||
| 135 | # CONFIG_BOARD_HAMMERHEAD is not set | ||
| 136 | # CONFIG_BOARD_FAVR_32 is not set | ||
| 137 | # CONFIG_BOARD_MIMC200 is not set | ||
| 138 | CONFIG_BOARD_MERISC=y | ||
| 139 | CONFIG_LOADER_U_BOOT=y | ||
| 140 | |||
| 141 | # | ||
| 142 | # Atmel AVR32 AP options | ||
| 143 | # | ||
| 144 | CONFIG_AP700X_32_BIT_SMC=y | ||
| 145 | # CONFIG_AP700X_16_BIT_SMC is not set | ||
| 146 | # CONFIG_AP700X_8_BIT_SMC is not set | ||
| 147 | CONFIG_LOAD_ADDRESS=0x10000000 | ||
| 148 | CONFIG_ENTRY_ADDRESS=0x90000000 | ||
| 149 | CONFIG_PHYS_OFFSET=0x10000000 | ||
| 150 | CONFIG_PREEMPT_NONE=y | ||
| 151 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
| 152 | # CONFIG_PREEMPT is not set | ||
| 153 | CONFIG_QUICKLIST=y | ||
| 154 | # CONFIG_HAVE_ARCH_BOOTMEM_NODE is not set | ||
| 155 | # CONFIG_ARCH_HAVE_MEMORY_PRESENT is not set | ||
| 156 | # CONFIG_NEED_NODE_MEMMAP_SIZE is not set | ||
| 157 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
| 158 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set | ||
| 159 | # CONFIG_ARCH_SPARSEMEM_ENABLE is not set | ||
| 160 | CONFIG_SELECT_MEMORY_MODEL=y | ||
| 161 | CONFIG_FLATMEM_MANUAL=y | ||
| 162 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
| 163 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
| 164 | CONFIG_FLATMEM=y | ||
| 165 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
| 166 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
| 167 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
| 168 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
| 169 | CONFIG_ZONE_DMA_FLAG=0 | ||
| 170 | CONFIG_NR_QUICK=2 | ||
| 171 | CONFIG_VIRT_TO_BUS=y | ||
| 172 | CONFIG_UNEVICTABLE_LRU=y | ||
| 173 | # CONFIG_OWNERSHIP_TRACE is not set | ||
| 174 | # CONFIG_NMI_DEBUGGING is not set | ||
| 175 | # CONFIG_HZ_100 is not set | ||
| 176 | CONFIG_HZ_250=y | ||
| 177 | # CONFIG_HZ_300 is not set | ||
| 178 | # CONFIG_HZ_1000 is not set | ||
| 179 | CONFIG_HZ=250 | ||
| 180 | CONFIG_SCHED_HRTICK=y | ||
| 181 | CONFIG_CMDLINE="" | ||
| 182 | |||
| 183 | # | ||
| 184 | # Power management options | ||
| 185 | # | ||
| 186 | # CONFIG_PM is not set | ||
| 187 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
| 188 | |||
| 189 | # | ||
| 190 | # CPU Frequency scaling | ||
| 191 | # | ||
| 192 | # CONFIG_CPU_FREQ is not set | ||
| 193 | |||
| 194 | # | ||
| 195 | # Bus options | ||
| 196 | # | ||
| 197 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
| 198 | # CONFIG_PCCARD is not set | ||
| 199 | |||
| 200 | # | ||
| 201 | # Executable file formats | ||
| 202 | # | ||
| 203 | CONFIG_BINFMT_ELF=y | ||
| 204 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
| 205 | # CONFIG_HAVE_AOUT is not set | ||
| 206 | # CONFIG_BINFMT_MISC is not set | ||
| 207 | CONFIG_NET=y | ||
| 208 | |||
| 209 | # | ||
| 210 | # Networking options | ||
| 211 | # | ||
| 212 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
| 213 | CONFIG_PACKET=y | ||
| 214 | CONFIG_PACKET_MMAP=y | ||
| 215 | CONFIG_UNIX=y | ||
| 216 | CONFIG_XFRM=y | ||
| 217 | CONFIG_XFRM_USER=y | ||
| 218 | # CONFIG_XFRM_SUB_POLICY is not set | ||
| 219 | # CONFIG_XFRM_MIGRATE is not set | ||
| 220 | # CONFIG_XFRM_STATISTICS is not set | ||
| 221 | CONFIG_XFRM_IPCOMP=y | ||
| 222 | CONFIG_NET_KEY=y | ||
| 223 | # CONFIG_NET_KEY_MIGRATE is not set | ||
| 224 | CONFIG_INET=y | ||
| 225 | CONFIG_IP_MULTICAST=y | ||
| 226 | CONFIG_IP_ADVANCED_ROUTER=y | ||
| 227 | CONFIG_ASK_IP_FIB_HASH=y | ||
| 228 | # CONFIG_IP_FIB_TRIE is not set | ||
| 229 | CONFIG_IP_FIB_HASH=y | ||
| 230 | # CONFIG_IP_MULTIPLE_TABLES is not set | ||
| 231 | # CONFIG_IP_ROUTE_MULTIPATH is not set | ||
| 232 | # CONFIG_IP_ROUTE_VERBOSE is not set | ||
| 233 | CONFIG_IP_PNP=y | ||
| 234 | CONFIG_IP_PNP_DHCP=y | ||
| 235 | # CONFIG_IP_PNP_BOOTP is not set | ||
| 236 | # CONFIG_IP_PNP_RARP is not set | ||
| 237 | # CONFIG_NET_IPIP is not set | ||
| 238 | # CONFIG_NET_IPGRE is not set | ||
| 239 | CONFIG_IP_MROUTE=y | ||
| 240 | CONFIG_IP_PIMSM_V1=y | ||
| 241 | # CONFIG_IP_PIMSM_V2 is not set | ||
| 242 | # CONFIG_ARPD is not set | ||
| 243 | CONFIG_SYN_COOKIES=y | ||
| 244 | CONFIG_INET_AH=y | ||
| 245 | CONFIG_INET_ESP=y | ||
| 246 | CONFIG_INET_IPCOMP=y | ||
| 247 | CONFIG_INET_XFRM_TUNNEL=y | ||
| 248 | CONFIG_INET_TUNNEL=y | ||
| 249 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
| 250 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
| 251 | CONFIG_INET_XFRM_MODE_BEET=y | ||
| 252 | # CONFIG_INET_LRO is not set | ||
| 253 | CONFIG_INET_DIAG=y | ||
| 254 | CONFIG_INET_TCP_DIAG=y | ||
| 255 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
| 256 | CONFIG_TCP_CONG_CUBIC=y | ||
| 257 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
| 258 | # CONFIG_TCP_MD5SIG is not set | ||
| 259 | # CONFIG_IPV6 is not set | ||
| 260 | # CONFIG_NETWORK_SECMARK is not set | ||
| 261 | # CONFIG_NETFILTER is not set | ||
| 262 | # CONFIG_IP_DCCP is not set | ||
| 263 | # CONFIG_IP_SCTP is not set | ||
| 264 | # CONFIG_TIPC is not set | ||
| 265 | # CONFIG_ATM is not set | ||
| 266 | # CONFIG_BRIDGE is not set | ||
| 267 | # CONFIG_NET_DSA is not set | ||
| 268 | # CONFIG_VLAN_8021Q is not set | ||
| 269 | # CONFIG_DECNET is not set | ||
| 270 | # CONFIG_LLC2 is not set | ||
| 271 | # CONFIG_IPX is not set | ||
| 272 | # CONFIG_ATALK is not set | ||
| 273 | # CONFIG_X25 is not set | ||
| 274 | # CONFIG_LAPB is not set | ||
| 275 | # CONFIG_ECONET is not set | ||
| 276 | # CONFIG_WAN_ROUTER is not set | ||
| 277 | # CONFIG_NET_SCHED is not set | ||
| 278 | # CONFIG_DCB is not set | ||
| 279 | |||
| 280 | # | ||
| 281 | # Network testing | ||
| 282 | # | ||
| 283 | # CONFIG_NET_PKTGEN is not set | ||
| 284 | # CONFIG_HAMRADIO is not set | ||
| 285 | CONFIG_CAN=y | ||
| 286 | CONFIG_CAN_RAW=y | ||
| 287 | CONFIG_CAN_BCM=y | ||
| 288 | |||
| 289 | # | ||
| 290 | # CAN Device Drivers | ||
| 291 | # | ||
| 292 | # CONFIG_CAN_VCAN is not set | ||
| 293 | # CONFIG_CAN_DEBUG_DEVICES is not set | ||
| 294 | # CONFIG_IRDA is not set | ||
| 295 | # CONFIG_BT is not set | ||
| 296 | # CONFIG_AF_RXRPC is not set | ||
| 297 | # CONFIG_PHONET is not set | ||
| 298 | # CONFIG_WIRELESS is not set | ||
| 299 | # CONFIG_WIMAX is not set | ||
| 300 | # CONFIG_RFKILL is not set | ||
| 301 | # CONFIG_NET_9P is not set | ||
| 302 | |||
| 303 | # | ||
| 304 | # Device Drivers | ||
| 305 | # | ||
| 306 | |||
| 307 | # | ||
| 308 | # Generic Driver Options | ||
| 309 | # | ||
| 310 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
| 311 | CONFIG_STANDALONE=y | ||
| 312 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | ||
| 313 | # CONFIG_FW_LOADER is not set | ||
| 314 | # CONFIG_SYS_HYPERVISOR is not set | ||
| 315 | # CONFIG_CONNECTOR is not set | ||
| 316 | CONFIG_MTD=y | ||
| 317 | # CONFIG_MTD_DEBUG is not set | ||
| 318 | CONFIG_MTD_CONCAT=y | ||
| 319 | CONFIG_MTD_PARTITIONS=y | ||
| 320 | # CONFIG_MTD_TESTS is not set | ||
| 321 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
| 322 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
| 323 | # CONFIG_MTD_AR7_PARTS is not set | ||
| 324 | |||
| 325 | # | ||
| 326 | # User Modules And Translation Layers | ||
| 327 | # | ||
| 328 | CONFIG_MTD_CHAR=y | ||
| 329 | CONFIG_MTD_BLKDEVS=y | ||
| 330 | CONFIG_MTD_BLOCK=y | ||
| 331 | # CONFIG_FTL is not set | ||
| 332 | # CONFIG_NFTL is not set | ||
| 333 | # CONFIG_INFTL is not set | ||
| 334 | # CONFIG_RFD_FTL is not set | ||
| 335 | # CONFIG_SSFDC is not set | ||
| 336 | # CONFIG_MTD_OOPS is not set | ||
| 337 | |||
| 338 | # | ||
| 339 | # RAM/ROM/Flash chip drivers | ||
| 340 | # | ||
| 341 | CONFIG_MTD_CFI=y | ||
| 342 | CONFIG_MTD_JEDECPROBE=y | ||
| 343 | CONFIG_MTD_GEN_PROBE=y | ||
| 344 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
| 345 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
| 346 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
| 347 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
| 348 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
| 349 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
| 350 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
| 351 | CONFIG_MTD_CFI_I1=y | ||
| 352 | CONFIG_MTD_CFI_I2=y | ||
| 353 | # CONFIG_MTD_CFI_I4 is not set | ||
| 354 | # CONFIG_MTD_CFI_I8 is not set | ||
| 355 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
| 356 | CONFIG_MTD_CFI_AMDSTD=y | ||
| 357 | # CONFIG_MTD_CFI_STAA is not set | ||
| 358 | CONFIG_MTD_CFI_UTIL=y | ||
| 359 | # CONFIG_MTD_RAM is not set | ||
| 360 | # CONFIG_MTD_ROM is not set | ||
| 361 | CONFIG_MTD_ABSENT=y | ||
| 362 | |||
| 363 | # | ||
| 364 | # Mapping drivers for chip access | ||
| 365 | # | ||
| 366 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
| 367 | CONFIG_MTD_PHYSMAP=y | ||
| 368 | # CONFIG_MTD_PHYSMAP_COMPAT is not set | ||
| 369 | # CONFIG_MTD_PLATRAM is not set | ||
| 370 | |||
| 371 | # | ||
| 372 | # Self-contained MTD device drivers | ||
| 373 | # | ||
| 374 | # CONFIG_MTD_DATAFLASH is not set | ||
| 375 | # CONFIG_MTD_M25P80 is not set | ||
| 376 | # CONFIG_MTD_SLRAM is not set | ||
| 377 | # CONFIG_MTD_PHRAM is not set | ||
| 378 | # CONFIG_MTD_MTDRAM is not set | ||
| 379 | CONFIG_MTD_BLOCK2MTD=y | ||
| 380 | |||
| 381 | # | ||
| 382 | # Disk-On-Chip Device Drivers | ||
| 383 | # | ||
| 384 | # CONFIG_MTD_DOC2000 is not set | ||
| 385 | # CONFIG_MTD_DOC2001 is not set | ||
| 386 | # CONFIG_MTD_DOC2001PLUS is not set | ||
| 387 | # CONFIG_MTD_NAND is not set | ||
| 388 | # CONFIG_MTD_ONENAND is not set | ||
| 389 | |||
| 390 | # | ||
| 391 | # LPDDR flash memory drivers | ||
| 392 | # | ||
| 393 | # CONFIG_MTD_LPDDR is not set | ||
| 394 | # CONFIG_MTD_QINFO_PROBE is not set | ||
| 395 | |||
| 396 | # | ||
| 397 | # UBI - Unsorted block images | ||
| 398 | # | ||
| 399 | # CONFIG_MTD_UBI is not set | ||
| 400 | # CONFIG_PARPORT is not set | ||
| 401 | CONFIG_BLK_DEV=y | ||
| 402 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
| 403 | CONFIG_BLK_DEV_LOOP=y | ||
| 404 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
| 405 | # CONFIG_BLK_DEV_NBD is not set | ||
| 406 | # CONFIG_BLK_DEV_RAM is not set | ||
| 407 | # CONFIG_CDROM_PKTCDVD is not set | ||
| 408 | # CONFIG_ATA_OVER_ETH is not set | ||
| 409 | CONFIG_MISC_DEVICES=y | ||
| 410 | CONFIG_ATMEL_PWM=y | ||
| 411 | # CONFIG_ATMEL_TCLIB is not set | ||
| 412 | # CONFIG_EEPROM_93CX6 is not set | ||
| 413 | # CONFIG_ICS932S401 is not set | ||
| 414 | CONFIG_ATMEL_SSC=y | ||
| 415 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
| 416 | # CONFIG_C2PORT is not set | ||
| 417 | |||
| 418 | # | ||
| 419 | # SCSI device support | ||
| 420 | # | ||
| 421 | # CONFIG_RAID_ATTRS is not set | ||
| 422 | CONFIG_SCSI=y | ||
| 423 | CONFIG_SCSI_DMA=y | ||
| 424 | # CONFIG_SCSI_TGT is not set | ||
| 425 | # CONFIG_SCSI_NETLINK is not set | ||
| 426 | CONFIG_SCSI_PROC_FS=y | ||
| 427 | |||
| 428 | # | ||
| 429 | # SCSI support type (disk, tape, CD-ROM) | ||
| 430 | # | ||
| 431 | CONFIG_BLK_DEV_SD=y | ||
| 432 | # CONFIG_CHR_DEV_ST is not set | ||
| 433 | # CONFIG_CHR_DEV_OSST is not set | ||
| 434 | # CONFIG_BLK_DEV_SR is not set | ||
| 435 | # CONFIG_CHR_DEV_SG is not set | ||
| 436 | # CONFIG_CHR_DEV_SCH is not set | ||
| 437 | |||
| 438 | # | ||
| 439 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
| 440 | # | ||
| 441 | # CONFIG_SCSI_MULTI_LUN is not set | ||
| 442 | # CONFIG_SCSI_CONSTANTS is not set | ||
| 443 | # CONFIG_SCSI_LOGGING is not set | ||
| 444 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
| 445 | CONFIG_SCSI_WAIT_SCAN=m | ||
| 446 | |||
| 447 | # | ||
| 448 | # SCSI Transports | ||
| 449 | # | ||
| 450 | # CONFIG_SCSI_SPI_ATTRS is not set | ||
| 451 | # CONFIG_SCSI_FC_ATTRS is not set | ||
| 452 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
| 453 | # CONFIG_SCSI_SAS_LIBSAS is not set | ||
| 454 | # CONFIG_SCSI_SRP_ATTRS is not set | ||
| 455 | # CONFIG_SCSI_LOWLEVEL is not set | ||
| 456 | # CONFIG_SCSI_DH is not set | ||
| 457 | # CONFIG_ATA is not set | ||
| 458 | # CONFIG_MD is not set | ||
| 459 | CONFIG_NETDEVICES=y | ||
| 460 | # CONFIG_DUMMY is not set | ||
| 461 | # CONFIG_BONDING is not set | ||
| 462 | # CONFIG_MACVLAN is not set | ||
| 463 | # CONFIG_EQUALIZER is not set | ||
| 464 | # CONFIG_TUN is not set | ||
| 465 | # CONFIG_VETH is not set | ||
| 466 | CONFIG_PHYLIB=y | ||
| 467 | |||
| 468 | # | ||
| 469 | # MII PHY device drivers | ||
| 470 | # | ||
| 471 | # CONFIG_MARVELL_PHY is not set | ||
| 472 | # CONFIG_DAVICOM_PHY is not set | ||
| 473 | # CONFIG_QSEMI_PHY is not set | ||
| 474 | # CONFIG_LXT_PHY is not set | ||
| 475 | # CONFIG_CICADA_PHY is not set | ||
| 476 | # CONFIG_VITESSE_PHY is not set | ||
| 477 | # CONFIG_SMSC_PHY is not set | ||
| 478 | # CONFIG_BROADCOM_PHY is not set | ||
| 479 | # CONFIG_ICPLUS_PHY is not set | ||
| 480 | # CONFIG_REALTEK_PHY is not set | ||
| 481 | # CONFIG_NATIONAL_PHY is not set | ||
| 482 | # CONFIG_STE10XP is not set | ||
| 483 | # CONFIG_LSI_ET1011C_PHY is not set | ||
| 484 | # CONFIG_FIXED_PHY is not set | ||
| 485 | # CONFIG_MDIO_BITBANG is not set | ||
| 486 | CONFIG_NET_ETHERNET=y | ||
| 487 | # CONFIG_MII is not set | ||
| 488 | CONFIG_MACB=y | ||
| 489 | # CONFIG_ENC28J60 is not set | ||
| 490 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
| 491 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
| 492 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
| 493 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
| 494 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
| 495 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
| 496 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
| 497 | # CONFIG_B44 is not set | ||
| 498 | # CONFIG_NETDEV_1000 is not set | ||
| 499 | # CONFIG_NETDEV_10000 is not set | ||
| 500 | |||
| 501 | # | ||
| 502 | # Wireless LAN | ||
| 503 | # | ||
| 504 | # CONFIG_WLAN_PRE80211 is not set | ||
| 505 | # CONFIG_WLAN_80211 is not set | ||
| 506 | # CONFIG_IWLWIFI_LEDS is not set | ||
| 507 | |||
| 508 | # | ||
| 509 | # Enable WiMAX (Networking options) to see the WiMAX drivers | ||
| 510 | # | ||
| 511 | # CONFIG_WAN is not set | ||
| 512 | # CONFIG_PPP is not set | ||
| 513 | # CONFIG_SLIP is not set | ||
| 514 | # CONFIG_NETCONSOLE is not set | ||
| 515 | # CONFIG_NETPOLL is not set | ||
| 516 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
| 517 | # CONFIG_ISDN is not set | ||
| 518 | # CONFIG_PHONE is not set | ||
| 519 | |||
| 520 | # | ||
| 521 | # Input device support | ||
| 522 | # | ||
| 523 | CONFIG_INPUT=y | ||
| 524 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
| 525 | # CONFIG_INPUT_POLLDEV is not set | ||
| 526 | |||
| 527 | # | ||
| 528 | # Userland interfaces | ||
| 529 | # | ||
| 530 | # CONFIG_INPUT_MOUSEDEV is not set | ||
| 531 | # CONFIG_INPUT_JOYDEV is not set | ||
| 532 | CONFIG_INPUT_EVDEV=y | ||
| 533 | # CONFIG_INPUT_EVBUG is not set | ||
| 534 | |||
| 535 | # | ||
| 536 | # Input Device Drivers | ||
| 537 | # | ||
| 538 | CONFIG_INPUT_KEYBOARD=y | ||
| 539 | # CONFIG_KEYBOARD_ATKBD is not set | ||
| 540 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
| 541 | # CONFIG_KEYBOARD_LKKBD is not set | ||
| 542 | # CONFIG_KEYBOARD_XTKBD is not set | ||
| 543 | # CONFIG_KEYBOARD_NEWTON is not set | ||
| 544 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
| 545 | # CONFIG_KEYBOARD_GPIO is not set | ||
| 546 | # CONFIG_INPUT_MOUSE is not set | ||
| 547 | # CONFIG_INPUT_JOYSTICK is not set | ||
| 548 | # CONFIG_INPUT_TABLET is not set | ||
| 549 | CONFIG_INPUT_TOUCHSCREEN=y | ||
| 550 | CONFIG_TOUCHSCREEN_ADS7846=y | ||
| 551 | # CONFIG_TOUCHSCREEN_FUJITSU is not set | ||
| 552 | # CONFIG_TOUCHSCREEN_GUNZE is not set | ||
| 553 | # CONFIG_TOUCHSCREEN_ELO is not set | ||
| 554 | # CONFIG_TOUCHSCREEN_WACOM_W8001 is not set | ||
| 555 | # CONFIG_TOUCHSCREEN_MTOUCH is not set | ||
| 556 | # CONFIG_TOUCHSCREEN_INEXIO is not set | ||
| 557 | # CONFIG_TOUCHSCREEN_MK712 is not set | ||
| 558 | # CONFIG_TOUCHSCREEN_PENMOUNT is not set | ||
| 559 | # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set | ||
| 560 | # CONFIG_TOUCHSCREEN_TOUCHWIN is not set | ||
| 561 | # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set | ||
| 562 | # CONFIG_TOUCHSCREEN_TSC2007 is not set | ||
| 563 | CONFIG_INPUT_MISC=y | ||
| 564 | CONFIG_INPUT_UINPUT=y | ||
| 565 | |||
| 566 | # | ||
| 567 | # Hardware I/O ports | ||
| 568 | # | ||
| 569 | # CONFIG_SERIO is not set | ||
| 570 | # CONFIG_GAMEPORT is not set | ||
| 571 | |||
| 572 | # | ||
| 573 | # Character devices | ||
| 574 | # | ||
| 575 | CONFIG_VT=y | ||
| 576 | # CONFIG_CONSOLE_TRANSLATIONS is not set | ||
| 577 | CONFIG_VT_CONSOLE=y | ||
| 578 | CONFIG_HW_CONSOLE=y | ||
| 579 | CONFIG_VT_HW_CONSOLE_BINDING=y | ||
| 580 | # CONFIG_DEVKMEM is not set | ||
| 581 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
| 582 | |||
| 583 | # | ||
| 584 | # Serial drivers | ||
| 585 | # | ||
| 586 | # CONFIG_SERIAL_8250 is not set | ||
| 587 | |||
| 588 | # | ||
| 589 | # Non-8250 serial port support | ||
| 590 | # | ||
| 591 | CONFIG_SERIAL_ATMEL=y | ||
| 592 | CONFIG_SERIAL_ATMEL_CONSOLE=y | ||
| 593 | CONFIG_SERIAL_ATMEL_PDC=y | ||
| 594 | # CONFIG_SERIAL_ATMEL_TTYAT is not set | ||
| 595 | CONFIG_SERIAL_CORE=y | ||
| 596 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
| 597 | CONFIG_UNIX98_PTYS=y | ||
| 598 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | ||
| 599 | # CONFIG_LEGACY_PTYS is not set | ||
| 600 | # CONFIG_IPMI_HANDLER is not set | ||
| 601 | # CONFIG_HW_RANDOM is not set | ||
| 602 | # CONFIG_R3964 is not set | ||
| 603 | # CONFIG_RAW_DRIVER is not set | ||
| 604 | # CONFIG_TCG_TPM is not set | ||
| 605 | CONFIG_I2C=y | ||
| 606 | CONFIG_I2C_BOARDINFO=y | ||
| 607 | CONFIG_I2C_CHARDEV=y | ||
| 608 | CONFIG_I2C_HELPER_AUTO=y | ||
| 609 | CONFIG_I2C_ALGOBIT=y | ||
| 610 | |||
| 611 | # | ||
| 612 | # I2C Hardware Bus support | ||
| 613 | # | ||
| 614 | |||
| 615 | # | ||
| 616 | # I2C system bus drivers (mostly embedded / system-on-chip) | ||
| 617 | # | ||
| 618 | CONFIG_I2C_GPIO=y | ||
| 619 | # CONFIG_I2C_OCORES is not set | ||
| 620 | # CONFIG_I2C_SIMTEC is not set | ||
| 621 | |||
| 622 | # | ||
| 623 | # External I2C/SMBus adapter drivers | ||
| 624 | # | ||
| 625 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
| 626 | # CONFIG_I2C_TAOS_EVM is not set | ||
| 627 | |||
| 628 | # | ||
| 629 | # Other I2C/SMBus bus drivers | ||
| 630 | # | ||
| 631 | # CONFIG_I2C_PCA_PLATFORM is not set | ||
| 632 | # CONFIG_I2C_STUB is not set | ||
| 633 | |||
| 634 | # | ||
| 635 | # Miscellaneous I2C Chip support | ||
| 636 | # | ||
| 637 | # CONFIG_DS1682 is not set | ||
| 638 | # CONFIG_AT24 is not set | ||
| 639 | # CONFIG_SENSORS_EEPROM is not set | ||
| 640 | # CONFIG_SENSORS_PCF8574 is not set | ||
| 641 | # CONFIG_PCF8575 is not set | ||
| 642 | # CONFIG_SENSORS_PCA9539 is not set | ||
| 643 | # CONFIG_SENSORS_PCF8591 is not set | ||
| 644 | # CONFIG_SENSORS_MAX6875 is not set | ||
| 645 | # CONFIG_SENSORS_TSL2550 is not set | ||
| 646 | # CONFIG_I2C_DEBUG_CORE is not set | ||
| 647 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
| 648 | # CONFIG_I2C_DEBUG_BUS is not set | ||
| 649 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
| 650 | CONFIG_SPI=y | ||
| 651 | CONFIG_SPI_MASTER=y | ||
| 652 | |||
| 653 | # | ||
| 654 | # SPI Master Controller Drivers | ||
| 655 | # | ||
| 656 | CONFIG_SPI_ATMEL=y | ||
| 657 | # CONFIG_SPI_BITBANG is not set | ||
| 658 | # CONFIG_SPI_GPIO is not set | ||
| 659 | |||
| 660 | # | ||
| 661 | # SPI Protocol Masters | ||
| 662 | # | ||
| 663 | # CONFIG_SPI_AT25 is not set | ||
| 664 | CONFIG_SPI_SPIDEV=y | ||
| 665 | # CONFIG_SPI_TLE62X0 is not set | ||
| 666 | CONFIG_ARCH_REQUIRE_GPIOLIB=y | ||
| 667 | CONFIG_GPIOLIB=y | ||
| 668 | CONFIG_GPIO_SYSFS=y | ||
| 669 | |||
| 670 | # | ||
| 671 | # Memory mapped GPIO expanders: | ||
| 672 | # | ||
| 673 | |||
| 674 | # | ||
| 675 | # I2C GPIO expanders: | ||
| 676 | # | ||
| 677 | # CONFIG_GPIO_MAX732X is not set | ||
| 678 | # CONFIG_GPIO_PCA953X is not set | ||
| 679 | # CONFIG_GPIO_PCF857X is not set | ||
| 680 | |||
| 681 | # | ||
| 682 | # PCI GPIO expanders: | ||
| 683 | # | ||
| 684 | |||
| 685 | # | ||
| 686 | # SPI GPIO expanders: | ||
| 687 | # | ||
| 688 | # CONFIG_GPIO_MAX7301 is not set | ||
| 689 | # CONFIG_GPIO_MCP23S08 is not set | ||
| 690 | # CONFIG_W1 is not set | ||
| 691 | # CONFIG_POWER_SUPPLY is not set | ||
| 692 | # CONFIG_HWMON is not set | ||
| 693 | # CONFIG_THERMAL is not set | ||
| 694 | # CONFIG_THERMAL_HWMON is not set | ||
| 695 | CONFIG_WATCHDOG=y | ||
| 696 | # CONFIG_WATCHDOG_NOWAYOUT is not set | ||
| 697 | |||
| 698 | # | ||
| 699 | # Watchdog Device Drivers | ||
| 700 | # | ||
| 701 | # CONFIG_SOFT_WATCHDOG is not set | ||
| 702 | # CONFIG_AT32AP700X_WDT is not set | ||
| 703 | CONFIG_SSB_POSSIBLE=y | ||
| 704 | |||
| 705 | # | ||
| 706 | # Sonics Silicon Backplane | ||
| 707 | # | ||
| 708 | # CONFIG_SSB is not set | ||
| 709 | |||
| 710 | # | ||
| 711 | # Multifunction device drivers | ||
| 712 | # | ||
| 713 | # CONFIG_MFD_CORE is not set | ||
| 714 | # CONFIG_MFD_SM501 is not set | ||
| 715 | # CONFIG_HTC_PASIC3 is not set | ||
| 716 | # CONFIG_TPS65010 is not set | ||
| 717 | # CONFIG_TWL4030_CORE is not set | ||
| 718 | # CONFIG_MFD_TMIO is not set | ||
| 719 | # CONFIG_PMIC_DA903X is not set | ||
| 720 | # CONFIG_MFD_WM8400 is not set | ||
| 721 | # CONFIG_MFD_WM8350_I2C is not set | ||
| 722 | # CONFIG_MFD_PCF50633 is not set | ||
| 723 | # CONFIG_REGULATOR is not set | ||
| 724 | |||
| 725 | # | ||
| 726 | # Multimedia devices | ||
| 727 | # | ||
| 728 | |||
| 729 | # | ||
| 730 | # Multimedia core support | ||
| 731 | # | ||
| 732 | # CONFIG_VIDEO_DEV is not set | ||
| 733 | # CONFIG_DVB_CORE is not set | ||
| 734 | # CONFIG_VIDEO_MEDIA is not set | ||
| 735 | |||
| 736 | # | ||
| 737 | # Multimedia drivers | ||
| 738 | # | ||
| 739 | # CONFIG_DAB is not set | ||
| 740 | |||
| 741 | # | ||
| 742 | # Graphics support | ||
| 743 | # | ||
| 744 | # CONFIG_VGASTATE is not set | ||
| 745 | CONFIG_VIDEO_OUTPUT_CONTROL=y | ||
| 746 | CONFIG_FB=y | ||
| 747 | # CONFIG_FIRMWARE_EDID is not set | ||
| 748 | # CONFIG_FB_DDC is not set | ||
| 749 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
| 750 | CONFIG_FB_CFB_FILLRECT=y | ||
| 751 | CONFIG_FB_CFB_COPYAREA=y | ||
| 752 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
| 753 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
| 754 | # CONFIG_FB_SYS_FILLRECT is not set | ||
| 755 | # CONFIG_FB_SYS_COPYAREA is not set | ||
| 756 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
| 757 | # CONFIG_FB_FOREIGN_ENDIAN is not set | ||
| 758 | # CONFIG_FB_SYS_FOPS is not set | ||
| 759 | # CONFIG_FB_SVGALIB is not set | ||
| 760 | # CONFIG_FB_MACMODES is not set | ||
| 761 | # CONFIG_FB_BACKLIGHT is not set | ||
| 762 | # CONFIG_FB_MODE_HELPERS is not set | ||
| 763 | # CONFIG_FB_TILEBLITTING is not set | ||
| 764 | |||
| 765 | # | ||
| 766 | # Frame buffer hardware drivers | ||
| 767 | # | ||
| 768 | # CONFIG_FB_S1D13XXX is not set | ||
| 769 | CONFIG_FB_ATMEL=y | ||
| 770 | # CONFIG_FB_VIRTUAL is not set | ||
| 771 | # CONFIG_FB_METRONOME is not set | ||
| 772 | # CONFIG_FB_MB862XX is not set | ||
| 773 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
| 774 | # CONFIG_LCD_CLASS_DEVICE is not set | ||
| 775 | # CONFIG_BACKLIGHT_CLASS_DEVICE is not set | ||
| 776 | |||
| 777 | # | ||
| 778 | # Display device support | ||
| 779 | # | ||
| 780 | CONFIG_DISPLAY_SUPPORT=y | ||
| 781 | |||
| 782 | # | ||
| 783 | # Display hardware drivers | ||
| 784 | # | ||
| 785 | |||
| 786 | # | ||
| 787 | # Console display driver support | ||
| 788 | # | ||
| 789 | CONFIG_DUMMY_CONSOLE=y | ||
| 790 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
| 791 | # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set | ||
| 792 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set | ||
| 793 | # CONFIG_FONTS is not set | ||
| 794 | CONFIG_FONT_8x8=y | ||
| 795 | CONFIG_FONT_8x16=y | ||
| 796 | CONFIG_LOGO=y | ||
| 797 | CONFIG_LOGO_LINUX_MONO=y | ||
| 798 | CONFIG_LOGO_LINUX_VGA16=y | ||
| 799 | CONFIG_LOGO_LINUX_CLUT224=y | ||
| 800 | # CONFIG_SOUND is not set | ||
| 801 | CONFIG_HID_SUPPORT=y | ||
| 802 | CONFIG_HID=y | ||
| 803 | # CONFIG_HID_DEBUG is not set | ||
| 804 | # CONFIG_HIDRAW is not set | ||
| 805 | # CONFIG_HID_PID is not set | ||
| 806 | |||
| 807 | # | ||
| 808 | # Special HID drivers | ||
| 809 | # | ||
| 810 | CONFIG_HID_COMPAT=y | ||
| 811 | CONFIG_USB_SUPPORT=y | ||
| 812 | # CONFIG_USB_ARCH_HAS_HCD is not set | ||
| 813 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
| 814 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
| 815 | # CONFIG_USB_OTG_WHITELIST is not set | ||
| 816 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
| 817 | |||
| 818 | # | ||
| 819 | # Enable Host or Gadget support to see Inventra options | ||
| 820 | # | ||
| 821 | |||
| 822 | # | ||
| 823 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; | ||
| 824 | # | ||
| 825 | # CONFIG_USB_GADGET is not set | ||
| 826 | |||
| 827 | # | ||
| 828 | # OTG and related infrastructure | ||
| 829 | # | ||
| 830 | CONFIG_MMC=y | ||
| 831 | # CONFIG_MMC_DEBUG is not set | ||
| 832 | # CONFIG_MMC_UNSAFE_RESUME is not set | ||
| 833 | |||
| 834 | # | ||
| 835 | # MMC/SD/SDIO Card Drivers | ||
| 836 | # | ||
| 837 | CONFIG_MMC_BLOCK=y | ||
| 838 | CONFIG_MMC_BLOCK_BOUNCE=y | ||
| 839 | # CONFIG_SDIO_UART is not set | ||
| 840 | # CONFIG_MMC_TEST is not set | ||
| 841 | |||
| 842 | # | ||
| 843 | # MMC/SD/SDIO Host Controller Drivers | ||
| 844 | # | ||
| 845 | # CONFIG_MMC_SDHCI is not set | ||
| 846 | CONFIG_MMC_ATMELMCI=y | ||
| 847 | CONFIG_MMC_ATMELMCI_DMA=y | ||
| 848 | # CONFIG_MMC_SPI is not set | ||
| 849 | # CONFIG_MEMSTICK is not set | ||
| 850 | CONFIG_NEW_LEDS=y | ||
| 851 | CONFIG_LEDS_CLASS=y | ||
| 852 | |||
| 853 | # | ||
| 854 | # LED drivers | ||
| 855 | # | ||
| 856 | CONFIG_LEDS_ATMEL_PWM=y | ||
| 857 | # CONFIG_LEDS_PCA9532 is not set | ||
| 858 | # CONFIG_LEDS_GPIO is not set | ||
| 859 | # CONFIG_LEDS_PCA955X is not set | ||
| 860 | |||
| 861 | # | ||
| 862 | # LED Triggers | ||
| 863 | # | ||
| 864 | # CONFIG_LEDS_TRIGGERS is not set | ||
| 865 | # CONFIG_ACCESSIBILITY is not set | ||
| 866 | CONFIG_RTC_LIB=y | ||
| 867 | CONFIG_RTC_CLASS=y | ||
| 868 | # CONFIG_RTC_HCTOSYS is not set | ||
| 869 | # CONFIG_RTC_DEBUG is not set | ||
| 870 | |||
| 871 | # | ||
| 872 | # RTC interfaces | ||
| 873 | # | ||
| 874 | CONFIG_RTC_INTF_SYSFS=y | ||
| 875 | CONFIG_RTC_INTF_PROC=y | ||
| 876 | CONFIG_RTC_INTF_DEV=y | ||
| 877 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
| 878 | # CONFIG_RTC_DRV_TEST is not set | ||
| 879 | |||
| 880 | # | ||
| 881 | # I2C RTC drivers | ||
| 882 | # | ||
| 883 | # CONFIG_RTC_DRV_DS1307 is not set | ||
| 884 | # CONFIG_RTC_DRV_DS1374 is not set | ||
| 885 | # CONFIG_RTC_DRV_DS1672 is not set | ||
| 886 | # CONFIG_RTC_DRV_MAX6900 is not set | ||
| 887 | # CONFIG_RTC_DRV_RS5C372 is not set | ||
| 888 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
| 889 | # CONFIG_RTC_DRV_X1205 is not set | ||
| 890 | CONFIG_RTC_DRV_PCF8563=y | ||
| 891 | # CONFIG_RTC_DRV_PCF8583 is not set | ||
| 892 | # CONFIG_RTC_DRV_M41T80 is not set | ||
| 893 | # CONFIG_RTC_DRV_S35390A is not set | ||
| 894 | # CONFIG_RTC_DRV_FM3130 is not set | ||
| 895 | # CONFIG_RTC_DRV_RX8581 is not set | ||
| 896 | |||
| 897 | # | ||
| 898 | # SPI RTC drivers | ||
| 899 | # | ||
| 900 | # CONFIG_RTC_DRV_M41T94 is not set | ||
| 901 | # CONFIG_RTC_DRV_DS1305 is not set | ||
| 902 | # CONFIG_RTC_DRV_DS1390 is not set | ||
| 903 | # CONFIG_RTC_DRV_MAX6902 is not set | ||
| 904 | # CONFIG_RTC_DRV_R9701 is not set | ||
| 905 | # CONFIG_RTC_DRV_RS5C348 is not set | ||
| 906 | # CONFIG_RTC_DRV_DS3234 is not set | ||
| 907 | |||
| 908 | # | ||
| 909 | # Platform RTC drivers | ||
| 910 | # | ||
| 911 | # CONFIG_RTC_DRV_DS1286 is not set | ||
| 912 | # CONFIG_RTC_DRV_DS1511 is not set | ||
| 913 | # CONFIG_RTC_DRV_DS1553 is not set | ||
| 914 | # CONFIG_RTC_DRV_DS1742 is not set | ||
| 915 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
| 916 | # CONFIG_RTC_DRV_M48T86 is not set | ||
| 917 | # CONFIG_RTC_DRV_M48T35 is not set | ||
| 918 | # CONFIG_RTC_DRV_M48T59 is not set | ||
| 919 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
| 920 | # CONFIG_RTC_DRV_V3020 is not set | ||
| 921 | |||
| 922 | # | ||
| 923 | # on-CPU RTC drivers | ||
| 924 | # | ||
| 925 | # CONFIG_RTC_DRV_AT32AP700X is not set | ||
| 926 | CONFIG_DMADEVICES=y | ||
| 927 | |||
| 928 | # | ||
| 929 | # DMA Devices | ||
| 930 | # | ||
| 931 | CONFIG_DW_DMAC=y | ||
| 932 | CONFIG_DMA_ENGINE=y | ||
| 933 | |||
| 934 | # | ||
| 935 | # DMA Clients | ||
| 936 | # | ||
| 937 | # CONFIG_NET_DMA is not set | ||
| 938 | # CONFIG_DMATEST is not set | ||
| 939 | CONFIG_UIO=y | ||
| 940 | # CONFIG_UIO_PDRV is not set | ||
| 941 | # CONFIG_UIO_PDRV_GENIRQ is not set | ||
| 942 | # CONFIG_UIO_SMX is not set | ||
| 943 | # CONFIG_UIO_SERCOS3 is not set | ||
| 944 | # CONFIG_STAGING is not set | ||
| 945 | |||
| 946 | # | ||
| 947 | # File systems | ||
| 948 | # | ||
| 949 | CONFIG_EXT2_FS=y | ||
| 950 | # CONFIG_EXT2_FS_XATTR is not set | ||
| 951 | # CONFIG_EXT2_FS_XIP is not set | ||
| 952 | # CONFIG_EXT3_FS is not set | ||
| 953 | # CONFIG_EXT4_FS is not set | ||
| 954 | # CONFIG_REISERFS_FS is not set | ||
| 955 | # CONFIG_JFS_FS is not set | ||
| 956 | # CONFIG_FS_POSIX_ACL is not set | ||
| 957 | CONFIG_FILE_LOCKING=y | ||
| 958 | # CONFIG_XFS_FS is not set | ||
| 959 | # CONFIG_OCFS2_FS is not set | ||
| 960 | # CONFIG_BTRFS_FS is not set | ||
| 961 | # CONFIG_DNOTIFY is not set | ||
| 962 | CONFIG_INOTIFY=y | ||
| 963 | CONFIG_INOTIFY_USER=y | ||
| 964 | # CONFIG_QUOTA is not set | ||
| 965 | # CONFIG_AUTOFS_FS is not set | ||
| 966 | # CONFIG_AUTOFS4_FS is not set | ||
| 967 | CONFIG_FUSE_FS=y | ||
| 968 | |||
| 969 | # | ||
| 970 | # CD-ROM/DVD Filesystems | ||
| 971 | # | ||
| 972 | # CONFIG_ISO9660_FS is not set | ||
| 973 | # CONFIG_UDF_FS is not set | ||
| 974 | |||
| 975 | # | ||
| 976 | # DOS/FAT/NT Filesystems | ||
| 977 | # | ||
| 978 | CONFIG_FAT_FS=y | ||
| 979 | CONFIG_MSDOS_FS=y | ||
| 980 | CONFIG_VFAT_FS=y | ||
| 981 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
| 982 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
| 983 | # CONFIG_NTFS_FS is not set | ||
| 984 | |||
| 985 | # | ||
| 986 | # Pseudo filesystems | ||
| 987 | # | ||
| 988 | CONFIG_PROC_FS=y | ||
| 989 | # CONFIG_PROC_KCORE is not set | ||
| 990 | CONFIG_PROC_SYSCTL=y | ||
| 991 | CONFIG_PROC_PAGE_MONITOR=y | ||
| 992 | CONFIG_SYSFS=y | ||
| 993 | CONFIG_TMPFS=y | ||
| 994 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
| 995 | # CONFIG_HUGETLB_PAGE is not set | ||
| 996 | CONFIG_CONFIGFS_FS=y | ||
| 997 | CONFIG_MISC_FILESYSTEMS=y | ||
| 998 | # CONFIG_ADFS_FS is not set | ||
| 999 | # CONFIG_AFFS_FS is not set | ||
| 1000 | # CONFIG_HFS_FS is not set | ||
| 1001 | # CONFIG_HFSPLUS_FS is not set | ||
| 1002 | # CONFIG_BEFS_FS is not set | ||
| 1003 | # CONFIG_BFS_FS is not set | ||
| 1004 | # CONFIG_EFS_FS is not set | ||
| 1005 | CONFIG_JFFS2_FS=y | ||
| 1006 | CONFIG_JFFS2_FS_DEBUG=0 | ||
| 1007 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
| 1008 | CONFIG_JFFS2_FS_WBUF_VERIFY=y | ||
| 1009 | # CONFIG_JFFS2_SUMMARY is not set | ||
| 1010 | # CONFIG_JFFS2_FS_XATTR is not set | ||
| 1011 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
| 1012 | CONFIG_JFFS2_ZLIB=y | ||
| 1013 | # CONFIG_JFFS2_LZO is not set | ||
| 1014 | CONFIG_JFFS2_RTIME=y | ||
| 1015 | # CONFIG_JFFS2_RUBIN is not set | ||
| 1016 | CONFIG_CRAMFS=y | ||
| 1017 | # CONFIG_SQUASHFS is not set | ||
| 1018 | # CONFIG_VXFS_FS is not set | ||
| 1019 | # CONFIG_MINIX_FS is not set | ||
| 1020 | # CONFIG_OMFS_FS is not set | ||
| 1021 | # CONFIG_HPFS_FS is not set | ||
| 1022 | # CONFIG_QNX4FS_FS is not set | ||
| 1023 | # CONFIG_ROMFS_FS is not set | ||
| 1024 | # CONFIG_SYSV_FS is not set | ||
| 1025 | # CONFIG_UFS_FS is not set | ||
| 1026 | CONFIG_NETWORK_FILESYSTEMS=y | ||
| 1027 | CONFIG_NFS_FS=y | ||
| 1028 | CONFIG_NFS_V3=y | ||
| 1029 | # CONFIG_NFS_V3_ACL is not set | ||
| 1030 | # CONFIG_NFS_V4 is not set | ||
| 1031 | CONFIG_ROOT_NFS=y | ||
| 1032 | # CONFIG_NFSD is not set | ||
| 1033 | CONFIG_LOCKD=y | ||
| 1034 | CONFIG_LOCKD_V4=y | ||
| 1035 | CONFIG_NFS_COMMON=y | ||
| 1036 | CONFIG_SUNRPC=y | ||
| 1037 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
| 1038 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
| 1039 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
| 1040 | # CONFIG_SMB_FS is not set | ||
| 1041 | # CONFIG_CIFS is not set | ||
| 1042 | # CONFIG_NCP_FS is not set | ||
| 1043 | # CONFIG_CODA_FS is not set | ||
| 1044 | # CONFIG_AFS_FS is not set | ||
| 1045 | |||
| 1046 | # | ||
| 1047 | # Partition Types | ||
| 1048 | # | ||
| 1049 | # CONFIG_PARTITION_ADVANCED is not set | ||
| 1050 | CONFIG_MSDOS_PARTITION=y | ||
| 1051 | CONFIG_NLS=y | ||
| 1052 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
| 1053 | CONFIG_NLS_CODEPAGE_437=y | ||
| 1054 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
| 1055 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
| 1056 | CONFIG_NLS_CODEPAGE_850=y | ||
| 1057 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
| 1058 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
| 1059 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
| 1060 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
| 1061 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
| 1062 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
| 1063 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
| 1064 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
| 1065 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
| 1066 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
| 1067 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
| 1068 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
| 1069 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
| 1070 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
| 1071 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
| 1072 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
| 1073 | # CONFIG_NLS_ISO8859_8 is not set | ||
| 1074 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
| 1075 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
| 1076 | # CONFIG_NLS_ASCII is not set | ||
| 1077 | CONFIG_NLS_ISO8859_1=y | ||
| 1078 | # CONFIG_NLS_ISO8859_2 is not set | ||
| 1079 | # CONFIG_NLS_ISO8859_3 is not set | ||
| 1080 | # CONFIG_NLS_ISO8859_4 is not set | ||
| 1081 | # CONFIG_NLS_ISO8859_5 is not set | ||
| 1082 | # CONFIG_NLS_ISO8859_6 is not set | ||
| 1083 | # CONFIG_NLS_ISO8859_7 is not set | ||
| 1084 | # CONFIG_NLS_ISO8859_9 is not set | ||
| 1085 | # CONFIG_NLS_ISO8859_13 is not set | ||
| 1086 | # CONFIG_NLS_ISO8859_14 is not set | ||
| 1087 | # CONFIG_NLS_ISO8859_15 is not set | ||
| 1088 | # CONFIG_NLS_KOI8_R is not set | ||
| 1089 | # CONFIG_NLS_KOI8_U is not set | ||
| 1090 | CONFIG_NLS_UTF8=y | ||
| 1091 | # CONFIG_DLM is not set | ||
| 1092 | |||
| 1093 | # | ||
| 1094 | # Kernel hacking | ||
| 1095 | # | ||
| 1096 | # CONFIG_PRINTK_TIME is not set | ||
| 1097 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
| 1098 | CONFIG_ENABLE_MUST_CHECK=y | ||
| 1099 | CONFIG_FRAME_WARN=1024 | ||
| 1100 | # CONFIG_MAGIC_SYSRQ is not set | ||
| 1101 | # CONFIG_UNUSED_SYMBOLS is not set | ||
| 1102 | # CONFIG_DEBUG_FS is not set | ||
| 1103 | # CONFIG_HEADERS_CHECK is not set | ||
| 1104 | # CONFIG_DEBUG_KERNEL is not set | ||
| 1105 | # CONFIG_SLUB_DEBUG_ON is not set | ||
| 1106 | # CONFIG_SLUB_STATS is not set | ||
| 1107 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
| 1108 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
| 1109 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
| 1110 | |||
| 1111 | # | ||
| 1112 | # Tracers | ||
| 1113 | # | ||
| 1114 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
| 1115 | # CONFIG_SAMPLES is not set | ||
| 1116 | |||
| 1117 | # | ||
| 1118 | # Security options | ||
| 1119 | # | ||
| 1120 | # CONFIG_KEYS is not set | ||
| 1121 | # CONFIG_SECURITY is not set | ||
| 1122 | # CONFIG_SECURITYFS is not set | ||
| 1123 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
| 1124 | CONFIG_CRYPTO=y | ||
| 1125 | |||
| 1126 | # | ||
| 1127 | # Crypto core or helper | ||
| 1128 | # | ||
| 1129 | # CONFIG_CRYPTO_FIPS is not set | ||
| 1130 | CONFIG_CRYPTO_ALGAPI=y | ||
| 1131 | CONFIG_CRYPTO_ALGAPI2=y | ||
| 1132 | CONFIG_CRYPTO_AEAD=y | ||
| 1133 | CONFIG_CRYPTO_AEAD2=y | ||
| 1134 | CONFIG_CRYPTO_BLKCIPHER=y | ||
| 1135 | CONFIG_CRYPTO_BLKCIPHER2=y | ||
| 1136 | CONFIG_CRYPTO_HASH=y | ||
| 1137 | CONFIG_CRYPTO_HASH2=y | ||
| 1138 | CONFIG_CRYPTO_RNG2=y | ||
| 1139 | CONFIG_CRYPTO_MANAGER=y | ||
| 1140 | CONFIG_CRYPTO_MANAGER2=y | ||
| 1141 | # CONFIG_CRYPTO_GF128MUL is not set | ||
| 1142 | # CONFIG_CRYPTO_NULL is not set | ||
| 1143 | # CONFIG_CRYPTO_CRYPTD is not set | ||
| 1144 | CONFIG_CRYPTO_AUTHENC=y | ||
| 1145 | # CONFIG_CRYPTO_TEST is not set | ||
| 1146 | |||
| 1147 | # | ||
| 1148 | # Authenticated Encryption with Associated Data | ||
| 1149 | # | ||
| 1150 | # CONFIG_CRYPTO_CCM is not set | ||
| 1151 | # CONFIG_CRYPTO_GCM is not set | ||
| 1152 | # CONFIG_CRYPTO_SEQIV is not set | ||
| 1153 | |||
| 1154 | # | ||
| 1155 | # Block modes | ||
| 1156 | # | ||
| 1157 | CONFIG_CRYPTO_CBC=y | ||
| 1158 | # CONFIG_CRYPTO_CTR is not set | ||
| 1159 | # CONFIG_CRYPTO_CTS is not set | ||
| 1160 | # CONFIG_CRYPTO_ECB is not set | ||
| 1161 | # CONFIG_CRYPTO_LRW is not set | ||
| 1162 | # CONFIG_CRYPTO_PCBC is not set | ||
| 1163 | # CONFIG_CRYPTO_XTS is not set | ||
| 1164 | |||
| 1165 | # | ||
| 1166 | # Hash modes | ||
| 1167 | # | ||
| 1168 | CONFIG_CRYPTO_HMAC=y | ||
| 1169 | # CONFIG_CRYPTO_XCBC is not set | ||
| 1170 | |||
| 1171 | # | ||
| 1172 | # Digest | ||
| 1173 | # | ||
| 1174 | # CONFIG_CRYPTO_CRC32C is not set | ||
| 1175 | # CONFIG_CRYPTO_MD4 is not set | ||
| 1176 | CONFIG_CRYPTO_MD5=y | ||
| 1177 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
| 1178 | # CONFIG_CRYPTO_RMD128 is not set | ||
| 1179 | # CONFIG_CRYPTO_RMD160 is not set | ||
| 1180 | # CONFIG_CRYPTO_RMD256 is not set | ||
| 1181 | # CONFIG_CRYPTO_RMD320 is not set | ||
| 1182 | CONFIG_CRYPTO_SHA1=y | ||
| 1183 | # CONFIG_CRYPTO_SHA256 is not set | ||
| 1184 | # CONFIG_CRYPTO_SHA512 is not set | ||
| 1185 | # CONFIG_CRYPTO_TGR192 is not set | ||
| 1186 | # CONFIG_CRYPTO_WP512 is not set | ||
| 1187 | |||
| 1188 | # | ||
| 1189 | # Ciphers | ||
| 1190 | # | ||
| 1191 | # CONFIG_CRYPTO_AES is not set | ||
| 1192 | # CONFIG_CRYPTO_ANUBIS is not set | ||
| 1193 | # CONFIG_CRYPTO_ARC4 is not set | ||
| 1194 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
| 1195 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
| 1196 | # CONFIG_CRYPTO_CAST5 is not set | ||
| 1197 | # CONFIG_CRYPTO_CAST6 is not set | ||
| 1198 | CONFIG_CRYPTO_DES=y | ||
| 1199 | # CONFIG_CRYPTO_FCRYPT is not set | ||
| 1200 | # CONFIG_CRYPTO_KHAZAD is not set | ||
| 1201 | # CONFIG_CRYPTO_SALSA20 is not set | ||
| 1202 | # CONFIG_CRYPTO_SEED is not set | ||
| 1203 | # CONFIG_CRYPTO_SERPENT is not set | ||
| 1204 | # CONFIG_CRYPTO_TEA is not set | ||
| 1205 | # CONFIG_CRYPTO_TWOFISH is not set | ||
| 1206 | |||
| 1207 | # | ||
| 1208 | # Compression | ||
| 1209 | # | ||
| 1210 | CONFIG_CRYPTO_DEFLATE=y | ||
| 1211 | # CONFIG_CRYPTO_LZO is not set | ||
| 1212 | |||
| 1213 | # | ||
| 1214 | # Random Number Generation | ||
| 1215 | # | ||
| 1216 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
| 1217 | # CONFIG_CRYPTO_HW is not set | ||
| 1218 | |||
| 1219 | # | ||
| 1220 | # Library routines | ||
| 1221 | # | ||
| 1222 | CONFIG_BITREVERSE=y | ||
| 1223 | CONFIG_GENERIC_FIND_LAST_BIT=y | ||
| 1224 | # CONFIG_CRC_CCITT is not set | ||
| 1225 | # CONFIG_CRC16 is not set | ||
| 1226 | # CONFIG_CRC_T10DIF is not set | ||
| 1227 | # CONFIG_CRC_ITU_T is not set | ||
| 1228 | CONFIG_CRC32=y | ||
| 1229 | # CONFIG_CRC7 is not set | ||
| 1230 | # CONFIG_LIBCRC32C is not set | ||
| 1231 | CONFIG_ZLIB_INFLATE=y | ||
| 1232 | CONFIG_ZLIB_DEFLATE=y | ||
| 1233 | CONFIG_GENERIC_ALLOCATOR=y | ||
| 1234 | CONFIG_PLIST=y | ||
| 1235 | CONFIG_HAS_IOMEM=y | ||
| 1236 | CONFIG_HAS_IOPORT=y | ||
| 1237 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c index 3fbfd1e32a9e..7cc653798327 100644 --- a/arch/avr32/mach-at32ap/at32ap700x.c +++ b/arch/avr32/mach-at32ap/at32ap700x.c | |||
| @@ -26,6 +26,9 @@ | |||
| 26 | #include <mach/portmux.h> | 26 | #include <mach/portmux.h> |
| 27 | #include <mach/sram.h> | 27 | #include <mach/sram.h> |
| 28 | 28 | ||
| 29 | #include <sound/atmel-abdac.h> | ||
| 30 | #include <sound/atmel-ac97c.h> | ||
| 31 | |||
| 29 | #include <video/atmel_lcdc.h> | 32 | #include <video/atmel_lcdc.h> |
| 30 | 33 | ||
| 31 | #include "clock.h" | 34 | #include "clock.h" |
| @@ -963,56 +966,68 @@ static struct resource atmel_usart3_resource[] = { | |||
| 963 | DEFINE_DEV_DATA(atmel_usart, 3); | 966 | DEFINE_DEV_DATA(atmel_usart, 3); |
| 964 | DEV_CLK(usart, atmel_usart3, pba, 6); | 967 | DEV_CLK(usart, atmel_usart3, pba, 6); |
| 965 | 968 | ||
| 966 | static inline void configure_usart0_pins(void) | 969 | static inline void configure_usart0_pins(int flags) |
| 967 | { | 970 | { |
| 968 | u32 pin_mask = (1 << 8) | (1 << 9); /* RXD & TXD */ | 971 | u32 pin_mask = (1 << 8) | (1 << 9); /* RXD & TXD */ |
| 972 | if (flags & ATMEL_USART_RTS) pin_mask |= (1 << 6); | ||
| 973 | if (flags & ATMEL_USART_CTS) pin_mask |= (1 << 7); | ||
| 974 | if (flags & ATMEL_USART_CLK) pin_mask |= (1 << 10); | ||
| 969 | 975 | ||
| 970 | select_peripheral(PIOA, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP); | 976 | select_peripheral(PIOA, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP); |
| 971 | } | 977 | } |
| 972 | 978 | ||
| 973 | static inline void configure_usart1_pins(void) | 979 | static inline void configure_usart1_pins(int flags) |
| 974 | { | 980 | { |
| 975 | u32 pin_mask = (1 << 17) | (1 << 18); /* RXD & TXD */ | 981 | u32 pin_mask = (1 << 17) | (1 << 18); /* RXD & TXD */ |
| 982 | if (flags & ATMEL_USART_RTS) pin_mask |= (1 << 19); | ||
| 983 | if (flags & ATMEL_USART_CTS) pin_mask |= (1 << 20); | ||
| 984 | if (flags & ATMEL_USART_CLK) pin_mask |= (1 << 16); | ||
| 976 | 985 | ||
| 977 | select_peripheral(PIOA, pin_mask, PERIPH_A, AT32_GPIOF_PULLUP); | 986 | select_peripheral(PIOA, pin_mask, PERIPH_A, AT32_GPIOF_PULLUP); |
| 978 | } | 987 | } |
| 979 | 988 | ||
| 980 | static inline void configure_usart2_pins(void) | 989 | static inline void configure_usart2_pins(int flags) |
| 981 | { | 990 | { |
| 982 | u32 pin_mask = (1 << 26) | (1 << 27); /* RXD & TXD */ | 991 | u32 pin_mask = (1 << 26) | (1 << 27); /* RXD & TXD */ |
| 992 | if (flags & ATMEL_USART_RTS) pin_mask |= (1 << 30); | ||
| 993 | if (flags & ATMEL_USART_CTS) pin_mask |= (1 << 29); | ||
| 994 | if (flags & ATMEL_USART_CLK) pin_mask |= (1 << 28); | ||
| 983 | 995 | ||
| 984 | select_peripheral(PIOB, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP); | 996 | select_peripheral(PIOB, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP); |
| 985 | } | 997 | } |
| 986 | 998 | ||
| 987 | static inline void configure_usart3_pins(void) | 999 | static inline void configure_usart3_pins(int flags) |
| 988 | { | 1000 | { |
| 989 | u32 pin_mask = (1 << 18) | (1 << 17); /* RXD & TXD */ | 1001 | u32 pin_mask = (1 << 18) | (1 << 17); /* RXD & TXD */ |
| 1002 | if (flags & ATMEL_USART_RTS) pin_mask |= (1 << 16); | ||
| 1003 | if (flags & ATMEL_USART_CTS) pin_mask |= (1 << 15); | ||
| 1004 | if (flags & ATMEL_USART_CLK) pin_mask |= (1 << 19); | ||
| 990 | 1005 | ||
| 991 | select_peripheral(PIOB, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP); | 1006 | select_peripheral(PIOB, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP); |
| 992 | } | 1007 | } |
| 993 | 1008 | ||
| 994 | static struct platform_device *__initdata at32_usarts[4]; | 1009 | static struct platform_device *__initdata at32_usarts[4]; |
| 995 | 1010 | ||
| 996 | void __init at32_map_usart(unsigned int hw_id, unsigned int line) | 1011 | void __init at32_map_usart(unsigned int hw_id, unsigned int line, int flags) |
| 997 | { | 1012 | { |
| 998 | struct platform_device *pdev; | 1013 | struct platform_device *pdev; |
| 999 | 1014 | ||
| 1000 | switch (hw_id) { | 1015 | switch (hw_id) { |
| 1001 | case 0: | 1016 | case 0: |
| 1002 | pdev = &atmel_usart0_device; | 1017 | pdev = &atmel_usart0_device; |
| 1003 | configure_usart0_pins(); | 1018 | configure_usart0_pins(flags); |
| 1004 | break; | 1019 | break; |
| 1005 | case 1: | 1020 | case 1: |
| 1006 | pdev = &atmel_usart1_device; | 1021 | pdev = &atmel_usart1_device; |
| 1007 | configure_usart1_pins(); | 1022 | configure_usart1_pins(flags); |
| 1008 | break; | 1023 | break; |
| 1009 | case 2: | 1024 | case 2: |
| 1010 | pdev = &atmel_usart2_device; | 1025 | pdev = &atmel_usart2_device; |
| 1011 | configure_usart2_pins(); | 1026 | configure_usart2_pins(flags); |
| 1012 | break; | 1027 | break; |
| 1013 | case 3: | 1028 | case 3: |
| 1014 | pdev = &atmel_usart3_device; | 1029 | pdev = &atmel_usart3_device; |
| 1015 | configure_usart3_pins(); | 1030 | configure_usart3_pins(flags); |
| 1016 | break; | 1031 | break; |
| 1017 | default: | 1032 | default: |
| 1018 | return; | 1033 | return; |
| @@ -1753,7 +1768,7 @@ at32_add_device_usba(unsigned int id, struct usba_platform_data *data) | |||
| 1753 | if (platform_device_add_data(pdev, data, sizeof(usba_data))) | 1768 | if (platform_device_add_data(pdev, data, sizeof(usba_data))) |
| 1754 | goto out_free_pdev; | 1769 | goto out_free_pdev; |
| 1755 | 1770 | ||
| 1756 | if (data->vbus_pin >= 0) | 1771 | if (gpio_is_valid(data->vbus_pin)) |
| 1757 | at32_select_gpio(data->vbus_pin, 0); | 1772 | at32_select_gpio(data->vbus_pin, 0); |
| 1758 | 1773 | ||
| 1759 | usba0_pclk.dev = &pdev->dev; | 1774 | usba0_pclk.dev = &pdev->dev; |
| @@ -1980,11 +1995,14 @@ static struct clk atmel_ac97c0_pclk = { | |||
| 1980 | }; | 1995 | }; |
| 1981 | 1996 | ||
| 1982 | struct platform_device *__init | 1997 | struct platform_device *__init |
| 1983 | at32_add_device_ac97c(unsigned int id, struct ac97c_platform_data *data) | 1998 | at32_add_device_ac97c(unsigned int id, struct ac97c_platform_data *data, |
| 1999 | unsigned int flags) | ||
| 1984 | { | 2000 | { |
| 1985 | struct platform_device *pdev; | 2001 | struct platform_device *pdev; |
| 1986 | struct ac97c_platform_data _data; | 2002 | struct dw_dma_slave *rx_dws; |
| 1987 | u32 pin_mask; | 2003 | struct dw_dma_slave *tx_dws; |
| 2004 | struct ac97c_platform_data _data; | ||
| 2005 | u32 pin_mask; | ||
| 1988 | 2006 | ||
| 1989 | if (id != 0) | 2007 | if (id != 0) |
| 1990 | return NULL; | 2008 | return NULL; |
| @@ -1995,37 +2013,52 @@ at32_add_device_ac97c(unsigned int id, struct ac97c_platform_data *data) | |||
| 1995 | 2013 | ||
| 1996 | if (platform_device_add_resources(pdev, atmel_ac97c0_resource, | 2014 | if (platform_device_add_resources(pdev, atmel_ac97c0_resource, |
| 1997 | ARRAY_SIZE(atmel_ac97c0_resource))) | 2015 | ARRAY_SIZE(atmel_ac97c0_resource))) |
| 1998 | goto fail; | 2016 | goto out_free_resources; |
| 1999 | 2017 | ||
| 2000 | if (!data) { | 2018 | if (!data) { |
| 2001 | data = &_data; | 2019 | data = &_data; |
| 2002 | memset(data, 0, sizeof(struct ac97c_platform_data)); | 2020 | memset(data, 0, sizeof(struct ac97c_platform_data)); |
| 2003 | data->reset_pin = GPIO_PIN_NONE; | 2021 | data->reset_pin = -ENODEV; |
| 2004 | } | 2022 | } |
| 2005 | 2023 | ||
| 2006 | data->dma_rx_periph_id = 3; | 2024 | rx_dws = &data->rx_dws; |
| 2007 | data->dma_tx_periph_id = 4; | 2025 | tx_dws = &data->tx_dws; |
| 2008 | data->dma_controller_id = 0; | 2026 | |
| 2027 | /* Check if DMA slave interface for capture should be configured. */ | ||
| 2028 | if (flags & AC97C_CAPTURE) { | ||
| 2029 | rx_dws->dma_dev = &dw_dmac0_device.dev; | ||
| 2030 | rx_dws->reg_width = DW_DMA_SLAVE_WIDTH_16BIT; | ||
| 2031 | rx_dws->cfg_hi = DWC_CFGH_SRC_PER(3); | ||
| 2032 | rx_dws->cfg_lo &= ~(DWC_CFGL_HS_DST_POL | DWC_CFGL_HS_SRC_POL); | ||
| 2033 | } | ||
| 2034 | |||
| 2035 | /* Check if DMA slave interface for playback should be configured. */ | ||
| 2036 | if (flags & AC97C_PLAYBACK) { | ||
| 2037 | tx_dws->dma_dev = &dw_dmac0_device.dev; | ||
| 2038 | tx_dws->reg_width = DW_DMA_SLAVE_WIDTH_16BIT; | ||
| 2039 | tx_dws->cfg_hi = DWC_CFGH_DST_PER(4); | ||
| 2040 | tx_dws->cfg_lo &= ~(DWC_CFGL_HS_DST_POL | DWC_CFGL_HS_SRC_POL); | ||
| 2041 | } | ||
| 2009 | 2042 | ||
| 2010 | if (platform_device_add_data(pdev, data, | 2043 | if (platform_device_add_data(pdev, data, |
| 2011 | sizeof(struct ac97c_platform_data))) | 2044 | sizeof(struct ac97c_platform_data))) |
| 2012 | goto fail; | 2045 | goto out_free_resources; |
| 2013 | 2046 | ||
| 2014 | pin_mask = (1 << 20) | (1 << 21); /* SDO & SYNC */ | 2047 | /* SDO | SYNC | SCLK | SDI */ |
| 2015 | pin_mask |= (1 << 22) | (1 << 23); /* SCLK & SDI */ | 2048 | pin_mask = (1 << 20) | (1 << 21) | (1 << 22) | (1 << 23); |
| 2016 | 2049 | ||
| 2017 | select_peripheral(PIOB, pin_mask, PERIPH_B, 0); | 2050 | select_peripheral(PIOB, pin_mask, PERIPH_B, 0); |
| 2018 | 2051 | ||
| 2019 | /* TODO: gpio_is_valid(data->reset_pin) with kernel 2.6.26. */ | 2052 | if (gpio_is_valid(data->reset_pin)) |
| 2020 | if (data->reset_pin != GPIO_PIN_NONE) | 2053 | at32_select_gpio(data->reset_pin, AT32_GPIOF_OUTPUT |
| 2021 | at32_select_gpio(data->reset_pin, 0); | 2054 | | AT32_GPIOF_HIGH); |
| 2022 | 2055 | ||
| 2023 | atmel_ac97c0_pclk.dev = &pdev->dev; | 2056 | atmel_ac97c0_pclk.dev = &pdev->dev; |
| 2024 | 2057 | ||
| 2025 | platform_device_add(pdev); | 2058 | platform_device_add(pdev); |
| 2026 | return pdev; | 2059 | return pdev; |
| 2027 | 2060 | ||
| 2028 | fail: | 2061 | out_free_resources: |
| 2029 | platform_device_put(pdev); | 2062 | platform_device_put(pdev); |
| 2030 | return NULL; | 2063 | return NULL; |
| 2031 | } | 2064 | } |
| @@ -2053,21 +2086,34 @@ static struct clk abdac0_sample_clk = { | |||
| 2053 | .index = 6, | 2086 | .index = 6, |
| 2054 | }; | 2087 | }; |
| 2055 | 2088 | ||
| 2056 | struct platform_device *__init at32_add_device_abdac(unsigned int id) | 2089 | struct platform_device *__init |
| 2090 | at32_add_device_abdac(unsigned int id, struct atmel_abdac_pdata *data) | ||
| 2057 | { | 2091 | { |
| 2058 | struct platform_device *pdev; | 2092 | struct platform_device *pdev; |
| 2059 | u32 pin_mask; | 2093 | struct dw_dma_slave *dws; |
| 2094 | u32 pin_mask; | ||
| 2060 | 2095 | ||
| 2061 | if (id != 0) | 2096 | if (id != 0 || !data) |
| 2062 | return NULL; | 2097 | return NULL; |
| 2063 | 2098 | ||
| 2064 | pdev = platform_device_alloc("abdac", id); | 2099 | pdev = platform_device_alloc("atmel_abdac", id); |
| 2065 | if (!pdev) | 2100 | if (!pdev) |
| 2066 | return NULL; | 2101 | return NULL; |
| 2067 | 2102 | ||
| 2068 | if (platform_device_add_resources(pdev, abdac0_resource, | 2103 | if (platform_device_add_resources(pdev, abdac0_resource, |
| 2069 | ARRAY_SIZE(abdac0_resource))) | 2104 | ARRAY_SIZE(abdac0_resource))) |
| 2070 | goto err_add_resources; | 2105 | goto out_free_resources; |
| 2106 | |||
| 2107 | dws = &data->dws; | ||
| 2108 | |||
| 2109 | dws->dma_dev = &dw_dmac0_device.dev; | ||
| 2110 | dws->reg_width = DW_DMA_SLAVE_WIDTH_32BIT; | ||
| 2111 | dws->cfg_hi = DWC_CFGH_DST_PER(2); | ||
| 2112 | dws->cfg_lo &= ~(DWC_CFGL_HS_DST_POL | DWC_CFGL_HS_SRC_POL); | ||
| 2113 | |||
| 2114 | if (platform_device_add_data(pdev, data, | ||
| 2115 | sizeof(struct atmel_abdac_pdata))) | ||
| 2116 | goto out_free_resources; | ||
| 2071 | 2117 | ||
| 2072 | pin_mask = (1 << 20) | (1 << 22); /* DATA1 & DATAN1 */ | 2118 | pin_mask = (1 << 20) | (1 << 22); /* DATA1 & DATAN1 */ |
| 2073 | pin_mask |= (1 << 21) | (1 << 23); /* DATA0 & DATAN0 */ | 2119 | pin_mask |= (1 << 21) | (1 << 23); /* DATA0 & DATAN0 */ |
| @@ -2080,7 +2126,7 @@ struct platform_device *__init at32_add_device_abdac(unsigned int id) | |||
| 2080 | platform_device_add(pdev); | 2126 | platform_device_add(pdev); |
| 2081 | return pdev; | 2127 | return pdev; |
| 2082 | 2128 | ||
| 2083 | err_add_resources: | 2129 | out_free_resources: |
| 2084 | platform_device_put(pdev); | 2130 | platform_device_put(pdev); |
| 2085 | return NULL; | 2131 | return NULL; |
| 2086 | } | 2132 | } |
diff --git a/arch/avr32/mach-at32ap/include/mach/at32ap700x.h b/arch/avr32/mach-at32ap/include/mach/at32ap700x.h index 5c4c971eed8e..b9222bf895bc 100644 --- a/arch/avr32/mach-at32ap/include/mach/at32ap700x.h +++ b/arch/avr32/mach-at32ap/include/mach/at32ap700x.h | |||
| @@ -171,25 +171,49 @@ | |||
| 171 | ATMEL_LCDC(PE, DATA20) | ATMEL_LCDC(PE, DATA21) | \ | 171 | ATMEL_LCDC(PE, DATA20) | ATMEL_LCDC(PE, DATA21) | \ |
| 172 | ATMEL_LCDC(PD, DATA22) | ATMEL_LCDC(PD, DATA23)) | 172 | ATMEL_LCDC(PD, DATA22) | ATMEL_LCDC(PD, DATA23)) |
| 173 | 173 | ||
| 174 | #define ATMEL_LCDC_PRI_15B_DATA ( \ | 174 | #define ATMEL_LCDC_PRI_18B_DATA ( \ |
| 175 | ATMEL_LCDC(PC, DATA0) | ATMEL_LCDC(PC, DATA1) | \ | ||
| 176 | ATMEL_LCDC(PC, DATA2) | ATMEL_LCDC(PC, DATA3) | \ | 175 | ATMEL_LCDC(PC, DATA2) | ATMEL_LCDC(PC, DATA3) | \ |
| 177 | ATMEL_LCDC(PC, DATA4) | ATMEL_LCDC(PC, DATA5) | \ | 176 | ATMEL_LCDC(PC, DATA4) | ATMEL_LCDC(PC, DATA5) | \ |
| 178 | ATMEL_LCDC(PD, DATA8) | ATMEL_LCDC(PD, DATA9) | \ | 177 | ATMEL_LCDC(PD, DATA6) | ATMEL_LCDC(PD, DATA7) | \ |
| 179 | ATMEL_LCDC(PD, DATA10) | ATMEL_LCDC(PD, DATA11) | \ | 178 | ATMEL_LCDC(PD, DATA10) | ATMEL_LCDC(PD, DATA11) | \ |
| 180 | ATMEL_LCDC(PD, DATA12) | ATMEL_LCDC(PD, DATA16) | \ | 179 | ATMEL_LCDC(PD, DATA12) | ATMEL_LCDC(PD, DATA13) | \ |
| 181 | ATMEL_LCDC(PD, DATA17) | ATMEL_LCDC(PD, DATA18) | \ | 180 | ATMEL_LCDC(PD, DATA14) | ATMEL_LCDC(PD, DATA15) | \ |
| 182 | ATMEL_LCDC(PD, DATA19) | ATMEL_LCDC(PD, DATA20)) | 181 | ATMEL_LCDC(PD, DATA18) | ATMEL_LCDC(PD, DATA19) | \ |
| 182 | ATMEL_LCDC(PD, DATA20) | ATMEL_LCDC(PD, DATA21) | \ | ||
| 183 | ATMEL_LCDC(PD, DATA22) | ATMEL_LCDC(PD, DATA23)) | ||
| 183 | 184 | ||
| 184 | #define ATMEL_LCDC_ALT_15B_DATA ( \ | 185 | #define ATMEL_LCDC_ALT_18B_DATA ( \ |
| 185 | ATMEL_LCDC(PE, DATA0) | ATMEL_LCDC(PE, DATA1) | \ | ||
| 186 | ATMEL_LCDC(PE, DATA2) | ATMEL_LCDC(PE, DATA3) | \ | 186 | ATMEL_LCDC(PE, DATA2) | ATMEL_LCDC(PE, DATA3) | \ |
| 187 | ATMEL_LCDC(PE, DATA4) | ATMEL_LCDC(PC, DATA5) | \ | 187 | ATMEL_LCDC(PE, DATA4) | ATMEL_LCDC(PC, DATA5) | \ |
| 188 | ATMEL_LCDC(PE, DATA8) | ATMEL_LCDC(PE, DATA9) | \ | 188 | ATMEL_LCDC(PD, DATA6) | ATMEL_LCDC(PD, DATA7) | \ |
| 189 | ATMEL_LCDC(PE, DATA10) | ATMEL_LCDC(PE, DATA11) | \ | 189 | ATMEL_LCDC(PE, DATA10) | ATMEL_LCDC(PE, DATA11) | \ |
| 190 | ATMEL_LCDC(PE, DATA12) | ATMEL_LCDC(PE, DATA16) | \ | 190 | ATMEL_LCDC(PE, DATA12) | ATMEL_LCDC(PD, DATA13) | \ |
| 191 | ATMEL_LCDC(PE, DATA17) | ATMEL_LCDC(PE, DATA18) | \ | 191 | ATMEL_LCDC(PD, DATA14) | ATMEL_LCDC(PD, DATA15) | \ |
| 192 | ATMEL_LCDC(PE, DATA19) | ATMEL_LCDC(PE, DATA20)) | 192 | ATMEL_LCDC(PE, DATA18) | ATMEL_LCDC(PE, DATA19) | \ |
| 193 | ATMEL_LCDC(PE, DATA20) | ATMEL_LCDC(PE, DATA21) | \ | ||
| 194 | ATMEL_LCDC(PD, DATA22) | ATMEL_LCDC(PD, DATA23)) | ||
| 195 | |||
| 196 | #define ATMEL_LCDC_PRI_15B_DATA ( \ | ||
| 197 | ATMEL_LCDC(PC, DATA3) | ATMEL_LCDC(PC, DATA4) | \ | ||
| 198 | ATMEL_LCDC(PC, DATA5) | ATMEL_LCDC(PD, DATA6) | \ | ||
| 199 | ATMEL_LCDC(PD, DATA7) | \ | ||
| 200 | ATMEL_LCDC(PD, DATA11) | ATMEL_LCDC(PD, DATA12) | \ | ||
| 201 | ATMEL_LCDC(PD, DATA13) | ATMEL_LCDC(PD, DATA14) | \ | ||
| 202 | ATMEL_LCDC(PD, DATA15) | \ | ||
| 203 | ATMEL_LCDC(PD, DATA19) | ATMEL_LCDC(PD, DATA20) | \ | ||
| 204 | ATMEL_LCDC(PD, DATA21) | ATMEL_LCDC(PD, DATA22) | \ | ||
| 205 | ATMEL_LCDC(PD, DATA23)) | ||
| 206 | |||
| 207 | #define ATMEL_LCDC_ALT_15B_DATA ( \ | ||
| 208 | ATMEL_LCDC(PE, DATA3) | ATMEL_LCDC(PE, DATA4) | \ | ||
| 209 | ATMEL_LCDC(PC, DATA5) | ATMEL_LCDC(PD, DATA6) | \ | ||
| 210 | ATMEL_LCDC(PD, DATA7) | \ | ||
| 211 | ATMEL_LCDC(PE, DATA11) | ATMEL_LCDC(PE, DATA12) | \ | ||
| 212 | ATMEL_LCDC(PD, DATA13) | ATMEL_LCDC(PD, DATA14) | \ | ||
| 213 | ATMEL_LCDC(PD, DATA15) | \ | ||
| 214 | ATMEL_LCDC(PE, DATA19) | ATMEL_LCDC(PE, DATA20) | \ | ||
| 215 | ATMEL_LCDC(PE, DATA21) | ATMEL_LCDC(PD, DATA22) | \ | ||
| 216 | ATMEL_LCDC(PD, DATA23)) | ||
| 193 | 217 | ||
| 194 | #define ATMEL_LCDC_PRI_CONTROL ( \ | 218 | #define ATMEL_LCDC_PRI_CONTROL ( \ |
| 195 | ATMEL_LCDC(PC, CC) | ATMEL_LCDC(PC, DVAL) | \ | 219 | ATMEL_LCDC(PC, CC) | ATMEL_LCDC(PC, DVAL) | \ |
| @@ -207,6 +231,10 @@ | |||
| 207 | 231 | ||
| 208 | #define ATMEL_LCDC_ALT_24BIT (ATMEL_LCDC_CONTROL | ATMEL_LCDC_ALT_24B_DATA) | 232 | #define ATMEL_LCDC_ALT_24BIT (ATMEL_LCDC_CONTROL | ATMEL_LCDC_ALT_24B_DATA) |
| 209 | 233 | ||
| 234 | #define ATMEL_LCDC_PRI_18BIT (ATMEL_LCDC_CONTROL | ATMEL_LCDC_PRI_18B_DATA) | ||
| 235 | |||
| 236 | #define ATMEL_LCDC_ALT_18BIT (ATMEL_LCDC_CONTROL | ATMEL_LCDC_ALT_18B_DATA) | ||
| 237 | |||
| 210 | #define ATMEL_LCDC_PRI_15BIT (ATMEL_LCDC_CONTROL | ATMEL_LCDC_PRI_15B_DATA) | 238 | #define ATMEL_LCDC_PRI_15BIT (ATMEL_LCDC_CONTROL | ATMEL_LCDC_PRI_15B_DATA) |
| 211 | 239 | ||
| 212 | #define ATMEL_LCDC_ALT_15BIT (ATMEL_LCDC_CONTROL | ATMEL_LCDC_ALT_15B_DATA) | 240 | #define ATMEL_LCDC_ALT_15BIT (ATMEL_LCDC_CONTROL | ATMEL_LCDC_ALT_15B_DATA) |
diff --git a/arch/avr32/mach-at32ap/include/mach/board.h b/arch/avr32/mach-at32ap/include/mach/board.h index cff8e84f78f2..0b8164281899 100644 --- a/arch/avr32/mach-at32ap/include/mach/board.h +++ b/arch/avr32/mach-at32ap/include/mach/board.h | |||
| @@ -13,7 +13,7 @@ | |||
| 13 | * in this array is chip-dependent. | 13 | * in this array is chip-dependent. |
| 14 | */ | 14 | */ |
| 15 | extern unsigned long at32_board_osc_rates[]; | 15 | extern unsigned long at32_board_osc_rates[]; |
| 16 | 16 | ||
| 17 | /* | 17 | /* |
| 18 | * This used to add essential system devices, but this is now done | 18 | * This used to add essential system devices, but this is now done |
| 19 | * automatically. Please don't use it in new board code. | 19 | * automatically. Please don't use it in new board code. |
| @@ -26,12 +26,17 @@ static inline void __deprecated at32_add_system_devices(void) | |||
| 26 | #define ATMEL_MAX_UART 4 | 26 | #define ATMEL_MAX_UART 4 |
| 27 | extern struct platform_device *atmel_default_console_device; | 27 | extern struct platform_device *atmel_default_console_device; |
| 28 | 28 | ||
| 29 | /* Flags for selecting USART extra pins */ | ||
| 30 | #define ATMEL_USART_RTS 0x01 | ||
| 31 | #define ATMEL_USART_CTS 0x02 | ||
| 32 | #define ATMEL_USART_CLK 0x03 | ||
| 33 | |||
| 29 | struct atmel_uart_data { | 34 | struct atmel_uart_data { |
| 30 | short use_dma_tx; /* use transmit DMA? */ | 35 | short use_dma_tx; /* use transmit DMA? */ |
| 31 | short use_dma_rx; /* use receive DMA? */ | 36 | short use_dma_rx; /* use receive DMA? */ |
| 32 | void __iomem *regs; /* virtual base address, if any */ | 37 | void __iomem *regs; /* virtual base address, if any */ |
| 33 | }; | 38 | }; |
| 34 | void at32_map_usart(unsigned int hw_id, unsigned int line); | 39 | void at32_map_usart(unsigned int hw_id, unsigned int line, int flags); |
| 35 | struct platform_device *at32_add_device_usart(unsigned int id); | 40 | struct platform_device *at32_add_device_usart(unsigned int id); |
| 36 | 41 | ||
| 37 | struct eth_platform_data { | 42 | struct eth_platform_data { |
| @@ -88,16 +93,15 @@ struct mci_platform_data; | |||
| 88 | struct platform_device * | 93 | struct platform_device * |
| 89 | at32_add_device_mci(unsigned int id, struct mci_platform_data *data); | 94 | at32_add_device_mci(unsigned int id, struct mci_platform_data *data); |
| 90 | 95 | ||
| 91 | struct ac97c_platform_data { | 96 | struct ac97c_platform_data; |
| 92 | unsigned short dma_rx_periph_id; | 97 | struct platform_device * |
| 93 | unsigned short dma_tx_periph_id; | 98 | at32_add_device_ac97c(unsigned int id, struct ac97c_platform_data *data, |
| 94 | unsigned short dma_controller_id; | 99 | unsigned int flags); |
| 95 | int reset_pin; | 100 | |
| 96 | }; | 101 | struct atmel_abdac_pdata; |
| 97 | struct platform_device * | 102 | struct platform_device * |
| 98 | at32_add_device_ac97c(unsigned int id, struct ac97c_platform_data *data); | 103 | at32_add_device_abdac(unsigned int id, struct atmel_abdac_pdata *data); |
| 99 | 104 | ||
| 100 | struct platform_device *at32_add_device_abdac(unsigned int id); | ||
| 101 | struct platform_device *at32_add_device_psif(unsigned int id); | 105 | struct platform_device *at32_add_device_psif(unsigned int id); |
| 102 | 106 | ||
| 103 | struct cf_platform_data { | 107 | struct cf_platform_data { |
diff --git a/drivers/serial/atmel_serial.c b/drivers/serial/atmel_serial.c index 8f58f7ff0dd7..b3497d7e5354 100644 --- a/drivers/serial/atmel_serial.c +++ b/drivers/serial/atmel_serial.c | |||
| @@ -1020,7 +1020,8 @@ static void atmel_set_termios(struct uart_port *port, struct ktermios *termios, | |||
| 1020 | 1020 | ||
| 1021 | /* Get current mode register */ | 1021 | /* Get current mode register */ |
| 1022 | mode = UART_GET_MR(port) & ~(ATMEL_US_USCLKS | ATMEL_US_CHRL | 1022 | mode = UART_GET_MR(port) & ~(ATMEL_US_USCLKS | ATMEL_US_CHRL |
| 1023 | | ATMEL_US_NBSTOP | ATMEL_US_PAR); | 1023 | | ATMEL_US_NBSTOP | ATMEL_US_PAR |
| 1024 | | ATMEL_US_USMODE); | ||
| 1024 | 1025 | ||
| 1025 | baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk / 16); | 1026 | baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk / 16); |
| 1026 | quot = uart_get_divisor(port, baud); | 1027 | quot = uart_get_divisor(port, baud); |
| @@ -1065,6 +1066,12 @@ static void atmel_set_termios(struct uart_port *port, struct ktermios *termios, | |||
| 1065 | } else | 1066 | } else |
| 1066 | mode |= ATMEL_US_PAR_NONE; | 1067 | mode |= ATMEL_US_PAR_NONE; |
| 1067 | 1068 | ||
| 1069 | /* hardware handshake (RTS/CTS) */ | ||
| 1070 | if (termios->c_cflag & CRTSCTS) | ||
| 1071 | mode |= ATMEL_US_USMODE_HWHS; | ||
| 1072 | else | ||
| 1073 | mode |= ATMEL_US_USMODE_NORMAL; | ||
| 1074 | |||
| 1068 | spin_lock_irqsave(&port->lock, flags); | 1075 | spin_lock_irqsave(&port->lock, flags); |
| 1069 | 1076 | ||
| 1070 | port->read_status_mask = ATMEL_US_OVRE; | 1077 | port->read_status_mask = ATMEL_US_OVRE; |
diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c index c22fab164113..563d57275448 100644 --- a/drivers/usb/gadget/atmel_usba_udc.c +++ b/drivers/usb/gadget/atmel_usba_udc.c | |||
| @@ -319,7 +319,7 @@ static inline void usba_cleanup_debugfs(struct usba_udc *udc) | |||
| 319 | 319 | ||
| 320 | static int vbus_is_present(struct usba_udc *udc) | 320 | static int vbus_is_present(struct usba_udc *udc) |
| 321 | { | 321 | { |
| 322 | if (udc->vbus_pin != -1) | 322 | if (gpio_is_valid(udc->vbus_pin)) |
| 323 | return gpio_get_value(udc->vbus_pin); | 323 | return gpio_get_value(udc->vbus_pin); |
| 324 | 324 | ||
| 325 | /* No Vbus detection: Assume always present */ | 325 | /* No Vbus detection: Assume always present */ |
| @@ -1821,7 +1821,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver) | |||
| 1821 | DBG(DBG_GADGET, "registered driver `%s'\n", driver->driver.name); | 1821 | DBG(DBG_GADGET, "registered driver `%s'\n", driver->driver.name); |
| 1822 | 1822 | ||
| 1823 | udc->vbus_prev = 0; | 1823 | udc->vbus_prev = 0; |
| 1824 | if (udc->vbus_pin != -1) | 1824 | if (gpio_is_valid(udc->vbus_pin)) |
| 1825 | enable_irq(gpio_to_irq(udc->vbus_pin)); | 1825 | enable_irq(gpio_to_irq(udc->vbus_pin)); |
| 1826 | 1826 | ||
| 1827 | /* If Vbus is present, enable the controller and wait for reset */ | 1827 | /* If Vbus is present, enable the controller and wait for reset */ |
| @@ -1852,7 +1852,7 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver) | |||
| 1852 | if (driver != udc->driver || !driver->unbind) | 1852 | if (driver != udc->driver || !driver->unbind) |
| 1853 | return -EINVAL; | 1853 | return -EINVAL; |
| 1854 | 1854 | ||
| 1855 | if (udc->vbus_pin != -1) | 1855 | if (gpio_is_valid(udc->vbus_pin)) |
| 1856 | disable_irq(gpio_to_irq(udc->vbus_pin)); | 1856 | disable_irq(gpio_to_irq(udc->vbus_pin)); |
| 1857 | 1857 | ||
| 1858 | spin_lock_irqsave(&udc->lock, flags); | 1858 | spin_lock_irqsave(&udc->lock, flags); |
| @@ -1910,7 +1910,7 @@ static int __init usba_udc_probe(struct platform_device *pdev) | |||
| 1910 | udc->pdev = pdev; | 1910 | udc->pdev = pdev; |
| 1911 | udc->pclk = pclk; | 1911 | udc->pclk = pclk; |
| 1912 | udc->hclk = hclk; | 1912 | udc->hclk = hclk; |
| 1913 | udc->vbus_pin = -1; | 1913 | udc->vbus_pin = -ENODEV; |
| 1914 | 1914 | ||
| 1915 | ret = -ENOMEM; | 1915 | ret = -ENOMEM; |
| 1916 | udc->regs = ioremap(regs->start, regs->end - regs->start + 1); | 1916 | udc->regs = ioremap(regs->start, regs->end - regs->start + 1); |
| @@ -1996,7 +1996,7 @@ static int __init usba_udc_probe(struct platform_device *pdev) | |||
| 1996 | goto err_device_add; | 1996 | goto err_device_add; |
| 1997 | } | 1997 | } |
| 1998 | 1998 | ||
| 1999 | if (pdata->vbus_pin >= 0) { | 1999 | if (gpio_is_valid(pdata->vbus_pin)) { |
| 2000 | if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) { | 2000 | if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) { |
| 2001 | udc->vbus_pin = pdata->vbus_pin; | 2001 | udc->vbus_pin = pdata->vbus_pin; |
| 2002 | 2002 | ||
| @@ -2005,7 +2005,7 @@ static int __init usba_udc_probe(struct platform_device *pdev) | |||
| 2005 | "atmel_usba_udc", udc); | 2005 | "atmel_usba_udc", udc); |
| 2006 | if (ret) { | 2006 | if (ret) { |
| 2007 | gpio_free(udc->vbus_pin); | 2007 | gpio_free(udc->vbus_pin); |
| 2008 | udc->vbus_pin = -1; | 2008 | udc->vbus_pin = -ENODEV; |
| 2009 | dev_warn(&udc->pdev->dev, | 2009 | dev_warn(&udc->pdev->dev, |
| 2010 | "failed to request vbus irq; " | 2010 | "failed to request vbus irq; " |
| 2011 | "assuming always on\n"); | 2011 | "assuming always on\n"); |
| @@ -2051,7 +2051,7 @@ static int __exit usba_udc_remove(struct platform_device *pdev) | |||
| 2051 | usba_ep_cleanup_debugfs(&usba_ep[i]); | 2051 | usba_ep_cleanup_debugfs(&usba_ep[i]); |
| 2052 | usba_cleanup_debugfs(udc); | 2052 | usba_cleanup_debugfs(udc); |
| 2053 | 2053 | ||
| 2054 | if (udc->vbus_pin != -1) | 2054 | if (gpio_is_valid(udc->vbus_pin)) |
| 2055 | gpio_free(udc->vbus_pin); | 2055 | gpio_free(udc->vbus_pin); |
| 2056 | 2056 | ||
| 2057 | free_irq(udc->irq, udc); | 2057 | free_irq(udc->irq, udc); |
