xref: /openbmc/linux/arch/arm/mach-omap2/common.h (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
14e65331cSTony Lindgren /*
24e65331cSTony Lindgren  * Header for code common to all OMAP2+ machines.
34e65331cSTony Lindgren  *
44e65331cSTony Lindgren  * This program is free software; you can redistribute it and/or modify it
54e65331cSTony Lindgren  * under the terms of the GNU General Public License as published by the
64e65331cSTony Lindgren  * Free Software Foundation; either version 2 of the License, or (at your
74e65331cSTony Lindgren  * option) any later version.
84e65331cSTony Lindgren  *
94e65331cSTony Lindgren  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
104e65331cSTony Lindgren  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
114e65331cSTony Lindgren  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
124e65331cSTony Lindgren  * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
134e65331cSTony Lindgren  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
144e65331cSTony Lindgren  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
154e65331cSTony Lindgren  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
164e65331cSTony Lindgren  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
174e65331cSTony Lindgren  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
184e65331cSTony Lindgren  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
194e65331cSTony Lindgren  *
204e65331cSTony Lindgren  * You should have received a copy of the  GNU General Public License along
214e65331cSTony Lindgren  * with this program; if not, write  to the Free Software Foundation, Inc.,
224e65331cSTony Lindgren  * 675 Mass Ave, Cambridge, MA 02139, USA.
234e65331cSTony Lindgren  */
244e65331cSTony Lindgren 
254e65331cSTony Lindgren #ifndef __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H
264e65331cSTony Lindgren #define __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H
27b2b9762fSSantosh Shilimkar #ifndef __ASSEMBLER__
284e65331cSTony Lindgren 
29ec2c0825STony Lindgren #include <linux/irq.h>
304e65331cSTony Lindgren #include <linux/delay.h>
313a8761c0STony Lindgren #include <linux/i2c.h>
32a2054256SWolfram Sang #include <linux/mfd/twl.h>
3379fc540fSWolfram Sang #include <linux/platform_data/i2c-omap.h>
347b6d864bSRobin Holt #include <linux/reboot.h>
35eaacabc0SFelipe Balbi #include <linux/irqchip/irq-omap-intc.h>
36dbc04161STony Lindgren 
37b2b9762fSSantosh Shilimkar #include <asm/proc-fns.h>
38944e9df1SMarek Szyprowski #include <asm/hardware/cache-l2x0.h>
394e65331cSTony Lindgren 
403a8761c0STony Lindgren #include "i2c.h"
413a8761c0STony Lindgren 
42ec2c0825STony Lindgren #define OMAP_INTC_START		NR_IRQS
437d7e1ebaSTony Lindgren 
4402b83dcbSTony Lindgren extern int (*omap_pm_soc_init)(void);
4502b83dcbSTony Lindgren int omap_pm_nop_init(void);
4602b83dcbSTony Lindgren 
47bbd707acSShawn Guo #if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP3)
48bbd707acSShawn Guo int omap3_pm_init(void);
49bbd707acSShawn Guo #else
omap3_pm_init(void)50bbd707acSShawn Guo static inline int omap3_pm_init(void)
51bbd707acSShawn Guo {
52bbd707acSShawn Guo 	return 0;
53bbd707acSShawn Guo }
54bbd707acSShawn Guo #endif
55bbd707acSShawn Guo 
566af16a1dSRajendra Nayak #if defined(CONFIG_PM) && (defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) || defined(CONFIG_SOC_DRA7XX))
57bbd707acSShawn Guo int omap4_pm_init(void);
58de70af49SNishanth Menon int omap4_pm_init_early(void);
59bbd707acSShawn Guo #else
omap4_pm_init(void)60bbd707acSShawn Guo static inline int omap4_pm_init(void)
61bbd707acSShawn Guo {
62bbd707acSShawn Guo 	return 0;
63bbd707acSShawn Guo }
64de70af49SNishanth Menon 
omap4_pm_init_early(void)65de70af49SNishanth Menon static inline int omap4_pm_init_early(void)
66de70af49SNishanth Menon {
67de70af49SNishanth Menon 	return 0;
68de70af49SNishanth Menon }
69bbd707acSShawn Guo #endif
70bbd707acSShawn Guo 
7141d9d44dSDave Gerlach #if defined(CONFIG_PM) && (defined(CONFIG_SOC_AM33XX) || \
7241d9d44dSDave Gerlach 	defined(CONFIG_SOC_AM43XX))
7302b83dcbSTony Lindgren int amx3_common_pm_init(void);
7441d9d44dSDave Gerlach #else
amx3_common_pm_init(void)7502b83dcbSTony Lindgren static inline int amx3_common_pm_init(void)
7602b83dcbSTony Lindgren {
7702b83dcbSTony Lindgren 	return 0;
7802b83dcbSTony Lindgren }
7941d9d44dSDave Gerlach #endif
8041d9d44dSDave Gerlach 
812ad501ccSArnd Bergmann #ifdef CONFIG_CACHE_L2X0
82b39b14e6SSekhar Nori int omap_l2_cache_init(void);
83944e9df1SMarek Szyprowski #define OMAP_L2C_AUX_CTRL	(L2C_AUX_CTRL_SHARED_OVERRIDE | \
84944e9df1SMarek Szyprowski 				 L310_AUX_CTRL_DATA_PREFETCH | \
85944e9df1SMarek Szyprowski 				 L310_AUX_CTRL_INSTR_PREFETCH)
86944e9df1SMarek Szyprowski void omap4_l2c310_write_sec(unsigned long val, unsigned reg);
872ad501ccSArnd Bergmann #else
omap_l2_cache_init(void)882ad501ccSArnd Bergmann static inline int omap_l2_cache_init(void)
892ad501ccSArnd Bergmann {
902ad501ccSArnd Bergmann 	return 0;
912ad501ccSArnd Bergmann }
92944e9df1SMarek Szyprowski 
93944e9df1SMarek Szyprowski #define OMAP_L2C_AUX_CTRL	0
94944e9df1SMarek Szyprowski #define omap4_l2c310_write_sec	NULL
952ad501ccSArnd Bergmann #endif
962ee04b88STony Lindgren 
972ee04b88STony Lindgren #ifdef CONFIG_SOC_HAS_REALTIME_COUNTER
986bb27d73SStephen Warren extern void omap5_realtime_timer_init(void);
992ee04b88STony Lindgren #else
omap5_realtime_timer_init(void)1002ee04b88STony Lindgren static inline void omap5_realtime_timer_init(void)
1012ee04b88STony Lindgren {
1022ee04b88STony Lindgren }
1032ee04b88STony Lindgren #endif
1044e65331cSTony Lindgren 
1054e65331cSTony Lindgren void omap2420_init_early(void);
1064e65331cSTony Lindgren void omap2430_init_early(void);
1074e65331cSTony Lindgren void omap3430_init_early(void);
1084e65331cSTony Lindgren void omap3630_init_early(void);
109ce3fc89aSVaibhav Hiremath void am33xx_init_early(void);
1104e65331cSTony Lindgren void am35xx_init_early(void);
111c27964b5STony Lindgren void ti814x_init_early(void);
112c27964b5STony Lindgren void ti816x_init_early(void);
113c5107027SAfzal Mohammed void am43xx_init_early(void);
114765e7a06SNishanth Menon void am43xx_init_late(void);
1154e65331cSTony Lindgren void omap4430_init_early(void);
11605e152c7SR Sricharan void omap5_init_early(void);
11702b83dcbSTony Lindgren void omap3_init_late(void);
118bbd707acSShawn Guo void omap4430_init_late(void);
119bbd707acSShawn Guo void ti81xx_init_late(void);
120765e7a06SNishanth Menon void am33xx_init_late(void);
121765e7a06SNishanth Menon void omap5_init_late(void);
122a3a9384aSR Sricharan void dra7xx_init_early(void);
123765e7a06SNishanth Menon void dra7xx_init_late(void);
1244e65331cSTony Lindgren 
1256770b211SRuslan Bilovol #ifdef CONFIG_SOC_BUS
1266770b211SRuslan Bilovol void omap_soc_device_init(void);
1276770b211SRuslan Bilovol #else
omap_soc_device_init(void)1286770b211SRuslan Bilovol static inline void omap_soc_device_init(void)
1296770b211SRuslan Bilovol {
1306770b211SRuslan Bilovol }
1316770b211SRuslan Bilovol #endif
1326770b211SRuslan Bilovol 
1332f334a38SPaul Walmsley #if defined(CONFIG_SOC_OMAP2420) || defined(CONFIG_SOC_OMAP2430)
1347b6d864bSRobin Holt void omap2xxx_restart(enum reboot_mode mode, const char *cmd);
135ecc46cfdSVaibhav Hiremath #else
omap2xxx_restart(enum reboot_mode mode,const char * cmd)1367b6d864bSRobin Holt static inline void omap2xxx_restart(enum reboot_mode mode, const char *cmd)
1372f334a38SPaul Walmsley {
1382f334a38SPaul Walmsley }
139ecc46cfdSVaibhav Hiremath #endif
1404e65331cSTony Lindgren 
14114e067c1SJean-Sebastien A. Beaudry #ifdef CONFIG_SOC_AM33XX
1427b6d864bSRobin Holt void am33xx_restart(enum reboot_mode mode, const char *cmd);
14314e067c1SJean-Sebastien A. Beaudry #else
am33xx_restart(enum reboot_mode mode,const char * cmd)1447b6d864bSRobin Holt static inline void am33xx_restart(enum reboot_mode mode, const char *cmd)
14514e067c1SJean-Sebastien A. Beaudry {
14614e067c1SJean-Sebastien A. Beaudry }
14714e067c1SJean-Sebastien A. Beaudry #endif
14814e067c1SJean-Sebastien A. Beaudry 
1492f334a38SPaul Walmsley #ifdef CONFIG_ARCH_OMAP3
1507b6d864bSRobin Holt void omap3xxx_restart(enum reboot_mode mode, const char *cmd);
1512f334a38SPaul Walmsley #else
omap3xxx_restart(enum reboot_mode mode,const char * cmd)1527b6d864bSRobin Holt static inline void omap3xxx_restart(enum reboot_mode mode, const char *cmd)
1532f334a38SPaul Walmsley {
1542f334a38SPaul Walmsley }
1552f334a38SPaul Walmsley #endif
1562f334a38SPaul Walmsley 
157bc7235c9STony Lindgren #ifdef CONFIG_SOC_TI81XX
158bc7235c9STony Lindgren void ti81xx_restart(enum reboot_mode mode, const char *cmd);
159bc7235c9STony Lindgren #else
ti81xx_restart(enum reboot_mode mode,const char * cmd)160bc7235c9STony Lindgren static inline void ti81xx_restart(enum reboot_mode mode, const char *cmd)
161bc7235c9STony Lindgren {
162bc7235c9STony Lindgren }
163bc7235c9STony Lindgren #endif
164bc7235c9STony Lindgren 
1657abb1a53SNishanth Menon #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) || \
1667abb1a53SNishanth Menon 	defined(CONFIG_SOC_DRA7XX) || defined(CONFIG_SOC_AM43XX)
1677b6d864bSRobin Holt void omap44xx_restart(enum reboot_mode mode, const char *cmd);
1682f334a38SPaul Walmsley #else
omap44xx_restart(enum reboot_mode mode,const char * cmd)1697b6d864bSRobin Holt static inline void omap44xx_restart(enum reboot_mode mode, const char *cmd)
1702f334a38SPaul Walmsley {
1712f334a38SPaul Walmsley }
1722f334a38SPaul Walmsley #endif
1732f334a38SPaul Walmsley 
1743fa60975SRussell King #ifdef CONFIG_OMAP_INTERCONNECT_BARRIER
1753fa60975SRussell King void omap_barrier_reserve_memblock(void);
1763fa60975SRussell King void omap_barriers_init(void);
1773fa60975SRussell King #else
omap_barrier_reserve_memblock(void)1783fa60975SRussell King static inline void omap_barrier_reserve_memblock(void)
1793fa60975SRussell King {
1803fa60975SRussell King }
1813fa60975SRussell King #endif
1823fa60975SRussell King 
183b6a4226cSPaul Walmsley /* This gets called from mach-omap2/io.c, do not call this */
184b6a4226cSPaul Walmsley void __init omap2_set_globals_tap(u32 class, void __iomem *tap);
1854e65331cSTony Lindgren 
186b6a4226cSPaul Walmsley void __init omap242x_map_io(void);
187b6a4226cSPaul Walmsley void __init omap243x_map_io(void);
188b6a4226cSPaul Walmsley void __init omap3_map_io(void);
189b6a4226cSPaul Walmsley void __init am33xx_map_io(void);
190b6a4226cSPaul Walmsley void __init omap4_map_io(void);
191b6a4226cSPaul Walmsley void __init omap5_map_io(void);
192ea827ad5SNishanth Menon void __init dra7xx_map_io(void);
193b6a4226cSPaul Walmsley void __init ti81xx_map_io(void);
1944e65331cSTony Lindgren 
1954e65331cSTony Lindgren /**
1964e65331cSTony Lindgren  * omap_test_timeout - busy-loop, testing a condition
1974e65331cSTony Lindgren  * @cond: condition to test until it evaluates to true
1984e65331cSTony Lindgren  * @timeout: maximum number of microseconds in the timeout
1994e65331cSTony Lindgren  * @index: loop index (integer)
2004e65331cSTony Lindgren  *
2014e65331cSTony Lindgren  * Loop waiting for @cond to become true or until at least @timeout
2024e65331cSTony Lindgren  * microseconds have passed.  To use, define some integer @index in the
2034e65331cSTony Lindgren  * calling code.  After running, if @index == @timeout, then the loop has
2044e65331cSTony Lindgren  * timed out.
2054e65331cSTony Lindgren  */
2064e65331cSTony Lindgren #define omap_test_timeout(cond, timeout, index)			\
2074e65331cSTony Lindgren ({								\
2084e65331cSTony Lindgren 	for (index = 0; index < timeout; index++) {		\
2094e65331cSTony Lindgren 		if (cond)					\
2104e65331cSTony Lindgren 			break;					\
2114e65331cSTony Lindgren 		udelay(1);					\
2124e65331cSTony Lindgren 	}							\
2134e65331cSTony Lindgren })
2144e65331cSTony Lindgren 
215c4082d49SR Sricharan void omap_gic_of_init(void);
2164e65331cSTony Lindgren 
2174e65331cSTony Lindgren #ifdef CONFIG_CACHE_L2X0
21802afe8a7SSantosh Shilimkar extern void __iomem *omap4_get_l2cache_base(void);
2194e65331cSTony Lindgren #endif
2204e65331cSTony Lindgren 
22152fa2120SBenoit Cousson struct device_node;
22252fa2120SBenoit Cousson 
22302afe8a7SSantosh Shilimkar #ifdef CONFIG_SMP
22402afe8a7SSantosh Shilimkar extern void __iomem *omap4_get_scu_base(void);
22502afe8a7SSantosh Shilimkar #else
omap4_get_scu_base(void)22602afe8a7SSantosh Shilimkar static inline void __iomem *omap4_get_scu_base(void)
22702afe8a7SSantosh Shilimkar {
22802afe8a7SSantosh Shilimkar 	return NULL;
22902afe8a7SSantosh Shilimkar }
2304e65331cSTony Lindgren #endif
2314e65331cSTony Lindgren 
232ff999b8aSSantosh Shilimkar extern void gic_dist_disable(void);
23374ed7bdcSStrashko, Grygorii extern void gic_dist_enable(void);
234cd8ce159SColin Cross extern bool gic_dist_disabled(void);
235cd8ce159SColin Cross extern void gic_timer_retrigger(void);
23648840e16SAndrew F. Davis extern void _omap_smc1(u32 fn, u32 arg);
237f4b9f40aSTony Lindgren extern void omap4_sar_ram_init(void);
238501f0c75SSantosh Shilimkar extern void __iomem *omap4_get_sar_ram_base(void);
2390573b957STony Lindgren extern void omap4_mpuss_early_init(void);
240b2b9762fSSantosh Shilimkar extern void omap_do_wfi(void);
241e514f1fdSArnd Bergmann extern void omap_interconnect_sync(void);
2420573b957STony Lindgren 
2434e65331cSTony Lindgren #ifdef CONFIG_SMP
2444e65331cSTony Lindgren /* Needed for secondary core boot */
2454e65331cSTony Lindgren extern u32 omap_modify_auxcoreboot0(u32 set_mask, u32 clear_mask);
2464e65331cSTony Lindgren extern void omap_auxcoreboot_addr(u32 cpu_addr);
2474e65331cSTony Lindgren extern u32 omap_read_auxcoreboot0(void);
24806915321SMarc Zyngier 
24906915321SMarc Zyngier extern void omap4_cpu_die(unsigned int cpu);
2503696203cSTony Lindgren extern int omap4_cpu_kill(unsigned int cpu);
25106915321SMarc Zyngier 
25275305275SMasahiro Yamada extern const struct smp_operations omap4_smp_ops;
2534e65331cSTony Lindgren #endif
2544e65331cSTony Lindgren 
2556f921208SArnd Bergmann extern u32 omap4_get_cpu1_ns_pa_addr(void);
2566f921208SArnd Bergmann 
257b2b9762fSSantosh Shilimkar #if defined(CONFIG_SMP) && defined(CONFIG_PM)
258b2b9762fSSantosh Shilimkar extern int omap4_mpuss_init(void);
259*a282e5efSTony Lindgren extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state,
260*a282e5efSTony Lindgren 				bool rcuidle);
261b5b4f288SSantosh Shilimkar extern int omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state);
262b2b9762fSSantosh Shilimkar #else
omap4_enter_lowpower(unsigned int cpu,unsigned int power_state,bool rcuidle)263b2b9762fSSantosh Shilimkar static inline int omap4_enter_lowpower(unsigned int cpu,
264*a282e5efSTony Lindgren 					unsigned int power_state,
265*a282e5efSTony Lindgren 					bool rcuidle)
266b2b9762fSSantosh Shilimkar {
267b2b9762fSSantosh Shilimkar 	cpu_do_idle();
268b2b9762fSSantosh Shilimkar 	return 0;
269b2b9762fSSantosh Shilimkar }
270b2b9762fSSantosh Shilimkar 
omap4_hotplug_cpu(unsigned int cpu,unsigned int power_state)271b5b4f288SSantosh Shilimkar static inline int omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state)
272b5b4f288SSantosh Shilimkar {
273b5b4f288SSantosh Shilimkar 	cpu_do_idle();
274b5b4f288SSantosh Shilimkar 	return 0;
275b5b4f288SSantosh Shilimkar }
276b5b4f288SSantosh Shilimkar 
omap4_mpuss_init(void)277b2b9762fSSantosh Shilimkar static inline int omap4_mpuss_init(void)
278b2b9762fSSantosh Shilimkar {
279b2b9762fSSantosh Shilimkar 	return 0;
280b2b9762fSSantosh Shilimkar }
281b2b9762fSSantosh Shilimkar 
2828a8be46aSTony Lindgren #endif
2838a8be46aSTony Lindgren 
2848a8be46aSTony Lindgren #ifdef CONFIG_ARCH_OMAP4
2858a8be46aSTony Lindgren void omap4_secondary_startup(void);
2868a8be46aSTony Lindgren void omap4460_secondary_startup(void);
2878a8be46aSTony Lindgren int omap4_finish_suspend(unsigned long cpu_state);
2888a8be46aSTony Lindgren void omap4_cpu_resume(void);
2898a8be46aSTony Lindgren #else
omap4_secondary_startup(void)2908a8be46aSTony Lindgren static inline void omap4_secondary_startup(void)
2918a8be46aSTony Lindgren {
2928a8be46aSTony Lindgren }
2938a8be46aSTony Lindgren 
omap4460_secondary_startup(void)2948a8be46aSTony Lindgren static inline void omap4460_secondary_startup(void)
2958a8be46aSTony Lindgren {
2968a8be46aSTony Lindgren }
omap4_finish_suspend(unsigned long cpu_state)297b2b9762fSSantosh Shilimkar static inline int omap4_finish_suspend(unsigned long cpu_state)
298b2b9762fSSantosh Shilimkar {
299b2b9762fSSantosh Shilimkar 	return 0;
300b2b9762fSSantosh Shilimkar }
omap4_cpu_resume(void)301b2b9762fSSantosh Shilimkar static inline void omap4_cpu_resume(void)
3028a8be46aSTony Lindgren {
3038a8be46aSTony Lindgren }
3048a8be46aSTony Lindgren #endif
3053ba2a739SSantosh Shilimkar 
3068a8be46aSTony Lindgren #if defined(CONFIG_SOC_OMAP5) || defined(CONFIG_SOC_DRA7XX)
3078a8be46aSTony Lindgren void omap5_secondary_startup(void);
3088a8be46aSTony Lindgren void omap5_secondary_hyp_startup(void);
3098a8be46aSTony Lindgren #else
omap5_secondary_startup(void)3108a8be46aSTony Lindgren static inline void omap5_secondary_startup(void)
3118a8be46aSTony Lindgren {
3128a8be46aSTony Lindgren }
3138a8be46aSTony Lindgren 
omap5_secondary_hyp_startup(void)3148a8be46aSTony Lindgren static inline void omap5_secondary_hyp_startup(void)
3158a8be46aSTony Lindgren {
3168a8be46aSTony Lindgren }
317b2b9762fSSantosh Shilimkar #endif
318258ee922STony Lindgren 
319211010aeSTony Lindgren struct omap_system_dma_plat_info;
320211010aeSTony Lindgren 
32131957609SUwe Kleine-König void pdata_quirks_init(const struct of_device_id *);
322dad12d11STony Lindgren void omap_auxdata_legacy_init(struct device *dev);
3238651bd8cSTony Lindgren void omap_pcs_legacy_init(int irq, void (*rearm)(void));
324211010aeSTony Lindgren extern struct omap_system_dma_plat_info dma_plat_info;
3256a08e1e6STony Lindgren 
326258ee922STony Lindgren struct omap_sdrc_params;
327258ee922STony Lindgren extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
328258ee922STony Lindgren 				      struct omap_sdrc_params *sdrc_cs1);
329f583f0f2SLokesh Vutla extern void omap_reserve(void);
330258ee922STony Lindgren 
3315c2e8852STony Lindgren struct omap_hwmod;
3325c2e8852STony Lindgren extern int omap_dss_reset(struct omap_hwmod *);
3334e65331cSTony Lindgren 
334ff931c82SRajendra Nayak /* SoC specific clock initializer */
335cfa9667dSTero Kristo int omap_clk_init(void);
336ff931c82SRajendra Nayak 
337e514f1fdSArnd Bergmann #if IS_ENABLED(CONFIG_OMAP_IOMMU)
338e514f1fdSArnd Bergmann int omap_iommu_set_pwrdm_constraint(struct platform_device *pdev, bool request,
339e514f1fdSArnd Bergmann 				    u8 *pwrst);
340e514f1fdSArnd Bergmann #else
omap_iommu_set_pwrdm_constraint(struct platform_device * pdev,bool request,u8 * pwrst)341e514f1fdSArnd Bergmann static inline int omap_iommu_set_pwrdm_constraint(struct platform_device *pdev,
342e514f1fdSArnd Bergmann 						  bool request, u8 *pwrst)
343e514f1fdSArnd Bergmann {
344e514f1fdSArnd Bergmann 	return 0;
345e514f1fdSArnd Bergmann }
346e514f1fdSArnd Bergmann #endif
347e514f1fdSArnd Bergmann 
3484e65331cSTony Lindgren #endif /* __ASSEMBLER__ */
3494e65331cSTony Lindgren #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */
350