Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/arm/mach-lpc32xx/common.h
10817 views
1
/*
2
* arch/arm/mach-lpc32xx/common.h
3
*
4
* Author: Kevin Wells <[email protected]>
5
*
6
* Copyright (C) 2009-2010 NXP Semiconductors
7
*
8
* This program is free software; you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation; either version 2 of the License, or
11
* (at your option) any later version.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
17
*/
18
19
#ifndef __LPC32XX_COMMON_H
20
#define __LPC32XX_COMMON_H
21
22
#include <linux/platform_device.h>
23
24
/*
25
* Arch specific platform device structures
26
*/
27
extern struct platform_device lpc32xx_watchdog_device;
28
extern struct platform_device lpc32xx_i2c0_device;
29
extern struct platform_device lpc32xx_i2c1_device;
30
extern struct platform_device lpc32xx_i2c2_device;
31
32
/*
33
* Other arch specific structures and functions
34
*/
35
extern struct sys_timer lpc32xx_timer;
36
extern void __init lpc32xx_init_irq(void);
37
extern void __init lpc32xx_map_io(void);
38
extern void __init lpc32xx_serial_init(void);
39
extern void __init lpc32xx_gpio_init(void);
40
41
/*
42
* Structure used for setting up and querying the PLLS
43
*/
44
struct clk_pll_setup {
45
int analog_on;
46
int cco_bypass_b15;
47
int direct_output_b14;
48
int fdbk_div_ctrl_b13;
49
int pll_p;
50
int pll_n;
51
u32 pll_m;
52
};
53
54
extern int clk_is_sysclk_mainosc(void);
55
extern u32 clk_check_pll_setup(u32 ifreq, struct clk_pll_setup *pllsetup);
56
extern u32 clk_get_pllrate_from_reg(u32 inputclk, u32 regval);
57
extern u32 clk_get_pclk_div(void);
58
59
/*
60
* Returns the LPC32xx unique 128-bit chip ID
61
*/
62
extern void lpc32xx_get_uid(u32 devid[4]);
63
64
extern void lpc32xx_watchdog_reset(void);
65
extern u32 lpc32xx_return_iram_size(void);
66
67
/*
68
* Pointers used for sizing and copying suspend function data
69
*/
70
extern int lpc32xx_sys_suspend(void);
71
extern int lpc32xx_sys_suspend_sz;
72
73
#endif
74
75