Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 98a5f124 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge branch 'next/board-samsung' of...

Merge branch 'next/board-samsung' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/boards

Kukjin Kim <kgene.kim@samsung.com> writes:
   As there were discussions, some exynos4 boards have been updated because
   current dt cannot support all features for current board files on
   exynos4.

   Note, this should be merged after next/devel-samsung because some
   platform devices are defined in that.

* 'next/board-samsung' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung

:
  ARM: EXYNOS: Add FIMC device to SMDK4X12
  ARM: EXYNOS: Add MFC device to SMDK4X12
  ARM: EXYNOS: Add DRM device to SMDKV310
  ARM: EXYNOS: Add DRM device to Origen
  ARM: EXYNOS: Make BT platform data structure static in mach-origen.c file
  ARM: EXYNOS: Add DRM core support for NURI board
  ARM: EXYNOS: Add DRM core device support for Universal C210 board
  ARM: EXYNOS: Increase framebuffer virtual size for origen
  ARM: S3C64XX: Hook up new style regulator-regulator supplies on Cragganmore

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 81f96172 8e84e7d5
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -200,6 +200,7 @@ config MACH_SMDKV310
	select S3C_DEV_HSMMC2
	select S3C_DEV_HSMMC3
	select SAMSUNG_DEV_BACKLIGHT
	select EXYNOS_DEV_DRM
	select EXYNOS4_DEV_AHCI
	select SAMSUNG_DEV_KEYPAD
	select EXYNOS4_DEV_DMA
@@ -252,6 +253,7 @@ config MACH_UNIVERSAL_C210
	select S5P_DEV_ONENAND
	select S5P_DEV_TV
	select EXYNOS4_DEV_DMA
	select EXYNOS_DEV_DRM
	select EXYNOS4_SETUP_FIMD0
	select EXYNOS4_SETUP_I2C1
	select EXYNOS4_SETUP_I2C3
@@ -288,6 +290,7 @@ config MACH_NURI
	select S5P_DEV_USB_EHCI
	select S5P_SETUP_MIPIPHY
	select EXYNOS4_DEV_DMA
	select EXYNOS_DEV_DRM
	select EXYNOS4_SETUP_FIMC
	select EXYNOS4_SETUP_FIMD0
	select EXYNOS4_SETUP_I2C1
@@ -322,6 +325,7 @@ config MACH_ORIGEN
	select S5P_DEV_USB_EHCI
	select SAMSUNG_DEV_BACKLIGHT
	select SAMSUNG_DEV_PWM
	select EXYNOS_DEV_DRM
	select EXYNOS4_DEV_DMA
	select EXYNOS4_DEV_USB_OHCI
	select EXYNOS4_SETUP_FIMD0
@@ -342,6 +346,11 @@ config MACH_SMDK4212
	select S3C_DEV_I2C7
	select S3C_DEV_RTC
	select S3C_DEV_WDT
	select S5P_DEV_FIMC0
	select S5P_DEV_FIMC1
	select S5P_DEV_FIMC2
	select S5P_DEV_FIMC3
	select S5P_DEV_MFC
	select SAMSUNG_DEV_BACKLIGHT
	select SAMSUNG_DEV_KEYPAD
	select SAMSUNG_DEV_PWM
+33 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@
#include <linux/mmc/host.h>
#include <linux/fb.h>
#include <linux/pwm_backlight.h>
#include <drm/exynos_drm.h>

#include <video/platform_lcd.h>
#include <media/m5mols.h>
@@ -213,6 +214,29 @@ static struct platform_device nuri_gpio_keys = {
	},
};

#ifdef CONFIG_DRM_EXYNOS
static struct exynos_drm_fimd_pdata drm_fimd_pdata = {
	.panel = {
		.timing	= {
			.xres		= 1024,
			.yres		= 600,
			.hsync_len	= 40,
			.left_margin	= 79,
			.right_margin	= 200,
			.vsync_len	= 10,
			.upper_margin	= 10,
			.lower_margin	= 11,
			.refresh	= 60,
		},
	},
	.vidcon0	= VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB |
			  VIDCON0_CLKSEL_LCD,
	.vidcon1	= VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
	.default_win	= 3,
	.bpp		= 32,
};

#else
/* Frame Buffer */
static struct s3c_fb_pd_win nuri_fb_win0 = {
	.win_mode = {
@@ -239,6 +263,7 @@ static struct s3c_fb_platdata nuri_fb_pdata __initdata = {
	.vidcon1	= VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
	.setup_gpio	= exynos4_fimd0_gpio_setup_24bpp,
};
#endif

static void nuri_lcd_power_on(struct plat_lcd_data *pd, unsigned int power)
{
@@ -1302,6 +1327,9 @@ static struct platform_device *nuri_devices[] __initdata = {
	&cam_vdda_fixed_rdev,
	&cam_8m_12v_fixed_rdev,
	&exynos4_bus_devfreq,
#ifdef CONFIG_DRM_EXYNOS
	&exynos_device_drm,
#endif
};

static void __init nuri_map_io(void)
@@ -1334,7 +1362,12 @@ static void __init nuri_machine_init(void)
	i2c_register_board_info(9, i2c9_devs, ARRAY_SIZE(i2c9_devs));
	s3c_i2c6_set_platdata(&nuri_i2c6_platdata);

#ifdef CONFIG_DRM_EXYNOS
	s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
	exynos4_fimd0_gpio_setup_24bpp();
#else
	s5p_fimd0_set_platdata(&nuri_fb_pdata);
#endif

	nuri_camera_init();

+34 −1
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@
#include <mach/ohci.h>
#include <mach/map.h>

#include <drm/exynos_drm.h>
#include "common.h"

/* Following are default values for UCON, ULCON and UFCON UART registers */
@@ -583,6 +584,27 @@ static struct platform_device origen_lcd_hv070wsa = {
	.dev.platform_data	= &origen_lcd_hv070wsa_data,
};

#ifdef CONFIG_DRM_EXYNOS
static struct exynos_drm_fimd_pdata drm_fimd_pdata = {
	.panel	= {
		.timing	= {
			.left_margin	= 64,
			.right_margin	= 16,
			.upper_margin	= 64,
			.lower_margin	= 16,
			.hsync_len	= 48,
			.vsync_len	= 3,
			.xres		= 1024,
			.yres		= 600,
		},
	},
	.vidcon0	= VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
	.vidcon1	= VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC |
				VIDCON1_INV_VCLK,
	.default_win	= 0,
	.bpp		= 32,
};
#else
static struct s3c_fb_pd_win origen_fb_win0 = {
	.win_mode = {
		.left_margin	= 64,
@@ -596,6 +618,8 @@ static struct s3c_fb_pd_win origen_fb_win0 = {
	},
	.max_bpp		= 32,
	.default_bpp		= 24,
	.virtual_x		= 1024,
	.virtual_y		= 2 * 600,
};

static struct s3c_fb_platdata origen_lcd_pdata __initdata = {
@@ -605,9 +629,10 @@ static struct s3c_fb_platdata origen_lcd_pdata __initdata = {
				VIDCON1_INV_VCLK,
	.setup_gpio	= exynos4_fimd0_gpio_setup_24bpp,
};
#endif

/* Bluetooth rfkill gpio platform data */
struct rfkill_gpio_platform_data origen_bt_pdata = {
static struct rfkill_gpio_platform_data origen_bt_pdata = {
	.reset_gpio	= EXYNOS4_GPX2(2),
	.shutdown_gpio	= -1,
	.type		= RFKILL_TYPE_BLUETOOTH,
@@ -644,6 +669,9 @@ static struct platform_device *origen_devices[] __initdata = {
	&s5p_device_mfc_l,
	&s5p_device_mfc_r,
	&s5p_device_mixer,
#ifdef CONFIG_DRM_EXYNOS
	&exynos_device_drm,
#endif
	&exynos4_device_ohci,
	&origen_device_gpiokeys,
	&origen_lcd_hv070wsa,
@@ -719,7 +747,12 @@ static void __init origen_machine_init(void)
	s5p_tv_setup();
	s5p_i2c_hdmiphy_set_platdata(NULL);

#ifdef CONFIG_DRM_EXYNOS
	s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
	exynos4_fimd0_gpio_setup_24bpp();
#else
	s5p_fimd0_set_platdata(&origen_lcd_pdata);
#endif

	platform_add_devices(origen_devices, ARRAY_SIZE(origen_devices));

+16 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@
#include <plat/gpio-cfg.h>
#include <plat/iic.h>
#include <plat/keypad.h>
#include <plat/mfc.h>
#include <plat/regs-serial.h>
#include <plat/sdhci.h>

@@ -244,6 +245,14 @@ static struct platform_device *smdk4x12_devices[] __initdata = {
	&s3c_device_i2c7,
	&s3c_device_rtc,
	&s3c_device_wdt,
	&s5p_device_fimc0,
	&s5p_device_fimc1,
	&s5p_device_fimc2,
	&s5p_device_fimc3,
	&s5p_device_fimc_md,
	&s5p_device_mfc,
	&s5p_device_mfc_l,
	&s5p_device_mfc_r,
	&samsung_device_keypad,
};

@@ -256,6 +265,11 @@ static void __init smdk4x12_map_io(void)
	s3c24xx_init_uarts(smdk4x12_uartcfgs, ARRAY_SIZE(smdk4x12_uartcfgs));
}

static void __init smdk4x12_reserve(void)
{
	s5p_mfc_reserve_mem(0x43000000, 8 << 20, 0x51000000, 8 << 20);
}

static void __init smdk4x12_machine_init(void)
{
	s3c_i2c0_set_platdata(NULL);
@@ -293,6 +307,7 @@ MACHINE_START(SMDK4212, "SMDK4212")
	.init_machine	= smdk4x12_machine_init,
	.timer		= &exynos4_timer,
	.restart	= exynos4_restart,
	.reserve	= &smdk4x12_reserve,
MACHINE_END

MACHINE_START(SMDK4412, "SMDK4412")
@@ -305,4 +320,5 @@ MACHINE_START(SMDK4412, "SMDK4412")
	.init_machine	= smdk4x12_machine_init,
	.timer		= &exynos4_timer,
	.restart	= exynos4_restart,
	.reserve	= &smdk4x12_reserve,
MACHINE_END
+30 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@
#include <mach/map.h>
#include <mach/ohci.h>

#include <drm/exynos_drm.h>
#include "common.h"

/* Following are default values for UCON, ULCON and UFCON UART registers */
@@ -160,6 +161,26 @@ static struct platform_device smdkv310_lcd_lte480wv = {
	.dev.platform_data	= &smdkv310_lcd_lte480wv_data,
};

#ifdef CONFIG_DRM_EXYNOS
static struct exynos_drm_fimd_pdata drm_fimd_pdata = {
	.panel	= {
		.timing	= {
			.left_margin	= 13,
			.right_margin	= 8,
			.upper_margin	= 7,
			.lower_margin	= 5,
			.hsync_len	= 3,
			.vsync_len	= 1,
			.xres		= 800,
			.yres		= 480,
		},
	},
	.vidcon0	= VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
	.vidcon1	= VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
	.default_win	= 0,
	.bpp		= 32,
};
#else
static struct s3c_fb_pd_win smdkv310_fb_win0 = {
	.win_mode = {
		.left_margin	= 13,
@@ -181,6 +202,7 @@ static struct s3c_fb_platdata smdkv310_lcd0_pdata __initdata = {
	.vidcon1	= VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
	.setup_gpio	= exynos4_fimd0_gpio_setup_24bpp,
};
#endif

static struct resource smdkv310_smsc911x_resources[] = {
	[0] = {
@@ -273,6 +295,9 @@ static struct platform_device *smdkv310_devices[] __initdata = {
	&s5p_device_fimc_md,
	&s5p_device_g2d,
	&s5p_device_jpeg,
#ifdef CONFIG_DRM_EXYNOS
	&exynos_device_drm,
#endif
	&exynos4_device_ac97,
	&exynos4_device_i2s0,
	&exynos4_device_ohci,
@@ -364,7 +389,12 @@ static void __init smdkv310_machine_init(void)
	samsung_keypad_set_platdata(&smdkv310_keypad_data);

	samsung_bl_set(&smdkv310_bl_gpio_info, &smdkv310_bl_data);
#ifdef CONFIG_DRM_EXYNOS
	s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
	exynos4_fimd0_gpio_setup_24bpp();
#else
	s5p_fimd0_set_platdata(&smdkv310_lcd0_pdata);
#endif

	smdkv310_ehci_init();
	smdkv310_ohci_init();
Loading