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
a739260d
Commit
a739260d
authored
Aug 14, 2010
by
Ben Dooks
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'for-2636/s3c64xx' into for-linus/samsung-2635
parents
d92342df
001ca74f
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
208 additions
and
62 deletions
+208
-62
arch/arm/mach-s3c64xx/Kconfig
arch/arm/mach-s3c64xx/Kconfig
+9
-0
arch/arm/mach-s3c64xx/Makefile
arch/arm/mach-s3c64xx/Makefile
+1
-0
arch/arm/mach-s3c64xx/include/mach/memory.h
arch/arm/mach-s3c64xx/include/mach/memory.h
+2
-0
arch/arm/mach-s3c64xx/mach-real6410.c
arch/arm/mach-s3c64xx/mach-real6410.c
+152
-0
arch/arm/mach-s3c64xx/mach-smartq.c
arch/arm/mach-s3c64xx/mach-smartq.c
+38
-2
arch/arm/mach-s3c64xx/mach-smartq5.c
arch/arm/mach-s3c64xx/mach-smartq5.c
+4
-32
arch/arm/mach-s3c64xx/mach-smartq7.c
arch/arm/mach-s3c64xx/mach-smartq7.c
+0
-28
arch/arm/mach-s3c64xx/mach-smdk6410.c
arch/arm/mach-s3c64xx/mach-smdk6410.c
+2
-0
No files found.
arch/arm/mach-s3c64xx/Kconfig
View file @
a739260d
...
...
@@ -88,6 +88,15 @@ config MACH_ANW6410
help
Machine support for the A&W6410
config MACH_REAL6410
bool "REAL6410"
select CPU_S3C6410
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C64XX_SETUP_SDHCI
help
Machine support for the CoreWind REAL6410
config MACH_SMDK6410
bool "SMDK6410"
select CPU_S3C6410
...
...
arch/arm/mach-s3c64xx/Makefile
View file @
a739260d
...
...
@@ -50,6 +50,7 @@ obj-$(CONFIG_PM) += irq-pm.o
obj-$(CONFIG_MACH_ANW6410)
+=
mach-anw6410.o
obj-$(CONFIG_MACH_SMDK6400)
+=
mach-smdk6400.o
obj-$(CONFIG_MACH_SMDK6410)
+=
mach-smdk6410.o
obj-$(CONFIG_MACH_REAL6410)
+=
mach-real6410.o
obj-$(CONFIG_MACH_NCP)
+=
mach-ncp.o
obj-$(CONFIG_MACH_HMT)
+=
mach-hmt.o
obj-$(CONFIG_MACH_SMARTQ)
+=
mach-smartq.o
...
...
arch/arm/mach-s3c64xx/include/mach/memory.h
View file @
a739260d
...
...
@@ -15,4 +15,6 @@
#define PHYS_OFFSET UL(0x50000000)
#define CONSISTENT_DMA_SIZE SZ_8M
#endif
arch/arm/mach-s3c64xx/mach-real6410.c
0 → 100644
View file @
a739260d
/* linux/arch/arm/mach-s3c64xx/mach-real6410.c
*
* Copyright 2010 Darius Augulis <augulis.darius@gmail.com>
* Copyright 2008 Openmoko, Inc.
* Copyright 2008 Simtec Electronics
* Ben Dooks <ben@simtec.co.uk>
* http://armlinux.simtec.co.uk/
*
* 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/types.h>
#include <linux/interrupt.h>
#include <linux/list.h>
#include <linux/init.h>
#include <linux/dm9000.h>
#include <linux/serial_core.h>
#include <linux/platform_device.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <mach/map.h>
#include <mach/s3c6410.h>
#include <mach/regs-srom.h>
#include <plat/cpu.h>
#include <plat/devs.h>
#include <plat/regs-serial.h>
#define UCON S3C2410_UCON_DEFAULT | S3C2410_UCON_UCLK
#define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB
#define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE
static
struct
s3c2410_uartcfg
real6410_uartcfgs
[]
__initdata
=
{
[
0
]
=
{
.
hwport
=
0
,
.
flags
=
0
,
.
ucon
=
UCON
,
.
ulcon
=
ULCON
,
.
ufcon
=
UFCON
,
},
[
1
]
=
{
.
hwport
=
1
,
.
flags
=
0
,
.
ucon
=
UCON
,
.
ulcon
=
ULCON
,
.
ufcon
=
UFCON
,
},
[
2
]
=
{
.
hwport
=
2
,
.
flags
=
0
,
.
ucon
=
UCON
,
.
ulcon
=
ULCON
,
.
ufcon
=
UFCON
,
},
[
3
]
=
{
.
hwport
=
3
,
.
flags
=
0
,
.
ucon
=
UCON
,
.
ulcon
=
ULCON
,
.
ufcon
=
UFCON
,
},
};
/* DM9000AEP 10/100 ethernet controller */
static
struct
resource
real6410_dm9k_resource
[]
=
{
[
0
]
=
{
.
start
=
S3C64XX_PA_XM0CSN1
,
.
end
=
S3C64XX_PA_XM0CSN1
+
1
,
.
flags
=
IORESOURCE_MEM
},
[
1
]
=
{
.
start
=
S3C64XX_PA_XM0CSN1
+
4
,
.
end
=
S3C64XX_PA_XM0CSN1
+
5
,
.
flags
=
IORESOURCE_MEM
},
[
2
]
=
{
.
start
=
S3C_EINT
(
7
),
.
end
=
S3C_EINT
(
7
),
.
flags
=
IORESOURCE_IRQ
,
}
};
static
struct
dm9000_plat_data
real6410_dm9k_pdata
=
{
.
flags
=
(
DM9000_PLATF_16BITONLY
|
DM9000_PLATF_NO_EEPROM
),
};
static
struct
platform_device
real6410_device_eth
=
{
.
name
=
"dm9000"
,
.
id
=
-
1
,
.
num_resources
=
ARRAY_SIZE
(
real6410_dm9k_resource
),
.
resource
=
real6410_dm9k_resource
,
.
dev
=
{
.
platform_data
=
&
real6410_dm9k_pdata
,
},
};
static
struct
platform_device
*
real6410_devices
[]
__initdata
=
{
&
real6410_device_eth
,
&
s3c_device_hsmmc0
,
&
s3c_device_hsmmc1
,
};
static
void
__init
real6410_map_io
(
void
)
{
s3c64xx_init_io
(
NULL
,
0
);
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
real6410_uartcfgs
,
ARRAY_SIZE
(
real6410_uartcfgs
));
}
static
void
__init
real6410_machine_init
(
void
)
{
u32
cs1
;
/* configure nCS1 width to 16 bits */
cs1
=
__raw_readl
(
S3C64XX_SROM_BW
)
&
~
(
S3C64XX_SROM_BW__CS_MASK
<<
S3C64XX_SROM_BW__NCS1__SHIFT
);
cs1
|=
((
1
<<
S3C64XX_SROM_BW__DATAWIDTH__SHIFT
)
|
(
1
<<
S3C64XX_SROM_BW__WAITENABLE__SHIFT
)
|
(
1
<<
S3C64XX_SROM_BW__BYTEENABLE__SHIFT
))
<<
S3C64XX_SROM_BW__NCS1__SHIFT
;
__raw_writel
(
cs1
,
S3C64XX_SROM_BW
);
/* set timing for nCS1 suitable for ethernet chip */
__raw_writel
((
0
<<
S3C64XX_SROM_BCX__PMC__SHIFT
)
|
(
6
<<
S3C64XX_SROM_BCX__TACP__SHIFT
)
|
(
4
<<
S3C64XX_SROM_BCX__TCAH__SHIFT
)
|
(
1
<<
S3C64XX_SROM_BCX__TCOH__SHIFT
)
|
(
13
<<
S3C64XX_SROM_BCX__TACC__SHIFT
)
|
(
4
<<
S3C64XX_SROM_BCX__TCOS__SHIFT
)
|
(
0
<<
S3C64XX_SROM_BCX__TACS__SHIFT
),
S3C64XX_SROM_BC1
);
platform_add_devices
(
real6410_devices
,
ARRAY_SIZE
(
real6410_devices
));
}
MACHINE_START
(
REAL6410
,
"REAL6410"
)
/* Maintainer: Darius Augulis <augulis.darius@gmail.com> */
.
phys_io
=
S3C_PA_UART
&
0xfff00000
,
.
io_pg_offst
=
(((
u32
)
S3C_VA_UART
)
>>
18
)
&
0xfffc
,
.
boot_params
=
S3C64XX_PA_SDRAM
+
0x100
,
.
init_irq
=
s3c6410_init_irq
,
.
map_io
=
real6410_map_io
,
.
init_machine
=
real6410_machine_init
,
.
timer
=
&
s3c24xx_timer
,
MACHINE_END
arch/arm/mach-s3c64xx/mach-smartq.c
View file @
a739260d
...
...
@@ -16,6 +16,7 @@
#include <linux/platform_device.h>
#include <linux/pwm_backlight.h>
#include <linux/serial_core.h>
#include <linux/spi/spi_gpio.h>
#include <linux/usb/gpio_vbus.h>
#include <asm/mach-types.h>
...
...
@@ -166,7 +167,7 @@ static struct s3c2410_ts_mach_info smartq_touchscreen_pdata __initdata = {
static
struct
s3c_sdhci_platdata
smartq_internal_hsmmc_pdata
=
{
.
max_width
=
4
,
/*.broken_card_detection = true,*/
.
cd_type
=
S3C_SDHCI_CD_PERMANENT
,
};
static
struct
s3c_hwmon_pdata
smartq_hwmon_pdata
__initdata
=
{
...
...
@@ -184,6 +185,33 @@ static struct s3c_hwmon_pdata smartq_hwmon_pdata __initdata = {
},
};
static
int
__init
smartq_lcd_setup_gpio
(
void
)
{
int
ret
;
ret
=
gpio_request
(
S3C64XX_GPM
(
3
),
"LCD power"
);
if
(
ret
<
0
)
return
ret
;
/* turn power off */
gpio_direction_output
(
S3C64XX_GPM
(
3
),
0
);
return
0
;
}
/* GPM0 -> CS */
static
struct
spi_gpio_platform_data
smartq_lcd_control
=
{
.
sck
=
S3C64XX_GPM
(
1
),
.
mosi
=
S3C64XX_GPM
(
2
),
.
miso
=
S3C64XX_GPM
(
2
),
};
static
struct
platform_device
smartq_lcd_control_device
=
{
.
name
=
"spi-gpio"
,
.
id
=
1
,
.
dev
.
platform_data
=
&
smartq_lcd_control
,
};
static
void
smartq_lcd_power_set
(
struct
plat_lcd_data
*
pd
,
unsigned
int
power
)
{
gpio_direction_output
(
S3C64XX_GPM
(
3
),
power
);
...
...
@@ -199,6 +227,9 @@ static struct platform_device smartq_lcd_power_device = {
.
dev
.
platform_data
=
&
smartq_lcd_power_data
,
};
static
struct
i2c_board_info
smartq_i2c_devs
[]
__initdata
=
{
{
I2C_BOARD_INFO
(
"wm8987"
,
0x1a
),
},
};
static
struct
platform_device
*
smartq_devices
[]
__initdata
=
{
&
s3c_device_hsmmc1
,
/* Init iNAND first, ... */
...
...
@@ -213,7 +244,9 @@ static struct platform_device *smartq_devices[] __initdata = {
&
s3c_device_timer
[
1
],
&
s3c_device_ts
,
&
s3c_device_usb_hsotg
,
&
s3c64xx_device_iis0
,
&
smartq_backlight_device
,
&
smartq_lcd_control_device
,
&
smartq_lcd_power_device
,
&
smartq_usb_otg_vbus_dev
,
};
...
...
@@ -252,7 +285,6 @@ static int __init smartq_power_off_init(void)
/* leave power on */
gpio_direction_output
(
S3C64XX_GPK
(
15
),
0
);
pm_power_off
=
smartq_power_off
;
return
ret
;
...
...
@@ -354,6 +386,10 @@ void __init smartq_machine_init(void)
s3c_sdhci2_set_platdata
(
&
smartq_internal_hsmmc_pdata
);
s3c24xx_ts_set_platdata
(
&
smartq_touchscreen_pdata
);
i2c_register_board_info
(
0
,
smartq_i2c_devs
,
ARRAY_SIZE
(
smartq_i2c_devs
));
WARN_ON
(
smartq_lcd_setup_gpio
());
WARN_ON
(
smartq_power_off_init
());
WARN_ON
(
smartq_usb_host_init
());
WARN_ON
(
smartq_usb_otg_init
());
...
...
arch/arm/mach-s3c64xx/mach-smartq5.c
View file @
a739260d
...
...
@@ -12,7 +12,6 @@
#include <linux/fb.h>
#include <linux/gpio.h>
#include <linux/gpio_keys.h>
#include <linux/i2c-gpio.h>
#include <linux/init.h>
#include <linux/input.h>
#include <linux/leds.h>
...
...
@@ -33,31 +32,6 @@
#include "mach-smartq.h"
static
void
__init
smartq5_lcd_setup_gpio
(
void
)
{
gpio_request
(
S3C64XX_GPM
(
0
),
"LCD SCEN pin"
);
gpio_request
(
S3C64XX_GPM
(
1
),
"LCD SCL pin"
);
gpio_request
(
S3C64XX_GPM
(
2
),
"LCD SDA pin"
);
gpio_request
(
S3C64XX_GPM
(
3
),
"LCD power"
);
/* turn power off */
gpio_direction_output
(
S3C64XX_GPM
(
0
),
1
);
gpio_direction_input
(
S3C64XX_GPM
(
1
));
gpio_direction_input
(
S3C64XX_GPM
(
2
));
gpio_direction_output
(
S3C64XX_GPM
(
3
),
0
);
}
static
struct
i2c_gpio_platform_data
smartq5_lcd_control
=
{
.
sda_pin
=
S3C64XX_GPM
(
2
),
.
scl_pin
=
S3C64XX_GPM
(
1
),
};
static
struct
platform_device
smartq5_lcd_control_device
=
{
.
name
=
"i2c-gpio"
,
.
id
=
1
,
.
dev
.
platform_data
=
&
smartq5_lcd_control
,
};
static
struct
gpio_led
smartq5_leds
[]
__initdata
=
{
{
.
name
=
"smartq5:green"
,
...
...
@@ -136,10 +110,10 @@ static struct s3c_fb_pd_win smartq5_fb_win0 = {
.
win_mode
=
{
.
pixclock
=
1000000000000ULL
/
((
40
+
1
+
216
+
800
)
*
(
10
+
1
+
35
+
480
)
*
80
),
.
left_margin
=
40
,
.
right_margin
=
216
,
.
upper_margin
=
10
,
.
lower_margin
=
35
,
.
left_margin
=
216
,
.
right_margin
=
40
,
.
upper_margin
=
35
,
.
lower_margin
=
10
,
.
hsync_len
=
1
,
.
vsync_len
=
1
,
.
xres
=
800
,
...
...
@@ -160,7 +134,6 @@ static struct s3c_fb_platdata smartq5_lcd_pdata __initdata = {
static
struct
platform_device
*
smartq5_devices
[]
__initdata
=
{
&
smartq5_leds_device
,
&
smartq5_buttons_device
,
&
smartq5_lcd_control_device
,
};
static
void
__init
smartq5_machine_init
(
void
)
...
...
@@ -168,7 +141,6 @@ static void __init smartq5_machine_init(void)
s3c_fb_set_platdata
(
&
smartq5_lcd_pdata
);
smartq_machine_init
();
smartq5_lcd_setup_gpio
();
platform_add_devices
(
smartq5_devices
,
ARRAY_SIZE
(
smartq5_devices
));
}
...
...
arch/arm/mach-s3c64xx/mach-smartq7.c
View file @
a739260d
...
...
@@ -12,7 +12,6 @@
#include <linux/fb.h>
#include <linux/gpio.h>
#include <linux/gpio_keys.h>
#include <linux/i2c-gpio.h>
#include <linux/init.h>
#include <linux/input.h>
#include <linux/leds.h>
...
...
@@ -33,31 +32,6 @@
#include "mach-smartq.h"
static
void
__init
smartq7_lcd_setup_gpio
(
void
)
{
gpio_request
(
S3C64XX_GPM
(
0
),
"LCD CSB pin"
);
gpio_request
(
S3C64XX_GPM
(
3
),
"LCD power"
);
gpio_request
(
S3C64XX_GPM
(
4
),
"LCD power status"
);
/* turn power off */
gpio_direction_output
(
S3C64XX_GPM
(
0
),
1
);
gpio_direction_output
(
S3C64XX_GPM
(
3
),
0
);
gpio_direction_input
(
S3C64XX_GPM
(
4
));
}
static
struct
i2c_gpio_platform_data
smartq7_lcd_control
=
{
.
sda_pin
=
S3C64XX_GPM
(
2
),
.
scl_pin
=
S3C64XX_GPM
(
1
),
.
sda_is_open_drain
=
1
,
.
scl_is_open_drain
=
1
,
};
static
struct
platform_device
smartq7_lcd_control_device
=
{
.
name
=
"i2c-gpio"
,
.
id
=
1
,
.
dev
.
platform_data
=
&
smartq7_lcd_control
,
};
static
struct
gpio_led
smartq7_leds
[]
__initdata
=
{
{
.
name
=
"smartq7:red"
,
...
...
@@ -176,7 +150,6 @@ static struct s3c_fb_platdata smartq7_lcd_pdata __initdata = {
static
struct
platform_device
*
smartq7_devices
[]
__initdata
=
{
&
smartq7_leds_device
,
&
smartq7_buttons_device
,
&
smartq7_lcd_control_device
,
};
static
void
__init
smartq7_machine_init
(
void
)
...
...
@@ -184,7 +157,6 @@ static void __init smartq7_machine_init(void)
s3c_fb_set_platdata
(
&
smartq7_lcd_pdata
);
smartq_machine_init
();
smartq7_lcd_setup_gpio
();
platform_add_devices
(
smartq7_devices
,
ARRAY_SIZE
(
smartq7_devices
));
}
...
...
arch/arm/mach-s3c64xx/mach-smdk6410.c
View file @
a739260d
...
...
@@ -153,6 +153,8 @@ static struct s3c_fb_pd_win smdk6410_fb_win0 = {
},
.
max_bpp
=
32
,
.
default_bpp
=
16
,
.
virtual_y
=
480
*
2
,
.
virtual_x
=
800
,
};
/* 405566 clocks per frame => 60Hz refresh requires 24333960Hz clock */
...
...
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