diff options
author | Alexandru Gagniuc <alex.g@adaptrum.com> | 2017-02-06 19:17:33 -0800 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2017-07-11 22:49:39 -0400 |
commit | 409a81ddd46f444c2262bb10c921efc6967feff2 (patch) | |
tree | e20a1f6c0ae210505560179d12567ba6b6f593ab /arch | |
parent | 17a21e206a29d714d6da7b8583be6f041ba35d7e (diff) | |
download | u-boot-409a81ddd46f444c2262bb10c921efc6967feff2.tar.gz |
am33xx: board: Refactor USB initialization into separate function
The declaration of otg*_plat and otg*_board_data is guarded by
CONFIG_USB_MUSB_*, but their use in arch_misc_init is not. The
ifdef flow goes something like:
if (CONFIG_USB_MUSB_* && other_conditions)
declare usb_data
if (other_conditions)
use usb_data
Thus when CONFIG_USB_MUSB_* is not declared, we try to use the
data structures, but these structures aren't defined.
To fix this, move the USB initialization code into the same #ifdef
which guards the declaration of the data structures. Since the DM_USB
vs legacy cases are completely different, use two versions of
arch_misc_init(), for readability.
Signed-off-by: Alexandru Gagniuc <alex.g@adaptrum.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-omap2/am33xx/board.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/arch/arm/mach-omap2/am33xx/board.c b/arch/arm/mach-omap2/am33xx/board.c index db757d91fb..913a44ad64 100644 --- a/arch/arm/mach-omap2/am33xx/board.c +++ b/arch/arm/mach-omap2/am33xx/board.c @@ -213,11 +213,9 @@ static struct musb_hdrc_platform_data otg1_plat = { .board_data = &otg1_board_data, }; #endif -#endif int arch_misc_init(void) { -#ifndef CONFIG_DM_USB #ifdef CONFIG_AM335X_USB0 musb_register(&otg0_plat, &otg0_board_data, (void *)USB0_OTG_BASE); @@ -226,7 +224,13 @@ int arch_misc_init(void) musb_register(&otg1_plat, &otg1_board_data, (void *)USB1_OTG_BASE); #endif -#else + return 0; +} + +#else /* CONFIG_USB_MUSB_* && CONFIG_AM335X_USB* && !CONFIG_DM_USB */ + +int arch_misc_init(void) +{ struct udevice *dev; int ret; @@ -241,10 +245,12 @@ int arch_misc_init(void) return ret; } #endif -#endif + return 0; } +#endif /* CONFIG_USB_MUSB_* && CONFIG_AM335X_USB* && !CONFIG_DM_USB */ + #ifndef CONFIG_SKIP_LOWLEVEL_INIT /* * In the case of non-SPL based booting we'll want to call these |