--- a/arch/arm/mach-cns3xxx/Kconfig +++ b/arch/arm/mach-cns3xxx/Kconfig @@ -22,4 +22,12 @@ config MACH_CNS3420VB This is a platform with an on-board ARM11 MPCore and has support for USB, USB-OTG, MMC/SD/SDIO, SATA, PCI-E, etc. +config MACH_GW2388 + bool "Support for Gateworks Laguna Platform" + help + Include support for the Gateworks Laguna Platform + + This is a platform with an on-board ARM11 MPCore and has support + for USB, USB-OTG, MMC/SD/SDIO, SATA, PCI-E, I2C, GIG, etc. + endif --- a/arch/arm/mach-cns3xxx/Makefile +++ b/arch/arm/mach-cns3xxx/Makefile @@ -8,3 +8,5 @@ CFLAGS_pcie.o += -Wframe-larger-than= cns3xxx-$(CONFIG_MACH_CNS3420VB) += cns3420vb.o cns3xxx-$(CONFIG_SMP) += platsmp.o headsmp.o cns3xxx_fiq.o cns3xxx-$(CONFIG_HOTPLUG_CPU) += hotplug.o +cns3xxx-$(CONFIG_MACH_GW2388) += laguna.o + --- a/arch/arm/mach-cns3xxx/devices.c +++ b/arch/arm/mach-cns3xxx/devices.c @@ -16,6 +16,7 @@ #include #include #include +#include #include "cns3xxx.h" #include "pm.h" #include "core.h" @@ -101,7 +102,11 @@ void __init cns3xxx_sdhci_init(void) u32 gpioa_pins = __raw_readl(gpioa); /* MMC/SD pins share with GPIOA */ - gpioa_pins |= 0x1fff0004; + if (machine_is_gw2388()) { + gpioa_pins |= 0x1fff0000; + } else { + gpioa_pins |= 0x1fff0004; + } __raw_writel(gpioa_pins, gpioa); cns3xxx_pwr_clk_en(CNS3XXX_PWR_CLK_EN(SDIO));