ARM: pxa: Access SMEMC via virtual addresses
This is important because on PXA3xx, the physical mapping of SMEMC registers differs from the one on PXA2xx. In order to get PCMCIA working on both PXA2xx and PXA320, the PCMCIA driver was adjusted accordingly as well. Also, various places in the kernel had to be patched to use __raw_read/__raw_write. Signed-off-by: Marek Vasut <marek.vasut@gmail.com> Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
This commit is contained in:

committed by
Eric Miao

orang tua
851982c1b6
melakukan
ad68bb9f7a
@@ -46,6 +46,7 @@
|
||||
#include <mach/tosa_bt.h>
|
||||
#include <mach/pxa2xx_spi.h>
|
||||
#include <mach/audio.h>
|
||||
#include <mach/smemc.h>
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
#include <mach/tosa.h>
|
||||
@@ -893,9 +894,11 @@ static void tosa_poweroff(void)
|
||||
|
||||
static void tosa_restart(char mode, const char *cmd)
|
||||
{
|
||||
uint32_t msc0 = __raw_readl(MSC0);
|
||||
|
||||
/* Bootloader magic for a reboot */
|
||||
if((MSC0 & 0xffff0000) == 0x7ff00000)
|
||||
MSC0 = (MSC0 & 0xffff) | 0x7ee00000;
|
||||
if((msc0 & 0xffff0000) == 0x7ff00000)
|
||||
__raw_writel((msc0 & 0xffff) | 0x7ee00000, MSC0);
|
||||
|
||||
tosa_poweroff();
|
||||
}
|
||||
|
Reference in New Issue
Block a user