Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
OpenBMC Firmware
talos-obmc-linux
Commits
6fbfddcb
Commit
6fbfddcb
authored
19 years ago
by
Greg KH
Committed by
Greg Kroah-Hartman
19 years ago
Browse files
Options
Download
Plain Diff
Merge ../bleed-2.6
parents
1a222bca
27d1097d
Changes
591
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
328 additions
and
90 deletions
+328
-90
arch/arm/mach-iop3xx/iop321-setup.c
arch/arm/mach-iop3xx/iop321-setup.c
+11
-7
arch/arm/mach-iop3xx/iop331-setup.c
arch/arm/mach-iop3xx/iop331-setup.c
+11
-7
arch/arm/mach-iop3xx/iq31244-mm.c
arch/arm/mach-iop3xx/iq31244-mm.c
+6
-4
arch/arm/mach-iop3xx/iq80321-mm.c
arch/arm/mach-iop3xx/iq80321-mm.c
+6
-4
arch/arm/mach-ixp2000/core.c
arch/arm/mach-ixp2000/core.c
+8
-8
arch/arm/mach-ixp2000/ixdp2x00.c
arch/arm/mach-ixp2000/ixdp2x00.c
+1
-1
arch/arm/mach-ixp2000/ixdp2x01.c
arch/arm/mach-ixp2000/ixdp2x01.c
+1
-1
arch/arm/mach-ixp4xx/common.c
arch/arm/mach-ixp4xx/common.c
+4
-4
arch/arm/mach-lh7a40x/arch-kev7a400.c
arch/arm/mach-lh7a40x/arch-kev7a400.c
+11
-2
arch/arm/mach-lh7a40x/arch-lpd7a40x.c
arch/arm/mach-lh7a40x/arch-lpd7a40x.c
+71
-15
arch/arm/mach-omap1/board-innovator.c
arch/arm/mach-omap1/board-innovator.c
+6
-2
arch/arm/mach-omap1/board-perseus2.c
arch/arm/mach-omap1/board-perseus2.c
+6
-2
arch/arm/mach-omap1/io.c
arch/arm/mach-omap1/io.c
+39
-7
arch/arm/mach-pxa/generic.c
arch/arm/mach-pxa/generic.c
+72
-10
arch/arm/mach-pxa/idp.c
arch/arm/mach-pxa/idp.c
+11
-10
arch/arm/mach-pxa/lubbock.c
arch/arm/mach-pxa/lubbock.c
+26
-1
arch/arm/mach-pxa/mainstone.c
arch/arm/mach-pxa/mainstone.c
+31
-1
arch/arm/mach-pxa/pxa25x.c
arch/arm/mach-pxa/pxa25x.c
+1
-1
arch/arm/mach-pxa/pxa27x.c
arch/arm/mach-pxa/pxa27x.c
+1
-1
arch/arm/mach-pxa/sleep.S
arch/arm/mach-pxa/sleep.S
+5
-2
No files found.
arch/arm/mach-iop3xx/iop321-setup.c
View file @
6fbfddcb
...
...
@@ -38,13 +38,17 @@
* Standard IO mapping for all IOP321 based systems
*/
static
struct
map_desc
iop321_std_desc
[]
__initdata
=
{
/* virtual physical length type */
/* mem mapped registers */
{
IOP321_VIRT_MEM_BASE
,
IOP321_PHYS_MEM_BASE
,
0x00002000
,
MT_DEVICE
},
/* PCI IO space */
{
IOP321_PCI_LOWER_IO_VA
,
IOP321_PCI_LOWER_IO_PA
,
IOP321_PCI_IO_WINDOW_SIZE
,
MT_DEVICE
}
{
/* mem mapped registers */
.
virtual
=
IOP321_VIRT_MEM_BASE
,
.
pfn
=
__phys_to_pfn
(
IOP321_PHYS_MEM_BASE
),
.
length
=
0x00002000
,
.
type
=
MT_DEVICE
},
{
/* PCI IO space */
.
virtual
=
IOP321_PCI_LOWER_IO_VA
,
.
pfn
=
__phys_to_pfn
(
IOP321_PCI_LOWER_IO_PA
),
.
length
=
IOP321_PCI_IO_WINDOW_SIZE
,
.
type
=
MT_DEVICE
}
};
#ifdef CONFIG_ARCH_IQ80321
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-iop3xx/iop331-setup.c
View file @
6fbfddcb
...
...
@@ -37,13 +37,17 @@
* Standard IO mapping for all IOP331 based systems
*/
static
struct
map_desc
iop331_std_desc
[]
__initdata
=
{
/* virtual physical length type */
/* mem mapped registers */
{
IOP331_VIRT_MEM_BASE
,
IOP331_PHYS_MEM_BASE
,
0x00002000
,
MT_DEVICE
},
/* PCI IO space */
{
IOP331_PCI_LOWER_IO_VA
,
IOP331_PCI_LOWER_IO_PA
,
IOP331_PCI_IO_WINDOW_SIZE
,
MT_DEVICE
}
{
/* mem mapped registers */
.
virtual
=
IOP331_VIRT_MEM_BASE
,
.
pfn
=
__phys_to_pfn
(
IOP331_PHYS_MEM_BASE
),
.
length
=
0x00002000
,
.
type
=
MT_DEVICE
},
{
/* PCI IO space */
.
virtual
=
IOP331_PCI_LOWER_IO_VA
,
.
pfn
=
__phys_to_pfn
(
IOP331_PCI_LOWER_IO_PA
),
.
length
=
IOP331_PCI_IO_WINDOW_SIZE
,
.
type
=
MT_DEVICE
}
};
static
struct
uart_port
iop331_serial_ports
[]
=
{
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-iop3xx/iq31244-mm.c
View file @
6fbfddcb
...
...
@@ -29,10 +29,12 @@
* We use RedBoot's setup for the onboard devices.
*/
static
struct
map_desc
iq31244_io_desc
[]
__initdata
=
{
/* virtual physical length type */
/* on-board devices */
{
IQ31244_UART
,
IQ31244_UART
,
0x00100000
,
MT_DEVICE
}
{
/* on-board devices */
.
virtual
=
IQ31244_UART
,
.
pfn
=
__phys_to_pfn
(
IQ31244_UART
),
.
length
=
0x00100000
,
.
type
=
MT_DEVICE
}
};
void
__init
iq31244_map_io
(
void
)
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-iop3xx/iq80321-mm.c
View file @
6fbfddcb
...
...
@@ -29,10 +29,12 @@
* We use RedBoot's setup for the onboard devices.
*/
static
struct
map_desc
iq80321_io_desc
[]
__initdata
=
{
/* virtual physical length type */
/* on-board devices */
{
IQ80321_UART
,
IQ80321_UART
,
0x00100000
,
MT_DEVICE
}
{
/* on-board devices */
.
virtual
=
IQ80321_UART
,
.
pfn
=
__phys_to_pfn
(
IQ80321_UART
),
.
length
=
0x00100000
,
.
type
=
MT_DEVICE
}
};
void
__init
iq80321_map_io
(
void
)
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-ixp2000/core.c
View file @
6fbfddcb
...
...
@@ -83,42 +83,42 @@ void ixp2000_release_slowport(struct slowport_cfg *old_cfg)
static
struct
map_desc
ixp2000_io_desc
[]
__initdata
=
{
{
.
virtual
=
IXP2000_CAP_VIRT_BASE
,
.
p
hysical
=
IXP2000_CAP_PHYS_BASE
,
.
p
fn
=
__phys_to_pfn
(
IXP2000_CAP_PHYS_BASE
)
,
.
length
=
IXP2000_CAP_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
IXP2000_INTCTL_VIRT_BASE
,
.
p
hysical
=
IXP2000_INTCTL_PHYS_BASE
,
.
p
fn
=
__phys_to_pfn
(
IXP2000_INTCTL_PHYS_BASE
)
,
.
length
=
IXP2000_INTCTL_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
IXP2000_PCI_CREG_VIRT_BASE
,
.
p
hysical
=
IXP2000_PCI_CREG_PHYS_BASE
,
.
p
fn
=
__phys_to_pfn
(
IXP2000_PCI_CREG_PHYS_BASE
)
,
.
length
=
IXP2000_PCI_CREG_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
IXP2000_PCI_CSR_VIRT_BASE
,
.
p
hysical
=
IXP2000_PCI_CSR_PHYS_BASE
,
.
p
fn
=
__phys_to_pfn
(
IXP2000_PCI_CSR_PHYS_BASE
)
,
.
length
=
IXP2000_PCI_CSR_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
IXP2000_MSF_VIRT_BASE
,
.
p
hysical
=
IXP2000_MSF_PHYS_BASE
,
.
p
fn
=
__phys_to_pfn
(
IXP2000_MSF_PHYS_BASE
)
,
.
length
=
IXP2000_MSF_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
IXP2000_PCI_IO_VIRT_BASE
,
.
p
hysical
=
IXP2000_PCI_IO_PHYS_BASE
,
.
p
fn
=
__phys_to_pfn
(
IXP2000_PCI_IO_PHYS_BASE
)
,
.
length
=
IXP2000_PCI_IO_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
IXP2000_PCI_CFG0_VIRT_BASE
,
.
p
hysical
=
IXP2000_PCI_CFG0_PHYS_BASE
,
.
p
fn
=
__phys_to_pfn
(
IXP2000_PCI_CFG0_PHYS_BASE
)
,
.
length
=
IXP2000_PCI_CFG0_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
IXP2000_PCI_CFG1_VIRT_BASE
,
.
p
hysical
=
IXP2000_PCI_CFG1_PHYS_BASE
,
.
p
fn
=
__phys_to_pfn
(
IXP2000_PCI_CFG1_PHYS_BASE
)
,
.
length
=
IXP2000_PCI_CFG1_SIZE
,
.
type
=
MT_DEVICE
}
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-ixp2000/ixdp2x00.c
View file @
6fbfddcb
...
...
@@ -176,7 +176,7 @@ void ixdp2x00_init_irq(volatile unsigned long *stat_reg, volatile unsigned long
*************************************************************************/
static
struct
map_desc
ixdp2x00_io_desc
__initdata
=
{
.
virtual
=
IXDP2X00_VIRT_CPLD_BASE
,
.
p
hysical
=
IXDP2X00_PHYS_CPLD_BASE
,
.
p
fn
=
__phys_to_pfn
(
IXDP2X00_PHYS_CPLD_BASE
)
,
.
length
=
IXDP2X00_CPLD_SIZE
,
.
type
=
MT_DEVICE
};
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-ixp2000/ixdp2x01.c
View file @
6fbfddcb
...
...
@@ -136,7 +136,7 @@ void __init ixdp2x01_init_irq(void)
*************************************************************************/
static
struct
map_desc
ixdp2x01_io_desc
__initdata
=
{
.
virtual
=
IXDP2X01_VIRT_CPLD_BASE
,
.
p
hysical
=
IXDP2X01_PHYS_CPLD_BASE
,
.
p
fn
=
__phys_to_pfn
(
IXDP2X01_PHYS_CPLD_BASE
)
,
.
length
=
IXDP2X01_CPLD_REGION_SIZE
,
.
type
=
MT_DEVICE
};
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-ixp4xx/common.c
View file @
6fbfddcb
...
...
@@ -44,24 +44,24 @@
static
struct
map_desc
ixp4xx_io_desc
[]
__initdata
=
{
{
/* UART, Interrupt ctrl, GPIO, timers, NPEs, MACs, USB .... */
.
virtual
=
IXP4XX_PERIPHERAL_BASE_VIRT
,
.
p
hysical
=
IXP4XX_PERIPHERAL_BASE_PHYS
,
.
p
fn
=
__phys_to_pfn
(
IXP4XX_PERIPHERAL_BASE_PHYS
)
,
.
length
=
IXP4XX_PERIPHERAL_REGION_SIZE
,
.
type
=
MT_DEVICE
},
{
/* Expansion Bus Config Registers */
.
virtual
=
IXP4XX_EXP_CFG_BASE_VIRT
,
.
p
hysical
=
IXP4XX_EXP_CFG_BASE_PHYS
,
.
p
fn
=
__phys_to_pfn
(
IXP4XX_EXP_CFG_BASE_PHYS
)
,
.
length
=
IXP4XX_EXP_CFG_REGION_SIZE
,
.
type
=
MT_DEVICE
},
{
/* PCI Registers */
.
virtual
=
IXP4XX_PCI_CFG_BASE_VIRT
,
.
p
hysical
=
IXP4XX_PCI_CFG_BASE_PHYS
,
.
p
fn
=
__phys_to_pfn
(
IXP4XX_PCI_CFG_BASE_PHYS
)
,
.
length
=
IXP4XX_PCI_CFG_REGION_SIZE
,
.
type
=
MT_DEVICE
},
#ifdef CONFIG_DEBUG_LL
{
/* Debug UART mapping */
.
virtual
=
IXP4XX_DEBUG_UART_BASE_VIRT
,
.
p
hysical
=
IXP4XX_DEBUG_UART_BASE_PHYS
,
.
p
fn
=
__phys_to_pfn
(
IXP4XX_DEBUG_UART_BASE_PHYS
)
,
.
length
=
IXP4XX_DEBUG_UART_REGION_SIZE
,
.
type
=
MT_DEVICE
}
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-lh7a40x/arch-kev7a400.c
View file @
6fbfddcb
...
...
@@ -26,8 +26,17 @@
/* This function calls the board specific IRQ initialization function. */
static
struct
map_desc
kev7a400_io_desc
[]
__initdata
=
{
{
IO_VIRT
,
IO_PHYS
,
IO_SIZE
,
MT_DEVICE
},
{
CPLD_VIRT
,
CPLD_PHYS
,
CPLD_SIZE
,
MT_DEVICE
},
{
.
virtual
=
IO_VIRT
,
.
pfn
=
__phys_to_pfn
(
IO_PHYS
),
.
length
=
IO_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
CPLD_VIRT
,
.
pfn
=
__phys_to_pfn
(
CPLD_PHYS
),
.
length
=
CPLD_SIZE
,
.
type
=
MT_DEVICE
}
};
void
__init
kev7a400_map_io
(
void
)
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-lh7a40x/arch-lpd7a40x.c
View file @
6fbfddcb
...
...
@@ -227,23 +227,79 @@ void __init lh7a40x_init_board_irq (void)
}
static
struct
map_desc
lpd7a400_io_desc
[]
__initdata
=
{
{
IO_VIRT
,
IO_PHYS
,
IO_SIZE
,
MT_DEVICE
},
/* Mapping added to work around chip select problems */
{
IOBARRIER_VIRT
,
IOBARRIER_PHYS
,
IOBARRIER_SIZE
,
MT_DEVICE
},
{
CF_VIRT
,
CF_PHYS
,
CF_SIZE
,
MT_DEVICE
},
{
.
virtual
=
IO_VIRT
,
.
pfn
=
__phys_to_pfn
(
IO_PHYS
),
.
length
=
IO_SIZE
,
.
type
=
MT_DEVICE
},
{
/* Mapping added to work around chip select problems */
.
virtual
=
IOBARRIER_VIRT
,
.
pfn
=
__phys_to_pfn
(
IOBARRIER_PHYS
),
.
length
=
IOBARRIER_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
CF_VIRT
,
.
pfn
=
__phys_to_pfn
(
CF_PHYS
),
.
length
=
CF_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
CPLD02_VIRT
,
.
pfn
=
__phys_to_pfn
(
CPLD02_PHYS
),
.
length
=
CPLD02_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
CPLD06_VIRT
,
.
pfn
=
__phys_to_pfn
(
CPLD06_PHYS
),
.
length
=
CPLD06_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
CPLD08_VIRT
,
.
pfn
=
__phys_to_pfn
(
CPLD08_PHYS
),
.
length
=
CPLD08_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
CPLD0C_VIRT
,
.
pfn
=
__phys_to_pfn
(
CPLD0C_PHYS
),
.
length
=
CPLD0C_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
CPLD0E_VIRT
,
.
pfn
=
__phys_to_pfn
(
CPLD0E_PHYS
),
.
length
=
CPLD0E_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
CPLD10_VIRT
,
.
pfn
=
__phys_to_pfn
(
CPLD10_PHYS
),
.
length
=
CPLD10_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
CPLD12_VIRT
,
.
pfn
=
__phys_to_pfn
(
CPLD12_PHYS
),
.
length
=
CPLD12_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
CPLD14_VIRT
,
.
pfn
=
__phys_to_pfn
(
CPLD14_PHYS
),
.
length
=
CPLD14_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
CPLD16_VIRT
,
.
pfn
=
__phys_to_pfn
(
CPLD16_PHYS
),
.
length
=
CPLD16_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
CPLD18_VIRT
,
.
pfn
=
__phys_to_pfn
(
CPLD18_PHYS
),
.
length
=
CPLD18_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
CPLD1A_VIRT
,
.
pfn
=
__phys_to_pfn
(
CPLD1A_PHYS
),
.
length
=
CPLD1A_SIZE
,
.
type
=
MT_DEVICE
},
/* This mapping is redundant since the smc driver performs another. */
/* { CPLD00_VIRT, CPLD00_PHYS, CPLD00_SIZE, MT_DEVICE }, */
{
CPLD02_VIRT
,
CPLD02_PHYS
,
CPLD02_SIZE
,
MT_DEVICE
},
{
CPLD06_VIRT
,
CPLD06_PHYS
,
CPLD06_SIZE
,
MT_DEVICE
},
{
CPLD08_VIRT
,
CPLD08_PHYS
,
CPLD08_SIZE
,
MT_DEVICE
},
{
CPLD0C_VIRT
,
CPLD0C_PHYS
,
CPLD0C_SIZE
,
MT_DEVICE
},
{
CPLD0E_VIRT
,
CPLD0E_PHYS
,
CPLD0E_SIZE
,
MT_DEVICE
},
{
CPLD10_VIRT
,
CPLD10_PHYS
,
CPLD10_SIZE
,
MT_DEVICE
},
{
CPLD12_VIRT
,
CPLD12_PHYS
,
CPLD12_SIZE
,
MT_DEVICE
},
{
CPLD14_VIRT
,
CPLD14_PHYS
,
CPLD14_SIZE
,
MT_DEVICE
},
{
CPLD16_VIRT
,
CPLD16_PHYS
,
CPLD16_SIZE
,
MT_DEVICE
},
{
CPLD18_VIRT
,
CPLD18_PHYS
,
CPLD18_SIZE
,
MT_DEVICE
},
{
CPLD1A_VIRT
,
CPLD1A_PHYS
,
CPLD1A_SIZE
,
MT_DEVICE
},
};
void
__init
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/board-innovator.c
View file @
6fbfddcb
...
...
@@ -103,8 +103,12 @@ static struct platform_device innovator_flash_device = {
/* Only FPGA needs to be mapped here. All others are done with ioremap */
static
struct
map_desc
innovator1510_io_desc
[]
__initdata
=
{
{
OMAP1510_FPGA_BASE
,
OMAP1510_FPGA_START
,
OMAP1510_FPGA_SIZE
,
MT_DEVICE
},
{
.
virtual
=
OMAP1510_FPGA_BASE
,
.
pfn
=
__phys_to_pfn
(
OMAP1510_FPGA_START
),
.
length
=
OMAP1510_FPGA_SIZE
,
.
type
=
MT_DEVICE
}
};
static
struct
resource
innovator1510_smc91x_resources
[]
=
{
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/board-perseus2.c
View file @
6fbfddcb
...
...
@@ -134,8 +134,12 @@ void omap_perseus2_init_irq(void)
/* Only FPGA needs to be mapped here. All others are done with ioremap */
static
struct
map_desc
omap_perseus2_io_desc
[]
__initdata
=
{
{
H2P2_DBG_FPGA_BASE
,
H2P2_DBG_FPGA_START
,
H2P2_DBG_FPGA_SIZE
,
MT_DEVICE
},
{
.
virtual
=
H2P2_DBG_FPGA_BASE
,
.
pfn
=
__phys_to_pfn
(
H2P2_DBG_FPGA_START
),
.
length
=
H2P2_DBG_FPGA_SIZE
,
.
type
=
MT_DEVICE
}
};
static
void
__init
omap_perseus2_map_io
(
void
)
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/io.c
View file @
6fbfddcb
...
...
@@ -26,27 +26,59 @@ extern void omap_sram_init(void);
* default mapping provided here.
*/
static
struct
map_desc
omap_io_desc
[]
__initdata
=
{
{
IO_VIRT
,
IO_PHYS
,
IO_SIZE
,
MT_DEVICE
},
{
.
virtual
=
IO_VIRT
,
.
pfn
=
__phys_to_pfn
(
IO_PHYS
),
.
length
=
IO_SIZE
,
.
type
=
MT_DEVICE
}
};
#ifdef CONFIG_ARCH_OMAP730
static
struct
map_desc
omap730_io_desc
[]
__initdata
=
{
{
OMAP730_DSP_BASE
,
OMAP730_DSP_START
,
OMAP730_DSP_SIZE
,
MT_DEVICE
},
{
OMAP730_DSPREG_BASE
,
OMAP730_DSPREG_START
,
OMAP730_DSPREG_SIZE
,
MT_DEVICE
},
{
.
virtual
=
OMAP730_DSP_BASE
,
.
pfn
=
__phys_to_pfn
(
OMAP730_DSP_START
),
.
length
=
OMAP730_DSP_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
OMAP730_DSPREG_BASE
,
.
pfn
=
__phys_to_pfn
(
OMAP730_DSPREG_START
),
.
length
=
OMAP730_DSPREG_SIZE
,
.
type
=
MT_DEVICE
}
};
#endif
#ifdef CONFIG_ARCH_OMAP1510
static
struct
map_desc
omap1510_io_desc
[]
__initdata
=
{
{
OMAP1510_DSP_BASE
,
OMAP1510_DSP_START
,
OMAP1510_DSP_SIZE
,
MT_DEVICE
},
{
OMAP1510_DSPREG_BASE
,
OMAP1510_DSPREG_START
,
OMAP1510_DSPREG_SIZE
,
MT_DEVICE
},
{
.
virtual
=
OMAP1510_DSP_BASE
,
.
pfn
=
__phys_to_pfn
(
OMAP1510_DSP_START
),
.
length
=
OMAP1510_DSP_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
OMAP1510_DSPREG_BASE
,
.
pfn
=
__phys_to_pfn
(
OMAP1510_DSPREG_START
),
.
length
=
OMAP1510_DSPREG_SIZE
,
.
type
=
MT_DEVICE
}
};
#endif
#if defined(CONFIG_ARCH_OMAP16XX)
static
struct
map_desc
omap16xx_io_desc
[]
__initdata
=
{
{
OMAP16XX_DSP_BASE
,
OMAP16XX_DSP_START
,
OMAP16XX_DSP_SIZE
,
MT_DEVICE
},
{
OMAP16XX_DSPREG_BASE
,
OMAP16XX_DSPREG_START
,
OMAP16XX_DSPREG_SIZE
,
MT_DEVICE
},
{
.
virtual
=
OMAP16XX_DSP_BASE
,
.
pfn
=
__phys_to_pfn
(
OMAP16XX_DSP_START
),
.
length
=
OMAP16XX_DSP_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
OMAP16XX_DSPREG_BASE
,
.
pfn
=
__phys_to_pfn
(
OMAP16XX_DSPREG_START
),
.
length
=
OMAP16XX_DSPREG_SIZE
,
.
type
=
MT_DEVICE
}
};
#endif
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-pxa/generic.c
View file @
6fbfddcb
...
...
@@ -34,6 +34,7 @@
#include <asm/arch/udc.h>
#include <asm/arch/pxafb.h>
#include <asm/arch/mmc.h>
#include <asm/arch/irda.h>
#include <asm/arch/i2c.h>
#include "generic.h"
...
...
@@ -92,14 +93,42 @@ EXPORT_SYMBOL(pxa_set_cken);
* and cache flush area.
*/
static
struct
map_desc
standard_io_desc
[]
__initdata
=
{
/* virtual physical length type */
{
0xf2000000
,
0x40000000
,
0x02000000
,
MT_DEVICE
},
/* Devs */
{
0xf4000000
,
0x44000000
,
0x00100000
,
MT_DEVICE
},
/* LCD */
{
0xf6000000
,
0x48000000
,
0x00100000
,
MT_DEVICE
},
/* Mem Ctl */
{
0xf8000000
,
0x4c000000
,
0x00100000
,
MT_DEVICE
},
/* USB host */
{
0xfa000000
,
0x50000000
,
0x00100000
,
MT_DEVICE
},
/* Camera */
{
0xfe000000
,
0x58000000
,
0x00100000
,
MT_DEVICE
},
/* IMem ctl */
{
0xff000000
,
0x00000000
,
0x00100000
,
MT_DEVICE
}
/* UNCACHED_PHYS_0 */
{
/* Devs */
.
virtual
=
0xf2000000
,
.
pfn
=
__phys_to_pfn
(
0x40000000
),
.
length
=
0x02000000
,
.
type
=
MT_DEVICE
},
{
/* LCD */
.
virtual
=
0xf4000000
,
.
pfn
=
__phys_to_pfn
(
0x44000000
),
.
length
=
0x00100000
,
.
type
=
MT_DEVICE
},
{
/* Mem Ctl */
.
virtual
=
0xf6000000
,
.
pfn
=
__phys_to_pfn
(
0x48000000
),
.
length
=
0x00100000
,
.
type
=
MT_DEVICE
},
{
/* USB host */
.
virtual
=
0xf8000000
,
.
pfn
=
__phys_to_pfn
(
0x4c000000
),
.
length
=
0x00100000
,
.
type
=
MT_DEVICE
},
{
/* Camera */
.
virtual
=
0xfa000000
,
.
pfn
=
__phys_to_pfn
(
0x50000000
),
.
length
=
0x00100000
,
.
type
=
MT_DEVICE
},
{
/* IMem ctl */
.
virtual
=
0xfe000000
,
.
pfn
=
__phys_to_pfn
(
0x58000000
),
.
length
=
0x00100000
,
.
type
=
MT_DEVICE
},
{
/* UNCACHED_PHYS_0 */
.
virtual
=
0xff000000
,
.
pfn
=
__phys_to_pfn
(
0x00000000
),
.
length
=
0x00100000
,
.
type
=
MT_DEVICE
}
};
void
__init
pxa_map_io
(
void
)
...
...
@@ -225,6 +254,10 @@ static struct platform_device stuart_device = {
.
name
=
"pxa2xx-uart"
,
.
id
=
2
,
};
static
struct
platform_device
hwuart_device
=
{
.
name
=
"pxa2xx-uart"
,
.
id
=
3
,
};
static
struct
resource
i2c_resources
[]
=
{
{
...
...
@@ -265,10 +298,26 @@ static struct resource i2s_resources[] = {
static
struct
platform_device
i2s_device
=
{
.
name
=
"pxa2xx-i2s"
,
.
id
=
-
1
,
.
resource
=
i2
c
_resources
,
.
resource
=
i2
s
_resources
,
.
num_resources
=
ARRAY_SIZE
(
i2s_resources
),
};
static
u64
pxaficp_dmamask
=
~
(
u32
)
0
;
static
struct
platform_device
pxaficp_device
=
{
.
name
=
"pxa2xx-ir"
,
.
id
=
-
1
,
.
dev
=
{
.
dma_mask
=
&
pxaficp_dmamask
,
.
coherent_dma_mask
=
0xffffffff
,
},
};
void
__init
pxa_set_ficp_info
(
struct
pxaficp_platform_data
*
info
)
{
pxaficp_device
.
dev
.
platform_data
=
info
;
}
static
struct
platform_device
*
devices
[]
__initdata
=
{
&
pxamci_device
,
&
udc_device
,
...
...
@@ -276,13 +325,26 @@ static struct platform_device *devices[] __initdata = {
&
ffuart_device
,
&
btuart_device
,
&
stuart_device
,
&
pxaficp_device
,
&
i2c_device
,
&
i2s_device
,
};
static
int
__init
pxa_init
(
void
)
{
return
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
int
cpuid
,
ret
;
ret
=
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
if
(
ret
)
return
ret
;
/* Only add HWUART for PXA255/26x; PXA210/250/27x do not have it. */
cpuid
=
read_cpuid
(
CPUID_ID
);
if
(((
cpuid
>>
4
)
&
0xfff
)
==
0x2d0
||
((
cpuid
>>
4
)
&
0xfff
)
==
0x290
)
ret
=
platform_device_register
(
&
hwuart_device
);
return
ret
;
}
subsys_initcall
(
pxa_init
);
This diff is collapsed.
Click to expand it.
arch/arm/mach-pxa/idp.c
View file @
6fbfddcb
...
...
@@ -152,16 +152,17 @@ static void __init idp_init_irq(void)
}
static
struct
map_desc
idp_io_desc
[]
__initdata
=
{
/* virtual physical length type */
{
IDP_COREVOLT_VIRT
,
IDP_COREVOLT_PHYS
,
IDP_COREVOLT_SIZE
,
MT_DEVICE
},
{
IDP_CPLD_VIRT
,
IDP_CPLD_PHYS
,
IDP_CPLD_SIZE
,
MT_DEVICE
}
{
.
virtual
=
IDP_COREVOLT_VIRT
,
.
pfn
=
__phys_to_pfn
(
IDP_COREVOLT_PHYS
),
.
length
=
IDP_COREVOLT_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
IDP_CPLD_VIRT
,
.
pfn
=
__phys_to_pfn
(
IDP_CPLD_PHYS
),
.
length
=
IDP_CPLD_SIZE
,
.
type
=
MT_DEVICE
}
};
static
void
__init
idp_map_io
(
void
)
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-pxa/lubbock.c
View file @
6fbfddcb
...
...
@@ -35,6 +35,7 @@
#include <asm/arch/pxa-regs.h>
#include <asm/arch/lubbock.h>
#include <asm/arch/udc.h>
#include <asm/arch/irda.h>
#include <asm/arch/pxafb.h>
#include <asm/arch/mmc.h>
...
...
@@ -237,16 +238,40 @@ static struct pxamci_platform_data lubbock_mci_platform_data = {
.
init
=
lubbock_mci_init
,
};
static
void
lubbock_irda_transceiver_mode
(
struct
device
*
dev
,
int
mode
)
{
unsigned
long
flags
;
local_irq_save
(
flags
);
if
(
mode
&
IR_SIRMODE
)
{
LUB_MISC_WR
&=
~
(
1
<<
4
);
}
else
if
(
mode
&
IR_FIRMODE
)
{
LUB_MISC_WR
|=
1
<<
4
;
}
local_irq_restore
(
flags
);
}
static
struct
pxaficp_platform_data
lubbock_ficp_platform_data
=
{
.
transceiver_cap
=
IR_SIRMODE
|
IR_FIRMODE
,
.
transceiver_mode
=
lubbock_irda_transceiver_mode
,
};
static
void
__init
lubbock_init
(
void
)
{
pxa_set_udc_info
(
&
udc_info
);
set_pxa_fb_info
(
&
sharp_lm8v31
);
pxa_set_mci_info
(
&
lubbock_mci_platform_data
);
pxa_set_ficp_info
(
&
lubbock_ficp_platform_data
);
(
void
)
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
}
static
struct
map_desc
lubbock_io_desc
[]
__initdata
=
{
{
LUBBOCK_FPGA_VIRT
,
LUBBOCK_FPGA_PHYS
,
0x00100000
,
MT_DEVICE
},
/* CPLD */
{
/* CPLD */
.
virtual
=
LUBBOCK_FPGA_VIRT
,
.
pfn
=
__phys_to_pfn
(
LUBBOCK_FPGA_PHYS
),
.
length
=
0x00100000
,
.
type
=
MT_DEVICE
}
};
static
void
__init
lubbock_map_io
(
void
)
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-pxa/mainstone.c
View file @
6fbfddcb
...
...
@@ -37,6 +37,7 @@
#include <asm/arch/audio.h>
#include <asm/arch/pxafb.h>
#include <asm/arch/mmc.h>
#include <asm/arch/irda.h>
#include "generic.h"
...
...
@@ -294,6 +295,29 @@ static struct pxamci_platform_data mainstone_mci_platform_data = {
.
exit
=
mainstone_mci_exit
,
};
static
void
mainstone_irda_transceiver_mode
(
struct
device
*
dev
,
int
mode
)
{
unsigned
long
flags
;
local_irq_save
(
flags
);
if
(
mode
&
IR_SIRMODE
)
{
MST_MSCWR1
&=
~
MST_MSCWR1_IRDA_FIR
;
}
else
if
(
mode
&
IR_FIRMODE
)
{
MST_MSCWR1
|=
MST_MSCWR1_IRDA_FIR
;
}
if
(
mode
&
IR_OFF
)
{
MST_MSCWR1
=
(
MST_MSCWR1
&
~
MST_MSCWR1_IRDA_MASK
)
|
MST_MSCWR1_IRDA_OFF
;
}
else
{
MST_MSCWR1
=
(
MST_MSCWR1
&
~
MST_MSCWR1_IRDA_MASK
)
|
MST_MSCWR1_IRDA_FULL
;
}
local_irq_restore
(
flags
);
}
static
struct
pxaficp_platform_data
mainstone_ficp_platform_data
=
{
.
transceiver_cap
=
IR_SIRMODE
|
IR_FIRMODE
|
IR_OFF
,
.
transceiver_mode
=
mainstone_irda_transceiver_mode
,
};
static
void
__init
mainstone_init
(
void
)
{
/*
...
...
@@ -313,11 +337,17 @@ static void __init mainstone_init(void)
set_pxa_fb_info
(
&
toshiba_ltm035a776c
);
pxa_set_mci_info
(
&
mainstone_mci_platform_data
);
pxa_set_ficp_info
(
&
mainstone_ficp_platform_data
);
}
static
struct
map_desc
mainstone_io_desc
[]
__initdata
=
{
{
MST_FPGA_VIRT
,
MST_FPGA_PHYS
,
0x00100000
,
MT_DEVICE
},
/* CPLD */
{
/* CPLD */
.
virtual
=
MST_FPGA_VIRT
,
.
pfn
=
__phys_to_pfn
(
MST_FPGA_PHYS
),
.
length
=
0x00100000
,
.
type
=
MT_DEVICE
}
};
static
void
__init
mainstone_map_io
(
void
)
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-pxa/pxa25x.c
View file @
6fbfddcb
...
...
@@ -129,7 +129,7 @@ void pxa_cpu_pm_enter(suspend_state_t state)
case
PM_SUSPEND_MEM
:
/* set resume return address */
PSPR
=
virt_to_phys
(
pxa_cpu_resume
);
pxa_cpu_suspend
(
3
);
pxa_cpu_suspend
(
PWRMODE_SLEEP
);
break
;
}
}
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-pxa/pxa27x.c
View file @
6fbfddcb
...
...
@@ -157,7 +157,7 @@ void pxa_cpu_pm_enter(suspend_state_t state)
case
PM_SUSPEND_MEM
:
/* set resume return address */
PSPR
=
virt_to_phys
(
pxa_cpu_resume
);
pxa_cpu_suspend
(
3
);
pxa_cpu_suspend
(
PWRMODE_SLEEP
);
break
;
}
}
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-pxa/sleep.S
View file @
6fbfddcb
...
...
@@ -28,7 +28,9 @@
/*
*
pxa_cpu_suspend
()
*
*
Forces
CPU
into
sleep
state
*
Forces
CPU
into
sleep
state
.
*
*
r0
=
value
for
PWRMODE
M
field
for
desired
sleep
state
*/
ENTRY
(
pxa_cpu_suspend
)
...
...
@@ -53,6 +55,7 @@ ENTRY(pxa_cpu_suspend)
mov
r10
,
sp
stmfd
sp
!,
{
r3
-
r10
}
mov
r5
,
r0
@
save
sleep
mode
@
preserve
phys
address
of
stack
mov
r0
,
sp
bl
sleep_phys_sp
...
...
@@ -66,7 +69,7 @@ ENTRY(pxa_cpu_suspend)
@
(
also
workaround
for
sighting
28071
)
@
prepare
value
for
sleep
mode
mov
r1
,
#
3
@
sleep
mode
mov
r1
,
r5
@
sleep
mode
@
prepare
pointer
to
physical
address
0
(
virtual
mapping
in
generic
.
c
)
mov
r2
,
#
UNCACHED_PHYS_0
...
...
This diff is collapsed.
Click to expand it.
Prev
1
2
3
4
5
6
7
…
30
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment