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

Commit f1d2c07d authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull arm-soc board specific updates from Arnd Bergmann:
 "These changes are all for individual board files.  In the long run,
  those files will largely go away, and the amount of changes appears to
  be continuously decreasing, which is a good sign.  This time around,
  changes are focused on tegra, omap and samsung."

Fix conflicts in arch/arm/mach-{omap2/common-board-devices.c,tegra/Makefile.boot}
as per the 'for-linus' branch.

* tag 'boards' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (39 commits)
  ARM: EXYNOS: Add leds status1 and status2 on Origen board
  ARM: S3C64XX: Mark most Cragganmore initdata devinitdata
  ARM: EXYNOS: Add missing .reserve field to SMDKC210
  ARM: EXYNOS: Add DRM device to SMDK4X12 board
  ARM: S3C64XX: Clean up after SPI driver platform data updates
  ARM: SAMSUNG: no need to set the value for clk_xusbxti when it is 24Mhz
  ARM: EXYNOS: Add framebuffer support for SMDK4X12
  ARM: EXYNOS: Add HSOTG support to SMDK4X12
  ARM: S5PV210: Add audio platform device in Goni board
  ARM: S5PV210: Add audio platform device in Aquila board
  ARM: EXYNOS: Add audio platform device in SMDKV310 board
  ARM: S3C64XX: Don't specify an irq_base for WM1192-EV1 board
  ARM: OMAP3: Fix omap3evm randconfig error introduced by VBUS support
  ARM: OMAP: board-omap4panda: MUX configuration for sys_nirq2
  ARM: OMAP: board-4430sdp: MUX configuration for sys_nirq2
  ARM: OMAP3530evm: set pendown_state and debounce time for ads7846
  ARM: omap3evm: enable VBUS switch for EHCI tranceiver
  ARM: OMAP3EVM: Adding USB internal LDOs board file
  ARM: OMAP3EVM: Add NAND flash definition
  ARM: OMAP3: cm-t35: add tvp5150 decoder support
  ...
parents a17f29a5 d003e098
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -683,6 +683,7 @@ config ARCH_TEGRA
	select MIGHT_HAVE_CACHE_L2X0
	select NEED_MACH_IO_H if PCI
	select ARCH_HAS_CPUFREQ
	select USE_OF
	help
	  This enables support for NVIDIA Tegra based systems (Tegra APX,
	  Tegra 6xx and Tegra 2 series).
+7 −0
Original line number Diff line number Diff line
@@ -207,6 +207,7 @@ config MACH_SMDKV310
	select S3C_DEV_HSMMC1
	select S3C_DEV_HSMMC2
	select S3C_DEV_HSMMC3
	select S3C_DEV_USB_HSOTG
	select SAMSUNG_DEV_BACKLIGHT
	select EXYNOS_DEV_DRM
	select EXYNOS_DEV_SYSMMU
@@ -326,6 +327,7 @@ config MACH_ORIGEN
	select S3C_DEV_WDT
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC2
	select S3C_DEV_USB_HSOTG
	select S5P_DEV_FIMC0
	select S5P_DEV_FIMC1
	select S5P_DEV_FIMC2
@@ -360,22 +362,27 @@ config MACH_SMDK4212
	select S3C_DEV_I2C3
	select S3C_DEV_I2C7
	select S3C_DEV_RTC
	select S3C_DEV_USB_HSOTG
	select S3C_DEV_WDT
	select S5P_DEV_FIMC0
	select S5P_DEV_FIMC1
	select S5P_DEV_FIMC2
	select S5P_DEV_FIMC3
	select S5P_DEV_FIMD0
	select S5P_DEV_MFC
	select SAMSUNG_DEV_BACKLIGHT
	select SAMSUNG_DEV_KEYPAD
	select SAMSUNG_DEV_PWM
	select EXYNOS_DEV_SYSMMU
	select EXYNOS_DEV_DMA
	select EXYNOS_DEV_DRM
	select EXYNOS4_SETUP_FIMD0
	select EXYNOS4_SETUP_I2C1
	select EXYNOS4_SETUP_I2C3
	select EXYNOS4_SETUP_I2C7
	select EXYNOS4_SETUP_KEYPAD
	select EXYNOS4_SETUP_SDHCI
	select EXYNOS4_SETUP_USB_PHY
	help
	  Machine support for Samsung SMDK4212

+1 −2
Original line number Diff line number Diff line
@@ -1341,9 +1341,8 @@ static struct platform_device *nuri_devices[] __initdata = {

static void __init nuri_map_io(void)
{
	clk_xusbxti.rate = 24000000;
	exynos_init_io(NULL, 0);
	s3c24xx_init_clocks(24000000);
	s3c24xx_init_clocks(clk_xusbxti.rate);
	s3c24xx_init_uarts(nuri_uartcfgs, ARRAY_SIZE(nuri_uartcfgs));
}

+37 −2
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@
*/

#include <linux/serial_core.h>
#include <linux/leds.h>
#include <linux/gpio.h>
#include <linux/mmc/host.h>
#include <linux/platform_device.h>
@@ -21,6 +22,7 @@
#include <linux/mfd/max8997.h>
#include <linux/lcd.h>
#include <linux/rfkill-gpio.h>
#include <linux/platform_data/s3c-hsotg.h>

#include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
@@ -498,6 +500,37 @@ static void __init origen_ohci_init(void)
	exynos4_ohci_set_platdata(pdata);
}

/* USB OTG */
static struct s3c_hsotg_plat origen_hsotg_pdata;

static struct gpio_led origen_gpio_leds[] = {
	{
		.name			= "origen::status1",
		.default_trigger	= "heartbeat",
		.gpio			= EXYNOS4_GPX1(3),
		.active_low		= 1,
	},
	{
		.name			= "origen::status2",
		.default_trigger	= "mmc0",
		.gpio			= EXYNOS4_GPX1(4),
		.active_low		= 1,
	},
};

static struct gpio_led_platform_data origen_gpio_led_info = {
	.leds		= origen_gpio_leds,
	.num_leds	= ARRAY_SIZE(origen_gpio_leds),
};

static struct platform_device origen_leds_gpio = {
	.name	= "leds-gpio",
	.id	= -1,
	.dev	= {
		.platform_data	= &origen_gpio_led_info,
	},
};

static struct gpio_keys_button origen_gpio_keys_table[] = {
	{
		.code			= KEY_MENU,
@@ -654,6 +687,7 @@ static struct platform_device *origen_devices[] __initdata = {
	&s3c_device_hsmmc0,
	&s3c_device_i2c0,
	&s3c_device_rtc,
	&s3c_device_usb_hsotg,
	&s3c_device_wdt,
	&s5p_device_ehci,
	&s5p_device_fimc0,
@@ -676,6 +710,7 @@ static struct platform_device *origen_devices[] __initdata = {
	&exynos4_device_ohci,
	&origen_device_gpiokeys,
	&origen_lcd_hv070wsa,
	&origen_leds_gpio,
	&origen_device_bluetooth,
};

@@ -711,7 +746,7 @@ static void s5p_tv_setup(void)
static void __init origen_map_io(void)
{
	exynos_init_io(NULL, 0);
	s3c24xx_init_clocks(24000000);
	s3c24xx_init_clocks(clk_xusbxti.rate);
	s3c24xx_init_uarts(origen_uartcfgs, ARRAY_SIZE(origen_uartcfgs));
}

@@ -743,7 +778,7 @@ static void __init origen_machine_init(void)

	origen_ehci_init();
	origen_ohci_init();
	clk_xusbxti.rate = 24000000;
	s3c_hsotg_set_platdata(&origen_hsotg_pdata);

	s5p_tv_setup();
	s5p_i2c_hdmiphy_set_platdata(NULL);
+77 −6
Original line number Diff line number Diff line
@@ -13,12 +13,14 @@
#include <linux/i2c.h>
#include <linux/input.h>
#include <linux/io.h>
#include <linux/lcd.h>
#include <linux/mfd/max8997.h>
#include <linux/mmc/host.h>
#include <linux/platform_device.h>
#include <linux/pwm_backlight.h>
#include <linux/regulator/machine.h>
#include <linux/serial_core.h>
#include <linux/platform_data/s3c-hsotg.h>

#include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
@@ -28,15 +30,18 @@
#include <plat/clock.h>
#include <plat/cpu.h>
#include <plat/devs.h>
#include <plat/fb.h>
#include <plat/gpio-cfg.h>
#include <plat/iic.h>
#include <plat/keypad.h>
#include <plat/mfc.h>
#include <plat/regs-fb.h>
#include <plat/regs-serial.h>
#include <plat/sdhci.h>

#include <mach/map.h>

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

/* Following are default values for UCON, ULCON and UFCON UART registers */
@@ -219,8 +224,10 @@ static struct platform_pwm_backlight_data smdk4x12_bl_data = {

static uint32_t smdk4x12_keymap[] __initdata = {
	/* KEY(row, col, keycode) */
	KEY(1, 0, KEY_D), KEY(1, 1, KEY_A), KEY(1, 2, KEY_B),
	KEY(1, 3, KEY_E), KEY(1, 4, KEY_C)
	KEY(1, 3, KEY_1), KEY(1, 4, KEY_2), KEY(1, 5, KEY_3),
	KEY(1, 6, KEY_4), KEY(1, 7, KEY_5),
	KEY(2, 5, KEY_D), KEY(2, 6, KEY_A), KEY(2, 7, KEY_B),
	KEY(0, 7, KEY_E), KEY(0, 5, KEY_C)
};

static struct matrix_keymap_data smdk4x12_keymap_data __initdata = {
@@ -230,10 +237,62 @@ static struct matrix_keymap_data smdk4x12_keymap_data __initdata = {

static struct samsung_keypad_platdata smdk4x12_keypad_data __initdata = {
	.keymap_data	= &smdk4x12_keymap_data,
	.rows		= 2,
	.cols		= 5,
	.rows		= 3,
	.cols		= 8,
};

#ifdef CONFIG_DRM_EXYNOS
static struct exynos_drm_fimd_pdata drm_fimd_pdata = {
	.panel	= {
		.timing	= {
			.left_margin	= 8,
			.right_margin	= 8,
			.upper_margin	= 6,
			.lower_margin	= 6,
			.hsync_len	= 6,
			.vsync_len	= 4,
			.xres		= 480,
			.yres		= 800,
		},
	},
	.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 smdk4x12_fb_win0 = {
	.xres		= 480,
	.yres		= 800,
	.virtual_x	= 480,
	.virtual_y	= 800 * 2,
	.max_bpp	= 32,
	.default_bpp	= 24,
};

static struct fb_videomode smdk4x12_lcd_timing = {
	.left_margin	= 8,
	.right_margin	= 8,
	.upper_margin	= 6,
	.lower_margin	= 6,
	.hsync_len	= 6,
	.vsync_len	= 4,
	.xres		= 480,
	.yres		= 800,
};

static struct s3c_fb_platdata smdk4x12_lcd_pdata __initdata = {
	.win[0]		= &smdk4x12_fb_win0,
	.vtiming	= &smdk4x12_lcd_timing,
	.vidcon0	= VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
	.vidcon1	= VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
	.setup_gpio	= exynos4_fimd0_gpio_setup_24bpp,
};
#endif

/* USB OTG */
static struct s3c_hsotg_plat smdk4x12_hsotg_pdata;

static struct platform_device *smdk4x12_devices[] __initdata = {
	&s3c_device_hsmmc2,
	&s3c_device_hsmmc3,
@@ -242,22 +301,25 @@ static struct platform_device *smdk4x12_devices[] __initdata = {
	&s3c_device_i2c3,
	&s3c_device_i2c7,
	&s3c_device_rtc,
	&s3c_device_usb_hsotg,
	&s3c_device_wdt,
	&s5p_device_fimc0,
	&s5p_device_fimc1,
	&s5p_device_fimc2,
	&s5p_device_fimc3,
	&s5p_device_fimc_md,
	&s5p_device_fimd0,
	&s5p_device_mfc,
	&s5p_device_mfc_l,
	&s5p_device_mfc_r,
#ifdef CONFIG_DRM_EXYNOS
	&exynos_device_drm,
#endif
	&samsung_device_keypad,
};

static void __init smdk4x12_map_io(void)
{
	clk_xusbxti.rate = 24000000;

	exynos_init_io(NULL, 0);
	s3c24xx_init_clocks(clk_xusbxti.rate);
	s3c24xx_init_uarts(smdk4x12_uartcfgs, ARRAY_SIZE(smdk4x12_uartcfgs));
@@ -293,6 +355,15 @@ static void __init smdk4x12_machine_init(void)
	s3c_sdhci2_set_platdata(&smdk4x12_hsmmc2_pdata);
	s3c_sdhci3_set_platdata(&smdk4x12_hsmmc3_pdata);

	s3c_hsotg_set_platdata(&smdk4x12_hsotg_pdata);

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

	platform_add_devices(smdk4x12_devices, ARRAY_SIZE(smdk4x12_devices));
}

Loading