aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorPrashant Gaikwad <pgaikwad@nvidia.com>2013-01-11 02:46:21 -0500
committerStephen Warren <swarren@nvidia.com>2013-01-28 13:19:06 -0500
commit89572c77cdffdf24f8fec50d3e38db6a18c04dbe (patch)
tree4cea88f2675f249077c945c59dbd9c05debbf9ec /arch/arm
parentc7736edf1b1734455c186deec53a0aa7f8fa87ea (diff)
ARM: tegra: move tegra_cpu_car.h to linux/clk/tegra.h
tegra_cpu_car_ops struct is going to be accessed from drivers/clk/tegra. Move the tegra_cpu_car_ops to include/linux/clk/tegra.h. Signed-off-by: Prashant Gaikwad <pgaikwad@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-tegra/clock.c2
-rw-r--r--arch/arm/mach-tegra/cpuidle-tegra30.c2
-rw-r--r--arch/arm/mach-tegra/hotplug.c2
-rw-r--r--arch/arm/mach-tegra/platsmp.c2
-rw-r--r--arch/arm/mach-tegra/pm.c2
-rw-r--r--arch/arm/mach-tegra/tegra20_clocks.c2
-rw-r--r--arch/arm/mach-tegra/tegra20_clocks_data.c2
-rw-r--r--arch/arm/mach-tegra/tegra30_clocks.c2
-rw-r--r--arch/arm/mach-tegra/tegra30_clocks_data.c2
-rw-r--r--arch/arm/mach-tegra/tegra_cpu_car.h124
10 files changed, 9 insertions, 133 deletions
diff --git a/arch/arm/mach-tegra/clock.c b/arch/arm/mach-tegra/clock.c
index 867bf8bf5561..8c0ff061f8cf 100644
--- a/arch/arm/mach-tegra/clock.c
+++ b/arch/arm/mach-tegra/clock.c
@@ -26,10 +26,10 @@
26#include <linux/sched.h> 26#include <linux/sched.h>
27#include <linux/seq_file.h> 27#include <linux/seq_file.h>
28#include <linux/slab.h> 28#include <linux/slab.h>
29#include <linux/clk/tegra.h>
29 30
30#include "board.h" 31#include "board.h"
31#include "clock.h" 32#include "clock.h"
32#include "tegra_cpu_car.h"
33 33
34/* Global data of Tegra CPU CAR ops */ 34/* Global data of Tegra CPU CAR ops */
35struct tegra_cpu_car_ops *tegra_cpu_car_ops; 35struct tegra_cpu_car_ops *tegra_cpu_car_ops;
diff --git a/arch/arm/mach-tegra/cpuidle-tegra30.c b/arch/arm/mach-tegra/cpuidle-tegra30.c
index 82530bd9b8c2..8b50cf4ddd6f 100644
--- a/arch/arm/mach-tegra/cpuidle-tegra30.c
+++ b/arch/arm/mach-tegra/cpuidle-tegra30.c
@@ -24,6 +24,7 @@
24#include <linux/cpuidle.h> 24#include <linux/cpuidle.h>
25#include <linux/cpu_pm.h> 25#include <linux/cpu_pm.h>
26#include <linux/clockchips.h> 26#include <linux/clockchips.h>
27#include <linux/clk/tegra.h>
27 28
28#include <asm/cpuidle.h> 29#include <asm/cpuidle.h>
29#include <asm/proc-fns.h> 30#include <asm/proc-fns.h>
@@ -32,7 +33,6 @@
32 33
33#include "pm.h" 34#include "pm.h"
34#include "sleep.h" 35#include "sleep.h"
35#include "tegra_cpu_car.h"
36 36
37#ifdef CONFIG_PM_SLEEP 37#ifdef CONFIG_PM_SLEEP
38static int tegra30_idle_lp2(struct cpuidle_device *dev, 38static int tegra30_idle_lp2(struct cpuidle_device *dev,
diff --git a/arch/arm/mach-tegra/hotplug.c b/arch/arm/mach-tegra/hotplug.c
index 6a27de4001ee..a599f6e36dea 100644
--- a/arch/arm/mach-tegra/hotplug.c
+++ b/arch/arm/mach-tegra/hotplug.c
@@ -10,12 +10,12 @@
10 */ 10 */
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/smp.h> 12#include <linux/smp.h>
13#include <linux/clk/tegra.h>
13 14
14#include <asm/cacheflush.h> 15#include <asm/cacheflush.h>
15#include <asm/smp_plat.h> 16#include <asm/smp_plat.h>
16 17
17#include "sleep.h" 18#include "sleep.h"
18#include "tegra_cpu_car.h"
19 19
20static void (*tegra_hotplug_shutdown)(void); 20static void (*tegra_hotplug_shutdown)(void);
21 21
diff --git a/arch/arm/mach-tegra/platsmp.c b/arch/arm/mach-tegra/platsmp.c
index 68670304d9bc..3ec7fc487857 100644
--- a/arch/arm/mach-tegra/platsmp.c
+++ b/arch/arm/mach-tegra/platsmp.c
@@ -18,6 +18,7 @@
18#include <linux/jiffies.h> 18#include <linux/jiffies.h>
19#include <linux/smp.h> 19#include <linux/smp.h>
20#include <linux/io.h> 20#include <linux/io.h>
21#include <linux/clk/tegra.h>
21 22
22#include <asm/cacheflush.h> 23#include <asm/cacheflush.h>
23#include <asm/hardware/gic.h> 24#include <asm/hardware/gic.h>
@@ -30,7 +31,6 @@
30#include "fuse.h" 31#include "fuse.h"
31#include "flowctrl.h" 32#include "flowctrl.h"
32#include "reset.h" 33#include "reset.h"
33#include "tegra_cpu_car.h"
34 34
35#include "common.h" 35#include "common.h"
36#include "iomap.h" 36#include "iomap.h"
diff --git a/arch/arm/mach-tegra/pm.c b/arch/arm/mach-tegra/pm.c
index 498d70b33775..abfe9b93cc0c 100644
--- a/arch/arm/mach-tegra/pm.c
+++ b/arch/arm/mach-tegra/pm.c
@@ -24,6 +24,7 @@
24#include <linux/cpu_pm.h> 24#include <linux/cpu_pm.h>
25#include <linux/clk.h> 25#include <linux/clk.h>
26#include <linux/err.h> 26#include <linux/err.h>
27#include <linux/clk/tegra.h>
27 28
28#include <asm/smp_plat.h> 29#include <asm/smp_plat.h>
29#include <asm/cacheflush.h> 30#include <asm/cacheflush.h>
@@ -36,7 +37,6 @@
36#include "reset.h" 37#include "reset.h"
37#include "flowctrl.h" 38#include "flowctrl.h"
38#include "sleep.h" 39#include "sleep.h"
39#include "tegra_cpu_car.h"
40 40
41#define TEGRA_POWER_CPU_PWRREQ_OE (1 << 16) /* CPU pwr req enable */ 41#define TEGRA_POWER_CPU_PWRREQ_OE (1 << 16) /* CPU pwr req enable */
42 42
diff --git a/arch/arm/mach-tegra/tegra20_clocks.c b/arch/arm/mach-tegra/tegra20_clocks.c
index 4eb6bc81a87b..1a80ff65e5fc 100644
--- a/arch/arm/mach-tegra/tegra20_clocks.c
+++ b/arch/arm/mach-tegra/tegra20_clocks.c
@@ -26,12 +26,12 @@
26#include <linux/io.h> 26#include <linux/io.h>
27#include <linux/clkdev.h> 27#include <linux/clkdev.h>
28#include <linux/clk.h> 28#include <linux/clk.h>
29#include <linux/clk/tegra.h>
29 30
30#include "clock.h" 31#include "clock.h"
31#include "fuse.h" 32#include "fuse.h"
32#include "iomap.h" 33#include "iomap.h"
33#include "tegra2_emc.h" 34#include "tegra2_emc.h"
34#include "tegra_cpu_car.h"
35 35
36#define RST_DEVICES 0x004 36#define RST_DEVICES 0x004
37#define RST_DEVICES_SET 0x300 37#define RST_DEVICES_SET 0x300
diff --git a/arch/arm/mach-tegra/tegra20_clocks_data.c b/arch/arm/mach-tegra/tegra20_clocks_data.c
index a23a0734e352..022cdaef7ca5 100644
--- a/arch/arm/mach-tegra/tegra20_clocks_data.c
+++ b/arch/arm/mach-tegra/tegra20_clocks_data.c
@@ -26,12 +26,12 @@
26#include <linux/delay.h> 26#include <linux/delay.h>
27#include <linux/io.h> 27#include <linux/io.h>
28#include <linux/clk.h> 28#include <linux/clk.h>
29#include <linux/clk/tegra.h>
29 30
30#include "clock.h" 31#include "clock.h"
31#include "fuse.h" 32#include "fuse.h"
32#include "tegra2_emc.h" 33#include "tegra2_emc.h"
33#include "tegra20_clocks.h" 34#include "tegra20_clocks.h"
34#include "tegra_cpu_car.h"
35 35
36/* Clock definitions */ 36/* Clock definitions */
37 37
diff --git a/arch/arm/mach-tegra/tegra30_clocks.c b/arch/arm/mach-tegra/tegra30_clocks.c
index d7147779f8ea..4330787fe5cb 100644
--- a/arch/arm/mach-tegra/tegra30_clocks.c
+++ b/arch/arm/mach-tegra/tegra30_clocks.c
@@ -28,6 +28,7 @@
28#include <linux/clk.h> 28#include <linux/clk.h>
29#include <linux/cpufreq.h> 29#include <linux/cpufreq.h>
30#include <linux/syscore_ops.h> 30#include <linux/syscore_ops.h>
31#include <linux/clk/tegra.h>
31 32
32#include <asm/clkdev.h> 33#include <asm/clkdev.h>
33 34
@@ -36,7 +37,6 @@
36#include "clock.h" 37#include "clock.h"
37#include "fuse.h" 38#include "fuse.h"
38#include "iomap.h" 39#include "iomap.h"
39#include "tegra_cpu_car.h"
40 40
41#define USE_PLL_LOCK_BITS 0 41#define USE_PLL_LOCK_BITS 0
42 42
diff --git a/arch/arm/mach-tegra/tegra30_clocks_data.c b/arch/arm/mach-tegra/tegra30_clocks_data.c
index 741d264d5ecb..9bfaa490cff6 100644
--- a/arch/arm/mach-tegra/tegra30_clocks_data.c
+++ b/arch/arm/mach-tegra/tegra30_clocks_data.c
@@ -28,11 +28,11 @@
28#include <linux/io.h> 28#include <linux/io.h>
29#include <linux/clk.h> 29#include <linux/clk.h>
30#include <linux/cpufreq.h> 30#include <linux/cpufreq.h>
31#include <linux/clk/tegra.h>
31 32
32#include "clock.h" 33#include "clock.h"
33#include "fuse.h" 34#include "fuse.h"
34#include "tegra30_clocks.h" 35#include "tegra30_clocks.h"
35#include "tegra_cpu_car.h"
36 36
37#define DEFINE_CLK_TEGRA(_name, _rate, _ops, _flags, \ 37#define DEFINE_CLK_TEGRA(_name, _rate, _ops, _flags, \
38 _parent_names, _parents, _parent) \ 38 _parent_names, _parents, _parent) \
diff --git a/arch/arm/mach-tegra/tegra_cpu_car.h b/arch/arm/mach-tegra/tegra_cpu_car.h
deleted file mode 100644
index 9764d31032b7..000000000000
--- a/arch/arm/mach-tegra/tegra_cpu_car.h
+++ /dev/null
@@ -1,124 +0,0 @@
1/*
2 * Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#ifndef __MACH_TEGRA_CPU_CAR_H
18#define __MACH_TEGRA_CPU_CAR_H
19
20/*
21 * Tegra CPU clock and reset control ops
22 *
23 * wait_for_reset:
24 * keep waiting until the CPU in reset state
25 * put_in_reset:
26 * put the CPU in reset state
27 * out_of_reset:
28 * release the CPU from reset state
29 * enable_clock:
30 * CPU clock un-gate
31 * disable_clock:
32 * CPU clock gate
33 * rail_off_ready:
34 * CPU is ready for rail off
35 * suspend:
36 * save the clock settings when CPU go into low-power state
37 * resume:
38 * restore the clock settings when CPU exit low-power state
39 */
40struct tegra_cpu_car_ops {
41 void (*wait_for_reset)(u32 cpu);
42 void (*put_in_reset)(u32 cpu);
43 void (*out_of_reset)(u32 cpu);
44 void (*enable_clock)(u32 cpu);
45 void (*disable_clock)(u32 cpu);
46#ifdef CONFIG_PM_SLEEP
47 bool (*rail_off_ready)(void);
48 void (*suspend)(void);
49 void (*resume)(void);
50#endif
51};
52
53extern struct tegra_cpu_car_ops *tegra_cpu_car_ops;
54
55static inline void tegra_wait_cpu_in_reset(u32 cpu)
56{
57 if (WARN_ON(!tegra_cpu_car_ops->wait_for_reset))
58 return;
59
60 tegra_cpu_car_ops->wait_for_reset(cpu);
61}
62
63static inline void tegra_put_cpu_in_reset(u32 cpu)
64{
65 if (WARN_ON(!tegra_cpu_car_ops->put_in_reset))
66 return;
67
68 tegra_cpu_car_ops->put_in_reset(cpu);
69}
70
71static inline void tegra_cpu_out_of_reset(u32 cpu)
72{
73 if (WARN_ON(!tegra_cpu_car_ops->out_of_reset))
74 return;
75
76 tegra_cpu_car_ops->out_of_reset(cpu);
77}
78
79static inline void tegra_enable_cpu_clock(u32 cpu)
80{
81 if (WARN_ON(!tegra_cpu_car_ops->enable_clock))
82 return;
83
84 tegra_cpu_car_ops->enable_clock(cpu);
85}
86
87static inline void tegra_disable_cpu_clock(u32 cpu)
88{
89 if (WARN_ON(!tegra_cpu_car_ops->disable_clock))
90 return;
91
92 tegra_cpu_car_ops->disable_clock(cpu);
93}
94
95#ifdef CONFIG_PM_SLEEP
96static inline bool tegra_cpu_rail_off_ready(void)
97{
98 if (WARN_ON(!tegra_cpu_car_ops->rail_off_ready))
99 return false;
100
101 return tegra_cpu_car_ops->rail_off_ready();
102}
103
104static inline void tegra_cpu_clock_suspend(void)
105{
106 if (WARN_ON(!tegra_cpu_car_ops->suspend))
107 return;
108
109 tegra_cpu_car_ops->suspend();
110}
111
112static inline void tegra_cpu_clock_resume(void)
113{
114 if (WARN_ON(!tegra_cpu_car_ops->resume))
115 return;
116
117 tegra_cpu_car_ops->resume();
118}
119#endif
120
121void tegra20_cpu_car_ops_init(void);
122void tegra30_cpu_car_ops_init(void);
123
124#endif /* __MACH_TEGRA_CPU_CAR_H */