Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
55c381e4
Commit
55c381e4
authored
Sep 04, 2008
by
Russell King
Committed by
Russell King
Sep 05, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[ARM] omap: convert OMAP drivers to use ioremap()
Signed-off-by:
Russell King
<
rmk+kernel@arm.linux.org.uk
>
parent
690b5a13
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
107 additions
and
26 deletions
+107
-26
drivers/char/hw_random/omap-rng.c
drivers/char/hw_random/omap-rng.c
+25
-8
drivers/i2c/busses/i2c-omap.c
drivers/i2c/busses/i2c-omap.c
+10
-2
drivers/mmc/host/omap.c
drivers/mmc/host/omap.c
+6
-1
drivers/spi/omap2_mcspi.c
drivers/spi/omap2_mcspi.c
+11
-1
drivers/spi/omap_uwire.c
drivers/spi/omap_uwire.c
+19
-4
drivers/usb/host/ohci-omap.c
drivers/usb/host/ohci-omap.c
+11
-3
drivers/video/omap/dispc.c
drivers/video/omap/dispc.c
+11
-4
drivers/video/omap/rfbi.c
drivers/video/omap/rfbi.c
+7
-2
drivers/video/omap/sossi.c
drivers/video/omap/sossi.c
+7
-1
No files found.
drivers/char/hw_random/omap-rng.c
View file @
55c381e4
...
...
@@ -118,18 +118,21 @@ static int __init omap_rng_probe(struct platform_device *pdev)
mem
=
request_mem_region
(
res
->
start
,
res
->
end
-
res
->
start
+
1
,
pdev
->
name
);
if
(
mem
==
NULL
)
return
-
EBUSY
;
if
(
mem
==
NULL
)
{
ret
=
-
EBUSY
;
goto
err_region
;
}
dev_set_drvdata
(
&
pdev
->
dev
,
mem
);
rng_base
=
(
u32
__force
__iomem
*
)
io_p2v
(
res
->
start
);
rng_base
=
ioremap
(
res
->
start
,
res
->
end
-
res
->
start
+
1
);
if
(
!
rng_base
)
{
ret
=
-
ENOMEM
;
goto
err_ioremap
;
}
ret
=
hwrng_register
(
&
omap_rng_ops
);
if
(
ret
)
{
release_resource
(
mem
);
rng_base
=
NULL
;
return
ret
;
}
if
(
ret
)
goto
err_register
;
dev_info
(
&
pdev
->
dev
,
"OMAP Random Number Generator ver. %02x
\n
"
,
omap_rng_read_reg
(
RNG_REV_REG
));
...
...
@@ -138,6 +141,18 @@ static int __init omap_rng_probe(struct platform_device *pdev)
rng_dev
=
pdev
;
return
0
;
err_register:
iounmap
(
rng_base
);
rng_base
=
NULL
;
err_ioremap:
release_resource
(
mem
);
err_region:
if
(
cpu_is_omap24xx
())
{
clk_disable
(
rng_ick
);
clk_put
(
rng_ick
);
}
return
ret
;
}
static
int
__exit
omap_rng_remove
(
struct
platform_device
*
pdev
)
...
...
@@ -148,6 +163,8 @@ static int __exit omap_rng_remove(struct platform_device *pdev)
omap_rng_write_reg
(
RNG_MASK_REG
,
0x0
);
iounmap
(
rng_base
);
if
(
cpu_is_omap24xx
())
{
clk_disable
(
rng_ick
);
clk_put
(
rng_ick
);
...
...
drivers/i2c/busses/i2c-omap.c
View file @
55c381e4
...
...
@@ -589,11 +589,16 @@ omap_i2c_probe(struct platform_device *pdev)
dev
->
dev
=
&
pdev
->
dev
;
dev
->
irq
=
irq
->
start
;
dev
->
base
=
(
void
__iomem
*
)
IO_ADDRESS
(
mem
->
start
);
dev
->
base
=
ioremap
(
mem
->
start
,
mem
->
end
-
mem
->
start
+
1
);
if
(
!
dev
->
base
)
{
r
=
-
ENOMEM
;
goto
err_free_mem
;
}
platform_set_drvdata
(
pdev
,
dev
);
if
((
r
=
omap_i2c_get_clocks
(
dev
))
!=
0
)
goto
err_
free_mem
;
goto
err_
iounmap
;
omap_i2c_unidle
(
dev
);
...
...
@@ -640,6 +645,8 @@ omap_i2c_probe(struct platform_device *pdev)
omap_i2c_write_reg
(
dev
,
OMAP_I2C_CON_REG
,
0
);
omap_i2c_idle
(
dev
);
omap_i2c_put_clocks
(
dev
);
err_iounmap:
iounmap
(
dev
->
base
);
err_free_mem:
platform_set_drvdata
(
pdev
,
NULL
);
kfree
(
dev
);
...
...
@@ -661,6 +668,7 @@ omap_i2c_remove(struct platform_device *pdev)
i2c_del_adapter
(
&
dev
->
adapter
);
omap_i2c_write_reg
(
dev
,
OMAP_I2C_CON_REG
,
0
);
omap_i2c_put_clocks
(
dev
);
iounmap
(
dev
->
base
);
kfree
(
dev
);
mem
=
platform_get_resource
(
pdev
,
IORESOURCE_MEM
,
0
);
release_mem_region
(
mem
->
start
,
(
mem
->
end
-
mem
->
start
)
+
1
);
...
...
drivers/mmc/host/omap.c
View file @
55c381e4
...
...
@@ -1455,7 +1455,9 @@ static int __init mmc_omap_probe(struct platform_device *pdev)
host
->
irq
=
irq
;
host
->
phys_base
=
host
->
mem_res
->
start
;
host
->
virt_base
=
(
void
__iomem
*
)
IO_ADDRESS
(
host
->
phys_base
);
host
->
virt_base
=
ioremap
(
res
->
start
,
res
->
end
-
res
->
start
+
1
);
if
(
!
host
->
virt_base
)
goto
err_ioremap
;
if
(
cpu_is_omap24xx
())
{
host
->
iclk
=
clk_get
(
&
pdev
->
dev
,
"mmc_ick"
);
...
...
@@ -1510,6 +1512,8 @@ static int __init mmc_omap_probe(struct platform_device *pdev)
clk_put
(
host
->
iclk
);
}
err_free_mmc_host:
iounmap
(
host
->
virt_base
);
err_ioremap:
kfree
(
host
);
err_free_mem_region:
release_mem_region
(
res
->
start
,
res
->
end
-
res
->
start
+
1
);
...
...
@@ -1536,6 +1540,7 @@ static int mmc_omap_remove(struct platform_device *pdev)
if
(
host
->
fclk
&&
!
IS_ERR
(
host
->
fclk
))
clk_put
(
host
->
fclk
);
iounmap
(
host
->
virt_base
);
release_mem_region
(
pdev
->
resource
[
0
].
start
,
pdev
->
resource
[
0
].
end
-
pdev
->
resource
[
0
].
start
+
1
);
...
...
drivers/spi/omap2_mcspi.c
View file @
55c381e4
...
...
@@ -1009,7 +1009,12 @@ static int __init omap2_mcspi_probe(struct platform_device *pdev)
}
mcspi
->
phys
=
r
->
start
;
mcspi
->
base
=
(
void
__iomem
*
)
io_p2v
(
r
->
start
);
mcspi
->
base
=
ioremap
(
r
->
start
,
r
->
end
-
r
->
start
+
1
);
if
(
!
mcspi
->
base
)
{
dev_dbg
(
&
pdev
->
dev
,
"can't ioremap MCSPI
\n
"
);
status
=
-
ENOMEM
;
goto
err1aa
;
}
INIT_WORK
(
&
mcspi
->
work
,
omap2_mcspi_work
);
...
...
@@ -1059,6 +1064,8 @@ static int __init omap2_mcspi_probe(struct platform_device *pdev)
err2:
clk_put
(
mcspi
->
ick
);
err1a:
iounmap
(
mcspi
->
base
);
err1aa:
release_mem_region
(
r
->
start
,
(
r
->
end
-
r
->
start
)
+
1
);
err1:
spi_master_put
(
master
);
...
...
@@ -1071,6 +1078,7 @@ static int __exit omap2_mcspi_remove(struct platform_device *pdev)
struct
omap2_mcspi
*
mcspi
;
struct
omap2_mcspi_dma
*
dma_channels
;
struct
resource
*
r
;
void
__iomem
*
base
;
master
=
dev_get_drvdata
(
&
pdev
->
dev
);
mcspi
=
spi_master_get_devdata
(
master
);
...
...
@@ -1082,7 +1090,9 @@ static int __exit omap2_mcspi_remove(struct platform_device *pdev)
r
=
platform_get_resource
(
pdev
,
IORESOURCE_MEM
,
0
);
release_mem_region
(
r
->
start
,
(
r
->
end
-
r
->
start
)
+
1
);
base
=
mcspi
->
base
;
spi_unregister_master
(
master
);
iounmap
(
base
);
kfree
(
dma_channels
);
return
0
;
...
...
drivers/spi/omap_uwire.c
View file @
55c381e4
...
...
@@ -59,7 +59,6 @@
* and irqs should show there too...
*/
#define UWIRE_BASE_PHYS 0xFFFB3000
#define UWIRE_BASE ((void *__iomem)IO_ADDRESS(UWIRE_BASE_PHYS))
/* uWire Registers: */
#define UWIRE_IO_SIZE 0x20
...
...
@@ -103,16 +102,21 @@ struct uwire_state {
};
/* REVISIT compile time constant for idx_shift? */
/*
* Or, put it in a structure which is used throughout the driver;
* that avoids having to issue two loads for each bit of static data.
*/
static
unsigned
int
uwire_idx_shift
;
static
void
__iomem
*
uwire_base
;
static
inline
void
uwire_write_reg
(
int
idx
,
u16
val
)
{
__raw_writew
(
val
,
UWIRE_BASE
+
(
idx
<<
uwire_idx_shift
));
__raw_writew
(
val
,
uwire_base
+
(
idx
<<
uwire_idx_shift
));
}
static
inline
u16
uwire_read_reg
(
int
idx
)
{
return
__raw_readw
(
UWIRE_BASE
+
(
idx
<<
uwire_idx_shift
));
return
__raw_readw
(
uwire_base
+
(
idx
<<
uwire_idx_shift
));
}
static
inline
void
omap_uwire_configure_mode
(
u8
cs
,
unsigned
long
flags
)
...
...
@@ -492,6 +496,14 @@ static int __init uwire_probe(struct platform_device *pdev)
return
-
ENODEV
;
uwire
=
spi_master_get_devdata
(
master
);
uwire_base
=
ioremap
(
UWIRE_BASE_PHYS
,
UWIRE_IO_SIZE
);
if
(
!
uwire_base
)
{
dev_dbg
(
&
pdev
->
dev
,
"can't ioremap UWIRE
\n
"
);
spi_master_put
(
master
);
return
-
ENOMEM
;
}
dev_set_drvdata
(
&
pdev
->
dev
,
uwire
);
uwire
->
ck
=
clk_get
(
&
pdev
->
dev
,
"armxor_ck"
);
...
...
@@ -520,8 +532,10 @@ static int __init uwire_probe(struct platform_device *pdev)
uwire
->
bitbang
.
txrx_bufs
=
uwire_txrx
;
status
=
spi_bitbang_start
(
&
uwire
->
bitbang
);
if
(
status
<
0
)
if
(
status
<
0
)
{
uwire_off
(
uwire
);
iounmap
(
uwire_base
);
}
return
status
;
}
...
...
@@ -534,6 +548,7 @@ static int __exit uwire_remove(struct platform_device *pdev)
status
=
spi_bitbang_stop
(
&
uwire
->
bitbang
);
uwire_off
(
uwire
);
iounmap
(
uwire_base
);
return
status
;
}
...
...
drivers/usb/host/ohci-omap.c
View file @
55c381e4
...
...
@@ -344,7 +344,12 @@ static int usb_hcd_omap_probe (const struct hc_driver *driver,
goto
err1
;
}
hcd
->
regs
=
(
void
__iomem
*
)
(
int
)
IO_ADDRESS
(
hcd
->
rsrc_start
);
hcd
->
regs
=
ioremap
(
hcd
->
rsrc_start
,
hcd
->
rsrc_len
);
if
(
!
hcd
->
regs
)
{
dev_err
(
&
pdev
->
dev
,
"can't ioremap OHCI HCD
\n
"
);
retval
=
-
ENOMEM
;
goto
err2
;
}
ohci
=
hcd_to_ohci
(
hcd
);
ohci_hcd_init
(
ohci
);
...
...
@@ -355,11 +360,11 @@ static int usb_hcd_omap_probe (const struct hc_driver *driver,
irq
=
platform_get_irq
(
pdev
,
0
);
if
(
irq
<
0
)
{
retval
=
-
ENXIO
;
goto
err
2
;
goto
err
3
;
}
retval
=
usb_add_hcd
(
hcd
,
irq
,
IRQF_DISABLED
);
if
(
retval
)
goto
err
2
;
goto
err
3
;
host_initialized
=
1
;
...
...
@@ -367,6 +372,8 @@ static int usb_hcd_omap_probe (const struct hc_driver *driver,
omap_ohci_clock_power
(
0
);
return
0
;
err3:
iounmap
(
hcd
->
regs
);
err2:
release_mem_region
(
hcd
->
rsrc_start
,
hcd
->
rsrc_len
);
err1:
...
...
@@ -401,6 +408,7 @@ usb_hcd_omap_remove (struct usb_hcd *hcd, struct platform_device *pdev)
}
if
(
machine_is_omap_osk
())
omap_free_gpio
(
9
);
iounmap
(
hcd
->
regs
);
release_mem_region
(
hcd
->
rsrc_start
,
hcd
->
rsrc_len
);
usb_put_hcd
(
hcd
);
clk_put
(
usb_dc_ck
);
...
...
drivers/video/omap/dispc.c
View file @
55c381e4
...
...
@@ -156,7 +156,7 @@ struct resmap {
};
static
struct
{
u32
base
;
void
__iomem
*
base
;
struct
omapfb_mem_desc
mem_desc
;
struct
resmap
*
res_map
[
DISPC_MEMTYPE_NUM
];
...
...
@@ -1349,14 +1349,19 @@ static int omap_dispc_init(struct omapfb_device *fbdev, int ext_mode,
memset
(
&
dispc
,
0
,
sizeof
(
dispc
));
dispc
.
base
=
io_p2v
(
DISPC_BASE
);
dispc
.
base
=
ioremap
(
DISPC_BASE
,
SZ_1K
);
if
(
!
dispc
.
base
)
{
dev_err
(
fbdev
->
dev
,
"can't ioremap DISPC
\n
"
);
return
-
ENOMEM
;
}
dispc
.
fbdev
=
fbdev
;
dispc
.
ext_mode
=
ext_mode
;
init_completion
(
&
dispc
.
frame_done
);
if
((
r
=
get_dss_clocks
())
<
0
)
return
r
;
goto
fail0
;
enable_interface_clocks
(
1
);
enable_lcd_clocks
(
1
);
...
...
@@ -1464,7 +1469,8 @@ static int omap_dispc_init(struct omapfb_device *fbdev, int ext_mode,
enable_lcd_clocks
(
0
);
enable_interface_clocks
(
0
);
put_dss_clocks
();
fail0:
iounmap
(
dispc
.
base
);
return
r
;
}
...
...
@@ -1481,6 +1487,7 @@ static void omap_dispc_cleanup(void)
free_irq
(
INT_24XX_DSS_IRQ
,
dispc
.
fbdev
);
enable_interface_clocks
(
0
);
put_dss_clocks
();
iounmap
(
dispc
.
base
);
}
const
struct
lcd_ctrl
omap2_int_ctrl
=
{
...
...
drivers/video/omap/rfbi.c
View file @
55c381e4
...
...
@@ -59,7 +59,7 @@
#define DISPC_CONTROL 0x0040
static
struct
{
u32
base
;
void
__iomem
*
base
;
void
(
*
lcdc_callback
)(
void
*
data
);
void
*
lcdc_callback_data
;
unsigned
long
l4_khz
;
...
...
@@ -518,7 +518,11 @@ static int rfbi_init(struct omapfb_device *fbdev)
int
r
;
rfbi
.
fbdev
=
fbdev
;
rfbi
.
base
=
io_p2v
(
RFBI_BASE
);
rfbi
.
base
=
ioremap
(
RFBI_BASE
,
SZ_1K
);
if
(
!
rfbi
.
base
)
{
dev_err
(
fbdev
->
dev
,
"can't ioremap RFBI
\n
"
);
return
-
ENOMEM
;
}
if
((
r
=
rfbi_get_clocks
())
<
0
)
return
r
;
...
...
@@ -566,6 +570,7 @@ static void rfbi_cleanup(void)
{
omap_dispc_free_irq
();
rfbi_put_clocks
();
iounmap
(
rfbi
.
base
);
}
const
struct
lcd_ctrl_extif
omap2_ext_if
=
{
...
...
drivers/video/omap/sossi.c
View file @
55c381e4
...
...
@@ -574,7 +574,12 @@ static int sossi_init(struct omapfb_device *fbdev)
struct
clk
*
dpll1out_ck
;
int
r
;
sossi
.
base
=
(
void
__iomem
*
)
IO_ADDRESS
(
OMAP_SOSSI_BASE
);
sossi
.
base
=
ioremap
(
OMAP_SOSSI_BASE
,
SZ_1K
);
if
(
!
sossi
.
base
)
{
dev_err
(
fbdev
->
dev
,
"can't ioremap SoSSI
\n
"
);
return
-
ENOMEM
;
}
sossi
.
fbdev
=
fbdev
;
spin_lock_init
(
&
sossi
.
lock
);
...
...
@@ -665,6 +670,7 @@ static void sossi_cleanup(void)
{
omap_lcdc_free_dma_callback
();
clk_put
(
sossi
.
fck
);
iounmap
(
sossi
.
base
);
}
struct
lcd_ctrl_extif
omap1_ext_if
=
{
...
...
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