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

Commit eed1e576 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge branch 'stericsson/cleanup' into next/timer



The timer and cleanup branches from stericsson conflict,
so I'm merging them here.

Conflicts:
	arch/arm/mach-ux500/Makefile
	arch/arm/mach-ux500/cpu.c

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 65af7c46 76525ec2
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@

obj-y				:= clock.o cpu.o devices.o devices-common.o \
				   id.o usb.o timer.o
obj-$(CONFIG_CACHE_L2X0)	+= cache-l2x0.o
obj-$(CONFIG_UX500_SOC_DB5500)	+= cpu-db5500.o dma-db5500.o
obj-$(CONFIG_UX500_SOC_DB8500)	+= cpu-db8500.o devices-db8500.o
obj-$(CONFIG_MACH_U8500)	+= board-mop500.o board-mop500-sdi.o \
+23 −11
Original line number Diff line number Diff line
@@ -153,7 +153,7 @@ static pin_cfg_t mop500_pins_default[] = {
	GPIO7_U1_RTSn	| PIN_OUTPUT_HIGH,
};

static pin_cfg_t mop500_pins_hrefv60[] = {
static pin_cfg_t hrefv60_pins[] = {
	/* WLAN */
	GPIO4_GPIO		| PIN_INPUT_PULLUP,/* WLAN_IRQ */
	GPIO85_GPIO		| PIN_OUTPUT_LOW,/* WLAN_ENA */
@@ -280,13 +280,25 @@ void __init mop500_pins_init(void)
{
	nmk_config_pins(mop500_pins_common,
			ARRAY_SIZE(mop500_pins_common));
	if (machine_is_hrefv60())
		nmk_config_pins(mop500_pins_hrefv60,
				ARRAY_SIZE(mop500_pins_hrefv60));
	else if (machine_is_snowball())
		nmk_config_pins(snowball_pins,
				ARRAY_SIZE(snowball_pins));
	else

	nmk_config_pins(mop500_pins_default,
			ARRAY_SIZE(mop500_pins_default));
}

void __init snowball_pins_init(void)
{
	nmk_config_pins(mop500_pins_common,
			ARRAY_SIZE(mop500_pins_common));

	nmk_config_pins(snowball_pins,
			ARRAY_SIZE(snowball_pins));
}

void __init hrefv60_pins_init(void)
{
	nmk_config_pins(mop500_pins_common,
			ARRAY_SIZE(mop500_pins_common));

	nmk_config_pins(hrefv60_pins,
			ARRAY_SIZE(hrefv60_pins));
}
+35 −17
Original line number Diff line number Diff line
@@ -216,30 +216,48 @@ void __init mop500_sdi_init(void)
	/* PoP:ed eMMC on top of DB8500 v1.0 has problems with high speed */
	if (!cpu_is_u8500v10())
		mop500_sdi2_data.capabilities |= MMC_CAP_MMC_HIGHSPEED;
	/* sdi2 on snowball is in ATL_B mode for FSMC (LAN) */
	if (!machine_is_snowball())

	db8500_add_sdi2(&mop500_sdi2_data, periphid);

	/* On-board eMMC */
	db8500_add_sdi4(&mop500_sdi4_data, periphid);

	if (machine_is_hrefv60() || machine_is_snowball()) {
		if (machine_is_hrefv60()) {
			mop500_sdi0_data.gpio_cd = HREFV60_SDMMC_CD_GPIO;
			sdi0_en = HREFV60_SDMMC_EN_GPIO;
			sdi0_vsel = HREFV60_SDMMC_1V8_3V_GPIO;
		} else if (machine_is_snowball()) {
	/*
	 * On boards with the TC35892 GPIO expander, sdi0 will finally
	 * be added when the TC35892 initializes and calls
	 * mop500_sdi_tc35892_init() above.
	 */
}

void __init snowball_sdi_init(void)
{
	u32 periphid = 0x10480180;

	mop500_sdi2_data.capabilities |= MMC_CAP_MMC_HIGHSPEED;

	/* On-board eMMC */
	db8500_add_sdi4(&mop500_sdi4_data, periphid);

	mop500_sdi0_data.gpio_cd = SNOWBALL_SDMMC_CD_GPIO;
	mop500_sdi0_data.cd_invert = true;
	sdi0_en = SNOWBALL_SDMMC_EN_GPIO;
	sdi0_vsel = SNOWBALL_SDMMC_1V8_3V_GPIO;
		}
	sdi0_configure();
}

	/*
	 * On boards with the TC35892 GPIO expander, sdi0 will finally
	 * be added when the TC35892 initializes and calls
	 * mop500_sdi_tc35892_init() above.
	 */
void __init hrefv60_sdi_init(void)
{
	u32 periphid = 0x10480180;

	mop500_sdi2_data.capabilities |= MMC_CAP_MMC_HIGHSPEED;

	db8500_add_sdi2(&mop500_sdi2_data, periphid);

	/* On-board eMMC */
	db8500_add_sdi4(&mop500_sdi4_data, periphid);

	mop500_sdi0_data.gpio_cd = HREFV60_SDMMC_CD_GPIO;
	sdi0_en = HREFV60_SDMMC_EN_GPIO;
	sdi0_vsel = HREFV60_SDMMC_1V8_3V_GPIO;
	sdi0_configure();
}
+61 −17
Original line number Diff line number Diff line
@@ -603,26 +603,70 @@ static void __init mop500_init_machine(void)
{
	int i2c0_devs;

	mop500_gpio_keys[0].gpio = GPIO_PROX_SENSOR;

	u8500_init_devices();

	mop500_pins_init();

	platform_add_devices(mop500_platform_devs,
			ARRAY_SIZE(mop500_platform_devs));

	mop500_i2c_init();
	mop500_sdi_init();
	mop500_spi_init();
	mop500_uart_init();

	i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices);

	i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs);
	i2c_register_board_info(2, mop500_i2c2_devices,
				ARRAY_SIZE(mop500_i2c2_devices));

	/* This board has full regulator constraints */
	regulator_has_full_constraints();
}

static void __init snowball_init_machine(void)
{
	int i2c0_devs;

	u8500_init_devices();

	snowball_pins_init();

	platform_add_devices(snowball_platform_devs,
			ARRAY_SIZE(snowball_platform_devs));

	mop500_i2c_init();
	snowball_sdi_init();
	mop500_spi_init();
	mop500_uart_init();

	i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices);
	i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs);
	i2c_register_board_info(2, mop500_i2c2_devices,
				ARRAY_SIZE(mop500_i2c2_devices));

	/* This board has full regulator constraints */
	regulator_has_full_constraints();
}

static void __init hrefv60_init_machine(void)
{
	int i2c0_devs;

	/*
	 * The HREFv60 board removed a GPIO expander and routed
	 * all these GPIO pins to the internal GPIO controller
	 * instead.
	 */
	if (!machine_is_snowball()) {
		if (machine_is_hrefv60())
	mop500_gpio_keys[0].gpio = HREFV60_PROX_SENSE_GPIO;
		else
			mop500_gpio_keys[0].gpio = GPIO_PROX_SENSOR;
	}

	u8500_init_devices();

	mop500_pins_init();
	hrefv60_pins_init();

	if (machine_is_snowball())
		platform_add_devices(snowball_platform_devs,
					ARRAY_SIZE(snowball_platform_devs));
	else
	platform_add_devices(mop500_platform_devs,
			ARRAY_SIZE(mop500_platform_devs));

@@ -632,7 +676,7 @@ static void __init mop500_init_machine(void)
	mop500_uart_init();

	i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices);
	if (machine_is_hrefv60())

	i2c0_devs -= NUM_PRE_V60_I2C0_DEVICES;

	i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs);
@@ -658,7 +702,7 @@ MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+")
	.map_io		= u8500_map_io,
	.init_irq	= ux500_init_irq,
	.timer		= &ux500_timer,
	.init_machine	= mop500_init_machine,
	.init_machine	= hrefv60_init_machine,
MACHINE_END

MACHINE_START(SNOWBALL, "Calao Systems Snowball platform")
@@ -667,5 +711,5 @@ MACHINE_START(SNOWBALL, "Calao Systems Snowball platform")
	.init_irq	= ux500_init_irq,
	/* we re-use nomadik timer here */
	.timer		= &ux500_timer,
	.init_machine	= mop500_init_machine,
	.init_machine	= snowball_init_machine,
MACHINE_END
+3 −0
Original line number Diff line number Diff line
@@ -40,10 +40,13 @@
struct i2c_board_info;

extern void mop500_sdi_init(void);
extern void snowball_sdi_init(void);
extern void mop500_sdi_tc35892_init(void);
void __init mop500_u8500uib_init(void);
void __init mop500_stuib_init(void);
void __init mop500_pins_init(void);
void __init hrefv60_pins_init(void);
void __init snowball_pins_init(void);

void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info,
		unsigned n);
Loading