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
0321c51f
Commit
0321c51f
authored
Aug 06, 2010
by
Kukjin Kim
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'next-s5pc100' into for-next
parents
e4201764
aaeedff6
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
201 additions
and
9 deletions
+201
-9
arch/arm/mach-s5pc100/Kconfig
arch/arm/mach-s5pc100/Kconfig
+20
-0
arch/arm/mach-s5pc100/Makefile
arch/arm/mach-s5pc100/Makefile
+2
-0
arch/arm/mach-s5pc100/clock.c
arch/arm/mach-s5pc100/clock.c
+4
-4
arch/arm/mach-s5pc100/cpu.c
arch/arm/mach-s5pc100/cpu.c
+5
-0
arch/arm/mach-s5pc100/include/mach/irqs.h
arch/arm/mach-s5pc100/include/mach/irqs.h
+1
-1
arch/arm/mach-s5pc100/include/mach/map.h
arch/arm/mach-s5pc100/include/mach/map.h
+13
-0
arch/arm/mach-s5pc100/include/mach/regs-clock.h
arch/arm/mach-s5pc100/include/mach/regs-clock.h
+3
-0
arch/arm/mach-s5pc100/mach-smdkc100.c
arch/arm/mach-s5pc100/mach-smdkc100.c
+45
-0
arch/arm/mach-s5pc100/setup-ide.c
arch/arm/mach-s5pc100/setup-ide.c
+70
-0
arch/arm/mach-s5pc100/setup-keypad.c
arch/arm/mach-s5pc100/setup-keypad.c
+34
-0
arch/arm/mach-s5pc100/setup-sdhci.c
arch/arm/mach-s5pc100/setup-sdhci.c
+4
-4
No files found.
arch/arm/mach-s5pc100/Kconfig
View file @
0321c51f
...
...
@@ -25,6 +25,16 @@ config S5PC100_SETUP_I2C1
help
Common setup code for i2c bus 1.
config S5PC100_SETUP_IDE
bool
help
Common setup code for S5PC100 IDE GPIO configurations
config S5PC100_SETUP_KEYPAD
bool
help
Common setup code for KEYPAD GPIO configurations.
config S5PC100_SETUP_SDHCI
bool
select S5PC100_SETUP_SDHCI_GPIO
...
...
@@ -39,14 +49,24 @@ config S5PC100_SETUP_SDHCI_GPIO
config MACH_SMDKC100
bool "SMDKC100"
select CPU_S5PC100
select SAMSUNG_DEV_ADC
select S3C_DEV_FB
select S3C_DEV_I2C1
select SAMSUNG_DEV_IDE
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_HSMMC2
select SAMSUNG_DEV_KEYPAD
select S3C_DEV_RTC
select SAMSUNG_DEV_TS
select S3C_DEV_WDT
select HAVE_S3C2410_WATCHDOG
select S5PC100_SETUP_FB_24BPP
select S5PC100_SETUP_I2C1
select S5PC100_SETUP_IDE
select S5PC100_SETUP_KEYPAD
select S5PC100_SETUP_SDHCI
select HAVE_S3C_RTC
help
Machine support for the Samsung SMDKC100
...
...
arch/arm/mach-s5pc100/Makefile
View file @
0321c51f
...
...
@@ -19,6 +19,8 @@ obj-$(CONFIG_CPU_S5PC100) += dma.o
obj-$(CONFIG_S5PC100_SETUP_FB_24BPP)
+=
setup-fb-24bpp.o
obj-$(CONFIG_S5PC100_SETUP_I2C1)
+=
setup-i2c1.o
obj-$(CONFIG_S5PC100_SETUP_IDE)
+=
setup-ide.o
obj-$(CONFIG_S5PC100_SETUP_KEYPAD)
+=
setup-keypad.o
obj-$(CONFIG_S5PC100_SETUP_SDHCI)
+=
setup-sdhci.o
obj-$(CONFIG_S5PC100_SETUP_SDHCI_GPIO)
+=
setup-sdhci-gpio.o
...
...
arch/arm/mach-s5pc100/clock.c
View file @
0321c51f
...
...
@@ -737,7 +737,7 @@ static struct clk init_clocks_disable[] = {
.
enable
=
s5pc100_d1_5_ctrl
,
.
ctrlbit
=
(
1
<<
7
),
},
{
.
name
=
"key
if
"
,
.
name
=
"key
pad
"
,
.
id
=
-
1
,
.
parent
=
&
clk_div_d1_bus
.
clk
,
.
enable
=
s5pc100_d1_5_ctrl
,
...
...
@@ -1078,7 +1078,7 @@ static struct clksrc_clk clksrcs[] = {
.
reg_div
=
{
.
reg
=
S5P_CLK_DIV3
,
.
shift
=
24
,
.
size
=
4
},
},
{
.
clk
=
{
.
name
=
"
mmc_bus
"
,
.
name
=
"
sclk_mmc
"
,
.
id
=
0
,
.
ctrlbit
=
(
1
<<
12
),
.
enable
=
s5pc100_sclk1_ctrl
,
...
...
@@ -1089,7 +1089,7 @@ static struct clksrc_clk clksrcs[] = {
.
reg_div
=
{
.
reg
=
S5P_CLK_DIV3
,
.
shift
=
0
,
.
size
=
4
},
},
{
.
clk
=
{
.
name
=
"
mmc_bus
"
,
.
name
=
"
sclk_mmc
"
,
.
id
=
1
,
.
ctrlbit
=
(
1
<<
13
),
.
enable
=
s5pc100_sclk1_ctrl
,
...
...
@@ -1100,7 +1100,7 @@ static struct clksrc_clk clksrcs[] = {
.
reg_div
=
{
.
reg
=
S5P_CLK_DIV3
,
.
shift
=
4
,
.
size
=
4
},
},
{
.
clk
=
{
.
name
=
"
mmc_bus
"
,
.
name
=
"
sclk_mmc
"
,
.
id
=
2
,
.
ctrlbit
=
(
1
<<
14
),
.
enable
=
s5pc100_sclk1_ctrl
,
...
...
arch/arm/mach-s5pc100/cpu.c
View file @
0321c51f
...
...
@@ -38,8 +38,10 @@
#include <plat/cpu.h>
#include <plat/devs.h>
#include <plat/clock.h>
#include <plat/ata-core.h>
#include <plat/iic-core.h>
#include <plat/sdhci.h>
#include <plat/adc-core.h>
#include <plat/onenand-core.h>
#include <plat/s5pc100.h>
...
...
@@ -87,11 +89,14 @@ void __init s5pc100_map_io(void)
s5pc100_default_sdhci1
();
s5pc100_default_sdhci2
();
s3c_adc_setname
(
"s3c64xx-adc"
);
/* the i2c devices are directly compatible with s3c2440 */
s3c_i2c0_setname
(
"s3c2440-i2c"
);
s3c_i2c1_setname
(
"s3c2440-i2c"
);
s3c_onenand_setname
(
"s5pc100-onenand"
);
s3c_cfcon_setname
(
"s5pc100-pata"
);
}
void
__init
s5pc100_init_clocks
(
int
xtal
)
...
...
arch/arm/mach-s5pc100/include/mach/irqs.h
View file @
0321c51f
...
...
@@ -38,7 +38,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-s5pc100/include/mach/map.h
View file @
0321c51f
...
...
@@ -61,6 +61,8 @@
#define S5PC100_PA_ONENAND (0xE7100000)
#define S5PC100_PA_CFCON (0xE7800000)
/* DMA */
#define S5PC100_PA_MDMA (0xE8100000)
#define S5PC100_PA_PDMA0 (0xE9000000)
...
...
@@ -72,6 +74,9 @@
#define S5PC100_PA_SYSTIMER (0xEA100000)
#define S5PC100_PA_WATCHDOG (0xEA200000)
#define S5PC100_PA_RTC (0xEA300000)
#define S5PC100_PA_UART (0xEC000000)
#define S5P_PA_UART0 (S5PC100_PA_UART + 0x0)
...
...
@@ -104,6 +109,8 @@
#define S5PC100_PA_PCM0 0xF2400000
#define S5PC100_PA_PCM1 0xF2500000
#define S5PC100_PA_TSADC (0xF3000000)
/* KEYPAD */
#define S5PC100_PA_KEYPAD (0xF3100000)
...
...
@@ -130,9 +137,15 @@
#define S3C_PA_HSMMC1 S5PC100_PA_HSMMC(1)
#define S3C_PA_HSMMC2 S5PC100_PA_HSMMC(2)
#define S3C_PA_KEYPAD S5PC100_PA_KEYPAD
#define S3C_PA_WDT S5PC100_PA_WATCHDOG
#define S3C_PA_TSADC S5PC100_PA_TSADC
#define S3C_PA_ONENAND S5PC100_PA_ONENAND
#define S3C_PA_ONENAND_BUF S5PC100_PA_ONENAND_BUF
#define S3C_SZ_ONENAND_BUF S5PC100_SZ_ONENAND_BUF
#define S3C_PA_RTC S5PC100_PA_RTC
#define SAMSUNG_PA_ADC S5PC100_PA_TSADC
#define SAMSUNG_PA_CFCON S5PC100_PA_CFCON
#define SAMSUNG_PA_KEYPAD S5PC100_PA_KEYPAD
#endif
/* __ASM_ARCH_C100_MAP_H */
arch/arm/mach-s5pc100/include/mach/regs-clock.h
View file @
0321c51f
...
...
@@ -71,7 +71,10 @@
#define S5P_CLKDIV1_PCLKD1_SHIFT (16)
#define S5PC100_SWRESET S5PC100_REG_OTHERS(0x000)
#define S5PC100_MEM_SYS_CFG S5PC100_REG_OTHERS(0x200)
#define S5PC100_SWRESET_RESETVAL 0xc100
#define MEM_SYS_CFG_EBI_FIX_PRI_CFCON 0x30
#endif
/* __ASM_ARCH_REGS_CLOCK_H */
arch/arm/mach-s5pc100/mach-smdkc100.c
View file @
0321c51f
...
...
@@ -22,6 +22,7 @@
#include <linux/i2c.h>
#include <linux/fb.h>
#include <linux/delay.h>
#include <linux/input.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
...
...
@@ -42,6 +43,10 @@
#include <plat/s5pc100.h>
#include <plat/fb.h>
#include <plat/iic.h>
#include <plat/ata.h>
#include <plat/adc.h>
#include <plat/keypad.h>
#include <plat/ts.h>
/* Following are default values for UCON, ULCON and UFCON UART registers */
#define S5PC100_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \
...
...
@@ -149,16 +154,51 @@ static struct s3c_fb_platdata smdkc100_lcd_pdata __initdata = {
.
setup_gpio
=
s5pc100_fb_gpio_setup_24bpp
,
};
static
struct
s3c_ide_platdata
smdkc100_ide_pdata
__initdata
=
{
.
setup_gpio
=
s5pc100_ide_setup_gpio
,
};
static
uint32_t
smdkc100_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
smdkc100_keymap_data
__initdata
=
{
.
keymap
=
smdkc100_keymap
,
.
keymap_size
=
ARRAY_SIZE
(
smdkc100_keymap
),
};
static
struct
samsung_keypad_platdata
smdkc100_keypad_data
__initdata
=
{
.
keymap_data
=
&
smdkc100_keymap_data
,
.
rows
=
2
,
.
cols
=
8
,
};
static
struct
platform_device
*
smdkc100_devices
[]
__initdata
=
{
&
s3c_device_adc
,
&
s3c_device_cfcon
,
&
s3c_device_i2c0
,
&
s3c_device_i2c1
,
&
s3c_device_fb
,
&
s3c_device_hsmmc0
,
&
s3c_device_hsmmc1
,
&
s3c_device_hsmmc2
,
&
s3c_device_ts
,
&
s3c_device_wdt
,
&
smdkc100_lcd_powerdev
,
&
s5pc100_device_iis0
,
&
samsung_device_keypad
,
&
s5pc100_device_ac97
,
&
s3c_device_rtc
,
};
static
struct
s3c2410_ts_mach_info
s3c_ts_platform
__initdata
=
{
.
delay
=
10000
,
.
presc
=
49
,
.
oversampling_shift
=
2
,
};
static
void
__init
smdkc100_map_io
(
void
)
...
...
@@ -170,6 +210,8 @@ static void __init smdkc100_map_io(void)
static
void
__init
smdkc100_machine_init
(
void
)
{
s3c24xx_ts_set_platdata
(
&
s3c_ts_platform
);
/* I2C */
s3c_i2c0_set_platdata
(
NULL
);
s3c_i2c1_set_platdata
(
NULL
);
...
...
@@ -177,6 +219,9 @@ static void __init smdkc100_machine_init(void)
i2c_register_board_info
(
1
,
i2c_devs1
,
ARRAY_SIZE
(
i2c_devs1
));
s3c_fb_set_platdata
(
&
smdkc100_lcd_pdata
);
s3c_ide_set_platdata
(
&
smdkc100_ide_pdata
);
samsung_keypad_set_platdata
(
&
smdkc100_keypad_data
);
/* LCD init */
gpio_request
(
S5PC100_GPD
(
0
),
"GPD"
);
...
...
arch/arm/mach-s5pc100/setup-ide.c
0 → 100644
View file @
0321c51f
/* linux/arch/arm/mach-s5pc100/setup-ide.c
*
* Copyright (c) 2010 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* S5PC100 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 <linux/io.h>
#include <mach/regs-clock.h>
#include <plat/gpio-cfg.h>
void
s5pc100_ide_setup_gpio
(
void
)
{
u32
reg
;
u32
gpio
=
0
;
/* Independent CF interface, CF chip select configuration */
reg
=
readl
(
S5PC100_MEM_SYS_CFG
)
&
(
~
0x3f
);
writel
(
reg
|
MEM_SYS_CFG_EBI_FIX_PRI_CFCON
,
S5PC100_MEM_SYS_CFG
);
/* CF_Add[0 - 2], CF_IORDY, CF_INTRQ, CF_DMARQ, CF_DMARST, CF_DMACK */
for
(
gpio
=
S5PC100_GPJ0
(
0
);
gpio
<=
S5PC100_GPJ0
(
7
);
gpio
++
)
{
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
);
}
/*CF_Data[0 - 7] */
for
(
gpio
=
S5PC100_GPJ2
(
0
);
gpio
<=
S5PC100_GPJ2
(
7
);
gpio
++
)
{
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
);
}
/* CF_Data[8 - 15] */
for
(
gpio
=
S5PC100_GPJ3
(
0
);
gpio
<=
S5PC100_GPJ3
(
7
);
gpio
++
)
{
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
);
}
/* CF_CS0, CF_CS1, CF_IORD, CF_IOWR */
for
(
gpio
=
S5PC100_GPJ4
(
0
);
gpio
<=
S5PC100_GPJ4
(
3
);
gpio
++
)
{
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
);
}
/* EBI_OE, EBI_WE */
for
(
gpio
=
S5PC100_GPK0
(
6
);
gpio
<=
S5PC100_GPK0
(
7
);
gpio
++
)
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
0
));
/* CF_OE, CF_WE */
for
(
gpio
=
S5PC100_GPK1
(
6
);
gpio
<=
S5PC100_GPK1
(
7
);
gpio
++
)
{
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
/* CF_CD */
s3c_gpio_cfgpin
(
S5PC100_GPK3
(
5
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_setpull
(
S5PC100_GPK3
(
5
),
S3C_GPIO_PULL_NONE
);
}
arch/arm/mach-s5pc100/setup-keypad.c
0 → 100644
View file @
0321c51f
/* linux/arch/arm/mach-s5pc100/setup-keypad.c
*
* Copyright (c) 2010 Samsung Electronics Co., Ltd.
* http://www.samsung.com/
*
* GPIO configuration for S5PC100 KeyPad device
*
* 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/gpio.h>
#include <plat/gpio-cfg.h>
void
samsung_keypad_cfg_gpio
(
unsigned
int
rows
,
unsigned
int
cols
)
{
unsigned
int
gpio
;
unsigned
int
end
;
/* Set all the necessary GPH3 pins to special-function 3: KP_ROW[x] */
end
=
S5PC100_GPH3
(
rows
);
for
(
gpio
=
S5PC100_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
=
S5PC100_GPH2
(
cols
);
for
(
gpio
=
S5PC100_GPH2
(
0
);
gpio
<
end
;
gpio
++
)
{
s3c_gpio_cfgpin
(
gpio
,
S3C_GPIO_SFN
(
3
));
s3c_gpio_setpull
(
gpio
,
S3C_GPIO_PULL_NONE
);
}
}
arch/arm/mach-s5pc100/setup-sdhci.c
View file @
0321c51f
...
...
@@ -26,10 +26,10 @@
/* clock sources for the mmc bus clock, order as for the ctrl2[5..4] */
char
*
s5pc100_hsmmc_clksrcs
[
4
]
=
{
[
0
]
=
"hsmmc"
,
[
1
]
=
"hsmmc"
,
/* [2] = "mmc_bus", not yet successfully used yet
*/
/* [3] = "48m",
- note not successfully used yet */
[
0
]
=
"hsmmc"
,
/* HCLK */
/* [1] = "hsmmc", - duplicate HCLK entry */
[
2
]
=
"sclk_mmc"
,
/* mmc_bus
*/
/* [3] = "48m",
- note not successfully used yet */
};
...
...
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