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
7d84b3e9
Commit
7d84b3e9
authored
Oct 04, 2011
by
Kukjin Kim
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'next/topic-exynos4-devel' into next-samsung-devel
parents
59384796
95727e1f
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
790 additions
and
0 deletions
+790
-0
arch/arm/configs/exynos4_defconfig
arch/arm/configs/exynos4_defconfig
+1
-0
arch/arm/mach-exynos4/Kconfig
arch/arm/mach-exynos4/Kconfig
+30
-0
arch/arm/mach-exynos4/Makefile
arch/arm/mach-exynos4/Makefile
+1
-0
arch/arm/mach-exynos4/mach-nuri.c
arch/arm/mach-exynos4/mach-nuri.c
+34
-0
arch/arm/mach-exynos4/mach-origen.c
arch/arm/mach-exynos4/mach-origen.c
+679
-0
arch/arm/mach-exynos4/mach-smdkv310.c
arch/arm/mach-exynos4/mach-smdkv310.c
+11
-0
arch/arm/mach-exynos4/mach-universal_c210.c
arch/arm/mach-exynos4/mach-universal_c210.c
+34
-0
No files found.
arch/arm/configs/exynos4_defconfig
View file @
7d84b3e9
...
...
@@ -11,6 +11,7 @@ CONFIG_MACH_SMDKV310=y
CONFIG_MACH_ARMLEX4210=y
CONFIG_MACH_UNIVERSAL_C210=y
CONFIG_MACH_NURI=y
CONFIG_MACH_ORIGEN=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_SMP=y
...
...
arch/arm/mach-exynos4/Kconfig
View file @
7d84b3e9
...
...
@@ -139,6 +139,7 @@ config MACH_SMDKV310
select S3C_DEV_RTC
select S3C_DEV_WDT
select S3C_DEV_I2C1
select S5P_DEV_MFC
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_HSMMC2
...
...
@@ -178,6 +179,7 @@ config MACH_UNIVERSAL_C210
select S5P_DEV_FIMC1
select S5P_DEV_FIMC2
select S5P_DEV_FIMC3
select S5P_DEV_FIMD0
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC2
select S3C_DEV_HSMMC3
...
...
@@ -187,6 +189,7 @@ config MACH_UNIVERSAL_C210
select S5P_DEV_MFC
select S5P_DEV_ONENAND
select EXYNOS4_DEV_PD
select EXYNOS4_SETUP_FIMD0
select EXYNOS4_SETUP_I2C1
select EXYNOS4_SETUP_I2C3
select EXYNOS4_SETUP_I2C5
...
...
@@ -199,6 +202,8 @@ config MACH_NURI
bool "Mobile NURI Board"
select CPU_EXYNOS4210
select S3C_DEV_WDT
select S3C_DEV_RTC
select S5P_DEV_FIMD0
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC2
select S3C_DEV_HSMMC3
...
...
@@ -208,6 +213,7 @@ config MACH_NURI
select S5P_DEV_MFC
select S5P_DEV_USB_EHCI
select EXYNOS4_DEV_PD
select EXYNOS4_SETUP_FIMD0
select EXYNOS4_SETUP_I2C1
select EXYNOS4_SETUP_I2C3
select EXYNOS4_SETUP_I2C5
...
...
@@ -218,6 +224,30 @@ config MACH_NURI
help
Machine support for Samsung Mobile NURI Board.
config MACH_ORIGEN
bool "ORIGEN"
select CPU_EXYNOS4210
select S3C_DEV_RTC
select S3C_DEV_WDT
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC2
select S5P_DEV_FIMC0
select S5P_DEV_FIMC1
select S5P_DEV_FIMC2
select S5P_DEV_FIMC3
select S5P_DEV_FIMD0
select S5P_DEV_I2C_HDMIPHY
select S5P_DEV_TV
select S5P_DEV_USB_EHCI
select EXYNOS4_DEV_PD
select SAMSUNG_DEV_BACKLIGHT
select SAMSUNG_DEV_PWM
select EXYNOS4_SETUP_FIMD0
select EXYNOS4_SETUP_SDHCI
select EXYNOS4_SETUP_USB_PHY
help
Machine support for ORIGEN based on Samsung EXYNOS4210
endmenu
comment "Configuration for HSMMC bus width"
...
...
arch/arm/mach-exynos4/Makefile
View file @
7d84b3e9
...
...
@@ -30,6 +30,7 @@ obj-$(CONFIG_MACH_SMDKV310) += mach-smdkv310.o
obj-$(CONFIG_MACH_ARMLEX4210)
+=
mach-armlex4210.o
obj-$(CONFIG_MACH_UNIVERSAL_C210)
+=
mach-universal_c210.o
obj-$(CONFIG_MACH_NURI)
+=
mach-nuri.o
obj-$(CONFIG_MACH_ORIGEN)
+=
mach-origen.o
# device support
...
...
arch/arm/mach-exynos4/mach-nuri.c
View file @
7d84b3e9
...
...
@@ -32,10 +32,12 @@
#include <asm/mach-types.h>
#include <plat/adc.h>
#include <plat/regs-fb-v4.h>
#include <plat/regs-serial.h>
#include <plat/exynos4.h>
#include <plat/cpu.h>
#include <plat/devs.h>
#include <plat/fb.h>
#include <plat/sdhci.h>
#include <plat/ehci.h>
#include <plat/clock.h>
...
...
@@ -199,6 +201,33 @@ static struct platform_device nuri_gpio_keys = {
},
};
/* Frame Buffer */
static
struct
s3c_fb_pd_win
nuri_fb_win0
=
{
.
win_mode
=
{
.
left_margin
=
64
,
.
right_margin
=
16
,
.
upper_margin
=
64
,
.
lower_margin
=
1
,
.
hsync_len
=
48
,
.
vsync_len
=
3
,
.
xres
=
1280
,
.
yres
=
800
,
.
refresh
=
60
,
},
.
max_bpp
=
24
,
.
default_bpp
=
16
,
.
virtual_x
=
1280
,
.
virtual_y
=
800
,
};
static
struct
s3c_fb_platdata
nuri_fb_pdata
__initdata
=
{
.
win
[
0
]
=
&
nuri_fb_win0
,
.
vidcon0
=
VIDCON0_VIDOUT_RGB
|
VIDCON0_PNRMODE_RGB
|
VIDCON0_CLKSEL_LCD
,
.
vidcon1
=
VIDCON1_INV_HSYNC
|
VIDCON1_INV_VSYNC
,
.
setup_gpio
=
exynos4_fimd0_gpio_setup_24bpp
,
};
static
void
nuri_lcd_power_on
(
struct
plat_lcd_data
*
pd
,
unsigned
int
power
)
{
int
gpio
=
EXYNOS4_GPE1
(
5
);
...
...
@@ -1092,6 +1121,7 @@ static struct platform_device *nuri_devices[] __initdata = {
/* Samsung Platform Devices */
&
s3c_device_i2c5
,
/* PMIC should initialize first */
&
emmc_fixed_voltage
,
&
s5p_device_fimd0
,
&
s3c_device_hsmmc0
,
&
s3c_device_hsmmc2
,
&
s3c_device_hsmmc3
,
...
...
@@ -1106,6 +1136,7 @@ static struct platform_device *nuri_devices[] __initdata = {
&
s5p_device_mfc_l
,
&
s5p_device_mfc_r
,
&
exynos4_device_pd
[
PD_MFC
],
&
exynos4_device_pd
[
PD_LCD0
],
/* NURI Devices */
&
nuri_gpio_keys
,
...
...
@@ -1142,12 +1173,15 @@ static void __init nuri_machine_init(void)
i2c9_devs
[
I2C9_MAX17042
].
irq
=
gpio_to_irq
(
EXYNOS4_GPX2
(
3
));
i2c_register_board_info
(
9
,
i2c9_devs
,
ARRAY_SIZE
(
i2c9_devs
));
s5p_fimd0_set_platdata
(
&
nuri_fb_pdata
);
nuri_ehci_init
();
clk_xusbxti
.
rate
=
24000000
;
/* Last */
platform_add_devices
(
nuri_devices
,
ARRAY_SIZE
(
nuri_devices
));
s5p_device_mfc
.
dev
.
parent
=
&
exynos4_device_pd
[
PD_MFC
].
dev
;
s5p_device_fimd0
.
dev
.
parent
=
&
exynos4_device_pd
[
PD_LCD0
].
dev
;
}
MACHINE_START
(
NURI
,
"NURI"
)
...
...
arch/arm/mach-exynos4/mach-origen.c
0 → 100644
View file @
7d84b3e9
/* linux/arch/arm/mach-exynos4/mach-origen.c
*
* Copyright (c) 2011 Insignal Co., Ltd.
* http://www.insignal.co.kr/
*
* 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/serial_core.h>
#include <linux/gpio.h>
#include <linux/mmc/host.h>
#include <linux/platform_device.h>
#include <linux/io.h>
#include <linux/input.h>
#include <linux/pwm_backlight.h>
#include <linux/gpio_keys.h>
#include <linux/i2c.h>
#include <linux/regulator/machine.h>
#include <linux/mfd/max8997.h>
#include <linux/lcd.h>
#include <asm/mach/arch.h>
#include <asm/mach-types.h>
#include <video/platform_lcd.h>
#include <plat/regs-serial.h>
#include <plat/regs-fb-v4.h>
#include <plat/exynos4.h>
#include <plat/cpu.h>
#include <plat/devs.h>
#include <plat/sdhci.h>
#include <plat/iic.h>
#include <plat/ehci.h>
#include <plat/clock.h>
#include <plat/gpio-cfg.h>
#include <plat/backlight.h>
#include <plat/pd.h>
#include <plat/fb.h>
#include <mach/map.h>
/* Following are default values for UCON, ULCON and UFCON UART registers */
#define ORIGEN_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \
S3C2410_UCON_RXILEVEL | \
S3C2410_UCON_TXIRQMODE | \
S3C2410_UCON_RXIRQMODE | \
S3C2410_UCON_RXFIFO_TOI | \
S3C2443_UCON_RXERR_IRQEN)
#define ORIGEN_ULCON_DEFAULT S3C2410_LCON_CS8
#define ORIGEN_UFCON_DEFAULT (S3C2410_UFCON_FIFOMODE | \
S5PV210_UFCON_TXTRIG4 | \
S5PV210_UFCON_RXTRIG4)
static
struct
s3c2410_uartcfg
origen_uartcfgs
[]
__initdata
=
{
[
0
]
=
{
.
hwport
=
0
,
.
flags
=
0
,
.
ucon
=
ORIGEN_UCON_DEFAULT
,
.
ulcon
=
ORIGEN_ULCON_DEFAULT
,
.
ufcon
=
ORIGEN_UFCON_DEFAULT
,
},
[
1
]
=
{
.
hwport
=
1
,
.
flags
=
0
,
.
ucon
=
ORIGEN_UCON_DEFAULT
,
.
ulcon
=
ORIGEN_ULCON_DEFAULT
,
.
ufcon
=
ORIGEN_UFCON_DEFAULT
,
},
[
2
]
=
{
.
hwport
=
2
,
.
flags
=
0
,
.
ucon
=
ORIGEN_UCON_DEFAULT
,
.
ulcon
=
ORIGEN_ULCON_DEFAULT
,
.
ufcon
=
ORIGEN_UFCON_DEFAULT
,
},
[
3
]
=
{
.
hwport
=
3
,
.
flags
=
0
,
.
ucon
=
ORIGEN_UCON_DEFAULT
,
.
ulcon
=
ORIGEN_ULCON_DEFAULT
,
.
ufcon
=
ORIGEN_UFCON_DEFAULT
,
},
};
static
struct
regulator_consumer_supply
__initdata
ldo3_consumer
[]
=
{
REGULATOR_SUPPLY
(
"vdd11"
,
"s5p-mipi-csis.0"
),
/* MIPI */
};
static
struct
regulator_consumer_supply
__initdata
ldo6_consumer
[]
=
{
REGULATOR_SUPPLY
(
"vdd18"
,
"s5p-mipi-csis.0"
),
/* MIPI */
};
static
struct
regulator_consumer_supply
__initdata
ldo7_consumer
[]
=
{
REGULATOR_SUPPLY
(
"avdd"
,
"alc5625"
),
/* Realtek ALC5625 */
};
static
struct
regulator_consumer_supply
__initdata
ldo8_consumer
[]
=
{
REGULATOR_SUPPLY
(
"vdd"
,
"s5p-adc"
),
/* ADC */
};
static
struct
regulator_consumer_supply
__initdata
ldo9_consumer
[]
=
{
REGULATOR_SUPPLY
(
"dvdd"
,
"swb-a31"
),
/* AR6003 WLAN & CSR 8810 BT */
};
static
struct
regulator_consumer_supply
__initdata
ldo11_consumer
[]
=
{
REGULATOR_SUPPLY
(
"dvdd"
,
"alc5625"
),
/* Realtek ALC5625 */
};
static
struct
regulator_consumer_supply
__initdata
ldo14_consumer
[]
=
{
REGULATOR_SUPPLY
(
"avdd18"
,
"swb-a31"
),
/* AR6003 WLAN & CSR 8810 BT */
};
static
struct
regulator_consumer_supply
__initdata
ldo17_consumer
[]
=
{
REGULATOR_SUPPLY
(
"vdd33"
,
"swb-a31"
),
/* AR6003 WLAN & CSR 8810 BT */
};
static
struct
regulator_consumer_supply
__initdata
buck1_consumer
[]
=
{
REGULATOR_SUPPLY
(
"vdd_arm"
,
NULL
),
/* CPUFREQ */
};
static
struct
regulator_consumer_supply
__initdata
buck2_consumer
[]
=
{
REGULATOR_SUPPLY
(
"vdd_int"
,
NULL
),
/* CPUFREQ */
};
static
struct
regulator_consumer_supply
__initdata
buck3_consumer
[]
=
{
REGULATOR_SUPPLY
(
"vdd_g3d"
,
"mali_drm"
),
/* G3D */
};
static
struct
regulator_consumer_supply
__initdata
buck7_consumer
[]
=
{
REGULATOR_SUPPLY
(
"vcc"
,
"platform-lcd"
),
/* LCD */
};
static
struct
regulator_init_data
__initdata
max8997_ldo1_data
=
{
.
constraints
=
{
.
name
=
"VDD_ABB_3.3V"
,
.
min_uV
=
3300000
,
.
max_uV
=
3300000
,
.
apply_uV
=
1
,
.
state_mem
=
{
.
disabled
=
1
,
},
},
};
static
struct
regulator_init_data
__initdata
max8997_ldo2_data
=
{
.
constraints
=
{
.
name
=
"VDD_ALIVE_1.1V"
,
.
min_uV
=
1100000
,
.
max_uV
=
1100000
,
.
apply_uV
=
1
,
.
always_on
=
1
,
.
state_mem
=
{
.
enabled
=
1
,
},
},
};
static
struct
regulator_init_data
__initdata
max8997_ldo3_data
=
{
.
constraints
=
{
.
name
=
"VMIPI_1.1V"
,
.
min_uV
=
1100000
,
.
max_uV
=
1100000
,
.
apply_uV
=
1
,
.
valid_ops_mask
=
REGULATOR_CHANGE_STATUS
,
.
state_mem
=
{
.
disabled
=
1
,
},
},
.
num_consumer_supplies
=
ARRAY_SIZE
(
ldo3_consumer
),
.
consumer_supplies
=
ldo3_consumer
,
};
static
struct
regulator_init_data
__initdata
max8997_ldo4_data
=
{
.
constraints
=
{
.
name
=
"VDD_RTC_1.8V"
,
.
min_uV
=
1800000
,
.
max_uV
=
1800000
,
.
apply_uV
=
1
,
.
always_on
=
1
,
.
state_mem
=
{
.
disabled
=
1
,
},
},
};
static
struct
regulator_init_data
__initdata
max8997_ldo6_data
=
{
.
constraints
=
{
.
name
=
"VMIPI_1.8V"
,
.
min_uV
=
1800000
,
.
max_uV
=
1800000
,
.
apply_uV
=
1
,
.
valid_ops_mask
=
REGULATOR_CHANGE_STATUS
,
.
state_mem
=
{
.
disabled
=
1
,
},
},
.
num_consumer_supplies
=
ARRAY_SIZE
(
ldo6_consumer
),
.
consumer_supplies
=
ldo6_consumer
,
};
static
struct
regulator_init_data
__initdata
max8997_ldo7_data
=
{
.
constraints
=
{
.
name
=
"VDD_AUD_1.8V"
,
.
min_uV
=
1800000
,
.
max_uV
=
1800000
,
.
apply_uV
=
1
,
.
valid_ops_mask
=
REGULATOR_CHANGE_STATUS
,
.
state_mem
=
{
.
disabled
=
1
,
},
},
.
num_consumer_supplies
=
ARRAY_SIZE
(
ldo7_consumer
),
.
consumer_supplies
=
ldo7_consumer
,
};
static
struct
regulator_init_data
__initdata
max8997_ldo8_data
=
{
.
constraints
=
{
.
name
=
"VADC_3.3V"
,
.
min_uV
=
3300000
,
.
max_uV
=
3300000
,
.
apply_uV
=
1
,
.
valid_ops_mask
=
REGULATOR_CHANGE_STATUS
,
.
state_mem
=
{
.
disabled
=
1
,
},
},
.
num_consumer_supplies
=
ARRAY_SIZE
(
ldo8_consumer
),
.
consumer_supplies
=
ldo8_consumer
,
};
static
struct
regulator_init_data
__initdata
max8997_ldo9_data
=
{
.
constraints
=
{
.
name
=
"DVDD_SWB_2.8V"
,
.
min_uV
=
2800000
,
.
max_uV
=
2800000
,
.
apply_uV
=
1
,
.
valid_ops_mask
=
REGULATOR_CHANGE_STATUS
,
.
state_mem
=
{
.
disabled
=
1
,
},
},
.
num_consumer_supplies
=
ARRAY_SIZE
(
ldo9_consumer
),
.
consumer_supplies
=
ldo9_consumer
,
};
static
struct
regulator_init_data
__initdata
max8997_ldo10_data
=
{
.
constraints
=
{
.
name
=
"VDD_PLL_1.1V"
,
.
min_uV
=
1100000
,
.
max_uV
=
1100000
,
.
apply_uV
=
1
,
.
always_on
=
1
,
.
state_mem
=
{
.
disabled
=
1
,
},
},
};
static
struct
regulator_init_data
__initdata
max8997_ldo11_data
=
{
.
constraints
=
{
.
name
=
"VDD_AUD_3V"
,
.
min_uV
=
3000000
,
.
max_uV
=
3000000
,
.
apply_uV
=
1
,
.
valid_ops_mask
=
REGULATOR_CHANGE_STATUS
,
.
state_mem
=
{
.
disabled
=
1
,
},
},
.
num_consumer_supplies
=
ARRAY_SIZE
(
ldo11_consumer
),
.
consumer_supplies
=
ldo11_consumer
,
};
static
struct
regulator_init_data
__initdata
max8997_ldo14_data
=
{
.
constraints
=
{
.
name
=
"AVDD18_SWB_1.8V"
,
.
min_uV
=
1800000
,
.
max_uV
=
1800000
,
.
apply_uV
=
1
,
.
valid_ops_mask
=
REGULATOR_CHANGE_STATUS
,
.
state_mem
=
{
.
disabled
=
1
,
},
},
.
num_consumer_supplies
=
ARRAY_SIZE
(
ldo14_consumer
),
.
consumer_supplies
=
ldo14_consumer
,
};
static
struct
regulator_init_data
__initdata
max8997_ldo17_data
=
{
.
constraints
=
{
.
name
=
"VDD_SWB_3.3V"
,
.
min_uV
=
3300000
,
.
max_uV
=
3300000
,
.
apply_uV
=
1
,
.
valid_ops_mask
=
REGULATOR_CHANGE_STATUS
,
.
state_mem
=
{
.
disabled
=
1
,
},
},
.
num_consumer_supplies
=
ARRAY_SIZE
(
ldo17_consumer
),
.
consumer_supplies
=
ldo17_consumer
,
};
static
struct
regulator_init_data
__initdata
max8997_ldo21_data
=
{
.
constraints
=
{
.
name
=
"VDD_MIF_1.2V"
,
.
min_uV
=
1200000
,
.
max_uV
=
1200000
,
.
apply_uV
=
1
,
.
always_on
=
1
,
.
state_mem
=
{
.
disabled
=
1
,
},
},
};
static
struct
regulator_init_data
__initdata
max8997_buck1_data
=
{
.
constraints
=
{
.
name
=
"VDD_ARM_1.2V"
,
.
min_uV
=
950000
,
.
max_uV
=
1350000
,
.
always_on
=
1
,
.
boot_on
=
1
,
.
valid_ops_mask
=
REGULATOR_CHANGE_VOLTAGE
,
.
state_mem
=
{
.
disabled
=
1
,
},
},
.
num_consumer_supplies
=
ARRAY_SIZE
(
buck1_consumer
),
.
consumer_supplies
=
buck1_consumer
,
};
static
struct
regulator_init_data
__initdata
max8997_buck2_data
=
{
.
constraints
=
{
.
name
=
"VDD_INT_1.1V"
,
.
min_uV
=
900000
,
.
max_uV
=
1100000
,
.
always_on
=
1
,
.
boot_on
=
1
,
.
valid_ops_mask
=
REGULATOR_CHANGE_VOLTAGE
,
.
state_mem
=
{
.
disabled
=
1
,
},
},
.
num_consumer_supplies
=
ARRAY_SIZE
(
buck2_consumer
),
.
consumer_supplies
=
buck2_consumer
,
};
static
struct
regulator_init_data
__initdata
max8997_buck3_data
=
{
.
constraints
=
{
.
name
=
"VDD_G3D_1.1V"
,
.
min_uV
=
900000
,
.
max_uV
=
1100000
,
.
valid_ops_mask
=
REGULATOR_CHANGE_VOLTAGE
|
REGULATOR_CHANGE_STATUS
,
.
state_mem
=
{
.
disabled
=
1
,
},
},
.
num_consumer_supplies
=
ARRAY_SIZE
(
buck3_consumer
),
.
consumer_supplies
=
buck3_consumer
,
};
static
struct
regulator_init_data
__initdata
max8997_buck5_data
=
{
.
constraints
=
{
.
name
=
"VDDQ_M1M2_1.2V"
,
.
min_uV
=
1200000
,
.
max_uV
=
1200000
,
.
apply_uV
=
1
,
.
always_on
=
1
,
.
state_mem
=
{
.
disabled
=
1
,
},
},
};
static
struct
regulator_init_data
__initdata
max8997_buck7_data
=
{
.
constraints
=
{
.
name
=
"VDD_LCD_3.3V"
,
.
min_uV
=
3300000
,
.
max_uV
=
3300000
,
.
boot_on
=
1
,
.
apply_uV
=
1
,
.
valid_ops_mask
=
REGULATOR_CHANGE_STATUS
,
.
state_mem
=
{
.
disabled
=
1
},
},
.
num_consumer_supplies
=
ARRAY_SIZE
(
buck7_consumer
),
.
consumer_supplies
=
buck7_consumer
,
};
static
struct
max8997_regulator_data
__initdata
origen_max8997_regulators
[]
=
{
{
MAX8997_LDO1
,
&
max8997_ldo1_data
},
{
MAX8997_LDO2
,
&
max8997_ldo2_data
},
{
MAX8997_LDO3
,
&
max8997_ldo3_data
},
{
MAX8997_LDO4
,
&
max8997_ldo4_data
},
{
MAX8997_LDO6
,
&
max8997_ldo6_data
},
{
MAX8997_LDO7
,
&
max8997_ldo7_data
},
{
MAX8997_LDO8
,
&
max8997_ldo8_data
},
{
MAX8997_LDO9
,
&
max8997_ldo9_data
},
{
MAX8997_LDO10
,
&
max8997_ldo10_data
},
{
MAX8997_LDO11
,
&
max8997_ldo11_data
},
{
MAX8997_LDO14
,
&
max8997_ldo14_data
},
{
MAX8997_LDO17
,
&
max8997_ldo17_data
},
{
MAX8997_LDO21
,
&
max8997_ldo21_data
},
{
MAX8997_BUCK1
,
&
max8997_buck1_data
},
{
MAX8997_BUCK2
,
&
max8997_buck2_data
},
{
MAX8997_BUCK3
,
&
max8997_buck3_data
},
{
MAX8997_BUCK5
,
&
max8997_buck5_data
},
{
MAX8997_BUCK7
,
&
max8997_buck7_data
},
};
struct
max8997_platform_data
__initdata
origen_max8997_pdata
=
{
.
num_regulators
=
ARRAY_SIZE
(
origen_max8997_regulators
),
.
regulators
=
origen_max8997_regulators
,
.
wakeup
=
true
,
.
buck1_gpiodvs
=
false
,
.
buck2_gpiodvs
=
false
,
.
buck5_gpiodvs
=
false
,
.
irq_base
=
IRQ_GPIO_END
+
1
,
.
ignore_gpiodvs_side_effect
=
true
,
.
buck125_default_idx
=
0x0
,
.
buck125_gpios
[
0
]
=
EXYNOS4_GPX0
(
0
),
.
buck125_gpios
[
1
]
=
EXYNOS4_GPX0
(
1
),
.
buck125_gpios
[
2
]
=
EXYNOS4_GPX0
(
2
),
.
buck1_voltage
[
0
]
=
1350000
,
.
buck1_voltage
[
1
]
=
1300000
,
.
buck1_voltage
[
2
]
=
1250000
,
.
buck1_voltage
[
3
]
=
1200000
,
.
buck1_voltage
[
4
]
=
1150000
,
.
buck1_voltage
[
5
]
=
1100000
,
.
buck1_voltage
[
6
]
=
1000000
,
.
buck1_voltage
[
7
]
=
950000
,
.
buck2_voltage
[
0
]
=
1100000
,
.
buck2_voltage
[
1
]
=
1100000
,
.
buck2_voltage
[
2
]
=
1100000
,
.
buck2_voltage
[
3
]
=
1100000
,
.
buck2_voltage
[
4
]
=
1000000
,
.
buck2_voltage
[
5
]
=
1000000
,
.
buck2_voltage
[
6
]
=
1000000
,
.
buck2_voltage
[
7
]
=
1000000
,
.
buck5_voltage
[
0
]
=
1200000
,
.
buck5_voltage
[
1
]
=
1200000
,
.
buck5_voltage
[
2
]
=
1200000
,
.
buck5_voltage
[
3
]
=
1200000
,
.
buck5_voltage
[
4
]
=
1200000
,
.
buck5_voltage
[
5
]
=
1200000
,
.
buck5_voltage
[
6
]
=
1200000
,
.
buck5_voltage
[
7
]
=
1200000
,
};
/* I2C0 */
static
struct
i2c_board_info
i2c0_devs
[]
__initdata
=
{
{
I2C_BOARD_INFO
(
"max8997"
,
(
0xCC
>>
1
)),
.
platform_data
=
&
origen_max8997_pdata
,
.
irq
=
IRQ_EINT
(
4
),
},
};
static
struct
s3c_sdhci_platdata
origen_hsmmc0_pdata
__initdata
=
{
.
cd_type
=
S3C_SDHCI_CD_INTERNAL
,
.
clk_type
=
S3C_SDHCI_CLK_DIV_EXTERNAL
,
};
static
struct
s3c_sdhci_platdata
origen_hsmmc2_pdata
__initdata
=
{
.
cd_type
=
S3C_SDHCI_CD_INTERNAL
,
.
clk_type
=
S3C_SDHCI_CLK_DIV_EXTERNAL
,
};
/* USB EHCI */
static
struct
s5p_ehci_platdata
origen_ehci_pdata
;
static
void
__init
origen_ehci_init
(
void
)
{
struct
s5p_ehci_platdata
*
pdata
=
&
origen_ehci_pdata
;
s5p_ehci_set_platdata
(
pdata
);
}
static
struct
gpio_keys_button
origen_gpio_keys_table
[]
=
{
{
.
code
=
KEY_MENU
,
.
gpio
=
EXYNOS4_GPX1
(
5
),
.
desc
=
"gpio-keys: KEY_MENU"
,
.
type
=
EV_KEY
,
.
active_low
=
1
,
.
wakeup
=
1
,
.
debounce_interval
=
1
,
},
{
.
code
=
KEY_HOME
,
.
gpio
=
EXYNOS4_GPX1
(
6
),
.
desc
=
"gpio-keys: KEY_HOME"
,
.
type
=
EV_KEY
,
.
active_low
=
1
,
.
wakeup
=
1
,
.
debounce_interval
=
1
,
},
{
.
code
=
KEY_BACK
,
.
gpio
=
EXYNOS4_GPX1
(
7
),
.
desc
=
"gpio-keys: KEY_BACK"
,
.
type
=
EV_KEY
,
.
active_low
=
1
,
.
wakeup
=
1
,
.
debounce_interval
=
1
,
},
{
.
code
=
KEY_UP
,
.
gpio
=
EXYNOS4_GPX2
(
0
),
.
desc
=
"gpio-keys: KEY_UP"
,
.
type
=
EV_KEY
,
.
active_low
=
1
,
.
wakeup
=
1
,
.
debounce_interval
=
1
,
},
{
.
code
=
KEY_DOWN
,
.
gpio
=
EXYNOS4_GPX2
(
1
),
.
desc
=
"gpio-keys: KEY_DOWN"
,
.
type
=
EV_KEY
,
.
active_low
=
1
,
.
wakeup
=
1
,
.
debounce_interval
=
1
,
},
};
static
struct
gpio_keys_platform_data
origen_gpio_keys_data
=
{
.
buttons
=
origen_gpio_keys_table
,
.
nbuttons
=
ARRAY_SIZE
(
origen_gpio_keys_table
),
};
static
struct
platform_device
origen_device_gpiokeys
=
{
.
name
=
"gpio-keys"
,
.
dev
=
{
.
platform_data
=
&
origen_gpio_keys_data
,
},
};
static
void
lcd_hv070wsa_set_power
(
struct
plat_lcd_data
*
pd
,
unsigned
int
power
)
{
int
ret
;
if
(
power
)
ret
=
gpio_request_one
(
EXYNOS4_GPE3
(
4
),
GPIOF_OUT_INIT_HIGH
,
"GPE3_4"
);
else
ret
=
gpio_request_one
(
EXYNOS4_GPE3
(
4
),
GPIOF_OUT_INIT_LOW
,
"GPE3_4"
);
gpio_free
(
EXYNOS4_GPE3
(
4
));
if
(
ret
)
pr_err
(
"failed to request gpio for LCD power: %d
\n
"
,
ret
);
}
static
struct
plat_lcd_data
origen_lcd_hv070wsa_data
=
{
.
set_power
=
lcd_hv070wsa_set_power
,
};
static
struct
platform_device
origen_lcd_hv070wsa
=
{
.
name
=
"platform-lcd"
,
.
dev
.
parent
=
&
s5p_device_fimd0
.
dev
,
.
dev
.
platform_data
=
&
origen_lcd_hv070wsa_data
,
};
static
struct
s3c_fb_pd_win
origen_fb_win0
=
{
.
win_mode
=
{
.
left_margin
=
64
,
.
right_margin
=
16
,
.
upper_margin
=
64
,
.
lower_margin
=
16
,
.
hsync_len
=
48
,
.
vsync_len
=
3
,
.
xres
=
1024
,
.
yres
=
600
,
},
.
max_bpp
=
32
,
.
default_bpp
=
24
,
};
static
struct
s3c_fb_platdata
origen_lcd_pdata
__initdata
=
{
.
win
[
0
]
=
&
origen_fb_win0
,
.
vidcon0
=
VIDCON0_VIDOUT_RGB
|
VIDCON0_PNRMODE_RGB
,
.
vidcon1
=
VIDCON1_INV_HSYNC
|
VIDCON1_INV_VSYNC
,
.
setup_gpio
=
exynos4_fimd0_gpio_setup_24bpp
,
};
static
struct
platform_device
*
origen_devices
[]
__initdata
=
{
&
s3c_device_hsmmc2
,
&
s3c_device_hsmmc0
,
&
s3c_device_i2c0
,
&
s3c_device_rtc
,
&
s3c_device_wdt
,
&
s5p_device_ehci
,
&
s5p_device_fimc0
,
&
s5p_device_fimc1
,
&
s5p_device_fimc2
,
&
s5p_device_fimc3
,
&
s5p_device_fimd0
,
&
s5p_device_hdmi
,
&
s5p_device_i2c_hdmiphy
,
&
s5p_device_mixer
,
&
exynos4_device_pd
[
PD_LCD0
],
&
exynos4_device_pd
[
PD_TV
],
&
origen_device_gpiokeys
,
&
origen_lcd_hv070wsa
,
};
/* LCD Backlight data */
static
struct
samsung_bl_gpio_info
origen_bl_gpio_info
=
{
.
no
=
EXYNOS4_GPD0
(
0
),
.
func
=
S3C_GPIO_SFN
(
2
),
};
static
struct
platform_pwm_backlight_data
origen_bl_data
=
{
.
pwm_id
=
0
,
.
pwm_period_ns
=
1000
,
};
static
void
s5p_tv_setup
(
void
)
{
/* Direct HPD to HDMI chip */
gpio_request_one
(
EXYNOS4_GPX3
(
7
),
GPIOF_IN
,
"hpd-plug"
);
s3c_gpio_cfgpin
(
EXYNOS4_GPX3
(
7
),
S3C_GPIO_SFN
(
0x3
));
s3c_gpio_setpull
(
EXYNOS4_GPX3
(
7
),
S3C_GPIO_PULL_NONE
);
}
static
void
__init
origen_map_io
(
void
)
{
s5p_init_io
(
NULL
,
0
,
S5P_VA_CHIPID
);
s3c24xx_init_clocks
(
24000000
);
s3c24xx_init_uarts
(
origen_uartcfgs
,
ARRAY_SIZE
(
origen_uartcfgs
));
}
static
void
__init
origen_power_init
(
void
)
{
gpio_request
(
EXYNOS4_GPX0
(
4
),
"PMIC_IRQ"
);
s3c_gpio_cfgpin
(
EXYNOS4_GPX0
(
4
),
S3C_GPIO_SFN
(
0xf
));
s3c_gpio_setpull
(
EXYNOS4_GPX0
(
4
),
S3C_GPIO_PULL_NONE
);
}
static
void
__init
origen_machine_init
(
void
)
{
origen_power_init
();
s3c_i2c0_set_platdata
(
NULL
);
i2c_register_board_info
(
0
,
i2c0_devs
,
ARRAY_SIZE
(
i2c0_devs
));
/*
* Since sdhci instance 2 can contain a bootable media,
* sdhci instance 0 is registered after instance 2.
*/
s3c_sdhci2_set_platdata
(
&
origen_hsmmc2_pdata
);
s3c_sdhci0_set_platdata
(
&
origen_hsmmc0_pdata
);
origen_ehci_init
();
clk_xusbxti
.
rate
=
24000000
;
s5p_tv_setup
();
s5p_i2c_hdmiphy_set_platdata
(
NULL
);
s5p_fimd0_set_platdata
(
&
origen_lcd_pdata
);
platform_add_devices
(
origen_devices
,
ARRAY_SIZE
(
origen_devices
));
s5p_device_fimd0
.
dev
.
parent
=
&
exynos4_device_pd
[
PD_LCD0
].
dev
;
s5p_device_hdmi
.
dev
.
parent
=
&
exynos4_device_pd
[
PD_TV
].
dev
;
s5p_device_mixer
.
dev
.
parent
=
&
exynos4_device_pd
[
PD_TV
].
dev
;
samsung_bl_set
(
&
origen_bl_gpio_info
,
&
origen_bl_data
);
}
MACHINE_START
(
ORIGEN
,
"ORIGEN"
)
/* Maintainer: JeongHyeon Kim <jhkim@insignal.co.kr> */
.
boot_params
=
S5P_PA_SDRAM
+
0x100
,
.
init_irq
=
exynos4_init_irq
,
.
map_io
=
origen_map_io
,
.
init_machine
=
origen_machine_init
,
.
timer
=
&
exynos4_timer
,
MACHINE_END
arch/arm/mach-exynos4/mach-smdkv310.c
View file @
7d84b3e9
...
...
@@ -32,6 +32,7 @@
#include <plat/pd.h>
#include <plat/gpio-cfg.h>
#include <plat/backlight.h>
#include <plat/mfc.h>
#include <mach/map.h>
...
...
@@ -177,6 +178,9 @@ static struct platform_device *smdkv310_devices[] __initdata = {
&
exynos4_device_ac97
,
&
exynos4_device_i2s0
,
&
samsung_device_keypad
,
&
s5p_device_mfc
,
&
s5p_device_mfc_l
,
&
s5p_device_mfc_r
,
&
exynos4_device_pd
[
PD_MFC
],
&
exynos4_device_pd
[
PD_G3D
],
&
exynos4_device_pd
[
PD_LCD0
],
...
...
@@ -233,6 +237,11 @@ static void __init smdkv310_map_io(void)
s3c24xx_init_uarts
(
smdkv310_uartcfgs
,
ARRAY_SIZE
(
smdkv310_uartcfgs
));
}
static
void
__init
smdkv310_reserve
(
void
)
{
s5p_mfc_reserve_mem
(
0x43000000
,
8
<<
20
,
0x51000000
,
8
<<
20
);
}
static
void
__init
smdkv310_machine_init
(
void
)
{
s3c_i2c1_set_platdata
(
NULL
);
...
...
@@ -250,6 +259,7 @@ static void __init smdkv310_machine_init(void)
samsung_bl_set
(
&
smdkv310_bl_gpio_info
,
&
smdkv310_bl_data
);
platform_add_devices
(
smdkv310_devices
,
ARRAY_SIZE
(
smdkv310_devices
));
s5p_device_mfc
.
dev
.
parent
=
&
exynos4_device_pd
[
PD_MFC
].
dev
;
}
MACHINE_START
(
SMDKV310
,
"SMDKV310"
)
...
...
@@ -260,4 +270,5 @@ MACHINE_START(SMDKV310, "SMDKV310")
.
map_io
=
smdkv310_map_io
,
.
init_machine
=
smdkv310_machine_init
,
.
timer
=
&
exynos4_timer
,
.
reserve
=
&
smdkv310_reserve
,
MACHINE_END
arch/arm/mach-exynos4/mach-universal_c210.c
View file @
7d84b3e9
...
...
@@ -13,6 +13,7 @@
#include <linux/i2c.h>
#include <linux/gpio_keys.h>
#include <linux/gpio.h>
#include <linux/fb.h>
#include <linux/mfd/max8998.h>
#include <linux/regulator/machine.h>
#include <linux/regulator/fixed.h>
...
...
@@ -31,9 +32,11 @@
#include <plat/devs.h>
#include <plat/iic.h>
#include <plat/gpio-cfg.h>
#include <plat/fb.h>
#include <plat/mfc.h>
#include <plat/sdhci.h>
#include <plat/pd.h>
#include <plat/regs-fb-v4.h>
#include <mach/map.h>
...
...
@@ -702,6 +705,32 @@ static struct i2c_board_info i2c1_devs[] __initdata = {
/* Gyro, To be updated */
};
/* Frame Buffer */
static
struct
s3c_fb_pd_win
universal_fb_win0
=
{
.
win_mode
=
{
.
left_margin
=
16
,
.
right_margin
=
16
,
.
upper_margin
=
2
,
.
lower_margin
=
28
,
.
hsync_len
=
2
,
.
vsync_len
=
1
,
.
xres
=
480
,
.
yres
=
800
,
.
refresh
=
55
,
},
.
max_bpp
=
32
,
.
default_bpp
=
16
,
};
static
struct
s3c_fb_platdata
universal_lcd_pdata
__initdata
=
{
.
win
[
0
]
=
&
universal_fb_win0
,
.
vidcon0
=
VIDCON0_VIDOUT_RGB
|
VIDCON0_PNRMODE_RGB
|
VIDCON0_CLKSEL_LCD
,
.
vidcon1
=
VIDCON1_INV_VCLK
|
VIDCON1_INV_VDEN
|
VIDCON1_INV_HSYNC
|
VIDCON1_INV_VSYNC
,
.
setup_gpio
=
exynos4_fimd0_gpio_setup_24bpp
,
};
static
struct
platform_device
*
universal_devices
[]
__initdata
=
{
/* Samsung Platform Devices */
&
s5p_device_fimc0
,
...
...
@@ -719,10 +748,12 @@ static struct platform_device *universal_devices[] __initdata = {
&
i2c_gpio12
,
&
universal_gpio_keys
,
&
s5p_device_onenand
,
&
s5p_device_fimd0
,
&
s5p_device_mfc
,
&
s5p_device_mfc_l
,
&
s5p_device_mfc_r
,
&
exynos4_device_pd
[
PD_MFC
],
&
exynos4_device_pd
[
PD_LCD0
],
};
static
void
__init
universal_map_io
(
void
)
...
...
@@ -751,6 +782,8 @@ static void __init universal_machine_init(void)
s3c_i2c5_set_platdata
(
NULL
);
i2c_register_board_info
(
5
,
i2c5_devs
,
ARRAY_SIZE
(
i2c5_devs
));
s5p_fimd0_set_platdata
(
&
universal_lcd_pdata
);
universal_touchkey_init
();
i2c_register_board_info
(
I2C_GPIO_BUS_12
,
i2c_gpio12_devs
,
ARRAY_SIZE
(
i2c_gpio12_devs
));
...
...
@@ -758,6 +791,7 @@ static void __init universal_machine_init(void)
/* Last */
platform_add_devices
(
universal_devices
,
ARRAY_SIZE
(
universal_devices
));
s5p_device_mfc
.
dev
.
parent
=
&
exynos4_device_pd
[
PD_MFC
].
dev
;
s5p_device_fimd0
.
dev
.
parent
=
&
exynos4_device_pd
[
PD_LCD0
].
dev
;
}
MACHINE_START
(
UNIVERSAL_C210
,
"UNIVERSAL_C210"
)
...
...
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