diff options
Diffstat (limited to 'arch/arm/mach-ux500/board-u5500.c')
| -rw-r--r-- | arch/arm/mach-ux500/board-u5500.c | 27 | 
1 files changed, 17 insertions, 10 deletions
diff --git a/arch/arm/mach-ux500/board-u5500.c b/arch/arm/mach-ux500/board-u5500.c index 9de9e9c4dbb..0ff4be72a80 100644 --- a/arch/arm/mach-ux500/board-u5500.c +++ b/arch/arm/mach-ux500/board-u5500.c @@ -97,9 +97,9 @@ static struct i2c_board_info __initdata u5500_i2c2_devices[] = {  	},  }; -static void __init u5500_i2c_init(void) +static void __init u5500_i2c_init(struct device *parent)  { -	db5500_add_i2c2(&u5500_i2c2_data); +	db5500_add_i2c2(parent, &u5500_i2c2_data);  	i2c_register_board_info(2, ARRAY_AND_SIZE(u5500_i2c2_devices));  } @@ -126,20 +126,27 @@ static struct platform_device *u5500_platform_devices[] __initdata = {  	&ab5500_device,  }; -static void __init u5500_uart_init(void) +static void __init u5500_uart_init(struct device *parent)  { -	db5500_add_uart0(NULL); -	db5500_add_uart1(NULL); -	db5500_add_uart2(NULL); +	db5500_add_uart0(parent, NULL); +	db5500_add_uart1(parent, NULL); +	db5500_add_uart2(parent, NULL);  }  static void __init u5500_init_machine(void)  { -	u5500_init_devices(); +	struct device *parent = NULL; +	int i; + +	parent = u5500_init_devices();  	nmk_config_pins(u5500_pins, ARRAY_SIZE(u5500_pins)); -	u5500_i2c_init(); -	u5500_sdi_init(); -	u5500_uart_init(); + +	u5500_i2c_init(parent); +	u5500_sdi_init(parent); +	u5500_uart_init(parent); + +	for (i = 0; i < ARRAY_SIZE(u5500_platform_devices); i++) +		u5500_platform_devices[i]->dev.parent = parent;  	platform_add_devices(u5500_platform_devices,  		ARRAY_SIZE(u5500_platform_devices));  |