Merge branch 'next/board-samsung' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/boards
* 'next/board-samsung' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: (32 commits) ARM: EXYNOS: support Exynos4210-bus Devfreq driver on Nuri board ARM: EXYNOS: Register JPEG on nuri ARM: EXYNOS: Register JPEG on universal_c210 ARM: S5PV210: Enable JPEG on SMDKV210 ARM: S5PV210: Add JPEG board definition ARM: EXYNOS: Enable JPEG on Origen ARM: EXYNOS: Enable JPEG on SMDKV310 ARM: EXYNOS: Add __init attribute to universal_camera_init() ARM: EXYNOS: Add __init attribute to nuri_camera_init() ARM: S5PV210: Enable FIMC on SMDKC110 ARM: S5PV210: Enable FIMC on SMDKV210 ARM: S5PV210: Enable MFC on SMDKC110 ARM: S5PV210: Enable MFC on SMDKV210 ARM: EXYNOS: Enable G2D on SMDKV310 ARM: S3C64XX: Supply platform data for SPI on Cragganmore ARM: S3C64XX: Add some more Cragganmore module IDs to the table ARM: EXYNOS: Add missing FIMC media device to Origen ARM: EXYNOS: Add missing FIMC media device to SMDKV310 ARM: S5PV210: Add missing FIMC media device to Aquila ARM: SAMSUNG: Add support for S5K6AAFX camera on Nuri board ...
This commit is contained in:
Коммит
c77ef89862
|
@ -183,7 +183,9 @@ config MACH_SMDKV310
|
|||
select S5P_DEV_FIMC1
|
||||
select S5P_DEV_FIMC2
|
||||
select S5P_DEV_FIMC3
|
||||
select S5P_DEV_G2D
|
||||
select S5P_DEV_I2C_HDMIPHY
|
||||
select S5P_DEV_JPEG
|
||||
select S5P_DEV_MFC
|
||||
select S5P_DEV_TV
|
||||
select S5P_DEV_USB_EHCI
|
||||
|
@ -230,7 +232,9 @@ config MACH_UNIVERSAL_C210
|
|||
select S5P_DEV_FIMC1
|
||||
select S5P_DEV_FIMC2
|
||||
select S5P_DEV_FIMC3
|
||||
select S5P_DEV_G2D
|
||||
select S5P_DEV_CSIS0
|
||||
select S5P_DEV_JPEG
|
||||
select S5P_DEV_FIMD0
|
||||
select S3C_DEV_HSMMC
|
||||
select S3C_DEV_HSMMC2
|
||||
|
@ -268,11 +272,14 @@ config MACH_NURI
|
|||
select S3C_DEV_I2C1
|
||||
select S3C_DEV_I2C3
|
||||
select S3C_DEV_I2C5
|
||||
select S3C_DEV_I2C6
|
||||
select S5P_DEV_CSIS0
|
||||
select S5P_DEV_JPEG
|
||||
select S5P_DEV_FIMC0
|
||||
select S5P_DEV_FIMC1
|
||||
select S5P_DEV_FIMC2
|
||||
select S5P_DEV_FIMC3
|
||||
select S5P_DEV_G2D
|
||||
select S5P_DEV_MFC
|
||||
select S5P_DEV_USB_EHCI
|
||||
select S5P_SETUP_MIPIPHY
|
||||
|
@ -283,6 +290,7 @@ config MACH_NURI
|
|||
select EXYNOS4_SETUP_I2C1
|
||||
select EXYNOS4_SETUP_I2C3
|
||||
select EXYNOS4_SETUP_I2C5
|
||||
select EXYNOS4_SETUP_I2C6
|
||||
select EXYNOS4_SETUP_SDHCI
|
||||
select EXYNOS4_SETUP_USB_PHY
|
||||
select S5P_SETUP_MIPIPHY
|
||||
|
@ -303,7 +311,9 @@ config MACH_ORIGEN
|
|||
select S5P_DEV_FIMC2
|
||||
select S5P_DEV_FIMC3
|
||||
select S5P_DEV_FIMD0
|
||||
select S5P_DEV_G2D
|
||||
select S5P_DEV_I2C_HDMIPHY
|
||||
select S5P_DEV_JPEG
|
||||
select S5P_DEV_MFC
|
||||
select S5P_DEV_TV
|
||||
select S5P_DEV_USB_EHCI
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
|
||||
#include <video/platform_lcd.h>
|
||||
#include <media/m5mols.h>
|
||||
#include <media/s5k6aa.h>
|
||||
#include <media/s5p_fimc.h>
|
||||
#include <media/v4l2-mediabus.h>
|
||||
|
||||
|
@ -75,6 +76,7 @@ enum fixed_regulator_id {
|
|||
FIXED_REG_ID_MAX8903,
|
||||
FIXED_REG_ID_CAM_A28V,
|
||||
FIXED_REG_ID_CAM_12V,
|
||||
FIXED_REG_ID_CAM_VT_15V,
|
||||
};
|
||||
|
||||
static struct s3c2410_uartcfg nuri_uartcfgs[] __initdata = {
|
||||
|
@ -399,6 +401,9 @@ static struct regulator_consumer_supply __initdata max8997_ldo4_[] = {
|
|||
static struct regulator_consumer_supply __initdata max8997_ldo5_[] = {
|
||||
REGULATOR_SUPPLY("vhsic", "modemctl"), /* MODEM */
|
||||
};
|
||||
static struct regulator_consumer_supply nuri_max8997_ldo6_consumer[] = {
|
||||
REGULATOR_SUPPLY("vdd_reg", "6-003c"), /* S5K6AA camera */
|
||||
};
|
||||
static struct regulator_consumer_supply __initdata max8997_ldo7_[] = {
|
||||
REGULATOR_SUPPLY("dig_18", "0-001f"), /* HCD803 */
|
||||
};
|
||||
|
@ -431,7 +436,7 @@ static struct regulator_consumer_supply __initdata max8997_buck1_[] = {
|
|||
REGULATOR_SUPPLY("vdd_arm", NULL), /* CPUFREQ */
|
||||
};
|
||||
static struct regulator_consumer_supply __initdata max8997_buck2_[] = {
|
||||
REGULATOR_SUPPLY("vdd_int", NULL), /* CPUFREQ */
|
||||
REGULATOR_SUPPLY("vdd_int", "exynos4210-busfreq.0"), /* CPUFREQ */
|
||||
};
|
||||
static struct regulator_consumer_supply __initdata max8997_buck3_[] = {
|
||||
REGULATOR_SUPPLY("vdd", "mali_dev.0"), /* G3D of Exynos 4 */
|
||||
|
@ -546,6 +551,8 @@ static struct regulator_init_data __initdata max8997_ldo6_data = {
|
|||
.enabled = 1,
|
||||
},
|
||||
},
|
||||
.num_consumer_supplies = ARRAY_SIZE(nuri_max8997_ldo6_consumer),
|
||||
.consumer_supplies = nuri_max8997_ldo6_consumer,
|
||||
};
|
||||
|
||||
static struct regulator_init_data __initdata max8997_ldo7_data = {
|
||||
|
@ -742,7 +749,7 @@ static struct regulator_init_data __initdata max8997_buck2_data = {
|
|||
.constraints = {
|
||||
.name = "VINT_1.1V_C210",
|
||||
.min_uV = 900000,
|
||||
.max_uV = 1100000,
|
||||
.max_uV = 1200000,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
|
||||
.always_on = 1,
|
||||
.state_mem = {
|
||||
|
@ -957,7 +964,6 @@ static struct max8997_platform_data __initdata nuri_max8997_pdata = {
|
|||
.regulators = nuri_max8997_regulators,
|
||||
|
||||
.buck125_gpios = { EXYNOS4_GPX0(5), EXYNOS4_GPX0(6), EXYNOS4_GPL0(0) },
|
||||
.buck2_gpiodvs = true,
|
||||
|
||||
.buck1_voltage[0] = 1350000, /* 1.35V */
|
||||
.buck1_voltage[1] = 1300000, /* 1.3V */
|
||||
|
@ -1116,7 +1122,30 @@ static void __init nuri_ehci_init(void)
|
|||
}
|
||||
|
||||
/* CAMERA */
|
||||
static struct regulator_consumer_supply cam_vt_cam15_supply =
|
||||
REGULATOR_SUPPLY("vdd_core", "6-003c");
|
||||
|
||||
static struct regulator_init_data cam_vt_cam15_reg_init_data = {
|
||||
.constraints = { .valid_ops_mask = REGULATOR_CHANGE_STATUS },
|
||||
.num_consumer_supplies = 1,
|
||||
.consumer_supplies = &cam_vt_cam15_supply,
|
||||
};
|
||||
|
||||
static struct fixed_voltage_config cam_vt_cam15_fixed_voltage_cfg = {
|
||||
.supply_name = "VT_CAM_1.5V",
|
||||
.microvolts = 1500000,
|
||||
.gpio = EXYNOS4_GPE2(2), /* VT_CAM_1.5V_EN */
|
||||
.enable_high = 1,
|
||||
.init_data = &cam_vt_cam15_reg_init_data,
|
||||
};
|
||||
|
||||
static struct platform_device cam_vt_cam15_fixed_rdev = {
|
||||
.name = "reg-fixed-voltage", .id = FIXED_REG_ID_CAM_VT_15V,
|
||||
.dev = { .platform_data = &cam_vt_cam15_fixed_voltage_cfg },
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply cam_vdda_supply[] = {
|
||||
REGULATOR_SUPPLY("vdda", "6-003c"),
|
||||
REGULATOR_SUPPLY("a_sensor", "0-001f"),
|
||||
};
|
||||
|
||||
|
@ -1173,6 +1202,21 @@ static struct s5p_platform_mipi_csis mipi_csis_platdata = {
|
|||
|
||||
#define GPIO_CAM_MEGA_RST EXYNOS4_GPY3(7) /* ISP_RESET */
|
||||
#define GPIO_CAM_8M_ISP_INT EXYNOS4_GPL2(5)
|
||||
#define GPIO_CAM_VT_NSTBY EXYNOS4_GPL2(0)
|
||||
#define GPIO_CAM_VT_NRST EXYNOS4_GPL2(1)
|
||||
|
||||
static struct s5k6aa_platform_data s5k6aa_pldata = {
|
||||
.mclk_frequency = 24000000UL,
|
||||
.gpio_reset = { GPIO_CAM_VT_NRST, 0 },
|
||||
.gpio_stby = { GPIO_CAM_VT_NSTBY, 0 },
|
||||
.bus_type = V4L2_MBUS_PARALLEL,
|
||||
.horiz_flip = 1,
|
||||
};
|
||||
|
||||
static struct i2c_board_info s5k6aa_board_info = {
|
||||
I2C_BOARD_INFO("S5K6AA", 0x3c),
|
||||
.platform_data = &s5k6aa_pldata,
|
||||
};
|
||||
|
||||
static struct m5mols_platform_data m5mols_platdata = {
|
||||
.gpio_reset = GPIO_CAM_MEGA_RST,
|
||||
|
@ -1185,6 +1229,13 @@ static struct i2c_board_info m5mols_board_info = {
|
|||
|
||||
static struct s5p_fimc_isp_info nuri_camera_sensors[] = {
|
||||
{
|
||||
.flags = V4L2_MBUS_PCLK_SAMPLE_RISING |
|
||||
V4L2_MBUS_VSYNC_ACTIVE_LOW,
|
||||
.bus_type = FIMC_ITU_601,
|
||||
.board_info = &s5k6aa_board_info,
|
||||
.clk_frequency = 24000000UL,
|
||||
.i2c_bus_num = 6,
|
||||
}, {
|
||||
.flags = V4L2_MBUS_PCLK_SAMPLE_FALLING |
|
||||
V4L2_MBUS_VSYNC_ACTIVE_LOW,
|
||||
.bus_type = FIMC_MIPI_CSI2,
|
||||
|
@ -1200,11 +1251,13 @@ static struct s5p_platform_fimc fimc_md_platdata = {
|
|||
};
|
||||
|
||||
static struct gpio nuri_camera_gpios[] = {
|
||||
{ GPIO_CAM_VT_NSTBY, GPIOF_OUT_INIT_LOW, "CAM_VGA_NSTBY" },
|
||||
{ GPIO_CAM_VT_NRST, GPIOF_OUT_INIT_LOW, "CAM_VGA_NRST" },
|
||||
{ GPIO_CAM_8M_ISP_INT, GPIOF_IN, "8M_ISP_INT" },
|
||||
{ GPIO_CAM_MEGA_RST, GPIOF_OUT_INIT_LOW, "CAM_8M_NRST" },
|
||||
};
|
||||
|
||||
static void nuri_camera_init(void)
|
||||
static void __init nuri_camera_init(void)
|
||||
{
|
||||
s3c_set_platdata(&mipi_csis_platdata, sizeof(mipi_csis_platdata),
|
||||
&s5p_device_mipi_csis0);
|
||||
|
@ -1224,6 +1277,8 @@ static void nuri_camera_init(void)
|
|||
pr_err("%s: Failed to configure 8M_ISP_INT GPIO\n", __func__);
|
||||
|
||||
/* Free GPIOs controlled directly by the sensor drivers. */
|
||||
gpio_free(GPIO_CAM_VT_NRST);
|
||||
gpio_free(GPIO_CAM_VT_NSTBY);
|
||||
gpio_free(GPIO_CAM_MEGA_RST);
|
||||
|
||||
if (exynos4_fimc_setup_gpio(S5P_CAMPORT_A)) {
|
||||
|
@ -1234,15 +1289,27 @@ static void nuri_camera_init(void)
|
|||
s5p_gpio_set_drvstr(EXYNOS4_GPJ1(3), S5P_GPIO_DRVSTR_LV4);
|
||||
}
|
||||
|
||||
static struct s3c2410_platform_i2c nuri_i2c6_platdata __initdata = {
|
||||
.frequency = 400000U,
|
||||
.sda_delay = 200,
|
||||
.bus_num = 6,
|
||||
};
|
||||
|
||||
static struct s3c2410_platform_i2c nuri_i2c0_platdata __initdata = {
|
||||
.frequency = 400000U,
|
||||
.sda_delay = 200,
|
||||
};
|
||||
|
||||
/* DEVFREQ controlling memory/bus */
|
||||
static struct platform_device exynos4_bus_devfreq = {
|
||||
.name = "exynos4210-busfreq",
|
||||
};
|
||||
|
||||
static struct platform_device *nuri_devices[] __initdata = {
|
||||
/* Samsung Platform Devices */
|
||||
&s3c_device_i2c5, /* PMIC should initialize first */
|
||||
&s3c_device_i2c0,
|
||||
&s3c_device_i2c6,
|
||||
&emmc_fixed_voltage,
|
||||
&s5p_device_mipi_csis0,
|
||||
&s5p_device_fimc0,
|
||||
|
@ -1259,6 +1326,8 @@ static struct platform_device *nuri_devices[] __initdata = {
|
|||
&s3c_device_i2c3,
|
||||
&i2c9_gpio,
|
||||
&s3c_device_adc,
|
||||
&s5p_device_g2d,
|
||||
&s5p_device_jpeg,
|
||||
&s3c_device_rtc,
|
||||
&s5p_device_mfc,
|
||||
&s5p_device_mfc_l,
|
||||
|
@ -1274,8 +1343,10 @@ static struct platform_device *nuri_devices[] __initdata = {
|
|||
&nuri_backlight_device,
|
||||
&max8903_fixed_reg_dev,
|
||||
&nuri_max8903_device,
|
||||
&cam_vt_cam15_fixed_rdev,
|
||||
&cam_vdda_fixed_rdev,
|
||||
&cam_8m_12v_fixed_rdev,
|
||||
&exynos4_bus_devfreq,
|
||||
};
|
||||
|
||||
static void __init nuri_map_io(void)
|
||||
|
@ -1305,6 +1376,7 @@ static void __init nuri_machine_init(void)
|
|||
i2c_register_board_info(5, i2c5_devs, ARRAY_SIZE(i2c5_devs));
|
||||
i2c9_devs[I2C9_MAX17042].irq = gpio_to_irq(EXYNOS4_GPX2(3));
|
||||
i2c_register_board_info(9, i2c9_devs, ARRAY_SIZE(i2c9_devs));
|
||||
s3c_i2c6_set_platdata(&nuri_i2c6_platdata);
|
||||
|
||||
s5p_fimd0_set_platdata(&nuri_fb_pdata);
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <linux/regulator/machine.h>
|
||||
#include <linux/mfd/max8997.h>
|
||||
#include <linux/lcd.h>
|
||||
#include <linux/rfkill-gpio.h>
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/hardware/gic.h>
|
||||
|
@ -235,6 +236,7 @@ static struct regulator_init_data __initdata max8997_ldo9_data = {
|
|||
.min_uV = 2800000,
|
||||
.max_uV = 2800000,
|
||||
.apply_uV = 1,
|
||||
.always_on = 1,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
||||
.state_mem = {
|
||||
.disabled = 1,
|
||||
|
@ -278,6 +280,7 @@ static struct regulator_init_data __initdata max8997_ldo14_data = {
|
|||
.min_uV = 1800000,
|
||||
.max_uV = 1800000,
|
||||
.apply_uV = 1,
|
||||
.always_on = 1,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
||||
.state_mem = {
|
||||
.disabled = 1,
|
||||
|
@ -293,6 +296,7 @@ static struct regulator_init_data __initdata max8997_ldo17_data = {
|
|||
.min_uV = 3300000,
|
||||
.max_uV = 3300000,
|
||||
.apply_uV = 1,
|
||||
.always_on = 1,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
||||
.state_mem = {
|
||||
.disabled = 1,
|
||||
|
@ -602,6 +606,23 @@ static struct s3c_fb_platdata origen_lcd_pdata __initdata = {
|
|||
.setup_gpio = exynos4_fimd0_gpio_setup_24bpp,
|
||||
};
|
||||
|
||||
/* Bluetooth rfkill gpio platform data */
|
||||
struct rfkill_gpio_platform_data origen_bt_pdata = {
|
||||
.reset_gpio = EXYNOS4_GPX2(2),
|
||||
.shutdown_gpio = -1,
|
||||
.type = RFKILL_TYPE_BLUETOOTH,
|
||||
.name = "origen-bt",
|
||||
};
|
||||
|
||||
/* Bluetooth Platform device */
|
||||
static struct platform_device origen_device_bluetooth = {
|
||||
.name = "rfkill_gpio",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = &origen_bt_pdata,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device *origen_devices[] __initdata = {
|
||||
&s3c_device_hsmmc2,
|
||||
&s3c_device_hsmmc0,
|
||||
|
@ -613,9 +634,12 @@ static struct platform_device *origen_devices[] __initdata = {
|
|||
&s5p_device_fimc1,
|
||||
&s5p_device_fimc2,
|
||||
&s5p_device_fimc3,
|
||||
&s5p_device_fimc_md,
|
||||
&s5p_device_fimd0,
|
||||
&s5p_device_g2d,
|
||||
&s5p_device_hdmi,
|
||||
&s5p_device_i2c_hdmiphy,
|
||||
&s5p_device_jpeg,
|
||||
&s5p_device_mfc,
|
||||
&s5p_device_mfc_l,
|
||||
&s5p_device_mfc_r,
|
||||
|
@ -630,6 +654,7 @@ static struct platform_device *origen_devices[] __initdata = {
|
|||
&exynos4_device_pd[PD_MFC],
|
||||
&origen_device_gpiokeys,
|
||||
&origen_lcd_hv070wsa,
|
||||
&origen_device_bluetooth,
|
||||
};
|
||||
|
||||
/* LCD Backlight data */
|
||||
|
@ -643,6 +668,16 @@ static struct platform_pwm_backlight_data origen_bl_data = {
|
|||
.pwm_period_ns = 1000,
|
||||
};
|
||||
|
||||
static void __init origen_bt_setup(void)
|
||||
{
|
||||
gpio_request(EXYNOS4_GPA0(0), "GPIO BT_UART");
|
||||
/* 4 UART Pins configuration */
|
||||
s3c_gpio_cfgrange_nopull(EXYNOS4_GPA0(0), 4, S3C_GPIO_SFN(2));
|
||||
/* Setup BT Reset, this gpio will be requesed by rfkill-gpio */
|
||||
s3c_gpio_cfgpin(EXYNOS4_GPX2(2), S3C_GPIO_OUTPUT);
|
||||
s3c_gpio_setpull(EXYNOS4_GPX2(2), S3C_GPIO_PULL_NONE);
|
||||
}
|
||||
|
||||
static void s5p_tv_setup(void)
|
||||
{
|
||||
/* Direct HPD to HDMI chip */
|
||||
|
@ -703,6 +738,8 @@ static void __init origen_machine_init(void)
|
|||
s5p_device_mfc.dev.parent = &exynos4_device_pd[PD_MFC].dev;
|
||||
|
||||
samsung_bl_set(&origen_bl_gpio_info, &origen_bl_data);
|
||||
|
||||
origen_bt_setup();
|
||||
}
|
||||
|
||||
MACHINE_START(ORIGEN, "ORIGEN")
|
||||
|
|
|
@ -270,6 +270,9 @@ static struct platform_device *smdkv310_devices[] __initdata = {
|
|||
&s5p_device_fimc1,
|
||||
&s5p_device_fimc2,
|
||||
&s5p_device_fimc3,
|
||||
&s5p_device_fimc_md,
|
||||
&s5p_device_g2d,
|
||||
&s5p_device_jpeg,
|
||||
&exynos4_device_ac97,
|
||||
&exynos4_device_i2s0,
|
||||
&exynos4_device_ohci,
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
#include <media/v4l2-mediabus.h>
|
||||
#include <media/s5p_fimc.h>
|
||||
#include <media/m5mols.h>
|
||||
#include <media/s5k6aa.h>
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
@ -122,8 +123,10 @@ static struct regulator_consumer_supply lp3974_buck1_consumer =
|
|||
static struct regulator_consumer_supply lp3974_buck2_consumer =
|
||||
REGULATOR_SUPPLY("vddg3d", NULL);
|
||||
|
||||
static struct regulator_consumer_supply lp3974_buck3_consumer =
|
||||
REGULATOR_SUPPLY("vdet", "s5p-sdo");
|
||||
static struct regulator_consumer_supply lp3974_buck3_consumer[] = {
|
||||
REGULATOR_SUPPLY("vdet", "s5p-sdo"),
|
||||
REGULATOR_SUPPLY("vdd_reg", "0-003c"),
|
||||
};
|
||||
|
||||
static struct regulator_init_data lp3974_buck1_data = {
|
||||
.constraints = {
|
||||
|
@ -168,8 +171,8 @@ static struct regulator_init_data lp3974_buck3_data = {
|
|||
.enabled = 1,
|
||||
},
|
||||
},
|
||||
.num_consumer_supplies = 1,
|
||||
.consumer_supplies = &lp3974_buck3_consumer,
|
||||
.num_consumer_supplies = ARRAY_SIZE(lp3974_buck3_consumer),
|
||||
.consumer_supplies = lp3974_buck3_consumer,
|
||||
};
|
||||
|
||||
static struct regulator_init_data lp3974_buck4_data = {
|
||||
|
@ -302,6 +305,9 @@ static struct regulator_init_data lp3974_ldo8_data = {
|
|||
.consumer_supplies = lp3974_ldo8_consumer,
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply lp3974_ldo9_consumer =
|
||||
REGULATOR_SUPPLY("vddio", "0-003c");
|
||||
|
||||
static struct regulator_init_data lp3974_ldo9_data = {
|
||||
.constraints = {
|
||||
.name = "VCC_2.8V",
|
||||
|
@ -313,6 +319,8 @@ static struct regulator_init_data lp3974_ldo9_data = {
|
|||
.enabled = 1,
|
||||
},
|
||||
},
|
||||
.num_consumer_supplies = 1,
|
||||
.consumer_supplies = &lp3974_ldo9_consumer,
|
||||
};
|
||||
|
||||
static struct regulator_init_data lp3974_ldo10_data = {
|
||||
|
@ -411,6 +419,7 @@ static struct regulator_init_data lp3974_ldo15_data = {
|
|||
};
|
||||
|
||||
static struct regulator_consumer_supply lp3974_ldo16_consumer[] = {
|
||||
REGULATOR_SUPPLY("vdda", "0-003c"),
|
||||
REGULATOR_SUPPLY("a_sensor", "0-001f"),
|
||||
};
|
||||
|
||||
|
@ -817,6 +826,8 @@ static struct s3c_fb_pd_win universal_fb_win0 = {
|
|||
},
|
||||
.max_bpp = 32,
|
||||
.default_bpp = 16,
|
||||
.virtual_x = 480,
|
||||
.virtual_y = 2 * 800,
|
||||
};
|
||||
|
||||
static struct s3c_fb_platdata universal_lcd_pdata __initdata = {
|
||||
|
@ -828,6 +839,28 @@ static struct s3c_fb_platdata universal_lcd_pdata __initdata = {
|
|||
.setup_gpio = exynos4_fimd0_gpio_setup_24bpp,
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply cam_vt_dio_supply =
|
||||
REGULATOR_SUPPLY("vdd_core", "0-003c");
|
||||
|
||||
static struct regulator_init_data cam_vt_dio_reg_init_data = {
|
||||
.constraints = { .valid_ops_mask = REGULATOR_CHANGE_STATUS },
|
||||
.num_consumer_supplies = 1,
|
||||
.consumer_supplies = &cam_vt_dio_supply,
|
||||
};
|
||||
|
||||
static struct fixed_voltage_config cam_vt_dio_fixed_voltage_cfg = {
|
||||
.supply_name = "CAM_VT_D_IO",
|
||||
.microvolts = 2800000,
|
||||
.gpio = EXYNOS4_GPE2(1), /* CAM_PWR_EN2 */
|
||||
.enable_high = 1,
|
||||
.init_data = &cam_vt_dio_reg_init_data,
|
||||
};
|
||||
|
||||
static struct platform_device cam_vt_dio_fixed_reg_dev = {
|
||||
.name = "reg-fixed-voltage", .id = FIXED_REG_ID_CAM_VT_DIO,
|
||||
.dev = { .platform_data = &cam_vt_dio_fixed_voltage_cfg },
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply cam_i_core_supply =
|
||||
REGULATOR_SUPPLY("core", "0-001f");
|
||||
|
||||
|
@ -883,6 +916,28 @@ static struct s5p_platform_mipi_csis mipi_csis_platdata = {
|
|||
#define GPIO_CAM_LEVEL_EN(n) EXYNOS4_GPE4(n + 3)
|
||||
#define GPIO_CAM_8M_ISP_INT EXYNOS4_GPX1(5) /* XEINT_13 */
|
||||
#define GPIO_CAM_MEGA_nRST EXYNOS4_GPE2(5)
|
||||
#define GPIO_CAM_VGA_NRST EXYNOS4_GPE4(7)
|
||||
#define GPIO_CAM_VGA_NSTBY EXYNOS4_GPE4(6)
|
||||
|
||||
static int s5k6aa_set_power(int on)
|
||||
{
|
||||
gpio_set_value(GPIO_CAM_LEVEL_EN(2), !!on);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct s5k6aa_platform_data s5k6aa_platdata = {
|
||||
.mclk_frequency = 21600000UL,
|
||||
.gpio_reset = { GPIO_CAM_VGA_NRST, 0 },
|
||||
.gpio_stby = { GPIO_CAM_VGA_NSTBY, 0 },
|
||||
.bus_type = V4L2_MBUS_PARALLEL,
|
||||
.horiz_flip = 1,
|
||||
.set_power = s5k6aa_set_power,
|
||||
};
|
||||
|
||||
static struct i2c_board_info s5k6aa_board_info = {
|
||||
I2C_BOARD_INFO("S5K6AA", 0x3C),
|
||||
.platform_data = &s5k6aa_platdata,
|
||||
};
|
||||
|
||||
static int m5mols_set_power(struct device *dev, int on)
|
||||
{
|
||||
|
@ -904,6 +959,14 @@ static struct i2c_board_info m5mols_board_info = {
|
|||
|
||||
static struct s5p_fimc_isp_info universal_camera_sensors[] = {
|
||||
{
|
||||
.mux_id = 0,
|
||||
.flags = V4L2_MBUS_PCLK_SAMPLE_FALLING |
|
||||
V4L2_MBUS_VSYNC_ACTIVE_LOW,
|
||||
.bus_type = FIMC_ITU_601,
|
||||
.board_info = &s5k6aa_board_info,
|
||||
.i2c_bus_num = 0,
|
||||
.clk_frequency = 24000000UL,
|
||||
}, {
|
||||
.mux_id = 0,
|
||||
.flags = V4L2_MBUS_PCLK_SAMPLE_FALLING |
|
||||
V4L2_MBUS_VSYNC_ACTIVE_LOW,
|
||||
|
@ -925,9 +988,11 @@ static struct gpio universal_camera_gpios[] = {
|
|||
{ GPIO_CAM_LEVEL_EN(2), GPIOF_OUT_INIT_LOW, "CAM_LVL_EN2" },
|
||||
{ GPIO_CAM_8M_ISP_INT, GPIOF_IN, "8M_ISP_INT" },
|
||||
{ GPIO_CAM_MEGA_nRST, GPIOF_OUT_INIT_LOW, "CAM_8M_NRST" },
|
||||
{ GPIO_CAM_VGA_NRST, GPIOF_OUT_INIT_LOW, "CAM_VGA_NRST" },
|
||||
{ GPIO_CAM_VGA_NSTBY, GPIOF_OUT_INIT_LOW, "CAM_VGA_NSTBY" },
|
||||
};
|
||||
|
||||
static void universal_camera_init(void)
|
||||
static void __init universal_camera_init(void)
|
||||
{
|
||||
s3c_set_platdata(&mipi_csis_platdata, sizeof(mipi_csis_platdata),
|
||||
&s5p_device_mipi_csis0);
|
||||
|
@ -948,6 +1013,8 @@ static void universal_camera_init(void)
|
|||
/* Free GPIOs controlled directly by the sensor drivers. */
|
||||
gpio_free(GPIO_CAM_MEGA_nRST);
|
||||
gpio_free(GPIO_CAM_8M_ISP_INT);
|
||||
gpio_free(GPIO_CAM_VGA_NRST);
|
||||
gpio_free(GPIO_CAM_VGA_NSTBY);
|
||||
|
||||
if (exynos4_fimc_setup_gpio(S5P_CAMPORT_A))
|
||||
pr_err("Camera port A setup failed\n");
|
||||
|
@ -960,6 +1027,7 @@ static struct platform_device *universal_devices[] __initdata = {
|
|||
&s5p_device_fimc1,
|
||||
&s5p_device_fimc2,
|
||||
&s5p_device_fimc3,
|
||||
&s5p_device_g2d,
|
||||
&mmc0_fixed_voltage,
|
||||
&s3c_device_hsmmc0,
|
||||
&s3c_device_hsmmc2,
|
||||
|
@ -979,12 +1047,14 @@ static struct platform_device *universal_devices[] __initdata = {
|
|||
&universal_gpio_keys,
|
||||
&s5p_device_onenand,
|
||||
&s5p_device_fimd0,
|
||||
&s5p_device_jpeg,
|
||||
&s5p_device_mfc,
|
||||
&s5p_device_mfc_l,
|
||||
&s5p_device_mfc_r,
|
||||
&exynos4_device_pd[PD_MFC],
|
||||
&exynos4_device_pd[PD_LCD0],
|
||||
&exynos4_device_pd[PD_CAM],
|
||||
&cam_vt_dio_fixed_reg_dev,
|
||||
&cam_i_core_fixed_reg_dev,
|
||||
&cam_s_if_fixed_reg_dev,
|
||||
&s5p_device_fimc_md,
|
||||
|
|
|
@ -296,5 +296,6 @@ config MACH_WLF_CRAGG_6410
|
|||
select S3C64XX_DEV_SPI0
|
||||
select SAMSUNG_GPIO_EXTRA128
|
||||
select I2C
|
||||
select LEDS_GPIO_REGISTER
|
||||
help
|
||||
Machine support for the Wolfson Cragganmore S3C6410 variant.
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <linux/export.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/spi/spi.h>
|
||||
|
||||
#include <linux/mfd/wm831x/irq.h>
|
||||
#include <linux/mfd/wm831x/gpio.h>
|
||||
|
@ -21,8 +22,25 @@
|
|||
#include <sound/wm8962.h>
|
||||
#include <sound/wm9081.h>
|
||||
|
||||
#include <plat/s3c64xx-spi.h>
|
||||
|
||||
#include <mach/crag6410.h>
|
||||
|
||||
static struct s3c64xx_spi_csinfo wm0010_spi_csinfo = {
|
||||
.set_level = gpio_set_value,
|
||||
.line = S3C64XX_GPC(3),
|
||||
};
|
||||
|
||||
static struct spi_board_info wm1253_devs[] = {
|
||||
[0] = {
|
||||
.modalias = "wm0010",
|
||||
.bus_num = 0,
|
||||
.chip_select = 0,
|
||||
.mode = SPI_MODE_0,
|
||||
.controller_data = &wm0010_spi_csinfo,
|
||||
},
|
||||
};
|
||||
|
||||
static struct wm5100_pdata wm5100_pdata = {
|
||||
.ldo_ena = S3C64XX_GPN(7),
|
||||
.irq_flags = IRQF_TRIGGER_HIGH,
|
||||
|
@ -158,14 +176,21 @@ static __devinitdata const struct {
|
|||
const char *name;
|
||||
const struct i2c_board_info *i2c_devs;
|
||||
int num_i2c_devs;
|
||||
const struct spi_board_info *spi_devs;
|
||||
int num_spi_devs;
|
||||
} gf_mods[] = {
|
||||
{ .id = 0x01, .name = "1250-EV1 Springbank" },
|
||||
{ .id = 0x02, .name = "1251-EV1 Jura" },
|
||||
{ .id = 0x03, .name = "1252-EV1 Glenlivet" },
|
||||
{ .id = 0x11, .name = "6249-EV2 Glenfarclas", },
|
||||
{ .id = 0x14, .name = "6271-EV1 Lochnagar" },
|
||||
{ .id = 0x15, .name = "XXXX-EV1 Bells" },
|
||||
{ .id = 0x21, .name = "1275-EV1 Mortlach" },
|
||||
{ .id = 0x25, .name = "1274-EV1 Glencadam" },
|
||||
{ .id = 0x31, .name = "1253-EV1 Tomatin", },
|
||||
{ .id = 0x31, .name = "1253-EV1 Tomatin",
|
||||
.spi_devs = wm1253_devs, .num_spi_devs = ARRAY_SIZE(wm1253_devs) },
|
||||
{ .id = 0x32, .name = "XXXX-EV1 Caol Illa" },
|
||||
{ .id = 0x33, .name = "XXXX-EV1 Oban" },
|
||||
{ .id = 0x39, .name = "1254-EV1 Dallas Dhu",
|
||||
.i2c_devs = wm1254_devs, .num_i2c_devs = ARRAY_SIZE(wm1254_devs) },
|
||||
{ .id = 0x3a, .name = "1259-EV1 Tobermory",
|
||||
|
@ -197,12 +222,16 @@ static __devinit int wlf_gf_module_probe(struct i2c_client *i2c,
|
|||
if (i < ARRAY_SIZE(gf_mods)) {
|
||||
dev_info(&i2c->dev, "%s revision %d\n",
|
||||
gf_mods[i].name, rev + 1);
|
||||
|
||||
for (j = 0; j < gf_mods[i].num_i2c_devs; j++) {
|
||||
if (!i2c_new_device(i2c->adapter,
|
||||
&(gf_mods[i].i2c_devs[j])))
|
||||
dev_err(&i2c->dev,
|
||||
"Failed to register dev: %d\n", ret);
|
||||
}
|
||||
|
||||
spi_register_board_info(gf_mods[i].spi_devs,
|
||||
gf_mods[i].num_spi_devs);
|
||||
} else {
|
||||
dev_warn(&i2c->dev, "Unknown module ID 0x%x revision %d\n",
|
||||
id, rev + 1);
|
||||
|
|
|
@ -19,7 +19,9 @@
|
|||
#include <linux/io.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/leds.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/mmc/host.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/pwm_backlight.h>
|
||||
|
@ -298,6 +300,7 @@ static struct platform_device littlemill_device = {
|
|||
};
|
||||
|
||||
static struct regulator_consumer_supply wallvdd_consumers[] = {
|
||||
REGULATOR_SUPPLY("SPKVDD", "1-001a"),
|
||||
REGULATOR_SUPPLY("SPKVDD1", "1-001a"),
|
||||
REGULATOR_SUPPLY("SPKVDD2", "1-001a"),
|
||||
REGULATOR_SUPPLY("SPKVDDL", "1-001a"),
|
||||
|
@ -574,11 +577,19 @@ static struct s3c2410_platform_i2c i2c0_pdata = {
|
|||
.frequency = 400000,
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply pvdd_1v2_consumers[] __initdata = {
|
||||
REGULATOR_SUPPLY("DCVDD", "spi0.0"),
|
||||
REGULATOR_SUPPLY("AVDD", "spi0.0"),
|
||||
};
|
||||
|
||||
static struct regulator_init_data pvdd_1v2 __initdata = {
|
||||
.constraints = {
|
||||
.name = "PVDD_1V2",
|
||||
.always_on = 1,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
|
||||
.consumer_supplies = pvdd_1v2_consumers,
|
||||
.num_consumer_supplies = ARRAY_SIZE(pvdd_1v2_consumers),
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply pvdd_1v8_consumers[] __initdata = {
|
||||
|
@ -592,6 +603,7 @@ static struct regulator_consumer_supply pvdd_1v8_consumers[] __initdata = {
|
|||
REGULATOR_SUPPLY("AVDD2", "1-001a"),
|
||||
REGULATOR_SUPPLY("DCVDD", "1-001a"),
|
||||
REGULATOR_SUPPLY("AVDD", "1-001a"),
|
||||
REGULATOR_SUPPLY("DBVDD", "spi0.0"),
|
||||
};
|
||||
|
||||
static struct regulator_init_data pvdd_1v8 __initdata = {
|
||||
|
@ -681,6 +693,7 @@ static void __init crag6410_map_io(void)
|
|||
static struct s3c_sdhci_platdata crag6410_hsmmc2_pdata = {
|
||||
.max_width = 4,
|
||||
.cd_type = S3C_SDHCI_CD_PERMANENT,
|
||||
.host_caps = MMC_CAP_POWER_OFF_CARD,
|
||||
};
|
||||
|
||||
static void crag6410_cfg_sdhci0(struct platform_device *dev, int width)
|
||||
|
@ -696,6 +709,55 @@ static struct s3c_sdhci_platdata crag6410_hsmmc0_pdata = {
|
|||
.max_width = 4,
|
||||
.cd_type = S3C_SDHCI_CD_INTERNAL,
|
||||
.cfg_gpio = crag6410_cfg_sdhci0,
|
||||
.host_caps = MMC_CAP_POWER_OFF_CARD,
|
||||
};
|
||||
|
||||
static const struct gpio_led gpio_leds[] = {
|
||||
{
|
||||
.name = "d13:green:",
|
||||
.gpio = MMGPIO_GPIO_BASE + 0,
|
||||
.default_state = LEDS_GPIO_DEFSTATE_ON,
|
||||
},
|
||||
{
|
||||
.name = "d14:green:",
|
||||
.gpio = MMGPIO_GPIO_BASE + 1,
|
||||
.default_state = LEDS_GPIO_DEFSTATE_ON,
|
||||
},
|
||||
{
|
||||
.name = "d15:green:",
|
||||
.gpio = MMGPIO_GPIO_BASE + 2,
|
||||
.default_state = LEDS_GPIO_DEFSTATE_ON,
|
||||
},
|
||||
{
|
||||
.name = "d16:green:",
|
||||
.gpio = MMGPIO_GPIO_BASE + 3,
|
||||
.default_state = LEDS_GPIO_DEFSTATE_ON,
|
||||
},
|
||||
{
|
||||
.name = "d17:green:",
|
||||
.gpio = MMGPIO_GPIO_BASE + 4,
|
||||
.default_state = LEDS_GPIO_DEFSTATE_ON,
|
||||
},
|
||||
{
|
||||
.name = "d18:green:",
|
||||
.gpio = MMGPIO_GPIO_BASE + 5,
|
||||
.default_state = LEDS_GPIO_DEFSTATE_ON,
|
||||
},
|
||||
{
|
||||
.name = "d19:green:",
|
||||
.gpio = MMGPIO_GPIO_BASE + 6,
|
||||
.default_state = LEDS_GPIO_DEFSTATE_ON,
|
||||
},
|
||||
{
|
||||
.name = "d20:green:",
|
||||
.gpio = MMGPIO_GPIO_BASE + 7,
|
||||
.default_state = LEDS_GPIO_DEFSTATE_ON,
|
||||
},
|
||||
};
|
||||
|
||||
static const struct gpio_led_platform_data gpio_leds_pdata = {
|
||||
.leds = gpio_leds,
|
||||
.num_leds = ARRAY_SIZE(gpio_leds),
|
||||
};
|
||||
|
||||
static void __init crag6410_machine_init(void)
|
||||
|
@ -727,9 +789,12 @@ static void __init crag6410_machine_init(void)
|
|||
i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1));
|
||||
|
||||
samsung_keypad_set_platdata(&crag6410_keypad_data);
|
||||
s3c64xx_spi0_set_platdata(&s3c64xx_spi0_pdata, 0, 1);
|
||||
|
||||
platform_add_devices(crag6410_devices, ARRAY_SIZE(crag6410_devices));
|
||||
|
||||
gpio_led_register_device(-1, &gpio_leds_pdata);
|
||||
|
||||
regulator_has_full_constraints();
|
||||
|
||||
s3c64xx_pm_init();
|
||||
|
|
|
@ -118,6 +118,10 @@ config MACH_SMDKC110
|
|||
select S3C_DEV_I2C2
|
||||
select S3C_DEV_RTC
|
||||
select S3C_DEV_WDT
|
||||
select S5P_DEV_FIMC0
|
||||
select S5P_DEV_FIMC1
|
||||
select S5P_DEV_FIMC2
|
||||
select S5P_DEV_MFC
|
||||
select SAMSUNG_DEV_IDE
|
||||
select S5PV210_SETUP_I2C1
|
||||
select S5PV210_SETUP_I2C2
|
||||
|
@ -142,6 +146,11 @@ config MACH_SMDKV210
|
|||
select S3C_DEV_I2C2
|
||||
select S3C_DEV_RTC
|
||||
select S3C_DEV_WDT
|
||||
select S5P_DEV_FIMC0
|
||||
select S5P_DEV_FIMC1
|
||||
select S5P_DEV_FIMC2
|
||||
select S5P_DEV_JPEG
|
||||
select S5P_DEV_MFC
|
||||
select SAMSUNG_DEV_ADC
|
||||
select SAMSUNG_DEV_BACKLIGHT
|
||||
select SAMSUNG_DEV_IDE
|
||||
|
|
|
@ -339,6 +339,11 @@ static struct clk init_clocks_off[] = {
|
|||
.parent = &clk_hclk_dsys.clk,
|
||||
.enable = s5pv210_clk_ip0_ctrl,
|
||||
.ctrlbit = (1 << 26),
|
||||
}, {
|
||||
.name = "jpeg",
|
||||
.parent = &clk_hclk_dsys.clk,
|
||||
.enable = s5pv210_clk_ip0_ctrl,
|
||||
.ctrlbit = (1 << 28),
|
||||
}, {
|
||||
.name = "mfc",
|
||||
.devname = "s5p-mfc",
|
||||
|
|
|
@ -90,6 +90,8 @@
|
|||
#define S5PV210_PA_FIMC1 0xFB300000
|
||||
#define S5PV210_PA_FIMC2 0xFB400000
|
||||
|
||||
#define S5PV210_PA_JPEG 0xFB600000
|
||||
|
||||
#define S5PV210_PA_SDO 0xF9000000
|
||||
#define S5PV210_PA_VP 0xF9100000
|
||||
#define S5PV210_PA_MIXER 0xF9200000
|
||||
|
@ -132,6 +134,8 @@
|
|||
#define S5P_PA_SYSCON S5PV210_PA_SYSCON
|
||||
#define S5P_PA_TIMER S5PV210_PA_TIMER
|
||||
|
||||
#define S5P_PA_JPEG S5PV210_PA_JPEG
|
||||
|
||||
#define SAMSUNG_PA_ADC S5PV210_PA_ADC
|
||||
#define SAMSUNG_PA_CFCON S5PV210_PA_CFCON
|
||||
#define SAMSUNG_PA_KEYPAD S5PV210_PA_KEYPAD
|
||||
|
|
|
@ -616,6 +616,7 @@ static struct platform_device *aquila_devices[] __initdata = {
|
|||
&s5p_device_fimc0,
|
||||
&s5p_device_fimc1,
|
||||
&s5p_device_fimc2,
|
||||
&s5p_device_fimc_md,
|
||||
&s5pv210_device_iis0,
|
||||
&wm8994_fixed_voltage0,
|
||||
&wm8994_fixed_voltage1,
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include <plat/iic.h>
|
||||
#include <plat/pm.h>
|
||||
#include <plat/s5p-time.h>
|
||||
#include <plat/mfc.h>
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
@ -94,6 +95,13 @@ static struct platform_device *smdkc110_devices[] __initdata = {
|
|||
&s3c_device_i2c2,
|
||||
&s3c_device_rtc,
|
||||
&s3c_device_wdt,
|
||||
&s5p_device_fimc0,
|
||||
&s5p_device_fimc1,
|
||||
&s5p_device_fimc2,
|
||||
&s5p_device_fimc_md,
|
||||
&s5p_device_mfc,
|
||||
&s5p_device_mfc_l,
|
||||
&s5p_device_mfc_r,
|
||||
};
|
||||
|
||||
static struct i2c_board_info smdkc110_i2c_devs0[] __initdata = {
|
||||
|
@ -117,6 +125,11 @@ static void __init smdkc110_map_io(void)
|
|||
s5p_set_timer_source(S5P_PWM3, S5P_PWM4);
|
||||
}
|
||||
|
||||
static void __init smdkc110_reserve(void)
|
||||
{
|
||||
s5p_mfc_reserve_mem(0x43000000, 8 << 20, 0x51000000, 8 << 20);
|
||||
}
|
||||
|
||||
static void __init smdkc110_machine_init(void)
|
||||
{
|
||||
s3c_pm_init();
|
||||
|
@ -145,4 +158,5 @@ MACHINE_START(SMDKC110, "SMDKC110")
|
|||
.init_machine = smdkc110_machine_init,
|
||||
.timer = &s5p_timer,
|
||||
.restart = s5pv210_restart,
|
||||
.reserve = &smdkc110_reserve,
|
||||
MACHINE_END
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
#include <plat/s5p-time.h>
|
||||
#include <plat/backlight.h>
|
||||
#include <plat/regs-fb-v4.h>
|
||||
#include <plat/mfc.h>
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
@ -223,6 +224,14 @@ static struct platform_device *smdkv210_devices[] __initdata = {
|
|||
&s3c_device_rtc,
|
||||
&s3c_device_ts,
|
||||
&s3c_device_wdt,
|
||||
&s5p_device_fimc0,
|
||||
&s5p_device_fimc1,
|
||||
&s5p_device_fimc2,
|
||||
&s5p_device_fimc_md,
|
||||
&s5p_device_jpeg,
|
||||
&s5p_device_mfc,
|
||||
&s5p_device_mfc_l,
|
||||
&s5p_device_mfc_r,
|
||||
&s5pv210_device_ac97,
|
||||
&s5pv210_device_iis0,
|
||||
&s5pv210_device_spdif,
|
||||
|
@ -282,6 +291,11 @@ static void __init smdkv210_map_io(void)
|
|||
s5p_set_timer_source(S5P_PWM2, S5P_PWM4);
|
||||
}
|
||||
|
||||
static void __init smdkv210_reserve(void)
|
||||
{
|
||||
s5p_mfc_reserve_mem(0x43000000, 8 << 20, 0x51000000, 8 << 20);
|
||||
}
|
||||
|
||||
static void __init smdkv210_machine_init(void)
|
||||
{
|
||||
s3c_pm_init();
|
||||
|
@ -319,4 +333,5 @@ MACHINE_START(SMDKV210, "SMDKV210")
|
|||
.init_machine = smdkv210_machine_init,
|
||||
.timer = &s5p_timer,
|
||||
.restart = s5pv210_restart,
|
||||
.reserve = &smdkv210_reserve,
|
||||
MACHINE_END
|
||||
|
|
Загрузка…
Ссылка в новой задаче