diff options
| -rw-r--r-- | arch/avr32/Kconfig | 4 | ||||
| -rw-r--r-- | arch/avr32/boards/atstk1000/Kconfig | 53 | ||||
| -rw-r--r-- | arch/avr32/boards/atstk1000/atstk1002.c | 30 |
3 files changed, 80 insertions, 7 deletions
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig index 8f37a14e6378..d12346aaa88b 100644 --- a/arch/avr32/Kconfig +++ b/arch/avr32/Kconfig | |||
| @@ -113,6 +113,10 @@ config BOARD_ATNGW100 | |||
| 113 | bool "ATNGW100 Network Gateway" | 113 | bool "ATNGW100 Network Gateway" |
| 114 | endchoice | 114 | endchoice |
| 115 | 115 | ||
| 116 | if BOARD_ATSTK1000 | ||
| 117 | source "arch/avr32/boards/atstk1000/Kconfig" | ||
| 118 | endif | ||
| 119 | |||
| 116 | choice | 120 | choice |
| 117 | prompt "Boot loader type" | 121 | prompt "Boot loader type" |
| 118 | default LOADER_U_BOOT | 122 | default LOADER_U_BOOT |
diff --git a/arch/avr32/boards/atstk1000/Kconfig b/arch/avr32/boards/atstk1000/Kconfig new file mode 100644 index 000000000000..71bc7d364fb7 --- /dev/null +++ b/arch/avr32/boards/atstk1000/Kconfig | |||
| @@ -0,0 +1,53 @@ | |||
| 1 | # STK1000 customization | ||
| 2 | |||
| 3 | if BOARD_ATSTK1002 | ||
| 4 | |||
| 5 | config BOARD_ATSTK1002_CUSTOM | ||
| 6 | bool "Non-default STK-1002 jumper settings" | ||
| 7 | help | ||
| 8 | You will normally leave the jumpers on the CPU card at their | ||
| 9 | default settings. If you need to use certain peripherals, | ||
| 10 | you will need to change some of those jumpers. | ||
| 11 | |||
| 12 | if BOARD_ATSTK1002_CUSTOM | ||
| 13 | |||
| 14 | config BOARD_ATSTK1002_SW1_CUSTOM | ||
| 15 | bool "SW1: use SSC1 (not SPI0)" | ||
| 16 | help | ||
| 17 | This also prevents using the external DAC as an audio interface, | ||
| 18 | and means you can't initialize the on-board QVGA display. | ||
| 19 | |||
| 20 | config BOARD_ATSTK1002_SW2_CUSTOM | ||
| 21 | bool "SW2: use IRDA or TIMER0 (not UART-A, MMC/SD, and PS2-A)" | ||
| 22 | help | ||
| 23 | If you change this you'll want an updated boot loader putting | ||
| 24 | the console on UART-C not UART-A. | ||
| 25 | |||
| 26 | config BOARD_ATSTK1002_SW3_CUSTOM | ||
| 27 | bool "SW3: use TIMER1 (not SSC0 and GCLK)" | ||
| 28 | help | ||
| 29 | This also prevents using the external DAC as an audio interface. | ||
| 30 | |||
| 31 | config BOARD_ATSTK1002_SW4_CUSTOM | ||
| 32 | bool "SW4: use ISI/Camera (not GPIOs, SPI1, and PS2-B)" | ||
| 33 | help | ||
| 34 | To use the camera interface you'll need a custom card (on the | ||
| 35 | PCI-format connector) connect a video sensor. | ||
| 36 | |||
| 37 | config BOARD_ATSTK1002_SW5_CUSTOM | ||
| 38 | bool "SW5: use MACB1 (not LCDC)" | ||
| 39 | |||
| 40 | config BOARD_ATSTK1002_SW6_CUSTOM | ||
| 41 | bool "SW6: more GPIOs (not MACB0)" | ||
| 42 | |||
| 43 | endif # custom | ||
| 44 | |||
| 45 | config BOARD_ATSTK1002_SPI1 | ||
| 46 | bool "Configure SPI1 controller" | ||
| 47 | depends on !BOARD_ATSTK1002_SW4_CUSTOM | ||
| 48 | help | ||
| 49 | All the signals for the second SPI controller are available on | ||
| 50 | GPIO lines and accessed through the J1 jumper block. Say "y" | ||
| 51 | here to configure that SPI controller. | ||
| 52 | |||
| 53 | endif # stk 1002 | ||
diff --git a/arch/avr32/boards/atstk1000/atstk1002.c b/arch/avr32/boards/atstk1000/atstk1002.c index e253e86a1a39..6b2187f35031 100644 --- a/arch/avr32/boards/atstk1000/atstk1002.c +++ b/arch/avr32/boards/atstk1000/atstk1002.c | |||
| @@ -27,7 +27,6 @@ | |||
| 27 | 27 | ||
| 28 | #include "atstk1000.h" | 28 | #include "atstk1000.h" |
| 29 | 29 | ||
| 30 | #define SW2_DEFAULT /* MMCI and UART_A available */ | ||
| 31 | 30 | ||
| 32 | struct eth_addr { | 31 | struct eth_addr { |
| 33 | u8 addr[6]; | 32 | u8 addr[6]; |
| @@ -36,6 +35,7 @@ struct eth_addr { | |||
| 36 | static struct eth_addr __initdata hw_addr[2]; | 35 | static struct eth_addr __initdata hw_addr[2]; |
| 37 | static struct eth_platform_data __initdata eth_data[2]; | 36 | static struct eth_platform_data __initdata eth_data[2]; |
| 38 | 37 | ||
| 38 | #ifndef CONFIG_BOARD_ATSTK1002_SW1_CUSTOM | ||
| 39 | static struct spi_board_info spi0_board_info[] __initdata = { | 39 | static struct spi_board_info spi0_board_info[] __initdata = { |
| 40 | { | 40 | { |
| 41 | /* QVGA display */ | 41 | /* QVGA display */ |
| @@ -45,6 +45,13 @@ static struct spi_board_info spi0_board_info[] __initdata = { | |||
| 45 | .mode = SPI_MODE_3, | 45 | .mode = SPI_MODE_3, |
| 46 | }, | 46 | }, |
| 47 | }; | 47 | }; |
| 48 | #endif | ||
| 49 | |||
| 50 | #ifdef CONFIG_BOARD_ATSTK1002_SPI1 | ||
| 51 | static struct spi_board_info spi1_board_info[] __initdata = { { | ||
| 52 | /* patch in custom entries here */ | ||
| 53 | } }; | ||
| 54 | #endif | ||
| 48 | 55 | ||
| 49 | /* | 56 | /* |
| 50 | * The next two functions should go away as the boot loader is | 57 | * The next two functions should go away as the boot loader is |
| @@ -103,10 +110,10 @@ static void __init set_hw_addr(struct platform_device *pdev) | |||
| 103 | 110 | ||
| 104 | void __init setup_board(void) | 111 | void __init setup_board(void) |
| 105 | { | 112 | { |
| 106 | #ifdef SW2_DEFAULT | 113 | #ifdef CONFIG_BOARD_ATSTK1002_SW2_CUSTOM |
| 107 | at32_map_usart(1, 0); /* USART 1/A: /dev/ttyS0, DB9 */ | ||
| 108 | #else | ||
| 109 | at32_map_usart(0, 1); /* USART 0/B: /dev/ttyS1, IRDA */ | 114 | at32_map_usart(0, 1); /* USART 0/B: /dev/ttyS1, IRDA */ |
| 115 | #else | ||
| 116 | at32_map_usart(1, 0); /* USART 1/A: /dev/ttyS0, DB9 */ | ||
| 110 | #endif | 117 | #endif |
| 111 | /* USART 2/unused: expansion connector */ | 118 | /* USART 2/unused: expansion connector */ |
| 112 | at32_map_usart(3, 2); /* USART 3/C: /dev/ttyS2, DB9 */ | 119 | at32_map_usart(3, 2); /* USART 3/C: /dev/ttyS2, DB9 */ |
| @@ -140,18 +147,27 @@ static int __init atstk1002_init(void) | |||
| 140 | 147 | ||
| 141 | at32_add_system_devices(); | 148 | at32_add_system_devices(); |
| 142 | 149 | ||
| 143 | #ifdef SW2_DEFAULT | 150 | #ifdef CONFIG_BOARD_ATSTK1002_SW2_CUSTOM |
| 144 | at32_add_device_usart(0); | ||
| 145 | #else | ||
| 146 | at32_add_device_usart(1); | 151 | at32_add_device_usart(1); |
| 152 | #else | ||
| 153 | at32_add_device_usart(0); | ||
| 147 | #endif | 154 | #endif |
| 148 | at32_add_device_usart(2); | 155 | at32_add_device_usart(2); |
| 149 | 156 | ||
| 150 | set_hw_addr(at32_add_device_eth(0, ð_data[0])); | 157 | set_hw_addr(at32_add_device_eth(0, ð_data[0])); |
| 151 | 158 | ||
| 159 | #ifndef CONFIG_BOARD_ATSTK1002_SW1_CUSTOM | ||
| 152 | at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info)); | 160 | at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info)); |
| 161 | #endif | ||
| 162 | #ifdef CONFIG_BOARD_ATSTK1002_SPI1 | ||
| 163 | at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); | ||
| 164 | #endif | ||
| 165 | #ifdef CONFIG_BOARD_ATSTK1002_SW5_CUSTOM | ||
| 166 | set_hw_addr(at32_add_device_eth(1, ð_data[1])); | ||
| 167 | #else | ||
| 153 | at32_add_device_lcdc(0, &atstk1000_lcdc_data, | 168 | at32_add_device_lcdc(0, &atstk1000_lcdc_data, |
| 154 | fbmem_start, fbmem_size); | 169 | fbmem_start, fbmem_size); |
| 170 | #endif | ||
| 155 | 171 | ||
| 156 | return 0; | 172 | return 0; |
| 157 | } | 173 | } |
