Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
55c381e4
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
55c381e4
编写于
9月 04, 2008
作者:
R
Russell King
提交者:
Russell King
9月 05, 2008
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[ARM] omap: convert OMAP drivers to use ioremap()
Signed-off-by:
N
Russell King
<
rmk+kernel@arm.linux.org.uk
>
上级
690b5a13
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
107 addition
and
26 deletion
+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
未找到文件。
drivers/char/hw_random/omap-rng.c
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
=
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录