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

Commit e82c6106 authored by Haavard Skinnemoen's avatar Haavard Skinnemoen
Browse files

avr32: Fix GPIO initcall breakage



Add essential system devices, including GPIO controllers, automatically
at core_initcall time. This ensures that the devices are there when the
PIO driver gets initialized at postcore_initcall, fixing a bug exposed
by commit d6634db8 "avr32: Use
platform_driver_probe for pio platform driver".

Signed-off-by: default avatarHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
parent e3f91ca4
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -172,8 +172,6 @@ static int __init atngw100_init(void)
	 * reserve any pins for it.
	 */

	at32_add_system_devices();

	at32_add_device_usart(0);

	set_hw_addr(at32_add_device_eth(0, &eth_data[0]));
+0 −2
Original line number Diff line number Diff line
@@ -305,8 +305,6 @@ static int __init atstk1002_init(void)
	at32_reserve_pin(GPIO_PIN_PE(15));	/* DATA[31]	*/
	at32_reserve_pin(GPIO_PIN_PE(26));	/* SDCS		*/

	at32_add_system_devices();

#ifdef CONFIG_BOARD_ATSTK1006
	smc_set_timing(&nand_config, &nand_timing);
	smc_set_configuration(3, &nand_config);
+0 −2
Original line number Diff line number Diff line
@@ -149,8 +149,6 @@ static int __init atstk1003_init(void)
	at32_reserve_pin(GPIO_PIN_PE(15));	/* DATA[31]	*/
	at32_reserve_pin(GPIO_PIN_PE(26));	/* SDCS		*/

	at32_add_system_devices();

#ifdef	CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
	at32_add_device_usart(1);
#else
+0 −2
Original line number Diff line number Diff line
@@ -132,8 +132,6 @@ void __init setup_board(void)

static int __init atstk1004_init(void)
{
	at32_add_system_devices();

#ifdef	CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
	at32_add_device_usart(1);
#else
+4 −1
Original line number Diff line number Diff line
@@ -813,7 +813,7 @@ static struct resource pio4_resource[] = {
DEFINE_DEV(pio, 4);
DEV_CLK(mck, pio4, pba, 14);

void __init at32_add_system_devices(void)
static int __init system_device_init(void)
{
	platform_device_register(&at32_pm0_device);
	platform_device_register(&at32_intc0_device);
@@ -832,7 +832,10 @@ void __init at32_add_system_devices(void)
	platform_device_register(&pio2_device);
	platform_device_register(&pio3_device);
	platform_device_register(&pio4_device);

	return 0;
}
core_initcall(system_device_init);

/* --------------------------------------------------------------------
 *  PSIF
Loading