ARM: add patch to correctly initialise USB on beagleboards
This commit is contained in:
parent
6f5fb13061
commit
34b6abb66f
|
@ -0,0 +1,132 @@
|
|||
From: "Govindraj.R" <govindraj.raja at ti.com>
|
||||
|
||||
All beagle boards rev > AX/BX have external usb hubs connected to ehci
|
||||
interface, external hub/peripheral uses a nreset sequence for which
|
||||
uart2_rx.gpio_147 pin in mux mode4(USB2HS_nRST) is used on all beagle
|
||||
boards expect rev Ax/BX.
|
||||
(Reference to all beagle boards rev schematics:
|
||||
http://beagleboard.org/hardware/design)
|
||||
|
||||
Initialising uart2 will lead to serial init taking over uart2_rx pin
|
||||
so init uart2_rx pin mux only for Beagle AX/BX rev boards.
|
||||
Dont init uart2 for all other boards allowing usb_ehci functionality.
|
||||
|
||||
To initialise individual uart port by id utilise and modify the existing
|
||||
available func. omap_serial_board_init.
|
||||
|
||||
Cc: Tony Lindgren <tony at atomide.com>
|
||||
Cc: Kevin Hilman <khilman at ti.com>
|
||||
Cc: Koen Kooi <koen at dominion.thruhere.net>
|
||||
Tested-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
|
||||
Tested-by: Robert Nelson <robertcnelson at gmail.com>
|
||||
Signed-off-by: Govindraj.R <govindraj.raja at ti.com>
|
||||
---
|
||||
arch/arm/mach-omap2/board-omap3beagle.c | 6 +++-
|
||||
arch/arm/mach-omap2/serial.c | 41 ++++++++++++++++-------------
|
||||
arch/arm/plat-omap/include/plat/serial.h | 3 +-
|
||||
3 files changed, 30 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
index 7ffcd28..19d6fb5 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
@@ -126,6 +126,7 @@ static void __init omap3_beagle_init_rev(void)
|
||||
beagle_config.mmc1_gpio_wp = 29;
|
||||
beagle_config.reset_gpio = 170;
|
||||
beagle_config.usr_button_gpio = 7;
|
||||
+ omap_serial_board_init(NULL, 1);
|
||||
break;
|
||||
case 6:
|
||||
printk(KERN_INFO "OMAP3 Beagle Rev: C1/C2/C3\n");
|
||||
@@ -528,7 +529,10 @@ static void __init omap3_beagle_init(void)
|
||||
platform_add_devices(omap3_beagle_devices,
|
||||
ARRAY_SIZE(omap3_beagle_devices));
|
||||
omap_display_init(&beagle_dss_data);
|
||||
- omap_serial_init();
|
||||
+ omap_serial_board_init(NULL, 0);
|
||||
+ omap_serial_board_init(NULL, 2);
|
||||
+ omap_serial_board_init(NULL, 3);
|
||||
+
|
||||
omap_sdrc_init(mt46h32m32lf6_sdrc_params,
|
||||
mt46h32m32lf6_sdrc_params);
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
|
||||
index f590afc..e7c0462 100644
|
||||
--- a/arch/arm/mach-omap2/serial.c
|
||||
+++ b/arch/arm/mach-omap2/serial.c
|
||||
@@ -393,30 +393,32 @@ void __init omap_serial_init_port(struct omap_board_data *bdata,
|
||||
/**
|
||||
* omap_serial_board_init() - initialize all supported serial ports
|
||||
* @info: platform specific data pointer
|
||||
+ * @port_id: uart port number to be initialised
|
||||
*
|
||||
- * Initializes all available UARTs as serial ports. Platforms
|
||||
+ * Initializes individual UARTs as serial ports. Platforms
|
||||
* can call this function when they want to have default behaviour
|
||||
- * for serial ports (e.g initialize them all as serial ports).
|
||||
+ * for serial ports (e.g initialize individual serial ports based on port id).
|
||||
*/
|
||||
-void __init omap_serial_board_init(struct omap_uart_port_info *info)
|
||||
+void __init omap_serial_board_init(struct omap_uart_port_info *info, u8 port_id)
|
||||
{
|
||||
struct omap_uart_state *uart;
|
||||
struct omap_board_data bdata;
|
||||
|
||||
- list_for_each_entry(uart, &uart_list, node) {
|
||||
- bdata.id = uart->num;
|
||||
- bdata.flags = 0;
|
||||
- bdata.pads = NULL;
|
||||
- bdata.pads_cnt = 0;
|
||||
-
|
||||
- if (cpu_is_omap44xx() || cpu_is_omap34xx())
|
||||
- omap_serial_fill_default_pads(&bdata);
|
||||
-
|
||||
- if (!info)
|
||||
- omap_serial_init_port(&bdata, NULL);
|
||||
- else
|
||||
- omap_serial_init_port(&bdata, &info[uart->num]);
|
||||
- }
|
||||
+ list_for_each_entry(uart, &uart_list, node)
|
||||
+ if (uart->num == port_id) {
|
||||
+ bdata.id = uart->num;
|
||||
+ bdata.flags = 0;
|
||||
+ bdata.pads = NULL;
|
||||
+ bdata.pads_cnt = 0;
|
||||
+
|
||||
+ if (!cpu_is_omap24xx())
|
||||
+ omap_serial_fill_default_pads(&bdata);
|
||||
+
|
||||
+ if (!info)
|
||||
+ omap_serial_init_port(&bdata, NULL);
|
||||
+ else
|
||||
+ omap_serial_init_port(&bdata, info);
|
||||
+ }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -428,5 +430,8 @@ void __init omap_serial_board_init(struct omap_uart_port_info *info)
|
||||
*/
|
||||
void __init omap_serial_init(void)
|
||||
{
|
||||
- omap_serial_board_init(NULL);
|
||||
+ struct omap_uart_state *uart;
|
||||
+
|
||||
+ list_for_each_entry(uart, &uart_list, node)
|
||||
+ omap_serial_board_init(NULL, uart->num);
|
||||
}
|
||||
diff --git a/arch/arm/plat-omap/include/plat/serial.h b/arch/arm/plat-omap/include/plat/serial.h
|
||||
index 198d1e6..043b251 100644
|
||||
--- a/arch/arm/plat-omap/include/plat/serial.h
|
||||
+++ b/arch/arm/plat-omap/include/plat/serial.h
|
||||
@@ -111,7 +111,8 @@ struct omap_uart_port_info;
|
||||
|
||||
extern void omap_serial_init(void);
|
||||
extern int omap_uart_can_sleep(void);
|
||||
-extern void omap_serial_board_init(struct omap_uart_port_info *platform_data);
|
||||
+extern void omap_serial_board_init(struct omap_uart_port_info *platform_data,
|
||||
+ u8 port_id);
|
||||
extern void omap_serial_init_port(struct omap_board_data *bdata,
|
||||
struct omap_uart_port_info *platform_data);
|
||||
#endif
|
||||
--
|
||||
1.7.5.4
|
|
@ -742,6 +742,7 @@ Patch21001: arm-smsc-support-reading-mac-address-from-device-tree.patch
|
|||
# ARM tegra
|
||||
Patch21004: arm-tegra-nvec-kconfig.patch
|
||||
Patch21005: arm-tegra-usb-no-reset-linux33.patch
|
||||
Patch21006: arm-beagle-usb-init.patch
|
||||
|
||||
# ARM highbank patches
|
||||
# Highbank clock functions need to be EXPORT for module builds
|
||||
|
@ -1361,6 +1362,7 @@ ApplyPatch nx-emu-remove-cpuinitdata-for-disable_nx-on-x86_32.patch
|
|||
ApplyPatch arm-smsc-support-reading-mac-address-from-device-tree.patch
|
||||
ApplyPatch arm-tegra-nvec-kconfig.patch
|
||||
ApplyPatch arm-tegra-usb-no-reset-linux33.patch
|
||||
ApplyPatch arm-beagle-usb-init.patch
|
||||
|
||||
#
|
||||
# bugfixes to drivers and filesystems
|
||||
|
@ -2415,6 +2417,10 @@ fi
|
|||
# '-' | |
|
||||
# '-'
|
||||
%changelog
|
||||
* Tue May 15 2012 Dennis Gilmore <dennis@ausil.us>
|
||||
- add patch to setup usb correctly on beagleboards
|
||||
- allows networking to work
|
||||
|
||||
* Tue May 15 2012 Josh Boyer <jwboyer@redhat.com>
|
||||
- Fixup atl1c register programming (rhbz 749276)
|
||||
|
||||
|
|
Loading…
Reference in New Issue