Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
clk
spear
clk.c
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2012 ST Microelectronics
3
* Viresh Kumar <
[email protected]
>
4
*
5
* This file is licensed under the terms of the GNU General Public
6
* License version 2. This program is licensed "as is" without any
7
* warranty of any kind, whether express or implied.
8
*
9
* SPEAr clk - Common routines
10
*/
11
12
#include <
linux/clk-provider.h
>
13
#include <linux/types.h>
14
#include "
clk.h
"
15
16
long
clk_round_rate_index
(
struct
clk_hw *
hw
,
unsigned
long
drate
,
17
unsigned
long
parent_rate,
clk_calc_rate
calc_rate,
u8
rtbl_cnt,
18
int
*
index
)
19
{
20
unsigned
long
prev_rate,
rate
= 0;
21
22
for
(*index = 0; *index < rtbl_cnt; (*index)++) {
23
prev_rate =
rate
;
24
rate = calc_rate(hw, parent_rate, *index);
25
if
(drate < rate) {
26
/* previous clock was best */
27
if
(*index) {
28
rate = prev_rate;
29
(*index)--;
30
}
31
break
;
32
}
33
}
34
35
return
rate
;
36
}
Generated on Thu Jan 10 2013 12:59:13 for Linux Kernel by
1.8.2