Loading arch/arm/Kconfig +3 −6 Original line number Diff line number Diff line Loading @@ -699,14 +699,14 @@ config ARCH_S5P6442 help Samsung S5P6442 CPU based systems config ARCH_S5PC1XX bool "Samsung S5PC1XX" config ARCH_S5PC100 bool "Samsung S5PC100" select GENERIC_GPIO select HAVE_CLK select CPU_V7 select ARM_L1_CACHE_SHIFT_6 help Samsung S5PC1XX series based systems Samsung S5PC100 series based systems config ARCH_S5PV210 bool "Samsung S5PV210/S5PC110" Loading Loading @@ -890,7 +890,6 @@ source "arch/arm/mach-sa1100/Kconfig" source "arch/arm/plat-samsung/Kconfig" source "arch/arm/plat-s3c24xx/Kconfig" source "arch/arm/plat-s5p/Kconfig" source "arch/arm/plat-s5pc1xx/Kconfig" if ARCH_S3C2410 source "arch/arm/mach-s3c2400/Kconfig" Loading @@ -909,9 +908,7 @@ source "arch/arm/mach-s5p6440/Kconfig" source "arch/arm/mach-s5p6442/Kconfig" if ARCH_S5PC1XX source "arch/arm/mach-s5pc100/Kconfig" endif source "arch/arm/mach-s5pv210/Kconfig" Loading arch/arm/Makefile +1 −2 Original line number Diff line number Diff line Loading @@ -167,7 +167,7 @@ machine-$(CONFIG_ARCH_S3C24A0) := s3c24a0 machine-$(CONFIG_ARCH_S3C64XX) := s3c64xx machine-$(CONFIG_ARCH_S5P6440) := s5p6440 machine-$(CONFIG_ARCH_S5P6442) := s5p6442 machine-$(CONFIG_ARCH_S5PC1XX) := s5pc100 machine-$(CONFIG_ARCH_S5PC100) := s5pc100 machine-$(CONFIG_ARCH_S5PV210) := s5pv210 machine-$(CONFIG_ARCH_SA1100) := sa1100 machine-$(CONFIG_ARCH_SHARK) := shark Loading @@ -192,7 +192,6 @@ plat-$(CONFIG_PLAT_NOMADIK) := nomadik plat-$(CONFIG_PLAT_ORION) := orion plat-$(CONFIG_PLAT_PXA) := pxa plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx samsung plat-$(CONFIG_PLAT_S5PC1XX) := s5pc1xx samsung plat-$(CONFIG_PLAT_S5P) := s5p samsung ifeq ($(CONFIG_ARCH_EBSA110),y) Loading arch/arm/mach-s5pc100/Kconfig +17 −8 Original line number Diff line number Diff line Loading @@ -5,10 +5,12 @@ # Configuration options for the S5PC100 CPU if ARCH_S5PC100 config CPU_S5PC100 bool select CPU_S5PC100_INIT select CPU_S5PC100_CLOCK select PLAT_S5P select S5P_EXT_INT help Enable S5PC100 CPU support Loading @@ -17,16 +19,21 @@ config S5PC100_SETUP_FB_24BPP help Common setup code for S5PC1XX with an 24bpp RGB display helper. config S5PC100_SETUP_I2C1 bool help Common setup code for i2c bus 1. config S5PC100_SETUP_SDHCI bool select S5PC1XX_SETUP_SDHCI_GPIO select S5PC100_SETUP_SDHCI_GPIO help Internal helper functions for S5PC100 based SDHCI systems config S5PC100_SETUP_I2C1 config S5PC100_SETUP_SDHCI_GPIO bool help Common setup code for i2c bus 1. Common setup code for SDHCI gpio. config MACH_SMDKC100 bool "SMDKC100" Loading @@ -41,3 +48,5 @@ config MACH_SMDKC100 select S5PC100_SETUP_SDHCI help Machine support for the Samsung SMDKC100 endif arch/arm/mach-s5pc100/Makefile +4 −2 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ obj- := # Core support for S5PC100 system obj-$(CONFIG_CPU_S5PC100) += cpu.o gpiolib.o obj-$(CONFIG_CPU_S5PC100) += cpu.o init.o clock.o gpiolib.o irq-gpio.o obj-$(CONFIG_CPU_S5PC100) += setup-i2c0.o # Helper and device support Loading @@ -19,6 +19,8 @@ obj-$(CONFIG_CPU_S5PC100) += setup-i2c0.o obj-$(CONFIG_S5PC100_SETUP_FB_24BPP) += setup-fb-24bpp.o obj-$(CONFIG_S5PC100_SETUP_I2C1) += setup-i2c1.o obj-$(CONFIG_S5PC100_SETUP_SDHCI) += setup-sdhci.o obj-$(CONFIG_S5PC100_SETUP_SDHCI_GPIO) += setup-sdhci-gpio.o # machine support obj-$(CONFIG_MACH_SMDKC100) += mach-smdkc100.o arch/arm/mach-s5pc100/cpu.c +32 −24 Original line number Diff line number Diff line Loading @@ -22,47 +22,53 @@ #include <linux/serial_core.h> #include <linux/platform_device.h> #include <asm/proc-fns.h> #include <asm/mach/arch.h> #include <asm/mach/map.h> #include <asm/mach/irq.h> #include <asm/proc-fns.h> #include <mach/hardware.h> #include <mach/map.h> #include <asm/irq.h> #include <plat/cpu-freq.h> #include <plat/regs-serial.h> #include <plat/regs-power.h> #include <mach/regs-clock.h> #include <plat/cpu.h> #include <plat/devs.h> #include <plat/clock.h> #include <plat/sdhci.h> #include <plat/iic-core.h> #include <plat/sdhci.h> #include <plat/s5pc100.h> /* Initial IO mappings */ static struct map_desc s5pc100_iodesc[] __initdata = { { .virtual = (unsigned long)S5P_VA_SYSTIMER, .pfn = __phys_to_pfn(S5PC100_PA_SYSTIMER), .length = SZ_16K, .type = MT_DEVICE, }, { .virtual = (unsigned long)VA_VIC2, .pfn = __phys_to_pfn(S5PC100_PA_VIC2), .length = SZ_16K, .type = MT_DEVICE, }, { .virtual = (unsigned long)S5PC100_VA_OTHERS, .pfn = __phys_to_pfn(S5PC100_PA_OTHERS), .length = SZ_4K, .type = MT_DEVICE, } }; static void s5pc100_idle(void) { unsigned long tmp; tmp = __raw_readl(S5PC100_PWR_CFG); tmp &= ~S5PC100_PWRCFG_CFG_DEEP_IDLE; tmp &= ~S5PC100_PWRCFG_CFG_WFI_MASK; tmp |= S5PC100_PWRCFG_CFG_WFI_DEEP_IDLE; __raw_writel(tmp, S5PC100_PWR_CFG); tmp = __raw_readl(S5PC100_OTHERS); tmp |= S5PC100_PMU_INT_DISABLE; __raw_writel(tmp, S5PC100_OTHERS); if (!need_resched()) cpu_do_idle(); local_irq_enable(); } /* s5pc100_map_io Loading @@ -86,22 +92,23 @@ void __init s5pc100_map_io(void) void __init s5pc100_init_clocks(int xtal) { printk(KERN_DEBUG "%s: initialising clocks\n", __func__); printk(KERN_DEBUG "%s: initializing clocks\n", __func__); s3c24xx_register_baseclocks(xtal); s5pc1xx_register_clocks(); s5p_register_clocks(xtal); s5pc100_register_clocks(); s5pc100_setup_clocks(); } void __init s5pc100_init_irq(void) { u32 vic_valid[] = {~0, ~0, ~0}; u32 vic[] = {~0, ~0, ~0}; /* VIC0, VIC1, and VIC2 are fully populated. */ s5pc1xx_init_irq(vic_valid, ARRAY_SIZE(vic_valid)); s5p_init_irq(vic, ARRAY_SIZE(vic)); } struct sysdev_class s5pc100_sysclass = { static struct sysdev_class s5pc100_sysclass = { .name = "s5pc100-core", }; Loading @@ -118,9 +125,10 @@ core_initcall(s5pc100_core_init); int __init s5pc100_init(void) { printk(KERN_DEBUG "S5PC100: Initialising architecture\n"); printk(KERN_INFO "S5PC100: Initializing architecture\n"); s5pc1xx_idle = s5pc100_idle; /* set idle function */ pm_idle = s5pc100_idle; return sysdev_register(&s5pc100_sysdev); } Loading
arch/arm/Kconfig +3 −6 Original line number Diff line number Diff line Loading @@ -699,14 +699,14 @@ config ARCH_S5P6442 help Samsung S5P6442 CPU based systems config ARCH_S5PC1XX bool "Samsung S5PC1XX" config ARCH_S5PC100 bool "Samsung S5PC100" select GENERIC_GPIO select HAVE_CLK select CPU_V7 select ARM_L1_CACHE_SHIFT_6 help Samsung S5PC1XX series based systems Samsung S5PC100 series based systems config ARCH_S5PV210 bool "Samsung S5PV210/S5PC110" Loading Loading @@ -890,7 +890,6 @@ source "arch/arm/mach-sa1100/Kconfig" source "arch/arm/plat-samsung/Kconfig" source "arch/arm/plat-s3c24xx/Kconfig" source "arch/arm/plat-s5p/Kconfig" source "arch/arm/plat-s5pc1xx/Kconfig" if ARCH_S3C2410 source "arch/arm/mach-s3c2400/Kconfig" Loading @@ -909,9 +908,7 @@ source "arch/arm/mach-s5p6440/Kconfig" source "arch/arm/mach-s5p6442/Kconfig" if ARCH_S5PC1XX source "arch/arm/mach-s5pc100/Kconfig" endif source "arch/arm/mach-s5pv210/Kconfig" Loading
arch/arm/Makefile +1 −2 Original line number Diff line number Diff line Loading @@ -167,7 +167,7 @@ machine-$(CONFIG_ARCH_S3C24A0) := s3c24a0 machine-$(CONFIG_ARCH_S3C64XX) := s3c64xx machine-$(CONFIG_ARCH_S5P6440) := s5p6440 machine-$(CONFIG_ARCH_S5P6442) := s5p6442 machine-$(CONFIG_ARCH_S5PC1XX) := s5pc100 machine-$(CONFIG_ARCH_S5PC100) := s5pc100 machine-$(CONFIG_ARCH_S5PV210) := s5pv210 machine-$(CONFIG_ARCH_SA1100) := sa1100 machine-$(CONFIG_ARCH_SHARK) := shark Loading @@ -192,7 +192,6 @@ plat-$(CONFIG_PLAT_NOMADIK) := nomadik plat-$(CONFIG_PLAT_ORION) := orion plat-$(CONFIG_PLAT_PXA) := pxa plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx samsung plat-$(CONFIG_PLAT_S5PC1XX) := s5pc1xx samsung plat-$(CONFIG_PLAT_S5P) := s5p samsung ifeq ($(CONFIG_ARCH_EBSA110),y) Loading
arch/arm/mach-s5pc100/Kconfig +17 −8 Original line number Diff line number Diff line Loading @@ -5,10 +5,12 @@ # Configuration options for the S5PC100 CPU if ARCH_S5PC100 config CPU_S5PC100 bool select CPU_S5PC100_INIT select CPU_S5PC100_CLOCK select PLAT_S5P select S5P_EXT_INT help Enable S5PC100 CPU support Loading @@ -17,16 +19,21 @@ config S5PC100_SETUP_FB_24BPP help Common setup code for S5PC1XX with an 24bpp RGB display helper. config S5PC100_SETUP_I2C1 bool help Common setup code for i2c bus 1. config S5PC100_SETUP_SDHCI bool select S5PC1XX_SETUP_SDHCI_GPIO select S5PC100_SETUP_SDHCI_GPIO help Internal helper functions for S5PC100 based SDHCI systems config S5PC100_SETUP_I2C1 config S5PC100_SETUP_SDHCI_GPIO bool help Common setup code for i2c bus 1. Common setup code for SDHCI gpio. config MACH_SMDKC100 bool "SMDKC100" Loading @@ -41,3 +48,5 @@ config MACH_SMDKC100 select S5PC100_SETUP_SDHCI help Machine support for the Samsung SMDKC100 endif
arch/arm/mach-s5pc100/Makefile +4 −2 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ obj- := # Core support for S5PC100 system obj-$(CONFIG_CPU_S5PC100) += cpu.o gpiolib.o obj-$(CONFIG_CPU_S5PC100) += cpu.o init.o clock.o gpiolib.o irq-gpio.o obj-$(CONFIG_CPU_S5PC100) += setup-i2c0.o # Helper and device support Loading @@ -19,6 +19,8 @@ obj-$(CONFIG_CPU_S5PC100) += setup-i2c0.o obj-$(CONFIG_S5PC100_SETUP_FB_24BPP) += setup-fb-24bpp.o obj-$(CONFIG_S5PC100_SETUP_I2C1) += setup-i2c1.o obj-$(CONFIG_S5PC100_SETUP_SDHCI) += setup-sdhci.o obj-$(CONFIG_S5PC100_SETUP_SDHCI_GPIO) += setup-sdhci-gpio.o # machine support obj-$(CONFIG_MACH_SMDKC100) += mach-smdkc100.o
arch/arm/mach-s5pc100/cpu.c +32 −24 Original line number Diff line number Diff line Loading @@ -22,47 +22,53 @@ #include <linux/serial_core.h> #include <linux/platform_device.h> #include <asm/proc-fns.h> #include <asm/mach/arch.h> #include <asm/mach/map.h> #include <asm/mach/irq.h> #include <asm/proc-fns.h> #include <mach/hardware.h> #include <mach/map.h> #include <asm/irq.h> #include <plat/cpu-freq.h> #include <plat/regs-serial.h> #include <plat/regs-power.h> #include <mach/regs-clock.h> #include <plat/cpu.h> #include <plat/devs.h> #include <plat/clock.h> #include <plat/sdhci.h> #include <plat/iic-core.h> #include <plat/sdhci.h> #include <plat/s5pc100.h> /* Initial IO mappings */ static struct map_desc s5pc100_iodesc[] __initdata = { { .virtual = (unsigned long)S5P_VA_SYSTIMER, .pfn = __phys_to_pfn(S5PC100_PA_SYSTIMER), .length = SZ_16K, .type = MT_DEVICE, }, { .virtual = (unsigned long)VA_VIC2, .pfn = __phys_to_pfn(S5PC100_PA_VIC2), .length = SZ_16K, .type = MT_DEVICE, }, { .virtual = (unsigned long)S5PC100_VA_OTHERS, .pfn = __phys_to_pfn(S5PC100_PA_OTHERS), .length = SZ_4K, .type = MT_DEVICE, } }; static void s5pc100_idle(void) { unsigned long tmp; tmp = __raw_readl(S5PC100_PWR_CFG); tmp &= ~S5PC100_PWRCFG_CFG_DEEP_IDLE; tmp &= ~S5PC100_PWRCFG_CFG_WFI_MASK; tmp |= S5PC100_PWRCFG_CFG_WFI_DEEP_IDLE; __raw_writel(tmp, S5PC100_PWR_CFG); tmp = __raw_readl(S5PC100_OTHERS); tmp |= S5PC100_PMU_INT_DISABLE; __raw_writel(tmp, S5PC100_OTHERS); if (!need_resched()) cpu_do_idle(); local_irq_enable(); } /* s5pc100_map_io Loading @@ -86,22 +92,23 @@ void __init s5pc100_map_io(void) void __init s5pc100_init_clocks(int xtal) { printk(KERN_DEBUG "%s: initialising clocks\n", __func__); printk(KERN_DEBUG "%s: initializing clocks\n", __func__); s3c24xx_register_baseclocks(xtal); s5pc1xx_register_clocks(); s5p_register_clocks(xtal); s5pc100_register_clocks(); s5pc100_setup_clocks(); } void __init s5pc100_init_irq(void) { u32 vic_valid[] = {~0, ~0, ~0}; u32 vic[] = {~0, ~0, ~0}; /* VIC0, VIC1, and VIC2 are fully populated. */ s5pc1xx_init_irq(vic_valid, ARRAY_SIZE(vic_valid)); s5p_init_irq(vic, ARRAY_SIZE(vic)); } struct sysdev_class s5pc100_sysclass = { static struct sysdev_class s5pc100_sysclass = { .name = "s5pc100-core", }; Loading @@ -118,9 +125,10 @@ core_initcall(s5pc100_core_init); int __init s5pc100_init(void) { printk(KERN_DEBUG "S5PC100: Initialising architecture\n"); printk(KERN_INFO "S5PC100: Initializing architecture\n"); s5pc1xx_idle = s5pc100_idle; /* set idle function */ pm_idle = s5pc100_idle; return sysdev_register(&s5pc100_sysdev); }