Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
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