linux/arch/arm/mach-omap2
Deepak K 0003450964 omap2/3/4: serial: errata i202: fix for MDR1 access
Errata i202 (OMAP3430 - 1.12, OMAP3630 - 1.6):
UART module MDR1 register access can cause a dummy underrun
condition which could result in a freeze in the case of IrDA
communication or if used as UART, corrupted data.

Workaround is as follows for everytime MDR1 register is changed:
* setup all required UART registers
* setup MDR1.MODE_SELECT bit field
* Wait 5 L4 clk cycles + 5 UART functional clock cycles
* Clear the Tx and RX fifo using FCR register

Note: The following step is not done as I am assuming it is not
needed due to reconfiguration being done and there is no halted
operation perse.
* Read if required, the RESUME register to resume halted operation

Based on an earlier patch at:
http://git.omapzoom.org/?p=kernel/omap.git;a=commitdiff;h=42d4a342c009bd9727c100abc8a4bc3063c22f0c

Signed-off-by: Deepak K <deepak.k@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-08-02 13:18:12 +03:00
..
include/mach omap4: Move SOC specific code from board file 2010-05-20 11:17:51 -07:00
board-2430sdp.c omap: mux: Mux 2430 USB0HS_STP in board-2430.c 2010-07-05 16:31:39 +03:00
board-3430sdp.c arm: omap: switch over to gpio_set_debounce 2010-05-27 09:12:42 -07:00
board-3630sdp.c omap: mux: Remove old mux code 2010-07-05 16:31:40 +03:00
board-4430sdp.c OMAP4: Add GPIO LED support for SDP board 2010-08-02 13:18:04 +03:00
board-am3517evm.c AM3517: rename the i2c boardinfo to make it more readable 2010-05-20 11:18:29 -07:00
board-apollon.c omap: mux: Convert 2420 platform init code to use new mux code 2010-07-05 16:31:40 +03:00
board-cm-t35.c omap3: Fix compile for board-cm-t35 2010-05-04 13:19:16 -07:00
board-devkit8000.c OMAP2: Devkit8000: Fix regulator for power supply 2010-07-05 17:04:42 +03:00
board-generic.c omap: mux: Remove old mux code 2010-07-05 16:31:40 +03:00
board-h4.c Removing dead MACH_OMAP2_H4_USB1 2010-07-05 17:03:59 +03:00
board-igep0020.c omap3: Fix EHCI port for IGEP v2 board 2010-04-23 15:35:11 -07:00
board-ldp.c arm: omap: switch over to gpio_set_debounce 2010-05-27 09:12:42 -07:00
board-n8x0.c omap: mux: Select POP package for N8X0 2010-07-05 16:31:38 +03:00
board-omap3beagle.c board-omap3-beagle: add DSS2 support 2010-05-18 15:06:07 +03:00
board-omap3evm.c arm: omap: switch over to gpio_set_debounce 2010-05-27 09:12:42 -07:00
board-omap3pandora.c omap3: pandora: add NAND and wifi support 2010-08-02 13:18:01 +03:00
board-omap3stalker.c omap: Stalker board: switch over to gpio_set_debounce 2010-06-09 13:53:05 +03:00
board-omap3touchbook.c arm: omap: switch over to gpio_set_debounce 2010-05-27 09:12:42 -07:00
board-omap4panda.c omap4: Add OMAP4 Panda Support 2010-08-02 13:18:05 +03:00
board-overo.c omap: Overo: Add support for second ethernet port 2010-05-20 10:53:55 -07:00
board-rx51-peripherals.c omap: tsl2563 ALS support for Nokia N900 2010-08-02 13:18:03 +03:00
board-rx51-sdram.c omap3: rx51: Add SDRAM init 2009-11-22 10:24:33 -08:00
board-rx51-video.c omap: mux: Remove old mux code 2010-07-05 16:31:40 +03:00
board-rx51.c OMAP: RX51: Add LCD Panel support 2010-05-18 15:06:02 +03:00
board-sdp-flash.c omap: board-sdp-flash.c: Fix typos in debug output 2010-04-23 15:37:24 -07:00
board-zoom2.c omap: zoom2: wlan board muxing 2010-08-02 13:18:00 +03:00
board-zoom3.c omap: zoom3: wlan board muxing 2010-08-02 13:18:00 +03:00
board-zoom-debugboard.c omap2/3: Fix DEBUG_LL for omap zoom2/3 2010-05-03 17:53:08 -07:00
board-zoom-peripherals.c omap3: zoom2/3 / 3630sdp: Don't init always all uarts 2010-03-15 16:34:17 -05:00
clkt2xxx_apll.c OMAP2 PRCM: convert OMAP2 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:04 -06:00
clkt2xxx_dpllcore.c OMAP2xxx clock: move the DPLL+CORE composite clock code into mach-omap2/clkt2xxx_dpllcore.c 2010-01-26 20:13:06 -07:00
clkt2xxx_osc.c OMAP2xxx clock: move osc_clk code into mach-omap2/clkt2xxx_osc.c 2010-01-28 18:13:49 -07:00
clkt2xxx_sys.c OMAP2xxx clock: move sys_clk code into mach-omap2/clkt2xxx_sys.c 2010-01-28 18:13:49 -07:00
clkt2xxx_virt_prcm_set.c OMAP2 clock: fix recursive spinlock attempt when CONFIG_CPU_FREQ=y 2010-05-20 12:31:14 -06:00
clkt34xx_dpll3m2.c OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07:00
clkt_clksel.c OMAP2+ clock: clean up clkt_clksel.c 2010-05-20 12:31:06 -06:00
clkt_dpll.c OMAP2/3/4 clock: fix DPLL multiplier value errors; also copyrights, includes, documentation 2010-02-24 12:15:03 -07:00
clock2xxx.c OMAP2/3 clock: combine OMAP2 & 3 boot-time MPU rate change code 2010-02-24 17:45:15 -07:00
clock2xxx.h OMAP2 clock: split OMAP2420, OMAP2430 clock data into their own files 2010-02-24 12:29:42 -07:00
clock3xxx_data.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2010-05-21 14:46:51 -07:00
clock3xxx.c OMAP2/3 clock: combine OMAP2 & 3 boot-time MPU rate change code 2010-02-24 17:45:15 -07:00
clock3xxx.h OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07:00
clock34xx.c OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07:00
clock34xx.h OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07:00
clock36xx.c OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07:00
clock36xx.h OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07:00
clock44xx_data.c OMAP4: clock: Fix multi-omap boot with reset un-used clocks 2010-06-16 19:01:33 +03:00
clock44xx.h OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07:00
clock2420_data.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2010-05-21 14:46:51 -07:00
clock2430_data.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2010-05-21 14:46:51 -07:00
clock2430.c OMAP2 clock: split OMAP2420, OMAP2430 clock data into their own files 2010-02-24 12:29:42 -07:00
clock3517.c OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07:00
clock3517.h OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07:00
clock_common_data.c OMAP3 clock: rename RATE_IN_343X, RATE_IN_3430ES2 to match reality 2010-05-20 12:31:07 -06:00
clock.c OMAP2+ clock: clean up clkt_clksel.c 2010-05-20 12:31:06 -06:00
clock.h OMAP2+ clock: clean up clkt_clksel.c 2010-05-20 12:31:06 -06:00
clockdomain.c OMAP2 PRCM: convert OMAP2 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:04 -06:00
clockdomains44xx.h OMAP4: PRM: Remove MPU internal code name and apply PRCM naming convention 2010-05-20 12:31:11 -06:00
clockdomains.h omap2: Convert ARCH_OMAP24XX to ARCH_OMAP2 2010-02-15 09:27:01 -08:00
cm4xxx.c OMAP4: hwmod & CM: Implement the omap4_cm_wait_module_ready function 2010-05-20 12:31:08 -06:00
cm44xx.h OMAP4: PRCM: Add offset defines for all CM registers 2010-05-20 12:31:12 -06:00
cm-regbits-24xx.h OMAP2 PRCM: convert OMAP2 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:04 -06:00
cm-regbits-34xx.h OMAP3 PRCM: convert OMAP3 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:05 -06:00
cm-regbits-44xx.h OMAP4: PRCM: Define shift macros as n instead of 1 << n 2010-01-29 10:14:22 -07:00
cm.c OMAP: CM: Move MAX_MODULE_READY_TIME to cm.h 2010-05-20 12:31:08 -06:00
cm.h OMAP4: hwmod & CM: Implement the omap4_cm_wait_module_ready function 2010-05-20 12:31:08 -06:00
control.c OMAP3 PRCM: convert OMAP3 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:05 -06:00
cpuidle34xx.c OMAP3: cpuidle: Add valid field into C-state parameter passing 2010-02-23 11:05:02 -08:00
devices.c Removing dead OMAP_STI 2010-07-05 17:03:58 +03:00
dpll3xxx.c OMAP2/3/4 clock: fix DPLL multiplier value errors; also copyrights, includes, documentation 2010-02-24 12:15:03 -07:00
emu.c omap2/3: Fix initcalls for multi-omap 2010-02-15 09:27:05 -08:00
gpmc-nand.c omap: fix a gpmc nand problem 2010-04-23 15:35:11 -07:00
gpmc-onenand.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
gpmc-smc91x.c omap: use smc91x_platdata to setup smc91x 2009-12-11 16:16:33 -08:00
gpmc.c omap2/3/4: gpmc: kill compile warning 2010-02-15 10:03:33 -08:00
hsmmc.c omap4: Adding PBIAS Configuration for MMC1 Controller 2010-05-20 11:21:22 -07:00
hsmmc.h omap_hsmmc: Allow for a shared VccQ 2010-02-15 10:03:34 -08:00
i2c.c omap: mux: Convert 2420 platform init code to use new mux code 2010-07-05 16:31:40 +03:00
id.c Merge branch 'for_2.6.34_b' of git://git.pwsan.com/linux-2.6 into omap-for-linus 2010-02-24 20:53:03 -08:00
io.c omap: mux: Remove old mux code 2010-07-05 16:31:40 +03:00
iommu2.c omap iommu: move iommu_disable at fault to the above layer 2010-06-29 07:55:07 +03:00
irq.c OMAP2/3: IRQ: ensure valid base address 2010-02-03 08:48:06 -08:00
Kconfig omap4: Add OMAP4 Panda Support 2010-08-02 13:18:05 +03:00
mailbox.c omap2/3/4: mailbox: remove compiler warning 2010-03-11 14:50:00 -08:00
Makefile omap4: Add OMAP4 Panda Support 2010-08-02 13:18:05 +03:00
Makefile.boot
mcbsp.c omap: mux: Convert 2420 platform init code to use new mux code 2010-07-05 16:31:40 +03:00
mux34xx.c omap: mux: Remove unncessary parens from mux34xx.c 2010-07-05 16:31:36 +03:00
mux34xx.h omap: mux: Add 36xx CBP package support 2009-12-11 16:16:33 -08:00
mux2420.c omap: mux: Add data for 2420 2010-07-05 16:31:36 +03:00
mux2420.h omap: mux: Add data for 2420 2010-07-05 16:31:36 +03:00
mux2430.c omap: mux: Add data for 2430 2010-07-05 16:31:36 +03:00
mux2430.h omap: mux: Add data for 2430 2010-07-05 16:31:36 +03:00
mux.c omap: mux: Remove old mux code 2010-07-05 16:31:40 +03:00
mux.h omap: mux: Add data for 2430 2010-07-05 16:31:36 +03:00
omap4-common.c omap4: Move SOC specific code from board file 2010-05-20 11:17:51 -07:00
omap44xx-smc.S omap4: Fix build break when used with gcc-4.4.1 (2009-q3) 2010-04-23 15:35:11 -07:00
omap_hwmod_3xxx_data.c OMAP: hwmod: Rename hwmod name for the MPU 2010-05-20 12:31:10 -06:00
omap_hwmod_2420_data.c OMAP: hwmod: Rename hwmod name for the MPU 2010-05-20 12:31:10 -06:00
omap_hwmod_2430_data.c OMAP: hwmod: Rename hwmod name for the MPU 2010-05-20 12:31:10 -06:00
omap_hwmod_common_data.c OMAP hwmod: add hwmod class support 2010-02-24 17:45:14 -07:00
omap_hwmod_common_data.h OMAP hwmod: add hwmod class support 2010-02-24 17:45:14 -07:00
omap_hwmod.c OMAP: hwmod: Fix the missing braces 2010-06-23 18:15:12 -06:00
omap-headsmp.S omap4: Fix build break when used with gcc-4.4.1 (2009-q3) 2010-04-23 15:35:11 -07:00
omap-iommu.c omap iommu: update ducati mmu irq define name 2010-06-29 07:55:08 +03:00
omap-smp.c omap4: Move SOC specific code from board file 2010-05-20 11:17:51 -07:00
opp2xxx.h omap2/3: Multiboot compile fixes to compile in omap2 and omap3 2010-02-15 09:26:55 -08:00
opp2420_data.c OMAP2xxx OPP: clean up comments in OPP data 2010-01-08 15:23:15 -07:00
opp2430_data.c OMAP2xxx OPP: clean up comments in OPP data 2010-01-08 15:23:15 -07:00
pm24xx.c omap: mux: Remove old mux code 2010-07-05 16:31:40 +03:00
pm34xx.c OMAP3: PM: fix IO daisy chain enable to use PM_WKEN reg 2010-06-10 15:37:41 +03:00
pm-debug.c OMAP3: PM: Add milliseconds interface to suspend wakeup timer 2010-05-12 09:39:00 -07:00
pm.h OMAP3: PM: Add milliseconds interface to suspend wakeup timer 2010-05-12 09:39:00 -07:00
powerdomain.c OMAP powerdomain, hwmod, omap_device: add some credits 2010-05-20 12:31:14 -06:00
powerdomains24xx.h omap2: Convert ARCH_OMAP24XX to ARCH_OMAP2 2010-02-15 09:27:01 -08:00
powerdomains34xx.h OMAP3 PM: Defining .pwrsts_logic_ret field for core power domain structure 2010-02-24 12:05:50 -07:00
powerdomains44xx.h OMAP4 powerdomain: Support LOWPOWERSTATECHANGE for powerdomains 2010-05-20 12:31:13 -06:00
powerdomains.h OMAP2+ powerdomains/clockdomains: prepare for multi-OMAP configs 2010-01-29 10:14:23 -07:00
prcm-common.h OMAP4: PRCM: Remove duplicate definition of base addresses 2010-05-20 12:31:12 -06:00
prcm.c OMAP2+ PRCM: convert remaining PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:05 -06:00
prm44xx.h OMAP4: PRCM: Add offset defines for all PRM registers 2010-05-20 12:31:12 -06:00
prm-regbits-24xx.h OMAP2 PRCM: convert OMAP2 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:04 -06:00
prm-regbits-34xx.h OMAP3 PRCM: convert OMAP3 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:05 -06:00
prm-regbits-44xx.h OMAP4: PRCM: Define shift macros as n instead of 1 << n 2010-01-29 10:14:22 -07:00
prm.h OMAP4: PRM: Remove MPU internal code name and apply PRCM naming convention 2010-05-20 12:31:11 -06:00
sdram-hynix-h8mbx00u0mer-0em.h omap3: zoom: Introduce zoom3 board support 2009-11-22 10:24:33 -08:00
sdram-micron-mt46h32m32lf-6.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sdram-numonyx-m65kxxxxam.h omap3: SDRC: add timing data for Numonyx M65KxxxxAM 2010-02-17 17:23:20 -08:00
sdram-qimonda-hyb18m512160af-6.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sdrc2xxx.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sdrc.c omap2/3/4: ioremap omap_globals module 2010-02-23 10:57:40 -08:00
sdrc.h OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
serial.c omap2/3/4: serial: errata i202: fix for MDR1 access 2010-08-02 13:18:12 +03:00
sleep24xx.S omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sleep34xx.S OMAP3: PM: Added support for L2 aux ctrl register save and restore 2010-02-23 11:05:07 -08:00
sram34xx.S OMAP3: SDRC: Place SDRC AC timing and MR changes in CORE DVFS SRAM code behind Kconfig 2009-12-11 17:00:42 -07:00
sram242x.S omap: Split OMAP2_IO_ADDRESS to L3 and L4 2009-10-19 15:25:31 -07:00
sram243x.S omap: Split OMAP2_IO_ADDRESS to L3 and L4 2009-10-19 15:25:31 -07:00
timer-gp.c OMAP4: clock: Remove clock hacks from timer-gp.c 2010-02-24 17:45:17 -07:00
timer-mpu.c omap4: Use irq line defines from irq-44xx.h 2010-02-23 15:29:08 -08:00
usb-ehci.c omap: mux: Remove old mux code 2010-07-05 16:31:40 +03:00
usb-fs.c omap: mux: Make omap2 FS USB code use new mux functions 2010-07-05 16:31:38 +03:00
usb-musb.c omap: mux: Remove old mux code 2010-07-05 16:31:40 +03:00
usb-tusb6010.c omap: mux: Convert 2420 platform init code to use new mux code 2010-07-05 16:31:40 +03:00