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
Kirill Smelkov
linux
Commits
464c9e10
Commit
464c9e10
authored
May 26, 2009
by
Paul Mundt
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'sh/clkfwk'
parents
b7e2ac61
61ce5393
Changes
53
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
53 changed files
with
1213 additions
and
893 deletions
+1213
-893
arch/sh/Kconfig
arch/sh/Kconfig
+7
-0
arch/sh/boards/board-sh7785lcr.c
arch/sh/boards/board-sh7785lcr.c
+20
-2
arch/sh/include/asm/clock.h
arch/sh/include/asm/clock.h
+45
-24
arch/sh/include/asm/machvec.h
arch/sh/include/asm/machvec.h
+2
-0
arch/sh/kernel/cpu/Makefile
arch/sh/kernel/cpu/Makefile
+1
-0
arch/sh/kernel/cpu/clock-cpg.c
arch/sh/kernel/cpu/clock-cpg.c
+62
-0
arch/sh/kernel/cpu/clock.c
arch/sh/kernel/cpu/clock.c
+396
-202
arch/sh/kernel/cpu/sh2/clock-sh7619.c
arch/sh/kernel/cpu/sh2/clock-sh7619.c
+5
-11
arch/sh/kernel/cpu/sh2/setup-sh7619.c
arch/sh/kernel/cpu/sh2/setup-sh7619.c
+2
-2
arch/sh/kernel/cpu/sh2a/clock-sh7201.c
arch/sh/kernel/cpu/sh2a/clock-sh7201.c
+7
-7
arch/sh/kernel/cpu/sh2a/clock-sh7203.c
arch/sh/kernel/cpu/sh2a/clock-sh7203.c
+5
-10
arch/sh/kernel/cpu/sh2a/clock-sh7206.c
arch/sh/kernel/cpu/sh2a/clock-sh7206.c
+6
-6
arch/sh/kernel/cpu/sh2a/setup-mxg.c
arch/sh/kernel/cpu/sh2a/setup-mxg.c
+3
-3
arch/sh/kernel/cpu/sh2a/setup-sh7201.c
arch/sh/kernel/cpu/sh2a/setup-sh7201.c
+3
-3
arch/sh/kernel/cpu/sh2a/setup-sh7203.c
arch/sh/kernel/cpu/sh2a/setup-sh7203.c
+4
-4
arch/sh/kernel/cpu/sh2a/setup-sh7206.c
arch/sh/kernel/cpu/sh2a/setup-sh7206.c
+5
-5
arch/sh/kernel/cpu/sh3/clock-sh3.c
arch/sh/kernel/cpu/sh3/clock-sh3.c
+6
-6
arch/sh/kernel/cpu/sh3/clock-sh7705.c
arch/sh/kernel/cpu/sh3/clock-sh7705.c
+6
-6
arch/sh/kernel/cpu/sh3/clock-sh7706.c
arch/sh/kernel/cpu/sh3/clock-sh7706.c
+6
-6
arch/sh/kernel/cpu/sh3/clock-sh7709.c
arch/sh/kernel/cpu/sh3/clock-sh7709.c
+6
-6
arch/sh/kernel/cpu/sh3/clock-sh7710.c
arch/sh/kernel/cpu/sh3/clock-sh7710.c
+6
-6
arch/sh/kernel/cpu/sh3/clock-sh7712.c
arch/sh/kernel/cpu/sh3/clock-sh7712.c
+4
-4
arch/sh/kernel/cpu/sh3/setup-sh7705.c
arch/sh/kernel/cpu/sh3/setup-sh7705.c
+3
-3
arch/sh/kernel/cpu/sh3/setup-sh770x.c
arch/sh/kernel/cpu/sh3/setup-sh770x.c
+3
-3
arch/sh/kernel/cpu/sh3/setup-sh7710.c
arch/sh/kernel/cpu/sh3/setup-sh7710.c
+3
-3
arch/sh/kernel/cpu/sh3/setup-sh7720.c
arch/sh/kernel/cpu/sh3/setup-sh7720.c
+8
-8
arch/sh/kernel/cpu/sh4/clock-sh4-202.c
arch/sh/kernel/cpu/sh4/clock-sh4-202.c
+17
-26
arch/sh/kernel/cpu/sh4/clock-sh4.c
arch/sh/kernel/cpu/sh4/clock-sh4.c
+6
-6
arch/sh/kernel/cpu/sh4/setup-sh4-202.c
arch/sh/kernel/cpu/sh4/setup-sh4-202.c
+3
-3
arch/sh/kernel/cpu/sh4/setup-sh7750.c
arch/sh/kernel/cpu/sh4/setup-sh7750.c
+5
-5
arch/sh/kernel/cpu/sh4/setup-sh7760.c
arch/sh/kernel/cpu/sh4/setup-sh7760.c
+3
-3
arch/sh/kernel/cpu/sh4a/clock-sh7722.c
arch/sh/kernel/cpu/sh4a/clock-sh7722.c
+206
-218
arch/sh/kernel/cpu/sh4a/clock-sh7763.c
arch/sh/kernel/cpu/sh4a/clock-sh7763.c
+16
-30
arch/sh/kernel/cpu/sh4a/clock-sh7770.c
arch/sh/kernel/cpu/sh4a/clock-sh7770.c
+6
-6
arch/sh/kernel/cpu/sh4a/clock-sh7780.c
arch/sh/kernel/cpu/sh4a/clock-sh7780.c
+17
-26
arch/sh/kernel/cpu/sh4a/clock-sh7785.c
arch/sh/kernel/cpu/sh4a/clock-sh7785.c
+211
-106
arch/sh/kernel/cpu/sh4a/clock-sh7786.c
arch/sh/kernel/cpu/sh4a/clock-sh7786.c
+20
-27
arch/sh/kernel/cpu/sh4a/clock-shx3.c
arch/sh/kernel/cpu/sh4a/clock-shx3.c
+17
-24
arch/sh/kernel/cpu/sh4a/setup-sh7343.c
arch/sh/kernel/cpu/sh4a/setup-sh7343.c
+0
-6
arch/sh/kernel/cpu/sh4a/setup-sh7366.c
arch/sh/kernel/cpu/sh4a/setup-sh7366.c
+0
-6
arch/sh/kernel/cpu/sh4a/setup-sh7722.c
arch/sh/kernel/cpu/sh4a/setup-sh7722.c
+0
-6
arch/sh/kernel/cpu/sh4a/setup-sh7723.c
arch/sh/kernel/cpu/sh4a/setup-sh7723.c
+0
-5
arch/sh/kernel/cpu/sh4a/setup-sh7724.c
arch/sh/kernel/cpu/sh4a/setup-sh7724.c
+0
-4
arch/sh/kernel/cpu/sh4a/setup-sh7763.c
arch/sh/kernel/cpu/sh4a/setup-sh7763.c
+6
-6
arch/sh/kernel/cpu/sh4a/setup-sh7770.c
arch/sh/kernel/cpu/sh4a/setup-sh7770.c
+9
-9
arch/sh/kernel/cpu/sh4a/setup-sh7780.c
arch/sh/kernel/cpu/sh4a/setup-sh7780.c
+6
-6
arch/sh/kernel/cpu/sh4a/setup-sh7785.c
arch/sh/kernel/cpu/sh4a/setup-sh7785.c
+12
-6
arch/sh/kernel/cpu/sh4a/setup-sh7786.c
arch/sh/kernel/cpu/sh4a/setup-sh7786.c
+12
-12
arch/sh/kernel/cpu/sh4a/setup-shx3.c
arch/sh/kernel/cpu/sh4a/setup-shx3.c
+6
-6
arch/sh/kernel/cpu/sh5/clock-sh5.c
arch/sh/kernel/cpu/sh5/clock-sh5.c
+6
-6
arch/sh/kernel/cpu/sh5/setup-sh5.c
arch/sh/kernel/cpu/sh5/setup-sh5.c
+3
-3
drivers/i2c/busses/i2c-sh7760.c
drivers/i2c/busses/i2c-sh7760.c
+1
-1
drivers/serial/sh-sci.c
drivers/serial/sh-sci.c
+1
-1
No files found.
arch/sh/Kconfig
View file @
464c9e10
...
...
@@ -513,6 +513,13 @@ config SH_PCLK_FREQ
This is necessary for determining the reference clock value on
platforms lacking an RTC.
config SH_CLK_CPG
def_bool y
config SH_CLK_CPG_LEGACY
depends on SH_CLK_CPG
def_bool y if !CPU_SUBTYPE_SH7785
config SH_CLK_MD
int "CPU Mode Pin Setting"
depends on CPU_SH2
...
...
arch/sh/boards/board-sh7785lcr.c
View file @
464c9e10
...
...
@@ -2,12 +2,12 @@
* Renesas Technology Corp. R0P7785LC0011RL Support.
*
* Copyright (C) 2008 Yoshihiro Shimoda
* Copyright (C) 2009 Paul Mundt
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*/
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/sm501.h>
...
...
@@ -19,8 +19,11 @@
#include <linux/i2c-pca-platform.h>
#include <linux/i2c-algo-pca.h>
#include <linux/irq.h>
#include <asm/heartbeat.h>
#include <linux/clk.h>
#include <linux/errno.h>
#include <mach/sh7785lcr.h>
#include <asm/heartbeat.h>
#include <asm/clock.h>
/*
* NOTE: This board has 2 physical memory maps.
...
...
@@ -273,6 +276,20 @@ void __init init_sh7785lcr_IRQ(void)
plat_irq_setup_pins
(
IRQ_MODE_IRQ3210
);
}
static
int
sh7785lcr_clk_init
(
void
)
{
struct
clk
*
clk
;
int
ret
;
clk
=
clk_get
(
NULL
,
"extal"
);
if
(
!
clk
||
IS_ERR
(
clk
))
return
PTR_ERR
(
clk
);
ret
=
clk_set_rate
(
clk
,
33333333
);
clk_put
(
clk
);
return
ret
;
}
static
void
sh7785lcr_power_off
(
void
)
{
unsigned
char
*
p
;
...
...
@@ -309,6 +326,7 @@ static void __init sh7785lcr_setup(char **cmdline_p)
static
struct
sh_machine_vector
mv_sh7785lcr
__initmv
=
{
.
mv_name
=
"SH7785LCR"
,
.
mv_setup
=
sh7785lcr_setup
,
.
mv_clk_init
=
sh7785lcr_clk_init
,
.
mv_init_irq
=
init_sh7785lcr_IRQ
,
};
arch/sh/include/asm/clock.h
View file @
464c9e10
...
...
@@ -10,9 +10,9 @@ struct clk;
struct
clk_ops
{
void
(
*
init
)(
struct
clk
*
clk
);
void
(
*
enable
)(
struct
clk
*
clk
);
int
(
*
enable
)(
struct
clk
*
clk
);
void
(
*
disable
)(
struct
clk
*
clk
);
void
(
*
recalc
)(
struct
clk
*
clk
);
unsigned
long
(
*
recalc
)(
struct
clk
*
clk
);
int
(
*
set_rate
)(
struct
clk
*
clk
,
unsigned
long
rate
,
int
algo_id
);
int
(
*
set_parent
)(
struct
clk
*
clk
,
struct
clk
*
parent
);
long
(
*
round_rate
)(
struct
clk
*
clk
,
unsigned
long
rate
);
...
...
@@ -27,44 +27,46 @@ struct clk {
struct
clk
*
parent
;
struct
clk_ops
*
ops
;
struct
list_head
children
;
struct
list_head
sibling
;
/* node for children */
int
usecount
;
unsigned
long
rate
;
unsigned
long
flags
;
void
__iomem
*
enable_reg
;
unsigned
int
enable_bit
;
unsigned
long
arch_flags
;
void
*
priv
;
struct
dentry
*
dentry
;
};
struct
clk_lookup
{
struct
list_head
node
;
const
char
*
dev_id
;
const
char
*
con_id
;
struct
clk
*
clk
;
};
#define CLK_ALWAYS_ENABLED (1 << 0)
#define CLK_RATE_PROPAGATES (1 << 1)
#define CLK_NEEDS_INIT (1 << 2)
#define CLK_ENABLE_ON_INIT (1 << 0)
/* Should be defined by processor-specific code */
void
arch_init_clk_ops
(
struct
clk_ops
**
,
int
type
);
void
__deprecated
arch_init_clk_ops
(
struct
clk_ops
**
,
int
type
);
int
__init
arch_clk_init
(
void
);
/* arch/sh/kernel/cpu/clock.c */
int
clk_init
(
void
);
void
clk_recalc_rate
(
struct
clk
*
);
unsigned
long
followparent_recalc
(
struct
clk
*
);
void
recalculate_root_clocks
(
void
);
void
propagate_rate
(
struct
clk
*
);
int
clk_reparent
(
struct
clk
*
child
,
struct
clk
*
parent
);
int
clk_register
(
struct
clk
*
);
void
clk_unregister
(
struct
clk
*
);
static
inline
int
clk_always_enable
(
const
char
*
id
)
{
struct
clk
*
clk
;
int
ret
;
clk
=
clk_get
(
NULL
,
id
);
if
(
IS_ERR
(
clk
))
return
PTR_ERR
(
clk
);
ret
=
clk_enable
(
clk
);
if
(
ret
)
clk_put
(
clk
);
return
ret
;
}
/* arch/sh/kernel/cpu/clock-cpg.c */
int
__init
__deprecated
cpg_clk_init
(
void
);
/* the exported API, in addition to clk_set_rate */
/**
...
...
@@ -96,4 +98,23 @@ enum clk_sh_algo_id {
IP_N1
,
};
struct
clk_div_mult_table
{
unsigned
int
*
divisors
;
unsigned
int
nr_divisors
;
unsigned
int
*
multipliers
;
unsigned
int
nr_multipliers
;
};
struct
cpufreq_frequency_table
;
void
clk_rate_table_build
(
struct
clk
*
clk
,
struct
cpufreq_frequency_table
*
freq_table
,
int
nr_freqs
,
struct
clk_div_mult_table
*
src_table
,
unsigned
long
*
bitmap
);
long
clk_rate_table_round
(
struct
clk
*
clk
,
struct
cpufreq_frequency_table
*
freq_table
,
unsigned
long
rate
);
#endif
/* __ASM_SH_CLOCK_H */
arch/sh/include/asm/machvec.h
View file @
464c9e10
...
...
@@ -46,6 +46,8 @@ struct sh_machine_vector {
void
__iomem
*
(
*
mv_ioport_map
)(
unsigned
long
port
,
unsigned
int
size
);
void
(
*
mv_ioport_unmap
)(
void
__iomem
*
);
int
(
*
mv_clk_init
)(
void
);
};
extern
struct
sh_machine_vector
sh_mv
;
...
...
arch/sh/kernel/cpu/Makefile
View file @
464c9e10
...
...
@@ -17,5 +17,6 @@ obj-$(CONFIG_ARCH_SHMOBILE) += shmobile/
obj-$(CONFIG_UBC_WAKEUP)
+=
ubc.o
obj-$(CONFIG_SH_ADC)
+=
adc.o
obj-$(CONFIG_SH_CLK_CPG)
+=
clock-cpg.o
obj-y
+=
irq/ init.o clock.o
arch/sh/kernel/cpu/clock-cpg.c
0 → 100644
View file @
464c9e10
#include <linux/clk.h>
#include <linux/compiler.h>
#include <asm/clock.h>
#ifdef CONFIG_SH_CLK_CPG_LEGACY
static
struct
clk
master_clk
=
{
.
name
=
"master_clk"
,
.
flags
=
CLK_ENABLE_ON_INIT
,
.
rate
=
CONFIG_SH_PCLK_FREQ
,
};
static
struct
clk
peripheral_clk
=
{
.
name
=
"peripheral_clk"
,
.
parent
=
&
master_clk
,
.
flags
=
CLK_ENABLE_ON_INIT
,
};
static
struct
clk
bus_clk
=
{
.
name
=
"bus_clk"
,
.
parent
=
&
master_clk
,
.
flags
=
CLK_ENABLE_ON_INIT
,
};
static
struct
clk
cpu_clk
=
{
.
name
=
"cpu_clk"
,
.
parent
=
&
master_clk
,
.
flags
=
CLK_ENABLE_ON_INIT
,
};
/*
* The ordering of these clocks matters, do not change it.
*/
static
struct
clk
*
onchip_clocks
[]
=
{
&
master_clk
,
&
peripheral_clk
,
&
bus_clk
,
&
cpu_clk
,
};
int
__init
__deprecated
cpg_clk_init
(
void
)
{
int
i
,
ret
=
0
;
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
onchip_clocks
);
i
++
)
{
struct
clk
*
clk
=
onchip_clocks
[
i
];
arch_init_clk_ops
(
&
clk
->
ops
,
i
);
if
(
clk
->
ops
)
ret
|=
clk_register
(
clk
);
}
return
ret
;
}
/*
* Placeholder for compatability, until the lazy CPUs do this
* on their own.
*/
int
__init
__weak
arch_clk_init
(
void
)
{
return
cpg_clk_init
();
}
#endif
/* CONFIG_SH_CPG_CLK_LEGACY */
arch/sh/kernel/cpu/clock.c
View file @
464c9e10
This diff is collapsed.
Click to expand it.
arch/sh/kernel/cpu/sh2/clock-sh7619.c
View file @
464c9e10
...
...
@@ -38,32 +38,27 @@ static struct clk_ops sh7619_master_clk_ops = {
.
init
=
master_clk_init
,
};
static
void
module_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
module_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
FREQCR
)
&
0x0007
);
clk
->
rate
=
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7619_module_clk_ops
=
{
.
recalc
=
module_clk_recalc
,
};
static
void
bus_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
bus_clk_recalc
(
struct
clk
*
clk
)
{
clk
->
rate
=
clk
->
parent
->
rate
/
pll1rate
[(
ctrl_inw
(
FREQCR
)
>>
8
)
&
7
];
return
clk
->
parent
->
rate
/
pll1rate
[(
ctrl_inw
(
FREQCR
)
>>
8
)
&
7
];
}
static
struct
clk_ops
sh7619_bus_clk_ops
=
{
.
recalc
=
bus_clk_recalc
,
};
static
void
cpu_clk_recalc
(
struct
clk
*
clk
)
{
clk
->
rate
=
clk
->
parent
->
rate
;
}
static
struct
clk_ops
sh7619_cpu_clk_ops
=
{
.
recalc
=
cpu_clk
_recalc
,
.
recalc
=
followparent
_recalc
,
};
static
struct
clk_ops
*
sh7619_clk_ops
[]
=
{
...
...
@@ -78,4 +73,3 @@ void __init arch_init_clk_ops(struct clk_ops **ops, int idx)
if
(
idx
<
ARRAY_SIZE
(
sh7619_clk_ops
))
*
ops
=
sh7619_clk_ops
[
idx
];
}
arch/sh/kernel/cpu/sh2/setup-sh7619.c
View file @
464c9e10
...
...
@@ -115,7 +115,7 @@ static struct sh_timer_config cmt0_platform_data = {
.
name
=
"CMT0"
,
.
channel_offset
=
0x02
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
125
,
.
clocksource_rating
=
0
,
/* disabled due to code generation issues */
};
...
...
@@ -147,7 +147,7 @@ static struct sh_timer_config cmt1_platform_data = {
.
name
=
"CMT1"
,
.
channel_offset
=
0x08
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
125
,
.
clocksource_rating
=
0
,
/* disabled due to code generation issues */
};
...
...
arch/sh/kernel/cpu/sh2a/clock-sh7201.c
View file @
464c9e10
...
...
@@ -34,37 +34,37 @@ static const int pfc_divisors[]={1,2,3,4,6,8,12};
static
void
master_clk_init
(
struct
clk
*
clk
)
{
clk
->
rate
=
10000000
*
PLL2
*
pll1rate
[(
ctrl_inw
(
FREQCR
)
>>
8
)
&
0x0007
];
return
10000000
*
PLL2
*
pll1rate
[(
ctrl_inw
(
FREQCR
)
>>
8
)
&
0x0007
];
}
static
struct
clk_ops
sh7201_master_clk_ops
=
{
.
init
=
master_clk_init
,
};
static
void
module_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
module_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
FREQCR
)
&
0x0007
);
clk
->
rate
=
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7201_module_clk_ops
=
{
.
recalc
=
module_clk_recalc
,
};
static
void
bus_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
bus_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
FREQCR
)
&
0x0007
);
clk
->
rate
=
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7201_bus_clk_ops
=
{
.
recalc
=
bus_clk_recalc
,
};
static
void
cpu_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
cpu_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inw
(
FREQCR
)
>>
4
)
&
0x0007
);
clk
->
rate
=
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
}
static
struct
clk_ops
sh7201_cpu_clk_ops
=
{
...
...
arch/sh/kernel/cpu/sh2a/clock-sh7203.c
View file @
464c9e10
...
...
@@ -46,33 +46,28 @@ static struct clk_ops sh7203_master_clk_ops = {
.
init
=
master_clk_init
,
};
static
void
module_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
module_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
FREQCR
)
&
0x0007
);
clk
->
rate
=
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7203_module_clk_ops
=
{
.
recalc
=
module_clk_recalc
,
};
static
void
bus_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
bus_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
FREQCR
)
&
0x0007
);
clk
->
rate
=
clk
->
parent
->
rate
/
pfc_divisors
[
idx
-
2
];
return
clk
->
parent
->
rate
/
pfc_divisors
[
idx
-
2
];
}
static
struct
clk_ops
sh7203_bus_clk_ops
=
{
.
recalc
=
bus_clk_recalc
,
};
static
void
cpu_clk_recalc
(
struct
clk
*
clk
)
{
clk
->
rate
=
clk
->
parent
->
rate
;
}
static
struct
clk_ops
sh7203_cpu_clk_ops
=
{
.
recalc
=
cpu_clk
_recalc
,
.
recalc
=
followparent
_recalc
,
};
static
struct
clk_ops
*
sh7203_clk_ops
[]
=
{
...
...
arch/sh/kernel/cpu/sh2a/clock-sh7206.c
View file @
464c9e10
...
...
@@ -41,29 +41,29 @@ static struct clk_ops sh7206_master_clk_ops = {
.
init
=
master_clk_init
,
};
static
void
module_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
module_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
FREQCR
)
&
0x0007
);
clk
->
rate
=
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7206_module_clk_ops
=
{
.
recalc
=
module_clk_recalc
,
};
static
void
bus_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
bus_clk_recalc
(
struct
clk
*
clk
)
{
clk
->
rate
=
clk
->
parent
->
rate
/
pll1rate
[(
ctrl_inw
(
FREQCR
)
>>
8
)
&
0x0007
];
return
clk
->
parent
->
rate
/
pll1rate
[(
ctrl_inw
(
FREQCR
)
>>
8
)
&
0x0007
];
}
static
struct
clk_ops
sh7206_bus_clk_ops
=
{
.
recalc
=
bus_clk_recalc
,
};
static
void
cpu_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
cpu_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
FREQCR
)
&
0x0007
);
clk
->
rate
=
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
}
static
struct
clk_ops
sh7206_cpu_clk_ops
=
{
...
...
arch/sh/kernel/cpu/sh2a/setup-mxg.c
View file @
464c9e10
...
...
@@ -118,7 +118,7 @@ static struct sh_timer_config mtu2_0_platform_data = {
.
name
=
"MTU2_0"
,
.
channel_offset
=
-
0x80
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -149,7 +149,7 @@ static struct sh_timer_config mtu2_1_platform_data = {
.
name
=
"MTU2_1"
,
.
channel_offset
=
-
0x100
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -180,7 +180,7 @@ static struct sh_timer_config mtu2_2_platform_data = {
.
name
=
"MTU2_2"
,
.
channel_offset
=
0x80
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
arch/sh/kernel/cpu/sh2a/setup-sh7201.c
View file @
464c9e10
...
...
@@ -255,7 +255,7 @@ static struct sh_timer_config mtu2_0_platform_data = {
.
name
=
"MTU2_0"
,
.
channel_offset
=
-
0x80
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -286,7 +286,7 @@ static struct sh_timer_config mtu2_1_platform_data = {
.
name
=
"MTU2_1"
,
.
channel_offset
=
-
0x100
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -317,7 +317,7 @@ static struct sh_timer_config mtu2_2_platform_data = {
.
name
=
"MTU2_2"
,
.
channel_offset
=
0x80
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
arch/sh/kernel/cpu/sh2a/setup-sh7203.c
View file @
464c9e10
...
...
@@ -211,7 +211,7 @@ static struct sh_timer_config cmt0_platform_data = {
.
name
=
"CMT0"
,
.
channel_offset
=
0x02
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
125
,
.
clocksource_rating
=
0
,
/* disabled due to code generation issues */
};
...
...
@@ -243,7 +243,7 @@ static struct sh_timer_config cmt1_platform_data = {
.
name
=
"CMT1"
,
.
channel_offset
=
0x08
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
125
,
.
clocksource_rating
=
0
,
/* disabled due to code generation issues */
};
...
...
@@ -275,7 +275,7 @@ static struct sh_timer_config mtu2_0_platform_data = {
.
name
=
"MTU2_0"
,
.
channel_offset
=
-
0x80
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -306,7 +306,7 @@ static struct sh_timer_config mtu2_1_platform_data = {
.
name
=
"MTU2_1"
,
.
channel_offset
=
-
0x100
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
arch/sh/kernel/cpu/sh2a/setup-sh7206.c
View file @
464c9e10
...
...
@@ -171,7 +171,7 @@ static struct sh_timer_config cmt0_platform_data = {
.
name
=
"CMT0"
,
.
channel_offset
=
0x02
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
125
,
.
clocksource_rating
=
0
,
/* disabled due to code generation issues */
};
...
...
@@ -203,7 +203,7 @@ static struct sh_timer_config cmt1_platform_data = {
.
name
=
"CMT1"
,
.
channel_offset
=
0x08
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
125
,
.
clocksource_rating
=
0
,
/* disabled due to code generation issues */
};
...
...
@@ -235,7 +235,7 @@ static struct sh_timer_config mtu2_0_platform_data = {
.
name
=
"MTU2_0"
,
.
channel_offset
=
-
0x80
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -266,7 +266,7 @@ static struct sh_timer_config mtu2_1_platform_data = {
.
name
=
"MTU2_1"
,
.
channel_offset
=
-
0x100
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -297,7 +297,7 @@ static struct sh_timer_config mtu2_2_platform_data = {
.
name
=
"MTU2_2"
,
.
channel_offset
=
0x80
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
arch/sh/kernel/cpu/sh3/clock-sh3.c
View file @
464c9e10
...
...
@@ -38,36 +38,36 @@ static struct clk_ops sh3_master_clk_ops = {
.
init
=
master_clk_init
,
};
static
void
module_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
module_clk_recalc
(
struct
clk
*
clk
)
{
int
frqcr
=
ctrl_inw
(
FRQCR
);
int
idx
=
((
frqcr
&
0x2000
)
>>
11
)
|
(
frqcr
&
0x0003
);
clk
->
rate
=
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
}
static
struct
clk_ops
sh3_module_clk_ops
=
{
.
recalc
=
module_clk_recalc
,
};
static
void
bus_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
bus_clk_recalc
(
struct
clk
*
clk
)
{
int
frqcr
=
ctrl_inw
(
FRQCR
);
int
idx
=
((
frqcr
&
0x8000
)
>>
13
)
|
((
frqcr
&
0x0030
)
>>
4
);
clk
->
rate
=
clk
->
parent
->
rate
/
stc_multipliers
[
idx
];
return
clk
->
parent
->
rate
/
stc_multipliers
[
idx
];
}
static
struct
clk_ops
sh3_bus_clk_ops
=
{
.
recalc
=
bus_clk_recalc
,
};
static
void
cpu_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
cpu_clk_recalc
(
struct
clk
*
clk
)
{
int
frqcr
=
ctrl_inw
(
FRQCR
);
int
idx
=
((
frqcr
&
0x4000
)
>>
12
)
|
((
frqcr
&
0x000c
)
>>
2
);
clk
->
rate
=
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
}
static
struct
clk_ops
sh3_cpu_clk_ops
=
{
...
...
arch/sh/kernel/cpu/sh3/clock-sh7705.c
View file @
464c9e10
...
...
@@ -39,30 +39,30 @@ static struct clk_ops sh7705_master_clk_ops = {
.
init
=
master_clk_init
,
};
static
void
module_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
module_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
ctrl_inw
(
FRQCR
)
&
0x0003
;
clk
->
rate
=
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7705_module_clk_ops
=
{
.
recalc
=
module_clk_recalc
,
};
static
void
bus_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
bus_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
FRQCR
)
&
0x0300
)
>>
8
;
clk
->
rate
=
clk
->
parent
->
rate
/
stc_multipliers
[
idx
];
return
clk
->
parent
->
rate
/
stc_multipliers
[
idx
];
}
static
struct
clk_ops
sh7705_bus_clk_ops
=
{
.
recalc
=
bus_clk_recalc
,
};
static
void
cpu_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
cpu_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
FRQCR
)
&
0x0030
)
>>
4
;
clk
->
rate
=
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
}
static
struct
clk_ops
sh7705_cpu_clk_ops
=
{
...
...
arch/sh/kernel/cpu/sh3/clock-sh7706.c
View file @
464c9e10
...
...
@@ -34,36 +34,36 @@ static struct clk_ops sh7706_master_clk_ops = {
.
init
=
master_clk_init
,
};
static
void
module_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
module_clk_recalc
(
struct
clk
*
clk
)
{
int
frqcr
=
ctrl_inw
(
FRQCR
);
int
idx
=
((
frqcr
&
0x2000
)
>>
11
)
|
(
frqcr
&
0x0003
);
clk
->
rate
=
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7706_module_clk_ops
=
{
.
recalc
=
module_clk_recalc
,
};
static
void
bus_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
bus_clk_recalc
(
struct
clk
*
clk
)
{
int
frqcr
=
ctrl_inw
(
FRQCR
);
int
idx
=
((
frqcr
&
0x8000
)
>>
13
)
|
((
frqcr
&
0x0030
)
>>
4
);
clk
->
rate
=
clk
->
parent
->
rate
/
stc_multipliers
[
idx
];
return
clk
->
parent
->
rate
/
stc_multipliers
[
idx
];
}
static
struct
clk_ops
sh7706_bus_clk_ops
=
{
.
recalc
=
bus_clk_recalc
,
};
static
void
cpu_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
cpu_clk_recalc
(
struct
clk
*
clk
)
{
int
frqcr
=
ctrl_inw
(
FRQCR
);
int
idx
=
((
frqcr
&
0x4000
)
>>
12
)
|
((
frqcr
&
0x000c
)
>>
2
);
clk
->
rate
=
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
}
static
struct
clk_ops
sh7706_cpu_clk_ops
=
{
...
...
arch/sh/kernel/cpu/sh3/clock-sh7709.c
View file @
464c9e10
...
...
@@ -41,12 +41,12 @@ static struct clk_ops sh7709_master_clk_ops = {
.
init
=
master_clk_init
,
};
static
void
module_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
module_clk_recalc
(
struct
clk
*
clk
)
{
int
frqcr
=
ctrl_inw
(
FRQCR
);
int
idx
=
((
frqcr
&
0x2000
)
>>
11
)
|
(
frqcr
&
0x0003
);
clk
->
rate
=
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7709_module_clk_ops
=
{
...
...
@@ -56,25 +56,25 @@ static struct clk_ops sh7709_module_clk_ops = {
.
recalc
=
module_clk_recalc
,
};
static
void
bus_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
bus_clk_recalc
(
struct
clk
*
clk
)
{
int
frqcr
=
ctrl_inw
(
FRQCR
);
int
idx
=
(
frqcr
&
0x0080
)
?
((
frqcr
&
0x8000
)
>>
13
)
|
((
frqcr
&
0x0030
)
>>
4
)
:
1
;
clk
->
rate
=
clk
->
parent
->
rate
*
stc_multipliers
[
idx
];
return
clk
->
parent
->
rate
*
stc_multipliers
[
idx
];
}
static
struct
clk_ops
sh7709_bus_clk_ops
=
{
.
recalc
=
bus_clk_recalc
,
};
static
void
cpu_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
cpu_clk_recalc
(
struct
clk
*
clk
)
{
int
frqcr
=
ctrl_inw
(
FRQCR
);
int
idx
=
((
frqcr
&
0x4000
)
>>
12
)
|
((
frqcr
&
0x000c
)
>>
2
);
clk
->
rate
=
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
}
static
struct
clk_ops
sh7709_cpu_clk_ops
=
{
...
...
arch/sh/kernel/cpu/sh3/clock-sh7710.c
View file @
464c9e10
...
...
@@ -33,30 +33,30 @@ static struct clk_ops sh7710_master_clk_ops = {
.
init
=
master_clk_init
,
};
static
void
module_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
module_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
FRQCR
)
&
0x0007
);
clk
->
rate
=
clk
->
parent
->
rate
/
md_table
[
idx
];
return
clk
->
parent
->
rate
/
md_table
[
idx
];
}
static
struct
clk_ops
sh7710_module_clk_ops
=
{
.
recalc
=
module_clk_recalc
,
};
static
void
bus_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
bus_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
FRQCR
)
&
0x0700
)
>>
8
;
clk
->
rate
=
clk
->
parent
->
rate
/
md_table
[
idx
];
return
clk
->
parent
->
rate
/
md_table
[
idx
];
}
static
struct
clk_ops
sh7710_bus_clk_ops
=
{
.
recalc
=
bus_clk_recalc
,
};
static
void
cpu_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
cpu_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
FRQCR
)
&
0x0070
)
>>
4
;
clk
->
rate
=
clk
->
parent
->
rate
/
md_table
[
idx
];
return
clk
->
parent
->
rate
/
md_table
[
idx
];
}
static
struct
clk_ops
sh7710_cpu_clk_ops
=
{
...
...
arch/sh/kernel/cpu/sh3/clock-sh7712.c
View file @
464c9e10
...
...
@@ -33,24 +33,24 @@ static struct clk_ops sh7712_master_clk_ops = {
.
init
=
master_clk_init
,
};
static
void
module_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
module_clk_recalc
(
struct
clk
*
clk
)
{
int
frqcr
=
ctrl_inw
(
FRQCR
);
int
idx
=
frqcr
&
0x0007
;
clk
->
rate
=
clk
->
parent
->
rate
/
divisors
[
idx
];
return
clk
->
parent
->
rate
/
divisors
[
idx
];
}
static
struct
clk_ops
sh7712_module_clk_ops
=
{
.
recalc
=
module_clk_recalc
,
};
static
void
cpu_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
cpu_clk_recalc
(
struct
clk
*
clk
)
{
int
frqcr
=
ctrl_inw
(
FRQCR
);
int
idx
=
(
frqcr
&
0x0030
)
>>
4
;
clk
->
rate
=
clk
->
parent
->
rate
/
divisors
[
idx
];
return
clk
->
parent
->
rate
/
divisors
[
idx
];
}
static
struct
clk_ops
sh7712_cpu_clk_ops
=
{
...
...
arch/sh/kernel/cpu/sh3/setup-sh7705.c
View file @
464c9e10
...
...
@@ -121,7 +121,7 @@ static struct sh_timer_config tmu0_platform_data = {
.
name
=
"TMU0"
,
.
channel_offset
=
0x02
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -152,7 +152,7 @@ static struct sh_timer_config tmu1_platform_data = {
.
name
=
"TMU1"
,
.
channel_offset
=
0xe
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clocksource_rating
=
200
,
};
...
...
@@ -183,7 +183,7 @@ static struct sh_timer_config tmu2_platform_data = {
.
name
=
"TMU2"
,
.
channel_offset
=
0x1a
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu2_resources
[]
=
{
...
...
arch/sh/kernel/cpu/sh3/setup-sh770x.c
View file @
464c9e10
...
...
@@ -149,7 +149,7 @@ static struct sh_timer_config tmu0_platform_data = {
.
name
=
"TMU0"
,
.
channel_offset
=
0x02
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -180,7 +180,7 @@ static struct sh_timer_config tmu1_platform_data = {
.
name
=
"TMU1"
,
.
channel_offset
=
0xe
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clocksource_rating
=
200
,
};
...
...
@@ -211,7 +211,7 @@ static struct sh_timer_config tmu2_platform_data = {
.
name
=
"TMU2"
,
.
channel_offset
=
0x1a
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu2_resources
[]
=
{
...
...
arch/sh/kernel/cpu/sh3/setup-sh7710.c
View file @
464c9e10
...
...
@@ -125,7 +125,7 @@ static struct sh_timer_config tmu0_platform_data = {
.
name
=
"TMU0"
,
.
channel_offset
=
0x02
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -156,7 +156,7 @@ static struct sh_timer_config tmu1_platform_data = {
.
name
=
"TMU1"
,
.
channel_offset
=
0xe
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clocksource_rating
=
200
,
};
...
...
@@ -187,7 +187,7 @@ static struct sh_timer_config tmu2_platform_data = {
.
name
=
"TMU2"
,
.
channel_offset
=
0x1a
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu2_resources
[]
=
{
...
...
arch/sh/kernel/cpu/sh3/setup-sh7720.c
View file @
464c9e10
...
...
@@ -128,7 +128,7 @@ static struct sh_timer_config cmt0_platform_data = {
.
name
=
"CMT0"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
125
,
.
clocksource_rating
=
125
,
};
...
...
@@ -160,7 +160,7 @@ static struct sh_timer_config cmt1_platform_data = {
.
name
=
"CMT1"
,
.
channel_offset
=
0x20
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
cmt1_resources
[]
=
{
...
...
@@ -190,7 +190,7 @@ static struct sh_timer_config cmt2_platform_data = {
.
name
=
"CMT2"
,
.
channel_offset
=
0x30
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
cmt2_resources
[]
=
{
...
...
@@ -220,7 +220,7 @@ static struct sh_timer_config cmt3_platform_data = {
.
name
=
"CMT3"
,
.
channel_offset
=
0x40
,
.
timer_bit
=
3
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
cmt3_resources
[]
=
{
...
...
@@ -250,7 +250,7 @@ static struct sh_timer_config cmt4_platform_data = {
.
name
=
"CMT4"
,
.
channel_offset
=
0x50
,
.
timer_bit
=
4
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
cmt4_resources
[]
=
{
...
...
@@ -280,7 +280,7 @@ static struct sh_timer_config tmu0_platform_data = {
.
name
=
"TMU0"
,
.
channel_offset
=
0x02
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -311,7 +311,7 @@ static struct sh_timer_config tmu1_platform_data = {
.
name
=
"TMU1"
,
.
channel_offset
=
0xe
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clocksource_rating
=
200
,
};
...
...
@@ -342,7 +342,7 @@ static struct sh_timer_config tmu2_platform_data = {
.
name
=
"TMU2"
,
.
channel_offset
=
0x1a
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu2_resources
[]
=
{
...
...
arch/sh/kernel/cpu/sh4/clock-sh4-202.c
View file @
464c9e10
...
...
@@ -21,10 +21,10 @@
static
int
frqcr3_divisors
[]
=
{
1
,
2
,
3
,
4
,
6
,
8
,
16
};
static
int
frqcr3_values
[]
=
{
0
,
1
,
2
,
3
,
4
,
5
,
6
};
static
void
emi_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
emi_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
ctrl_inl
(
CPG2_FRQCR3
)
&
0x0007
;
clk
->
rate
=
clk
->
parent
->
rate
/
frqcr3_divisors
[
idx
];
return
clk
->
parent
->
rate
/
frqcr3_divisors
[
idx
];
}
static
inline
int
frqcr3_lookup
(
struct
clk
*
clk
,
unsigned
long
rate
)
...
...
@@ -46,14 +46,14 @@ static struct clk_ops sh4202_emi_clk_ops = {
static
struct
clk
sh4202_emi_clk
=
{
.
name
=
"emi_clk"
,
.
flags
=
CLK_
ALWAYS_ENABLED
,
.
flags
=
CLK_
ENABLE_ON_INIT
,
.
ops
=
&
sh4202_emi_clk_ops
,
};
static
void
femi_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
femi_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inl
(
CPG2_FRQCR3
)
>>
3
)
&
0x0007
;
clk
->
rate
=
clk
->
parent
->
rate
/
frqcr3_divisors
[
idx
];
return
clk
->
parent
->
rate
/
frqcr3_divisors
[
idx
];
}
static
struct
clk_ops
sh4202_femi_clk_ops
=
{
...
...
@@ -62,7 +62,7 @@ static struct clk_ops sh4202_femi_clk_ops = {
static
struct
clk
sh4202_femi_clk
=
{
.
name
=
"femi_clk"
,
.
flags
=
CLK_
ALWAYS_ENABLED
,
.
flags
=
CLK_
ENABLE_ON_INIT
,
.
ops
=
&
sh4202_femi_clk_ops
,
};
...
...
@@ -90,10 +90,10 @@ static void shoc_clk_init(struct clk *clk)
WARN_ON
(
i
==
ARRAY_SIZE
(
frqcr3_divisors
));
/* Undefined clock */
}
static
void
shoc_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
shoc_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inl
(
CPG2_FRQCR3
)
>>
6
)
&
0x0007
;
clk
->
rate
=
clk
->
parent
->
rate
/
frqcr3_divisors
[
idx
];
return
clk
->
parent
->
rate
/
frqcr3_divisors
[
idx
];
}
static
int
shoc_clk_verify_rate
(
struct
clk
*
clk
,
unsigned
long
rate
)
...
...
@@ -140,7 +140,7 @@ static struct clk_ops sh4202_shoc_clk_ops = {
static
struct
clk
sh4202_shoc_clk
=
{
.
name
=
"shoc_clk"
,
.
flags
=
CLK_
ALWAYS_ENABLED
,
.
flags
=
CLK_
ENABLE_ON_INIT
,
.
ops
=
&
sh4202_shoc_clk_ops
,
};
...
...
@@ -150,31 +150,22 @@ static struct clk *sh4202_onchip_clocks[] = {
&
sh4202_shoc_clk
,
};
static
int
__init
sh4202
_clk_init
(
void
)
int
__init
arch
_clk_init
(
void
)
{
struct
clk
*
clk
=
clk_get
(
NULL
,
"master_clk"
);
int
i
;
struct
clk
*
clk
;
int
i
,
ret
=
0
;
cpg_clk_init
();
clk
=
clk_get
(
NULL
,
"master_clk"
);
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
sh4202_onchip_clocks
);
i
++
)
{
struct
clk
*
clkp
=
sh4202_onchip_clocks
[
i
];
clkp
->
parent
=
clk
;
clk_register
(
clkp
);
clk_enable
(
clkp
);
ret
|=
clk_register
(
clkp
);
}
/*
* Now that we have the rest of the clocks registered, we need to
* force the parent clock to propagate so that these clocks will
* automatically figure out their rate. We cheat by handing the
* parent clock its current rate and forcing child propagation.
*/
clk_set_rate
(
clk
,
clk_get_rate
(
clk
));
clk_put
(
clk
);
return
0
;
return
ret
;
}
arch_initcall
(
sh4202_clk_init
);
arch/sh/kernel/cpu/sh4/clock-sh4.c
View file @
464c9e10
...
...
@@ -35,30 +35,30 @@ static struct clk_ops sh4_master_clk_ops = {
.
init
=
master_clk_init
,
};
static
void
module_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
module_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
FRQCR
)
&
0x0007
);
clk
->
rate
=
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
}
static
struct
clk_ops
sh4_module_clk_ops
=
{
.
recalc
=
module_clk_recalc
,
};
static
void
bus_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
bus_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
FRQCR
)
>>
3
)
&
0x0007
;
clk
->
rate
=
clk
->
parent
->
rate
/
bfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
bfc_divisors
[
idx
];
}
static
struct
clk_ops
sh4_bus_clk_ops
=
{
.
recalc
=
bus_clk_recalc
,
};
static
void
cpu_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
cpu_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
FRQCR
)
>>
6
)
&
0x0007
;
clk
->
rate
=
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
}
static
struct
clk_ops
sh4_cpu_clk_ops
=
{
...
...
arch/sh/kernel/cpu/sh4/setup-sh4-202.c
View file @
464c9e10
...
...
@@ -38,7 +38,7 @@ static struct sh_timer_config tmu0_platform_data = {
.
name
=
"TMU0"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -69,7 +69,7 @@ static struct sh_timer_config tmu1_platform_data = {
.
name
=
"TMU1"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clocksource_rating
=
200
,
};
...
...
@@ -100,7 +100,7 @@ static struct sh_timer_config tmu2_platform_data = {
.
name
=
"TMU2"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu2_resources
[]
=
{
...
...
arch/sh/kernel/cpu/sh4/setup-sh7750.c
View file @
464c9e10
...
...
@@ -65,7 +65,7 @@ static struct sh_timer_config tmu0_platform_data = {
.
name
=
"TMU0"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -96,7 +96,7 @@ static struct sh_timer_config tmu1_platform_data = {
.
name
=
"TMU1"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clocksource_rating
=
200
,
};
...
...
@@ -127,7 +127,7 @@ static struct sh_timer_config tmu2_platform_data = {
.
name
=
"TMU2"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu2_resources
[]
=
{
...
...
@@ -162,7 +162,7 @@ static struct sh_timer_config tmu3_platform_data = {
.
name
=
"TMU3"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu3_resources
[]
=
{
...
...
@@ -192,7 +192,7 @@ static struct sh_timer_config tmu4_platform_data = {
.
name
=
"TMU4"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu4_resources
[]
=
{
...
...
arch/sh/kernel/cpu/sh4/setup-sh7760.c
View file @
464c9e10
...
...
@@ -164,7 +164,7 @@ static struct sh_timer_config tmu0_platform_data = {
.
name
=
"TMU0"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -195,7 +195,7 @@ static struct sh_timer_config tmu1_platform_data = {
.
name
=
"TMU1"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clocksource_rating
=
200
,
};
...
...
@@ -226,7 +226,7 @@ static struct sh_timer_config tmu2_platform_data = {
.
name
=
"TMU2"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu2_resources
[]
=
{
...
...
arch/sh/kernel/cpu/sh4a/clock-sh7722.c
View file @
464c9e10
This diff is collapsed.
Click to expand it.
arch/sh/kernel/cpu/sh4a/clock-sh7763.c
View file @
464c9e10
...
...
@@ -29,33 +29,28 @@ static struct clk_ops sh7763_master_clk_ops = {
.
init
=
master_clk_init
,
};
static
void
module_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
module_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQCR
)
>>
4
)
&
0x07
);
clk
->
rate
=
clk
->
parent
->
rate
/
p0fc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
p0fc_divisors
[
idx
];
}
static
struct
clk_ops
sh7763_module_clk_ops
=
{
.
recalc
=
module_clk_recalc
,
};
static
void
bus_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
bus_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQCR
)
>>
16
)
&
0x07
);
clk
->
rate
=
clk
->
parent
->
rate
/
bfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
bfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7763_bus_clk_ops
=
{
.
recalc
=
bus_clk_recalc
,
};
static
void
cpu_clk_recalc
(
struct
clk
*
clk
)
{
clk
->
rate
=
clk
->
parent
->
rate
;
}
static
struct
clk_ops
sh7763_cpu_clk_ops
=
{
.
recalc
=
cpu_clk
_recalc
,
.
recalc
=
followparent
_recalc
,
};
static
struct
clk_ops
*
sh7763_clk_ops
[]
=
{
...
...
@@ -71,10 +66,10 @@ void __init arch_init_clk_ops(struct clk_ops **ops, int idx)
*
ops
=
sh7763_clk_ops
[
idx
];
}
static
void
shyway_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
shyway_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQCR
)
>>
20
)
&
0x07
);
clk
->
rate
=
clk
->
parent
->
rate
/
cfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
cfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7763_shyway_clk_ops
=
{
...
...
@@ -83,7 +78,7 @@ static struct clk_ops sh7763_shyway_clk_ops = {
static
struct
clk
sh7763_shyway_clk
=
{
.
name
=
"shyway_clk"
,
.
flags
=
CLK_
ALWAYS_ENABLED
,
.
flags
=
CLK_
ENABLE_ON_INIT
,
.
ops
=
&
sh7763_shyway_clk_ops
,
};
...
...
@@ -95,31 +90,22 @@ static struct clk *sh7763_onchip_clocks[] = {
&
sh7763_shyway_clk
,
};
static
int
__init
sh7763
_clk_init
(
void
)
int
__init
arch
_clk_init
(
void
)
{
struct
clk
*
clk
=
clk_get
(
NULL
,
"master_clk"
);
int
i
;
struct
clk
*
clk
;
int
i
,
ret
=
0
;
cpg_clk_init
();
clk
=
clk_get
(
NULL
,
"master_clk"
);
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
sh7763_onchip_clocks
);
i
++
)
{
struct
clk
*
clkp
=
sh7763_onchip_clocks
[
i
];
clkp
->
parent
=
clk
;
clk_register
(
clkp
);
clk_enable
(
clkp
);
ret
|=
clk_register
(
clkp
);
}
/*
* Now that we have the rest of the clocks registered, we need to
* force the parent clock to propagate so that these clocks will
* automatically figure out their rate. We cheat by handing the
* parent clock its current rate and forcing child propagation.
*/
clk_set_rate
(
clk
,
clk_get_rate
(
clk
));
clk_put
(
clk
);
return
0
;
return
ret
;
}
arch_initcall
(
sh7763_clk_init
);
arch/sh/kernel/cpu/sh4a/clock-sh7770.c
View file @
464c9e10
...
...
@@ -28,30 +28,30 @@ static struct clk_ops sh7770_master_clk_ops = {
.
init
=
master_clk_init
,
};
static
void
module_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
module_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQCR
)
>>
28
)
&
0x000f
);
clk
->
rate
=
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7770_module_clk_ops
=
{
.
recalc
=
module_clk_recalc
,
};
static
void
bus_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
bus_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inl
(
FRQCR
)
&
0x000f
);
clk
->
rate
=
clk
->
parent
->
rate
/
bfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
bfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7770_bus_clk_ops
=
{
.
recalc
=
bus_clk_recalc
,
};
static
void
cpu_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
cpu_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQCR
)
>>
24
)
&
0x000f
);
clk
->
rate
=
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
}
static
struct
clk_ops
sh7770_cpu_clk_ops
=
{
...
...
arch/sh/kernel/cpu/sh4a/clock-sh7780.c
View file @
464c9e10
...
...
@@ -29,30 +29,30 @@ static struct clk_ops sh7780_master_clk_ops = {
.
init
=
master_clk_init
,
};
static
void
module_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
module_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inl
(
FRQCR
)
&
0x0003
);
clk
->
rate
=
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7780_module_clk_ops
=
{
.
recalc
=
module_clk_recalc
,
};
static
void
bus_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
bus_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQCR
)
>>
16
)
&
0x0007
);
clk
->
rate
=
clk
->
parent
->
rate
/
bfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
bfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7780_bus_clk_ops
=
{
.
recalc
=
bus_clk_recalc
,
};
static
void
cpu_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
cpu_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQCR
)
>>
24
)
&
0x0001
);
clk
->
rate
=
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
}
static
struct
clk_ops
sh7780_cpu_clk_ops
=
{
...
...
@@ -72,10 +72,10 @@ void __init arch_init_clk_ops(struct clk_ops **ops, int idx)
*
ops
=
sh7780_clk_ops
[
idx
];
}
static
void
shyway_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
shyway_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQCR
)
>>
20
)
&
0x0007
);
clk
->
rate
=
clk
->
parent
->
rate
/
cfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
cfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7780_shyway_clk_ops
=
{
...
...
@@ -84,7 +84,7 @@ static struct clk_ops sh7780_shyway_clk_ops = {
static
struct
clk
sh7780_shyway_clk
=
{
.
name
=
"shyway_clk"
,
.
flags
=
CLK_
ALWAYS_ENABLED
,
.
flags
=
CLK_
ENABLE_ON_INIT
,
.
ops
=
&
sh7780_shyway_clk_ops
,
};
...
...
@@ -96,31 +96,22 @@ static struct clk *sh7780_onchip_clocks[] = {
&
sh7780_shyway_clk
,
};
static
int
__init
sh7780
_clk_init
(
void
)
int
__init
arch
_clk_init
(
void
)
{
struct
clk
*
clk
=
clk_get
(
NULL
,
"master_clk"
)
;
int
i
;
struct
clk
*
clk
;
int
i
,
ret
=
0
;
cpg_clk_init
();
clk
=
clk_get
(
NULL
,
"master_clk"
);
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
sh7780_onchip_clocks
);
i
++
)
{
struct
clk
*
clkp
=
sh7780_onchip_clocks
[
i
];
clkp
->
parent
=
clk
;
clk_register
(
clkp
);
clk_enable
(
clkp
);
ret
|=
clk_register
(
clkp
);
}
/*
* Now that we have the rest of the clocks registered, we need to
* force the parent clock to propagate so that these clocks will
* automatically figure out their rate. We cheat by handing the
* parent clock its current rate and forcing child propagation.
*/
clk_set_rate
(
clk
,
clk_get_rate
(
clk
));
clk_put
(
clk
);
return
0
;
return
ret
;
}
arch_initcall
(
sh7780_clk_init
);
arch/sh/kernel/cpu/sh4a/clock-sh7785.c
View file @
464c9e10
...
...
@@ -3,7 +3,7 @@
*
* SH7785 support for the clock framework
*
* Copyright (C) 2007 Paul Mundt
* Copyright (C) 2007
- 2009
Paul Mundt
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
...
...
@@ -11,152 +11,257 @@
*/
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/clk.h>
#include <linux/io.h>
#include <linux/cpufreq.h>
#include <asm/clock.h>
#include <asm/freq.h>
#include <asm/io.h>
static
int
ifc_divisors
[]
=
{
1
,
2
,
4
,
6
};
static
int
ufc_divisors
[]
=
{
1
,
1
,
4
,
6
};
static
int
sfc_divisors
[]
=
{
1
,
1
,
4
,
6
};
static
int
bfc_divisors
[]
=
{
1
,
1
,
1
,
1
,
1
,
12
,
16
,
18
,
24
,
32
,
36
,
48
,
1
,
1
,
1
,
1
};
static
int
mfc_divisors
[]
=
{
1
,
1
,
4
,
6
};
static
int
pfc_divisors
[]
=
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
18
,
24
,
32
,
36
,
48
,
1
,
1
,
1
,
1
};
static
void
master_clk_init
(
struct
clk
*
clk
)
{
clk
->
rate
*=
pfc_divisors
[
ctrl_inl
(
FRQMR1
)
&
0x000f
];
}
static
struct
clk_ops
sh7785_master_clk_ops
=
{
.
init
=
master_clk_init
,
static
unsigned
int
div2
[]
=
{
1
,
2
,
4
,
6
,
8
,
12
,
16
,
18
,
24
,
32
,
36
,
48
};
static
struct
clk_div_mult_table
cpg_div
=
{
.
divisors
=
div2
,
.
nr_divisors
=
ARRAY_SIZE
(
div2
),
};
st
atic
void
module_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inl
(
FRQMR1
)
&
0x000f
);
clk
->
rate
=
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
}
st
ruct
clk_priv
{
unsigned
int
shift
;
/* allowable divisor bitmap */
unsigned
long
div_bitmap
;
static
struct
clk_ops
sh7785_module_clk_ops
=
{
.
recalc
=
module_clk_recalc
,
/* Supportable frequencies + termination entry */
struct
cpufreq_frequency_table
freq_table
[
ARRAY_SIZE
(
div2
)
+
1
];
};
static
void
bus_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQMR1
)
>>
16
)
&
0x000f
);
clk
->
rate
=
clk
->
parent
->
rate
/
bfc_divisors
[
idx
];
#define FRQMR_CLK_DATA(_name, _shift, _div_bitmap) \
static struct clk_priv _name##_data = { \
.shift = _shift, \
.div_bitmap = _div_bitmap, \
\
.freq_table[0] = { \
.index = 0, \
.frequency = CPUFREQ_TABLE_END, \
}, \
}
static
struct
clk_ops
sh7785_bus_clk_ops
=
{
.
recalc
=
bus_clk_recalc
,
};
FRQMR_CLK_DATA
(
pfc
,
0
,
0x0f80
);
FRQMR_CLK_DATA
(
s3fc
,
4
,
0x0ff0
);
FRQMR_CLK_DATA
(
s2fc
,
8
,
0x0030
);
FRQMR_CLK_DATA
(
mfc
,
12
,
0x000c
);
FRQMR_CLK_DATA
(
bfc
,
16
,
0x0fe0
);
FRQMR_CLK_DATA
(
sfc
,
20
,
0x000c
);
FRQMR_CLK_DATA
(
ufc
,
24
,
0x000c
);
FRQMR_CLK_DATA
(
ifc
,
28
,
0x000e
);
static
void
cpu_clk
_recalc
(
struct
clk
*
clk
)
static
unsigned
long
frqmr
_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQMR1
)
>>
28
)
&
0x0003
);
clk
->
rate
=
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
struct
clk_priv
*
data
=
clk
->
priv
;
unsigned
int
idx
=
(
__raw_readl
(
FRQMR1
)
>>
data
->
shift
)
&
0x000f
;
clk_rate_table_build
(
clk
,
data
->
freq_table
,
ARRAY_SIZE
(
div2
),
&
cpg_div
,
&
data
->
div_bitmap
);
return
data
->
freq_table
[
idx
].
frequency
;
}
static
struct
clk_ops
sh7785_cpu_clk_ops
=
{
.
recalc
=
cpu_clk_recalc
,
};
static
long
frqmr_round_rate
(
struct
clk
*
clk
,
unsigned
long
rate
)
{
struct
clk_priv
*
data
=
clk
->
priv
;
return
clk_rate_table_round
(
clk
,
data
->
freq_table
,
rate
);
}
static
struct
clk_ops
*
sh7785_clk_ops
[]
=
{
&
sh7785_master_clk_ops
,
&
sh7785_module_clk_ops
,
&
sh7785_bus_clk_ops
,
&
sh7785_cpu_clk_ops
,
static
struct
clk_ops
frqmr_clk_ops
=
{
.
recalc
=
frqmr_recalc
,
.
round_rate
=
frqmr_round_rate
,
};
void
__init
arch_init_clk_ops
(
struct
clk_ops
**
ops
,
int
idx
)
static
unsigned
long
pll_recalc
(
struct
clk
*
clk
)
{
if
(
idx
<
ARRAY_SIZE
(
sh7785_clk_ops
))
*
ops
=
sh7785_clk_ops
[
idx
];
/*
* XXX: PLL1 multiplier is locked for the default clock mode,
* when mode pin detection and configuration support is added,
* select the multiplier dynamically.
*/
return
clk
->
parent
->
rate
*
36
;
}
static
void
shyway_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQMR1
)
>>
20
)
&
0x0003
);
clk
->
rate
=
clk
->
parent
->
rate
/
sfc_divisors
[
idx
];
}
static
struct
clk_ops
pll_clk_ops
=
{
.
recalc
=
pll_recalc
,
};
static
struct
clk_ops
sh7785_shyway_clk_ops
=
{
.
recalc
=
shyway_clk_recalc
,
/*
* Default rate for the root input clock, reset this with clk_set_rate()
* from the platform code.
*/
static
struct
clk
extal_clk
=
{
.
name
=
"extal"
,
.
id
=
-
1
,
.
rate
=
33333333
,
};
static
struct
clk
sh7785_shyway_clk
=
{
.
name
=
"shyway_clk"
,
.
flags
=
CLK_ALWAYS_ENABLED
,
.
ops
=
&
sh7785_shyway_clk_ops
,
static
struct
clk
pll_clk
=
{
.
name
=
"pll_clk"
,
.
id
=
-
1
,
.
ops
=
&
pll_clk_ops
,
.
parent
=
&
extal_clk
,
.
flags
=
CLK_ENABLE_ON_INIT
,
};
static
void
ddr_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQMR1
)
>>
12
)
&
0x0003
);
clk
->
rate
=
clk
->
parent
->
rate
/
mfc_divisors
[
idx
];
}
static
struct
clk
cpu_clk
=
{
.
name
=
"cpu_clk"
,
/* Ick */
.
id
=
-
1
,
.
ops
=
&
frqmr_clk_ops
,
.
parent
=
&
pll_clk
,
.
flags
=
CLK_ENABLE_ON_INIT
,
.
priv
=
&
ifc_data
,
};
static
struct
clk_ops
sh7785_ddr_clk_ops
=
{
.
recalc
=
ddr_clk_recalc
,
static
struct
clk
shyway_clk
=
{
.
name
=
"shyway_clk"
,
/* SHck */
.
id
=
-
1
,
.
ops
=
&
frqmr_clk_ops
,
.
parent
=
&
pll_clk
,
.
flags
=
CLK_ENABLE_ON_INIT
,
.
priv
=
&
sfc_data
,
};
static
struct
clk
sh7785_ddr_clk
=
{
.
name
=
"ddr_clk"
,
.
flags
=
CLK_ALWAYS_ENABLED
,
.
ops
=
&
sh7785_ddr_clk_ops
,
static
struct
clk
peripheral_clk
=
{
.
name
=
"peripheral_clk"
,
/* Pck */
.
id
=
-
1
,
.
ops
=
&
frqmr_clk_ops
,
.
parent
=
&
pll_clk
,
.
flags
=
CLK_ENABLE_ON_INIT
,
.
priv
=
&
pfc_data
,
};
static
void
ram_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQMR1
)
>>
24
)
&
0x0003
);
clk
->
rate
=
clk
->
parent
->
rate
/
ufc_divisors
[
idx
];
}
static
struct
clk
ddr_clk
=
{
.
name
=
"ddr_clk"
,
/* DDRck */
.
id
=
-
1
,
.
ops
=
&
frqmr_clk_ops
,
.
parent
=
&
pll_clk
,
.
flags
=
CLK_ENABLE_ON_INIT
,
.
priv
=
&
mfc_data
,
};
static
struct
clk_ops
sh7785_ram_clk_ops
=
{
.
recalc
=
ram_clk_recalc
,
static
struct
clk
bus_clk
=
{
.
name
=
"bus_clk"
,
/* Bck */
.
id
=
-
1
,
.
ops
=
&
frqmr_clk_ops
,
.
parent
=
&
pll_clk
,
.
flags
=
CLK_ENABLE_ON_INIT
,
.
priv
=
&
bfc_data
,
};
static
struct
clk
sh7785_ram_clk
=
{
.
name
=
"ram_clk"
,
.
flags
=
CLK_ALWAYS_ENABLED
,
.
ops
=
&
sh7785_ram_clk_ops
,
static
struct
clk
ga_clk
=
{
.
name
=
"ga_clk"
,
/* GAck */
.
id
=
-
1
,
.
ops
=
&
frqmr_clk_ops
,
.
parent
=
&
pll_clk
,
.
priv
=
&
s2fc_data
,
};
/*
* Additional SH7785-specific on-chip clocks that aren't already part of the
* clock framework
*/
static
struct
clk
*
sh7785_onchip_clocks
[]
=
{
&
sh7785_shyway_clk
,
&
sh7785_ddr_clk
,
&
sh7785_ram_clk
,
static
struct
clk
du_clk
=
{
.
name
=
"du_clk"
,
/* DUck */
.
id
=
-
1
,
.
ops
=
&
frqmr_clk_ops
,
.
parent
=
&
pll_clk
,
.
priv
=
&
s3fc_data
,
};
static
struct
clk
umem_clk
=
{
.
name
=
"umem_clk"
,
/* uck */
.
id
=
-
1
,
.
ops
=
&
frqmr_clk_ops
,
.
parent
=
&
pll_clk
,
.
flags
=
CLK_ENABLE_ON_INIT
,
.
priv
=
&
ufc_data
,
};
static
int
__init
sh7785_clk_init
(
void
)
static
struct
clk
*
clks
[]
=
{
&
extal_clk
,
&
pll_clk
,
&
cpu_clk
,
&
shyway_clk
,
&
peripheral_clk
,
&
ddr_clk
,
&
bus_clk
,
&
ga_clk
,
&
du_clk
,
&
umem_clk
,
};
static
int
mstpcr_clk_enable
(
struct
clk
*
clk
)
{
struct
clk
*
clk
=
clk_get
(
NULL
,
"master_clk"
);
int
i
;
__raw_writel
(
__raw_readl
(
clk
->
enable_reg
)
&
~
(
1
<<
clk
->
enable_bit
),
clk
->
enable_reg
);
return
0
;
}
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
sh7785_onchip_clocks
);
i
++
)
{
struct
clk
*
clkp
=
sh7785_onchip_clocks
[
i
];
static
void
mstpcr_clk_disable
(
struct
clk
*
clk
)
{
__raw_writel
(
__raw_readl
(
clk
->
enable_reg
)
|
(
1
<<
clk
->
enable_bit
),
clk
->
enable_reg
);
}
clkp
->
parent
=
clk
;
clk_register
(
clkp
);
clk_enable
(
clkp
);
}
static
struct
clk_ops
mstpcr_clk_ops
=
{
.
enable
=
mstpcr_clk_enable
,
.
disable
=
mstpcr_clk_disable
,
.
recalc
=
followparent_recalc
,
};
/*
* Now that we have the rest of the clocks registered, we need to
* force the parent clock to propagate so that these clocks will
* automatically figure out their rate. We cheat by handing the
* parent clock its current rate and forcing child propagation.
*/
clk_set_rate
(
clk
,
clk_get_rate
(
clk
));
#define MSTPCR0 0xffc80030
#define MSTPCR1 0xffc80034
clk_put
(
clk
);
#define CLK(_name, _id, _parent, _enable_reg, \
_enable_bit, _flags) \
{ \
.name = _name, \
.id = _id, \
.parent = _parent, \
.enable_reg = (void __iomem *)_enable_reg, \
.enable_bit = _enable_bit, \
.flags = _flags, \
.ops = &mstpcr_clk_ops, \
}
return
0
;
static
struct
clk
mstpcr_clks
[]
=
{
/* MSTPCR0 */
CLK
(
"scif_fck"
,
5
,
&
peripheral_clk
,
MSTPCR0
,
29
,
0
),
CLK
(
"scif_fck"
,
4
,
&
peripheral_clk
,
MSTPCR0
,
28
,
0
),
CLK
(
"scif_fck"
,
3
,
&
peripheral_clk
,
MSTPCR0
,
27
,
0
),
CLK
(
"scif_fck"
,
2
,
&
peripheral_clk
,
MSTPCR0
,
26
,
0
),
CLK
(
"scif_fck"
,
1
,
&
peripheral_clk
,
MSTPCR0
,
25
,
0
),
CLK
(
"scif_fck"
,
0
,
&
peripheral_clk
,
MSTPCR0
,
24
,
0
),
CLK
(
"ssi_fck"
,
1
,
&
peripheral_clk
,
MSTPCR0
,
21
,
0
),
CLK
(
"ssi_fck"
,
0
,
&
peripheral_clk
,
MSTPCR0
,
20
,
0
),
CLK
(
"hac_fck"
,
1
,
&
peripheral_clk
,
MSTPCR0
,
17
,
0
),
CLK
(
"hac_fck"
,
0
,
&
peripheral_clk
,
MSTPCR0
,
16
,
0
),
CLK
(
"mmcif_fck"
,
-
1
,
&
peripheral_clk
,
MSTPCR0
,
13
,
0
),
CLK
(
"flctl_fck"
,
-
1
,
&
peripheral_clk
,
MSTPCR0
,
12
,
0
),
CLK
(
"tmu345_fck"
,
-
1
,
&
peripheral_clk
,
MSTPCR0
,
9
,
0
),
CLK
(
"tmu012_fck"
,
-
1
,
&
peripheral_clk
,
MSTPCR0
,
8
,
0
),
CLK
(
"siof_fck"
,
-
1
,
&
peripheral_clk
,
MSTPCR0
,
3
,
0
),
CLK
(
"hspi_fck"
,
-
1
,
&
peripheral_clk
,
MSTPCR0
,
2
,
0
),
/* MSTPCR1 */
CLK
(
"hudi_fck"
,
-
1
,
NULL
,
MSTPCR1
,
19
,
0
),
CLK
(
"ubc_fck"
,
-
1
,
NULL
,
MSTPCR1
,
17
,
0
),
CLK
(
"dmac_11_6_fck"
,
-
1
,
NULL
,
MSTPCR1
,
5
,
0
),
CLK
(
"dmac_5_0_fck"
,
-
1
,
NULL
,
MSTPCR1
,
4
,
0
),
CLK
(
"gdta_fck"
,
-
1
,
NULL
,
MSTPCR1
,
0
,
0
),
};
int
__init
arch_clk_init
(
void
)
{
int
i
,
ret
=
0
;
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
clks
);
i
++
)
ret
|=
clk_register
(
clks
[
i
]);
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
mstpcr_clks
);
i
++
)
ret
|=
clk_register
(
&
mstpcr_clks
[
i
]);
return
ret
;
}
arch_initcall
(
sh7785_clk_init
);
arch/sh/kernel/cpu/sh4a/clock-sh7786.c
View file @
464c9e10
...
...
@@ -36,30 +36,30 @@ static struct clk_ops sh7786_master_clk_ops = {
.
init
=
master_clk_init
,
};
static
void
module_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
module_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inl
(
FRQMR1
)
&
0x000f
);
clk
->
rate
=
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7786_module_clk_ops
=
{
.
recalc
=
module_clk_recalc
,
};
static
void
bus_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
bus_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQMR1
)
>>
16
)
&
0x000f
);
clk
->
rate
=
clk
->
parent
->
rate
/
bfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
bfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7786_bus_clk_ops
=
{
.
recalc
=
bus_clk_recalc
,
};
static
void
cpu_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
cpu_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQMR1
)
>>
28
)
&
0x0003
);
clk
->
rate
=
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
}
static
struct
clk_ops
sh7786_cpu_clk_ops
=
{
...
...
@@ -79,10 +79,10 @@ void __init arch_init_clk_ops(struct clk_ops **ops, int idx)
*
ops
=
sh7786_clk_ops
[
idx
];
}
static
void
shyway_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
shyway_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQMR1
)
>>
20
)
&
0x0003
);
clk
->
rate
=
clk
->
parent
->
rate
/
sfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
sfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7786_shyway_clk_ops
=
{
...
...
@@ -91,14 +91,14 @@ static struct clk_ops sh7786_shyway_clk_ops = {
static
struct
clk
sh7786_shyway_clk
=
{
.
name
=
"shyway_clk"
,
.
flags
=
CLK_
ALWAYS_ENABLED
,
.
flags
=
CLK_
ENABLE_ON_INIT
,
.
ops
=
&
sh7786_shyway_clk_ops
,
};
static
void
ddr_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
ddr_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQMR1
)
>>
12
)
&
0x0003
);
clk
->
rate
=
clk
->
parent
->
rate
/
mfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
mfc_divisors
[
idx
];
}
static
struct
clk_ops
sh7786_ddr_clk_ops
=
{
...
...
@@ -107,7 +107,7 @@ static struct clk_ops sh7786_ddr_clk_ops = {
static
struct
clk
sh7786_ddr_clk
=
{
.
name
=
"ddr_clk"
,
.
flags
=
CLK_
ALWAYS_ENABLED
,
.
flags
=
CLK_
ENABLE_ON_INIT
,
.
ops
=
&
sh7786_ddr_clk_ops
,
};
...
...
@@ -120,29 +120,22 @@ static struct clk *sh7786_onchip_clocks[] = {
&
sh7786_ddr_clk
,
};
static
int
__init
sh7786
_clk_init
(
void
)
int
__init
arch
_clk_init
(
void
)
{
struct
clk
*
clk
=
clk_get
(
NULL
,
"master_clk"
)
;
int
i
;
struct
clk
*
clk
;
int
i
,
ret
=
0
;
cpg_clk_init
();
clk
=
clk_get
(
NULL
,
"master_clk"
);
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
sh7786_onchip_clocks
);
i
++
)
{
struct
clk
*
clkp
=
sh7786_onchip_clocks
[
i
];
clkp
->
parent
=
clk
;
clk_register
(
clkp
);
clk_enable
(
clkp
);
ret
|=
clk_register
(
clkp
);
}
/*
* Now that we have the rest of the clocks registered, we need to
* force the parent clock to propagate so that these clocks will
* automatically figure out their rate. We cheat by handing the
* parent clock its current rate and forcing child propagation.
*/
clk_set_rate
(
clk
,
clk_get_rate
(
clk
));
clk_put
(
clk
);
return
0
;
return
ret
;
}
arch_initcall
(
sh7786_clk_init
);
arch/sh/kernel/cpu/sh4a/clock-shx3.c
View file @
464c9e10
...
...
@@ -40,30 +40,30 @@ static struct clk_ops shx3_master_clk_ops = {
.
init
=
master_clk_init
,
};
static
void
module_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
module_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQCR
)
>>
PFC_POS
)
&
PFC_MSK
);
clk
->
rate
=
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
pfc_divisors
[
idx
];
}
static
struct
clk_ops
shx3_module_clk_ops
=
{
.
recalc
=
module_clk_recalc
,
};
static
void
bus_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
bus_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQCR
)
>>
BFC_POS
)
&
BFC_MSK
);
clk
->
rate
=
clk
->
parent
->
rate
/
bfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
bfc_divisors
[
idx
];
}
static
struct
clk_ops
shx3_bus_clk_ops
=
{
.
recalc
=
bus_clk_recalc
,
};
static
void
cpu_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
cpu_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQCR
)
>>
IFC_POS
)
&
IFC_MSK
);
clk
->
rate
=
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
ifc_divisors
[
idx
];
}
static
struct
clk_ops
shx3_cpu_clk_ops
=
{
...
...
@@ -83,10 +83,10 @@ void __init arch_init_clk_ops(struct clk_ops **ops, int idx)
*
ops
=
shx3_clk_ops
[
idx
];
}
static
void
shyway_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
shyway_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
((
ctrl_inl
(
FRQCR
)
>>
CFC_POS
)
&
CFC_MSK
);
clk
->
rate
=
clk
->
parent
->
rate
/
cfc_divisors
[
idx
];
return
clk
->
parent
->
rate
/
cfc_divisors
[
idx
];
}
static
struct
clk_ops
shx3_shyway_clk_ops
=
{
...
...
@@ -95,7 +95,7 @@ static struct clk_ops shx3_shyway_clk_ops = {
static
struct
clk
shx3_shyway_clk
=
{
.
name
=
"shyway_clk"
,
.
flags
=
CLK_
ALWAYS_ENABLED
,
.
flags
=
CLK_
ENABLE_ON_INIT
,
.
ops
=
&
shx3_shyway_clk_ops
,
};
...
...
@@ -107,29 +107,22 @@ static struct clk *shx3_onchip_clocks[] = {
&
shx3_shyway_clk
,
};
static
int
__init
shx3
_clk_init
(
void
)
int
__init
arch
_clk_init
(
void
)
{
struct
clk
*
clk
=
clk_get
(
NULL
,
"master_clk"
)
;
int
i
;
struct
clk
*
clk
;
int
i
,
ret
=
0
;
cpg_clk_init
();
clk
=
clk_get
(
NULL
,
"master_clk"
);
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
shx3_onchip_clocks
);
i
++
)
{
struct
clk
*
clkp
=
shx3_onchip_clocks
[
i
];
clkp
->
parent
=
clk
;
clk_register
(
clkp
);
clk_enable
(
clkp
);
ret
|=
clk_register
(
clkp
);
}
/*
* Now that we have the rest of the clocks registered, we need to
* force the parent clock to propagate so that these clocks will
* automatically figure out their rate. We cheat by handing the
* parent clock its current rate and forcing child propagation.
*/
clk_set_rate
(
clk
,
clk_get_rate
(
clk
));
clk_put
(
clk
);
return
0
;
return
ret
;
}
arch_initcall
(
shx3_clk_init
);
arch/sh/kernel/cpu/sh4a/setup-sh7343.c
View file @
464c9e10
...
...
@@ -318,12 +318,6 @@ static struct platform_device *sh7343_devices[] __initdata = {
static
int
__init
sh7343_devices_setup
(
void
)
{
clk_always_enable
(
"uram0"
);
/* URAM */
clk_always_enable
(
"xymem0"
);
/* XYMEM */
clk_always_enable
(
"veu0"
);
/* VEU */
clk_always_enable
(
"vpu0"
);
/* VPU */
clk_always_enable
(
"jpu0"
);
/* JPU */
platform_resource_setup_memory
(
&
vpu_device
,
"vpu"
,
1
<<
20
);
platform_resource_setup_memory
(
&
veu_device
,
"veu"
,
2
<<
20
);
platform_resource_setup_memory
(
&
jpu_device
,
"jpu"
,
2
<<
20
);
...
...
arch/sh/kernel/cpu/sh4a/setup-sh7366.c
View file @
464c9e10
...
...
@@ -307,12 +307,6 @@ static struct platform_device *sh7366_devices[] __initdata = {
static
int
__init
sh7366_devices_setup
(
void
)
{
clk_always_enable
(
"rsmem0"
);
/* RSMEM */
clk_always_enable
(
"xymem0"
);
/* XYMEM */
clk_always_enable
(
"veu1"
);
/* VEU-2 */
clk_always_enable
(
"veu0"
);
/* VEU-1 */
clk_always_enable
(
"vpu0"
);
/* VPU */
platform_resource_setup_memory
(
&
vpu_device
,
"vpu"
,
2
<<
20
);
platform_resource_setup_memory
(
&
veu0_device
,
"veu0"
,
2
<<
20
);
platform_resource_setup_memory
(
&
veu1_device
,
"veu1"
,
2
<<
20
);
...
...
arch/sh/kernel/cpu/sh4a/setup-sh7722.c
View file @
464c9e10
...
...
@@ -352,12 +352,6 @@ static struct platform_device *sh7722_devices[] __initdata = {
static
int
__init
sh7722_devices_setup
(
void
)
{
clk_always_enable
(
"uram0"
);
/* URAM */
clk_always_enable
(
"xymem0"
);
/* XYMEM */
clk_always_enable
(
"veu0"
);
/* VEU */
clk_always_enable
(
"vpu0"
);
/* VPU */
clk_always_enable
(
"jpu0"
);
/* JPU */
platform_resource_setup_memory
(
&
vpu_device
,
"vpu"
,
1
<<
20
);
platform_resource_setup_memory
(
&
veu_device
,
"veu"
,
2
<<
20
);
platform_resource_setup_memory
(
&
jpu_device
,
"jpu"
,
2
<<
20
);
...
...
arch/sh/kernel/cpu/sh4a/setup-sh7723.c
View file @
464c9e10
...
...
@@ -460,11 +460,6 @@ static struct platform_device *sh7723_devices[] __initdata = {
static
int
__init
sh7723_devices_setup
(
void
)
{
clk_always_enable
(
"meram0"
);
/* MERAM */
clk_always_enable
(
"veu1"
);
/* VEU2H1 */
clk_always_enable
(
"veu0"
);
/* VEU2H0 */
clk_always_enable
(
"vpu0"
);
/* VPU */
platform_resource_setup_memory
(
&
vpu_device
,
"vpu"
,
2
<<
20
);
platform_resource_setup_memory
(
&
veu0_device
,
"veu0"
,
2
<<
20
);
platform_resource_setup_memory
(
&
veu1_device
,
"veu1"
,
2
<<
20
);
...
...
arch/sh/kernel/cpu/sh4a/setup-sh7724.c
View file @
464c9e10
...
...
@@ -470,10 +470,6 @@ static struct platform_device *sh7724_devices[] __initdata = {
static
int
__init
sh7724_devices_setup
(
void
)
{
clk_always_enable
(
"vpu0"
);
/* VPU */
clk_always_enable
(
"veu1"
);
/* VEU3F1 */
clk_always_enable
(
"veu0"
);
/* VEU3F0 */
platform_resource_setup_memory
(
&
vpu_device
,
"vpu"
,
2
<<
20
);
platform_resource_setup_memory
(
&
veu0_device
,
"veu0"
,
2
<<
20
);
platform_resource_setup_memory
(
&
veu1_device
,
"veu1"
,
2
<<
20
);
...
...
arch/sh/kernel/cpu/sh4a/setup-sh7763.c
View file @
464c9e10
...
...
@@ -118,7 +118,7 @@ static struct sh_timer_config tmu0_platform_data = {
.
name
=
"TMU0"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -149,7 +149,7 @@ static struct sh_timer_config tmu1_platform_data = {
.
name
=
"TMU1"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clocksource_rating
=
200
,
};
...
...
@@ -180,7 +180,7 @@ static struct sh_timer_config tmu2_platform_data = {
.
name
=
"TMU2"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu2_resources
[]
=
{
...
...
@@ -210,7 +210,7 @@ static struct sh_timer_config tmu3_platform_data = {
.
name
=
"TMU3"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu3_resources
[]
=
{
...
...
@@ -240,7 +240,7 @@ static struct sh_timer_config tmu4_platform_data = {
.
name
=
"TMU4"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu4_resources
[]
=
{
...
...
@@ -270,7 +270,7 @@ static struct sh_timer_config tmu5_platform_data = {
.
name
=
"TMU5"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu5_resources
[]
=
{
...
...
arch/sh/kernel/cpu/sh4a/setup-sh7770.c
View file @
464c9e10
...
...
@@ -82,7 +82,7 @@ static struct sh_timer_config tmu0_platform_data = {
.
name
=
"TMU0"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -113,7 +113,7 @@ static struct sh_timer_config tmu1_platform_data = {
.
name
=
"TMU1"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clocksource_rating
=
200
,
};
...
...
@@ -144,7 +144,7 @@ static struct sh_timer_config tmu2_platform_data = {
.
name
=
"TMU2"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu2_resources
[]
=
{
...
...
@@ -174,7 +174,7 @@ static struct sh_timer_config tmu3_platform_data = {
.
name
=
"TMU3"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu3_resources
[]
=
{
...
...
@@ -204,7 +204,7 @@ static struct sh_timer_config tmu4_platform_data = {
.
name
=
"TMU4"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu4_resources
[]
=
{
...
...
@@ -234,7 +234,7 @@ static struct sh_timer_config tmu5_platform_data = {
.
name
=
"TMU5"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu5_resources
[]
=
{
...
...
@@ -264,7 +264,7 @@ static struct sh_timer_config tmu6_platform_data = {
.
name
=
"TMU6"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu6_resources
[]
=
{
...
...
@@ -294,7 +294,7 @@ static struct sh_timer_config tmu7_platform_data = {
.
name
=
"TMU7"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu7_resources
[]
=
{
...
...
@@ -324,7 +324,7 @@ static struct sh_timer_config tmu8_platform_data = {
.
name
=
"TMU8"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu8_resources
[]
=
{
...
...
arch/sh/kernel/cpu/sh4a/setup-sh7780.c
View file @
464c9e10
...
...
@@ -18,7 +18,7 @@ static struct sh_timer_config tmu0_platform_data = {
.
name
=
"TMU0"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -49,7 +49,7 @@ static struct sh_timer_config tmu1_platform_data = {
.
name
=
"TMU1"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clocksource_rating
=
200
,
};
...
...
@@ -80,7 +80,7 @@ static struct sh_timer_config tmu2_platform_data = {
.
name
=
"TMU2"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu2_resources
[]
=
{
...
...
@@ -110,7 +110,7 @@ static struct sh_timer_config tmu3_platform_data = {
.
name
=
"TMU3"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu3_resources
[]
=
{
...
...
@@ -140,7 +140,7 @@ static struct sh_timer_config tmu4_platform_data = {
.
name
=
"TMU4"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu4_resources
[]
=
{
...
...
@@ -170,7 +170,7 @@ static struct sh_timer_config tmu5_platform_data = {
.
name
=
"TMU5"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu5_resources
[]
=
{
...
...
arch/sh/kernel/cpu/sh4a/setup-sh7785.c
View file @
464c9e10
...
...
@@ -20,7 +20,7 @@ static struct sh_timer_config tmu0_platform_data = {
.
name
=
"TMU0"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module_cl
k"
,
.
clk
=
"
tmu012_fc
k"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -51,7 +51,7 @@ static struct sh_timer_config tmu1_platform_data = {
.
name
=
"TMU1"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module_cl
k"
,
.
clk
=
"
tmu012_fc
k"
,
.
clocksource_rating
=
200
,
};
...
...
@@ -82,7 +82,7 @@ static struct sh_timer_config tmu2_platform_data = {
.
name
=
"TMU2"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module_cl
k"
,
.
clk
=
"
tmu012_fc
k"
,
};
static
struct
resource
tmu2_resources
[]
=
{
...
...
@@ -112,7 +112,7 @@ static struct sh_timer_config tmu3_platform_data = {
.
name
=
"TMU3"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module_cl
k"
,
.
clk
=
"
tmu345_fc
k"
,
};
static
struct
resource
tmu3_resources
[]
=
{
...
...
@@ -142,7 +142,7 @@ static struct sh_timer_config tmu4_platform_data = {
.
name
=
"TMU4"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module_cl
k"
,
.
clk
=
"
tmu345_fc
k"
,
};
static
struct
resource
tmu4_resources
[]
=
{
...
...
@@ -172,7 +172,7 @@ static struct sh_timer_config tmu5_platform_data = {
.
name
=
"TMU5"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module_cl
k"
,
.
clk
=
"
tmu345_fc
k"
,
};
static
struct
resource
tmu5_resources
[]
=
{
...
...
@@ -204,31 +204,37 @@ static struct plat_sci_port sci_platform_data[] = {
.
flags
=
UPF_BOOT_AUTOCONF
,
.
type
=
PORT_SCIF
,
.
irqs
=
{
40
,
40
,
40
,
40
},
.
clk
=
"scif_fck"
,
},
{
.
mapbase
=
0xffeb0000
,
.
flags
=
UPF_BOOT_AUTOCONF
,
.
type
=
PORT_SCIF
,
.
irqs
=
{
44
,
44
,
44
,
44
},
.
clk
=
"scif_fck"
,
},
{
.
mapbase
=
0xffec0000
,
.
flags
=
UPF_BOOT_AUTOCONF
,
.
type
=
PORT_SCIF
,
.
irqs
=
{
60
,
60
,
60
,
60
},
.
clk
=
"scif_fck"
,
},
{
.
mapbase
=
0xffed0000
,
.
flags
=
UPF_BOOT_AUTOCONF
,
.
type
=
PORT_SCIF
,
.
irqs
=
{
61
,
61
,
61
,
61
},
.
clk
=
"scif_fck"
,
},
{
.
mapbase
=
0xffee0000
,
.
flags
=
UPF_BOOT_AUTOCONF
,
.
type
=
PORT_SCIF
,
.
irqs
=
{
62
,
62
,
62
,
62
},
.
clk
=
"scif_fck"
,
},
{
.
mapbase
=
0xffef0000
,
.
flags
=
UPF_BOOT_AUTOCONF
,
.
type
=
PORT_SCIF
,
.
irqs
=
{
63
,
63
,
63
,
63
},
.
clk
=
"scif_fck"
,
},
{
.
flags
=
0
,
}
...
...
arch/sh/kernel/cpu/sh4a/setup-sh7786.c
View file @
464c9e10
...
...
@@ -75,7 +75,7 @@ static struct sh_timer_config tmu0_platform_data = {
.
name
=
"TMU0"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -106,7 +106,7 @@ static struct sh_timer_config tmu1_platform_data = {
.
name
=
"TMU1"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clocksource_rating
=
200
,
};
...
...
@@ -137,7 +137,7 @@ static struct sh_timer_config tmu2_platform_data = {
.
name
=
"TMU2"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu2_resources
[]
=
{
...
...
@@ -167,7 +167,7 @@ static struct sh_timer_config tmu3_platform_data = {
.
name
=
"TMU3"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu3_resources
[]
=
{
...
...
@@ -197,7 +197,7 @@ static struct sh_timer_config tmu4_platform_data = {
.
name
=
"TMU4"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu4_resources
[]
=
{
...
...
@@ -227,7 +227,7 @@ static struct sh_timer_config tmu5_platform_data = {
.
name
=
"TMU5"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu5_resources
[]
=
{
...
...
@@ -257,7 +257,7 @@ static struct sh_timer_config tmu6_platform_data = {
.
name
=
"TMU6"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu6_resources
[]
=
{
...
...
@@ -287,7 +287,7 @@ static struct sh_timer_config tmu7_platform_data = {
.
name
=
"TMU7"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu7_resources
[]
=
{
...
...
@@ -317,7 +317,7 @@ static struct sh_timer_config tmu8_platform_data = {
.
name
=
"TMU8"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu8_resources
[]
=
{
...
...
@@ -347,7 +347,7 @@ static struct sh_timer_config tmu9_platform_data = {
.
name
=
"TMU9"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu9_resources
[]
=
{
...
...
@@ -377,7 +377,7 @@ static struct sh_timer_config tmu10_platform_data = {
.
name
=
"TMU10"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu10_resources
[]
=
{
...
...
@@ -407,7 +407,7 @@ static struct sh_timer_config tmu11_platform_data = {
.
name
=
"TMU11"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu11_resources
[]
=
{
...
...
arch/sh/kernel/cpu/sh4a/setup-shx3.c
View file @
464c9e10
...
...
@@ -53,7 +53,7 @@ static struct sh_timer_config tmu0_platform_data = {
.
name
=
"TMU0"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -84,7 +84,7 @@ static struct sh_timer_config tmu1_platform_data = {
.
name
=
"TMU1"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clocksource_rating
=
200
,
};
...
...
@@ -115,7 +115,7 @@ static struct sh_timer_config tmu2_platform_data = {
.
name
=
"TMU2"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu2_resources
[]
=
{
...
...
@@ -145,7 +145,7 @@ static struct sh_timer_config tmu3_platform_data = {
.
name
=
"TMU3"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu3_resources
[]
=
{
...
...
@@ -175,7 +175,7 @@ static struct sh_timer_config tmu4_platform_data = {
.
name
=
"TMU4"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu4_resources
[]
=
{
...
...
@@ -205,7 +205,7 @@ static struct sh_timer_config tmu5_platform_data = {
.
name
=
"TMU5"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu5_resources
[]
=
{
...
...
arch/sh/kernel/cpu/sh5/clock-sh5.c
View file @
464c9e10
...
...
@@ -32,30 +32,30 @@ static struct clk_ops sh5_master_clk_ops = {
.
init
=
master_clk_init
,
};
static
void
module_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
module_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
cprc_base
)
>>
12
)
&
0x0007
;
clk
->
rate
=
clk
->
parent
->
rate
/
ifc_table
[
idx
];
return
clk
->
parent
->
rate
/
ifc_table
[
idx
];
}
static
struct
clk_ops
sh5_module_clk_ops
=
{
.
recalc
=
module_clk_recalc
,
};
static
void
bus_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
bus_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
cprc_base
)
>>
3
)
&
0x0007
;
clk
->
rate
=
clk
->
parent
->
rate
/
ifc_table
[
idx
];
return
clk
->
parent
->
rate
/
ifc_table
[
idx
];
}
static
struct
clk_ops
sh5_bus_clk_ops
=
{
.
recalc
=
bus_clk_recalc
,
};
static
void
cpu_clk_recalc
(
struct
clk
*
clk
)
static
unsigned
long
cpu_clk_recalc
(
struct
clk
*
clk
)
{
int
idx
=
(
ctrl_inw
(
cprc_base
)
&
0x0007
);
clk
->
rate
=
clk
->
parent
->
rate
/
ifc_table
[
idx
];
return
clk
->
parent
->
rate
/
ifc_table
[
idx
];
}
static
struct
clk_ops
sh5_cpu_clk_ops
=
{
...
...
arch/sh/kernel/cpu/sh5/setup-sh5.c
View file @
464c9e10
...
...
@@ -75,7 +75,7 @@ static struct sh_timer_config tmu0_platform_data = {
.
name
=
"TMU0"
,
.
channel_offset
=
0x04
,
.
timer_bit
=
0
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clockevent_rating
=
200
,
};
...
...
@@ -106,7 +106,7 @@ static struct sh_timer_config tmu1_platform_data = {
.
name
=
"TMU1"
,
.
channel_offset
=
0x10
,
.
timer_bit
=
1
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
.
clocksource_rating
=
200
,
};
...
...
@@ -137,7 +137,7 @@ static struct sh_timer_config tmu2_platform_data = {
.
name
=
"TMU2"
,
.
channel_offset
=
0x1c
,
.
timer_bit
=
2
,
.
clk
=
"
module
_clk"
,
.
clk
=
"
peripheral
_clk"
,
};
static
struct
resource
tmu2_resources
[]
=
{
...
...
drivers/i2c/busses/i2c-sh7760.c
View file @
464c9e10
...
...
@@ -396,7 +396,7 @@ static int __devinit calc_CCR(unsigned long scl_hz)
signed
char
cdf
,
cdfm
;
int
scgd
,
scgdm
,
scgds
;
mclk
=
clk_get
(
NULL
,
"
module
_clk"
);
mclk
=
clk_get
(
NULL
,
"
peripheral
_clk"
);
if
(
IS_ERR
(
mclk
))
{
return
PTR_ERR
(
mclk
);
}
else
{
...
...
drivers/serial/sh-sci.c
View file @
464c9e10
...
...
@@ -1084,7 +1084,7 @@ static void __devinit sci_init_single(struct platform_device *dev,
sci_port
->
port
.
uartclk
=
CONFIG_CPU_CLOCK
;
#elif defined(CONFIG_HAVE_CLK)
sci_port
->
iclk
=
p
->
clk
?
clk_get
(
&
dev
->
dev
,
p
->
clk
)
:
NULL
;
sci_port
->
dclk
=
clk_get
(
&
dev
->
dev
,
"
module
_clk"
);
sci_port
->
dclk
=
clk_get
(
&
dev
->
dev
,
"
peripheral
_clk"
);
sci_port
->
enable
=
sci_clk_enable
;
sci_port
->
disable
=
sci_clk_disable
;
#else
...
...
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