Loading arch/arm/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -716,6 +716,7 @@ config ARCH_S3C64XX select CPU_V6 select ARM_VIC select HAVE_CLK select HAVE_TCM select CLKDEV_LOOKUP select NO_IOPORT select ARCH_USES_GETTIMEOFFSET Loading arch/arm/mach-exynos4/Kconfig +11 −1 Original line number Diff line number Diff line Loading @@ -215,6 +215,7 @@ config MACH_UNIVERSAL_C210 config MACH_NURI bool "Mobile NURI Board" select CPU_EXYNOS4210 select S5P_GPIO_INT select S3C_DEV_WDT select S3C_DEV_RTC select S5P_DEV_FIMD0 Loading @@ -224,15 +225,23 @@ config MACH_NURI select S3C_DEV_I2C1 select S3C_DEV_I2C3 select S3C_DEV_I2C5 select S5P_DEV_CSIS0 select S5P_DEV_FIMC0 select S5P_DEV_FIMC1 select S5P_DEV_FIMC2 select S5P_DEV_FIMC3 select S5P_DEV_MFC select S5P_DEV_USB_EHCI select S5P_SETUP_MIPIPHY select EXYNOS4_DEV_PD select EXYNOS4_SETUP_FIMC select EXYNOS4_SETUP_FIMD0 select EXYNOS4_SETUP_I2C1 select EXYNOS4_SETUP_I2C3 select EXYNOS4_SETUP_I2C5 select EXYNOS4_SETUP_SDHCI select EXYNOS4_SETUP_USB_PHY select S5P_SETUP_MIPIPHY select SAMSUNG_DEV_PWM select SAMSUNG_DEV_ADC help Loading @@ -251,11 +260,12 @@ config MACH_ORIGEN select S5P_DEV_FIMC3 select S5P_DEV_FIMD0 select S5P_DEV_I2C_HDMIPHY select S5P_DEV_MFC select S5P_DEV_TV select S5P_DEV_USB_EHCI select EXYNOS4_DEV_PD select SAMSUNG_DEV_BACKLIGHT select SAMSUNG_DEV_PWM select EXYNOS4_DEV_PD select EXYNOS4_SETUP_FIMD0 select EXYNOS4_SETUP_SDHCI select EXYNOS4_SETUP_USB_PHY Loading arch/arm/mach-exynos4/mach-nuri.c +151 −7 Original line number Diff line number Diff line Loading @@ -27,6 +27,9 @@ #include <linux/pwm_backlight.h> #include <video/platform_lcd.h> #include <media/m5mols.h> #include <media/s5p_fimc.h> #include <media/v4l2-mediabus.h> #include <asm/mach/arch.h> #include <asm/mach-types.h> Loading @@ -45,6 +48,9 @@ #include <plat/iic.h> #include <plat/mfc.h> #include <plat/pd.h> #include <plat/fimc-core.h> #include <plat/camport.h> #include <plat/mipi_csis.h> #include <mach/map.h> Loading @@ -65,6 +71,8 @@ enum fixed_regulator_id { FIXED_REG_ID_MMC = 0, FIXED_REG_ID_MAX8903, FIXED_REG_ID_CAM_A28V, FIXED_REG_ID_CAM_12V, }; static struct s3c2410_uartcfg nuri_uartcfgs[] __initdata = { Loading Loading @@ -1066,13 +1074,6 @@ static struct platform_device nuri_max8903_device = { }, }; static struct device *nuri_cm_devices[] = { &s3c_device_i2c5.dev, &s3c_device_adc.dev, NULL, /* Reserved for UART */ NULL, }; static void __init nuri_power_init(void) { int gpio; Loading Loading @@ -1117,10 +1118,140 @@ static void __init nuri_ehci_init(void) s5p_ehci_set_platdata(pdata); } /* CAMERA */ static struct regulator_consumer_supply cam_vdda_supply[] = { REGULATOR_SUPPLY("a_sensor", "0-001f"), }; static struct regulator_init_data cam_vdda_reg_init_data = { .constraints = { .valid_ops_mask = REGULATOR_CHANGE_STATUS }, .num_consumer_supplies = ARRAY_SIZE(cam_vdda_supply), .consumer_supplies = cam_vdda_supply, }; static struct fixed_voltage_config cam_vdda_fixed_voltage_cfg = { .supply_name = "CAM_IO_EN", .microvolts = 2800000, .gpio = EXYNOS4_GPE2(1), /* CAM_IO_EN */ .enable_high = 1, .init_data = &cam_vdda_reg_init_data, }; static struct platform_device cam_vdda_fixed_rdev = { .name = "reg-fixed-voltage", .id = FIXED_REG_ID_CAM_A28V, .dev = { .platform_data = &cam_vdda_fixed_voltage_cfg }, }; static struct regulator_consumer_supply camera_8m_12v_supply = REGULATOR_SUPPLY("dig_12", "0-001f"); static struct regulator_init_data cam_8m_12v_reg_init_data = { .num_consumer_supplies = 1, .consumer_supplies = &camera_8m_12v_supply, .constraints = { .valid_ops_mask = REGULATOR_CHANGE_STATUS }, }; static struct fixed_voltage_config cam_8m_12v_fixed_voltage_cfg = { .supply_name = "8M_1.2V", .microvolts = 1200000, .gpio = EXYNOS4_GPE2(5), /* 8M_1.2V_EN */ .enable_high = 1, .init_data = &cam_8m_12v_reg_init_data, }; static struct platform_device cam_8m_12v_fixed_rdev = { .name = "reg-fixed-voltage", .id = FIXED_REG_ID_CAM_12V, .dev = { .platform_data = &cam_8m_12v_fixed_voltage_cfg }, }; static struct s5p_platform_mipi_csis mipi_csis_platdata = { .clk_rate = 166000000UL, .lanes = 2, .alignment = 32, .hs_settle = 12, .phy_enable = s5p_csis_phy_enable, }; #define GPIO_CAM_MEGA_RST EXYNOS4_GPY3(7) /* ISP_RESET */ #define GPIO_CAM_8M_ISP_INT EXYNOS4_GPL2(5) static struct m5mols_platform_data m5mols_platdata = { .gpio_reset = GPIO_CAM_MEGA_RST, }; static struct i2c_board_info m5mols_board_info = { I2C_BOARD_INFO("M5MOLS", 0x1F), .platform_data = &m5mols_platdata, }; static struct s5p_fimc_isp_info nuri_camera_sensors[] = { { .flags = V4L2_MBUS_PCLK_SAMPLE_FALLING | V4L2_MBUS_VSYNC_ACTIVE_LOW, .bus_type = FIMC_MIPI_CSI2, .board_info = &m5mols_board_info, .clk_frequency = 24000000UL, .csi_data_align = 32, }, }; static struct s5p_platform_fimc fimc_md_platdata = { .isp_info = nuri_camera_sensors, .num_clients = ARRAY_SIZE(nuri_camera_sensors), }; static struct gpio nuri_camera_gpios[] = { { 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) { s3c_set_platdata(&mipi_csis_platdata, sizeof(mipi_csis_platdata), &s5p_device_mipi_csis0); s3c_set_platdata(&fimc_md_platdata, sizeof(fimc_md_platdata), &s5p_device_fimc_md); if (gpio_request_array(nuri_camera_gpios, ARRAY_SIZE(nuri_camera_gpios))) { pr_err("%s: GPIO request failed\n", __func__); return; } m5mols_board_info.irq = s5p_register_gpio_interrupt(GPIO_CAM_8M_ISP_INT); if (!IS_ERR_VALUE(m5mols_board_info.irq)) s3c_gpio_cfgpin(GPIO_CAM_8M_ISP_INT, S3C_GPIO_SFN(0xF)); else pr_err("%s: Failed to configure 8M_ISP_INT GPIO\n", __func__); /* Free GPIOs controlled directly by the sensor drivers. */ gpio_free(GPIO_CAM_MEGA_RST); if (exynos4_fimc_setup_gpio(S5P_CAMPORT_A)) { pr_err("%s: Camera port A setup failed\n", __func__); return; } /* Increase drive strength of the sensor clock output */ s5p_gpio_set_drvstr(EXYNOS4_GPJ1(3), S5P_GPIO_DRVSTR_LV4); } static struct s3c2410_platform_i2c nuri_i2c0_platdata __initdata = { .frequency = 400000U, .sda_delay = 200, }; static struct platform_device *nuri_devices[] __initdata = { /* Samsung Platform Devices */ &s3c_device_i2c5, /* PMIC should initialize first */ &s3c_device_i2c0, &emmc_fixed_voltage, &s5p_device_mipi_csis0, &s5p_device_fimc0, &s5p_device_fimc1, &s5p_device_fimc2, &s5p_device_fimc3, &s5p_device_fimd0, &s3c_device_hsmmc0, &s3c_device_hsmmc2, Loading @@ -1137,6 +1268,8 @@ static struct platform_device *nuri_devices[] __initdata = { &s5p_device_mfc_r, &exynos4_device_pd[PD_MFC], &exynos4_device_pd[PD_LCD0], &exynos4_device_pd[PD_CAM], &s5p_device_fimc_md, /* NURI Devices */ &nuri_gpio_keys, Loading @@ -1144,6 +1277,8 @@ static struct platform_device *nuri_devices[] __initdata = { &nuri_backlight_device, &max8903_fixed_reg_dev, &nuri_max8903_device, &cam_vdda_fixed_rdev, &cam_8m_12v_fixed_rdev, }; static void __init nuri_map_io(void) Loading @@ -1164,6 +1299,7 @@ static void __init nuri_machine_init(void) nuri_tsp_init(); nuri_power_init(); s3c_i2c0_set_platdata(&nuri_i2c0_platdata); i2c_register_board_info(1, i2c1_devs, ARRAY_SIZE(i2c1_devs)); s3c_i2c3_set_platdata(&i2c3_data); i2c_register_board_info(3, i2c3_devs, ARRAY_SIZE(i2c3_devs)); Loading @@ -1175,6 +1311,8 @@ static void __init nuri_machine_init(void) s5p_fimd0_set_platdata(&nuri_fb_pdata); nuri_camera_init(); nuri_ehci_init(); clk_xusbxti.rate = 24000000; Loading @@ -1182,6 +1320,12 @@ static void __init nuri_machine_init(void) 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; s5p_device_fimc0.dev.parent = &exynos4_device_pd[PD_CAM].dev; s5p_device_fimc1.dev.parent = &exynos4_device_pd[PD_CAM].dev; s5p_device_fimc2.dev.parent = &exynos4_device_pd[PD_CAM].dev; s5p_device_fimc3.dev.parent = &exynos4_device_pd[PD_CAM].dev; s5p_device_mipi_csis0.dev.parent = &exynos4_device_pd[PD_CAM].dev; } MACHINE_START(NURI, "NURI") Loading arch/arm/mach-exynos4/mach-origen.c +21 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ #include <plat/backlight.h> #include <plat/pd.h> #include <plat/fb.h> #include <plat/mfc.h> #include <mach/map.h> Loading Loading @@ -89,6 +90,8 @@ static struct s3c2410_uartcfg origen_uartcfgs[] __initdata = { static struct regulator_consumer_supply __initdata ldo3_consumer[] = { REGULATOR_SUPPLY("vdd11", "s5p-mipi-csis.0"), /* MIPI */ REGULATOR_SUPPLY("vdd", "exynos4-hdmi"), /* HDMI */ REGULATOR_SUPPLY("vdd_pll", "exynos4-hdmi"), /* HDMI */ }; static struct regulator_consumer_supply __initdata ldo6_consumer[] = { REGULATOR_SUPPLY("vdd18", "s5p-mipi-csis.0"), /* MIPI */ Loading @@ -98,6 +101,7 @@ static struct regulator_consumer_supply __initdata ldo7_consumer[] = { }; static struct regulator_consumer_supply __initdata ldo8_consumer[] = { REGULATOR_SUPPLY("vdd", "s5p-adc"), /* ADC */ REGULATOR_SUPPLY("vdd_osc", "exynos4-hdmi"), /* HDMI */ }; static struct regulator_consumer_supply __initdata ldo9_consumer[] = { REGULATOR_SUPPLY("dvdd", "swb-a31"), /* AR6003 WLAN & CSR 8810 BT */ Loading Loading @@ -598,9 +602,17 @@ static struct platform_device *origen_devices[] __initdata = { &s5p_device_fimd0, &s5p_device_hdmi, &s5p_device_i2c_hdmiphy, &s5p_device_mfc, &s5p_device_mfc_l, &s5p_device_mfc_r, &s5p_device_mixer, &exynos4_device_pd[PD_LCD0], &exynos4_device_pd[PD_TV], &exynos4_device_pd[PD_G3D], &exynos4_device_pd[PD_LCD1], &exynos4_device_pd[PD_CAM], &exynos4_device_pd[PD_GPS], &exynos4_device_pd[PD_MFC], &origen_device_gpiokeys, &origen_lcd_hv070wsa, }; Loading Loading @@ -638,6 +650,11 @@ static void __init origen_power_init(void) s3c_gpio_setpull(EXYNOS4_GPX0(4), S3C_GPIO_PULL_NONE); } static void __init origen_reserve(void) { s5p_mfc_reserve_mem(0x43000000, 8 << 20, 0x51000000, 8 << 20); } static void __init origen_machine_init(void) { origen_power_init(); Loading @@ -661,11 +678,14 @@ static void __init origen_machine_init(void) 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; s5p_device_mfc.dev.parent = &exynos4_device_pd[PD_MFC].dev; samsung_bl_set(&origen_bl_gpio_info, &origen_bl_data); } Loading @@ -676,4 +696,5 @@ MACHINE_START(ORIGEN, "ORIGEN") .map_io = origen_map_io, .init_machine = origen_machine_init, .timer = &exynos4_timer, .reserve = &origen_reserve, MACHINE_END arch/arm/mach-s3c2410/include/mach/gpio-nrs.h +1 −1 Original line number Diff line number Diff line Loading @@ -53,7 +53,7 @@ #define S3C2410_GPIO_M_NR (32) /* technically 2. */ #if CONFIG_S3C_GPIO_SPACE != 0 #error CONFIG_S3C_GPIO_SPACE cannot be zero at the moment #error CONFIG_S3C_GPIO_SPACE cannot be nonzero at the moment #endif #define S3C2410_GPIO_NEXT(__gpio) \ Loading Loading
arch/arm/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -716,6 +716,7 @@ config ARCH_S3C64XX select CPU_V6 select ARM_VIC select HAVE_CLK select HAVE_TCM select CLKDEV_LOOKUP select NO_IOPORT select ARCH_USES_GETTIMEOFFSET Loading
arch/arm/mach-exynos4/Kconfig +11 −1 Original line number Diff line number Diff line Loading @@ -215,6 +215,7 @@ config MACH_UNIVERSAL_C210 config MACH_NURI bool "Mobile NURI Board" select CPU_EXYNOS4210 select S5P_GPIO_INT select S3C_DEV_WDT select S3C_DEV_RTC select S5P_DEV_FIMD0 Loading @@ -224,15 +225,23 @@ config MACH_NURI select S3C_DEV_I2C1 select S3C_DEV_I2C3 select S3C_DEV_I2C5 select S5P_DEV_CSIS0 select S5P_DEV_FIMC0 select S5P_DEV_FIMC1 select S5P_DEV_FIMC2 select S5P_DEV_FIMC3 select S5P_DEV_MFC select S5P_DEV_USB_EHCI select S5P_SETUP_MIPIPHY select EXYNOS4_DEV_PD select EXYNOS4_SETUP_FIMC select EXYNOS4_SETUP_FIMD0 select EXYNOS4_SETUP_I2C1 select EXYNOS4_SETUP_I2C3 select EXYNOS4_SETUP_I2C5 select EXYNOS4_SETUP_SDHCI select EXYNOS4_SETUP_USB_PHY select S5P_SETUP_MIPIPHY select SAMSUNG_DEV_PWM select SAMSUNG_DEV_ADC help Loading @@ -251,11 +260,12 @@ config MACH_ORIGEN select S5P_DEV_FIMC3 select S5P_DEV_FIMD0 select S5P_DEV_I2C_HDMIPHY select S5P_DEV_MFC select S5P_DEV_TV select S5P_DEV_USB_EHCI select EXYNOS4_DEV_PD select SAMSUNG_DEV_BACKLIGHT select SAMSUNG_DEV_PWM select EXYNOS4_DEV_PD select EXYNOS4_SETUP_FIMD0 select EXYNOS4_SETUP_SDHCI select EXYNOS4_SETUP_USB_PHY Loading
arch/arm/mach-exynos4/mach-nuri.c +151 −7 Original line number Diff line number Diff line Loading @@ -27,6 +27,9 @@ #include <linux/pwm_backlight.h> #include <video/platform_lcd.h> #include <media/m5mols.h> #include <media/s5p_fimc.h> #include <media/v4l2-mediabus.h> #include <asm/mach/arch.h> #include <asm/mach-types.h> Loading @@ -45,6 +48,9 @@ #include <plat/iic.h> #include <plat/mfc.h> #include <plat/pd.h> #include <plat/fimc-core.h> #include <plat/camport.h> #include <plat/mipi_csis.h> #include <mach/map.h> Loading @@ -65,6 +71,8 @@ enum fixed_regulator_id { FIXED_REG_ID_MMC = 0, FIXED_REG_ID_MAX8903, FIXED_REG_ID_CAM_A28V, FIXED_REG_ID_CAM_12V, }; static struct s3c2410_uartcfg nuri_uartcfgs[] __initdata = { Loading Loading @@ -1066,13 +1074,6 @@ static struct platform_device nuri_max8903_device = { }, }; static struct device *nuri_cm_devices[] = { &s3c_device_i2c5.dev, &s3c_device_adc.dev, NULL, /* Reserved for UART */ NULL, }; static void __init nuri_power_init(void) { int gpio; Loading Loading @@ -1117,10 +1118,140 @@ static void __init nuri_ehci_init(void) s5p_ehci_set_platdata(pdata); } /* CAMERA */ static struct regulator_consumer_supply cam_vdda_supply[] = { REGULATOR_SUPPLY("a_sensor", "0-001f"), }; static struct regulator_init_data cam_vdda_reg_init_data = { .constraints = { .valid_ops_mask = REGULATOR_CHANGE_STATUS }, .num_consumer_supplies = ARRAY_SIZE(cam_vdda_supply), .consumer_supplies = cam_vdda_supply, }; static struct fixed_voltage_config cam_vdda_fixed_voltage_cfg = { .supply_name = "CAM_IO_EN", .microvolts = 2800000, .gpio = EXYNOS4_GPE2(1), /* CAM_IO_EN */ .enable_high = 1, .init_data = &cam_vdda_reg_init_data, }; static struct platform_device cam_vdda_fixed_rdev = { .name = "reg-fixed-voltage", .id = FIXED_REG_ID_CAM_A28V, .dev = { .platform_data = &cam_vdda_fixed_voltage_cfg }, }; static struct regulator_consumer_supply camera_8m_12v_supply = REGULATOR_SUPPLY("dig_12", "0-001f"); static struct regulator_init_data cam_8m_12v_reg_init_data = { .num_consumer_supplies = 1, .consumer_supplies = &camera_8m_12v_supply, .constraints = { .valid_ops_mask = REGULATOR_CHANGE_STATUS }, }; static struct fixed_voltage_config cam_8m_12v_fixed_voltage_cfg = { .supply_name = "8M_1.2V", .microvolts = 1200000, .gpio = EXYNOS4_GPE2(5), /* 8M_1.2V_EN */ .enable_high = 1, .init_data = &cam_8m_12v_reg_init_data, }; static struct platform_device cam_8m_12v_fixed_rdev = { .name = "reg-fixed-voltage", .id = FIXED_REG_ID_CAM_12V, .dev = { .platform_data = &cam_8m_12v_fixed_voltage_cfg }, }; static struct s5p_platform_mipi_csis mipi_csis_platdata = { .clk_rate = 166000000UL, .lanes = 2, .alignment = 32, .hs_settle = 12, .phy_enable = s5p_csis_phy_enable, }; #define GPIO_CAM_MEGA_RST EXYNOS4_GPY3(7) /* ISP_RESET */ #define GPIO_CAM_8M_ISP_INT EXYNOS4_GPL2(5) static struct m5mols_platform_data m5mols_platdata = { .gpio_reset = GPIO_CAM_MEGA_RST, }; static struct i2c_board_info m5mols_board_info = { I2C_BOARD_INFO("M5MOLS", 0x1F), .platform_data = &m5mols_platdata, }; static struct s5p_fimc_isp_info nuri_camera_sensors[] = { { .flags = V4L2_MBUS_PCLK_SAMPLE_FALLING | V4L2_MBUS_VSYNC_ACTIVE_LOW, .bus_type = FIMC_MIPI_CSI2, .board_info = &m5mols_board_info, .clk_frequency = 24000000UL, .csi_data_align = 32, }, }; static struct s5p_platform_fimc fimc_md_platdata = { .isp_info = nuri_camera_sensors, .num_clients = ARRAY_SIZE(nuri_camera_sensors), }; static struct gpio nuri_camera_gpios[] = { { 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) { s3c_set_platdata(&mipi_csis_platdata, sizeof(mipi_csis_platdata), &s5p_device_mipi_csis0); s3c_set_platdata(&fimc_md_platdata, sizeof(fimc_md_platdata), &s5p_device_fimc_md); if (gpio_request_array(nuri_camera_gpios, ARRAY_SIZE(nuri_camera_gpios))) { pr_err("%s: GPIO request failed\n", __func__); return; } m5mols_board_info.irq = s5p_register_gpio_interrupt(GPIO_CAM_8M_ISP_INT); if (!IS_ERR_VALUE(m5mols_board_info.irq)) s3c_gpio_cfgpin(GPIO_CAM_8M_ISP_INT, S3C_GPIO_SFN(0xF)); else pr_err("%s: Failed to configure 8M_ISP_INT GPIO\n", __func__); /* Free GPIOs controlled directly by the sensor drivers. */ gpio_free(GPIO_CAM_MEGA_RST); if (exynos4_fimc_setup_gpio(S5P_CAMPORT_A)) { pr_err("%s: Camera port A setup failed\n", __func__); return; } /* Increase drive strength of the sensor clock output */ s5p_gpio_set_drvstr(EXYNOS4_GPJ1(3), S5P_GPIO_DRVSTR_LV4); } static struct s3c2410_platform_i2c nuri_i2c0_platdata __initdata = { .frequency = 400000U, .sda_delay = 200, }; static struct platform_device *nuri_devices[] __initdata = { /* Samsung Platform Devices */ &s3c_device_i2c5, /* PMIC should initialize first */ &s3c_device_i2c0, &emmc_fixed_voltage, &s5p_device_mipi_csis0, &s5p_device_fimc0, &s5p_device_fimc1, &s5p_device_fimc2, &s5p_device_fimc3, &s5p_device_fimd0, &s3c_device_hsmmc0, &s3c_device_hsmmc2, Loading @@ -1137,6 +1268,8 @@ static struct platform_device *nuri_devices[] __initdata = { &s5p_device_mfc_r, &exynos4_device_pd[PD_MFC], &exynos4_device_pd[PD_LCD0], &exynos4_device_pd[PD_CAM], &s5p_device_fimc_md, /* NURI Devices */ &nuri_gpio_keys, Loading @@ -1144,6 +1277,8 @@ static struct platform_device *nuri_devices[] __initdata = { &nuri_backlight_device, &max8903_fixed_reg_dev, &nuri_max8903_device, &cam_vdda_fixed_rdev, &cam_8m_12v_fixed_rdev, }; static void __init nuri_map_io(void) Loading @@ -1164,6 +1299,7 @@ static void __init nuri_machine_init(void) nuri_tsp_init(); nuri_power_init(); s3c_i2c0_set_platdata(&nuri_i2c0_platdata); i2c_register_board_info(1, i2c1_devs, ARRAY_SIZE(i2c1_devs)); s3c_i2c3_set_platdata(&i2c3_data); i2c_register_board_info(3, i2c3_devs, ARRAY_SIZE(i2c3_devs)); Loading @@ -1175,6 +1311,8 @@ static void __init nuri_machine_init(void) s5p_fimd0_set_platdata(&nuri_fb_pdata); nuri_camera_init(); nuri_ehci_init(); clk_xusbxti.rate = 24000000; Loading @@ -1182,6 +1320,12 @@ static void __init nuri_machine_init(void) 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; s5p_device_fimc0.dev.parent = &exynos4_device_pd[PD_CAM].dev; s5p_device_fimc1.dev.parent = &exynos4_device_pd[PD_CAM].dev; s5p_device_fimc2.dev.parent = &exynos4_device_pd[PD_CAM].dev; s5p_device_fimc3.dev.parent = &exynos4_device_pd[PD_CAM].dev; s5p_device_mipi_csis0.dev.parent = &exynos4_device_pd[PD_CAM].dev; } MACHINE_START(NURI, "NURI") Loading
arch/arm/mach-exynos4/mach-origen.c +21 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ #include <plat/backlight.h> #include <plat/pd.h> #include <plat/fb.h> #include <plat/mfc.h> #include <mach/map.h> Loading Loading @@ -89,6 +90,8 @@ static struct s3c2410_uartcfg origen_uartcfgs[] __initdata = { static struct regulator_consumer_supply __initdata ldo3_consumer[] = { REGULATOR_SUPPLY("vdd11", "s5p-mipi-csis.0"), /* MIPI */ REGULATOR_SUPPLY("vdd", "exynos4-hdmi"), /* HDMI */ REGULATOR_SUPPLY("vdd_pll", "exynos4-hdmi"), /* HDMI */ }; static struct regulator_consumer_supply __initdata ldo6_consumer[] = { REGULATOR_SUPPLY("vdd18", "s5p-mipi-csis.0"), /* MIPI */ Loading @@ -98,6 +101,7 @@ static struct regulator_consumer_supply __initdata ldo7_consumer[] = { }; static struct regulator_consumer_supply __initdata ldo8_consumer[] = { REGULATOR_SUPPLY("vdd", "s5p-adc"), /* ADC */ REGULATOR_SUPPLY("vdd_osc", "exynos4-hdmi"), /* HDMI */ }; static struct regulator_consumer_supply __initdata ldo9_consumer[] = { REGULATOR_SUPPLY("dvdd", "swb-a31"), /* AR6003 WLAN & CSR 8810 BT */ Loading Loading @@ -598,9 +602,17 @@ static struct platform_device *origen_devices[] __initdata = { &s5p_device_fimd0, &s5p_device_hdmi, &s5p_device_i2c_hdmiphy, &s5p_device_mfc, &s5p_device_mfc_l, &s5p_device_mfc_r, &s5p_device_mixer, &exynos4_device_pd[PD_LCD0], &exynos4_device_pd[PD_TV], &exynos4_device_pd[PD_G3D], &exynos4_device_pd[PD_LCD1], &exynos4_device_pd[PD_CAM], &exynos4_device_pd[PD_GPS], &exynos4_device_pd[PD_MFC], &origen_device_gpiokeys, &origen_lcd_hv070wsa, }; Loading Loading @@ -638,6 +650,11 @@ static void __init origen_power_init(void) s3c_gpio_setpull(EXYNOS4_GPX0(4), S3C_GPIO_PULL_NONE); } static void __init origen_reserve(void) { s5p_mfc_reserve_mem(0x43000000, 8 << 20, 0x51000000, 8 << 20); } static void __init origen_machine_init(void) { origen_power_init(); Loading @@ -661,11 +678,14 @@ static void __init origen_machine_init(void) 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; s5p_device_mfc.dev.parent = &exynos4_device_pd[PD_MFC].dev; samsung_bl_set(&origen_bl_gpio_info, &origen_bl_data); } Loading @@ -676,4 +696,5 @@ MACHINE_START(ORIGEN, "ORIGEN") .map_io = origen_map_io, .init_machine = origen_machine_init, .timer = &exynos4_timer, .reserve = &origen_reserve, MACHINE_END
arch/arm/mach-s3c2410/include/mach/gpio-nrs.h +1 −1 Original line number Diff line number Diff line Loading @@ -53,7 +53,7 @@ #define S3C2410_GPIO_M_NR (32) /* technically 2. */ #if CONFIG_S3C_GPIO_SPACE != 0 #error CONFIG_S3C_GPIO_SPACE cannot be zero at the moment #error CONFIG_S3C_GPIO_SPACE cannot be nonzero at the moment #endif #define S3C2410_GPIO_NEXT(__gpio) \ Loading