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
8e0e9e29
Commit
8e0e9e29
authored
Oct 25, 2010
by
Kukjin Kim
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'next-s3c64xx' into for-next
parents
7684f784
fe894f97
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
572 additions
and
5 deletions
+572
-5
arch/arm/mach-s3c64xx/Kconfig
arch/arm/mach-s3c64xx/Kconfig
+21
-0
arch/arm/mach-s3c64xx/Makefile
arch/arm/mach-s3c64xx/Makefile
+1
-0
arch/arm/mach-s3c64xx/mach-mini6410.c
arch/arm/mach-s3c64xx/mach-mini6410.c
+357
-0
arch/arm/mach-s3c64xx/mach-real6410.c
arch/arm/mach-s3c64xx/mach-real6410.c
+193
-5
No files found.
arch/arm/mach-s3c64xx/Kconfig
View file @
8e0e9e29
...
...
@@ -98,12 +98,33 @@ config MACH_ANW6410
help
Machine support for the A&W6410
config MACH_MINI6410
bool "MINI6410"
select CPU_S3C6410
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C64XX_SETUP_SDHCI
select S3C_DEV_USB_HOST
select S3C_DEV_NAND
select S3C_DEV_FB
select S3C64XX_SETUP_FB_24BPP
select SAMSUNG_DEV_ADC
select SAMSUNG_DEV_TS
help
Machine support for the FriendlyARM MINI6410
config MACH_REAL6410
bool "REAL6410"
select CPU_S3C6410
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C64XX_SETUP_SDHCI
select S3C_DEV_FB
select S3C64XX_SETUP_FB_24BPP
select S3C_DEV_NAND
select SAMSUNG_DEV_ADC
select SAMSUNG_DEV_TS
select S3C_DEV_USB_HOST
help
Machine support for the CoreWind REAL6410
...
...
arch/arm/mach-s3c64xx/Makefile
View file @
8e0e9e29
...
...
@@ -53,6 +53,7 @@ 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_MINI6410)
+=
mach-mini6410.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/mach-mini6410.c
0 → 100644
View file @
8e0e9e29
/* linux/arch/arm/mach-s3c64xx/mach-mini6410.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/init.h>
#include <linux/interrupt.h>
#include <linux/fb.h>
#include <linux/gpio.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/dm9000.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/serial_core.h>
#include <linux/types.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <mach/map.h>
#include <mach/regs-fb.h>
#include <mach/regs-gpio.h>
#include <mach/regs-modem.h>
#include <mach/regs-srom.h>
#include <mach/s3c6410.h>
#include <plat/adc.h>
#include <plat/cpu.h>
#include <plat/devs.h>
#include <plat/fb.h>
#include <plat/nand.h>
#include <plat/regs-serial.h>
#include <plat/ts.h>
#include <video/platform_lcd.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
mini6410_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
mini6410_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
|
IORESOURCE_IRQ_HIGHLEVEL
}
};
static
struct
dm9000_plat_data
mini6410_dm9k_pdata
=
{
.
flags
=
(
DM9000_PLATF_16BITONLY
|
DM9000_PLATF_NO_EEPROM
),
};
static
struct
platform_device
mini6410_device_eth
=
{
.
name
=
"dm9000"
,
.
id
=
-
1
,
.
num_resources
=
ARRAY_SIZE
(
mini6410_dm9k_resource
),
.
resource
=
mini6410_dm9k_resource
,
.
dev
=
{
.
platform_data
=
&
mini6410_dm9k_pdata
,
},
};
static
struct
mtd_partition
mini6410_nand_part
[]
=
{
[
0
]
=
{
.
name
=
"uboot"
,
.
size
=
SZ_1M
,
.
offset
=
0
,
},
[
1
]
=
{
.
name
=
"kernel"
,
.
size
=
SZ_2M
,
.
offset
=
SZ_1M
,
},
[
2
]
=
{
.
name
=
"rootfs"
,
.
size
=
MTDPART_SIZ_FULL
,
.
offset
=
SZ_1M
+
SZ_2M
,
},
};
static
struct
s3c2410_nand_set
mini6410_nand_sets
[]
=
{
[
0
]
=
{
.
name
=
"nand"
,
.
nr_chips
=
1
,
.
nr_partitions
=
ARRAY_SIZE
(
mini6410_nand_part
),
.
partitions
=
mini6410_nand_part
,
},
};
static
struct
s3c2410_platform_nand
mini6410_nand_info
=
{
.
tacls
=
25
,
.
twrph0
=
55
,
.
twrph1
=
40
,
.
nr_sets
=
ARRAY_SIZE
(
mini6410_nand_sets
),
.
sets
=
mini6410_nand_sets
,
};
static
struct
s3c_fb_pd_win
mini6410_fb_win
[]
=
{
{
.
win_mode
=
{
/* 4.3" 480x272 */
.
left_margin
=
3
,
.
right_margin
=
2
,
.
upper_margin
=
1
,
.
lower_margin
=
1
,
.
hsync_len
=
40
,
.
vsync_len
=
1
,
.
xres
=
480
,
.
yres
=
272
,
},
.
max_bpp
=
32
,
.
default_bpp
=
16
,
},
{
.
win_mode
=
{
/* 7.0" 800x480 */
.
left_margin
=
8
,
.
right_margin
=
13
,
.
upper_margin
=
7
,
.
lower_margin
=
5
,
.
hsync_len
=
3
,
.
vsync_len
=
1
,
.
xres
=
800
,
.
yres
=
480
,
},
.
max_bpp
=
32
,
.
default_bpp
=
16
,
},
};
static
struct
s3c_fb_platdata
mini6410_lcd_pdata
__initdata
=
{
.
setup_gpio
=
s3c64xx_fb_gpio_setup_24bpp
,
.
win
[
0
]
=
&
mini6410_fb_win
[
0
],
.
vidcon0
=
VIDCON0_VIDOUT_RGB
|
VIDCON0_PNRMODE_RGB
,
.
vidcon1
=
VIDCON1_INV_HSYNC
|
VIDCON1_INV_VSYNC
,
};
static
void
mini6410_lcd_power_set
(
struct
plat_lcd_data
*
pd
,
unsigned
int
power
)
{
if
(
power
)
gpio_direction_output
(
S3C64XX_GPE
(
0
),
1
);
else
gpio_direction_output
(
S3C64XX_GPE
(
0
),
0
);
}
static
struct
plat_lcd_data
mini6410_lcd_power_data
=
{
.
set_power
=
mini6410_lcd_power_set
,
};
static
struct
platform_device
mini6410_lcd_powerdev
=
{
.
name
=
"platform-lcd"
,
.
dev
.
parent
=
&
s3c_device_fb
.
dev
,
.
dev
.
platform_data
=
&
mini6410_lcd_power_data
,
};
static
struct
s3c2410_ts_mach_info
s3c_ts_platform
__initdata
=
{
.
delay
=
10000
,
.
presc
=
49
,
.
oversampling_shift
=
2
,
};
static
struct
platform_device
*
mini6410_devices
[]
__initdata
=
{
&
mini6410_device_eth
,
&
s3c_device_hsmmc0
,
&
s3c_device_hsmmc1
,
&
s3c_device_ohci
,
&
s3c_device_nand
,
&
s3c_device_fb
,
&
mini6410_lcd_powerdev
,
&
s3c_device_adc
,
&
s3c_device_ts
,
};
static
void
__init
mini6410_map_io
(
void
)
{
u32
tmp
;
s3c64xx_init_io
(
NULL
,
0
);
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
mini6410_uartcfgs
,
ARRAY_SIZE
(
mini6410_uartcfgs
));
/* set the LCD type */
tmp
=
__raw_readl
(
S3C64XX_SPCON
);
tmp
&=
~
S3C64XX_SPCON_LCD_SEL_MASK
;
tmp
|=
S3C64XX_SPCON_LCD_SEL_RGB
;
__raw_writel
(
tmp
,
S3C64XX_SPCON
);
/* remove the LCD bypass */
tmp
=
__raw_readl
(
S3C64XX_MODEM_MIFPCON
);
tmp
&=
~
MIFPCON_LCD_BYPASS
;
__raw_writel
(
tmp
,
S3C64XX_MODEM_MIFPCON
);
}
/*
* mini6410_features string
*
* 0-9 LCD configuration
*
*/
static
char
mini6410_features_str
[
12
]
__initdata
=
"0"
;
static
int
__init
mini6410_features_setup
(
char
*
str
)
{
if
(
str
)
strlcpy
(
mini6410_features_str
,
str
,
sizeof
(
mini6410_features_str
));
return
1
;
}
__setup
(
"mini6410="
,
mini6410_features_setup
);
#define FEATURE_SCREEN (1 << 0)
struct
mini6410_features_t
{
int
done
;
int
lcd_index
;
};
static
void
mini6410_parse_features
(
struct
mini6410_features_t
*
features
,
const
char
*
features_str
)
{
const
char
*
fp
=
features_str
;
features
->
done
=
0
;
features
->
lcd_index
=
0
;
while
(
*
fp
)
{
char
f
=
*
fp
++
;
switch
(
f
)
{
case
'0'
...
'9'
:
/* tft screen */
if
(
features
->
done
&
FEATURE_SCREEN
)
{
printk
(
KERN_INFO
"MINI6410: '%c' ignored, "
"screen type already set
\n
"
,
f
);
}
else
{
int
li
=
f
-
'0'
;
if
(
li
>=
ARRAY_SIZE
(
mini6410_fb_win
))
printk
(
KERN_INFO
"MINI6410: '%c' out "
"of range LCD mode
\n
"
,
f
);
else
{
features
->
lcd_index
=
li
;
}
}
features
->
done
|=
FEATURE_SCREEN
;
break
;
}
}
}
static
void
__init
mini6410_machine_init
(
void
)
{
u32
cs1
;
struct
mini6410_features_t
features
=
{
0
};
printk
(
KERN_INFO
"MINI6410: Option string mini6410=%s
\n
"
,
mini6410_features_str
);
/* Parse the feature string */
mini6410_parse_features
(
&
features
,
mini6410_features_str
);
mini6410_lcd_pdata
.
win
[
0
]
=
&
mini6410_fb_win
[
features
.
lcd_index
];
printk
(
KERN_INFO
"MINI6410: selected LCD display is %dx%d
\n
"
,
mini6410_lcd_pdata
.
win
[
0
]
->
win_mode
.
xres
,
mini6410_lcd_pdata
.
win
[
0
]
->
win_mode
.
yres
);
s3c_nand_set_platdata
(
&
mini6410_nand_info
);
s3c_fb_set_platdata
(
&
mini6410_lcd_pdata
);
s3c24xx_ts_set_platdata
(
&
s3c_ts_platform
);
/* 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
);
gpio_request
(
S3C64XX_GPF
(
15
),
"LCD power"
);
gpio_request
(
S3C64XX_GPE
(
0
),
"LCD power"
);
platform_add_devices
(
mini6410_devices
,
ARRAY_SIZE
(
mini6410_devices
));
}
MACHINE_START
(
MINI6410
,
"MINI6410"
)
/* Maintainer: Darius Augulis <augulis.darius@gmail.com> */
.
boot_params
=
S3C64XX_PA_SDRAM
+
0x100
,
.
init_irq
=
s3c6410_init_irq
,
.
map_io
=
mini6410_map_io
,
.
init_machine
=
mini6410_machine_init
,
.
timer
=
&
s3c24xx_timer
,
MACHINE_END
arch/arm/mach-s3c64xx/mach-real6410.c
View file @
8e0e9e29
...
...
@@ -12,23 +12,39 @@
*
*/
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/fb.h>
#include <linux/gpio.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/init.h>
#include <linux/dm9000.h>
#include <linux/serial_core.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/platform_device.h>
#include <linux/serial_core.h>
#include <linux/types.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-fb.h>
#include <mach/regs-gpio.h>
#include <mach/regs-modem.h>
#include <mach/regs-srom.h>
#include <mach/s3c6410.h>
#include <plat/adc.h>
#include <plat/cpu.h>
#include <plat/devs.h>
#include <plat/fb.h>
#include <plat/nand.h>
#include <plat/regs-serial.h>
#include <plat/ts.h>
#include <video/platform_lcd.h>
#define UCON (S3C2410_UCON_DEFAULT | S3C2410_UCON_UCLK)
#define ULCON (S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB)
...
...
@@ -99,22 +115,192 @@ static struct platform_device real6410_device_eth = {
},
};
static
struct
s3c_fb_pd_win
real6410_fb_win
[]
=
{
{
.
win_mode
=
{
/* 4.3" 480x272 */
.
left_margin
=
3
,
.
right_margin
=
2
,
.
upper_margin
=
1
,
.
lower_margin
=
1
,
.
hsync_len
=
40
,
.
vsync_len
=
1
,
.
xres
=
480
,
.
yres
=
272
,
},
.
max_bpp
=
32
,
.
default_bpp
=
16
,
},
{
.
win_mode
=
{
/* 7.0" 800x480 */
.
left_margin
=
8
,
.
right_margin
=
13
,
.
upper_margin
=
7
,
.
lower_margin
=
5
,
.
hsync_len
=
3
,
.
vsync_len
=
1
,
.
xres
=
800
,
.
yres
=
480
,
},
.
max_bpp
=
32
,
.
default_bpp
=
16
,
},
};
static
struct
s3c_fb_platdata
real6410_lcd_pdata
__initdata
=
{
.
setup_gpio
=
s3c64xx_fb_gpio_setup_24bpp
,
.
win
[
0
]
=
&
real6410_fb_win
[
0
],
.
vidcon0
=
VIDCON0_VIDOUT_RGB
|
VIDCON0_PNRMODE_RGB
,
.
vidcon1
=
VIDCON1_INV_HSYNC
|
VIDCON1_INV_VSYNC
,
};
static
struct
mtd_partition
real6410_nand_part
[]
=
{
[
0
]
=
{
.
name
=
"uboot"
,
.
size
=
SZ_1M
,
.
offset
=
0
,
},
[
1
]
=
{
.
name
=
"kernel"
,
.
size
=
SZ_2M
,
.
offset
=
SZ_1M
,
},
[
2
]
=
{
.
name
=
"rootfs"
,
.
size
=
MTDPART_SIZ_FULL
,
.
offset
=
SZ_1M
+
SZ_2M
,
},
};
static
struct
s3c2410_nand_set
real6410_nand_sets
[]
=
{
[
0
]
=
{
.
name
=
"nand"
,
.
nr_chips
=
1
,
.
nr_partitions
=
ARRAY_SIZE
(
real6410_nand_part
),
.
partitions
=
real6410_nand_part
,
},
};
static
struct
s3c2410_platform_nand
real6410_nand_info
=
{
.
tacls
=
25
,
.
twrph0
=
55
,
.
twrph1
=
40
,
.
nr_sets
=
ARRAY_SIZE
(
real6410_nand_sets
),
.
sets
=
real6410_nand_sets
,
};
static
struct
platform_device
*
real6410_devices
[]
__initdata
=
{
&
real6410_device_eth
,
&
s3c_device_hsmmc0
,
&
s3c_device_hsmmc1
,
&
s3c_device_fb
,
&
s3c_device_nand
,
&
s3c_device_adc
,
&
s3c_device_ts
,
&
s3c_device_ohci
,
};
static
struct
s3c2410_ts_mach_info
s3c_ts_platform
__initdata
=
{
.
delay
=
10000
,
.
presc
=
49
,
.
oversampling_shift
=
2
,
};
static
void
__init
real6410_map_io
(
void
)
{
u32
tmp
;
s3c64xx_init_io
(
NULL
,
0
);
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
real6410_uartcfgs
,
ARRAY_SIZE
(
real6410_uartcfgs
));
/* set the LCD type */
tmp
=
__raw_readl
(
S3C64XX_SPCON
);
tmp
&=
~
S3C64XX_SPCON_LCD_SEL_MASK
;
tmp
|=
S3C64XX_SPCON_LCD_SEL_RGB
;
__raw_writel
(
tmp
,
S3C64XX_SPCON
);
/* remove the LCD bypass */
tmp
=
__raw_readl
(
S3C64XX_MODEM_MIFPCON
);
tmp
&=
~
MIFPCON_LCD_BYPASS
;
__raw_writel
(
tmp
,
S3C64XX_MODEM_MIFPCON
);
}
/*
* real6410_features string
*
* 0-9 LCD configuration
*
*/
static
char
real6410_features_str
[
12
]
__initdata
=
"0"
;
static
int
__init
real6410_features_setup
(
char
*
str
)
{
if
(
str
)
strlcpy
(
real6410_features_str
,
str
,
sizeof
(
real6410_features_str
));
return
1
;
}
__setup
(
"real6410="
,
real6410_features_setup
);
#define FEATURE_SCREEN (1 << 0)
struct
real6410_features_t
{
int
done
;
int
lcd_index
;
};
static
void
real6410_parse_features
(
struct
real6410_features_t
*
features
,
const
char
*
features_str
)
{
const
char
*
fp
=
features_str
;
features
->
done
=
0
;
features
->
lcd_index
=
0
;
while
(
*
fp
)
{
char
f
=
*
fp
++
;
switch
(
f
)
{
case
'0'
...
'9'
:
/* tft screen */
if
(
features
->
done
&
FEATURE_SCREEN
)
{
printk
(
KERN_INFO
"REAL6410: '%c' ignored, "
"screen type already set
\n
"
,
f
);
}
else
{
int
li
=
f
-
'0'
;
if
(
li
>=
ARRAY_SIZE
(
real6410_fb_win
))
printk
(
KERN_INFO
"REAL6410: '%c' out "
"of range LCD mode
\n
"
,
f
);
else
{
features
->
lcd_index
=
li
;
}
}
features
->
done
|=
FEATURE_SCREEN
;
break
;
}
}
}
static
void
__init
real6410_machine_init
(
void
)
{
u32
cs1
;
struct
real6410_features_t
features
=
{
0
};
printk
(
KERN_INFO
"REAL6410: Option string real6410=%s
\n
"
,
real6410_features_str
);
/* Parse the feature string */
real6410_parse_features
(
&
features
,
real6410_features_str
);
real6410_lcd_pdata
.
win
[
0
]
=
&
real6410_fb_win
[
features
.
lcd_index
];
printk
(
KERN_INFO
"REAL6410: selected LCD display is %dx%d
\n
"
,
real6410_lcd_pdata
.
win
[
0
]
->
win_mode
.
xres
,
real6410_lcd_pdata
.
win
[
0
]
->
win_mode
.
yres
);
s3c_fb_set_platdata
(
&
real6410_lcd_pdata
);
s3c_nand_set_platdata
(
&
real6410_nand_info
);
s3c24xx_ts_set_platdata
(
&
s3c_ts_platform
);
/* configure nCS1 width to 16 bits */
...
...
@@ -136,6 +322,8 @@ static void __init real6410_machine_init(void)
(
4
<<
S3C64XX_SROM_BCX__TCOS__SHIFT
)
|
(
0
<<
S3C64XX_SROM_BCX__TACS__SHIFT
),
S3C64XX_SROM_BC1
);
gpio_request
(
S3C64XX_GPF
(
15
),
"LCD power"
);
platform_add_devices
(
real6410_devices
,
ARRAY_SIZE
(
real6410_devices
));
}
...
...
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