Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into devel-stable

Conflicts:
arch/arm/Kconfig
arch/arm/mach-exynos4/mach-nuri.c

+226 -2940
-2
Documentation/arm/Samsung/Overview.txt
··· 14 14 - S3C24XX: See Documentation/arm/Samsung-S3C24XX/Overview.txt for full list 15 15 - S3C64XX: S3C6400 and S3C6410 16 16 - S5P6440 17 - - S5P6442 18 17 - S5PC100 19 18 - S5PC110 / S5PV210 20 19 ··· 35 36 unifying all the SoCs into one kernel. 36 37 37 38 s5p6440_defconfig - S5P6440 specific default configuration 38 - s5p6442_defconfig - S5P6442 specific default configuration 39 39 s5pc100_defconfig - S5PC100 specific default configuration 40 40 s5pc110_defconfig - S5PC110 specific default configuration 41 41 s5pv210_defconfig - S5PV210 specific default configuration
+2 -14
arch/arm/Kconfig
··· 730 730 Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440, 731 731 SMDK6450. 732 732 733 - config ARCH_S5P6442 734 - bool "Samsung S5P6442" 735 - select CPU_V6 736 - select GENERIC_GPIO 737 - select HAVE_CLK 738 - select ARCH_USES_GETTIMEOFFSET 739 - select HAVE_S3C2410_WATCHDOG if WATCHDOG 740 - help 741 - Samsung S5P6442 CPU based systems 742 - 743 733 config ARCH_S5PC100 744 734 bool "Samsung S5PC100" 745 735 select GENERIC_GPIO ··· 980 990 endif 981 991 982 992 source "arch/arm/mach-s5p64x0/Kconfig" 983 - 984 - source "arch/arm/mach-s5p6442/Kconfig" 985 993 986 994 source "arch/arm/mach-s5pc100/Kconfig" 987 995 ··· 1408 1420 config HZ 1409 1421 int 1410 1422 default 200 if ARCH_EBSA110 || ARCH_S3C2410 || ARCH_S5P64X0 || \ 1411 - ARCH_S5P6442 || ARCH_S5PV210 || ARCH_EXYNOS4 1423 + ARCH_S5PV210 || ARCH_EXYNOS4 1412 1424 default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER 1413 1425 default AT91_TIMER_HZ if ARCH_AT91 1414 1426 default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE ··· 2016 2028 source "kernel/power/Kconfig" 2017 2029 2018 2030 config ARCH_SUSPEND_POSSIBLE 2019 - depends on !ARCH_S5P64X0 && !ARCH_S5P6442 && !ARCH_S5PC100 2031 + depends on !ARCH_S5P64X0 && !ARCH_S5PC100 2020 2032 depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \ 2021 2033 CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE 2022 2034 def_bool y
-1
arch/arm/Makefile
··· 176 176 machine-$(CONFIG_ARCH_S3C24A0) := s3c24a0 177 177 machine-$(CONFIG_ARCH_S3C64XX) := s3c64xx 178 178 machine-$(CONFIG_ARCH_S5P64X0) := s5p64x0 179 - machine-$(CONFIG_ARCH_S5P6442) := s5p6442 180 179 machine-$(CONFIG_ARCH_S5PC100) := s5pc100 181 180 machine-$(CONFIG_ARCH_S5PV210) := s5pv210 182 181 machine-$(CONFIG_ARCH_EXYNOS4) := exynos4
+1 -1
arch/arm/common/Kconfig
··· 7 7 config ARM_VIC_NR 8 8 int 9 9 default 4 if ARCH_S5PV210 10 - default 3 if ARCH_S5P6442 || ARCH_S5PC100 10 + default 3 if ARCH_S5PC100 11 11 default 2 12 12 depends on ARM_VIC 13 13 help
+2
arch/arm/configs/exynos4_defconfig
··· 8 8 CONFIG_S3C_LOWLEVEL_UART_PORT=1 9 9 CONFIG_MACH_SMDKC210=y 10 10 CONFIG_MACH_SMDKV310=y 11 + CONFIG_MACH_ARMLEX4210=y 11 12 CONFIG_MACH_UNIVERSAL_C210=y 13 + CONFIG_MACH_NURI=y 12 14 CONFIG_NO_HZ=y 13 15 CONFIG_HIGH_RES_TIMERS=y 14 16 CONFIG_SMP=y
-65
arch/arm/configs/s5p6442_defconfig
··· 1 - CONFIG_EXPERIMENTAL=y 2 - CONFIG_SYSFS_DEPRECATED_V2=y 3 - CONFIG_BLK_DEV_INITRD=y 4 - CONFIG_KALLSYMS_ALL=y 5 - CONFIG_MODULES=y 6 - CONFIG_MODULE_UNLOAD=y 7 - # CONFIG_BLK_DEV_BSG is not set 8 - CONFIG_ARCH_S5P6442=y 9 - CONFIG_S3C_LOWLEVEL_UART_PORT=1 10 - CONFIG_MACH_SMDK6442=y 11 - CONFIG_CPU_32v6K=y 12 - CONFIG_AEABI=y 13 - CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc" 14 - CONFIG_FPE_NWFPE=y 15 - CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 16 - # CONFIG_PREVENT_FIRMWARE_BUILD is not set 17 - CONFIG_BLK_DEV_LOOP=y 18 - CONFIG_BLK_DEV_RAM=y 19 - CONFIG_BLK_DEV_RAM_SIZE=8192 20 - # CONFIG_MISC_DEVICES is not set 21 - CONFIG_SCSI=y 22 - CONFIG_BLK_DEV_SD=y 23 - CONFIG_CHR_DEV_SG=y 24 - CONFIG_INPUT_EVDEV=y 25 - # CONFIG_INPUT_KEYBOARD is not set 26 - # CONFIG_INPUT_MOUSE is not set 27 - CONFIG_INPUT_TOUCHSCREEN=y 28 - CONFIG_SERIAL_8250=y 29 - CONFIG_SERIAL_8250_NR_UARTS=3 30 - CONFIG_SERIAL_SAMSUNG=y 31 - CONFIG_SERIAL_SAMSUNG_CONSOLE=y 32 - CONFIG_HW_RANDOM=y 33 - # CONFIG_HWMON is not set 34 - # CONFIG_VGA_CONSOLE is not set 35 - # CONFIG_HID_SUPPORT is not set 36 - # CONFIG_USB_SUPPORT is not set 37 - CONFIG_EXT2_FS=y 38 - CONFIG_INOTIFY=y 39 - CONFIG_MSDOS_FS=y 40 - CONFIG_VFAT_FS=y 41 - CONFIG_TMPFS=y 42 - CONFIG_TMPFS_POSIX_ACL=y 43 - CONFIG_CRAMFS=y 44 - CONFIG_ROMFS_FS=y 45 - CONFIG_PARTITION_ADVANCED=y 46 - CONFIG_BSD_DISKLABEL=y 47 - CONFIG_SOLARIS_X86_PARTITION=y 48 - CONFIG_NLS_CODEPAGE_437=y 49 - CONFIG_NLS_ASCII=y 50 - CONFIG_NLS_ISO8859_1=y 51 - CONFIG_MAGIC_SYSRQ=y 52 - CONFIG_DEBUG_KERNEL=y 53 - CONFIG_DEBUG_RT_MUTEXES=y 54 - CONFIG_DEBUG_SPINLOCK=y 55 - CONFIG_DEBUG_MUTEXES=y 56 - CONFIG_DEBUG_SPINLOCK_SLEEP=y 57 - CONFIG_DEBUG_INFO=y 58 - # CONFIG_RCU_CPU_STALL_DETECTOR is not set 59 - CONFIG_SYSCTL_SYSCALL_CHECK=y 60 - # CONFIG_ARM_UNWIND is not set 61 - CONFIG_DEBUG_USER=y 62 - CONFIG_DEBUG_ERRORS=y 63 - CONFIG_DEBUG_LL=y 64 - CONFIG_DEBUG_S3C_UART=1 65 - CONFIG_CRC_CCITT=y
+2
arch/arm/mach-exynos4/Kconfig
··· 169 169 select S3C_DEV_HSMMC2 170 170 select S3C_DEV_HSMMC3 171 171 select S3C_DEV_I2C1 172 + select S3C_DEV_I2C3 172 173 select S3C_DEV_I2C5 173 174 select S5P_DEV_USB_EHCI 174 175 select EXYNOS4_SETUP_I2C1 176 + select EXYNOS4_SETUP_I2C3 175 177 select EXYNOS4_SETUP_I2C5 176 178 select EXYNOS4_SETUP_SDHCI 177 179 select SAMSUNG_DEV_PWM
+1
arch/arm/mach-exynos4/Makefile
··· 16 16 obj-$(CONFIG_CPU_EXYNOS4210) += setup-i2c0.o gpiolib.o irq-eint.o dma.o 17 17 obj-$(CONFIG_PM) += pm.o sleep.o 18 18 obj-$(CONFIG_CPU_FREQ) += cpufreq.o 19 + obj-$(CONFIG_CPU_IDLE) += cpuidle.o 19 20 20 21 obj-$(CONFIG_SMP) += platsmp.o headsmp.o 21 22
+86
arch/arm/mach-exynos4/cpuidle.c
··· 1 + /* linux/arch/arm/mach-exynos4/cpuidle.c 2 + * 3 + * Copyright (c) 2011 Samsung Electronics Co., Ltd. 4 + * http://www.samsung.com 5 + * 6 + * This program is free software; you can redistribute it and/or modify 7 + * it under the terms of the GNU General Public License version 2 as 8 + * published by the Free Software Foundation. 9 + */ 10 + 11 + #include <linux/kernel.h> 12 + #include <linux/init.h> 13 + #include <linux/cpuidle.h> 14 + #include <linux/io.h> 15 + 16 + #include <asm/proc-fns.h> 17 + 18 + static int exynos4_enter_idle(struct cpuidle_device *dev, 19 + struct cpuidle_state *state); 20 + 21 + static struct cpuidle_state exynos4_cpuidle_set[] = { 22 + [0] = { 23 + .enter = exynos4_enter_idle, 24 + .exit_latency = 1, 25 + .target_residency = 100000, 26 + .flags = CPUIDLE_FLAG_TIME_VALID, 27 + .name = "IDLE", 28 + .desc = "ARM clock gating(WFI)", 29 + }, 30 + }; 31 + 32 + static DEFINE_PER_CPU(struct cpuidle_device, exynos4_cpuidle_device); 33 + 34 + static struct cpuidle_driver exynos4_idle_driver = { 35 + .name = "exynos4_idle", 36 + .owner = THIS_MODULE, 37 + }; 38 + 39 + static int exynos4_enter_idle(struct cpuidle_device *dev, 40 + struct cpuidle_state *state) 41 + { 42 + struct timeval before, after; 43 + int idle_time; 44 + 45 + local_irq_disable(); 46 + do_gettimeofday(&before); 47 + 48 + cpu_do_idle(); 49 + 50 + do_gettimeofday(&after); 51 + local_irq_enable(); 52 + idle_time = (after.tv_sec - before.tv_sec) * USEC_PER_SEC + 53 + (after.tv_usec - before.tv_usec); 54 + 55 + return idle_time; 56 + } 57 + 58 + static int __init exynos4_init_cpuidle(void) 59 + { 60 + int i, max_cpuidle_state, cpu_id; 61 + struct cpuidle_device *device; 62 + 63 + cpuidle_register_driver(&exynos4_idle_driver); 64 + 65 + for_each_cpu(cpu_id, cpu_online_mask) { 66 + device = &per_cpu(exynos4_cpuidle_device, cpu_id); 67 + device->cpu = cpu_id; 68 + 69 + device->state_count = (sizeof(exynos4_cpuidle_set) / 70 + sizeof(struct cpuidle_state)); 71 + 72 + max_cpuidle_state = device->state_count; 73 + 74 + for (i = 0; i < max_cpuidle_state; i++) { 75 + memcpy(&device->states[i], &exynos4_cpuidle_set[i], 76 + sizeof(struct cpuidle_state)); 77 + } 78 + 79 + if (cpuidle_register_device(device)) { 80 + printk(KERN_ERR "CPUidle register device failed\n,"); 81 + return -EIO; 82 + } 83 + } 84 + return 0; 85 + } 86 + device_initcall(exynos4_init_cpuidle);
+89
arch/arm/mach-exynos4/mach-nuri.c
··· 12 12 #include <linux/serial_core.h> 13 13 #include <linux/input.h> 14 14 #include <linux/i2c.h> 15 + #include <linux/i2c/atmel_mxt_ts.h> 15 16 #include <linux/gpio_keys.h> 16 17 #include <linux/gpio.h> 17 18 #include <linux/regulator/machine.h> ··· 33 32 #include <plat/sdhci.h> 34 33 #include <plat/ehci.h> 35 34 #include <plat/clock.h> 35 + #include <plat/gpio-cfg.h> 36 + #include <plat/iic.h> 36 37 37 38 #include <mach/map.h> 38 39 ··· 262 259 /* Gyro, To be updated */ 263 260 }; 264 261 262 + /* TSP */ 263 + static u8 mxt_init_vals[] = { 264 + /* MXT_GEN_COMMAND(6) */ 265 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 266 + /* MXT_GEN_POWER(7) */ 267 + 0x20, 0xff, 0x32, 268 + /* MXT_GEN_ACQUIRE(8) */ 269 + 0x0a, 0x00, 0x05, 0x00, 0x00, 0x00, 0x09, 0x23, 270 + /* MXT_TOUCH_MULTI(9) */ 271 + 0x00, 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x00, 272 + 0x00, 0x01, 0x01, 0x0e, 0x0a, 0x0a, 0x0a, 0x0a, 0x00, 0x00, 273 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 274 + 0x00, 275 + /* MXT_TOUCH_KEYARRAY(15) */ 276 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 277 + 0x00, 278 + /* MXT_SPT_GPIOPWM(19) */ 279 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 280 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 281 + /* MXT_PROCI_GRIPFACE(20) */ 282 + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x28, 0x04, 283 + 0x0f, 0x0a, 284 + /* MXT_PROCG_NOISE(22) */ 285 + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 286 + 0x00, 0x05, 0x0f, 0x19, 0x23, 0x2d, 0x03, 287 + /* MXT_TOUCH_PROXIMITY(23) */ 288 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 289 + 0x00, 0x00, 0x00, 0x00, 0x00, 290 + /* MXT_PROCI_ONETOUCH(24) */ 291 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 292 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 293 + /* MXT_SPT_SELFTEST(25) */ 294 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 295 + 0x00, 0x00, 0x00, 0x00, 296 + /* MXT_PROCI_TWOTOUCH(27) */ 297 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 298 + /* MXT_SPT_CTECONFIG(28) */ 299 + 0x00, 0x00, 0x02, 0x08, 0x10, 0x00, 300 + }; 301 + 302 + static struct mxt_platform_data mxt_platform_data = { 303 + .config = mxt_init_vals, 304 + .config_length = ARRAY_SIZE(mxt_init_vals), 305 + 306 + .x_line = 18, 307 + .y_line = 11, 308 + .x_size = 1024, 309 + .y_size = 600, 310 + .blen = 0x1, 311 + .threshold = 0x28, 312 + .voltage = 2800000, /* 2.8V */ 313 + .orient = MXT_DIAGONAL_COUNTER, 314 + .irqflags = IRQF_TRIGGER_FALLING, 315 + }; 316 + 317 + static struct s3c2410_platform_i2c i2c3_data __initdata = { 318 + .flags = 0, 319 + .bus_num = 3, 320 + .slave_addr = 0x10, 321 + .frequency = 400 * 1000, 322 + .sda_delay = 100, 323 + }; 324 + 325 + static struct i2c_board_info i2c3_devs[] __initdata = { 326 + { 327 + I2C_BOARD_INFO("atmel_mxt_ts", 0x4a), 328 + .platform_data = &mxt_platform_data, 329 + .irq = IRQ_EINT(4), 330 + }, 331 + }; 332 + 333 + static void __init nuri_tsp_init(void) 334 + { 335 + int gpio; 336 + 337 + /* TOUCH_INT: XEINT_4 */ 338 + gpio = EXYNOS4_GPX0(4); 339 + gpio_request(gpio, "TOUCH_INT"); 340 + s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(0xf)); 341 + s3c_gpio_setpull(gpio, S3C_GPIO_PULL_UP); 342 + } 343 + 265 344 /* GPIO I2C 5 (PMIC) */ 266 345 static struct i2c_board_info i2c5_devs[] __initdata = { 267 346 /* max8997, To be updated */ ··· 368 283 &s3c_device_wdt, 369 284 &s3c_device_timer[0], 370 285 &s5p_device_ehci, 286 + &s3c_device_i2c3, 371 287 372 288 /* NURI Devices */ 373 289 &nuri_gpio_keys, ··· 386 300 static void __init nuri_machine_init(void) 387 301 { 388 302 nuri_sdhci_init(); 303 + nuri_tsp_init(); 389 304 390 305 i2c_register_board_info(1, i2c1_devs, ARRAY_SIZE(i2c1_devs)); 306 + s3c_i2c3_set_platdata(&i2c3_data); 307 + i2c_register_board_info(3, i2c3_devs, ARRAY_SIZE(i2c3_devs)); 391 308 i2c_register_board_info(5, i2c5_devs, ARRAY_SIZE(i2c5_devs)); 392 309 393 310 nuri_ehci_init();
+7 -13
arch/arm/mach-s3c64xx/dev-spi.c
··· 16 16 17 17 #include <mach/dma.h> 18 18 #include <mach/map.h> 19 - #include <mach/gpio-bank-c.h> 20 19 #include <mach/spi-clocks.h> 21 20 #include <mach/irqs.h> 22 21 ··· 39 40 */ 40 41 static int s3c64xx_spi_cfg_gpio(struct platform_device *pdev) 41 42 { 43 + unsigned int base; 44 + 42 45 switch (pdev->id) { 43 46 case 0: 44 - s3c_gpio_cfgpin(S3C64XX_GPC(0), S3C64XX_GPC0_SPI_MISO0); 45 - s3c_gpio_cfgpin(S3C64XX_GPC(1), S3C64XX_GPC1_SPI_CLKO); 46 - s3c_gpio_cfgpin(S3C64XX_GPC(2), S3C64XX_GPC2_SPI_MOSIO); 47 - s3c_gpio_setpull(S3C64XX_GPC(0), S3C_GPIO_PULL_UP); 48 - s3c_gpio_setpull(S3C64XX_GPC(1), S3C_GPIO_PULL_UP); 49 - s3c_gpio_setpull(S3C64XX_GPC(2), S3C_GPIO_PULL_UP); 47 + base = S3C64XX_GPC(0); 50 48 break; 51 49 52 50 case 1: 53 - s3c_gpio_cfgpin(S3C64XX_GPC(4), S3C64XX_GPC4_SPI_MISO1); 54 - s3c_gpio_cfgpin(S3C64XX_GPC(5), S3C64XX_GPC5_SPI_CLK1); 55 - s3c_gpio_cfgpin(S3C64XX_GPC(6), S3C64XX_GPC6_SPI_MOSI1); 56 - s3c_gpio_setpull(S3C64XX_GPC(4), S3C_GPIO_PULL_UP); 57 - s3c_gpio_setpull(S3C64XX_GPC(5), S3C_GPIO_PULL_UP); 58 - s3c_gpio_setpull(S3C64XX_GPC(6), S3C_GPIO_PULL_UP); 51 + base = S3C64XX_GPC(4); 59 52 break; 60 53 61 54 default: 62 55 dev_err(&pdev->dev, "Invalid SPI Controller number!"); 63 56 return -EINVAL; 64 57 } 58 + 59 + s3c_gpio_cfgall_range(base, 3, 60 + S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP); 65 61 66 62 return 0; 67 63 }
-48
arch/arm/mach-s3c64xx/include/mach/gpio-bank-a.h
··· 1 - /* linux/arch/arm/mach-s3c64xx/include/mach/gpio-bank-a.h 2 - * 3 - * Copyright 2008 Openmoko, Inc. 4 - * Copyright 2008 Simtec Electronics 5 - * Ben Dooks <ben@simtec.co.uk> 6 - * http://armlinux.simtec.co.uk/ 7 - * 8 - * GPIO Bank A register and configuration definitions 9 - * 10 - * This program is free software; you can redistribute it and/or modify 11 - * it under the terms of the GNU General Public License version 2 as 12 - * published by the Free Software Foundation. 13 - */ 14 - 15 - #define S3C64XX_GPACON (S3C64XX_GPA_BASE + 0x00) 16 - #define S3C64XX_GPADAT (S3C64XX_GPA_BASE + 0x04) 17 - #define S3C64XX_GPAPUD (S3C64XX_GPA_BASE + 0x08) 18 - #define S3C64XX_GPACONSLP (S3C64XX_GPA_BASE + 0x0c) 19 - #define S3C64XX_GPAPUDSLP (S3C64XX_GPA_BASE + 0x10) 20 - 21 - #define S3C64XX_GPA_CONMASK(__gpio) (0xf << ((__gpio) * 4)) 22 - #define S3C64XX_GPA_INPUT(__gpio) (0x0 << ((__gpio) * 4)) 23 - #define S3C64XX_GPA_OUTPUT(__gpio) (0x1 << ((__gpio) * 4)) 24 - 25 - #define S3C64XX_GPA0_UART_RXD0 (0x02 << 0) 26 - #define S3C64XX_GPA0_EINT_G1_0 (0x07 << 0) 27 - 28 - #define S3C64XX_GPA1_UART_TXD0 (0x02 << 4) 29 - #define S3C64XX_GPA1_EINT_G1_1 (0x07 << 4) 30 - 31 - #define S3C64XX_GPA2_UART_nCTS0 (0x02 << 8) 32 - #define S3C64XX_GPA2_EINT_G1_2 (0x07 << 8) 33 - 34 - #define S3C64XX_GPA3_UART_nRTS0 (0x02 << 12) 35 - #define S3C64XX_GPA3_EINT_G1_3 (0x07 << 12) 36 - 37 - #define S3C64XX_GPA4_UART_RXD1 (0x02 << 16) 38 - #define S3C64XX_GPA4_EINT_G1_4 (0x07 << 16) 39 - 40 - #define S3C64XX_GPA5_UART_TXD1 (0x02 << 20) 41 - #define S3C64XX_GPA5_EINT_G1_5 (0x07 << 20) 42 - 43 - #define S3C64XX_GPA6_UART_nCTS1 (0x02 << 24) 44 - #define S3C64XX_GPA6_EINT_G1_6 (0x07 << 24) 45 - 46 - #define S3C64XX_GPA7_UART_nRTS1 (0x02 << 28) 47 - #define S3C64XX_GPA7_EINT_G1_7 (0x07 << 28) 48 -
-60
arch/arm/mach-s3c64xx/include/mach/gpio-bank-b.h
··· 1 - /* linux/arch/arm/mach-s3c64xx/include/mach/gpio-bank-b.h 2 - * 3 - * Copyright 2008 Openmoko, Inc. 4 - * Copyright 2008 Simtec Electronics 5 - * Ben Dooks <ben@simtec.co.uk> 6 - * http://armlinux.simtec.co.uk/ 7 - * 8 - * GPIO Bank B register and configuration definitions 9 - * 10 - * This program is free software; you can redistribute it and/or modify 11 - * it under the terms of the GNU General Public License version 2 as 12 - * published by the Free Software Foundation. 13 - */ 14 - 15 - #define S3C64XX_GPBCON (S3C64XX_GPB_BASE + 0x00) 16 - #define S3C64XX_GPBDAT (S3C64XX_GPB_BASE + 0x04) 17 - #define S3C64XX_GPBPUD (S3C64XX_GPB_BASE + 0x08) 18 - #define S3C64XX_GPBCONSLP (S3C64XX_GPB_BASE + 0x0c) 19 - #define S3C64XX_GPBPUDSLP (S3C64XX_GPB_BASE + 0x10) 20 - 21 - #define S3C64XX_GPB_CONMASK(__gpio) (0xf << ((__gpio) * 4)) 22 - #define S3C64XX_GPB_INPUT(__gpio) (0x0 << ((__gpio) * 4)) 23 - #define S3C64XX_GPB_OUTPUT(__gpio) (0x1 << ((__gpio) * 4)) 24 - 25 - #define S3C64XX_GPB0_UART_RXD2 (0x02 << 0) 26 - #define S3C64XX_GPB0_EXTDMA_REQ (0x03 << 0) 27 - #define S3C64XX_GPB0_IrDA_RXD (0x04 << 0) 28 - #define S3C64XX_GPB0_ADDR_CF0 (0x05 << 0) 29 - #define S3C64XX_GPB0_EINT_G1_8 (0x07 << 0) 30 - 31 - #define S3C64XX_GPB1_UART_TXD2 (0x02 << 4) 32 - #define S3C64XX_GPB1_EXTDMA_ACK (0x03 << 4) 33 - #define S3C64XX_GPB1_IrDA_TXD (0x04 << 4) 34 - #define S3C64XX_GPB1_ADDR_CF1 (0x05 << 4) 35 - #define S3C64XX_GPB1_EINT_G1_9 (0x07 << 4) 36 - 37 - #define S3C64XX_GPB2_UART_RXD3 (0x02 << 8) 38 - #define S3C64XX_GPB2_IrDA_RXD (0x03 << 8) 39 - #define S3C64XX_GPB2_EXTDMA_REQ (0x04 << 8) 40 - #define S3C64XX_GPB2_ADDR_CF2 (0x05 << 8) 41 - #define S3C64XX_GPB2_I2C_SCL1 (0x06 << 8) 42 - #define S3C64XX_GPB2_EINT_G1_10 (0x07 << 8) 43 - 44 - #define S3C64XX_GPB3_UART_TXD3 (0x02 << 12) 45 - #define S3C64XX_GPB3_IrDA_TXD (0x03 << 12) 46 - #define S3C64XX_GPB3_EXTDMA_ACK (0x04 << 12) 47 - #define S3C64XX_GPB3_I2C_SDA1 (0x06 << 12) 48 - #define S3C64XX_GPB3_EINT_G1_11 (0x07 << 12) 49 - 50 - #define S3C64XX_GPB4_IrDA_SDBW (0x02 << 16) 51 - #define S3C64XX_GPB4_CAM_FIELD (0x03 << 16) 52 - #define S3C64XX_GPB4_CF_DATA_DIR (0x04 << 16) 53 - #define S3C64XX_GPB4_EINT_G1_12 (0x07 << 16) 54 - 55 - #define S3C64XX_GPB5_I2C_SCL0 (0x02 << 20) 56 - #define S3C64XX_GPB5_EINT_G1_13 (0x07 << 20) 57 - 58 - #define S3C64XX_GPB6_I2C_SDA0 (0x02 << 24) 59 - #define S3C64XX_GPB6_EINT_G1_14 (0x07 << 24) 60 -
-53
arch/arm/mach-s3c64xx/include/mach/gpio-bank-c.h
··· 1 - /* linux/arch/arm/mach-s3c64xx/include/mach/gpio-bank-c.h 2 - * 3 - * Copyright 2008 Openmoko, Inc. 4 - * Copyright 2008 Simtec Electronics 5 - * Ben Dooks <ben@simtec.co.uk> 6 - * http://armlinux.simtec.co.uk/ 7 - * 8 - * GPIO Bank C register and configuration definitions 9 - * 10 - * This program is free software; you can redistribute it and/or modify 11 - * it under the terms of the GNU General Public License version 2 as 12 - * published by the Free Software Foundation. 13 - */ 14 - 15 - #define S3C64XX_GPCCON (S3C64XX_GPC_BASE + 0x00) 16 - #define S3C64XX_GPCDAT (S3C64XX_GPC_BASE + 0x04) 17 - #define S3C64XX_GPCPUD (S3C64XX_GPC_BASE + 0x08) 18 - #define S3C64XX_GPCCONSLP (S3C64XX_GPC_BASE + 0x0c) 19 - #define S3C64XX_GPCPUDSLP (S3C64XX_GPC_BASE + 0x10) 20 - 21 - #define S3C64XX_GPC_CONMASK(__gpio) (0xf << ((__gpio) * 4)) 22 - #define S3C64XX_GPC_INPUT(__gpio) (0x0 << ((__gpio) * 4)) 23 - #define S3C64XX_GPC_OUTPUT(__gpio) (0x1 << ((__gpio) * 4)) 24 - 25 - #define S3C64XX_GPC0_SPI_MISO0 (0x02 << 0) 26 - #define S3C64XX_GPC0_EINT_G2_0 (0x07 << 0) 27 - 28 - #define S3C64XX_GPC1_SPI_CLKO (0x02 << 4) 29 - #define S3C64XX_GPC1_EINT_G2_1 (0x07 << 4) 30 - 31 - #define S3C64XX_GPC2_SPI_MOSIO (0x02 << 8) 32 - #define S3C64XX_GPC2_EINT_G2_2 (0x07 << 8) 33 - 34 - #define S3C64XX_GPC3_SPI_nCSO (0x02 << 12) 35 - #define S3C64XX_GPC3_EINT_G2_3 (0x07 << 12) 36 - 37 - #define S3C64XX_GPC4_SPI_MISO1 (0x02 << 16) 38 - #define S3C64XX_GPC4_MMC2_CMD (0x03 << 16) 39 - #define S3C64XX_GPC4_I2S_V40_DO0 (0x05 << 16) 40 - #define S3C64XX_GPC4_EINT_G2_4 (0x07 << 16) 41 - 42 - #define S3C64XX_GPC5_SPI_CLK1 (0x02 << 20) 43 - #define S3C64XX_GPC5_MMC2_CLK (0x03 << 20) 44 - #define S3C64XX_GPC5_I2S_V40_DO1 (0x05 << 20) 45 - #define S3C64XX_GPC5_EINT_G2_5 (0x07 << 20) 46 - 47 - #define S3C64XX_GPC6_SPI_MOSI1 (0x02 << 24) 48 - #define S3C64XX_GPC6_EINT_G2_6 (0x07 << 24) 49 - 50 - #define S3C64XX_GPC7_SPI_nCS1 (0x02 << 28) 51 - #define S3C64XX_GPC7_I2S_V40_DO2 (0x05 << 28) 52 - #define S3C64XX_GPC7_EINT_G2_7 (0x07 << 28) 53 -
-49
arch/arm/mach-s3c64xx/include/mach/gpio-bank-d.h
··· 1 - /* linux/arch/arm/mach-s3c64xx/include/mach/gpio-bank-d.h 2 - * 3 - * Copyright 2008 Openmoko, Inc. 4 - * Copyright 2008 Simtec Electronics 5 - * Ben Dooks <ben@simtec.co.uk> 6 - * http://armlinux.simtec.co.uk/ 7 - * 8 - * GPIO Bank D register and configuration definitions 9 - * 10 - * This program is free software; you can redistribute it and/or modify 11 - * it under the terms of the GNU General Public License version 2 as 12 - * published by the Free Software Foundation. 13 - */ 14 - 15 - #define S3C64XX_GPDCON (S3C64XX_GPD_BASE + 0x00) 16 - #define S3C64XX_GPDDAT (S3C64XX_GPD_BASE + 0x04) 17 - #define S3C64XX_GPDPUD (S3C64XX_GPD_BASE + 0x08) 18 - #define S3C64XX_GPDCONSLP (S3C64XX_GPD_BASE + 0x0c) 19 - #define S3C64XX_GPDPUDSLP (S3C64XX_GPD_BASE + 0x10) 20 - 21 - #define S3C64XX_GPD_CONMASK(__gpio) (0xf << ((__gpio) * 4)) 22 - #define S3C64XX_GPD_INPUT(__gpio) (0x0 << ((__gpio) * 4)) 23 - #define S3C64XX_GPD_OUTPUT(__gpio) (0x1 << ((__gpio) * 4)) 24 - 25 - #define S3C64XX_GPD0_PCM0_SCLK (0x02 << 0) 26 - #define S3C64XX_GPD0_I2S0_CLK (0x03 << 0) 27 - #define S3C64XX_GPD0_AC97_BITCLK (0x04 << 0) 28 - #define S3C64XX_GPD0_EINT_G3_0 (0x07 << 0) 29 - 30 - #define S3C64XX_GPD1_PCM0_EXTCLK (0x02 << 4) 31 - #define S3C64XX_GPD1_I2S0_CDCLK (0x03 << 4) 32 - #define S3C64XX_GPD1_AC97_nRESET (0x04 << 4) 33 - #define S3C64XX_GPD1_EINT_G3_1 (0x07 << 4) 34 - 35 - #define S3C64XX_GPD2_PCM0_FSYNC (0x02 << 8) 36 - #define S3C64XX_GPD2_I2S0_LRCLK (0x03 << 8) 37 - #define S3C64XX_GPD2_AC97_SYNC (0x04 << 8) 38 - #define S3C64XX_GPD2_EINT_G3_2 (0x07 << 8) 39 - 40 - #define S3C64XX_GPD3_PCM0_SIN (0x02 << 12) 41 - #define S3C64XX_GPD3_I2S0_DI (0x03 << 12) 42 - #define S3C64XX_GPD3_AC97_SDI (0x04 << 12) 43 - #define S3C64XX_GPD3_EINT_G3_3 (0x07 << 12) 44 - 45 - #define S3C64XX_GPD4_PCM0_SOUT (0x02 << 16) 46 - #define S3C64XX_GPD4_I2S0_D0 (0x03 << 16) 47 - #define S3C64XX_GPD4_AC97_SDO (0x04 << 16) 48 - #define S3C64XX_GPD4_EINT_G3_4 (0x07 << 16) 49 -
-44
arch/arm/mach-s3c64xx/include/mach/gpio-bank-e.h
··· 1 - /* linux/arch/arm/mach-s3c64xx/include/mach/gpio-bank-e.h 2 - * 3 - * Copyright 2008 Openmoko, Inc. 4 - * Copyright 2008 Simtec Electronics 5 - * Ben Dooks <ben@simtec.co.uk> 6 - * http://armlinux.simtec.co.uk/ 7 - * 8 - * GPIO Bank E register and configuration definitions 9 - * 10 - * This program is free software; you can redistribute it and/or modify 11 - * it under the terms of the GNU General Public License version 2 as 12 - * published by the Free Software Foundation. 13 - */ 14 - 15 - #define S3C64XX_GPECON (S3C64XX_GPE_BASE + 0x00) 16 - #define S3C64XX_GPEDAT (S3C64XX_GPE_BASE + 0x04) 17 - #define S3C64XX_GPEPUD (S3C64XX_GPE_BASE + 0x08) 18 - #define S3C64XX_GPECONSLP (S3C64XX_GPE_BASE + 0x0c) 19 - #define S3C64XX_GPEPUDSLP (S3C64XX_GPE_BASE + 0x10) 20 - 21 - #define S3C64XX_GPE_CONMASK(__gpio) (0xf << ((__gpio) * 4)) 22 - #define S3C64XX_GPE_INPUT(__gpio) (0x0 << ((__gpio) * 4)) 23 - #define S3C64XX_GPE_OUTPUT(__gpio) (0x1 << ((__gpio) * 4)) 24 - 25 - #define S3C64XX_GPE0_PCM1_SCLK (0x02 << 0) 26 - #define S3C64XX_GPE0_I2S1_CLK (0x03 << 0) 27 - #define S3C64XX_GPE0_AC97_BITCLK (0x04 << 0) 28 - 29 - #define S3C64XX_GPE1_PCM1_EXTCLK (0x02 << 4) 30 - #define S3C64XX_GPE1_I2S1_CDCLK (0x03 << 4) 31 - #define S3C64XX_GPE1_AC97_nRESET (0x04 << 4) 32 - 33 - #define S3C64XX_GPE2_PCM1_FSYNC (0x02 << 8) 34 - #define S3C64XX_GPE2_I2S1_LRCLK (0x03 << 8) 35 - #define S3C64XX_GPE2_AC97_SYNC (0x04 << 8) 36 - 37 - #define S3C64XX_GPE3_PCM1_SIN (0x02 << 12) 38 - #define S3C64XX_GPE3_I2S1_DI (0x03 << 12) 39 - #define S3C64XX_GPE3_AC97_SDI (0x04 << 12) 40 - 41 - #define S3C64XX_GPE4_PCM1_SOUT (0x02 << 16) 42 - #define S3C64XX_GPE4_I2S1_D0 (0x03 << 16) 43 - #define S3C64XX_GPE4_AC97_SDO (0x04 << 16) 44 -
-71
arch/arm/mach-s3c64xx/include/mach/gpio-bank-f.h
··· 1 - /* linux/arch/arm/mach-s3c64xx/include/mach/gpio-bank-f.h 2 - * 3 - * Copyright 2008 Openmoko, Inc. 4 - * Copyright 2008 Simtec Electronics 5 - * Ben Dooks <ben@simtec.co.uk> 6 - * http://armlinux.simtec.co.uk/ 7 - * 8 - * GPIO Bank F register and configuration definitions 9 - * 10 - * This program is free software; you can redistribute it and/or modify 11 - * it under the terms of the GNU General Public License version 2 as 12 - * published by the Free Software Foundation. 13 - */ 14 - 15 - #define S3C64XX_GPFCON (S3C64XX_GPF_BASE + 0x00) 16 - #define S3C64XX_GPFDAT (S3C64XX_GPF_BASE + 0x04) 17 - #define S3C64XX_GPFPUD (S3C64XX_GPF_BASE + 0x08) 18 - #define S3C64XX_GPFCONSLP (S3C64XX_GPF_BASE + 0x0c) 19 - #define S3C64XX_GPFPUDSLP (S3C64XX_GPF_BASE + 0x10) 20 - 21 - #define S3C64XX_GPF_CONMASK(__gpio) (0x3 << ((__gpio) * 2)) 22 - #define S3C64XX_GPF_INPUT(__gpio) (0x0 << ((__gpio) * 2)) 23 - #define S3C64XX_GPF_OUTPUT(__gpio) (0x1 << ((__gpio) * 2)) 24 - 25 - #define S3C64XX_GPF0_CAMIF_CLK (0x02 << 0) 26 - #define S3C64XX_GPF0_EINT_G4_0 (0x03 << 0) 27 - 28 - #define S3C64XX_GPF1_CAMIF_HREF (0x02 << 2) 29 - #define S3C64XX_GPF1_EINT_G4_1 (0x03 << 2) 30 - 31 - #define S3C64XX_GPF2_CAMIF_PCLK (0x02 << 4) 32 - #define S3C64XX_GPF2_EINT_G4_2 (0x03 << 4) 33 - 34 - #define S3C64XX_GPF3_CAMIF_nRST (0x02 << 6) 35 - #define S3C64XX_GPF3_EINT_G4_3 (0x03 << 6) 36 - 37 - #define S3C64XX_GPF4_CAMIF_VSYNC (0x02 << 8) 38 - #define S3C64XX_GPF4_EINT_G4_4 (0x03 << 8) 39 - 40 - #define S3C64XX_GPF5_CAMIF_YDATA0 (0x02 << 10) 41 - #define S3C64XX_GPF5_EINT_G4_5 (0x03 << 10) 42 - 43 - #define S3C64XX_GPF6_CAMIF_YDATA1 (0x02 << 12) 44 - #define S3C64XX_GPF6_EINT_G4_6 (0x03 << 12) 45 - 46 - #define S3C64XX_GPF7_CAMIF_YDATA2 (0x02 << 14) 47 - #define S3C64XX_GPF7_EINT_G4_7 (0x03 << 14) 48 - 49 - #define S3C64XX_GPF8_CAMIF_YDATA3 (0x02 << 16) 50 - #define S3C64XX_GPF8_EINT_G4_8 (0x03 << 16) 51 - 52 - #define S3C64XX_GPF9_CAMIF_YDATA4 (0x02 << 18) 53 - #define S3C64XX_GPF9_EINT_G4_9 (0x03 << 18) 54 - 55 - #define S3C64XX_GPF10_CAMIF_YDATA5 (0x02 << 20) 56 - #define S3C64XX_GPF10_EINT_G4_10 (0x03 << 20) 57 - 58 - #define S3C64XX_GPF11_CAMIF_YDATA6 (0x02 << 22) 59 - #define S3C64XX_GPF11_EINT_G4_11 (0x03 << 22) 60 - 61 - #define S3C64XX_GPF12_CAMIF_YDATA7 (0x02 << 24) 62 - #define S3C64XX_GPF12_EINT_G4_12 (0x03 << 24) 63 - 64 - #define S3C64XX_GPF13_PWM_ECLK (0x02 << 26) 65 - #define S3C64XX_GPF13_EINT_G4_13 (0x03 << 26) 66 - 67 - #define S3C64XX_GPF14_PWM_TOUT0 (0x02 << 28) 68 - #define S3C64XX_GPF14_CLKOUT0 (0x03 << 28) 69 - 70 - #define S3C64XX_GPF15_PWM_TOUT1 (0x02 << 30) 71 -
-42
arch/arm/mach-s3c64xx/include/mach/gpio-bank-g.h
··· 1 - /* linux/arch/arm/mach-s3c64xx/include/mach/gpio-bank-g.h 2 - * 3 - * Copyright 2008 Openmoko, Inc. 4 - * Copyright 2008 Simtec Electronics 5 - * Ben Dooks <ben@simtec.co.uk> 6 - * http://armlinux.simtec.co.uk/ 7 - * 8 - * GPIO Bank G register and configuration definitions 9 - * 10 - * This program is free software; you can redistribute it and/or modify 11 - * it under the terms of the GNU General Public License version 2 as 12 - * published by the Free Software Foundation. 13 - */ 14 - 15 - #define S3C64XX_GPGCON (S3C64XX_GPG_BASE + 0x00) 16 - #define S3C64XX_GPGDAT (S3C64XX_GPG_BASE + 0x04) 17 - #define S3C64XX_GPGPUD (S3C64XX_GPG_BASE + 0x08) 18 - #define S3C64XX_GPGCONSLP (S3C64XX_GPG_BASE + 0x0c) 19 - #define S3C64XX_GPGPUDSLP (S3C64XX_GPG_BASE + 0x10) 20 - 21 - #define S3C64XX_GPG_CONMASK(__gpio) (0xf << ((__gpio) * 4)) 22 - #define S3C64XX_GPG_INPUT(__gpio) (0x0 << ((__gpio) * 4)) 23 - #define S3C64XX_GPG_OUTPUT(__gpio) (0x1 << ((__gpio) * 4)) 24 - 25 - #define S3C64XX_GPG0_MMC0_CLK (0x02 << 0) 26 - #define S3C64XX_GPG0_EINT_G5_0 (0x07 << 0) 27 - 28 - #define S3C64XX_GPG1_MMC0_CMD (0x02 << 4) 29 - #define S3C64XX_GPG1_EINT_G5_1 (0x07 << 4) 30 - 31 - #define S3C64XX_GPG2_MMC0_DATA0 (0x02 << 8) 32 - #define S3C64XX_GPG2_EINT_G5_2 (0x07 << 8) 33 - 34 - #define S3C64XX_GPG3_MMC0_DATA1 (0x02 << 12) 35 - #define S3C64XX_GPG3_EINT_G5_3 (0x07 << 12) 36 - 37 - #define S3C64XX_GPG4_MMC0_DATA2 (0x02 << 16) 38 - #define S3C64XX_GPG4_EINT_G5_4 (0x07 << 16) 39 - 40 - #define S3C64XX_GPG5_MMC0_DATA3 (0x02 << 20) 41 - #define S3C64XX_GPG5_EINT_G5_5 (0x07 << 20) 42 -
-74
arch/arm/mach-s3c64xx/include/mach/gpio-bank-h.h
··· 1 - /* linux/arch/arm/mach-s3c64xx/include/mach/gpio-bank-h.h 2 - * 3 - * Copyright 2008 Openmoko, Inc. 4 - * Copyright 2008 Simtec Electronics 5 - * Ben Dooks <ben@simtec.co.uk> 6 - * http://armlinux.simtec.co.uk/ 7 - * 8 - * GPIO Bank H register and configuration definitions 9 - * 10 - * This program is free software; you can redistribute it and/or modify 11 - * it under the terms of the GNU General Public License version 2 as 12 - * published by the Free Software Foundation. 13 - */ 14 - 15 - #define S3C64XX_GPHCON0 (S3C64XX_GPH_BASE + 0x00) 16 - #define S3C64XX_GPHCON1 (S3C64XX_GPH_BASE + 0x04) 17 - #define S3C64XX_GPHDAT (S3C64XX_GPH_BASE + 0x08) 18 - #define S3C64XX_GPHPUD (S3C64XX_GPH_BASE + 0x0c) 19 - #define S3C64XX_GPHCONSLP (S3C64XX_GPH_BASE + 0x10) 20 - #define S3C64XX_GPHPUDSLP (S3C64XX_GPH_BASE + 0x14) 21 - 22 - #define S3C64XX_GPH_CONMASK(__gpio) (0xf << ((__gpio) * 4)) 23 - #define S3C64XX_GPH_INPUT(__gpio) (0x0 << ((__gpio) * 4)) 24 - #define S3C64XX_GPH_OUTPUT(__gpio) (0x1 << ((__gpio) * 4)) 25 - 26 - #define S3C64XX_GPH0_MMC1_CLK (0x02 << 0) 27 - #define S3C64XX_GPH0_KP_COL0 (0x04 << 0) 28 - #define S3C64XX_GPH0_EINT_G6_0 (0x07 << 0) 29 - 30 - #define S3C64XX_GPH1_MMC1_CMD (0x02 << 4) 31 - #define S3C64XX_GPH1_KP_COL1 (0x04 << 4) 32 - #define S3C64XX_GPH1_EINT_G6_1 (0x07 << 4) 33 - 34 - #define S3C64XX_GPH2_MMC1_DATA0 (0x02 << 8) 35 - #define S3C64XX_GPH2_KP_COL2 (0x04 << 8) 36 - #define S3C64XX_GPH2_EINT_G6_2 (0x07 << 8) 37 - 38 - #define S3C64XX_GPH3_MMC1_DATA1 (0x02 << 12) 39 - #define S3C64XX_GPH3_KP_COL3 (0x04 << 12) 40 - #define S3C64XX_GPH3_EINT_G6_3 (0x07 << 12) 41 - 42 - #define S3C64XX_GPH4_MMC1_DATA2 (0x02 << 16) 43 - #define S3C64XX_GPH4_KP_COL4 (0x04 << 16) 44 - #define S3C64XX_GPH4_EINT_G6_4 (0x07 << 16) 45 - 46 - #define S3C64XX_GPH5_MMC1_DATA3 (0x02 << 20) 47 - #define S3C64XX_GPH5_KP_COL5 (0x04 << 20) 48 - #define S3C64XX_GPH5_EINT_G6_5 (0x07 << 20) 49 - 50 - #define S3C64XX_GPH6_MMC1_DATA4 (0x02 << 24) 51 - #define S3C64XX_GPH6_MMC2_DATA0 (0x03 << 24) 52 - #define S3C64XX_GPH6_KP_COL6 (0x04 << 24) 53 - #define S3C64XX_GPH6_I2S_V40_BCLK (0x05 << 24) 54 - #define S3C64XX_GPH6_ADDR_CF0 (0x06 << 24) 55 - #define S3C64XX_GPH6_EINT_G6_6 (0x07 << 24) 56 - 57 - #define S3C64XX_GPH7_MMC1_DATA5 (0x02 << 28) 58 - #define S3C64XX_GPH7_MMC2_DATA1 (0x03 << 28) 59 - #define S3C64XX_GPH7_KP_COL7 (0x04 << 28) 60 - #define S3C64XX_GPH7_I2S_V40_CDCLK (0x05 << 28) 61 - #define S3C64XX_GPH7_ADDR_CF1 (0x06 << 28) 62 - #define S3C64XX_GPH7_EINT_G6_7 (0x07 << 28) 63 - 64 - #define S3C64XX_GPH8_MMC1_DATA6 (0x02 << 0) 65 - #define S3C64XX_GPH8_MMC2_DATA2 (0x03 << 0) 66 - #define S3C64XX_GPH8_I2S_V40_LRCLK (0x05 << 0) 67 - #define S3C64XX_GPH8_ADDR_CF2 (0x06 << 0) 68 - #define S3C64XX_GPH8_EINT_G6_8 (0x07 << 0) 69 - 70 - #define S3C64XX_GPH9_OUTPUT (0x01 << 4) 71 - #define S3C64XX_GPH9_MMC1_DATA7 (0x02 << 4) 72 - #define S3C64XX_GPH9_MMC2_DATA3 (0x03 << 4) 73 - #define S3C64XX_GPH9_I2S_V40_DI (0x05 << 4) 74 - #define S3C64XX_GPH9_EINT_G6_9 (0x07 << 4)
-40
arch/arm/mach-s3c64xx/include/mach/gpio-bank-i.h
··· 1 - /* linux/arch/arm/mach-s3c64xx/include/mach/gpio-bank-i.h 2 - * 3 - * Copyright 2008 Openmoko, Inc. 4 - * Copyright 2008 Simtec Electronics 5 - * Ben Dooks <ben@simtec.co.uk> 6 - * http://armlinux.simtec.co.uk/ 7 - * 8 - * GPIO Bank I register and configuration definitions 9 - * 10 - * This program is free software; you can redistribute it and/or modify 11 - * it under the terms of the GNU General Public License version 2 as 12 - * published by the Free Software Foundation. 13 - */ 14 - 15 - #define S3C64XX_GPICON (S3C64XX_GPI_BASE + 0x00) 16 - #define S3C64XX_GPIDAT (S3C64XX_GPI_BASE + 0x04) 17 - #define S3C64XX_GPIPUD (S3C64XX_GPI_BASE + 0x08) 18 - #define S3C64XX_GPICONSLP (S3C64XX_GPI_BASE + 0x0c) 19 - #define S3C64XX_GPIPUDSLP (S3C64XX_GPI_BASE + 0x10) 20 - 21 - #define S3C64XX_GPI_CONMASK(__gpio) (0x3 << ((__gpio) * 2)) 22 - #define S3C64XX_GPI_INPUT(__gpio) (0x0 << ((__gpio) * 2)) 23 - #define S3C64XX_GPI_OUTPUT(__gpio) (0x1 << ((__gpio) * 2)) 24 - 25 - #define S3C64XX_GPI0_VD0 (0x02 << 0) 26 - #define S3C64XX_GPI1_VD1 (0x02 << 2) 27 - #define S3C64XX_GPI2_VD2 (0x02 << 4) 28 - #define S3C64XX_GPI3_VD3 (0x02 << 6) 29 - #define S3C64XX_GPI4_VD4 (0x02 << 8) 30 - #define S3C64XX_GPI5_VD5 (0x02 << 10) 31 - #define S3C64XX_GPI6_VD6 (0x02 << 12) 32 - #define S3C64XX_GPI7_VD7 (0x02 << 14) 33 - #define S3C64XX_GPI8_VD8 (0x02 << 16) 34 - #define S3C64XX_GPI9_VD9 (0x02 << 18) 35 - #define S3C64XX_GPI10_VD10 (0x02 << 20) 36 - #define S3C64XX_GPI11_VD11 (0x02 << 22) 37 - #define S3C64XX_GPI12_VD12 (0x02 << 24) 38 - #define S3C64XX_GPI13_VD13 (0x02 << 26) 39 - #define S3C64XX_GPI14_VD14 (0x02 << 28) 40 - #define S3C64XX_GPI15_VD15 (0x02 << 30)
-36
arch/arm/mach-s3c64xx/include/mach/gpio-bank-j.h
··· 1 - /* linux/arch/arm/mach-s3c64xx/include/mach/gpio-bank-j.h 2 - * 3 - * Copyright 2008 Openmoko, Inc. 4 - * Copyright 2008 Simtec Electronics 5 - * Ben Dooks <ben@simtec.co.uk> 6 - * http://armlinux.simtec.co.uk/ 7 - * 8 - * GPIO Bank J register and configuration definitions 9 - * 10 - * This program is free software; you can redistribute it and/or modify 11 - * it under the terms of the GNU General Public License version 2 as 12 - * published by the Free Software Foundation. 13 - */ 14 - 15 - #define S3C64XX_GPJCON (S3C64XX_GPJ_BASE + 0x00) 16 - #define S3C64XX_GPJDAT (S3C64XX_GPJ_BASE + 0x04) 17 - #define S3C64XX_GPJPUD (S3C64XX_GPJ_BASE + 0x08) 18 - #define S3C64XX_GPJCONSLP (S3C64XX_GPJ_BASE + 0x0c) 19 - #define S3C64XX_GPJPUDSLP (S3C64XX_GPJ_BASE + 0x10) 20 - 21 - #define S3C64XX_GPJ_CONMASK(__gpio) (0x3 << ((__gpio) * 2)) 22 - #define S3C64XX_GPJ_INPUT(__gpio) (0x0 << ((__gpio) * 2)) 23 - #define S3C64XX_GPJ_OUTPUT(__gpio) (0x1 << ((__gpio) * 2)) 24 - 25 - #define S3C64XX_GPJ0_VD16 (0x02 << 0) 26 - #define S3C64XX_GPJ1_VD17 (0x02 << 2) 27 - #define S3C64XX_GPJ2_VD18 (0x02 << 4) 28 - #define S3C64XX_GPJ3_VD19 (0x02 << 6) 29 - #define S3C64XX_GPJ4_VD20 (0x02 << 8) 30 - #define S3C64XX_GPJ5_VD21 (0x02 << 10) 31 - #define S3C64XX_GPJ6_VD22 (0x02 << 12) 32 - #define S3C64XX_GPJ7_VD23 (0x02 << 14) 33 - #define S3C64XX_GPJ8_LCD_HSYNC (0x02 << 16) 34 - #define S3C64XX_GPJ9_LCD_VSYNC (0x02 << 18) 35 - #define S3C64XX_GPJ10_LCD_VDEN (0x02 << 20) 36 - #define S3C64XX_GPJ11_LCD_VCLK (0x02 << 22)
-54
arch/arm/mach-s3c64xx/include/mach/gpio-bank-n.h
··· 1 - /* linux/arch/arm/mach-s3c64xx/include/mach/gpio-bank-n.h 2 - * 3 - * Copyright 2008 Openmoko, Inc. 4 - * Copyright 2008 Simtec Electronics 5 - * Ben Dooks <ben@simtec.co.uk> 6 - * http://armlinux.simtec.co.uk/ 7 - * 8 - * GPIO Bank N register and configuration definitions 9 - * 10 - * This program is free software; you can redistribute it and/or modify 11 - * it under the terms of the GNU General Public License version 2 as 12 - * published by the Free Software Foundation. 13 - */ 14 - 15 - #define S3C64XX_GPNCON (S3C64XX_GPN_BASE + 0x00) 16 - #define S3C64XX_GPNDAT (S3C64XX_GPN_BASE + 0x04) 17 - #define S3C64XX_GPNPUD (S3C64XX_GPN_BASE + 0x08) 18 - 19 - #define S3C64XX_GPN_CONMASK(__gpio) (0x3 << ((__gpio) * 2)) 20 - #define S3C64XX_GPN_INPUT(__gpio) (0x0 << ((__gpio) * 2)) 21 - #define S3C64XX_GPN_OUTPUT(__gpio) (0x1 << ((__gpio) * 2)) 22 - 23 - #define S3C64XX_GPN0_EINT0 (0x02 << 0) 24 - #define S3C64XX_GPN0_KP_ROW0 (0x03 << 0) 25 - 26 - #define S3C64XX_GPN1_EINT1 (0x02 << 2) 27 - #define S3C64XX_GPN1_KP_ROW1 (0x03 << 2) 28 - 29 - #define S3C64XX_GPN2_EINT2 (0x02 << 4) 30 - #define S3C64XX_GPN2_KP_ROW2 (0x03 << 4) 31 - 32 - #define S3C64XX_GPN3_EINT3 (0x02 << 6) 33 - #define S3C64XX_GPN3_KP_ROW3 (0x03 << 6) 34 - 35 - #define S3C64XX_GPN4_EINT4 (0x02 << 8) 36 - #define S3C64XX_GPN4_KP_ROW4 (0x03 << 8) 37 - 38 - #define S3C64XX_GPN5_EINT5 (0x02 << 10) 39 - #define S3C64XX_GPN5_KP_ROW5 (0x03 << 10) 40 - 41 - #define S3C64XX_GPN6_EINT6 (0x02 << 12) 42 - #define S3C64XX_GPN6_KP_ROW6 (0x03 << 12) 43 - 44 - #define S3C64XX_GPN7_EINT7 (0x02 << 14) 45 - #define S3C64XX_GPN7_KP_ROW7 (0x03 << 14) 46 - 47 - #define S3C64XX_GPN8_EINT8 (0x02 << 16) 48 - #define S3C64XX_GPN9_EINT9 (0x02 << 18) 49 - #define S3C64XX_GPN10_EINT10 (0x02 << 20) 50 - #define S3C64XX_GPN11_EINT11 (0x02 << 22) 51 - #define S3C64XX_GPN12_EINT12 (0x02 << 24) 52 - #define S3C64XX_GPN13_EINT13 (0x02 << 26) 53 - #define S3C64XX_GPN14_EINT14 (0x02 << 28) 54 - #define S3C64XX_GPN15_EINT15 (0x02 << 30)
-70
arch/arm/mach-s3c64xx/include/mach/gpio-bank-o.h
··· 1 - /* linux/arch/arm/mach-s3c64xx/include/mach/gpio-bank-o.h 2 - * 3 - * Copyright 2008 Openmoko, Inc. 4 - * Copyright 2008 Simtec Electronics 5 - * Ben Dooks <ben@simtec.co.uk> 6 - * http://armlinux.simtec.co.uk/ 7 - * 8 - * GPIO Bank O register and configuration definitions 9 - * 10 - * This program is free software; you can redistribute it and/or modify 11 - * it under the terms of the GNU General Public License version 2 as 12 - * published by the Free Software Foundation. 13 - */ 14 - 15 - #define S3C64XX_GPOCON (S3C64XX_GPO_BASE + 0x00) 16 - #define S3C64XX_GPODAT (S3C64XX_GPO_BASE + 0x04) 17 - #define S3C64XX_GPOPUD (S3C64XX_GPO_BASE + 0x08) 18 - #define S3C64XX_GPOCONSLP (S3C64XX_GPO_BASE + 0x0c) 19 - #define S3C64XX_GPOPUDSLP (S3C64XX_GPO_BASE + 0x10) 20 - 21 - #define S3C64XX_GPO_CONMASK(__gpio) (0x3 << ((__gpio) * 2)) 22 - #define S3C64XX_GPO_INPUT(__gpio) (0x0 << ((__gpio) * 2)) 23 - #define S3C64XX_GPO_OUTPUT(__gpio) (0x1 << ((__gpio) * 2)) 24 - 25 - #define S3C64XX_GPO0_MEM0_nCS2 (0x02 << 0) 26 - #define S3C64XX_GPO0_EINT_G7_0 (0x03 << 0) 27 - 28 - #define S3C64XX_GPO1_MEM0_nCS3 (0x02 << 2) 29 - #define S3C64XX_GPO1_EINT_G7_1 (0x03 << 2) 30 - 31 - #define S3C64XX_GPO2_MEM0_nCS4 (0x02 << 4) 32 - #define S3C64XX_GPO2_EINT_G7_2 (0x03 << 4) 33 - 34 - #define S3C64XX_GPO3_MEM0_nCS5 (0x02 << 6) 35 - #define S3C64XX_GPO3_EINT_G7_3 (0x03 << 6) 36 - 37 - #define S3C64XX_GPO4_EINT_G7_4 (0x03 << 8) 38 - 39 - #define S3C64XX_GPO5_EINT_G7_5 (0x03 << 10) 40 - 41 - #define S3C64XX_GPO6_MEM0_ADDR6 (0x02 << 12) 42 - #define S3C64XX_GPO6_EINT_G7_6 (0x03 << 12) 43 - 44 - #define S3C64XX_GPO7_MEM0_ADDR7 (0x02 << 14) 45 - #define S3C64XX_GPO7_EINT_G7_7 (0x03 << 14) 46 - 47 - #define S3C64XX_GPO8_MEM0_ADDR8 (0x02 << 16) 48 - #define S3C64XX_GPO8_EINT_G7_8 (0x03 << 16) 49 - 50 - #define S3C64XX_GPO9_MEM0_ADDR9 (0x02 << 18) 51 - #define S3C64XX_GPO9_EINT_G7_9 (0x03 << 18) 52 - 53 - #define S3C64XX_GPO10_MEM0_ADDR10 (0x02 << 20) 54 - #define S3C64XX_GPO10_EINT_G7_10 (0x03 << 20) 55 - 56 - #define S3C64XX_GPO11_MEM0_ADDR11 (0x02 << 22) 57 - #define S3C64XX_GPO11_EINT_G7_11 (0x03 << 22) 58 - 59 - #define S3C64XX_GPO12_MEM0_ADDR12 (0x02 << 24) 60 - #define S3C64XX_GPO12_EINT_G7_12 (0x03 << 24) 61 - 62 - #define S3C64XX_GPO13_MEM0_ADDR13 (0x02 << 26) 63 - #define S3C64XX_GPO13_EINT_G7_13 (0x03 << 26) 64 - 65 - #define S3C64XX_GPO14_MEM0_ADDR14 (0x02 << 28) 66 - #define S3C64XX_GPO14_EINT_G7_14 (0x03 << 28) 67 - 68 - #define S3C64XX_GPO15_MEM0_ADDR15 (0x02 << 30) 69 - #define S3C64XX_GPO15_EINT_G7_15 (0x03 << 30) 70 -
-69
arch/arm/mach-s3c64xx/include/mach/gpio-bank-p.h
··· 1 - /* linux/arch/arm/mach-s3c64xx/include/mach/gpio-bank-p.h 2 - * 3 - * Copyright 2008 Openmoko, Inc. 4 - * Copyright 2008 Simtec Electronics 5 - * Ben Dooks <ben@simtec.co.uk> 6 - * http://armlinux.simtec.co.uk/ 7 - * 8 - * GPIO Bank P register and configuration definitions 9 - * 10 - * This program is free software; you can redistribute it and/or modify 11 - * it under the terms of the GNU General Public License version 2 as 12 - * published by the Free Software Foundation. 13 - */ 14 - 15 - #define S3C64XX_GPPCON (S3C64XX_GPP_BASE + 0x00) 16 - #define S3C64XX_GPPDAT (S3C64XX_GPP_BASE + 0x04) 17 - #define S3C64XX_GPPPUD (S3C64XX_GPP_BASE + 0x08) 18 - #define S3C64XX_GPPCONSLP (S3C64XX_GPP_BASE + 0x0c) 19 - #define S3C64XX_GPPPUDSLP (S3C64XX_GPP_BASE + 0x10) 20 - 21 - #define S3C64XX_GPP_CONMASK(__gpio) (0x3 << ((__gpio) * 2)) 22 - #define S3C64XX_GPP_INPUT(__gpio) (0x0 << ((__gpio) * 2)) 23 - #define S3C64XX_GPP_OUTPUT(__gpio) (0x1 << ((__gpio) * 2)) 24 - 25 - #define S3C64XX_GPP0_MEM0_ADDRV (0x02 << 0) 26 - #define S3C64XX_GPP0_EINT_G8_0 (0x03 << 0) 27 - 28 - #define S3C64XX_GPP1_MEM0_SMCLK (0x02 << 2) 29 - #define S3C64XX_GPP1_EINT_G8_1 (0x03 << 2) 30 - 31 - #define S3C64XX_GPP2_MEM0_nWAIT (0x02 << 4) 32 - #define S3C64XX_GPP2_EINT_G8_2 (0x03 << 4) 33 - 34 - #define S3C64XX_GPP3_MEM0_RDY0_ALE (0x02 << 6) 35 - #define S3C64XX_GPP3_EINT_G8_3 (0x03 << 6) 36 - 37 - #define S3C64XX_GPP4_MEM0_RDY1_CLE (0x02 << 8) 38 - #define S3C64XX_GPP4_EINT_G8_4 (0x03 << 8) 39 - 40 - #define S3C64XX_GPP5_MEM0_INTsm0_FWE (0x02 << 10) 41 - #define S3C64XX_GPP5_EINT_G8_5 (0x03 << 10) 42 - 43 - #define S3C64XX_GPP6_MEM0_(null) (0x02 << 12) 44 - #define S3C64XX_GPP6_EINT_G8_6 (0x03 << 12) 45 - 46 - #define S3C64XX_GPP7_MEM0_INTsm1_FRE (0x02 << 14) 47 - #define S3C64XX_GPP7_EINT_G8_7 (0x03 << 14) 48 - 49 - #define S3C64XX_GPP8_MEM0_RPn_RnB (0x02 << 16) 50 - #define S3C64XX_GPP8_EINT_G8_8 (0x03 << 16) 51 - 52 - #define S3C64XX_GPP9_MEM0_ATA_RESET (0x02 << 18) 53 - #define S3C64XX_GPP9_EINT_G8_9 (0x03 << 18) 54 - 55 - #define S3C64XX_GPP10_MEM0_ATA_INPACK (0x02 << 20) 56 - #define S3C64XX_GPP10_EINT_G8_10 (0x03 << 20) 57 - 58 - #define S3C64XX_GPP11_MEM0_ATA_REG (0x02 << 22) 59 - #define S3C64XX_GPP11_EINT_G8_11 (0x03 << 22) 60 - 61 - #define S3C64XX_GPP12_MEM0_ATA_WE (0x02 << 24) 62 - #define S3C64XX_GPP12_EINT_G8_12 (0x03 << 24) 63 - 64 - #define S3C64XX_GPP13_MEM0_ATA_OE (0x02 << 26) 65 - #define S3C64XX_GPP13_EINT_G8_13 (0x03 << 26) 66 - 67 - #define S3C64XX_GPP14_MEM0_ATA_CD (0x02 << 28) 68 - #define S3C64XX_GPP14_EINT_G8_14 (0x03 << 28) 69 -
-46
arch/arm/mach-s3c64xx/include/mach/gpio-bank-q.h
··· 1 - /* linux/arch/arm/mach-s3c64xx/include/mach/gpio-bank-q.h 2 - * 3 - * Copyright 2008 Openmoko, Inc. 4 - * Copyright 2008 Simtec Electronics 5 - * Ben Dooks <ben@simtec.co.uk> 6 - * http://armlinux.simtec.co.uk/ 7 - * 8 - * GPIO Bank Q register and configuration definitions 9 - * 10 - * This program is free software; you can redistribute it and/or modify 11 - * it under the terms of the GNU General Public License version 2 as 12 - * published by the Free Software Foundation. 13 - */ 14 - 15 - #define S3C64XX_GPQCON (S3C64XX_GPQ_BASE + 0x00) 16 - #define S3C64XX_GPQDAT (S3C64XX_GPQ_BASE + 0x04) 17 - #define S3C64XX_GPQPUD (S3C64XX_GPQ_BASE + 0x08) 18 - #define S3C64XX_GPQCONSLP (S3C64XX_GPQ_BASE + 0x0c) 19 - #define S3C64XX_GPQPUDSLP (S3C64XX_GPQ_BASE + 0x10) 20 - 21 - #define S3C64XX_GPQ_CONMASK(__gpio) (0x3 << ((__gpio) * 2)) 22 - #define S3C64XX_GPQ_INPUT(__gpio) (0x0 << ((__gpio) * 2)) 23 - #define S3C64XX_GPQ_OUTPUT(__gpio) (0x1 << ((__gpio) * 2)) 24 - 25 - #define S3C64XX_GPQ0_MEM0_ADDR18_RAS (0x02 << 0) 26 - #define S3C64XX_GPQ0_EINT_G9_0 (0x03 << 0) 27 - 28 - #define S3C64XX_GPQ1_MEM0_ADDR19_CAS (0x02 << 2) 29 - #define S3C64XX_GPQ1_EINT_G9_1 (0x03 << 2) 30 - 31 - #define S3C64XX_GPQ2_EINT_G9_2 (0x03 << 4) 32 - 33 - #define S3C64XX_GPQ3_EINT_G9_3 (0x03 << 6) 34 - 35 - #define S3C64XX_GPQ4_EINT_G9_4 (0x03 << 8) 36 - 37 - #define S3C64XX_GPQ5_EINT_G9_5 (0x03 << 10) 38 - 39 - #define S3C64XX_GPQ6_EINT_G9_6 (0x03 << 12) 40 - 41 - #define S3C64XX_GPQ7_MEM0_ADDR17_WENDMC (0x02 << 14) 42 - #define S3C64XX_GPQ7_EINT_G9_7 (0x03 << 14) 43 - 44 - #define S3C64XX_GPQ8_MEM0_ADDR16_APDMC (0x02 << 16) 45 - #define S3C64XX_GPQ8_EINT_G9_8 (0x03 << 16) 46 -
-1
arch/arm/mach-s3c64xx/mach-smdk6410.c
··· 50 50 #include <mach/hardware.h> 51 51 #include <mach/regs-fb.h> 52 52 #include <mach/map.h> 53 - #include <mach/gpio-bank-f.h> 54 53 55 54 #include <asm/irq.h> 56 55 #include <asm/mach-types.h>
+19 -15
arch/arm/mach-s3c64xx/pm.c
··· 30 30 #include <mach/regs-gpio-memport.h> 31 31 32 32 #ifdef CONFIG_S3C_PM_DEBUG_LED_SMDK 33 - #include <mach/gpio-bank-n.h> 34 - 35 33 void s3c_pm_debug_smdkled(u32 set, u32 clear) 36 34 { 37 35 unsigned long flags; 38 - u32 reg; 36 + int i; 39 37 40 38 local_irq_save(flags); 41 - reg = __raw_readl(S3C64XX_GPNCON); 42 - reg &= ~(S3C64XX_GPN_CONMASK(12) | S3C64XX_GPN_CONMASK(13) | 43 - S3C64XX_GPN_CONMASK(14) | S3C64XX_GPN_CONMASK(15)); 44 - reg |= S3C64XX_GPN_OUTPUT(12) | S3C64XX_GPN_OUTPUT(13) | 45 - S3C64XX_GPN_OUTPUT(14) | S3C64XX_GPN_OUTPUT(15); 46 - __raw_writel(reg, S3C64XX_GPNCON); 47 - 48 - reg = __raw_readl(S3C64XX_GPNDAT); 49 - reg &= ~(clear << 12); 50 - reg |= set << 12; 51 - __raw_writel(reg, S3C64XX_GPNDAT); 52 - 39 + for (i = 0; i < 4; i++) { 40 + if (clear & (1 << i)) 41 + gpio_set_value(S3C64XX_GPN(12 + i), 0); 42 + if (set & (1 << i)) 43 + gpio_set_value(S3C64XX_GPN(12 + i), 1); 44 + } 53 45 local_irq_restore(flags); 54 46 } 55 47 #endif ··· 179 187 pm_cpu_prep = s3c64xx_pm_prepare; 180 188 pm_cpu_sleep = s3c64xx_cpu_suspend; 181 189 pm_uart_udivslot = 1; 190 + 191 + #ifdef CONFIG_S3C_PM_DEBUG_LED_SMDK 192 + gpio_request(S3C64XX_GPN(12), "DEBUG_LED0"); 193 + gpio_request(S3C64XX_GPN(13), "DEBUG_LED1"); 194 + gpio_request(S3C64XX_GPN(14), "DEBUG_LED2"); 195 + gpio_request(S3C64XX_GPN(15), "DEBUG_LED3"); 196 + gpio_direction_output(S3C64XX_GPN(12), 0); 197 + gpio_direction_output(S3C64XX_GPN(13), 0); 198 + gpio_direction_output(S3C64XX_GPN(14), 0); 199 + gpio_direction_output(S3C64XX_GPN(15), 0); 200 + #endif 201 + 182 202 return 0; 183 203 } 184 204
+2 -5
arch/arm/mach-s3c64xx/setup-i2c0.c
··· 18 18 19 19 struct platform_device; /* don't need the contents */ 20 20 21 - #include <mach/gpio-bank-b.h> 22 21 #include <plat/iic.h> 23 22 #include <plat/gpio-cfg.h> 24 23 25 24 void s3c_i2c0_cfg_gpio(struct platform_device *dev) 26 25 { 27 - s3c_gpio_cfgpin(S3C64XX_GPB(5), S3C64XX_GPB5_I2C_SCL0); 28 - s3c_gpio_cfgpin(S3C64XX_GPB(6), S3C64XX_GPB6_I2C_SDA0); 29 - s3c_gpio_setpull(S3C64XX_GPB(5), S3C_GPIO_PULL_UP); 30 - s3c_gpio_setpull(S3C64XX_GPB(6), S3C_GPIO_PULL_UP); 26 + s3c_gpio_cfgall_range(S3C64XX_GPB(5), 2, 27 + S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP); 31 28 }
+2 -5
arch/arm/mach-s3c64xx/setup-i2c1.c
··· 18 18 19 19 struct platform_device; /* don't need the contents */ 20 20 21 - #include <mach/gpio-bank-b.h> 22 21 #include <plat/iic.h> 23 22 #include <plat/gpio-cfg.h> 24 23 25 24 void s3c_i2c1_cfg_gpio(struct platform_device *dev) 26 25 { 27 - s3c_gpio_cfgpin(S3C64XX_GPB(2), S3C64XX_GPB2_I2C_SCL1); 28 - s3c_gpio_cfgpin(S3C64XX_GPB(3), S3C64XX_GPB3_I2C_SDA1); 29 - s3c_gpio_setpull(S3C64XX_GPB(2), S3C_GPIO_PULL_UP); 30 - s3c_gpio_setpull(S3C64XX_GPB(3), S3C_GPIO_PULL_UP); 26 + s3c_gpio_cfgall_range(S3C64XX_GPB(2), 2, 27 + S3C_GPIO_SFN(6), S3C_GPIO_PULL_UP); 31 28 }
+7 -1
arch/arm/mach-s3c64xx/sleep.S
··· 20 20 #define S3C64XX_VA_GPIO (0x0) 21 21 22 22 #include <mach/regs-gpio.h> 23 - #include <mach/gpio-bank-n.h> 24 23 25 24 #define LL_UART (S3C_PA_UART + (0x400 * CONFIG_S3C_LOWLEVEL_UART_PORT)) 26 25 ··· 67 68 ldr r2, =LL_UART /* for debug */ 68 69 69 70 #ifdef CONFIG_S3C_PM_DEBUG_LED_SMDK 71 + 72 + #define S3C64XX_GPNCON (S3C64XX_GPN_BASE + 0x00) 73 + #define S3C64XX_GPNDAT (S3C64XX_GPN_BASE + 0x04) 74 + 75 + #define S3C64XX_GPN_CONMASK(__gpio) (0x3 << ((__gpio) * 2)) 76 + #define S3C64XX_GPN_OUTPUT(__gpio) (0x1 << ((__gpio) * 2)) 77 + 70 78 /* Initialise the GPIO state if we are debugging via the SMDK LEDs, 71 79 * as the uboot version supplied resets these to inputs during the 72 80 * resume checks.
-25
arch/arm/mach-s5p6442/Kconfig
··· 1 - # arch/arm/mach-s5p6442/Kconfig 2 - # 3 - # Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - # http://www.samsung.com/ 5 - # 6 - # Licensed under GPLv2 7 - 8 - # Configuration options for the S5P6442 9 - 10 - if ARCH_S5P6442 11 - 12 - config CPU_S5P6442 13 - bool 14 - select S3C_PL330_DMA 15 - help 16 - Enable S5P6442 CPU support 17 - 18 - config MACH_SMDK6442 19 - bool "SMDK6442" 20 - select CPU_S5P6442 21 - select S3C_DEV_WDT 22 - help 23 - Machine support for Samsung SMDK6442 24 - 25 - endif
-24
arch/arm/mach-s5p6442/Makefile
··· 1 - # arch/arm/mach-s5p6442/Makefile 2 - # 3 - # Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - # http://www.samsung.com/ 5 - # 6 - # Licensed under GPLv2 7 - 8 - obj-y := 9 - obj-m := 10 - obj-n := 11 - obj- := 12 - 13 - # Core support for S5P6442 system 14 - 15 - obj-$(CONFIG_CPU_S5P6442) += cpu.o init.o clock.o dma.o 16 - obj-$(CONFIG_CPU_S5P6442) += setup-i2c0.o 17 - 18 - # machine support 19 - 20 - obj-$(CONFIG_MACH_SMDK6442) += mach-smdk6442.o 21 - 22 - # device support 23 - obj-y += dev-audio.o 24 - obj-$(CONFIG_S3C64XX_DEV_SPI) += dev-spi.o
-2
arch/arm/mach-s5p6442/Makefile.boot
··· 1 - zreladdr-y := 0x20008000 2 - params_phys-y := 0x20000100
-420
arch/arm/mach-s5p6442/clock.c
··· 1 - /* linux/arch/arm/mach-s5p6442/clock.c 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * S5P6442 - Clock support 7 - * 8 - * This program is free software; you can redistribute it and/or modify 9 - * it under the terms of the GNU General Public License version 2 as 10 - * published by the Free Software Foundation. 11 - */ 12 - 13 - #include <linux/init.h> 14 - #include <linux/module.h> 15 - #include <linux/kernel.h> 16 - #include <linux/list.h> 17 - #include <linux/err.h> 18 - #include <linux/clk.h> 19 - #include <linux/io.h> 20 - 21 - #include <mach/map.h> 22 - 23 - #include <plat/cpu-freq.h> 24 - #include <mach/regs-clock.h> 25 - #include <plat/clock.h> 26 - #include <plat/cpu.h> 27 - #include <plat/pll.h> 28 - #include <plat/s5p-clock.h> 29 - #include <plat/clock-clksrc.h> 30 - #include <plat/s5p6442.h> 31 - 32 - static struct clksrc_clk clk_mout_apll = { 33 - .clk = { 34 - .name = "mout_apll", 35 - .id = -1, 36 - }, 37 - .sources = &clk_src_apll, 38 - .reg_src = { .reg = S5P_CLK_SRC0, .shift = 0, .size = 1 }, 39 - }; 40 - 41 - static struct clksrc_clk clk_mout_mpll = { 42 - .clk = { 43 - .name = "mout_mpll", 44 - .id = -1, 45 - }, 46 - .sources = &clk_src_mpll, 47 - .reg_src = { .reg = S5P_CLK_SRC0, .shift = 4, .size = 1 }, 48 - }; 49 - 50 - static struct clksrc_clk clk_mout_epll = { 51 - .clk = { 52 - .name = "mout_epll", 53 - .id = -1, 54 - }, 55 - .sources = &clk_src_epll, 56 - .reg_src = { .reg = S5P_CLK_SRC0, .shift = 8, .size = 1 }, 57 - }; 58 - 59 - /* Possible clock sources for ARM Mux */ 60 - static struct clk *clk_src_arm_list[] = { 61 - [1] = &clk_mout_apll.clk, 62 - [2] = &clk_mout_mpll.clk, 63 - }; 64 - 65 - static struct clksrc_sources clk_src_arm = { 66 - .sources = clk_src_arm_list, 67 - .nr_sources = ARRAY_SIZE(clk_src_arm_list), 68 - }; 69 - 70 - static struct clksrc_clk clk_mout_arm = { 71 - .clk = { 72 - .name = "mout_arm", 73 - .id = -1, 74 - }, 75 - .sources = &clk_src_arm, 76 - .reg_src = { .reg = S5P_CLK_MUX_STAT0, .shift = 16, .size = 3 }, 77 - }; 78 - 79 - static struct clk clk_dout_a2m = { 80 - .name = "dout_a2m", 81 - .id = -1, 82 - .parent = &clk_mout_apll.clk, 83 - }; 84 - 85 - /* Possible clock sources for D0 Mux */ 86 - static struct clk *clk_src_d0_list[] = { 87 - [1] = &clk_mout_mpll.clk, 88 - [2] = &clk_dout_a2m, 89 - }; 90 - 91 - static struct clksrc_sources clk_src_d0 = { 92 - .sources = clk_src_d0_list, 93 - .nr_sources = ARRAY_SIZE(clk_src_d0_list), 94 - }; 95 - 96 - static struct clksrc_clk clk_mout_d0 = { 97 - .clk = { 98 - .name = "mout_d0", 99 - .id = -1, 100 - }, 101 - .sources = &clk_src_d0, 102 - .reg_src = { .reg = S5P_CLK_MUX_STAT0, .shift = 20, .size = 3 }, 103 - }; 104 - 105 - static struct clk clk_dout_apll = { 106 - .name = "dout_apll", 107 - .id = -1, 108 - .parent = &clk_mout_arm.clk, 109 - }; 110 - 111 - /* Possible clock sources for D0SYNC Mux */ 112 - static struct clk *clk_src_d0sync_list[] = { 113 - [1] = &clk_mout_d0.clk, 114 - [2] = &clk_dout_apll, 115 - }; 116 - 117 - static struct clksrc_sources clk_src_d0sync = { 118 - .sources = clk_src_d0sync_list, 119 - .nr_sources = ARRAY_SIZE(clk_src_d0sync_list), 120 - }; 121 - 122 - static struct clksrc_clk clk_mout_d0sync = { 123 - .clk = { 124 - .name = "mout_d0sync", 125 - .id = -1, 126 - }, 127 - .sources = &clk_src_d0sync, 128 - .reg_src = { .reg = S5P_CLK_MUX_STAT1, .shift = 28, .size = 3 }, 129 - }; 130 - 131 - /* Possible clock sources for D1 Mux */ 132 - static struct clk *clk_src_d1_list[] = { 133 - [1] = &clk_mout_mpll.clk, 134 - [2] = &clk_dout_a2m, 135 - }; 136 - 137 - static struct clksrc_sources clk_src_d1 = { 138 - .sources = clk_src_d1_list, 139 - .nr_sources = ARRAY_SIZE(clk_src_d1_list), 140 - }; 141 - 142 - static struct clksrc_clk clk_mout_d1 = { 143 - .clk = { 144 - .name = "mout_d1", 145 - .id = -1, 146 - }, 147 - .sources = &clk_src_d1, 148 - .reg_src = { .reg = S5P_CLK_MUX_STAT0, .shift = 24, .size = 3 }, 149 - }; 150 - 151 - /* Possible clock sources for D1SYNC Mux */ 152 - static struct clk *clk_src_d1sync_list[] = { 153 - [1] = &clk_mout_d1.clk, 154 - [2] = &clk_dout_apll, 155 - }; 156 - 157 - static struct clksrc_sources clk_src_d1sync = { 158 - .sources = clk_src_d1sync_list, 159 - .nr_sources = ARRAY_SIZE(clk_src_d1sync_list), 160 - }; 161 - 162 - static struct clksrc_clk clk_mout_d1sync = { 163 - .clk = { 164 - .name = "mout_d1sync", 165 - .id = -1, 166 - }, 167 - .sources = &clk_src_d1sync, 168 - .reg_src = { .reg = S5P_CLK_MUX_STAT1, .shift = 24, .size = 3 }, 169 - }; 170 - 171 - static struct clk clk_hclkd0 = { 172 - .name = "hclkd0", 173 - .id = -1, 174 - .parent = &clk_mout_d0sync.clk, 175 - }; 176 - 177 - static struct clk clk_hclkd1 = { 178 - .name = "hclkd1", 179 - .id = -1, 180 - .parent = &clk_mout_d1sync.clk, 181 - }; 182 - 183 - static struct clk clk_pclkd0 = { 184 - .name = "pclkd0", 185 - .id = -1, 186 - .parent = &clk_hclkd0, 187 - }; 188 - 189 - static struct clk clk_pclkd1 = { 190 - .name = "pclkd1", 191 - .id = -1, 192 - .parent = &clk_hclkd1, 193 - }; 194 - 195 - int s5p6442_clk_ip0_ctrl(struct clk *clk, int enable) 196 - { 197 - return s5p_gatectrl(S5P_CLKGATE_IP0, clk, enable); 198 - } 199 - 200 - int s5p6442_clk_ip3_ctrl(struct clk *clk, int enable) 201 - { 202 - return s5p_gatectrl(S5P_CLKGATE_IP3, clk, enable); 203 - } 204 - 205 - static struct clksrc_clk clksrcs[] = { 206 - { 207 - .clk = { 208 - .name = "dout_a2m", 209 - .id = -1, 210 - .parent = &clk_mout_apll.clk, 211 - }, 212 - .sources = &clk_src_apll, 213 - .reg_src = { .reg = S5P_CLK_SRC0, .shift = 0, .size = 1 }, 214 - .reg_div = { .reg = S5P_CLK_DIV0, .shift = 4, .size = 3 }, 215 - }, { 216 - .clk = { 217 - .name = "dout_apll", 218 - .id = -1, 219 - .parent = &clk_mout_arm.clk, 220 - }, 221 - .sources = &clk_src_arm, 222 - .reg_src = { .reg = S5P_CLK_MUX_STAT0, .shift = 16, .size = 3 }, 223 - .reg_div = { .reg = S5P_CLK_DIV0, .shift = 0, .size = 3 }, 224 - }, { 225 - .clk = { 226 - .name = "hclkd1", 227 - .id = -1, 228 - .parent = &clk_mout_d1sync.clk, 229 - }, 230 - .sources = &clk_src_d1sync, 231 - .reg_src = { .reg = S5P_CLK_MUX_STAT1, .shift = 24, .size = 3 }, 232 - .reg_div = { .reg = S5P_CLK_DIV0, .shift = 24, .size = 4 }, 233 - }, { 234 - .clk = { 235 - .name = "hclkd0", 236 - .id = -1, 237 - .parent = &clk_mout_d0sync.clk, 238 - }, 239 - .sources = &clk_src_d0sync, 240 - .reg_src = { .reg = S5P_CLK_MUX_STAT1, .shift = 28, .size = 3 }, 241 - .reg_div = { .reg = S5P_CLK_DIV0, .shift = 16, .size = 4 }, 242 - }, { 243 - .clk = { 244 - .name = "pclkd0", 245 - .id = -1, 246 - .parent = &clk_hclkd0, 247 - }, 248 - .sources = &clk_src_d0sync, 249 - .reg_src = { .reg = S5P_CLK_MUX_STAT1, .shift = 28, .size = 3 }, 250 - .reg_div = { .reg = S5P_CLK_DIV0, .shift = 20, .size = 3 }, 251 - }, { 252 - .clk = { 253 - .name = "pclkd1", 254 - .id = -1, 255 - .parent = &clk_hclkd1, 256 - }, 257 - .sources = &clk_src_d1sync, 258 - .reg_src = { .reg = S5P_CLK_MUX_STAT1, .shift = 24, .size = 3 }, 259 - .reg_div = { .reg = S5P_CLK_DIV0, .shift = 28, .size = 3 }, 260 - } 261 - }; 262 - 263 - /* Clock initialisation code */ 264 - static struct clksrc_clk *init_parents[] = { 265 - &clk_mout_apll, 266 - &clk_mout_mpll, 267 - &clk_mout_epll, 268 - &clk_mout_arm, 269 - &clk_mout_d0, 270 - &clk_mout_d0sync, 271 - &clk_mout_d1, 272 - &clk_mout_d1sync, 273 - }; 274 - 275 - void __init_or_cpufreq s5p6442_setup_clocks(void) 276 - { 277 - struct clk *pclkd0_clk; 278 - struct clk *pclkd1_clk; 279 - 280 - unsigned long xtal; 281 - unsigned long arm; 282 - unsigned long hclkd0 = 0; 283 - unsigned long hclkd1 = 0; 284 - unsigned long pclkd0 = 0; 285 - unsigned long pclkd1 = 0; 286 - 287 - unsigned long apll; 288 - unsigned long mpll; 289 - unsigned long epll; 290 - unsigned int ptr; 291 - 292 - printk(KERN_DEBUG "%s: registering clocks\n", __func__); 293 - 294 - xtal = clk_get_rate(&clk_xtal); 295 - 296 - printk(KERN_DEBUG "%s: xtal is %ld\n", __func__, xtal); 297 - 298 - apll = s5p_get_pll45xx(xtal, __raw_readl(S5P_APLL_CON), pll_4508); 299 - mpll = s5p_get_pll45xx(xtal, __raw_readl(S5P_MPLL_CON), pll_4502); 300 - epll = s5p_get_pll45xx(xtal, __raw_readl(S5P_EPLL_CON), pll_4500); 301 - 302 - printk(KERN_INFO "S5P6442: PLL settings, A=%ld, M=%ld, E=%ld", 303 - apll, mpll, epll); 304 - 305 - clk_fout_apll.rate = apll; 306 - clk_fout_mpll.rate = mpll; 307 - clk_fout_epll.rate = epll; 308 - 309 - for (ptr = 0; ptr < ARRAY_SIZE(init_parents); ptr++) 310 - s3c_set_clksrc(init_parents[ptr], true); 311 - 312 - for (ptr = 0; ptr < ARRAY_SIZE(clksrcs); ptr++) 313 - s3c_set_clksrc(&clksrcs[ptr], true); 314 - 315 - arm = clk_get_rate(&clk_dout_apll); 316 - hclkd0 = clk_get_rate(&clk_hclkd0); 317 - hclkd1 = clk_get_rate(&clk_hclkd1); 318 - 319 - pclkd0_clk = clk_get(NULL, "pclkd0"); 320 - BUG_ON(IS_ERR(pclkd0_clk)); 321 - 322 - pclkd0 = clk_get_rate(pclkd0_clk); 323 - clk_put(pclkd0_clk); 324 - 325 - pclkd1_clk = clk_get(NULL, "pclkd1"); 326 - BUG_ON(IS_ERR(pclkd1_clk)); 327 - 328 - pclkd1 = clk_get_rate(pclkd1_clk); 329 - clk_put(pclkd1_clk); 330 - 331 - printk(KERN_INFO "S5P6442: HCLKD0=%ld, HCLKD1=%ld, PCLKD0=%ld, PCLKD1=%ld\n", 332 - hclkd0, hclkd1, pclkd0, pclkd1); 333 - 334 - /* For backward compatibility */ 335 - clk_f.rate = arm; 336 - clk_h.rate = hclkd1; 337 - clk_p.rate = pclkd1; 338 - 339 - clk_pclkd0.rate = pclkd0; 340 - clk_pclkd1.rate = pclkd1; 341 - } 342 - 343 - static struct clk init_clocks_off[] = { 344 - { 345 - .name = "pdma", 346 - .id = -1, 347 - .parent = &clk_pclkd1, 348 - .enable = s5p6442_clk_ip0_ctrl, 349 - .ctrlbit = (1 << 3), 350 - }, 351 - }; 352 - 353 - static struct clk init_clocks[] = { 354 - { 355 - .name = "systimer", 356 - .id = -1, 357 - .parent = &clk_pclkd1, 358 - .enable = s5p6442_clk_ip3_ctrl, 359 - .ctrlbit = (1<<16), 360 - }, { 361 - .name = "uart", 362 - .id = 0, 363 - .parent = &clk_pclkd1, 364 - .enable = s5p6442_clk_ip3_ctrl, 365 - .ctrlbit = (1<<17), 366 - }, { 367 - .name = "uart", 368 - .id = 1, 369 - .parent = &clk_pclkd1, 370 - .enable = s5p6442_clk_ip3_ctrl, 371 - .ctrlbit = (1<<18), 372 - }, { 373 - .name = "uart", 374 - .id = 2, 375 - .parent = &clk_pclkd1, 376 - .enable = s5p6442_clk_ip3_ctrl, 377 - .ctrlbit = (1<<19), 378 - }, { 379 - .name = "watchdog", 380 - .id = -1, 381 - .parent = &clk_pclkd1, 382 - .enable = s5p6442_clk_ip3_ctrl, 383 - .ctrlbit = (1 << 22), 384 - }, { 385 - .name = "timers", 386 - .id = -1, 387 - .parent = &clk_pclkd1, 388 - .enable = s5p6442_clk_ip3_ctrl, 389 - .ctrlbit = (1<<23), 390 - }, 391 - }; 392 - 393 - static struct clk *clks[] __initdata = { 394 - &clk_ext, 395 - &clk_epll, 396 - &clk_mout_apll.clk, 397 - &clk_mout_mpll.clk, 398 - &clk_mout_epll.clk, 399 - &clk_mout_d0.clk, 400 - &clk_mout_d0sync.clk, 401 - &clk_mout_d1.clk, 402 - &clk_mout_d1sync.clk, 403 - &clk_hclkd0, 404 - &clk_pclkd0, 405 - &clk_hclkd1, 406 - &clk_pclkd1, 407 - }; 408 - 409 - void __init s5p6442_register_clocks(void) 410 - { 411 - s3c24xx_register_clocks(clks, ARRAY_SIZE(clks)); 412 - 413 - s3c_register_clksrc(clksrcs, ARRAY_SIZE(clksrcs)); 414 - s3c_register_clocks(init_clocks, ARRAY_SIZE(init_clocks)); 415 - 416 - s3c_register_clocks(init_clocks_off, ARRAY_SIZE(init_clocks_off)); 417 - s3c_disable_clocks(init_clocks_off, ARRAY_SIZE(init_clocks_off)); 418 - 419 - s3c_pwmclk_init(); 420 - }
-143
arch/arm/mach-s5p6442/cpu.c
··· 1 - /* linux/arch/arm/mach-s5p6442/cpu.c 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com 5 - * 6 - * This program is free software; you can redistribute it and/or modify 7 - * it under the terms of the GNU General Public License version 2 as 8 - * published by the Free Software Foundation. 9 - */ 10 - 11 - #include <linux/kernel.h> 12 - #include <linux/types.h> 13 - #include <linux/interrupt.h> 14 - #include <linux/list.h> 15 - #include <linux/timer.h> 16 - #include <linux/init.h> 17 - #include <linux/clk.h> 18 - #include <linux/io.h> 19 - #include <linux/sysdev.h> 20 - #include <linux/serial_core.h> 21 - #include <linux/platform_device.h> 22 - #include <linux/sched.h> 23 - 24 - #include <asm/mach/arch.h> 25 - #include <asm/mach/map.h> 26 - #include <asm/mach/irq.h> 27 - 28 - #include <asm/proc-fns.h> 29 - 30 - #include <mach/hardware.h> 31 - #include <mach/map.h> 32 - #include <asm/irq.h> 33 - 34 - #include <plat/regs-serial.h> 35 - #include <mach/regs-clock.h> 36 - 37 - #include <plat/cpu.h> 38 - #include <plat/devs.h> 39 - #include <plat/clock.h> 40 - #include <plat/s5p6442.h> 41 - 42 - /* Initial IO mappings */ 43 - 44 - static struct map_desc s5p6442_iodesc[] __initdata = { 45 - { 46 - .virtual = (unsigned long)S5P_VA_SYSTIMER, 47 - .pfn = __phys_to_pfn(S5P6442_PA_SYSTIMER), 48 - .length = SZ_16K, 49 - .type = MT_DEVICE, 50 - }, { 51 - .virtual = (unsigned long)S5P_VA_GPIO, 52 - .pfn = __phys_to_pfn(S5P6442_PA_GPIO), 53 - .length = SZ_4K, 54 - .type = MT_DEVICE, 55 - }, { 56 - .virtual = (unsigned long)VA_VIC0, 57 - .pfn = __phys_to_pfn(S5P6442_PA_VIC0), 58 - .length = SZ_16K, 59 - .type = MT_DEVICE, 60 - }, { 61 - .virtual = (unsigned long)VA_VIC1, 62 - .pfn = __phys_to_pfn(S5P6442_PA_VIC1), 63 - .length = SZ_16K, 64 - .type = MT_DEVICE, 65 - }, { 66 - .virtual = (unsigned long)VA_VIC2, 67 - .pfn = __phys_to_pfn(S5P6442_PA_VIC2), 68 - .length = SZ_16K, 69 - .type = MT_DEVICE, 70 - }, { 71 - .virtual = (unsigned long)S3C_VA_UART, 72 - .pfn = __phys_to_pfn(S3C_PA_UART), 73 - .length = SZ_512K, 74 - .type = MT_DEVICE, 75 - } 76 - }; 77 - 78 - static void s5p6442_idle(void) 79 - { 80 - if (!need_resched()) 81 - cpu_do_idle(); 82 - 83 - local_irq_enable(); 84 - } 85 - 86 - /* 87 - * s5p6442_map_io 88 - * 89 - * register the standard cpu IO areas 90 - */ 91 - 92 - void __init s5p6442_map_io(void) 93 - { 94 - iotable_init(s5p6442_iodesc, ARRAY_SIZE(s5p6442_iodesc)); 95 - } 96 - 97 - void __init s5p6442_init_clocks(int xtal) 98 - { 99 - printk(KERN_DEBUG "%s: initializing clocks\n", __func__); 100 - 101 - s3c24xx_register_baseclocks(xtal); 102 - s5p_register_clocks(xtal); 103 - s5p6442_register_clocks(); 104 - s5p6442_setup_clocks(); 105 - } 106 - 107 - void __init s5p6442_init_irq(void) 108 - { 109 - /* S5P6442 supports 3 VIC */ 110 - u32 vic[3]; 111 - 112 - /* VIC0, VIC1, and VIC2: some interrupt reserved */ 113 - vic[0] = 0x7fefffff; 114 - vic[1] = 0X7f389c81; 115 - vic[2] = 0X1bbbcfff; 116 - 117 - s5p_init_irq(vic, ARRAY_SIZE(vic)); 118 - } 119 - 120 - struct sysdev_class s5p6442_sysclass = { 121 - .name = "s5p6442-core", 122 - }; 123 - 124 - static struct sys_device s5p6442_sysdev = { 125 - .cls = &s5p6442_sysclass, 126 - }; 127 - 128 - static int __init s5p6442_core_init(void) 129 - { 130 - return sysdev_class_register(&s5p6442_sysclass); 131 - } 132 - 133 - core_initcall(s5p6442_core_init); 134 - 135 - int __init s5p6442_init(void) 136 - { 137 - printk(KERN_INFO "S5P6442: Initializing architecture\n"); 138 - 139 - /* set idle function */ 140 - pm_idle = s5p6442_idle; 141 - 142 - return sysdev_register(&s5p6442_sysdev); 143 - }
-217
arch/arm/mach-s5p6442/dev-audio.c
··· 1 - /* linux/arch/arm/mach-s5p6442/dev-audio.c 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co. Ltd 4 - * Jaswinder Singh <jassi.brar@samsung.com> 5 - * 6 - * This program is free software; you can redistribute it and/or modify 7 - * it under the terms of the GNU General Public License version 2 as 8 - * published by the Free Software Foundation. 9 - */ 10 - 11 - #include <linux/platform_device.h> 12 - #include <linux/dma-mapping.h> 13 - #include <linux/gpio.h> 14 - 15 - #include <plat/gpio-cfg.h> 16 - #include <plat/audio.h> 17 - 18 - #include <mach/map.h> 19 - #include <mach/dma.h> 20 - #include <mach/irqs.h> 21 - 22 - static int s5p6442_cfg_i2s(struct platform_device *pdev) 23 - { 24 - unsigned int base; 25 - 26 - /* configure GPIO for i2s port */ 27 - switch (pdev->id) { 28 - case 1: 29 - base = S5P6442_GPC1(0); 30 - break; 31 - 32 - case 0: 33 - base = S5P6442_GPC0(0); 34 - break; 35 - 36 - default: 37 - printk(KERN_ERR "Invalid Device %d\n", pdev->id); 38 - return -EINVAL; 39 - } 40 - 41 - s3c_gpio_cfgpin_range(base, 5, S3C_GPIO_SFN(2)); 42 - return 0; 43 - } 44 - 45 - static const char *rclksrc_v35[] = { 46 - [0] = "busclk", 47 - [1] = "i2sclk", 48 - }; 49 - 50 - static struct s3c_audio_pdata i2sv35_pdata = { 51 - .cfg_gpio = s5p6442_cfg_i2s, 52 - .type = { 53 - .i2s = { 54 - .quirks = QUIRK_SEC_DAI | QUIRK_NEED_RSTCLR, 55 - .src_clk = rclksrc_v35, 56 - }, 57 - }, 58 - }; 59 - 60 - static struct resource s5p6442_iis0_resource[] = { 61 - [0] = { 62 - .start = S5P6442_PA_I2S0, 63 - .end = S5P6442_PA_I2S0 + 0x100 - 1, 64 - .flags = IORESOURCE_MEM, 65 - }, 66 - [1] = { 67 - .start = DMACH_I2S0_TX, 68 - .end = DMACH_I2S0_TX, 69 - .flags = IORESOURCE_DMA, 70 - }, 71 - [2] = { 72 - .start = DMACH_I2S0_RX, 73 - .end = DMACH_I2S0_RX, 74 - .flags = IORESOURCE_DMA, 75 - }, 76 - [3] = { 77 - .start = DMACH_I2S0S_TX, 78 - .end = DMACH_I2S0S_TX, 79 - .flags = IORESOURCE_DMA, 80 - }, 81 - }; 82 - 83 - struct platform_device s5p6442_device_iis0 = { 84 - .name = "samsung-i2s", 85 - .id = 0, 86 - .num_resources = ARRAY_SIZE(s5p6442_iis0_resource), 87 - .resource = s5p6442_iis0_resource, 88 - .dev = { 89 - .platform_data = &i2sv35_pdata, 90 - }, 91 - }; 92 - 93 - static const char *rclksrc_v3[] = { 94 - [0] = "iis", 95 - [1] = "sclk_audio", 96 - }; 97 - 98 - static struct s3c_audio_pdata i2sv3_pdata = { 99 - .cfg_gpio = s5p6442_cfg_i2s, 100 - .type = { 101 - .i2s = { 102 - .src_clk = rclksrc_v3, 103 - }, 104 - }, 105 - }; 106 - 107 - static struct resource s5p6442_iis1_resource[] = { 108 - [0] = { 109 - .start = S5P6442_PA_I2S1, 110 - .end = S5P6442_PA_I2S1 + 0x100 - 1, 111 - .flags = IORESOURCE_MEM, 112 - }, 113 - [1] = { 114 - .start = DMACH_I2S1_TX, 115 - .end = DMACH_I2S1_TX, 116 - .flags = IORESOURCE_DMA, 117 - }, 118 - [2] = { 119 - .start = DMACH_I2S1_RX, 120 - .end = DMACH_I2S1_RX, 121 - .flags = IORESOURCE_DMA, 122 - }, 123 - }; 124 - 125 - struct platform_device s5p6442_device_iis1 = { 126 - .name = "samsung-i2s", 127 - .id = 1, 128 - .num_resources = ARRAY_SIZE(s5p6442_iis1_resource), 129 - .resource = s5p6442_iis1_resource, 130 - .dev = { 131 - .platform_data = &i2sv3_pdata, 132 - }, 133 - }; 134 - 135 - /* PCM Controller platform_devices */ 136 - 137 - static int s5p6442_pcm_cfg_gpio(struct platform_device *pdev) 138 - { 139 - unsigned int base; 140 - 141 - switch (pdev->id) { 142 - case 0: 143 - base = S5P6442_GPC0(0); 144 - break; 145 - 146 - case 1: 147 - base = S5P6442_GPC1(0); 148 - break; 149 - 150 - default: 151 - printk(KERN_DEBUG "Invalid PCM Controller number!"); 152 - return -EINVAL; 153 - } 154 - 155 - s3c_gpio_cfgpin_range(base, 5, S3C_GPIO_SFN(3)); 156 - return 0; 157 - } 158 - 159 - static struct s3c_audio_pdata s3c_pcm_pdata = { 160 - .cfg_gpio = s5p6442_pcm_cfg_gpio, 161 - }; 162 - 163 - static struct resource s5p6442_pcm0_resource[] = { 164 - [0] = { 165 - .start = S5P6442_PA_PCM0, 166 - .end = S5P6442_PA_PCM0 + 0x100 - 1, 167 - .flags = IORESOURCE_MEM, 168 - }, 169 - [1] = { 170 - .start = DMACH_PCM0_TX, 171 - .end = DMACH_PCM0_TX, 172 - .flags = IORESOURCE_DMA, 173 - }, 174 - [2] = { 175 - .start = DMACH_PCM0_RX, 176 - .end = DMACH_PCM0_RX, 177 - .flags = IORESOURCE_DMA, 178 - }, 179 - }; 180 - 181 - struct platform_device s5p6442_device_pcm0 = { 182 - .name = "samsung-pcm", 183 - .id = 0, 184 - .num_resources = ARRAY_SIZE(s5p6442_pcm0_resource), 185 - .resource = s5p6442_pcm0_resource, 186 - .dev = { 187 - .platform_data = &s3c_pcm_pdata, 188 - }, 189 - }; 190 - 191 - static struct resource s5p6442_pcm1_resource[] = { 192 - [0] = { 193 - .start = S5P6442_PA_PCM1, 194 - .end = S5P6442_PA_PCM1 + 0x100 - 1, 195 - .flags = IORESOURCE_MEM, 196 - }, 197 - [1] = { 198 - .start = DMACH_PCM1_TX, 199 - .end = DMACH_PCM1_TX, 200 - .flags = IORESOURCE_DMA, 201 - }, 202 - [2] = { 203 - .start = DMACH_PCM1_RX, 204 - .end = DMACH_PCM1_RX, 205 - .flags = IORESOURCE_DMA, 206 - }, 207 - }; 208 - 209 - struct platform_device s5p6442_device_pcm1 = { 210 - .name = "samsung-pcm", 211 - .id = 1, 212 - .num_resources = ARRAY_SIZE(s5p6442_pcm1_resource), 213 - .resource = s5p6442_pcm1_resource, 214 - .dev = { 215 - .platform_data = &s3c_pcm_pdata, 216 - }, 217 - };
-121
arch/arm/mach-s5p6442/dev-spi.c
··· 1 - /* linux/arch/arm/mach-s5p6442/dev-spi.c 2 - * 3 - * Copyright (C) 2010 Samsung Electronics Co. Ltd. 4 - * Jaswinder Singh <jassi.brar@samsung.com> 5 - * 6 - * This program is free software; you can redistribute it and/or modify 7 - * it under the terms of the GNU General Public License version 2 as 8 - * published by the Free Software Foundation. 9 - */ 10 - 11 - #include <linux/platform_device.h> 12 - #include <linux/dma-mapping.h> 13 - #include <linux/gpio.h> 14 - 15 - #include <mach/dma.h> 16 - #include <mach/map.h> 17 - #include <mach/irqs.h> 18 - #include <mach/spi-clocks.h> 19 - 20 - #include <plat/s3c64xx-spi.h> 21 - #include <plat/gpio-cfg.h> 22 - 23 - static char *spi_src_clks[] = { 24 - [S5P6442_SPI_SRCCLK_PCLK] = "pclk", 25 - [S5P6442_SPI_SRCCLK_SCLK] = "spi_epll", 26 - }; 27 - 28 - /* SPI Controller platform_devices */ 29 - 30 - /* Since we emulate multi-cs capability, we do not touch the CS. 31 - * The emulated CS is toggled by board specific mechanism, as it can 32 - * be either some immediate GPIO or some signal out of some other 33 - * chip in between ... or some yet another way. 34 - * We simply do not assume anything about CS. 35 - */ 36 - static int s5p6442_spi_cfg_gpio(struct platform_device *pdev) 37 - { 38 - switch (pdev->id) { 39 - case 0: 40 - s3c_gpio_cfgpin(S5P6442_GPB(0), S3C_GPIO_SFN(2)); 41 - s3c_gpio_setpull(S5P6442_GPB(0), S3C_GPIO_PULL_UP); 42 - s3c_gpio_cfgall_range(S5P6442_GPB(2), 2, 43 - S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP); 44 - break; 45 - 46 - default: 47 - dev_err(&pdev->dev, "Invalid SPI Controller number!"); 48 - return -EINVAL; 49 - } 50 - 51 - return 0; 52 - } 53 - 54 - static struct resource s5p6442_spi0_resource[] = { 55 - [0] = { 56 - .start = S5P6442_PA_SPI, 57 - .end = S5P6442_PA_SPI + 0x100 - 1, 58 - .flags = IORESOURCE_MEM, 59 - }, 60 - [1] = { 61 - .start = DMACH_SPI0_TX, 62 - .end = DMACH_SPI0_TX, 63 - .flags = IORESOURCE_DMA, 64 - }, 65 - [2] = { 66 - .start = DMACH_SPI0_RX, 67 - .end = DMACH_SPI0_RX, 68 - .flags = IORESOURCE_DMA, 69 - }, 70 - [3] = { 71 - .start = IRQ_SPI0, 72 - .end = IRQ_SPI0, 73 - .flags = IORESOURCE_IRQ, 74 - }, 75 - }; 76 - 77 - static struct s3c64xx_spi_info s5p6442_spi0_pdata = { 78 - .cfg_gpio = s5p6442_spi_cfg_gpio, 79 - .fifo_lvl_mask = 0x1ff, 80 - .rx_lvl_offset = 15, 81 - }; 82 - 83 - static u64 spi_dmamask = DMA_BIT_MASK(32); 84 - 85 - struct platform_device s5p6442_device_spi = { 86 - .name = "s3c64xx-spi", 87 - .id = 0, 88 - .num_resources = ARRAY_SIZE(s5p6442_spi0_resource), 89 - .resource = s5p6442_spi0_resource, 90 - .dev = { 91 - .dma_mask = &spi_dmamask, 92 - .coherent_dma_mask = DMA_BIT_MASK(32), 93 - .platform_data = &s5p6442_spi0_pdata, 94 - }, 95 - }; 96 - 97 - void __init s5p6442_spi_set_info(int cntrlr, int src_clk_nr, int num_cs) 98 - { 99 - struct s3c64xx_spi_info *pd; 100 - 101 - /* Reject invalid configuration */ 102 - if (!num_cs || src_clk_nr < 0 103 - || src_clk_nr > S5P6442_SPI_SRCCLK_SCLK) { 104 - printk(KERN_ERR "%s: Invalid SPI configuration\n", __func__); 105 - return; 106 - } 107 - 108 - switch (cntrlr) { 109 - case 0: 110 - pd = &s5p6442_spi0_pdata; 111 - break; 112 - default: 113 - printk(KERN_ERR "%s: Invalid SPI controller(%d)\n", 114 - __func__, cntrlr); 115 - return; 116 - } 117 - 118 - pd->num_cs = num_cs; 119 - pd->src_clk_nr = src_clk_nr; 120 - pd->src_clk_name = spi_src_clks[src_clk_nr]; 121 - }
-105
arch/arm/mach-s5p6442/dma.c
··· 1 - /* 2 - * Copyright (C) 2010 Samsung Electronics Co. Ltd. 3 - * Jaswinder Singh <jassi.brar@samsung.com> 4 - * 5 - * This program is free software; you can redistribute it and/or modify 6 - * it under the terms of the GNU General Public License as published by 7 - * the Free Software Foundation; either version 2 of the License, or 8 - * (at your option) any later version. 9 - * 10 - * This program is distributed in the hope that it will be useful, 11 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 - * GNU General Public License for more details. 14 - * 15 - * You should have received a copy of the GNU General Public License 16 - * along with this program; if not, write to the Free Software 17 - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 18 - */ 19 - 20 - #include <linux/platform_device.h> 21 - #include <linux/dma-mapping.h> 22 - 23 - #include <plat/devs.h> 24 - #include <plat/irqs.h> 25 - 26 - #include <mach/map.h> 27 - #include <mach/irqs.h> 28 - 29 - #include <plat/s3c-pl330-pdata.h> 30 - 31 - static u64 dma_dmamask = DMA_BIT_MASK(32); 32 - 33 - static struct resource s5p6442_pdma_resource[] = { 34 - [0] = { 35 - .start = S5P6442_PA_PDMA, 36 - .end = S5P6442_PA_PDMA + SZ_4K, 37 - .flags = IORESOURCE_MEM, 38 - }, 39 - [1] = { 40 - .start = IRQ_PDMA, 41 - .end = IRQ_PDMA, 42 - .flags = IORESOURCE_IRQ, 43 - }, 44 - }; 45 - 46 - static struct s3c_pl330_platdata s5p6442_pdma_pdata = { 47 - .peri = { 48 - [0] = DMACH_UART0_RX, 49 - [1] = DMACH_UART0_TX, 50 - [2] = DMACH_UART1_RX, 51 - [3] = DMACH_UART1_TX, 52 - [4] = DMACH_UART2_RX, 53 - [5] = DMACH_UART2_TX, 54 - [6] = DMACH_MAX, 55 - [7] = DMACH_MAX, 56 - [8] = DMACH_MAX, 57 - [9] = DMACH_I2S0_RX, 58 - [10] = DMACH_I2S0_TX, 59 - [11] = DMACH_I2S0S_TX, 60 - [12] = DMACH_I2S1_RX, 61 - [13] = DMACH_I2S1_TX, 62 - [14] = DMACH_MAX, 63 - [15] = DMACH_MAX, 64 - [16] = DMACH_SPI0_RX, 65 - [17] = DMACH_SPI0_TX, 66 - [18] = DMACH_MAX, 67 - [19] = DMACH_MAX, 68 - [20] = DMACH_PCM0_RX, 69 - [21] = DMACH_PCM0_TX, 70 - [22] = DMACH_PCM1_RX, 71 - [23] = DMACH_PCM1_TX, 72 - [24] = DMACH_MAX, 73 - [25] = DMACH_MAX, 74 - [26] = DMACH_MAX, 75 - [27] = DMACH_MSM_REQ0, 76 - [28] = DMACH_MSM_REQ1, 77 - [29] = DMACH_MSM_REQ2, 78 - [30] = DMACH_MSM_REQ3, 79 - [31] = DMACH_MAX, 80 - }, 81 - }; 82 - 83 - static struct platform_device s5p6442_device_pdma = { 84 - .name = "s3c-pl330", 85 - .id = -1, 86 - .num_resources = ARRAY_SIZE(s5p6442_pdma_resource), 87 - .resource = s5p6442_pdma_resource, 88 - .dev = { 89 - .dma_mask = &dma_dmamask, 90 - .coherent_dma_mask = DMA_BIT_MASK(32), 91 - .platform_data = &s5p6442_pdma_pdata, 92 - }, 93 - }; 94 - 95 - static struct platform_device *s5p6442_dmacs[] __initdata = { 96 - &s5p6442_device_pdma, 97 - }; 98 - 99 - static int __init s5p6442_dma_init(void) 100 - { 101 - platform_add_devices(s5p6442_dmacs, ARRAY_SIZE(s5p6442_dmacs)); 102 - 103 - return 0; 104 - } 105 - arch_initcall(s5p6442_dma_init);
-35
arch/arm/mach-s5p6442/include/mach/debug-macro.S
··· 1 - /* linux/arch/arm/mach-s5p6442/include/mach/debug-macro.S 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * Based on arch/arm/mach-s3c6400/include/mach/debug-macro.S 7 - * 8 - * This program is free software; you can redistribute it and/or modify 9 - * it under the terms of the GNU General Public License version 2 as 10 - * published by the Free Software Foundation. 11 - */ 12 - 13 - /* pull in the relevant register and map files. */ 14 - 15 - #include <mach/map.h> 16 - #include <plat/regs-serial.h> 17 - 18 - .macro addruart, rp, rv 19 - ldr \rp, = S3C_PA_UART 20 - ldr \rv, = S3C_VA_UART 21 - #if CONFIG_DEBUG_S3C_UART != 0 22 - add \rp, \rp, #(0x400 * CONFIG_DEBUG_S3C_UART) 23 - add \rv, \rv, #(0x400 * CONFIG_DEBUG_S3C_UART) 24 - #endif 25 - .endm 26 - 27 - #define fifo_full fifo_full_s5pv210 28 - #define fifo_level fifo_level_s5pv210 29 - 30 - /* include the reset of the code which will do the work, we're only 31 - * compiling for a single cpu processor type so the default of s3c2440 32 - * will be fine with us. 33 - */ 34 - 35 - #include <plat/debug-macro.S>
-26
arch/arm/mach-s5p6442/include/mach/dma.h
··· 1 - /* 2 - * Copyright (C) 2010 Samsung Electronics Co. Ltd. 3 - * Jaswinder Singh <jassi.brar@samsung.com> 4 - * 5 - * This program is free software; you can redistribute it and/or modify 6 - * it under the terms of the GNU General Public License as published by 7 - * the Free Software Foundation; either version 2 of the License, or 8 - * (at your option) any later version. 9 - * 10 - * This program is distributed in the hope that it will be useful, 11 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 - * GNU General Public License for more details. 14 - * 15 - * You should have received a copy of the GNU General Public License 16 - * along with this program; if not, write to the Free Software 17 - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 18 - */ 19 - 20 - #ifndef __MACH_DMA_H 21 - #define __MACH_DMA_H 22 - 23 - /* This platform uses the common S3C DMA API driver for PL330 */ 24 - #include <plat/s3c-dma-pl330.h> 25 - 26 - #endif /* __MACH_DMA_H */
-48
arch/arm/mach-s5p6442/include/mach/entry-macro.S
··· 1 - /* linux/arch/arm/mach-s5p6442/include/mach/entry-macro.S 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * Low-level IRQ helper macros for the Samsung S5P6442 7 - * 8 - * This program is free software; you can redistribute it and/or modify 9 - * it under the terms of the GNU General Public License version 2 as 10 - * published by the Free Software Foundation. 11 - */ 12 - 13 - #include <asm/hardware/vic.h> 14 - #include <mach/map.h> 15 - #include <plat/irqs.h> 16 - 17 - .macro disable_fiq 18 - .endm 19 - 20 - .macro get_irqnr_preamble, base, tmp 21 - ldr \base, =VA_VIC0 22 - .endm 23 - 24 - .macro arch_ret_to_user, tmp1, tmp2 25 - .endm 26 - 27 - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp 28 - 29 - @ check the vic0 30 - mov \irqnr, # S5P_IRQ_OFFSET + 31 31 - ldr \irqstat, [ \base, # VIC_IRQ_STATUS ] 32 - teq \irqstat, #0 33 - 34 - @ otherwise try vic1 35 - addeq \tmp, \base, #(VA_VIC1 - VA_VIC0) 36 - addeq \irqnr, \irqnr, #32 37 - ldreq \irqstat, [ \tmp, # VIC_IRQ_STATUS ] 38 - teqeq \irqstat, #0 39 - 40 - @ otherwise try vic2 41 - addeq \tmp, \base, #(VA_VIC2 - VA_VIC0) 42 - addeq \irqnr, \irqnr, #32 43 - ldreq \irqstat, [ \tmp, # VIC_IRQ_STATUS ] 44 - teqeq \irqstat, #0 45 - 46 - clzne \irqstat, \irqstat 47 - subne \irqnr, \irqnr, \irqstat 48 - .endm
-123
arch/arm/mach-s5p6442/include/mach/gpio.h
··· 1 - /* linux/arch/arm/mach-s5p6442/include/mach/gpio.h 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * S5P6442 - GPIO lib support 7 - * 8 - * This program is free software; you can redistribute it and/or modify 9 - * it under the terms of the GNU General Public License version 2 as 10 - * published by the Free Software Foundation. 11 - */ 12 - 13 - #ifndef __ASM_ARCH_GPIO_H 14 - #define __ASM_ARCH_GPIO_H __FILE__ 15 - 16 - #define gpio_get_value __gpio_get_value 17 - #define gpio_set_value __gpio_set_value 18 - #define gpio_cansleep __gpio_cansleep 19 - #define gpio_to_irq __gpio_to_irq 20 - 21 - /* GPIO bank sizes */ 22 - #define S5P6442_GPIO_A0_NR (8) 23 - #define S5P6442_GPIO_A1_NR (2) 24 - #define S5P6442_GPIO_B_NR (4) 25 - #define S5P6442_GPIO_C0_NR (5) 26 - #define S5P6442_GPIO_C1_NR (5) 27 - #define S5P6442_GPIO_D0_NR (2) 28 - #define S5P6442_GPIO_D1_NR (6) 29 - #define S5P6442_GPIO_E0_NR (8) 30 - #define S5P6442_GPIO_E1_NR (5) 31 - #define S5P6442_GPIO_F0_NR (8) 32 - #define S5P6442_GPIO_F1_NR (8) 33 - #define S5P6442_GPIO_F2_NR (8) 34 - #define S5P6442_GPIO_F3_NR (6) 35 - #define S5P6442_GPIO_G0_NR (7) 36 - #define S5P6442_GPIO_G1_NR (7) 37 - #define S5P6442_GPIO_G2_NR (7) 38 - #define S5P6442_GPIO_H0_NR (8) 39 - #define S5P6442_GPIO_H1_NR (8) 40 - #define S5P6442_GPIO_H2_NR (8) 41 - #define S5P6442_GPIO_H3_NR (8) 42 - #define S5P6442_GPIO_J0_NR (8) 43 - #define S5P6442_GPIO_J1_NR (6) 44 - #define S5P6442_GPIO_J2_NR (8) 45 - #define S5P6442_GPIO_J3_NR (8) 46 - #define S5P6442_GPIO_J4_NR (5) 47 - 48 - /* GPIO bank numbers */ 49 - 50 - /* CONFIG_S3C_GPIO_SPACE allows the user to select extra 51 - * space for debugging purposes so that any accidental 52 - * change from one gpio bank to another can be caught. 53 - */ 54 - 55 - #define S5P6442_GPIO_NEXT(__gpio) \ 56 - ((__gpio##_START) + (__gpio##_NR) + CONFIG_S3C_GPIO_SPACE + 1) 57 - 58 - enum s5p_gpio_number { 59 - S5P6442_GPIO_A0_START = 0, 60 - S5P6442_GPIO_A1_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_A0), 61 - S5P6442_GPIO_B_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_A1), 62 - S5P6442_GPIO_C0_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_B), 63 - S5P6442_GPIO_C1_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_C0), 64 - S5P6442_GPIO_D0_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_C1), 65 - S5P6442_GPIO_D1_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_D0), 66 - S5P6442_GPIO_E0_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_D1), 67 - S5P6442_GPIO_E1_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_E0), 68 - S5P6442_GPIO_F0_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_E1), 69 - S5P6442_GPIO_F1_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_F0), 70 - S5P6442_GPIO_F2_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_F1), 71 - S5P6442_GPIO_F3_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_F2), 72 - S5P6442_GPIO_G0_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_F3), 73 - S5P6442_GPIO_G1_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_G0), 74 - S5P6442_GPIO_G2_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_G1), 75 - S5P6442_GPIO_H0_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_G2), 76 - S5P6442_GPIO_H1_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_H0), 77 - S5P6442_GPIO_H2_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_H1), 78 - S5P6442_GPIO_H3_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_H2), 79 - S5P6442_GPIO_J0_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_H3), 80 - S5P6442_GPIO_J1_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_J0), 81 - S5P6442_GPIO_J2_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_J1), 82 - S5P6442_GPIO_J3_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_J2), 83 - S5P6442_GPIO_J4_START = S5P6442_GPIO_NEXT(S5P6442_GPIO_J3), 84 - }; 85 - 86 - /* S5P6442 GPIO number definitions. */ 87 - #define S5P6442_GPA0(_nr) (S5P6442_GPIO_A0_START + (_nr)) 88 - #define S5P6442_GPA1(_nr) (S5P6442_GPIO_A1_START + (_nr)) 89 - #define S5P6442_GPB(_nr) (S5P6442_GPIO_B_START + (_nr)) 90 - #define S5P6442_GPC0(_nr) (S5P6442_GPIO_C0_START + (_nr)) 91 - #define S5P6442_GPC1(_nr) (S5P6442_GPIO_C1_START + (_nr)) 92 - #define S5P6442_GPD0(_nr) (S5P6442_GPIO_D0_START + (_nr)) 93 - #define S5P6442_GPD1(_nr) (S5P6442_GPIO_D1_START + (_nr)) 94 - #define S5P6442_GPE0(_nr) (S5P6442_GPIO_E0_START + (_nr)) 95 - #define S5P6442_GPE1(_nr) (S5P6442_GPIO_E1_START + (_nr)) 96 - #define S5P6442_GPF0(_nr) (S5P6442_GPIO_F0_START + (_nr)) 97 - #define S5P6442_GPF1(_nr) (S5P6442_GPIO_F1_START + (_nr)) 98 - #define S5P6442_GPF2(_nr) (S5P6442_GPIO_F2_START + (_nr)) 99 - #define S5P6442_GPF3(_nr) (S5P6442_GPIO_F3_START + (_nr)) 100 - #define S5P6442_GPG0(_nr) (S5P6442_GPIO_G0_START + (_nr)) 101 - #define S5P6442_GPG1(_nr) (S5P6442_GPIO_G1_START + (_nr)) 102 - #define S5P6442_GPG2(_nr) (S5P6442_GPIO_G2_START + (_nr)) 103 - #define S5P6442_GPH0(_nr) (S5P6442_GPIO_H0_START + (_nr)) 104 - #define S5P6442_GPH1(_nr) (S5P6442_GPIO_H1_START + (_nr)) 105 - #define S5P6442_GPH2(_nr) (S5P6442_GPIO_H2_START + (_nr)) 106 - #define S5P6442_GPH3(_nr) (S5P6442_GPIO_H3_START + (_nr)) 107 - #define S5P6442_GPJ0(_nr) (S5P6442_GPIO_J0_START + (_nr)) 108 - #define S5P6442_GPJ1(_nr) (S5P6442_GPIO_J1_START + (_nr)) 109 - #define S5P6442_GPJ2(_nr) (S5P6442_GPIO_J2_START + (_nr)) 110 - #define S5P6442_GPJ3(_nr) (S5P6442_GPIO_J3_START + (_nr)) 111 - #define S5P6442_GPJ4(_nr) (S5P6442_GPIO_J4_START + (_nr)) 112 - 113 - /* the end of the S5P6442 specific gpios */ 114 - #define S5P6442_GPIO_END (S5P6442_GPJ4(S5P6442_GPIO_J4_NR) + 1) 115 - #define S3C_GPIO_END S5P6442_GPIO_END 116 - 117 - /* define the number of gpios we need to the one after the GPJ4() range */ 118 - #define ARCH_NR_GPIOS (S5P6442_GPJ4(S5P6442_GPIO_J4_NR) + \ 119 - CONFIG_SAMSUNG_GPIO_EXTRA + 1) 120 - 121 - #include <asm-generic/gpio.h> 122 - 123 - #endif /* __ASM_ARCH_GPIO_H */
-18
arch/arm/mach-s5p6442/include/mach/hardware.h
··· 1 - /* linux/arch/arm/mach-s5p6442/include/mach/hardware.h 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * S5P6442 - Hardware support 7 - * 8 - * This program is free software; you can redistribute it and/or modify 9 - * it under the terms of the GNU General Public License version 2 as 10 - * published by the Free Software Foundation. 11 - */ 12 - 13 - #ifndef __ASM_ARCH_HARDWARE_H 14 - #define __ASM_ARCH_HARDWARE_H __FILE__ 15 - 16 - /* currently nothing here, placeholder */ 17 - 18 - #endif /* __ASM_ARCH_HARDWARE_H */
-17
arch/arm/mach-s5p6442/include/mach/io.h
··· 1 - /* arch/arm/mach-s5p6442/include/mach/io.h 2 - * 3 - * Copyright 2008-2010 Ben Dooks <ben-linux@fluff.org> 4 - * 5 - * Default IO routines for S5P6442 6 - */ 7 - 8 - #ifndef __ASM_ARM_ARCH_IO_H 9 - #define __ASM_ARM_ARCH_IO_H 10 - 11 - /* No current ISA/PCI bus support. */ 12 - #define __io(a) __typesafe_io(a) 13 - #define __mem_pci(a) (a) 14 - 15 - #define IO_SPACE_LIMIT (0xFFFFFFFF) 16 - 17 - #endif
-87
arch/arm/mach-s5p6442/include/mach/irqs.h
··· 1 - /* linux/arch/arm/mach-s5p6442/include/mach/irqs.h 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * S5P6442 - IRQ definitions 7 - * 8 - * This program is free software; you can redistribute it and/or modify 9 - * it under the terms of the GNU General Public License version 2 as 10 - * published by the Free Software Foundation. 11 - */ 12 - 13 - #ifndef __ASM_ARCH_IRQS_H 14 - #define __ASM_ARCH_IRQS_H __FILE__ 15 - 16 - #include <plat/irqs.h> 17 - 18 - /* VIC0 */ 19 - #define IRQ_EINT16_31 S5P_IRQ_VIC0(16) 20 - #define IRQ_BATF S5P_IRQ_VIC0(17) 21 - #define IRQ_MDMA S5P_IRQ_VIC0(18) 22 - #define IRQ_PDMA S5P_IRQ_VIC0(19) 23 - #define IRQ_TIMER0_VIC S5P_IRQ_VIC0(21) 24 - #define IRQ_TIMER1_VIC S5P_IRQ_VIC0(22) 25 - #define IRQ_TIMER2_VIC S5P_IRQ_VIC0(23) 26 - #define IRQ_TIMER3_VIC S5P_IRQ_VIC0(24) 27 - #define IRQ_TIMER4_VIC S5P_IRQ_VIC0(25) 28 - #define IRQ_SYSTIMER S5P_IRQ_VIC0(26) 29 - #define IRQ_WDT S5P_IRQ_VIC0(27) 30 - #define IRQ_RTC_ALARM S5P_IRQ_VIC0(28) 31 - #define IRQ_RTC_TIC S5P_IRQ_VIC0(29) 32 - #define IRQ_GPIOINT S5P_IRQ_VIC0(30) 33 - 34 - /* VIC1 */ 35 - #define IRQ_PMU S5P_IRQ_VIC1(0) 36 - #define IRQ_ONENAND S5P_IRQ_VIC1(7) 37 - #define IRQ_UART0 S5P_IRQ_VIC1(10) 38 - #define IRQ_UART1 S5P_IRQ_VIC1(11) 39 - #define IRQ_UART2 S5P_IRQ_VIC1(12) 40 - #define IRQ_SPI0 S5P_IRQ_VIC1(15) 41 - #define IRQ_IIC S5P_IRQ_VIC1(19) 42 - #define IRQ_IIC1 S5P_IRQ_VIC1(20) 43 - #define IRQ_IIC2 S5P_IRQ_VIC1(21) 44 - #define IRQ_OTG S5P_IRQ_VIC1(24) 45 - #define IRQ_MSM S5P_IRQ_VIC1(25) 46 - #define IRQ_HSMMC0 S5P_IRQ_VIC1(26) 47 - #define IRQ_HSMMC1 S5P_IRQ_VIC1(27) 48 - #define IRQ_HSMMC2 S5P_IRQ_VIC1(28) 49 - #define IRQ_COMMRX S5P_IRQ_VIC1(29) 50 - #define IRQ_COMMTX S5P_IRQ_VIC1(30) 51 - 52 - /* VIC2 */ 53 - #define IRQ_LCD0 S5P_IRQ_VIC2(0) 54 - #define IRQ_LCD1 S5P_IRQ_VIC2(1) 55 - #define IRQ_LCD2 S5P_IRQ_VIC2(2) 56 - #define IRQ_LCD3 S5P_IRQ_VIC2(3) 57 - #define IRQ_ROTATOR S5P_IRQ_VIC2(4) 58 - #define IRQ_FIMC0 S5P_IRQ_VIC2(5) 59 - #define IRQ_FIMC1 S5P_IRQ_VIC2(6) 60 - #define IRQ_FIMC2 S5P_IRQ_VIC2(7) 61 - #define IRQ_JPEG S5P_IRQ_VIC2(8) 62 - #define IRQ_3D S5P_IRQ_VIC2(10) 63 - #define IRQ_Mixer S5P_IRQ_VIC2(11) 64 - #define IRQ_MFC S5P_IRQ_VIC2(14) 65 - #define IRQ_TVENC S5P_IRQ_VIC2(15) 66 - #define IRQ_I2S0 S5P_IRQ_VIC2(16) 67 - #define IRQ_I2S1 S5P_IRQ_VIC2(17) 68 - #define IRQ_RP S5P_IRQ_VIC2(19) 69 - #define IRQ_PCM0 S5P_IRQ_VIC2(20) 70 - #define IRQ_PCM1 S5P_IRQ_VIC2(21) 71 - #define IRQ_ADC S5P_IRQ_VIC2(23) 72 - #define IRQ_PENDN S5P_IRQ_VIC2(24) 73 - #define IRQ_KEYPAD S5P_IRQ_VIC2(25) 74 - #define IRQ_SSS_INT S5P_IRQ_VIC2(27) 75 - #define IRQ_SSS_HASH S5P_IRQ_VIC2(28) 76 - #define IRQ_VIC_END S5P_IRQ_VIC2(31) 77 - 78 - #define S5P_IRQ_EINT_BASE (IRQ_VIC_END + 1) 79 - 80 - #define S5P_EINT_BASE1 (S5P_IRQ_VIC0(0)) 81 - #define S5P_EINT_BASE2 (S5P_IRQ_EINT_BASE) 82 - 83 - /* Set the default NR_IRQS */ 84 - 85 - #define NR_IRQS (IRQ_EINT(31) + 1) 86 - 87 - #endif /* __ASM_ARCH_IRQS_H */
-76
arch/arm/mach-s5p6442/include/mach/map.h
··· 1 - /* linux/arch/arm/mach-s5p6442/include/mach/map.h 2 - * 3 - * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * S5P6442 - Memory map definitions 7 - * 8 - * This program is free software; you can redistribute it and/or modify 9 - * it under the terms of the GNU General Public License version 2 as 10 - * published by the Free Software Foundation. 11 - */ 12 - 13 - #ifndef __ASM_ARCH_MAP_H 14 - #define __ASM_ARCH_MAP_H __FILE__ 15 - 16 - #include <plat/map-base.h> 17 - #include <plat/map-s5p.h> 18 - 19 - #define S5P6442_PA_SDRAM 0x20000000 20 - 21 - #define S5P6442_PA_I2S0 0xC0B00000 22 - #define S5P6442_PA_I2S1 0xF2200000 23 - 24 - #define S5P6442_PA_CHIPID 0xE0000000 25 - 26 - #define S5P6442_PA_SYSCON 0xE0100000 27 - 28 - #define S5P6442_PA_GPIO 0xE0200000 29 - 30 - #define S5P6442_PA_VIC0 0xE4000000 31 - #define S5P6442_PA_VIC1 0xE4100000 32 - #define S5P6442_PA_VIC2 0xE4200000 33 - 34 - #define S5P6442_PA_SROMC 0xE7000000 35 - 36 - #define S5P6442_PA_MDMA 0xE8000000 37 - #define S5P6442_PA_PDMA 0xE9000000 38 - 39 - #define S5P6442_PA_TIMER 0xEA000000 40 - 41 - #define S5P6442_PA_SYSTIMER 0xEA100000 42 - 43 - #define S5P6442_PA_WATCHDOG 0xEA200000 44 - 45 - #define S5P6442_PA_UART 0xEC000000 46 - 47 - #define S5P6442_PA_IIC0 0xEC100000 48 - 49 - #define S5P6442_PA_SPI 0xEC300000 50 - 51 - #define S5P6442_PA_PCM0 0xF2400000 52 - #define S5P6442_PA_PCM1 0xF2500000 53 - 54 - /* Compatibiltiy Defines */ 55 - 56 - #define S3C_PA_IIC S5P6442_PA_IIC0 57 - #define S3C_PA_WDT S5P6442_PA_WATCHDOG 58 - 59 - #define S5P_PA_CHIPID S5P6442_PA_CHIPID 60 - #define S5P_PA_SDRAM S5P6442_PA_SDRAM 61 - #define S5P_PA_SROMC S5P6442_PA_SROMC 62 - #define S5P_PA_SYSCON S5P6442_PA_SYSCON 63 - #define S5P_PA_TIMER S5P6442_PA_TIMER 64 - 65 - /* UART */ 66 - 67 - #define S3C_PA_UART S5P6442_PA_UART 68 - 69 - #define S5P_PA_UART(x) (S3C_PA_UART + ((x) * S3C_UART_OFFSET)) 70 - #define S5P_PA_UART0 S5P_PA_UART(0) 71 - #define S5P_PA_UART1 S5P_PA_UART(1) 72 - #define S5P_PA_UART2 S5P_PA_UART(2) 73 - 74 - #define S5P_SZ_UART SZ_256 75 - 76 - #endif /* __ASM_ARCH_MAP_H */
-19
arch/arm/mach-s5p6442/include/mach/memory.h
··· 1 - /* linux/arch/arm/mach-s5p6442/include/mach/memory.h 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * S5P6442 - Memory definitions 7 - * 8 - * This program is free software; you can redistribute it and/or modify 9 - * it under the terms of the GNU General Public License version 2 as 10 - * published by the Free Software Foundation. 11 - */ 12 - 13 - #ifndef __ASM_ARCH_MEMORY_H 14 - #define __ASM_ARCH_MEMORY_H 15 - 16 - #define PLAT_PHYS_OFFSET UL(0x20000000) 17 - #define CONSISTENT_DMA_SIZE SZ_8M 18 - 19 - #endif /* __ASM_ARCH_MEMORY_H */
-70
arch/arm/mach-s5p6442/include/mach/pwm-clock.h
··· 1 - /* linux/arch/arm/mach-s5p6442/include/mach/pwm-clock.h 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * Copyright 2008 Openmoko, Inc. 7 - * Copyright 2008 Simtec Electronics 8 - * Ben Dooks <ben@simtec.co.uk> 9 - * http://armlinux.simtec.co.uk/ 10 - * 11 - * Based on arch/arm/mach-s3c64xx/include/mach/pwm-clock.h 12 - * 13 - * S5P6442 - pwm clock and timer support 14 - * 15 - * This program is free software; you can redistribute it and/or modify 16 - * it under the terms of the GNU General Public License version 2 as 17 - * published by the Free Software Foundation. 18 - */ 19 - 20 - #ifndef __ASM_ARCH_PWMCLK_H 21 - #define __ASM_ARCH_PWMCLK_H __FILE__ 22 - 23 - /** 24 - * pwm_cfg_src_is_tclk() - return whether the given mux config is a tclk 25 - * @tcfg: The timer TCFG1 register bits shifted down to 0. 26 - * 27 - * Return true if the given configuration from TCFG1 is a TCLK instead 28 - * any of the TDIV clocks. 29 - */ 30 - static inline int pwm_cfg_src_is_tclk(unsigned long tcfg) 31 - { 32 - return tcfg == S3C64XX_TCFG1_MUX_TCLK; 33 - } 34 - 35 - /** 36 - * tcfg_to_divisor() - convert tcfg1 setting to a divisor 37 - * @tcfg1: The tcfg1 setting, shifted down. 38 - * 39 - * Get the divisor value for the given tcfg1 setting. We assume the 40 - * caller has already checked to see if this is not a TCLK source. 41 - */ 42 - static inline unsigned long tcfg_to_divisor(unsigned long tcfg1) 43 - { 44 - return 1 << tcfg1; 45 - } 46 - 47 - /** 48 - * pwm_tdiv_has_div1() - does the tdiv setting have a /1 49 - * 50 - * Return true if we have a /1 in the tdiv setting. 51 - */ 52 - static inline unsigned int pwm_tdiv_has_div1(void) 53 - { 54 - return 1; 55 - } 56 - 57 - /** 58 - * pwm_tdiv_div_bits() - calculate TCFG1 divisor value. 59 - * @div: The divisor to calculate the bit information for. 60 - * 61 - * Turn a divisor into the necessary bit field for TCFG1. 62 - */ 63 - static inline unsigned long pwm_tdiv_div_bits(unsigned int div) 64 - { 65 - return ilog2(div); 66 - } 67 - 68 - #define S3C_TCFG1_MUX_TCLK S3C64XX_TCFG1_MUX_TCLK 69 - 70 - #endif /* __ASM_ARCH_PWMCLK_H */
-104
arch/arm/mach-s5p6442/include/mach/regs-clock.h
··· 1 - /* linux/arch/arm/mach-s5p6442/include/mach/regs-clock.h 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * S5P6442 - Clock register definitions 7 - * 8 - * This program is free software; you can redistribute it and/or modify 9 - * it under the terms of the GNU General Public License version 2 as 10 - * published by the Free Software Foundation. 11 - */ 12 - 13 - #ifndef __ASM_ARCH_REGS_CLOCK_H 14 - #define __ASM_ARCH_REGS_CLOCK_H __FILE__ 15 - 16 - #include <mach/map.h> 17 - 18 - #define S5P_CLKREG(x) (S3C_VA_SYS + (x)) 19 - 20 - #define S5P_APLL_LOCK S5P_CLKREG(0x00) 21 - #define S5P_MPLL_LOCK S5P_CLKREG(0x08) 22 - #define S5P_EPLL_LOCK S5P_CLKREG(0x10) 23 - #define S5P_VPLL_LOCK S5P_CLKREG(0x20) 24 - 25 - #define S5P_APLL_CON S5P_CLKREG(0x100) 26 - #define S5P_MPLL_CON S5P_CLKREG(0x108) 27 - #define S5P_EPLL_CON S5P_CLKREG(0x110) 28 - #define S5P_VPLL_CON S5P_CLKREG(0x120) 29 - 30 - #define S5P_CLK_SRC0 S5P_CLKREG(0x200) 31 - #define S5P_CLK_SRC1 S5P_CLKREG(0x204) 32 - #define S5P_CLK_SRC2 S5P_CLKREG(0x208) 33 - #define S5P_CLK_SRC3 S5P_CLKREG(0x20C) 34 - #define S5P_CLK_SRC4 S5P_CLKREG(0x210) 35 - #define S5P_CLK_SRC5 S5P_CLKREG(0x214) 36 - #define S5P_CLK_SRC6 S5P_CLKREG(0x218) 37 - 38 - #define S5P_CLK_SRC_MASK0 S5P_CLKREG(0x280) 39 - #define S5P_CLK_SRC_MASK1 S5P_CLKREG(0x284) 40 - 41 - #define S5P_CLK_DIV0 S5P_CLKREG(0x300) 42 - #define S5P_CLK_DIV1 S5P_CLKREG(0x304) 43 - #define S5P_CLK_DIV2 S5P_CLKREG(0x308) 44 - #define S5P_CLK_DIV3 S5P_CLKREG(0x30C) 45 - #define S5P_CLK_DIV4 S5P_CLKREG(0x310) 46 - #define S5P_CLK_DIV5 S5P_CLKREG(0x314) 47 - #define S5P_CLK_DIV6 S5P_CLKREG(0x318) 48 - 49 - #define S5P_CLKGATE_IP0 S5P_CLKREG(0x460) 50 - #define S5P_CLKGATE_IP3 S5P_CLKREG(0x46C) 51 - 52 - /* CLK_OUT */ 53 - #define S5P_CLK_OUT_SHIFT (12) 54 - #define S5P_CLK_OUT_MASK (0x1F << S5P_CLK_OUT_SHIFT) 55 - #define S5P_CLK_OUT S5P_CLKREG(0x500) 56 - 57 - #define S5P_CLK_DIV_STAT0 S5P_CLKREG(0x1000) 58 - #define S5P_CLK_DIV_STAT1 S5P_CLKREG(0x1004) 59 - 60 - #define S5P_CLK_MUX_STAT0 S5P_CLKREG(0x1100) 61 - #define S5P_CLK_MUX_STAT1 S5P_CLKREG(0x1104) 62 - 63 - #define S5P_MDNIE_SEL S5P_CLKREG(0x7008) 64 - 65 - /* Register Bit definition */ 66 - #define S5P_EPLL_EN (1<<31) 67 - #define S5P_EPLL_MASK 0xffffffff 68 - #define S5P_EPLLVAL(_m, _p, _s) ((_m) << 16 | ((_p) << 8) | ((_s))) 69 - 70 - /* CLKDIV0 */ 71 - #define S5P_CLKDIV0_APLL_SHIFT (0) 72 - #define S5P_CLKDIV0_APLL_MASK (0x7 << S5P_CLKDIV0_APLL_SHIFT) 73 - #define S5P_CLKDIV0_A2M_SHIFT (4) 74 - #define S5P_CLKDIV0_A2M_MASK (0x7 << S5P_CLKDIV0_A2M_SHIFT) 75 - #define S5P_CLKDIV0_D0CLK_SHIFT (16) 76 - #define S5P_CLKDIV0_D0CLK_MASK (0xF << S5P_CLKDIV0_D0CLK_SHIFT) 77 - #define S5P_CLKDIV0_P0CLK_SHIFT (20) 78 - #define S5P_CLKDIV0_P0CLK_MASK (0x7 << S5P_CLKDIV0_P0CLK_SHIFT) 79 - #define S5P_CLKDIV0_D1CLK_SHIFT (24) 80 - #define S5P_CLKDIV0_D1CLK_MASK (0xF << S5P_CLKDIV0_D1CLK_SHIFT) 81 - #define S5P_CLKDIV0_P1CLK_SHIFT (28) 82 - #define S5P_CLKDIV0_P1CLK_MASK (0x7 << S5P_CLKDIV0_P1CLK_SHIFT) 83 - 84 - /* Clock MUX status Registers */ 85 - #define S5P_CLK_MUX_STAT0_APLL_SHIFT (0) 86 - #define S5P_CLK_MUX_STAT0_APLL_MASK (0x7 << S5P_CLK_MUX_STAT0_APLL_SHIFT) 87 - #define S5P_CLK_MUX_STAT0_MPLL_SHIFT (4) 88 - #define S5P_CLK_MUX_STAT0_MPLL_MASK (0x7 << S5P_CLK_MUX_STAT0_MPLL_SHIFT) 89 - #define S5P_CLK_MUX_STAT0_EPLL_SHIFT (8) 90 - #define S5P_CLK_MUX_STAT0_EPLL_MASK (0x7 << S5P_CLK_MUX_STAT0_EPLL_SHIFT) 91 - #define S5P_CLK_MUX_STAT0_VPLL_SHIFT (12) 92 - #define S5P_CLK_MUX_STAT0_VPLL_MASK (0x7 << S5P_CLK_MUX_STAT0_VPLL_SHIFT) 93 - #define S5P_CLK_MUX_STAT0_MUXARM_SHIFT (16) 94 - #define S5P_CLK_MUX_STAT0_MUXARM_MASK (0x7 << S5P_CLK_MUX_STAT0_MUXARM_SHIFT) 95 - #define S5P_CLK_MUX_STAT0_MUXD0_SHIFT (20) 96 - #define S5P_CLK_MUX_STAT0_MUXD0_MASK (0x7 << S5P_CLK_MUX_STAT0_MUXD0_SHIFT) 97 - #define S5P_CLK_MUX_STAT0_MUXD1_SHIFT (24) 98 - #define S5P_CLK_MUX_STAT0_MUXD1_MASK (0x7 << S5P_CLK_MUX_STAT0_MUXD1_SHIFT) 99 - #define S5P_CLK_MUX_STAT1_D1SYNC_SHIFT (24) 100 - #define S5P_CLK_MUX_STAT1_D1SYNC_MASK (0x7 << S5P_CLK_MUX_STAT1_D1SYNC_SHIFT) 101 - #define S5P_CLK_MUX_STAT1_D0SYNC_SHIFT (28) 102 - #define S5P_CLK_MUX_STAT1_D0SYNC_MASK (0x7 << S5P_CLK_MUX_STAT1_D0SYNC_SHIFT) 103 - 104 - #endif /* __ASM_ARCH_REGS_CLOCK_H */
-19
arch/arm/mach-s5p6442/include/mach/regs-irq.h
··· 1 - /* linux/arch/arm/mach-s5p6442/include/mach/regs-irq.h 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * S5P6442 - IRQ register definitions 7 - * 8 - * This program is free software; you can redistribute it and/or modify 9 - * it under the terms of the GNU General Public License version 2 as 10 - * published by the Free Software Foundation. 11 - */ 12 - 13 - #ifndef __ASM_ARCH_REGS_IRQ_H 14 - #define __ASM_ARCH_REGS_IRQ_H __FILE__ 15 - 16 - #include <asm/hardware/vic.h> 17 - #include <mach/map.h> 18 - 19 - #endif /* __ASM_ARCH_REGS_IRQ_H */
-17
arch/arm/mach-s5p6442/include/mach/spi-clocks.h
··· 1 - /* linux/arch/arm/mach-s5p6442/include/mach/spi-clocks.h 2 - * 3 - * Copyright (C) 2010 Samsung Electronics Co. Ltd. 4 - * Jaswinder Singh <jassi.brar@samsung.com> 5 - * 6 - * This program is free software; you can redistribute it and/or modify 7 - * it under the terms of the GNU General Public License version 2 as 8 - * published by the Free Software Foundation. 9 - */ 10 - 11 - #ifndef __S5P6442_PLAT_SPI_CLKS_H 12 - #define __S5P6442_PLAT_SPI_CLKS_H __FILE__ 13 - 14 - #define S5P6442_SPI_SRCCLK_PCLK 0 15 - #define S5P6442_SPI_SRCCLK_SCLK 1 16 - 17 - #endif /* __S5P6442_PLAT_SPI_CLKS_H */
-23
arch/arm/mach-s5p6442/include/mach/system.h
··· 1 - /* linux/arch/arm/mach-s5p6442/include/mach/system.h 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * S5P6442 - system support header 7 - * 8 - * This program is free software; you can redistribute it and/or modify 9 - * it under the terms of the GNU General Public License version 2 as 10 - * published by the Free Software Foundation. 11 - */ 12 - 13 - #ifndef __ASM_ARCH_SYSTEM_H 14 - #define __ASM_ARCH_SYSTEM_H __FILE__ 15 - 16 - #include <plat/system-reset.h> 17 - 18 - static void arch_idle(void) 19 - { 20 - /* nothing here yet */ 21 - } 22 - 23 - #endif /* __ASM_ARCH_SYSTEM_H */
-26
arch/arm/mach-s5p6442/include/mach/tick.h
··· 1 - /* linux/arch/arm/mach-s5p6442/include/mach/tick.h 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * Based on arch/arm/mach-s3c6400/include/mach/tick.h 7 - * 8 - * S5P6442 - Timer tick support definitions 9 - * 10 - * This program is free software; you can redistribute it and/or modify 11 - * it under the terms of the GNU General Public License version 2 as 12 - * published by the Free Software Foundation. 13 - */ 14 - 15 - #ifndef __ASM_ARCH_TICK_H 16 - #define __ASM_ARCH_TICK_H __FILE__ 17 - 18 - static inline u32 s3c24xx_ostimer_pending(void) 19 - { 20 - u32 pend = __raw_readl(VA_VIC0 + VIC_RAW_STATUS); 21 - return pend & (1 << (IRQ_TIMER4_VIC - S5P_IRQ_VIC0(0))); 22 - } 23 - 24 - #define TICK_MAX (0xffffffff) 25 - 26 - #endif /* __ASM_ARCH_TICK_H */
-24
arch/arm/mach-s5p6442/include/mach/timex.h
··· 1 - /* arch/arm/mach-s5p6442/include/mach/timex.h 2 - * 3 - * Copyright (c) 2003-2010 Simtec Electronics 4 - * Ben Dooks <ben@simtec.co.uk> 5 - * 6 - * S5P6442 - time parameters 7 - * 8 - * This program is free software; you can redistribute it and/or modify 9 - * it under the terms of the GNU General Public License version 2 as 10 - * published by the Free Software Foundation. 11 - */ 12 - 13 - #ifndef __ASM_ARCH_TIMEX_H 14 - #define __ASM_ARCH_TIMEX_H 15 - 16 - /* CLOCK_TICK_RATE needs to be evaluatable by the cpp, so making it 17 - * a variable is useless. It seems as long as we make our timers an 18 - * exact multiple of HZ, any value that makes a 1->1 correspondence 19 - * for the time conversion functions to/from jiffies is acceptable. 20 - */ 21 - 22 - #define CLOCK_TICK_RATE 12000000 23 - 24 - #endif /* __ASM_ARCH_TIMEX_H */
-24
arch/arm/mach-s5p6442/include/mach/uncompress.h
··· 1 - /* linux/arch/arm/mach-s5p6442/include/mach/uncompress.h 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * S5P6442 - uncompress code 7 - * 8 - * This program is free software; you can redistribute it and/or modify 9 - * it under the terms of the GNU General Public License version 2 as 10 - * published by the Free Software Foundation. 11 - */ 12 - 13 - #ifndef __ASM_ARCH_UNCOMPRESS_H 14 - #define __ASM_ARCH_UNCOMPRESS_H 15 - 16 - #include <mach/map.h> 17 - #include <plat/uncompress.h> 18 - 19 - static void arch_detect_cpu(void) 20 - { 21 - /* we do not need to do any cpu detection here at the moment. */ 22 - } 23 - 24 - #endif /* __ASM_ARCH_UNCOMPRESS_H */
-17
arch/arm/mach-s5p6442/include/mach/vmalloc.h
··· 1 - /* arch/arm/mach-s5p6442/include/mach/vmalloc.h 2 - * 3 - * Copyright 2010 Ben Dooks <ben-linux@fluff.org> 4 - * 5 - * This program is free software; you can redistribute it and/or modify 6 - * it under the terms of the GNU General Public License version 2 as 7 - * published by the Free Software Foundation. 8 - * 9 - * S5P6442 vmalloc definition 10 - */ 11 - 12 - #ifndef __ASM_ARCH_VMALLOC_H 13 - #define __ASM_ARCH_VMALLOC_H 14 - 15 - #define VMALLOC_END 0xF6000000UL 16 - 17 - #endif /* __ASM_ARCH_VMALLOC_H */
-44
arch/arm/mach-s5p6442/init.c
··· 1 - /* linux/arch/arm/mach-s5p6442/s5p6442-init.c 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * This program is free software; you can redistribute it and/or modify 7 - * it under the terms of the GNU General Public License version 2 as 8 - * published by the Free Software Foundation. 9 - */ 10 - 11 - #include <linux/kernel.h> 12 - #include <linux/types.h> 13 - #include <linux/init.h> 14 - #include <linux/serial_core.h> 15 - 16 - #include <plat/cpu.h> 17 - #include <plat/devs.h> 18 - #include <plat/s5p6442.h> 19 - #include <plat/regs-serial.h> 20 - 21 - static struct s3c24xx_uart_clksrc s5p6442_serial_clocks[] = { 22 - [0] = { 23 - .name = "pclk", 24 - .divisor = 1, 25 - .min_baud = 0, 26 - .max_baud = 0, 27 - }, 28 - }; 29 - 30 - /* uart registration process */ 31 - void __init s5p6442_common_init_uarts(struct s3c2410_uartcfg *cfg, int no) 32 - { 33 - struct s3c2410_uartcfg *tcfg = cfg; 34 - u32 ucnt; 35 - 36 - for (ucnt = 0; ucnt < no; ucnt++, tcfg++) { 37 - if (!tcfg->clocks) { 38 - tcfg->clocks = s5p6442_serial_clocks; 39 - tcfg->clocks_size = ARRAY_SIZE(s5p6442_serial_clocks); 40 - } 41 - } 42 - 43 - s3c24xx_init_uartdevs("s5pv210-uart", s5p_uart_resources, cfg, no); 44 - }
-102
arch/arm/mach-s5p6442/mach-smdk6442.c
··· 1 - /* linux/arch/arm/mach-s5p6442/mach-smdk6442.c 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * This program is free software; you can redistribute it and/or modify 7 - * it under the terms of the GNU General Public License version 2 as 8 - * published by the Free Software Foundation. 9 - */ 10 - 11 - #include <linux/kernel.h> 12 - #include <linux/types.h> 13 - #include <linux/init.h> 14 - #include <linux/serial_core.h> 15 - #include <linux/i2c.h> 16 - 17 - #include <asm/mach/arch.h> 18 - #include <asm/mach/map.h> 19 - #include <asm/setup.h> 20 - #include <asm/mach-types.h> 21 - 22 - #include <mach/map.h> 23 - #include <mach/regs-clock.h> 24 - 25 - #include <plat/regs-serial.h> 26 - #include <plat/s5p6442.h> 27 - #include <plat/devs.h> 28 - #include <plat/cpu.h> 29 - #include <plat/iic.h> 30 - 31 - /* Following are default values for UCON, ULCON and UFCON UART registers */ 32 - #define SMDK6442_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \ 33 - S3C2410_UCON_RXILEVEL | \ 34 - S3C2410_UCON_TXIRQMODE | \ 35 - S3C2410_UCON_RXIRQMODE | \ 36 - S3C2410_UCON_RXFIFO_TOI | \ 37 - S3C2443_UCON_RXERR_IRQEN) 38 - 39 - #define SMDK6442_ULCON_DEFAULT S3C2410_LCON_CS8 40 - 41 - #define SMDK6442_UFCON_DEFAULT (S3C2410_UFCON_FIFOMODE | \ 42 - S5PV210_UFCON_TXTRIG4 | \ 43 - S5PV210_UFCON_RXTRIG4) 44 - 45 - static struct s3c2410_uartcfg smdk6442_uartcfgs[] __initdata = { 46 - [0] = { 47 - .hwport = 0, 48 - .flags = 0, 49 - .ucon = SMDK6442_UCON_DEFAULT, 50 - .ulcon = SMDK6442_ULCON_DEFAULT, 51 - .ufcon = SMDK6442_UFCON_DEFAULT, 52 - }, 53 - [1] = { 54 - .hwport = 1, 55 - .flags = 0, 56 - .ucon = SMDK6442_UCON_DEFAULT, 57 - .ulcon = SMDK6442_ULCON_DEFAULT, 58 - .ufcon = SMDK6442_UFCON_DEFAULT, 59 - }, 60 - [2] = { 61 - .hwport = 2, 62 - .flags = 0, 63 - .ucon = SMDK6442_UCON_DEFAULT, 64 - .ulcon = SMDK6442_ULCON_DEFAULT, 65 - .ufcon = SMDK6442_UFCON_DEFAULT, 66 - }, 67 - }; 68 - 69 - static struct platform_device *smdk6442_devices[] __initdata = { 70 - &s3c_device_i2c0, 71 - &samsung_asoc_dma, 72 - &s5p6442_device_iis0, 73 - &s3c_device_wdt, 74 - }; 75 - 76 - static struct i2c_board_info smdk6442_i2c_devs0[] __initdata = { 77 - { I2C_BOARD_INFO("wm8580", 0x1b), }, 78 - }; 79 - 80 - static void __init smdk6442_map_io(void) 81 - { 82 - s5p_init_io(NULL, 0, S5P_VA_CHIPID); 83 - s3c24xx_init_clocks(12000000); 84 - s3c24xx_init_uarts(smdk6442_uartcfgs, ARRAY_SIZE(smdk6442_uartcfgs)); 85 - } 86 - 87 - static void __init smdk6442_machine_init(void) 88 - { 89 - s3c_i2c0_set_platdata(NULL); 90 - i2c_register_board_info(0, smdk6442_i2c_devs0, 91 - ARRAY_SIZE(smdk6442_i2c_devs0)); 92 - platform_add_devices(smdk6442_devices, ARRAY_SIZE(smdk6442_devices)); 93 - } 94 - 95 - MACHINE_START(SMDK6442, "SMDK6442") 96 - /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ 97 - .boot_params = S5P_PA_SDRAM + 0x100, 98 - .init_irq = s5p6442_init_irq, 99 - .map_io = smdk6442_map_io, 100 - .init_machine = smdk6442_machine_init, 101 - .timer = &s3c24xx_timer, 102 - MACHINE_END
-28
arch/arm/mach-s5p6442/setup-i2c0.c
··· 1 - /* linux/arch/arm/mach-s5p6442/setup-i2c0.c 2 - * 3 - * Copyright (c) 2009 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * I2C0 GPIO configuration. 7 - * 8 - * Based on plat-s3c64xx/setup-i2c0.c 9 - * 10 - * This program is free software; you can redistribute it and/or modify 11 - * it under the terms of the GNU General Public License version 2 as 12 - * published by the Free Software Foundation. 13 - */ 14 - 15 - #include <linux/kernel.h> 16 - #include <linux/types.h> 17 - #include <linux/gpio.h> 18 - 19 - struct platform_device; /* don't need the contents */ 20 - 21 - #include <plat/gpio-cfg.h> 22 - #include <plat/iic.h> 23 - 24 - void s3c_i2c0_cfg_gpio(struct platform_device *dev) 25 - { 26 - s3c_gpio_cfgall_range(S5P6442_GPD1(0), 2, 27 - S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP); 28 - }
+1 -1
arch/arm/plat-s5p/Kconfig
··· 7 7 8 8 config PLAT_S5P 9 9 bool 10 - depends on (ARCH_S5P64X0 || ARCH_S5P6442 || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_EXYNOS4) 10 + depends on (ARCH_S5P64X0 || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_EXYNOS4) 11 11 default y 12 12 select ARM_VIC if !ARCH_EXYNOS4 13 13 select ARM_GIC if ARCH_EXYNOS4
-10
arch/arm/plat-s5p/cpu.c
··· 21 21 22 22 #include <plat/cpu.h> 23 23 #include <plat/s5p6440.h> 24 - #include <plat/s5p6442.h> 25 24 #include <plat/s5p6450.h> 26 25 #include <plat/s5pc100.h> 27 26 #include <plat/s5pv210.h> ··· 29 30 /* table of supported CPUs */ 30 31 31 32 static const char name_s5p6440[] = "S5P6440"; 32 - static const char name_s5p6442[] = "S5P6442"; 33 33 static const char name_s5p6450[] = "S5P6450"; 34 34 static const char name_s5pc100[] = "S5PC100"; 35 35 static const char name_s5pv210[] = "S5PV210/S5PC110"; ··· 43 45 .init_uarts = s5p6440_init_uarts, 44 46 .init = s5p64x0_init, 45 47 .name = name_s5p6440, 46 - }, { 47 - .idcode = 0x36442000, 48 - .idmask = 0xfffff000, 49 - .map_io = s5p6442_map_io, 50 - .init_clocks = s5p6442_init_clocks, 51 - .init_uarts = s5p6442_init_uarts, 52 - .init = s5p6442_init, 53 - .name = name_s5p6442, 54 48 }, { 55 49 .idcode = 0x36450000, 56 50 .idmask = 0xfffff000,
-33
arch/arm/plat-s5p/include/plat/s5p6442.h
··· 1 - /* arch/arm/plat-s5p/include/plat/s5p6442.h 2 - * 3 - * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 - * http://www.samsung.com/ 5 - * 6 - * Header file for s5p6442 cpu support 7 - * 8 - * This program is free software; you can redistribute it and/or modify 9 - * it under the terms of the GNU General Public License version 2 as 10 - * published by the Free Software Foundation. 11 - */ 12 - 13 - /* Common init code for S5P6442 related SoCs */ 14 - 15 - extern void s5p6442_common_init_uarts(struct s3c2410_uartcfg *cfg, int no); 16 - extern void s5p6442_register_clocks(void); 17 - extern void s5p6442_setup_clocks(void); 18 - 19 - #ifdef CONFIG_CPU_S5P6442 20 - 21 - extern int s5p6442_init(void); 22 - extern void s5p6442_init_irq(void); 23 - extern void s5p6442_map_io(void); 24 - extern void s5p6442_init_clocks(int xtal); 25 - 26 - #define s5p6442_init_uarts s5p6442_common_init_uarts 27 - 28 - #else 29 - #define s5p6442_init_clocks NULL 30 - #define s5p6442_init_uarts NULL 31 - #define s5p6442_map_io NULL 32 - #define s5p6442_init NULL 33 - #endif
-1
arch/arm/plat-samsung/include/plat/cpu.h
··· 86 86 extern struct sysdev_class s3c6410_sysclass; 87 87 extern struct sysdev_class s3c64xx_sysclass; 88 88 extern struct sysdev_class s5p64x0_sysclass; 89 - extern struct sysdev_class s5p6442_sysclass; 90 89 extern struct sysdev_class s5pv210_sysclass; 91 90 extern struct sysdev_class exynos4_sysclass; 92 91
+1 -1
arch/arm/plat-samsung/include/plat/debug-macro.S
··· 11 11 12 12 #include <plat/regs-serial.h> 13 13 14 - /* The S5PV210/S5PC110 and S5P6442 implementations are as belows. */ 14 + /* The S5PV210/S5PC110 implementations are as belows. */ 15 15 16 16 .macro fifo_level_s5pv210 rd, rx 17 17 ldr \rd, [ \rx, # S3C2410_UFSTAT ]
-6
arch/arm/plat-samsung/include/plat/devs.h
··· 111 111 extern struct platform_device exynos4_device_pd[]; 112 112 extern struct platform_device exynos4_device_ahci; 113 113 114 - extern struct platform_device s5p6442_device_pcm0; 115 - extern struct platform_device s5p6442_device_pcm1; 116 - extern struct platform_device s5p6442_device_iis0; 117 - extern struct platform_device s5p6442_device_iis1; 118 - extern struct platform_device s5p6442_device_spi; 119 - 120 114 extern struct platform_device s5p6440_device_pcm; 121 115 extern struct platform_device s5p6440_device_iis; 122 116
+1 -1
arch/arm/plat-samsung/include/plat/regs-serial.h
··· 194 194 #define S3C64XX_UINTSP 0x34 195 195 #define S3C64XX_UINTM 0x38 196 196 197 - /* Following are specific to S5PV210 and S5P6442 */ 197 + /* Following are specific to S5PV210 */ 198 198 #define S5PV210_UCON_CLKMASK (1<<10) 199 199 #define S5PV210_UCON_PCLK (0<<10) 200 200 #define S5PV210_UCON_UCLK (1<<10)
-1
arch/arm/plat-samsung/include/plat/s3c64xx-spi.h
··· 69 69 extern void s5pc100_spi_set_info(int cntrlr, int src_clk_nr, int num_cs); 70 70 extern void s5pv210_spi_set_info(int cntrlr, int src_clk_nr, int num_cs); 71 71 extern void s5p64x0_spi_set_info(int cntrlr, int src_clk_nr, int num_cs); 72 - extern void s5p6442_spi_set_info(int cntrlr, int src_clk_nr, int num_cs); 73 72 74 73 #endif /* __S3C64XX_PLAT_SPI_H */
+2 -2
sound/soc/samsung/Kconfig
··· 1 1 config SND_SOC_SAMSUNG 2 2 tristate "ASoC support for Samsung" 3 - depends on ARCH_S3C2410 || ARCH_S3C64XX || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_S5P64X0 || ARCH_S5P6442 || ARCH_EXYNOS4 3 + depends on ARCH_S3C2410 || ARCH_S3C64XX || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_S5P64X0 || ARCH_EXYNOS4 4 4 select S3C64XX_DMA if ARCH_S3C64XX 5 5 select S3C2410_DMA if ARCH_S3C2410 6 6 help ··· 55 55 56 56 config SND_SOC_SAMSUNG_SMDK_WM8580 57 57 tristate "SoC I2S Audio support for WM8580 on SMDK" 58 - depends on SND_SOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDK6440 || MACH_SMDK6450 || MACH_SMDK6442 || MACH_SMDKV210 || MACH_SMDKC110) 58 + depends on SND_SOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDK6440 || MACH_SMDK6450 || MACH_SMDKV210 || MACH_SMDKC110) 59 59 select SND_SOC_WM8580 60 60 select SND_SAMSUNG_I2S 61 61 help
+1 -1
sound/soc/samsung/smdk_wm8580.c
··· 249 249 int ret; 250 250 char *str; 251 251 252 - if (machine_is_smdkc100() || machine_is_smdk6442() 252 + if (machine_is_smdkc100() 253 253 || machine_is_smdkv210() || machine_is_smdkc110()) { 254 254 smdk.num_links = 3; 255 255 /* Secondary is at offset SAMSUNG_I2S_SECOFF from Primary */