--- a/arch/arm/mach-cns3xxx/Kconfig +++ b/arch/arm/mach-cns3xxx/Kconfig @@ -9,4 +9,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. + endmenu --- a/arch/arm/mach-cns3xxx/Makefile +++ b/arch/arm/mach-cns3xxx/Makefile @@ -1,5 +1,6 @@ obj-$(CONFIG_ARCH_CNS3XXX) += core.o gpio.o pm.o devices.o obj-$(CONFIG_PCI) += pcie.o obj-$(CONFIG_MACH_CNS3420VB) += cns3420vb.o +obj-$(CONFIG_MACH_GW2388) += laguna.o obj-$(CONFIG_SMP) += platsmp.o headsmp.o cns3xxx_fiq.o obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o --- a/arch/arm/mach-cns3xxx/devices.c +++ b/arch/arm/mach-cns3xxx/devices.c @@ -19,6 +19,7 @@ #include #include #include +#include #include "core.h" #include "devices.h" @@ -102,7 +103,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));