Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
a639718b
Commit
a639718b
authored
Aug 06, 2010
by
Kukjin Kim
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'next-s5pv210' into for-next
parents
0321c51f
b42faa12
Changes
22
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
1170 additions
and
103 deletions
+1170
-103
arch/arm/configs/s5pc110_defconfig
arch/arm/configs/s5pc110_defconfig
+0
-66
arch/arm/configs/s5pv210_defconfig
arch/arm/configs/s5pv210_defconfig
+5
-0
arch/arm/mach-s5pv210/Kconfig
arch/arm/mach-s5pv210/Kconfig
+62
-11
arch/arm/mach-s5pv210/Makefile
arch/arm/mach-s5pv210/Makefile
+2
-0
arch/arm/mach-s5pv210/cpu.c
arch/arm/mach-s5pv210/cpu.c
+17
-1
arch/arm/mach-s5pv210/dev-onenand.c
arch/arm/mach-s5pv210/dev-onenand.c
+6
-1
arch/arm/mach-s5pv210/gpiolib.c
arch/arm/mach-s5pv210/gpiolib.c
+14
-0
arch/arm/mach-s5pv210/include/mach/gpio.h
arch/arm/mach-s5pv210/include/mach/gpio.h
+9
-3
arch/arm/mach-s5pv210/include/mach/irqs.h
arch/arm/mach-s5pv210/include/mach/irqs.h
+1
-1
arch/arm/mach-s5pv210/include/mach/map.h
arch/arm/mach-s5pv210/include/mach/map.h
+9
-0
arch/arm/mach-s5pv210/include/mach/memory.h
arch/arm/mach-s5pv210/include/mach/memory.h
+7
-2
arch/arm/mach-s5pv210/include/mach/regs-clock.h
arch/arm/mach-s5pv210/include/mach/regs-clock.h
+2
-0
arch/arm/mach-s5pv210/mach-aquila.c
arch/arm/mach-s5pv210/mach-aquila.c
+380
-9
arch/arm/mach-s5pv210/mach-goni.c
arch/arm/mach-s5pv210/mach-goni.c
+407
-7
arch/arm/mach-s5pv210/mach-smdkc110.c
arch/arm/mach-s5pv210/mach-smdkc110.c
+36
-0
arch/arm/mach-s5pv210/mach-smdkv210.c
arch/arm/mach-s5pv210/mach-smdkv210.c
+63
-0
arch/arm/mach-s5pv210/setup-ide.c
arch/arm/mach-s5pv210/setup-ide.c
+50
-0
arch/arm/mach-s5pv210/setup-keypad.c
arch/arm/mach-s5pv210/setup-keypad.c
+34
-0
arch/arm/mach-s5pv210/setup-sdhci-gpio.c
arch/arm/mach-s5pv210/setup-sdhci-gpio.c
+20
-0
arch/arm/mach-s5pv210/setup-sdhci.c
arch/arm/mach-s5pv210/setup-sdhci.c
+2
-2
arch/arm/plat-samsung/include/plat/keypad-core.h
arch/arm/plat-samsung/include/plat/keypad-core.h
+31
-0
arch/arm/plat-samsung/include/plat/sdhci.h
arch/arm/plat-samsung/include/plat/sdhci.h
+13
-0
No files found.
arch/arm/configs/s5pc110_defconfig
deleted
100644 → 0
View file @
0321c51f
CONFIG_EXPERIMENTAL=y
CONFIG_SYSFS_DEPRECATED_V2=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_KALLSYMS_ALL=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_ARCH_S5PV210=y
CONFIG_S3C_LOWLEVEL_UART_PORT=1
CONFIG_MACH_SMDKC110=y
CONFIG_VMSPLIT_2G=y
CONFIG_PREEMPT=y
CONFIG_AEABI=y
CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc"
CONFIG_VFP=y
CONFIG_NEON=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=8192
# CONFIG_MISC_DEVICES is not set
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_SAMSUNG=y
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
CONFIG_HW_RANDOM=y
# CONFIG_HWMON is not set
# CONFIG_VGA_CONSOLE is not set
# CONFIG_HID_SUPPORT is not set
# CONFIG_USB_SUPPORT is not set
CONFIG_EXT2_FS=y
CONFIG_INOTIFY=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_CRAMFS=y
CONFIG_ROMFS_FS=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_BSD_DISKLABEL=y
CONFIG_SOLARIS_X86_PARTITION=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_PREEMPT is not set
CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_SPINLOCK_SLEEP=y
CONFIG_DEBUG_INFO=y
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
CONFIG_SYSCTL_SYSCALL_CHECK=y
CONFIG_DEBUG_USER=y
CONFIG_DEBUG_ERRORS=y
CONFIG_DEBUG_LL=y
CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_S3C_UART=1
CONFIG_CRC_CCITT=y
arch/arm/configs/s5pv210_defconfig
View file @
a639718b
...
...
@@ -7,6 +7,11 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_ARCH_S5PV210=y
CONFIG_S3C_LOWLEVEL_UART_PORT=1
CONFIG_S3C_DEV_FB=y
CONFIG_S5PV210_SETUP_FB_24BPP=y
CONFIG_MACH_AQUILA=y
CONFIG_MACH_GONI=y
CONFIG_MACH_SMDKC110=y
CONFIG_MACH_SMDKV210=y
CONFIG_VMSPLIT_2G=y
CONFIG_PREEMPT=y
...
...
arch/arm/mach-s5pv210/Kconfig
View file @
a639718b
...
...
@@ -27,11 +27,21 @@ config S5PV210_SETUP_I2C2
help
Common setup code for i2c bus 2.
config S5PV210_SETUP_IDE
bool
help
Common setup code for S5PV210 IDE GPIO configurations
config S5PV210_SETUP_FB_24BPP
bool
help
Common setup code for S5PV210 with an 24bpp RGB display helper.
config S5PV210_SETUP_KEYPAD
bool
help
Common setup code for keypad.
config S5PV210_SETUP_SDHCI
bool
select S5PV210_SETUP_SDHCI_GPIO
...
...
@@ -43,14 +53,19 @@ config S5PV210_SETUP_SDHCI_GPIO
help
Common setup code for SDHCI gpio.
# machine support
menu "S5PC110 Machines"
config MACH_AQUILA
bool "
Samsung
Aquila"
bool "Aquila"
select CPU_S5PV210
select ARCH_SPARSEMEM_ENABLE
select S5PV210_SETUP_FB_24BPP
select S5PV210_SETUP_SDHCI
select S3C_DEV_FB
select S5PC110_DEV_ONENAND
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_HSMMC2
help
Machine support for the Samsung Aquila target based on S5PC110 SoC
...
...
@@ -58,34 +73,70 @@ config MACH_GONI
bool "GONI"
select CPU_S5PV210
select ARCH_SPARSEMEM_ENABLE
select S5PV210_SETUP_FB_24BPP
select S5PV210_SETUP_SDHCI
select S3C_DEV_FB
select S5PC110_DEV_ONENAND
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_HSMMC2
help
Machine support for Samsung GONI board
S5PC110(MCP) is one of package option of S5PV210
config MACH_SMDKC110
bool "SMDKC110"
select CPU_S5PV210
select ARCH_SPARSEMEM_ENABLE
select S3C_DEV_I2C1
select S3C_DEV_I2C2
select SAMSUNG_DEV_IDE
select S3C_DEV_RTC
select S3C_DEV_WDT
select HAVE_S3C_RTC
select HAVE_S3C2410_WATCHDOG
select S5PV210_SETUP_I2C1
select S5PV210_SETUP_I2C2
select S5PV210_SETUP_IDE
help
Machine support for Samsung SMDKC110
S5PC110(MCP) is one of package option of S5PV210
endmenu
config S5PC110_DEV_ONENAND
bool
help
Compile in platform device definition for OneNAND1 controller
menu "S5PV210 Machines"
config MACH_SMDKV210
bool "SMDKV210"
select CPU_S5PV210
select ARCH_SPARSEMEM_ENABLE
select SAMSUNG_DEV_ADC
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_HSMMC2
select S3C_DEV_HSMMC3
select S3C_DEV_I2C1
select S3C_DEV_I2C2
select SAMSUNG_DEV_IDE
select SAMSUNG_DEV_KEYPAD
select SAMSUNG_DEV_TS
select S3C_DEV_RTC
select S3C_DEV_WDT
select HAVE_S3C_RTC
select HAVE_S3C2410_WATCHDOG
select S5PV210_SETUP_I2C1
select S5PV210_SETUP_I2C2
select S5PV210_SETUP_IDE
select S5PV210_SETUP_KEYPAD
select S5PV210_SETUP_SDHCI
help
Machine support for Samsung SMDKV210
config MACH_SMDKC110
bool "SMDKC110"
select CPU_S5PV210
select ARCH_SPARSEMEM_ENABLE
select S3C_DEV_WDT
select HAVE_S3C2410_WATCHDOG
help
Machine support for Samsung SMDKC110
S5PC110(MCP) is one of package option of S5PV210
endmenu
endif
arch/arm/mach-s5pv210/Makefile
View file @
a639718b
...
...
@@ -31,5 +31,7 @@ obj-$(CONFIG_S5PC110_DEV_ONENAND) += dev-onenand.o
obj-$(CONFIG_S5PV210_SETUP_FB_24BPP)
+=
setup-fb-24bpp.o
obj-$(CONFIG_S5PV210_SETUP_I2C1)
+=
setup-i2c1.o
obj-$(CONFIG_S5PV210_SETUP_I2C2)
+=
setup-i2c2.o
obj-$(CONFIG_S5PV210_SETUP_IDE)
+=
setup-ide.o
obj-$(CONFIG_S5PV210_SETUP_KEYPAD)
+=
setup-keypad.o
obj-$(CONFIG_S5PV210_SETUP_SDHCI)
+=
setup-sdhci.o
obj-$(CONFIG_S5PV210_SETUP_SDHCI_GPIO)
+=
setup-sdhci-gpio.o
arch/arm/mach-s5pv210/cpu.c
View file @
a639718b
...
...
@@ -32,8 +32,11 @@
#include <plat/devs.h>
#include <plat/clock.h>
#include <plat/s5pv210.h>
#include <plat/ata-core.h>
#include <plat/iic-core.h>
#include <plat/keypad-core.h>
#include <plat/sdhci.h>
#include <plat/reset.h>
/* Initial IO mappings */
...
...
@@ -69,6 +72,11 @@ static void s5pv210_idle(void)
local_irq_enable
();
}
static
void
s5pv210_sw_reset
(
void
)
{
__raw_writel
(
0x1
,
S5P_SWRESET
);
}
/* s5pv210_map_io
*
* register the standard cpu IO areas
...
...
@@ -79,18 +87,23 @@ void __init s5pv210_map_io(void)
#ifdef CONFIG_S3C_DEV_ADC
s3c_device_adc
.
name
=
"s3c64xx-adc"
;
#endif
iotable_init
(
s5pv210_iodesc
,
ARRAY_SIZE
(
s5pv210_iodesc
));
/* initialise device information early */
s5pv210_default_sdhci0
();
s5pv210_default_sdhci1
();
s5pv210_default_sdhci2
();
s5pv210_default_sdhci3
();
s3c_cfcon_setname
(
"s5pv210-pata"
);
/* the i2c devices are directly compatible with s3c2440 */
s3c_i2c0_setname
(
"s3c2440-i2c"
);
s3c_i2c1_setname
(
"s3c2440-i2c"
);
s3c_i2c2_setname
(
"s3c2440-i2c"
);
/* Use s5pv210-keypad instead of samsung-keypad */
samsung_keypad_setname
(
"s5pv210-keypad"
);
}
void
__init
s5pv210_init_clocks
(
int
xtal
)
...
...
@@ -138,5 +151,8 @@ int __init s5pv210_init(void)
/* set idle function */
pm_idle
=
s5pv210_idle
;
/* set sw_reset function */
s5p_reset_hook
=
s5pv210_sw_reset
;
return
sysdev_register
(
&
s5pv210_sysdev
);
}
arch/arm/mach-s5pv210/dev-onenand.c
View file @
a639718b
...
...
@@ -27,9 +27,14 @@ static struct resource s5pc110_onenand_resources[] = {
},
[
1
]
=
{
.
start
=
S5PC110_PA_ONENAND_DMA
,
.
end
=
S5PC110_PA_ONENAND_DMA
+
SZ_
2
K
-
1
,
.
end
=
S5PC110_PA_ONENAND_DMA
+
SZ_
8
K
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
2
]
=
{
.
start
=
IRQ_ONENAND_AUDI
,
.
end
=
IRQ_ONENAND_AUDI
,
.
flags
=
IORESOURCE_IRQ
,
},
};
struct
platform_device
s5pc110_device_onenand
=
{
...
...
arch/arm/mach-s5pv210/gpiolib.c
View file @
a639718b
...
...
@@ -206,6 +206,20 @@ static struct s3c_gpio_chip s5pv210_gpio_4bit[] = {
.
ngpio
=
S5PV210_GPIO_MP03_NR
,
.
label
=
"MP03"
,
},
},
{
.
config
=
&
gpio_cfg_noint
,
.
chip
=
{
.
base
=
S5PV210_MP04
(
0
),
.
ngpio
=
S5PV210_GPIO_MP04_NR
,
.
label
=
"MP04"
,
},
},
{
.
config
=
&
gpio_cfg_noint
,
.
chip
=
{
.
base
=
S5PV210_MP05
(
0
),
.
ngpio
=
S5PV210_GPIO_MP05_NR
,
.
label
=
"MP05"
,
},
},
{
.
base
=
(
S5P_VA_GPIO
+
0xC00
),
.
config
=
&
gpio_cfg_noint
,
...
...
arch/arm/mach-s5pv210/include/mach/gpio.h
View file @
a639718b
...
...
@@ -52,6 +52,8 @@
#define S5PV210_GPIO_MP01_NR (8)
#define S5PV210_GPIO_MP02_NR (4)
#define S5PV210_GPIO_MP03_NR (8)
#define S5PV210_GPIO_MP04_NR (8)
#define S5PV210_GPIO_MP05_NR (8)
/* GPIO bank numbers */
...
...
@@ -94,6 +96,8 @@ enum s5p_gpio_number {
S5PV210_GPIO_MP01_START
=
S5PV210_GPIO_NEXT
(
S5PV210_GPIO_J4
),
S5PV210_GPIO_MP02_START
=
S5PV210_GPIO_NEXT
(
S5PV210_GPIO_MP01
),
S5PV210_GPIO_MP03_START
=
S5PV210_GPIO_NEXT
(
S5PV210_GPIO_MP02
),
S5PV210_GPIO_MP04_START
=
S5PV210_GPIO_NEXT
(
S5PV210_GPIO_MP03
),
S5PV210_GPIO_MP05_START
=
S5PV210_GPIO_NEXT
(
S5PV210_GPIO_MP04
),
};
/* S5PV210 GPIO number definitions */
...
...
@@ -127,13 +131,15 @@ enum s5p_gpio_number {
#define S5PV210_MP01(_nr) (S5PV210_GPIO_MP01_START + (_nr))
#define S5PV210_MP02(_nr) (S5PV210_GPIO_MP02_START + (_nr))
#define S5PV210_MP03(_nr) (S5PV210_GPIO_MP03_START + (_nr))
#define S5PV210_MP04(_nr) (S5PV210_GPIO_MP04_START + (_nr))
#define S5PV210_MP05(_nr) (S5PV210_GPIO_MP05_START + (_nr))
/* the end of the S5PV210 specific gpios */
#define S5PV210_GPIO_END (S5PV210_MP0
3(S5PV210_GPIO_MP03
_NR) + 1)
#define S5PV210_GPIO_END (S5PV210_MP0
5(S5PV210_GPIO_MP05
_NR) + 1)
#define S3C_GPIO_END S5PV210_GPIO_END
/* define the number of gpios we need to the one after the MP0
3
() range */
#define ARCH_NR_GPIOS (S5PV210_MP0
3(S5PV210_GPIO_MP03
_NR) + \
/* define the number of gpios we need to the one after the MP0
5
() range */
#define ARCH_NR_GPIOS (S5PV210_MP0
5(S5PV210_GPIO_MP05
_NR) + \
CONFIG_SAMSUNG_GPIO_EXTRA + 1)
#include <asm-generic/gpio.h>
...
...
arch/arm/mach-s5pv210/include/mach/irqs.h
View file @
a639718b
...
...
@@ -45,7 +45,7 @@
#define IRQ_IEMIEC S5P_IRQ_VIC1(6)
#define IRQ_ONENAND S5P_IRQ_VIC1(7)
#define IRQ_NFC S5P_IRQ_VIC1(8)
#define IRQ_CFC
S5P_IRQ_VIC1(9)
#define IRQ_CFC
ON
S5P_IRQ_VIC1(9)
#define IRQ_UART0 S5P_IRQ_VIC1(10)
#define IRQ_UART1 S5P_IRQ_VIC1(11)
#define IRQ_UART2 S5P_IRQ_VIC1(12)
...
...
arch/arm/mach-s5pv210/include/mach/map.h
View file @
a639718b
...
...
@@ -32,6 +32,8 @@
#define S5PV210_PA_SPI0 0xE1300000
#define S5PV210_PA_SPI1 0xE1400000
#define S5PV210_PA_KEYPAD (0xE1600000)
#define S5PV210_PA_IIC0 (0xE1800000)
#define S5PV210_PA_IIC1 (0xFAB00000)
#define S5PV210_PA_IIC2 (0xE1A00000)
...
...
@@ -43,6 +45,7 @@
#define S5PV210_PA_WATCHDOG (0xE2700000)
#define S5PV210_PA_RTC (0xE2800000)
#define S5PV210_PA_UART (0xE2900000)
#define S5P_PA_UART0 (S5PV210_PA_UART + 0x0)
...
...
@@ -54,6 +57,8 @@
#define S5PV210_PA_SROMC (0xE8000000)
#define S5PV210_PA_CFCON (0xE8200000)
#define S5PV210_PA_MDMA 0xFA200000
#define S5PV210_PA_PDMA0 0xE0900000
#define S5PV210_PA_PDMA1 0xE0A00000
...
...
@@ -97,12 +102,16 @@
#define S3C_PA_HSMMC0 S5PV210_PA_HSMMC(0)
#define S3C_PA_HSMMC1 S5PV210_PA_HSMMC(1)
#define S3C_PA_HSMMC2 S5PV210_PA_HSMMC(2)
#define S3C_PA_HSMMC3 S5PV210_PA_HSMMC(3)
#define S3C_PA_IIC S5PV210_PA_IIC0
#define S3C_PA_IIC1 S5PV210_PA_IIC1
#define S3C_PA_IIC2 S5PV210_PA_IIC2
#define S3C_PA_FB S5PV210_PA_FB
#define S3C_PA_RTC S5PV210_PA_RTC
#define S3C_PA_WDT S5PV210_PA_WATCHDOG
#define SAMSUNG_PA_ADC S5PV210_PA_ADC
#define SAMSUNG_PA_CFCON S5PV210_PA_CFCON
#define SAMSUNG_PA_KEYPAD S5PV210_PA_KEYPAD
#endif
/* __ASM_ARCH_MAP_H */
arch/arm/mach-s5pv210/include/mach/memory.h
View file @
a639718b
...
...
@@ -16,8 +16,13 @@
#define PHYS_OFFSET UL(0x20000000)
#define CONSISTENT_DMA_SIZE (SZ_8M + SZ_4M + SZ_2M)
/* Maximum of 256MiB in one bank */
#define MAX_PHYSMEM_BITS 32
/*
* Sparsemem support
* Physical memory can be located from 0x20000000 to 0x7fffffff,
* so MAX_PHYSMEM_BITS is 31.
*/
#define MAX_PHYSMEM_BITS 31
#define SECTION_SIZE_BITS 28
#endif
/* __ASM_ARCH_MEMORY_H */
arch/arm/mach-s5pv210/include/mach/regs-clock.h
View file @
a639718b
...
...
@@ -90,6 +90,8 @@
#define S5P_CLKDIV0_PCLK66_SHIFT (28)
#define S5P_CLKDIV0_PCLK66_MASK (0x7 << S5P_CLKDIV0_PCLK66_SHIFT)
#define S5P_SWRESET S5P_CLKREG(0x2000)
/* Registers related to power management */
#define S5P_PWR_CFG S5P_CLKREG(0xC000)
#define S5P_EINT_WAKEUP_MASK S5P_CLKREG(0xC004)
...
...
arch/arm/mach-s5pv210/mach-aquila.c
View file @
a639718b
This diff is collapsed.
Click to expand it.
arch/arm/mach-s5pv210/mach-goni.c
View file @
a639718b
This diff is collapsed.
Click to expand it.
arch/arm/mach-s5pv210/mach-smdkc110.c
View file @
a639718b
...
...
@@ -12,6 +12,7 @@
#include <linux/types.h>
#include <linux/init.h>
#include <linux/serial_core.h>
#include <linux/i2c.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
...
...
@@ -25,6 +26,8 @@
#include <plat/s5pv210.h>
#include <plat/devs.h>
#include <plat/cpu.h>
#include <plat/ata.h>
#include <plat/iic.h>
/* Following are default values for UCON, ULCON and UFCON UART registers */
#define S5PV210_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \
...
...
@@ -71,12 +74,33 @@ static struct s3c2410_uartcfg smdkv210_uartcfgs[] __initdata = {
},
};
static
struct
s3c_ide_platdata
smdkc110_ide_pdata
__initdata
=
{
.
setup_gpio
=
s5pv210_ide_setup_gpio
,
};
static
struct
platform_device
*
smdkc110_devices
[]
__initdata
=
{
&
s5pv210_device_iis0
,
&
s5pv210_device_ac97
,
&
s3c_device_cfcon
,
&
s3c_device_i2c0
,
&
s3c_device_i2c1
,
&
s3c_device_i2c2
,
&
s3c_device_rtc
,
&
s3c_device_wdt
,
};
static
struct
i2c_board_info
smdkc110_i2c_devs0
[]
__initdata
=
{
{
I2C_BOARD_INFO
(
"24c08"
,
0x50
),
},
/* Samsung S524AD0XD1 */
};
static
struct
i2c_board_info
smdkc110_i2c_devs1
[]
__initdata
=
{
/* To Be Updated */
};
static
struct
i2c_board_info
smdkc110_i2c_devs2
[]
__initdata
=
{
/* To Be Updated */
};
static
void
__init
smdkc110_map_io
(
void
)
{
s5p_init_io
(
NULL
,
0
,
S5P_VA_CHIPID
);
...
...
@@ -86,6 +110,18 @@ static void __init smdkc110_map_io(void)
static
void
__init
smdkc110_machine_init
(
void
)
{
s3c_i2c0_set_platdata
(
NULL
);
s3c_i2c1_set_platdata
(
NULL
);
s3c_i2c2_set_platdata
(
NULL
);
i2c_register_board_info
(
0
,
smdkc110_i2c_devs0
,
ARRAY_SIZE
(
smdkc110_i2c_devs0
));
i2c_register_board_info
(
1
,
smdkc110_i2c_devs1
,
ARRAY_SIZE
(
smdkc110_i2c_devs1
));
i2c_register_board_info
(
2
,
smdkc110_i2c_devs2
,
ARRAY_SIZE
(
smdkc110_i2c_devs2
));
s3c_ide_set_platdata
(
&
smdkc110_ide_pdata
);
platform_add_devices
(
smdkc110_devices
,
ARRAY_SIZE
(
smdkc110_devices
));
}
...
...
arch/arm/mach-s5pv210/mach-smdkv210.c
View file @
a639718b
...
...
@@ -10,6 +10,7 @@
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/i2c.h>
#include <linux/init.h>
#include <linux/serial_core.h>
...
...
@@ -27,6 +28,9 @@
#include <plat/cpu.h>
#include <plat/adc.h>
#include <plat/ts.h>
#include <plat/ata.h>
#include <plat/iic.h>
#include <plat/keypad.h>
/* Following are default values for UCON, ULCON and UFCON UART registers */
#define S5PV210_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \
...
...
@@ -73,14 +77,59 @@ static struct s3c2410_uartcfg smdkv210_uartcfgs[] __initdata = {
},
};
static
struct
s3c_ide_platdata
smdkv210_ide_pdata
__initdata
=
{
.
setup_gpio
=
s5pv210_ide_setup_gpio
,
};
static
uint32_t
smdkv210_keymap
[]
__initdata
=
{
/* KEY(row, col, keycode) */
KEY
(
0
,
3
,
KEY_1
),
KEY
(
0
,
4
,
KEY_2
),
KEY
(
0
,
5
,
KEY_3
),
KEY
(
0
,
6
,
KEY_4
),
KEY
(
0
,
7
,
KEY_5
),
KEY
(
1
,
3
,
KEY_A
),
KEY
(
1
,
4
,
KEY_B
),
KEY
(
1
,
5
,
KEY_C
),
KEY
(
1
,
6
,
KEY_D
),
KEY
(
1
,
7
,
KEY_E
)
};
static
struct
matrix_keymap_data
smdkv210_keymap_data
__initdata
=
{
.
keymap
=
smdkv210_keymap
,
.
keymap_size
=
ARRAY_SIZE
(
smdkv210_keymap
),
};
static
struct
samsung_keypad_platdata
smdkv210_keypad_data
__initdata
=
{
.
keymap_data
=
&
smdkv210_keymap_data
,
.
rows
=
8
,
.
cols
=
8
,
};
static
struct
platform_device
*
smdkv210_devices
[]
__initdata
=
{
&
s5pv210_device_iis0
,
&
s5pv210_device_ac97
,
&
s3c_device_adc
,
&
s3c_device_cfcon
,
&
s3c_device_hsmmc0
,
&
s3c_device_hsmmc1
,
&
s3c_device_hsmmc2
,
&
s3c_device_hsmmc3
,
&
s3c_device_i2c0
,
&
s3c_device_i2c1
,
&
s3c_device_i2c2
,
&
samsung_device_keypad
,
&
s3c_device_rtc
,
&
s3c_device_ts
,
&
s3c_device_wdt
,
};
static
struct
i2c_board_info
smdkv210_i2c_devs0
[]
__initdata
=
{
{
I2C_BOARD_INFO
(
"24c08"
,
0x50
),
},
/* Samsung S524AD0XD1 */
};
static
struct
i2c_board_info
smdkv210_i2c_devs1
[]
__initdata
=
{
/* To Be Updated */
};
static
struct
i2c_board_info
smdkv210_i2c_devs2
[]
__initdata
=
{
/* To Be Updated */
};
static
struct
s3c2410_ts_mach_info
s3c_ts_platform
__initdata
=
{
.
delay
=
10000
,
.
presc
=
49
,
...
...
@@ -96,7 +145,21 @@ static void __init smdkv210_map_io(void)
static
void
__init
smdkv210_machine_init
(
void
)
{
samsung_keypad_set_platdata
(
&
smdkv210_keypad_data
);
s3c24xx_ts_set_platdata
(
&
s3c_ts_platform
);
s3c_i2c0_set_platdata
(
NULL
);
s3c_i2c1_set_platdata
(
NULL
);
s3c_i2c2_set_platdata
(
NULL
);
i2c_register_board_info
(
0
,
smdkv210_i2c_devs0
,
ARRAY_SIZE
(
smdkv210_i2c_devs0
));
i2c_register_board_info
(
1
,
smdkv210_i2c_devs1
,
ARRAY_SIZE
(
smdkv210_i2c_devs1
));
i2c_register_board_info
(
2
,
smdkv210_i2c_devs2
,
ARRAY_SIZE
(
smdkv210_i2c_devs2
));
s3c_ide_set_platdata
(
&
smdkv210_ide_pdata
);
platform_add_devices
(
smdkv210_devices
,
ARRAY_SIZE
(
smdkv210_devices
));
}
...
...
arch/arm/mach-s5pv210/setup-ide.c
0 → 100644
View file @
a639718b
/* linux/arch/arm/mach-s5pv210/setup-ide.c
*
* Copyright (c) 2010 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* S5PV210 setup information for IDE
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/kernel.h>
#include <linux/gpio.h>
#include <plat/gpio-cfg.h>
void
s5pv210_ide_setup_gpio
(
void
)
{
unsigned
int
gpio
=
0
;
for
(
gpio
=
S5PV210_GPJ0
(
0
);
gpio
<=
S5PV210_GPJ0
(
7
);
gpio
++
)
{
/* CF_Add[0 - 2], CF_IORDY, CF_INTRQ, CF_DMARQ, CF_DMARST,
CF_DMACK */
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
4
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
s5p_gpio_set_drvstr
(
gpio
,
S5P_GPIO_DRVSTR_LV4
);
}
for
(
gpio
=
S5PV210_GPJ2
(
0
);
gpio
<=
S5PV210_GPJ2
(
7
);
gpio
++
)
{
/*CF_Data[0 - 7] */
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
4
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
s5p_gpio_set_drvstr
(
gpio
,
S5P_GPIO_DRVSTR_LV4
);
}
for
(
gpio
=
S5PV210_GPJ3
(
0
);
gpio
<=
S5PV210_GPJ3
(
7
);
gpio
++
)
{
/* CF_Data[8 - 15] */
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
4
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
s5p_gpio_set_drvstr
(
gpio
,
S5P_GPIO_DRVSTR_LV4
);
}
for
(
gpio
=
S5PV210_GPJ4
(
0
);
gpio
<=
S5PV210_GPJ4
(
3
);
gpio
++
)
{
/* CF_CS0, CF_CS1, CF_IORD, CF_IOWR */
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
4
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
s5p_gpio_set_drvstr
(
gpio
,
S5P_GPIO_DRVSTR_LV4
);
}
}
arch/arm/mach-s5pv210/setup-keypad.c
0 → 100644
View file @
a639718b
/*
* linux/arch/arm/mach-s5pv210/setup-keypad.c
*
* Copyright (C) 2010 Samsung Electronics Co.Ltd
* Author: Joonyoung Shim <jy0922.shim@samsung.com>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
*/
#include <linux/gpio.h>
#include <plat/gpio-cfg.h>
void
samsung_keypad_cfg_gpio
(
unsigned
int
rows
,
unsigned
int
cols
)
{
unsigned
int
gpio
,
end
;
/* Set all the necessary GPH3 pins to special-function 3: KP_ROW[x] */
end
=
S5PV210_GPH3
(
rows
);
for
(
gpio
=
S5PV210_GPH3
(
0
);
gpio
<
end
;
gpio
++
)
{
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
3
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
/* Set all the necessary GPH2 pins to special-function 3: KP_COL[x] */
end
=
S5PV210_GPH2
(
cols
);
for
(
gpio
=
S5PV210_GPH2
(
0
);
gpio
<
end
;
gpio
++
)
{
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
3
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
}
arch/arm/mach-s5pv210/setup-sdhci-gpio.c
View file @
a639718b
...
...
@@ -102,3 +102,23 @@ void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width)
s3c_gpio_setpull
(
S5PV210_GPG2
(
2
),
S3C_GPIO_PULL_UP
);
s3c_gpio_cfgpin
(
S5PV210_GPG2
(
2
),
S3C_GPIO_SFN
(
2
));
}
void
s5pv210_setup_sdhci3_cfg_gpio
(
struct
platform_device
*
dev
,
int
width
)
{
unsigned
int
gpio
;
/* Set all the necessary GPG3[0:2] pins to special-function 2 */
for
(
gpio
=
S5PV210_GPG3
(
0
);
gpio
<
S5PV210_GPG3
(
2
);
gpio
++
)
{
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
/* Data pin GPG3[3:6] to special-function 2 */
for
(
gpio
=
S5PV210_GPG3
(
3
);
gpio
<=
S5PV210_GPG3
(
6
);
gpio
++
)
{
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
s3c_gpio_setpull
(
S5PV210_GPG3
(
2
),
S3C_GPIO_PULL_UP
);
s3c_gpio_cfgpin
(
S5PV210_GPG3
(
2
),
S3C_GPIO_SFN
(
2
));
}
arch/arm/mach-s5pv210/setup-sdhci.c
View file @
a639718b
...
...
@@ -26,9 +26,9 @@
char
*
s5pv210_hsmmc_clksrcs
[
4
]
=
{
[
0
]
=
"hsmmc"
,
/* HCLK */
[
1
]
=
"hsmmc"
,
/* HCLK
*/
/* [1] = "hsmmc", - duplicate HCLK entry
*/
[
2
]
=
"sclk_mmc"
,
/* mmc_bus */
/*
[4] =
reserved */
/*
[3] = NULL, -
reserved */
};
void
s5pv210_setup_sdhci_cfg_card
(
struct
platform_device
*
dev
,
...
...
arch/arm/plat-samsung/include/plat/keypad-core.h
0 → 100644
View file @
a639718b
/*
* linux/arch/arm/plat-samsung/include/plat/keypad-core.h
*
* Copyright (C) 2010 Samsung Electronics Co.Ltd
* Author: Joonyoung Shim <jy0922.shim@samsung.com>
*
* Samsung keypad controller core function
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
*/
#ifndef __ASM_ARCH_KEYPAD_CORE_H
#define __ASM_ARCH_KEYPAD_CORE_H
/* These function are only for use with the core support code, such as
* the cpu specific initialisation code
*/
/* re-define device name depending on support. */
static
inline
void
samsung_keypad_setname
(
char
*
name
)
{
#ifdef CONFIG_SAMSUNG_DEV_KEYPAD
samsung_device_keypad
.
name
=
name
;
#endif
}
#endif
/* __ASM_ARCH_KEYPAD_CORE_H */
arch/arm/plat-samsung/include/plat/sdhci.h
View file @
a639718b
...
...
@@ -78,6 +78,7 @@ extern void s3c64xx_setup_sdhci2_cfg_gpio(struct platform_device *, int w);
extern
void
s5pv210_setup_sdhci0_cfg_gpio
(
struct
platform_device
*
,
int
w
);
extern
void
s5pv210_setup_sdhci1_cfg_gpio
(
struct
platform_device
*
,
int
w
);
extern
void
s5pv210_setup_sdhci2_cfg_gpio
(
struct
platform_device
*
,
int
w
);
extern
void
s5pv210_setup_sdhci3_cfg_gpio
(
struct
platform_device
*
,
int
w
);
/* S3C6400 SDHCI setup */
...
...
@@ -266,10 +267,22 @@ static inline void s5pv210_default_sdhci2(void)
static
inline
void
s5pv210_default_sdhci2
(
void
)
{
}
#endif
/* CONFIG_S3C_DEV_HSMMC2 */
#ifdef CONFIG_S3C_DEV_HSMMC3
static
inline
void
s5pv210_default_sdhci3
(
void
)
{
s3c_hsmmc3_def_platdata
.
clocks
=
s5pv210_hsmmc_clksrcs
;
s3c_hsmmc3_def_platdata
.
cfg_gpio
=
s5pv210_setup_sdhci3_cfg_gpio
;
s3c_hsmmc3_def_platdata
.
cfg_card
=
s5pv210_setup_sdhci_cfg_card
;
}
#else
static
inline
void
s5pv210_default_sdhci3
(
void
)
{
}
#endif
/* CONFIG_S3C_DEV_HSMMC3 */
#else
static
inline
void
s5pv210_default_sdhci0
(
void
)
{
}
static
inline
void
s5pv210_default_sdhci1
(
void
)
{
}
static
inline
void
s5pv210_default_sdhci2
(
void
)
{
}
static
inline
void
s5pv210_default_sdhci3
(
void
)
{
}
#endif
/* CONFIG_S5PC100_SETUP_SDHCI */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment