[AVR32] Make STK1000 mux settings configurable
This adds some STK1002-specific config options covering the jumper settings, so the kernel can automatically be configured to include the relevant devices. One of them replaces the previous internal SW2_DEFAULT setting; SPI config is affected by two of the jumpers; and a fourth one switches between LCD and the second Ethernet connector. (There's more that to be done.) Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
This commit is contained in:
parent
9e58e1855c
commit
a8e93ed8cb
@ -113,6 +113,10 @@ config BOARD_ATNGW100
|
||||
bool "ATNGW100 Network Gateway"
|
||||
endchoice
|
||||
|
||||
if BOARD_ATSTK1000
|
||||
source "arch/avr32/boards/atstk1000/Kconfig"
|
||||
endif
|
||||
|
||||
choice
|
||||
prompt "Boot loader type"
|
||||
default LOADER_U_BOOT
|
||||
|
53
arch/avr32/boards/atstk1000/Kconfig
Normal file
53
arch/avr32/boards/atstk1000/Kconfig
Normal file
@ -0,0 +1,53 @@
|
||||
# STK1000 customization
|
||||
|
||||
if BOARD_ATSTK1002
|
||||
|
||||
config BOARD_ATSTK1002_CUSTOM
|
||||
bool "Non-default STK-1002 jumper settings"
|
||||
help
|
||||
You will normally leave the jumpers on the CPU card at their
|
||||
default settings. If you need to use certain peripherals,
|
||||
you will need to change some of those jumpers.
|
||||
|
||||
if BOARD_ATSTK1002_CUSTOM
|
||||
|
||||
config BOARD_ATSTK1002_SW1_CUSTOM
|
||||
bool "SW1: use SSC1 (not SPI0)"
|
||||
help
|
||||
This also prevents using the external DAC as an audio interface,
|
||||
and means you can't initialize the on-board QVGA display.
|
||||
|
||||
config BOARD_ATSTK1002_SW2_CUSTOM
|
||||
bool "SW2: use IRDA or TIMER0 (not UART-A, MMC/SD, and PS2-A)"
|
||||
help
|
||||
If you change this you'll want an updated boot loader putting
|
||||
the console on UART-C not UART-A.
|
||||
|
||||
config BOARD_ATSTK1002_SW3_CUSTOM
|
||||
bool "SW3: use TIMER1 (not SSC0 and GCLK)"
|
||||
help
|
||||
This also prevents using the external DAC as an audio interface.
|
||||
|
||||
config BOARD_ATSTK1002_SW4_CUSTOM
|
||||
bool "SW4: use ISI/Camera (not GPIOs, SPI1, and PS2-B)"
|
||||
help
|
||||
To use the camera interface you'll need a custom card (on the
|
||||
PCI-format connector) connect a video sensor.
|
||||
|
||||
config BOARD_ATSTK1002_SW5_CUSTOM
|
||||
bool "SW5: use MACB1 (not LCDC)"
|
||||
|
||||
config BOARD_ATSTK1002_SW6_CUSTOM
|
||||
bool "SW6: more GPIOs (not MACB0)"
|
||||
|
||||
endif # custom
|
||||
|
||||
config BOARD_ATSTK1002_SPI1
|
||||
bool "Configure SPI1 controller"
|
||||
depends on !BOARD_ATSTK1002_SW4_CUSTOM
|
||||
help
|
||||
All the signals for the second SPI controller are available on
|
||||
GPIO lines and accessed through the J1 jumper block. Say "y"
|
||||
here to configure that SPI controller.
|
||||
|
||||
endif # stk 1002
|
@ -27,7 +27,6 @@
|
||||
|
||||
#include "atstk1000.h"
|
||||
|
||||
#define SW2_DEFAULT /* MMCI and UART_A available */
|
||||
|
||||
struct eth_addr {
|
||||
u8 addr[6];
|
||||
@ -36,6 +35,7 @@ struct eth_addr {
|
||||
static struct eth_addr __initdata hw_addr[2];
|
||||
static struct eth_platform_data __initdata eth_data[2];
|
||||
|
||||
#ifndef CONFIG_BOARD_ATSTK1002_SW1_CUSTOM
|
||||
static struct spi_board_info spi0_board_info[] __initdata = {
|
||||
{
|
||||
/* QVGA display */
|
||||
@ -45,6 +45,13 @@ static struct spi_board_info spi0_board_info[] __initdata = {
|
||||
.mode = SPI_MODE_3,
|
||||
},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOARD_ATSTK1002_SPI1
|
||||
static struct spi_board_info spi1_board_info[] __initdata = { {
|
||||
/* patch in custom entries here */
|
||||
} };
|
||||
#endif
|
||||
|
||||
/*
|
||||
* 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)
|
||||
|
||||
void __init setup_board(void)
|
||||
{
|
||||
#ifdef SW2_DEFAULT
|
||||
at32_map_usart(1, 0); /* USART 1/A: /dev/ttyS0, DB9 */
|
||||
#else
|
||||
#ifdef CONFIG_BOARD_ATSTK1002_SW2_CUSTOM
|
||||
at32_map_usart(0, 1); /* USART 0/B: /dev/ttyS1, IRDA */
|
||||
#else
|
||||
at32_map_usart(1, 0); /* USART 1/A: /dev/ttyS0, DB9 */
|
||||
#endif
|
||||
/* USART 2/unused: expansion connector */
|
||||
at32_map_usart(3, 2); /* USART 3/C: /dev/ttyS2, DB9 */
|
||||
@ -140,18 +147,27 @@ static int __init atstk1002_init(void)
|
||||
|
||||
at32_add_system_devices();
|
||||
|
||||
#ifdef SW2_DEFAULT
|
||||
at32_add_device_usart(0);
|
||||
#else
|
||||
#ifdef CONFIG_BOARD_ATSTK1002_SW2_CUSTOM
|
||||
at32_add_device_usart(1);
|
||||
#else
|
||||
at32_add_device_usart(0);
|
||||
#endif
|
||||
at32_add_device_usart(2);
|
||||
|
||||
set_hw_addr(at32_add_device_eth(0, ð_data[0]));
|
||||
|
||||
#ifndef CONFIG_BOARD_ATSTK1002_SW1_CUSTOM
|
||||
at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info));
|
||||
#endif
|
||||
#ifdef CONFIG_BOARD_ATSTK1002_SPI1
|
||||
at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
|
||||
#endif
|
||||
#ifdef CONFIG_BOARD_ATSTK1002_SW5_CUSTOM
|
||||
set_hw_addr(at32_add_device_eth(1, ð_data[1]));
|
||||
#else
|
||||
at32_add_device_lcdc(0, &atstk1000_lcdc_data,
|
||||
fbmem_start, fbmem_size);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user