| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | 
							- /*
 
-  * omap_hwmod macros, structures
 
-  *
 
-  * Copyright (C) 2009-2011 Nokia Corporation
 
-  * Copyright (C) 2011-2012 Texas Instruments, Inc.
 
-  * Paul Walmsley
 
-  *
 
-  * Created in collaboration with (alphabetical order): Benoît Cousson,
 
-  * Kevin Hilman, Tony Lindgren, Rajendra Nayak, Vikram Pandita, Sakari
 
-  * Poussa, Anand Sawant, Santosh Shilimkar, Richard Woodruff
 
-  *
 
-  * This program is free software; you can redistribute it and/or modify
 
-  * it under the terms of the GNU General Public License version 2 as
 
-  * published by the Free Software Foundation.
 
-  *
 
-  * These headers and macros are used to define OMAP on-chip module
 
-  * data and their integration with other OMAP modules and Linux.
 
-  * Copious documentation and references can also be found in the
 
-  * omap_hwmod code, in arch/arm/mach-omap2/omap_hwmod.c (as of this
 
-  * writing).
 
-  *
 
-  * To do:
 
-  * - add interconnect error log structures
 
-  * - add pinmuxing
 
-  * - init_conn_id_bit (CONNID_BIT_VECTOR)
 
-  * - implement default hwmod SMS/SDRC flags?
 
-  * - move Linux-specific data ("non-ROM data") out
 
-  *
 
-  */
 
- #ifndef __ARCH_ARM_PLAT_OMAP_INCLUDE_MACH_OMAP_HWMOD_H
 
- #define __ARCH_ARM_PLAT_OMAP_INCLUDE_MACH_OMAP_HWMOD_H
 
- #include <linux/kernel.h>
 
- #include <linux/init.h>
 
- #include <linux/list.h>
 
- #include <linux/ioport.h>
 
- #include <linux/spinlock.h>
 
- struct omap_device;
 
- extern struct omap_hwmod_sysc_fields omap_hwmod_sysc_type1;
 
- extern struct omap_hwmod_sysc_fields omap_hwmod_sysc_type2;
 
- extern struct omap_hwmod_sysc_fields omap_hwmod_sysc_type3;
 
- /*
 
-  * OCP SYSCONFIG bit shifts/masks TYPE1. These are for IPs compliant
 
-  * with the original PRCM protocol defined for OMAP2420
 
-  */
 
- #define SYSC_TYPE1_MIDLEMODE_SHIFT	12
 
- #define SYSC_TYPE1_MIDLEMODE_MASK	(0x3 << SYSC_TYPE1_MIDLEMODE_SHIFT)
 
- #define SYSC_TYPE1_CLOCKACTIVITY_SHIFT	8
 
- #define SYSC_TYPE1_CLOCKACTIVITY_MASK	(0x3 << SYSC_TYPE1_CLOCKACTIVITY_SHIFT)
 
- #define SYSC_TYPE1_SIDLEMODE_SHIFT	3
 
- #define SYSC_TYPE1_SIDLEMODE_MASK	(0x3 << SYSC_TYPE1_SIDLEMODE_SHIFT)
 
- #define SYSC_TYPE1_ENAWAKEUP_SHIFT	2
 
- #define SYSC_TYPE1_ENAWAKEUP_MASK	(1 << SYSC_TYPE1_ENAWAKEUP_SHIFT)
 
- #define SYSC_TYPE1_SOFTRESET_SHIFT	1
 
- #define SYSC_TYPE1_SOFTRESET_MASK	(1 << SYSC_TYPE1_SOFTRESET_SHIFT)
 
- #define SYSC_TYPE1_AUTOIDLE_SHIFT	0
 
- #define SYSC_TYPE1_AUTOIDLE_MASK	(1 << SYSC_TYPE1_AUTOIDLE_SHIFT)
 
- /*
 
-  * OCP SYSCONFIG bit shifts/masks TYPE2. These are for IPs compliant
 
-  * with the new PRCM protocol defined for new OMAP4 IPs.
 
-  */
 
- #define SYSC_TYPE2_SOFTRESET_SHIFT	0
 
- #define SYSC_TYPE2_SOFTRESET_MASK	(1 << SYSC_TYPE2_SOFTRESET_SHIFT)
 
- #define SYSC_TYPE2_SIDLEMODE_SHIFT	2
 
- #define SYSC_TYPE2_SIDLEMODE_MASK	(0x3 << SYSC_TYPE2_SIDLEMODE_SHIFT)
 
- #define SYSC_TYPE2_MIDLEMODE_SHIFT	4
 
- #define SYSC_TYPE2_MIDLEMODE_MASK	(0x3 << SYSC_TYPE2_MIDLEMODE_SHIFT)
 
- #define SYSC_TYPE2_DMADISABLE_SHIFT	16
 
- #define SYSC_TYPE2_DMADISABLE_MASK	(0x1 << SYSC_TYPE2_DMADISABLE_SHIFT)
 
- /*
 
-  * OCP SYSCONFIG bit shifts/masks TYPE3.
 
-  * This is applicable for some IPs present in AM33XX
 
-  */
 
- #define SYSC_TYPE3_SIDLEMODE_SHIFT	0
 
- #define SYSC_TYPE3_SIDLEMODE_MASK	(0x3 << SYSC_TYPE3_SIDLEMODE_SHIFT)
 
- #define SYSC_TYPE3_MIDLEMODE_SHIFT	2
 
- #define SYSC_TYPE3_MIDLEMODE_MASK	(0x3 << SYSC_TYPE3_MIDLEMODE_SHIFT)
 
- /* OCP SYSSTATUS bit shifts/masks */
 
- #define SYSS_RESETDONE_SHIFT		0
 
- #define SYSS_RESETDONE_MASK		(1 << SYSS_RESETDONE_SHIFT)
 
- /* Master standby/slave idle mode flags */
 
- #define HWMOD_IDLEMODE_FORCE		(1 << 0)
 
- #define HWMOD_IDLEMODE_NO		(1 << 1)
 
- #define HWMOD_IDLEMODE_SMART		(1 << 2)
 
- #define HWMOD_IDLEMODE_SMART_WKUP	(1 << 3)
 
- /* modulemode control type (SW or HW) */
 
 
  |