]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/arm/mach-mmp/aspenite.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jaswinder...
[karo-tx-linux.git] / arch / arm / mach-mmp / aspenite.c
index e8caf58e004c62a73f742a7f65c1a720c48ba75a..4562452d40740d76fa2eb8f57d3321408955f515 100644 (file)
  */
 
 #include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/platform_device.h>
+#include <linux/smc91x.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <mach/addr-map.h>
+#include <mach/mfp-pxa168.h>
+#include <mach/pxa168.h>
+#include <mach/gpio.h>
 
 #include "common.h"
 
+static unsigned long common_pin_config[] __initdata = {
+       /* Data Flash Interface */
+       GPIO0_DFI_D15,
+       GPIO1_DFI_D14,
+       GPIO2_DFI_D13,
+       GPIO3_DFI_D12,
+       GPIO4_DFI_D11,
+       GPIO5_DFI_D10,
+       GPIO6_DFI_D9,
+       GPIO7_DFI_D8,
+       GPIO8_DFI_D7,
+       GPIO9_DFI_D6,
+       GPIO10_DFI_D5,
+       GPIO11_DFI_D4,
+       GPIO12_DFI_D3,
+       GPIO13_DFI_D2,
+       GPIO14_DFI_D1,
+       GPIO15_DFI_D0,
+
+       /* Static Memory Controller */
+       GPIO18_SMC_nCS0,
+       GPIO34_SMC_nCS1,
+       GPIO23_SMC_nLUA,
+       GPIO25_SMC_nLLA,
+       GPIO28_SMC_RDY,
+       GPIO29_SMC_SCLK,
+       GPIO35_SMC_BE1,
+       GPIO36_SMC_BE2,
+       GPIO27_GPIO,    /* Ethernet IRQ */
+
+       /* UART1 */
+       GPIO107_UART1_RXD,
+       GPIO108_UART1_TXD,
+};
+
+static struct smc91x_platdata smc91x_info = {
+       .flags  = SMC91X_USE_16BIT | SMC91X_NOWAIT,
+};
+
+static struct resource smc91x_resources[] = {
+       [0] = {
+               .start  = SMC_CS1_PHYS_BASE + 0x300,
+               .end    = SMC_CS1_PHYS_BASE + 0xfffff,
+               .flags  = IORESOURCE_MEM,
+       },
+       [1] = {
+               .start  = gpio_to_irq(27),
+               .end    = gpio_to_irq(27),
+               .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
+       }
+};
+
+static struct platform_device smc91x_device = {
+       .name           = "smc91x",
+       .id             = 0,
+       .dev            = {
+               .platform_data = &smc91x_info,
+       },
+       .num_resources  = ARRAY_SIZE(smc91x_resources),
+       .resource       = smc91x_resources,
+};
+
 static void __init common_init(void)
 {
+       mfp_config(ARRAY_AND_SIZE(common_pin_config));
+
+       /* on-chip devices */
+       pxa168_add_uart(1);
+
+       /* off-chip devices */
+       platform_device_register(&smc91x_device);
 }
 
 MACHINE_START(ASPENITE, "PXA168-based Aspenite Development Platform")