Merge branches 'x86/xen', 'x86/build', 'x86/microcode', 'x86/mm-debug-v2', 'x86/memor...
[linux-2.6] / arch / arm / include / asm / hardware / icst307.h
1 /*
2  *  arch/arm/include/asm/hardware/icst307.h
3  *
4  *  Copyright (C) 2003 Deep Blue Solutions, Ltd, All Rights Reserved.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  *  Support functions for calculating clocks/divisors for the ICS307
11  *  clock generators.  See http://www.icst.com/ for more information
12  *  on these devices.
13  *
14  *  This file is similar to the icst525.h file
15  */
16 #ifndef ASMARM_HARDWARE_ICST307_H
17 #define ASMARM_HARDWARE_ICST307_H
18
19 struct icst307_params {
20         unsigned long   ref;
21         unsigned long   vco_max;        /* inclusive */
22         unsigned short  vd_min;         /* inclusive */
23         unsigned short  vd_max;         /* inclusive */
24         unsigned char   rd_min;         /* inclusive */
25         unsigned char   rd_max;         /* inclusive */
26 };
27
28 struct icst307_vco {
29         unsigned short  v;
30         unsigned char   r;
31         unsigned char   s;
32 };
33
34 unsigned long icst307_khz(const struct icst307_params *p, struct icst307_vco vco);
35 struct icst307_vco icst307_khz_to_vco(const struct icst307_params *p, unsigned long freq);
36 struct icst307_vco icst307_ps_to_vco(const struct icst307_params *p, unsigned long period);
37
38 #endif