forked from Minki/linux
Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
* 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: (113 commits) omap4: Add support for i2c init omap: Fix i2c platform init code for omap4 OMAP2 clock: fix recursive spinlock attempt when CONFIG_CPU_FREQ=y OMAP powerdomain, hwmod, omap_device: add some credits OMAP4 powerdomain: Support LOWPOWERSTATECHANGE for powerdomains OMAP3 clock: add support for setting the divider for sys_clkout2 using clk_set_rate OMAP4 powerdomain: Fix pwrsts flags for ALWAYS ON domains OMAP: timers: Fix clock source names for OMAP4 OMAP4 clock: Support clk_set_parent OMAP4: PRCM: Add offset defines for all CM registers OMAP4: PRCM: Add offset defines for all PRM registers OMAP4: PRCM: Remove duplicate definition of base addresses OMAP4: PRM: Remove MPU internal code name and apply PRCM naming convention OMAP4: CM: Remove non-functional registers in ES1.0 OMAP: hwmod: Replace WARN by pr_warning for clockdomain check OMAP: hwmod: Rename hwmod name for the MPU OMAP: hwmod: Do not exit the iteration if one clock init failed OMAP: hwmod: Replace WARN by pr_warning if clock lookup failed OMAP: hwmod: Remove IS_ERR check with omap_clk_get_by_name return value OMAP: hwmod: Fix wrong pointer iteration in oh->slaves ...
This commit is contained in:
commit
a6f039869f
@ -422,15 +422,29 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
|
||||
#
|
||||
# CONFIG_NET_PKTGEN is not set
|
||||
# CONFIG_HAMRADIO is not set
|
||||
# CONFIG_CAN is not set
|
||||
CONFIG_CAN=y
|
||||
CONFIG_CAN_RAW=y
|
||||
CONFIG_CAN_BCM=y
|
||||
|
||||
#
|
||||
# CAN Device Drivers
|
||||
#
|
||||
CONFIG_CAN_VCAN=y
|
||||
CONFIG_CAN_DEV=y
|
||||
CONFIG_CAN_CALC_BITTIMING=y
|
||||
CONFIG_CAN_TI_HECC=y
|
||||
# CONFIG_CAN_SJA1000 is not set
|
||||
|
||||
#
|
||||
# CAN USB interfaces
|
||||
#
|
||||
# CONFIG_CAN_EMS_USB is not set
|
||||
CONFIG_CAN_DEBUG_DEVICES=y
|
||||
# CONFIG_IRDA is not set
|
||||
# CONFIG_BT is not set
|
||||
# CONFIG_AF_RXRPC is not set
|
||||
CONFIG_WIRELESS=y
|
||||
# CONFIG_CFG80211 is not set
|
||||
CONFIG_CFG80211_DEFAULT_PS_VALUE=0
|
||||
# CONFIG_WIRELESS_OLD_REGULATORY is not set
|
||||
# CONFIG_WIRELESS_EXT is not set
|
||||
# CONFIG_LIB80211 is not set
|
||||
|
||||
#
|
||||
@ -517,7 +531,75 @@ CONFIG_SCSI_LOWLEVEL=y
|
||||
# CONFIG_SCSI_OSD_INITIATOR is not set
|
||||
# CONFIG_ATA is not set
|
||||
# CONFIG_MD is not set
|
||||
# CONFIG_NETDEVICES is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
# CONFIG_DUMMY is not set
|
||||
# CONFIG_BONDING is not set
|
||||
# CONFIG_MACVLAN is not set
|
||||
# CONFIG_EQUALIZER is not set
|
||||
# CONFIG_TUN is not set
|
||||
# CONFIG_VETH is not set
|
||||
CONFIG_PHYLIB=y
|
||||
|
||||
#
|
||||
# MII PHY device drivers
|
||||
#
|
||||
# CONFIG_MARVELL_PHY is not set
|
||||
# CONFIG_DAVICOM_PHY is not set
|
||||
# CONFIG_QSEMI_PHY is not set
|
||||
# CONFIG_LXT_PHY is not set
|
||||
# CONFIG_CICADA_PHY is not set
|
||||
# CONFIG_VITESSE_PHY is not set
|
||||
# CONFIG_SMSC_PHY is not set
|
||||
# CONFIG_BROADCOM_PHY is not set
|
||||
# CONFIG_ICPLUS_PHY is not set
|
||||
# CONFIG_REALTEK_PHY is not set
|
||||
# CONFIG_NATIONAL_PHY is not set
|
||||
# CONFIG_STE10XP is not set
|
||||
# CONFIG_LSI_ET1011C_PHY is not set
|
||||
# CONFIG_FIXED_PHY is not set
|
||||
# CONFIG_MDIO_BITBANG is not set
|
||||
CONFIG_NET_ETHERNET=y
|
||||
# CONFIG_MII is not set
|
||||
# CONFIG_AX88796 is not set
|
||||
# CONFIG_SMC91X is not set
|
||||
CONFIG_TI_DAVINCI_EMAC=y
|
||||
# CONFIG_DM9000 is not set
|
||||
# CONFIG_ETHOC is not set
|
||||
# CONFIG_SMC911X is not set
|
||||
# CONFIG_SMSC911X is not set
|
||||
# CONFIG_DNET is not set
|
||||
# CONFIG_IBM_NEW_EMAC_ZMII is not set
|
||||
# CONFIG_IBM_NEW_EMAC_RGMII is not set
|
||||
# CONFIG_IBM_NEW_EMAC_TAH is not set
|
||||
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
|
||||
# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
|
||||
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
|
||||
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
|
||||
# CONFIG_B44 is not set
|
||||
# CONFIG_KS8842 is not set
|
||||
# CONFIG_KS8851_MLL is not set
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
|
||||
#
|
||||
# Enable WiMAX (Networking options) to see the WiMAX drivers
|
||||
#
|
||||
|
||||
#
|
||||
# USB Network Adapters
|
||||
#
|
||||
# CONFIG_USB_CATC is not set
|
||||
# CONFIG_USB_KAWETH is not set
|
||||
# CONFIG_USB_PEGASUS is not set
|
||||
# CONFIG_USB_RTL8150 is not set
|
||||
# CONFIG_USB_USBNET is not set
|
||||
# CONFIG_WAN is not set
|
||||
# CONFIG_PPP is not set
|
||||
# CONFIG_SLIP is not set
|
||||
# CONFIG_NETCONSOLE is not set
|
||||
# CONFIG_NETPOLL is not set
|
||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||
# CONFIG_ISDN is not set
|
||||
# CONFIG_PHONE is not set
|
||||
|
||||
|
@ -47,6 +47,7 @@ CONFIG_SYSVIPC_SYSCTL=y
|
||||
# CONFIG_TASKSTATS is not set
|
||||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_AUDIT is not set
|
||||
CONFIG_TREE_PREEMPT_RCU=y
|
||||
# CONFIG_IKCONFIG is not set
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
CONFIG_SYSFS_DEPRECATED=y
|
||||
@ -95,9 +96,8 @@ CONFIG_KMOD=y
|
||||
# Block layer
|
||||
#
|
||||
CONFIG_BLOCK=y
|
||||
# CONFIG_LBD is not set
|
||||
# CONFIG_LBDAF is not set
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_LSF is not set
|
||||
|
||||
#
|
||||
# IO Schedulers
|
||||
@ -699,6 +699,7 @@ CONFIG_SERIO=y
|
||||
CONFIG_SERIO_SERPORT=y
|
||||
CONFIG_SERIO_LIBPS2=y
|
||||
# CONFIG_SERIO_RAW is not set
|
||||
CONFIG_SERIO_AMS_DELTA=y
|
||||
# CONFIG_GAMEPORT is not set
|
||||
|
||||
#
|
||||
@ -835,7 +836,8 @@ CONFIG_DAB=y
|
||||
#
|
||||
# Graphics support
|
||||
#
|
||||
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
||||
CONFIG_BACKLIGHT_LCD_SUPPORT=y
|
||||
CONFIG_LCD_CLASS_DEVICE=y
|
||||
|
||||
#
|
||||
# Display device support
|
||||
@ -1283,7 +1285,7 @@ CONFIG_DEBUG_PREEMPT=y
|
||||
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
|
||||
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
|
||||
# CONFIG_DEBUG_KOBJECT is not set
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_LIST is not set
|
||||
|
@ -1,13 +1,14 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.33-rc6
|
||||
# Thu Feb 4 15:42:56 2010
|
||||
# Linux kernel version: 2.6.34-rc2
|
||||
# Wed Mar 24 13:27:25 2010
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
CONFIG_GENERIC_GPIO=y
|
||||
CONFIG_GENERIC_TIME=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_HAVE_PROC_CPU=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
CONFIG_STACKTRACE_SUPPORT=y
|
||||
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
|
||||
@ -19,7 +20,9 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||
CONFIG_ARCH_HAS_CPUFREQ=y
|
||||
CONFIG_GENERIC_HWEIGHT=y
|
||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||
CONFIG_NEED_DMA_MAP_STATE=y
|
||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||
CONFIG_ARM_L1_CACHE_SHIFT_6=y
|
||||
CONFIG_VECTORS_BASE=0xffff0000
|
||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||
CONFIG_CONSTRUCTORS=y
|
||||
@ -60,11 +63,6 @@ CONFIG_RCU_FANOUT=32
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
CONFIG_GROUP_SCHED=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
# CONFIG_RT_GROUP_SCHED is not set
|
||||
CONFIG_USER_SCHED=y
|
||||
# CONFIG_CGROUP_SCHED is not set
|
||||
# CONFIG_CGROUPS is not set
|
||||
# CONFIG_SYSFS_DEPRECATED_V2 is not set
|
||||
# CONFIG_RELAY is not set
|
||||
@ -96,10 +94,14 @@ CONFIG_TIMERFD=y
|
||||
CONFIG_EVENTFD=y
|
||||
CONFIG_SHMEM=y
|
||||
CONFIG_AIO=y
|
||||
CONFIG_HAVE_PERF_EVENTS=y
|
||||
CONFIG_PERF_USE_VMALLOC=y
|
||||
|
||||
#
|
||||
# Kernel Performance Events And Counters
|
||||
#
|
||||
# CONFIG_PERF_EVENTS is not set
|
||||
# CONFIG_PERF_COUNTERS is not set
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_COMPAT_BRK=y
|
||||
CONFIG_SLAB=y
|
||||
@ -170,7 +172,7 @@ CONFIG_INLINE_WRITE_UNLOCK=y
|
||||
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
|
||||
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
|
||||
# CONFIG_MUTEX_SPIN_ON_OWNER is not set
|
||||
# CONFIG_FREEZER is not set
|
||||
CONFIG_FREEZER=y
|
||||
|
||||
#
|
||||
# System Type
|
||||
@ -181,6 +183,7 @@ CONFIG_MMU=y
|
||||
# CONFIG_ARCH_REALVIEW is not set
|
||||
# CONFIG_ARCH_VERSATILE is not set
|
||||
# CONFIG_ARCH_AT91 is not set
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
# CONFIG_ARCH_CLPS711X is not set
|
||||
# CONFIG_ARCH_GEMINI is not set
|
||||
# CONFIG_ARCH_EBSA110 is not set
|
||||
@ -190,7 +193,6 @@ CONFIG_MMU=y
|
||||
# CONFIG_ARCH_STMP3XXX is not set
|
||||
# CONFIG_ARCH_NETX is not set
|
||||
# CONFIG_ARCH_H720X is not set
|
||||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_IOP13XX is not set
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
@ -207,21 +209,26 @@ CONFIG_MMU=y
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_NS9XXX is not set
|
||||
# CONFIG_ARCH_W90X900 is not set
|
||||
# CONFIG_ARCH_NUC93X is not set
|
||||
# CONFIG_ARCH_PNX4008 is not set
|
||||
# CONFIG_ARCH_PXA is not set
|
||||
# CONFIG_ARCH_MSM is not set
|
||||
# CONFIG_ARCH_SHMOBILE is not set
|
||||
# CONFIG_ARCH_RPC is not set
|
||||
# CONFIG_ARCH_SA1100 is not set
|
||||
# CONFIG_ARCH_S3C2410 is not set
|
||||
# CONFIG_ARCH_S3C64XX is not set
|
||||
# CONFIG_ARCH_S5P6440 is not set
|
||||
# CONFIG_ARCH_S5P6442 is not set
|
||||
# CONFIG_ARCH_S5PC1XX is not set
|
||||
# CONFIG_ARCH_S5PV210 is not set
|
||||
# CONFIG_ARCH_SHARK is not set
|
||||
# CONFIG_ARCH_LH7A40X is not set
|
||||
# CONFIG_ARCH_U300 is not set
|
||||
# CONFIG_ARCH_U8500 is not set
|
||||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_DAVINCI is not set
|
||||
CONFIG_ARCH_OMAP=y
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
# CONFIG_ARCH_U8500 is not set
|
||||
|
||||
#
|
||||
# TI OMAP Implementations
|
||||
@ -237,16 +244,20 @@ CONFIG_ARCH_OMAP3=y
|
||||
# OMAP Feature Selections
|
||||
#
|
||||
# CONFIG_OMAP_RESET_CLOCKS is not set
|
||||
# CONFIG_OMAP_MUX is not set
|
||||
CONFIG_OMAP_MUX=y
|
||||
# CONFIG_OMAP_MUX_DEBUG is not set
|
||||
CONFIG_OMAP_MUX_WARNINGS=y
|
||||
CONFIG_OMAP_MCBSP=y
|
||||
# CONFIG_OMAP_MBOX_FWK is not set
|
||||
# CONFIG_OMAP_MPU_TIMER is not set
|
||||
CONFIG_OMAP_32K_TIMER=y
|
||||
# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
|
||||
CONFIG_OMAP_32K_TIMER_HZ=128
|
||||
CONFIG_OMAP_DM_TIMER=y
|
||||
# CONFIG_OMAP_PM_NONE is not set
|
||||
CONFIG_OMAP_PM_NOOP=y
|
||||
CONFIG_ARCH_OMAP3430=y
|
||||
CONFIG_OMAP_PACKAGE_CUS=y
|
||||
|
||||
#
|
||||
# OMAP Board Type
|
||||
@ -295,6 +306,7 @@ CONFIG_ARM_THUMB=y
|
||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||
CONFIG_HAS_TLS_REG=y
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=6
|
||||
CONFIG_CPU_HAS_PMU=y
|
||||
# CONFIG_ARM_ERRATA_430973 is not set
|
||||
# CONFIG_ARM_ERRATA_458693 is not set
|
||||
# CONFIG_ARM_ERRATA_460075 is not set
|
||||
@ -387,7 +399,14 @@ CONFIG_HAVE_AOUT=y
|
||||
#
|
||||
# Power management options
|
||||
#
|
||||
# CONFIG_PM is not set
|
||||
CONFIG_PM=y
|
||||
# CONFIG_PM_DEBUG is not set
|
||||
CONFIG_PM_SLEEP=y
|
||||
CONFIG_SUSPEND=y
|
||||
CONFIG_SUSPEND_FREEZER=y
|
||||
# CONFIG_APM_EMULATION is not set
|
||||
# CONFIG_PM_RUNTIME is not set
|
||||
CONFIG_PM_OPS=y
|
||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||
CONFIG_NET=y
|
||||
|
||||
@ -395,7 +414,6 @@ CONFIG_NET=y
|
||||
# Networking options
|
||||
#
|
||||
CONFIG_PACKET=y
|
||||
# CONFIG_PACKET_MMAP is not set
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_XFRM=y
|
||||
# CONFIG_XFRM_USER is not set
|
||||
@ -666,6 +684,7 @@ CONFIG_HAVE_IDE=y
|
||||
#
|
||||
# SCSI device support
|
||||
#
|
||||
CONFIG_SCSI_MOD=y
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_DMA=y
|
||||
@ -717,6 +736,7 @@ CONFIG_NET_ETHERNET=y
|
||||
CONFIG_MII=y
|
||||
# CONFIG_AX88796 is not set
|
||||
# CONFIG_SMC91X is not set
|
||||
# CONFIG_TI_DAVINCI_EMAC is not set
|
||||
CONFIG_DM9000=y
|
||||
CONFIG_DM9000_DEBUGLEVEL=4
|
||||
CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
|
||||
@ -863,6 +883,7 @@ CONFIG_SERIAL_8250_RSA=y
|
||||
# CONFIG_SERIAL_MAX3100 is not set
|
||||
CONFIG_SERIAL_CORE=y
|
||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
@ -891,6 +912,7 @@ CONFIG_I2C_HELPER_AUTO=y
|
||||
# CONFIG_I2C_OCORES is not set
|
||||
CONFIG_I2C_OMAP=y
|
||||
# CONFIG_I2C_SIMTEC is not set
|
||||
# CONFIG_I2C_XILINX is not set
|
||||
|
||||
#
|
||||
# External I2C/SMBus adapter drivers
|
||||
@ -904,15 +926,9 @@ CONFIG_I2C_OMAP=y
|
||||
#
|
||||
# CONFIG_I2C_PCA_PLATFORM is not set
|
||||
# CONFIG_I2C_STUB is not set
|
||||
|
||||
#
|
||||
# Miscellaneous I2C Chip support
|
||||
#
|
||||
# CONFIG_SENSORS_TSL2550 is not set
|
||||
# CONFIG_I2C_DEBUG_CORE is not set
|
||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||
# CONFIG_I2C_DEBUG_BUS is not set
|
||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||
CONFIG_SPI=y
|
||||
# CONFIG_SPI_DEBUG is not set
|
||||
CONFIG_SPI_MASTER=y
|
||||
@ -944,10 +960,12 @@ CONFIG_GPIOLIB=y
|
||||
#
|
||||
# Memory mapped GPIO expanders:
|
||||
#
|
||||
# CONFIG_GPIO_IT8761E is not set
|
||||
|
||||
#
|
||||
# I2C GPIO expanders:
|
||||
#
|
||||
# CONFIG_GPIO_MAX7300 is not set
|
||||
# CONFIG_GPIO_MAX732X is not set
|
||||
# CONFIG_GPIO_PCA953X is not set
|
||||
# CONFIG_GPIO_PCF857X is not set
|
||||
@ -984,10 +1002,12 @@ CONFIG_SSB_POSSIBLE=y
|
||||
# Multifunction device drivers
|
||||
#
|
||||
CONFIG_MFD_CORE=y
|
||||
# CONFIG_MFD_88PM860X is not set
|
||||
# CONFIG_MFD_SM501 is not set
|
||||
# CONFIG_MFD_ASIC3 is not set
|
||||
# CONFIG_HTC_EGPIO is not set
|
||||
# CONFIG_HTC_PASIC3 is not set
|
||||
# CONFIG_HTC_I2CPLD is not set
|
||||
# CONFIG_TPS65010 is not set
|
||||
CONFIG_TWL4030_CORE=y
|
||||
CONFIG_TWL4030_POWER=y
|
||||
@ -998,22 +1018,25 @@ CONFIG_TWL4030_CODEC=y
|
||||
# CONFIG_MFD_TC6393XB is not set
|
||||
# CONFIG_PMIC_DA903X is not set
|
||||
# CONFIG_PMIC_ADP5520 is not set
|
||||
# CONFIG_MFD_MAX8925 is not set
|
||||
# CONFIG_MFD_WM8400 is not set
|
||||
# CONFIG_MFD_WM831X is not set
|
||||
# CONFIG_MFD_WM8350_I2C is not set
|
||||
# CONFIG_MFD_WM8994 is not set
|
||||
# CONFIG_MFD_PCF50633 is not set
|
||||
# CONFIG_MFD_MC13783 is not set
|
||||
# CONFIG_AB3100_CORE is not set
|
||||
# CONFIG_EZX_PCAP is not set
|
||||
# CONFIG_MFD_88PM8607 is not set
|
||||
# CONFIG_AB4500_CORE is not set
|
||||
CONFIG_REGULATOR=y
|
||||
# CONFIG_REGULATOR_DEBUG is not set
|
||||
# CONFIG_REGULATOR_DUMMY is not set
|
||||
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
|
||||
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
|
||||
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
|
||||
# CONFIG_REGULATOR_BQ24022 is not set
|
||||
# CONFIG_REGULATOR_MAX1586 is not set
|
||||
# CONFIG_REGULATOR_MAX8649 is not set
|
||||
# CONFIG_REGULATOR_MAX8660 is not set
|
||||
CONFIG_REGULATOR_TWL4030=y
|
||||
# CONFIG_REGULATOR_LP3971 is not set
|
||||
@ -1072,7 +1095,6 @@ CONFIG_OMAP2_DSS_VENC=y
|
||||
CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
|
||||
CONFIG_FB_OMAP2=y
|
||||
CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
|
||||
# CONFIG_FB_OMAP2_FORCE_AUTO_UPDATE is not set
|
||||
CONFIG_FB_OMAP2_NUM_FBS=3
|
||||
|
||||
#
|
||||
@ -1080,7 +1102,9 @@ CONFIG_FB_OMAP2_NUM_FBS=3
|
||||
#
|
||||
CONFIG_PANEL_GENERIC=y
|
||||
# CONFIG_PANEL_SHARP_LS037V7DW01 is not set
|
||||
CONFIG_PANEL_INNOLUX_AT070TN83=y
|
||||
# CONFIG_PANEL_SHARP_LQ043T1DG01 is not set
|
||||
# CONFIG_PANEL_TOPPOLY_TDO35S is not set
|
||||
# CONFIG_PANEL_TPO_TD043MTEA1 is not set
|
||||
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
||||
|
||||
#
|
||||
@ -1136,6 +1160,7 @@ CONFIG_SND_ARM=y
|
||||
CONFIG_SND_SPI=y
|
||||
CONFIG_SND_USB=y
|
||||
# CONFIG_SND_USB_AUDIO is not set
|
||||
# CONFIG_SND_USB_UA101 is not set
|
||||
# CONFIG_SND_USB_CAIAQ is not set
|
||||
CONFIG_SND_SOC=y
|
||||
CONFIG_SND_OMAP_SOC=y
|
||||
@ -1147,42 +1172,44 @@ CONFIG_SND_SOC_TWL4030=y
|
||||
# CONFIG_SOUND_PRIME is not set
|
||||
CONFIG_HID_SUPPORT=y
|
||||
CONFIG_HID=y
|
||||
CONFIG_HIDRAW=y
|
||||
# CONFIG_HIDRAW is not set
|
||||
|
||||
#
|
||||
# USB Input Devices
|
||||
#
|
||||
CONFIG_USB_HID=y
|
||||
# CONFIG_HID_PID is not set
|
||||
CONFIG_USB_HIDDEV=y
|
||||
# CONFIG_USB_HIDDEV is not set
|
||||
|
||||
#
|
||||
# Special HID drivers
|
||||
#
|
||||
CONFIG_HID_A4TECH=y
|
||||
CONFIG_HID_APPLE=y
|
||||
CONFIG_HID_BELKIN=y
|
||||
CONFIG_HID_CHERRY=y
|
||||
CONFIG_HID_CHICONY=y
|
||||
CONFIG_HID_CYPRESS=y
|
||||
# CONFIG_HID_3M_PCT is not set
|
||||
# CONFIG_HID_A4TECH is not set
|
||||
# CONFIG_HID_APPLE is not set
|
||||
# CONFIG_HID_BELKIN is not set
|
||||
# CONFIG_HID_CHERRY is not set
|
||||
# CONFIG_HID_CHICONY is not set
|
||||
# CONFIG_HID_CYPRESS is not set
|
||||
# CONFIG_HID_DRAGONRISE is not set
|
||||
CONFIG_HID_EZKEY=y
|
||||
# CONFIG_HID_EZKEY is not set
|
||||
# CONFIG_HID_KYE is not set
|
||||
CONFIG_HID_GYRATION=y
|
||||
# CONFIG_HID_GYRATION is not set
|
||||
# CONFIG_HID_TWINHAN is not set
|
||||
# CONFIG_HID_KENSINGTON is not set
|
||||
CONFIG_HID_LOGITECH=y
|
||||
# CONFIG_LOGITECH_FF is not set
|
||||
# CONFIG_LOGIRUMBLEPAD2_FF is not set
|
||||
CONFIG_HID_MICROSOFT=y
|
||||
CONFIG_HID_MONTEREY=y
|
||||
# CONFIG_HID_LOGITECH is not set
|
||||
# CONFIG_HID_MICROSOFT is not set
|
||||
# CONFIG_HID_MOSART is not set
|
||||
# CONFIG_HID_MONTEREY is not set
|
||||
# CONFIG_HID_NTRIG is not set
|
||||
CONFIG_HID_PANTHERLORD=y
|
||||
# CONFIG_PANTHERLORD_FF is not set
|
||||
CONFIG_HID_PETALYNX=y
|
||||
CONFIG_HID_SAMSUNG=y
|
||||
CONFIG_HID_SONY=y
|
||||
CONFIG_HID_SUNPLUS=y
|
||||
# CONFIG_HID_ORTEK is not set
|
||||
# CONFIG_HID_PANTHERLORD is not set
|
||||
# CONFIG_HID_PETALYNX is not set
|
||||
# CONFIG_HID_QUANTA is not set
|
||||
# CONFIG_HID_SAMSUNG is not set
|
||||
# CONFIG_HID_SONY is not set
|
||||
# CONFIG_HID_STANTUM is not set
|
||||
# CONFIG_HID_SUNPLUS is not set
|
||||
# CONFIG_HID_GREENASIA is not set
|
||||
# CONFIG_HID_SMARTJOYPLUS is not set
|
||||
# CONFIG_HID_TOPSEED is not set
|
||||
@ -1193,7 +1220,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
|
||||
CONFIG_USB_ARCH_HAS_OHCI=y
|
||||
CONFIG_USB_ARCH_HAS_EHCI=y
|
||||
CONFIG_USB=y
|
||||
# CONFIG_USB_DEBUG is not set
|
||||
CONFIG_USB_DEBUG=y
|
||||
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
||||
|
||||
#
|
||||
@ -1202,7 +1229,7 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
||||
# CONFIG_USB_DEVICEFS is not set
|
||||
# CONFIG_USB_DEVICE_CLASS is not set
|
||||
# CONFIG_USB_DYNAMIC_MINORS is not set
|
||||
# CONFIG_USB_OTG is not set
|
||||
CONFIG_USB_OTG=y
|
||||
# CONFIG_USB_OTG_WHITELIST is not set
|
||||
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
|
||||
CONFIG_USB_MON=y
|
||||
@ -1230,15 +1257,15 @@ CONFIG_USB_MUSB_SOC=y
|
||||
#
|
||||
# OMAP 343x high speed USB support
|
||||
#
|
||||
CONFIG_USB_MUSB_HOST=y
|
||||
# CONFIG_USB_MUSB_HOST is not set
|
||||
# CONFIG_USB_MUSB_PERIPHERAL is not set
|
||||
# CONFIG_USB_MUSB_OTG is not set
|
||||
# CONFIG_USB_GADGET_MUSB_HDRC is not set
|
||||
CONFIG_USB_MUSB_OTG=y
|
||||
CONFIG_USB_GADGET_MUSB_HDRC=y
|
||||
CONFIG_USB_MUSB_HDRC_HCD=y
|
||||
# CONFIG_MUSB_PIO_ONLY is not set
|
||||
CONFIG_USB_INVENTRA_DMA=y
|
||||
# CONFIG_USB_TI_CPPI_DMA is not set
|
||||
# CONFIG_USB_MUSB_DEBUG is not set
|
||||
CONFIG_USB_MUSB_DEBUG=y
|
||||
|
||||
#
|
||||
# USB Device Class drivers
|
||||
@ -1291,7 +1318,6 @@ CONFIG_USB_STORAGE=m
|
||||
# CONFIG_USB_RIO500 is not set
|
||||
# CONFIG_USB_LEGOTOWER is not set
|
||||
# CONFIG_USB_LCD is not set
|
||||
# CONFIG_USB_BERRY_CHARGE is not set
|
||||
# CONFIG_USB_LED is not set
|
||||
# CONFIG_USB_CYPRESS_CY7C63 is not set
|
||||
# CONFIG_USB_CYTHERM is not set
|
||||
@ -1304,9 +1330,8 @@ CONFIG_USB_STORAGE=m
|
||||
# CONFIG_USB_IOWARRIOR is not set
|
||||
# CONFIG_USB_TEST is not set
|
||||
# CONFIG_USB_ISIGHTFW is not set
|
||||
# CONFIG_USB_VST is not set
|
||||
CONFIG_USB_GADGET=y
|
||||
# CONFIG_USB_GADGET_DEBUG is not set
|
||||
CONFIG_USB_GADGET_DEBUG=y
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=2
|
||||
CONFIG_USB_GADGET_SELECTED=y
|
||||
@ -1314,8 +1339,7 @@ CONFIG_USB_GADGET_SELECTED=y
|
||||
# CONFIG_USB_GADGET_ATMEL_USBA is not set
|
||||
# CONFIG_USB_GADGET_FSL_USB2 is not set
|
||||
# CONFIG_USB_GADGET_LH7A40X is not set
|
||||
CONFIG_USB_GADGET_OMAP=y
|
||||
CONFIG_USB_OMAP=y
|
||||
# CONFIG_USB_GADGET_OMAP is not set
|
||||
# CONFIG_USB_GADGET_PXA25X is not set
|
||||
# CONFIG_USB_GADGET_R8A66597 is not set
|
||||
# CONFIG_USB_GADGET_PXA27X is not set
|
||||
@ -1330,19 +1354,20 @@ CONFIG_USB_OMAP=y
|
||||
# CONFIG_USB_GADGET_GOKU is not set
|
||||
# CONFIG_USB_GADGET_LANGWELL is not set
|
||||
# CONFIG_USB_GADGET_DUMMY_HCD is not set
|
||||
# CONFIG_USB_GADGET_DUALSPEED is not set
|
||||
CONFIG_USB_GADGET_DUALSPEED=y
|
||||
# CONFIG_USB_ZERO is not set
|
||||
CONFIG_USB_AUDIO=m
|
||||
CONFIG_USB_ETH=m
|
||||
CONFIG_USB_ETH_RNDIS=y
|
||||
CONFIG_USB_ETH_EEM=y
|
||||
CONFIG_USB_GADGETFS=m
|
||||
# CONFIG_USB_AUDIO is not set
|
||||
CONFIG_USB_ETH=y
|
||||
# CONFIG_USB_ETH_RNDIS is not set
|
||||
# CONFIG_USB_ETH_EEM is not set
|
||||
# CONFIG_USB_GADGETFS is not set
|
||||
# CONFIG_USB_FILE_STORAGE is not set
|
||||
# CONFIG_USB_MASS_STORAGE is not set
|
||||
CONFIG_USB_G_SERIAL=m
|
||||
# CONFIG_USB_G_SERIAL is not set
|
||||
# CONFIG_USB_MIDI_GADGET is not set
|
||||
CONFIG_USB_G_PRINTER=m
|
||||
# CONFIG_USB_G_PRINTER is not set
|
||||
# CONFIG_USB_CDC_COMPOSITE is not set
|
||||
# CONFIG_USB_G_NOKIA is not set
|
||||
# CONFIG_USB_G_MULTI is not set
|
||||
|
||||
#
|
||||
@ -1373,8 +1398,6 @@ CONFIG_MMC_SDHCI=y
|
||||
CONFIG_MMC_SDHCI_PLTFM=m
|
||||
# CONFIG_MMC_OMAP is not set
|
||||
CONFIG_MMC_OMAP_HS=y
|
||||
# CONFIG_MMC_AT91 is not set
|
||||
# CONFIG_MMC_ATMELMCI is not set
|
||||
CONFIG_MMC_SPI=m
|
||||
# CONFIG_MEMSTICK is not set
|
||||
CONFIG_NEW_LEDS=y
|
||||
@ -1392,11 +1415,11 @@ CONFIG_LEDS_GPIO_PLATFORM=y
|
||||
# CONFIG_LEDS_REGULATOR is not set
|
||||
# CONFIG_LEDS_BD2802 is not set
|
||||
# CONFIG_LEDS_LT3593 is not set
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
|
||||
#
|
||||
# LED Triggers
|
||||
#
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
# CONFIG_LEDS_TRIGGER_TIMER is not set
|
||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
|
||||
@ -1580,6 +1603,7 @@ CONFIG_UBIFS_FS=y
|
||||
CONFIG_UBIFS_FS_LZO=y
|
||||
CONFIG_UBIFS_FS_ZLIB=y
|
||||
# CONFIG_UBIFS_FS_DEBUG is not set
|
||||
# CONFIG_LOGFS is not set
|
||||
CONFIG_CRAMFS=y
|
||||
# CONFIG_SQUASHFS is not set
|
||||
# CONFIG_VXFS_FS is not set
|
||||
@ -1606,6 +1630,7 @@ CONFIG_SUNRPC_GSS=y
|
||||
CONFIG_RPCSEC_GSS_KRB5=y
|
||||
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
||||
# CONFIG_SMB_FS is not set
|
||||
# CONFIG_CEPH_FS is not set
|
||||
# CONFIG_CIFS is not set
|
||||
# CONFIG_NCP_FS is not set
|
||||
# CONFIG_CODA_FS is not set
|
||||
|
@ -1,13 +1,14 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.33-rc5
|
||||
# Tue Jan 26 11:05:31 2010
|
||||
# Linux kernel version: 2.6.34-rc7
|
||||
# Thu May 13 10:54:43 2010
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
CONFIG_GENERIC_GPIO=y
|
||||
CONFIG_GENERIC_TIME=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_HAVE_PROC_CPU=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
CONFIG_STACKTRACE_SUPPORT=y
|
||||
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
|
||||
@ -19,7 +20,9 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||
CONFIG_ARCH_HAS_CPUFREQ=y
|
||||
CONFIG_GENERIC_HWEIGHT=y
|
||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||
CONFIG_NEED_DMA_MAP_STATE=y
|
||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||
CONFIG_ARM_L1_CACHE_SHIFT_6=y
|
||||
CONFIG_OPROFILE_ARMV6=y
|
||||
CONFIG_OPROFILE_ARM11_CORE=y
|
||||
CONFIG_OPROFILE_ARMV7=y
|
||||
@ -63,12 +66,7 @@ CONFIG_RCU_FANOUT=32
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
CONFIG_GROUP_SCHED=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
# CONFIG_RT_GROUP_SCHED is not set
|
||||
CONFIG_USER_SCHED=y
|
||||
# CONFIG_CGROUP_SCHED is not set
|
||||
CONFIG_LOG_BUF_SHIFT=16
|
||||
# CONFIG_CGROUPS is not set
|
||||
# CONFIG_SYSFS_DEPRECATED_V2 is not set
|
||||
# CONFIG_RELAY is not set
|
||||
@ -100,17 +98,21 @@ CONFIG_TIMERFD=y
|
||||
CONFIG_EVENTFD=y
|
||||
CONFIG_SHMEM=y
|
||||
CONFIG_AIO=y
|
||||
CONFIG_HAVE_PERF_EVENTS=y
|
||||
CONFIG_PERF_USE_VMALLOC=y
|
||||
|
||||
#
|
||||
# Kernel Performance Events And Counters
|
||||
#
|
||||
CONFIG_PERF_EVENTS=y
|
||||
# CONFIG_PERF_COUNTERS is not set
|
||||
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_COMPAT_BRK=y
|
||||
CONFIG_SLAB=y
|
||||
# CONFIG_SLUB is not set
|
||||
# CONFIG_SLOB is not set
|
||||
CONFIG_PROFILING=y
|
||||
CONFIG_TRACEPOINTS=y
|
||||
CONFIG_OPROFILE=y
|
||||
CONFIG_HAVE_OPROFILE=y
|
||||
CONFIG_KPROBES=y
|
||||
@ -189,6 +191,7 @@ CONFIG_MMU=y
|
||||
# CONFIG_ARCH_REALVIEW is not set
|
||||
# CONFIG_ARCH_VERSATILE is not set
|
||||
# CONFIG_ARCH_AT91 is not set
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
# CONFIG_ARCH_CLPS711X is not set
|
||||
# CONFIG_ARCH_GEMINI is not set
|
||||
# CONFIG_ARCH_EBSA110 is not set
|
||||
@ -198,7 +201,6 @@ CONFIG_MMU=y
|
||||
# CONFIG_ARCH_STMP3XXX is not set
|
||||
# CONFIG_ARCH_NETX is not set
|
||||
# CONFIG_ARCH_H720X is not set
|
||||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_IOP13XX is not set
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
@ -215,21 +217,26 @@ CONFIG_MMU=y
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_NS9XXX is not set
|
||||
# CONFIG_ARCH_W90X900 is not set
|
||||
# CONFIG_ARCH_NUC93X is not set
|
||||
# CONFIG_ARCH_PNX4008 is not set
|
||||
# CONFIG_ARCH_PXA is not set
|
||||
# CONFIG_ARCH_MSM is not set
|
||||
# CONFIG_ARCH_SHMOBILE is not set
|
||||
# CONFIG_ARCH_RPC is not set
|
||||
# CONFIG_ARCH_SA1100 is not set
|
||||
# CONFIG_ARCH_S3C2410 is not set
|
||||
# CONFIG_ARCH_S3C64XX is not set
|
||||
# CONFIG_ARCH_S5P6440 is not set
|
||||
# CONFIG_ARCH_S5P6442 is not set
|
||||
# CONFIG_ARCH_S5PC1XX is not set
|
||||
# CONFIG_ARCH_S5PV210 is not set
|
||||
# CONFIG_ARCH_SHARK is not set
|
||||
# CONFIG_ARCH_LH7A40X is not set
|
||||
# CONFIG_ARCH_U300 is not set
|
||||
# CONFIG_ARCH_U8500 is not set
|
||||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_DAVINCI is not set
|
||||
CONFIG_ARCH_OMAP=y
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
# CONFIG_ARCH_U8500 is not set
|
||||
|
||||
#
|
||||
# TI OMAP Implementations
|
||||
@ -254,6 +261,7 @@ CONFIG_OMAP_MCBSP=y
|
||||
# CONFIG_OMAP_MBOX_FWK is not set
|
||||
# CONFIG_OMAP_MPU_TIMER is not set
|
||||
CONFIG_OMAP_32K_TIMER=y
|
||||
# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
|
||||
CONFIG_OMAP_32K_TIMER_HZ=128
|
||||
CONFIG_OMAP_DM_TIMER=y
|
||||
# CONFIG_OMAP_PM_NONE is not set
|
||||
@ -264,7 +272,7 @@ CONFIG_MACH_OMAP_GENERIC=y
|
||||
# OMAP Core Type
|
||||
#
|
||||
CONFIG_ARCH_OMAP2420=y
|
||||
# CONFIG_ARCH_OMAP2430 is not set
|
||||
CONFIG_ARCH_OMAP2430=y
|
||||
CONFIG_ARCH_OMAP3430=y
|
||||
CONFIG_OMAP_PACKAGE_CBB=y
|
||||
CONFIG_OMAP_PACKAGE_CUS=y
|
||||
@ -276,8 +284,9 @@ CONFIG_OMAP_PACKAGE_CBP=y
|
||||
CONFIG_MACH_OMAP2_TUSB6010=y
|
||||
CONFIG_MACH_OMAP_H4=y
|
||||
CONFIG_MACH_OMAP_APOLLON=y
|
||||
# CONFIG_MACH_OMAP_2430SDP is not set
|
||||
CONFIG_MACH_OMAP_2430SDP=y
|
||||
CONFIG_MACH_OMAP3_BEAGLE=y
|
||||
CONFIG_MACH_DEVKIT8000=y
|
||||
CONFIG_MACH_OMAP_LDP=y
|
||||
CONFIG_MACH_OVERO=y
|
||||
CONFIG_MACH_OMAP3EVM=y
|
||||
@ -294,6 +303,7 @@ CONFIG_MACH_OMAP_ZOOM2=y
|
||||
CONFIG_MACH_OMAP_ZOOM3=y
|
||||
CONFIG_MACH_CM_T35=y
|
||||
CONFIG_MACH_IGEP0020=y
|
||||
CONFIG_MACH_SBC3530=y
|
||||
CONFIG_MACH_OMAP_3630SDP=y
|
||||
CONFIG_MACH_OMAP_4430SDP=y
|
||||
# CONFIG_OMAP3_EMU is not set
|
||||
@ -330,11 +340,16 @@ CONFIG_ARM_THUMBEE=y
|
||||
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||
CONFIG_HAS_TLS_REG=y
|
||||
CONFIG_OUTER_CACHE=y
|
||||
CONFIG_OUTER_CACHE_SYNC=y
|
||||
CONFIG_CACHE_L2X0=y
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=6
|
||||
CONFIG_CPU_HAS_PMU=y
|
||||
# CONFIG_ARM_ERRATA_411920 is not set
|
||||
# CONFIG_ARM_ERRATA_430973 is not set
|
||||
# CONFIG_ARM_ERRATA_458693 is not set
|
||||
# CONFIG_ARM_ERRATA_460075 is not set
|
||||
# CONFIG_PL310_ERRATA_588369 is not set
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_COMMON_CLKDEV=y
|
||||
|
||||
@ -368,6 +383,7 @@ CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
|
||||
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
||||
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
|
||||
# CONFIG_HIGHMEM is not set
|
||||
CONFIG_HW_PERF_EVENTS=y
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
# CONFIG_DISCONTIGMEM_MANUAL is not set
|
||||
@ -390,7 +406,7 @@ CONFIG_ALIGNMENT_TRAP=y
|
||||
#
|
||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||
CONFIG_CMDLINE="root=/dev/nfs nfsroot=192.168.0.1:/home/user/buildroot ip=192.168.0.2:192.168.0.1:192.168.0.1:255.255.255.0:tgt:eth0:off rw console=ttyS2,115200n8"
|
||||
CONFIG_CMDLINE="root=/dev/mmcblk0p2 rootwait console=ttyS2,115200"
|
||||
# CONFIG_XIP_KERNEL is not set
|
||||
CONFIG_KEXEC=y
|
||||
CONFIG_ATAGS_PROC=y
|
||||
@ -443,7 +459,8 @@ CONFIG_BINFMT_MISC=y
|
||||
#
|
||||
CONFIG_PM=y
|
||||
CONFIG_PM_DEBUG=y
|
||||
CONFIG_PM_VERBOSE=y
|
||||
# CONFIG_PM_ADVANCED_DEBUG is not set
|
||||
# CONFIG_PM_VERBOSE is not set
|
||||
CONFIG_CAN_PM_TRACE=y
|
||||
CONFIG_PM_SLEEP=y
|
||||
CONFIG_SUSPEND=y
|
||||
@ -451,6 +468,7 @@ CONFIG_SUSPEND=y
|
||||
CONFIG_SUSPEND_FREEZER=y
|
||||
# CONFIG_APM_EMULATION is not set
|
||||
CONFIG_PM_RUNTIME=y
|
||||
CONFIG_PM_OPS=y
|
||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||
CONFIG_NET=y
|
||||
|
||||
@ -458,7 +476,6 @@ CONFIG_NET=y
|
||||
# Networking options
|
||||
#
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_PACKET_MMAP=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_XFRM=y
|
||||
CONFIG_XFRM_USER=y
|
||||
@ -544,7 +561,6 @@ CONFIG_NETFILTER_ADVANCED=y
|
||||
#
|
||||
# CONFIG_NET_PKTGEN is not set
|
||||
# CONFIG_NET_TCPPROBE is not set
|
||||
# CONFIG_NET_DROP_MONITOR is not set
|
||||
# CONFIG_HAMRADIO is not set
|
||||
# CONFIG_CAN is not set
|
||||
# CONFIG_IRDA is not set
|
||||
@ -584,7 +600,7 @@ CONFIG_CFG80211=y
|
||||
# CONFIG_CFG80211_REG_DEBUG is not set
|
||||
CONFIG_CFG80211_DEFAULT_PS=y
|
||||
# CONFIG_CFG80211_DEBUGFS is not set
|
||||
CONFIG_WIRELESS_OLD_REGULATORY=y
|
||||
# CONFIG_CFG80211_INTERNAL_REGDB is not set
|
||||
CONFIG_CFG80211_WEXT=y
|
||||
CONFIG_WIRELESS_EXT_SYSFS=y
|
||||
CONFIG_LIB80211=y
|
||||
@ -676,7 +692,6 @@ CONFIG_MTD_CFI_UTIL=y
|
||||
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
|
||||
# CONFIG_MTD_PHYSMAP is not set
|
||||
# CONFIG_MTD_ARM_INTEGRATOR is not set
|
||||
CONFIG_MTD_OMAP_NOR=y
|
||||
# CONFIG_MTD_PLATRAM is not set
|
||||
|
||||
#
|
||||
@ -754,6 +769,7 @@ CONFIG_MISC_DEVICES=y
|
||||
# CONFIG_ICS932S401 is not set
|
||||
# CONFIG_ENCLOSURE_SERVICES is not set
|
||||
# CONFIG_ISL29003 is not set
|
||||
# CONFIG_SENSORS_TSL2550 is not set
|
||||
# CONFIG_DS1682 is not set
|
||||
# CONFIG_TI_DAC7512 is not set
|
||||
# CONFIG_C2PORT is not set
|
||||
@ -773,6 +789,7 @@ CONFIG_HAVE_IDE=y
|
||||
#
|
||||
# SCSI device support
|
||||
#
|
||||
CONFIG_SCSI_MOD=y
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_DMA=y
|
||||
@ -839,12 +856,14 @@ CONFIG_SMSC_PHY=y
|
||||
# CONFIG_NATIONAL_PHY is not set
|
||||
# CONFIG_STE10XP is not set
|
||||
# CONFIG_LSI_ET1011C_PHY is not set
|
||||
# CONFIG_MICREL_PHY is not set
|
||||
# CONFIG_FIXED_PHY is not set
|
||||
# CONFIG_MDIO_BITBANG is not set
|
||||
CONFIG_NET_ETHERNET=y
|
||||
CONFIG_MII=y
|
||||
# CONFIG_AX88796 is not set
|
||||
CONFIG_SMC91X=y
|
||||
# CONFIG_TI_DAVINCI_EMAC is not set
|
||||
# CONFIG_DM9000 is not set
|
||||
# CONFIG_ENC28J60 is not set
|
||||
# CONFIG_ETHOC is not set
|
||||
@ -881,6 +900,7 @@ CONFIG_LIBERTAS_USB=y
|
||||
CONFIG_LIBERTAS_SDIO=y
|
||||
# CONFIG_LIBERTAS_SPI is not set
|
||||
CONFIG_LIBERTAS_DEBUG=y
|
||||
# CONFIG_LIBERTAS_MESH is not set
|
||||
# CONFIG_P54_COMMON is not set
|
||||
# CONFIG_RT2X00 is not set
|
||||
# CONFIG_WL12XX is not set
|
||||
@ -902,6 +922,7 @@ CONFIG_USB_NET_AX8817X=y
|
||||
CONFIG_USB_NET_CDCETHER=y
|
||||
# CONFIG_USB_NET_CDC_EEM is not set
|
||||
# CONFIG_USB_NET_DM9601 is not set
|
||||
# CONFIG_USB_NET_SMSC75XX is not set
|
||||
# CONFIG_USB_NET_SMSC95XX is not set
|
||||
# CONFIG_USB_NET_GL620A is not set
|
||||
CONFIG_USB_NET_NET1080=y
|
||||
@ -917,6 +938,8 @@ CONFIG_USB_EPSON2888=y
|
||||
CONFIG_USB_KC2190=y
|
||||
CONFIG_USB_NET_ZAURUS=y
|
||||
# CONFIG_USB_NET_INT51X1 is not set
|
||||
# CONFIG_USB_IPHETH is not set
|
||||
# CONFIG_USB_SIERRA_NET is not set
|
||||
# CONFIG_WAN is not set
|
||||
# CONFIG_PPP is not set
|
||||
# CONFIG_SLIP is not set
|
||||
@ -1012,6 +1035,7 @@ CONFIG_INPUT_MISC=y
|
||||
# CONFIG_INPUT_YEALINK is not set
|
||||
# CONFIG_INPUT_CM109 is not set
|
||||
CONFIG_INPUT_TWL4030_PWRBUTTON=y
|
||||
# CONFIG_INPUT_TWL4030_VIBRA is not set
|
||||
# CONFIG_INPUT_UINPUT is not set
|
||||
# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
|
||||
|
||||
@ -1055,6 +1079,7 @@ CONFIG_SERIAL_8250_RSA=y
|
||||
# CONFIG_SERIAL_MAX3100 is not set
|
||||
CONFIG_SERIAL_CORE=y
|
||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
@ -1083,6 +1108,7 @@ CONFIG_I2C_HELPER_AUTO=y
|
||||
# CONFIG_I2C_OCORES is not set
|
||||
CONFIG_I2C_OMAP=y
|
||||
# CONFIG_I2C_SIMTEC is not set
|
||||
# CONFIG_I2C_XILINX is not set
|
||||
|
||||
#
|
||||
# External I2C/SMBus adapter drivers
|
||||
@ -1096,15 +1122,9 @@ CONFIG_I2C_OMAP=y
|
||||
#
|
||||
# CONFIG_I2C_PCA_PLATFORM is not set
|
||||
# CONFIG_I2C_STUB is not set
|
||||
|
||||
#
|
||||
# Miscellaneous I2C Chip support
|
||||
#
|
||||
# CONFIG_SENSORS_TSL2550 is not set
|
||||
# CONFIG_I2C_DEBUG_CORE is not set
|
||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||
# CONFIG_I2C_DEBUG_BUS is not set
|
||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||
CONFIG_SPI=y
|
||||
# CONFIG_SPI_DEBUG is not set
|
||||
CONFIG_SPI_MASTER=y
|
||||
@ -1136,10 +1156,12 @@ CONFIG_GPIO_SYSFS=y
|
||||
#
|
||||
# Memory mapped GPIO expanders:
|
||||
#
|
||||
# CONFIG_GPIO_IT8761E is not set
|
||||
|
||||
#
|
||||
# I2C GPIO expanders:
|
||||
#
|
||||
# CONFIG_GPIO_MAX7300 is not set
|
||||
# CONFIG_GPIO_MAX732X is not set
|
||||
# CONFIG_GPIO_PCA953X is not set
|
||||
# CONFIG_GPIO_PCF857X is not set
|
||||
@ -1204,10 +1226,11 @@ CONFIG_HWMON=y
|
||||
# CONFIG_SENSORS_ADM1029 is not set
|
||||
# CONFIG_SENSORS_ADM1031 is not set
|
||||
# CONFIG_SENSORS_ADM9240 is not set
|
||||
# CONFIG_SENSORS_ADT7411 is not set
|
||||
# CONFIG_SENSORS_ADT7462 is not set
|
||||
# CONFIG_SENSORS_ADT7470 is not set
|
||||
# CONFIG_SENSORS_ADT7473 is not set
|
||||
# CONFIG_SENSORS_ADT7475 is not set
|
||||
# CONFIG_SENSORS_ASC7621 is not set
|
||||
# CONFIG_SENSORS_ATXP1 is not set
|
||||
# CONFIG_SENSORS_DS1621 is not set
|
||||
# CONFIG_SENSORS_F71805F is not set
|
||||
@ -1262,7 +1285,7 @@ CONFIG_HWMON=y
|
||||
# CONFIG_SENSORS_LIS3_I2C is not set
|
||||
# CONFIG_THERMAL is not set
|
||||
CONFIG_WATCHDOG=y
|
||||
CONFIG_WATCHDOG_NOWAYOUT=y
|
||||
# CONFIG_WATCHDOG_NOWAYOUT is not set
|
||||
|
||||
#
|
||||
# Watchdog Device Drivers
|
||||
@ -1270,6 +1293,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
|
||||
# CONFIG_SOFT_WATCHDOG is not set
|
||||
CONFIG_OMAP_WATCHDOG=y
|
||||
CONFIG_TWL4030_WATCHDOG=y
|
||||
# CONFIG_MAX63XX_WATCHDOG is not set
|
||||
|
||||
#
|
||||
# USB-based Watchdog Cards
|
||||
@ -1286,14 +1310,16 @@ CONFIG_SSB_POSSIBLE=y
|
||||
# Multifunction device drivers
|
||||
#
|
||||
CONFIG_MFD_CORE=y
|
||||
# CONFIG_MFD_88PM860X is not set
|
||||
# CONFIG_MFD_SM501 is not set
|
||||
# CONFIG_MFD_ASIC3 is not set
|
||||
# CONFIG_HTC_EGPIO is not set
|
||||
# CONFIG_HTC_PASIC3 is not set
|
||||
# CONFIG_HTC_I2CPLD is not set
|
||||
# CONFIG_TPS65010 is not set
|
||||
# CONFIG_MENELAUS is not set
|
||||
CONFIG_MENELAUS=y
|
||||
CONFIG_TWL4030_CORE=y
|
||||
# CONFIG_TWL4030_POWER is not set
|
||||
CONFIG_TWL4030_POWER=y
|
||||
CONFIG_TWL4030_CODEC=y
|
||||
# CONFIG_MFD_TMIO is not set
|
||||
# CONFIG_MFD_T7L66XB is not set
|
||||
@ -1301,27 +1327,30 @@ CONFIG_TWL4030_CODEC=y
|
||||
# CONFIG_MFD_TC6393XB is not set
|
||||
# CONFIG_PMIC_DA903X is not set
|
||||
# CONFIG_PMIC_ADP5520 is not set
|
||||
# CONFIG_MFD_MAX8925 is not set
|
||||
# CONFIG_MFD_WM8400 is not set
|
||||
# CONFIG_MFD_WM831X is not set
|
||||
# CONFIG_MFD_WM8350_I2C is not set
|
||||
# CONFIG_MFD_WM8994 is not set
|
||||
# CONFIG_MFD_PCF50633 is not set
|
||||
# CONFIG_MFD_MC13783 is not set
|
||||
# CONFIG_AB3100_CORE is not set
|
||||
# CONFIG_EZX_PCAP is not set
|
||||
# CONFIG_MFD_88PM8607 is not set
|
||||
# CONFIG_AB4500_CORE is not set
|
||||
CONFIG_REGULATOR=y
|
||||
# CONFIG_REGULATOR_DEBUG is not set
|
||||
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||
# CONFIG_REGULATOR_DUMMY is not set
|
||||
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
|
||||
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
|
||||
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
|
||||
# CONFIG_REGULATOR_BQ24022 is not set
|
||||
# CONFIG_REGULATOR_MAX1586 is not set
|
||||
# CONFIG_REGULATOR_MAX8649 is not set
|
||||
# CONFIG_REGULATOR_MAX8660 is not set
|
||||
CONFIG_REGULATOR_TWL4030=y
|
||||
# CONFIG_REGULATOR_LP3971 is not set
|
||||
# CONFIG_REGULATOR_TPS65023 is not set
|
||||
# CONFIG_REGULATOR_TPS6507X is not set
|
||||
CONFIG_REGULATOR_TPS65023=y
|
||||
CONFIG_REGULATOR_TPS6507X=y
|
||||
# CONFIG_MEDIA_SUPPORT is not set
|
||||
|
||||
#
|
||||
@ -1333,9 +1362,9 @@ CONFIG_FB=y
|
||||
CONFIG_FIRMWARE_EDID=y
|
||||
# CONFIG_FB_DDC is not set
|
||||
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
|
||||
CONFIG_FB_CFB_FILLRECT=y
|
||||
CONFIG_FB_CFB_COPYAREA=y
|
||||
CONFIG_FB_CFB_IMAGEBLIT=y
|
||||
# CONFIG_FB_CFB_FILLRECT is not set
|
||||
# CONFIG_FB_CFB_COPYAREA is not set
|
||||
# CONFIG_FB_CFB_IMAGEBLIT is not set
|
||||
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
|
||||
# CONFIG_FB_SYS_FILLRECT is not set
|
||||
# CONFIG_FB_SYS_COPYAREA is not set
|
||||
@ -1358,19 +1387,12 @@ CONFIG_FB_TILEBLITTING=y
|
||||
# CONFIG_FB_METRONOME is not set
|
||||
# CONFIG_FB_MB862XX is not set
|
||||
# CONFIG_FB_BROADSHEET is not set
|
||||
CONFIG_FB_OMAP=y
|
||||
# CONFIG_FB_OMAP is not set
|
||||
CONFIG_FB_OMAP_LCD_VGA=y
|
||||
# CONFIG_FB_OMAP_031M3R is not set
|
||||
# CONFIG_FB_OMAP_048M3R is not set
|
||||
CONFIG_FB_OMAP_079M3R=y
|
||||
# CONFIG_FB_OMAP_092M9R is not set
|
||||
# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
|
||||
# CONFIG_FB_OMAP_LCD_MIPID is not set
|
||||
# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
|
||||
CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
|
||||
# CONFIG_OMAP2_DSS is not set
|
||||
CONFIG_BACKLIGHT_LCD_SUPPORT=y
|
||||
CONFIG_LCD_CLASS_DEVICE=y
|
||||
# CONFIG_LCD_L4F00242T03 is not set
|
||||
# CONFIG_LCD_LMS283GF05 is not set
|
||||
# CONFIG_LCD_LTV350QV is not set
|
||||
# CONFIG_LCD_ILI9320 is not set
|
||||
@ -1448,6 +1470,7 @@ CONFIG_SND_ARM=y
|
||||
CONFIG_SND_SPI=y
|
||||
CONFIG_SND_USB=y
|
||||
CONFIG_SND_USB_AUDIO=y
|
||||
# CONFIG_SND_USB_UA101 is not set
|
||||
# CONFIG_SND_USB_CAIAQ is not set
|
||||
CONFIG_SND_SOC=y
|
||||
CONFIG_SND_OMAP_SOC=y
|
||||
@ -1479,6 +1502,7 @@ CONFIG_USB_HID=y
|
||||
#
|
||||
# Special HID drivers
|
||||
#
|
||||
# CONFIG_HID_3M_PCT is not set
|
||||
# CONFIG_HID_A4TECH is not set
|
||||
# CONFIG_HID_APPLE is not set
|
||||
# CONFIG_HID_BELKIN is not set
|
||||
@ -1492,13 +1516,18 @@ CONFIG_USB_HID=y
|
||||
# CONFIG_HID_TWINHAN is not set
|
||||
# CONFIG_HID_KENSINGTON is not set
|
||||
# CONFIG_HID_LOGITECH is not set
|
||||
# CONFIG_HID_MAGICMOUSE is not set
|
||||
# CONFIG_HID_MICROSOFT is not set
|
||||
# CONFIG_HID_MOSART is not set
|
||||
# CONFIG_HID_MONTEREY is not set
|
||||
# CONFIG_HID_NTRIG is not set
|
||||
# CONFIG_HID_ORTEK is not set
|
||||
# CONFIG_HID_PANTHERLORD is not set
|
||||
# CONFIG_HID_PETALYNX is not set
|
||||
# CONFIG_HID_QUANTA is not set
|
||||
# CONFIG_HID_SAMSUNG is not set
|
||||
# CONFIG_HID_SONY is not set
|
||||
# CONFIG_HID_STANTUM is not set
|
||||
# CONFIG_HID_SUNPLUS is not set
|
||||
# CONFIG_HID_GREENASIA is not set
|
||||
# CONFIG_HID_SMARTJOYPLUS is not set
|
||||
@ -1544,6 +1573,10 @@ CONFIG_USB_MON=y
|
||||
CONFIG_USB_MUSB_HDRC=y
|
||||
CONFIG_USB_MUSB_SOC=y
|
||||
|
||||
#
|
||||
# OMAP 243x high speed USB support
|
||||
#
|
||||
|
||||
#
|
||||
# OMAP 343x high speed USB support
|
||||
#
|
||||
@ -1608,7 +1641,6 @@ CONFIG_USB_LIBUSUAL=y
|
||||
# CONFIG_USB_RIO500 is not set
|
||||
# CONFIG_USB_LEGOTOWER is not set
|
||||
# CONFIG_USB_LCD is not set
|
||||
# CONFIG_USB_BERRY_CHARGE is not set
|
||||
# CONFIG_USB_LED is not set
|
||||
# CONFIG_USB_CYPRESS_CY7C63 is not set
|
||||
# CONFIG_USB_CYTHERM is not set
|
||||
@ -1621,7 +1653,6 @@ CONFIG_USB_LIBUSUAL=y
|
||||
# CONFIG_USB_IOWARRIOR is not set
|
||||
CONFIG_USB_TEST=y
|
||||
# CONFIG_USB_ISIGHTFW is not set
|
||||
# CONFIG_USB_VST is not set
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_USB_GADGET_DEBUG=y
|
||||
CONFIG_USB_GADGET_DEBUG_FILES=y
|
||||
@ -1659,6 +1690,7 @@ CONFIG_USB_ZERO=m
|
||||
# CONFIG_USB_MIDI_GADGET is not set
|
||||
# CONFIG_USB_G_PRINTER is not set
|
||||
# CONFIG_USB_CDC_COMPOSITE is not set
|
||||
# CONFIG_USB_G_NOKIA is not set
|
||||
# CONFIG_USB_G_MULTI is not set
|
||||
|
||||
#
|
||||
@ -1686,10 +1718,8 @@ CONFIG_SDIO_UART=y
|
||||
# MMC/SD/SDIO Host Controller Drivers
|
||||
#
|
||||
# CONFIG_MMC_SDHCI is not set
|
||||
# CONFIG_MMC_OMAP is not set
|
||||
CONFIG_MMC_OMAP=y
|
||||
CONFIG_MMC_OMAP_HS=y
|
||||
# CONFIG_MMC_AT91 is not set
|
||||
# CONFIG_MMC_ATMELMCI is not set
|
||||
# CONFIG_MMC_SPI is not set
|
||||
# CONFIG_MEMSTICK is not set
|
||||
CONFIG_NEW_LEDS=y
|
||||
@ -1707,11 +1737,11 @@ CONFIG_LEDS_GPIO_PLATFORM=y
|
||||
# CONFIG_LEDS_REGULATOR is not set
|
||||
# CONFIG_LEDS_BD2802 is not set
|
||||
# CONFIG_LEDS_LT3593 is not set
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
|
||||
#
|
||||
# LED Triggers
|
||||
#
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
CONFIG_LEDS_TRIGGER_TIMER=y
|
||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
|
||||
@ -1751,6 +1781,7 @@ CONFIG_RTC_INTF_DEV=y
|
||||
# CONFIG_RTC_DRV_PCF8583 is not set
|
||||
# CONFIG_RTC_DRV_M41T80 is not set
|
||||
# CONFIG_RTC_DRV_BQ32K is not set
|
||||
CONFIG_RTC_DRV_TWL92330=y
|
||||
CONFIG_RTC_DRV_TWL4030=y
|
||||
# CONFIG_RTC_DRV_S35390A is not set
|
||||
# CONFIG_RTC_DRV_FM3130 is not set
|
||||
@ -1798,6 +1829,11 @@ CONFIG_RTC_DRV_TWL4030=y
|
||||
#
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
#
|
||||
# CBUS support
|
||||
#
|
||||
# CONFIG_CBUS is not set
|
||||
|
||||
#
|
||||
# File systems
|
||||
#
|
||||
@ -1826,6 +1862,7 @@ CONFIG_INOTIFY_USER=y
|
||||
CONFIG_QUOTA=y
|
||||
# CONFIG_QUOTA_NETLINK_INTERFACE is not set
|
||||
CONFIG_PRINT_QUOTA_WARNING=y
|
||||
# CONFIG_QUOTA_DEBUG is not set
|
||||
CONFIG_QUOTA_TREE=y
|
||||
# CONFIG_QFMT_V1 is not set
|
||||
CONFIG_QFMT_V2=y
|
||||
@ -1897,6 +1934,7 @@ CONFIG_UBIFS_FS=y
|
||||
CONFIG_UBIFS_FS_LZO=y
|
||||
CONFIG_UBIFS_FS_ZLIB=y
|
||||
# CONFIG_UBIFS_FS_DEBUG is not set
|
||||
# CONFIG_LOGFS is not set
|
||||
CONFIG_CRAMFS=y
|
||||
# CONFIG_SQUASHFS is not set
|
||||
# CONFIG_VXFS_FS is not set
|
||||
@ -1924,6 +1962,7 @@ CONFIG_SUNRPC_GSS=y
|
||||
CONFIG_RPCSEC_GSS_KRB5=y
|
||||
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
||||
# CONFIG_SMB_FS is not set
|
||||
# CONFIG_CEPH_FS is not set
|
||||
# CONFIG_CIFS is not set
|
||||
# CONFIG_NCP_FS is not set
|
||||
# CONFIG_CODA_FS is not set
|
||||
@ -2024,6 +2063,7 @@ CONFIG_DEBUG_SPINLOCK=y
|
||||
CONFIG_DEBUG_MUTEXES=y
|
||||
CONFIG_DEBUG_LOCK_ALLOC=y
|
||||
CONFIG_PROVE_LOCKING=y
|
||||
# CONFIG_PROVE_RCU is not set
|
||||
CONFIG_LOCKDEP=y
|
||||
CONFIG_LOCK_STAT=y
|
||||
# CONFIG_DEBUG_LOCKDEP is not set
|
||||
@ -2053,13 +2093,9 @@ CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_LATENCYTOP is not set
|
||||
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
|
||||
# CONFIG_PAGE_POISONING is not set
|
||||
CONFIG_NOP_TRACER=y
|
||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||
CONFIG_RING_BUFFER=y
|
||||
CONFIG_EVENT_TRACING=y
|
||||
CONFIG_CONTEXT_SWITCH_TRACER=y
|
||||
CONFIG_RING_BUFFER_ALLOW_SWAP=y
|
||||
CONFIG_TRACING=y
|
||||
CONFIG_TRACING_SUPPORT=y
|
||||
CONFIG_FTRACE=y
|
||||
# CONFIG_FUNCTION_TRACER is not set
|
||||
@ -2199,7 +2235,7 @@ CONFIG_CRYPTO_LZO=y
|
||||
#
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
CONFIG_CRYPTO_HW=y
|
||||
CONFIG_BINARY_PRINTF=y
|
||||
# CONFIG_BINARY_PRINTF is not set
|
||||
|
||||
#
|
||||
# Library routines
|
||||
@ -2222,3 +2258,4 @@ CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_NLATTR=y
|
||||
CONFIG_GENERIC_ATOMIC64=y
|
||||
|
1691
arch/arm/configs/omap3_stalker_lks_defconfig
Normal file
1691
arch/arm/configs/omap3_stalker_lks_defconfig
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.32
|
||||
# Sun Dec 6 23:37:45 2009
|
||||
# Linux kernel version: 2.6.34-rc7
|
||||
# Wed May 12 12:26:05 2010
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
@ -9,6 +9,7 @@ CONFIG_GENERIC_GPIO=y
|
||||
CONFIG_GENERIC_TIME=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
|
||||
CONFIG_HAVE_PROC_CPU=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
CONFIG_STACKTRACE_SUPPORT=y
|
||||
CONFIG_LOCKDEP_SUPPORT=y
|
||||
@ -20,6 +21,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||
CONFIG_ARCH_HAS_CPUFREQ=y
|
||||
CONFIG_GENERIC_HWEIGHT=y
|
||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||
CONFIG_NEED_DMA_MAP_STATE=y
|
||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||
CONFIG_VECTORS_BASE=0xffff0000
|
||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||
@ -33,28 +35,33 @@ CONFIG_LOCK_KERNEL=y
|
||||
CONFIG_INIT_ENV_ARG_LIMIT=32
|
||||
CONFIG_LOCALVERSION=""
|
||||
CONFIG_LOCALVERSION_AUTO=y
|
||||
CONFIG_HAVE_KERNEL_GZIP=y
|
||||
CONFIG_HAVE_KERNEL_LZO=y
|
||||
CONFIG_KERNEL_GZIP=y
|
||||
# CONFIG_KERNEL_BZIP2 is not set
|
||||
# CONFIG_KERNEL_LZMA is not set
|
||||
# CONFIG_KERNEL_LZO is not set
|
||||
CONFIG_SWAP=y
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_SYSVIPC_SYSCTL=y
|
||||
# CONFIG_POSIX_MQUEUE is not set
|
||||
CONFIG_BSD_PROCESS_ACCT=y
|
||||
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
|
||||
# CONFIG_TASKSTATS is not set
|
||||
# CONFIG_AUDIT is not set
|
||||
|
||||
#
|
||||
# RCU Subsystem
|
||||
#
|
||||
CONFIG_TREE_RCU=y
|
||||
# CONFIG_TREE_PREEMPT_RCU is not set
|
||||
# CONFIG_TINY_RCU is not set
|
||||
# CONFIG_RCU_TRACE is not set
|
||||
CONFIG_RCU_FANOUT=32
|
||||
# CONFIG_RCU_FANOUT_EXACT is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
# CONFIG_IKCONFIG is not set
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
CONFIG_GROUP_SCHED=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
# CONFIG_RT_GROUP_SCHED is not set
|
||||
CONFIG_USER_SCHED=y
|
||||
# CONFIG_CGROUP_SCHED is not set
|
||||
# CONFIG_CGROUPS is not set
|
||||
# CONFIG_SYSFS_DEPRECATED_V2 is not set
|
||||
# CONFIG_RELAY is not set
|
||||
@ -64,6 +71,7 @@ CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_RD_GZIP=y
|
||||
# CONFIG_RD_BZIP2 is not set
|
||||
# CONFIG_RD_LZMA is not set
|
||||
# CONFIG_RD_LZO is not set
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
CONFIG_SYSCTL=y
|
||||
CONFIG_ANON_INODES=y
|
||||
@ -85,10 +93,14 @@ CONFIG_TIMERFD=y
|
||||
CONFIG_EVENTFD=y
|
||||
CONFIG_SHMEM=y
|
||||
CONFIG_AIO=y
|
||||
CONFIG_HAVE_PERF_EVENTS=y
|
||||
CONFIG_PERF_USE_VMALLOC=y
|
||||
|
||||
#
|
||||
# Kernel Performance Events And Counters
|
||||
#
|
||||
# CONFIG_PERF_EVENTS is not set
|
||||
# CONFIG_PERF_COUNTERS is not set
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
CONFIG_COMPAT_BRK=y
|
||||
@ -127,14 +139,41 @@ CONFIG_LBDAF=y
|
||||
# IO Schedulers
|
||||
#
|
||||
CONFIG_IOSCHED_NOOP=y
|
||||
CONFIG_IOSCHED_AS=y
|
||||
CONFIG_IOSCHED_DEADLINE=y
|
||||
CONFIG_IOSCHED_CFQ=y
|
||||
CONFIG_DEFAULT_AS=y
|
||||
# CONFIG_DEFAULT_DEADLINE is not set
|
||||
# CONFIG_DEFAULT_CFQ is not set
|
||||
CONFIG_DEFAULT_CFQ=y
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="anticipatory"
|
||||
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK is not set
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
|
||||
# CONFIG_INLINE_SPIN_LOCK is not set
|
||||
# CONFIG_INLINE_SPIN_LOCK_BH is not set
|
||||
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
|
||||
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
|
||||
# CONFIG_INLINE_SPIN_UNLOCK is not set
|
||||
# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
|
||||
# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
|
||||
# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
|
||||
# CONFIG_INLINE_READ_TRYLOCK is not set
|
||||
# CONFIG_INLINE_READ_LOCK is not set
|
||||
# CONFIG_INLINE_READ_LOCK_BH is not set
|
||||
# CONFIG_INLINE_READ_LOCK_IRQ is not set
|
||||
# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
|
||||
# CONFIG_INLINE_READ_UNLOCK is not set
|
||||
# CONFIG_INLINE_READ_UNLOCK_BH is not set
|
||||
# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
|
||||
# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
|
||||
# CONFIG_INLINE_WRITE_TRYLOCK is not set
|
||||
# CONFIG_INLINE_WRITE_LOCK is not set
|
||||
# CONFIG_INLINE_WRITE_LOCK_BH is not set
|
||||
# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
|
||||
# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
|
||||
# CONFIG_INLINE_WRITE_UNLOCK is not set
|
||||
# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
|
||||
# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
|
||||
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
|
||||
CONFIG_MUTEX_SPIN_ON_OWNER=y
|
||||
# CONFIG_FREEZER is not set
|
||||
|
||||
#
|
||||
@ -146,6 +185,7 @@ CONFIG_MMU=y
|
||||
# CONFIG_ARCH_REALVIEW is not set
|
||||
# CONFIG_ARCH_VERSATILE is not set
|
||||
# CONFIG_ARCH_AT91 is not set
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
# CONFIG_ARCH_CLPS711X is not set
|
||||
# CONFIG_ARCH_GEMINI is not set
|
||||
# CONFIG_ARCH_EBSA110 is not set
|
||||
@ -155,7 +195,6 @@ CONFIG_MMU=y
|
||||
# CONFIG_ARCH_STMP3XXX is not set
|
||||
# CONFIG_ARCH_NETX is not set
|
||||
# CONFIG_ARCH_H720X is not set
|
||||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_IOP13XX is not set
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
@ -163,6 +202,7 @@ CONFIG_MMU=y
|
||||
# CONFIG_ARCH_IXP2000 is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_L7200 is not set
|
||||
# CONFIG_ARCH_DOVE is not set
|
||||
# CONFIG_ARCH_KIRKWOOD is not set
|
||||
# CONFIG_ARCH_LOKI is not set
|
||||
# CONFIG_ARCH_MV78XX0 is not set
|
||||
@ -171,25 +211,32 @@ CONFIG_MMU=y
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_NS9XXX is not set
|
||||
# CONFIG_ARCH_W90X900 is not set
|
||||
# CONFIG_ARCH_NUC93X is not set
|
||||
# CONFIG_ARCH_PNX4008 is not set
|
||||
# CONFIG_ARCH_PXA is not set
|
||||
# CONFIG_ARCH_MSM is not set
|
||||
# CONFIG_ARCH_SHMOBILE is not set
|
||||
# CONFIG_ARCH_RPC is not set
|
||||
# CONFIG_ARCH_SA1100 is not set
|
||||
# CONFIG_ARCH_S3C2410 is not set
|
||||
# CONFIG_ARCH_S3C64XX is not set
|
||||
# CONFIG_ARCH_S5P6440 is not set
|
||||
# CONFIG_ARCH_S5P6442 is not set
|
||||
# CONFIG_ARCH_S5PC1XX is not set
|
||||
# CONFIG_ARCH_S5PV210 is not set
|
||||
# CONFIG_ARCH_SHARK is not set
|
||||
# CONFIG_ARCH_LH7A40X is not set
|
||||
# CONFIG_ARCH_U300 is not set
|
||||
# CONFIG_ARCH_U8500 is not set
|
||||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_DAVINCI is not set
|
||||
CONFIG_ARCH_OMAP=y
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
|
||||
#
|
||||
# TI OMAP Implementations
|
||||
#
|
||||
# CONFIG_ARCH_OMAP1 is not set
|
||||
CONFIG_ARCH_OMAP2PLUS=y
|
||||
# CONFIG_ARCH_OMAP2 is not set
|
||||
# CONFIG_ARCH_OMAP3 is not set
|
||||
CONFIG_ARCH_OMAP4=y
|
||||
@ -205,10 +252,6 @@ CONFIG_OMAP_MCBSP=y
|
||||
CONFIG_OMAP_32K_TIMER=y
|
||||
CONFIG_OMAP_32K_TIMER_HZ=128
|
||||
CONFIG_OMAP_DM_TIMER=y
|
||||
# CONFIG_OMAP_LL_DEBUG_UART1 is not set
|
||||
# CONFIG_OMAP_LL_DEBUG_UART2 is not set
|
||||
CONFIG_OMAP_LL_DEBUG_UART3=y
|
||||
# CONFIG_OMAP_LL_DEBUG_NONE is not set
|
||||
# CONFIG_OMAP_PM_NONE is not set
|
||||
CONFIG_OMAP_PM_NOOP=y
|
||||
|
||||
@ -243,13 +286,16 @@ CONFIG_CPU_CP15_MMU=y
|
||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||
CONFIG_HAS_TLS_REG=y
|
||||
CONFIG_OUTER_CACHE=y
|
||||
CONFIG_OUTER_CACHE_SYNC=y
|
||||
CONFIG_CACHE_L2X0=y
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=5
|
||||
CONFIG_CPU_HAS_PMU=y
|
||||
# CONFIG_ARM_ERRATA_430973 is not set
|
||||
# CONFIG_ARM_ERRATA_458693 is not set
|
||||
# CONFIG_ARM_ERRATA_460075 is not set
|
||||
CONFIG_PL310_ERRATA_588369=y
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_COMMON_CLKDEV=y
|
||||
|
||||
#
|
||||
# Bus support
|
||||
@ -280,6 +326,7 @@ CONFIG_HZ=128
|
||||
# CONFIG_THUMB2_KERNEL is not set
|
||||
CONFIG_AEABI=y
|
||||
CONFIG_OABI_COMPAT=y
|
||||
CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
|
||||
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
||||
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
|
||||
# CONFIG_HIGHMEM is not set
|
||||
@ -294,8 +341,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
|
||||
# CONFIG_PHYS_ADDR_T_64BIT is not set
|
||||
CONFIG_ZONE_DMA_FLAG=0
|
||||
CONFIG_VIRT_TO_BUS=y
|
||||
CONFIG_HAVE_MLOCK=y
|
||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
||||
# CONFIG_KSM is not set
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||
# CONFIG_LEDS is not set
|
||||
@ -343,7 +388,83 @@ CONFIG_BINFMT_MISC=y
|
||||
#
|
||||
# CONFIG_PM is not set
|
||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||
# CONFIG_NET is not set
|
||||
CONFIG_NET=y
|
||||
|
||||
#
|
||||
# Networking options
|
||||
#
|
||||
CONFIG_PACKET=y
|
||||
# CONFIG_UNIX is not set
|
||||
CONFIG_XFRM=y
|
||||
# CONFIG_XFRM_USER is not set
|
||||
# CONFIG_XFRM_SUB_POLICY is not set
|
||||
# CONFIG_XFRM_MIGRATE is not set
|
||||
# CONFIG_XFRM_STATISTICS is not set
|
||||
# CONFIG_NET_KEY is not set
|
||||
CONFIG_INET=y
|
||||
# CONFIG_IP_MULTICAST is not set
|
||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||
CONFIG_IP_FIB_HASH=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
CONFIG_IP_PNP_RARP=y
|
||||
# CONFIG_NET_IPIP is not set
|
||||
# CONFIG_NET_IPGRE is not set
|
||||
# CONFIG_ARPD is not set
|
||||
# CONFIG_SYN_COOKIES is not set
|
||||
# CONFIG_INET_AH is not set
|
||||
# CONFIG_INET_ESP is not set
|
||||
# CONFIG_INET_IPCOMP is not set
|
||||
# CONFIG_INET_XFRM_TUNNEL is not set
|
||||
# CONFIG_INET_TUNNEL is not set
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=y
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=y
|
||||
CONFIG_INET_XFRM_MODE_BEET=y
|
||||
CONFIG_INET_LRO=y
|
||||
CONFIG_INET_DIAG=y
|
||||
CONFIG_INET_TCP_DIAG=y
|
||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||
CONFIG_TCP_CONG_CUBIC=y
|
||||
CONFIG_DEFAULT_TCP_CONG="cubic"
|
||||
# CONFIG_TCP_MD5SIG is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_NETWORK_SECMARK is not set
|
||||
# CONFIG_NETFILTER is not set
|
||||
# CONFIG_IP_DCCP is not set
|
||||
# CONFIG_IP_SCTP is not set
|
||||
# CONFIG_RDS is not set
|
||||
# CONFIG_TIPC is not set
|
||||
# CONFIG_ATM is not set
|
||||
# CONFIG_BRIDGE is not set
|
||||
# CONFIG_NET_DSA is not set
|
||||
# CONFIG_VLAN_8021Q is not set
|
||||
# CONFIG_DECNET is not set
|
||||
# CONFIG_LLC2 is not set
|
||||
# CONFIG_IPX is not set
|
||||
# CONFIG_ATALK is not set
|
||||
# CONFIG_X25 is not set
|
||||
# CONFIG_LAPB is not set
|
||||
# CONFIG_ECONET is not set
|
||||
# CONFIG_WAN_ROUTER is not set
|
||||
# CONFIG_PHONET is not set
|
||||
# CONFIG_IEEE802154 is not set
|
||||
# CONFIG_NET_SCHED is not set
|
||||
# CONFIG_DCB is not set
|
||||
|
||||
#
|
||||
# Network testing
|
||||
#
|
||||
# CONFIG_NET_PKTGEN is not set
|
||||
# CONFIG_HAMRADIO is not set
|
||||
# CONFIG_CAN is not set
|
||||
# CONFIG_IRDA is not set
|
||||
# CONFIG_BT is not set
|
||||
# CONFIG_AF_RXRPC is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
# CONFIG_WIMAX is not set
|
||||
# CONFIG_RFKILL is not set
|
||||
# CONFIG_NET_9P is not set
|
||||
|
||||
#
|
||||
# Device Drivers
|
||||
@ -360,17 +481,24 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||
# CONFIG_DEBUG_DRIVER is not set
|
||||
# CONFIG_DEBUG_DEVRES is not set
|
||||
# CONFIG_SYS_HYPERVISOR is not set
|
||||
# CONFIG_CONNECTOR is not set
|
||||
# CONFIG_MTD is not set
|
||||
# CONFIG_PARPORT is not set
|
||||
CONFIG_BLK_DEV=y
|
||||
# CONFIG_BLK_DEV_COW_COMMON is not set
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
|
||||
|
||||
#
|
||||
# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
|
||||
#
|
||||
# CONFIG_BLK_DEV_NBD is not set
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||
CONFIG_BLK_DEV_RAM_SIZE=16384
|
||||
# CONFIG_BLK_DEV_XIP is not set
|
||||
# CONFIG_CDROM_PKTCDVD is not set
|
||||
# CONFIG_ATA_OVER_ETH is not set
|
||||
# CONFIG_MG_DISK is not set
|
||||
# CONFIG_MISC_DEVICES is not set
|
||||
CONFIG_HAVE_IDE=y
|
||||
@ -379,12 +507,56 @@ CONFIG_HAVE_IDE=y
|
||||
#
|
||||
# SCSI device support
|
||||
#
|
||||
CONFIG_SCSI_MOD=y
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
# CONFIG_SCSI is not set
|
||||
# CONFIG_SCSI_DMA is not set
|
||||
# CONFIG_SCSI_NETLINK is not set
|
||||
# CONFIG_ATA is not set
|
||||
# CONFIG_MD is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
# CONFIG_DUMMY is not set
|
||||
# CONFIG_BONDING is not set
|
||||
# CONFIG_MACVLAN is not set
|
||||
# CONFIG_EQUALIZER is not set
|
||||
# CONFIG_TUN is not set
|
||||
# CONFIG_VETH is not set
|
||||
# CONFIG_PHYLIB is not set
|
||||
CONFIG_NET_ETHERNET=y
|
||||
CONFIG_MII=y
|
||||
# CONFIG_AX88796 is not set
|
||||
# CONFIG_SMC91X is not set
|
||||
# CONFIG_DM9000 is not set
|
||||
# CONFIG_ENC28J60 is not set
|
||||
# CONFIG_ETHOC is not set
|
||||
# CONFIG_SMC911X is not set
|
||||
# CONFIG_SMSC911X is not set
|
||||
# CONFIG_DNET is not set
|
||||
# CONFIG_IBM_NEW_EMAC_ZMII is not set
|
||||
# CONFIG_IBM_NEW_EMAC_RGMII is not set
|
||||
# CONFIG_IBM_NEW_EMAC_TAH is not set
|
||||
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
|
||||
# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
|
||||
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
|
||||
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
|
||||
# CONFIG_B44 is not set
|
||||
# CONFIG_KS8842 is not set
|
||||
CONFIG_KS8851=y
|
||||
# CONFIG_KS8851_MLL is not set
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
|
||||
#
|
||||
# Enable WiMAX (Networking options) to see the WiMAX drivers
|
||||
#
|
||||
# CONFIG_WAN is not set
|
||||
# CONFIG_PPP is not set
|
||||
# CONFIG_SLIP is not set
|
||||
# CONFIG_NETCONSOLE is not set
|
||||
# CONFIG_NETPOLL is not set
|
||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||
# CONFIG_ISDN is not set
|
||||
# CONFIG_PHONE is not set
|
||||
|
||||
#
|
||||
@ -393,6 +565,7 @@ CONFIG_HAVE_IDE=y
|
||||
CONFIG_INPUT=y
|
||||
# CONFIG_INPUT_FF_MEMLESS is not set
|
||||
# CONFIG_INPUT_POLLDEV is not set
|
||||
# CONFIG_INPUT_SPARSEKMAP is not set
|
||||
|
||||
#
|
||||
# Userland interfaces
|
||||
@ -445,8 +618,10 @@ CONFIG_SERIAL_8250_RSA=y
|
||||
#
|
||||
# Non-8250 serial port support
|
||||
#
|
||||
# CONFIG_SERIAL_MAX3100 is not set
|
||||
CONFIG_SERIAL_CORE=y
|
||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
@ -456,8 +631,58 @@ CONFIG_HW_RANDOM=y
|
||||
# CONFIG_R3964 is not set
|
||||
# CONFIG_RAW_DRIVER is not set
|
||||
# CONFIG_TCG_TPM is not set
|
||||
# CONFIG_I2C is not set
|
||||
# CONFIG_SPI is not set
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_BOARDINFO=y
|
||||
CONFIG_I2C_COMPAT=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_HELPER_AUTO=y
|
||||
|
||||
#
|
||||
# I2C Hardware Bus support
|
||||
#
|
||||
|
||||
#
|
||||
# I2C system bus drivers (mostly embedded / system-on-chip)
|
||||
#
|
||||
# CONFIG_I2C_DESIGNWARE is not set
|
||||
# CONFIG_I2C_GPIO is not set
|
||||
# CONFIG_I2C_OCORES is not set
|
||||
CONFIG_I2C_OMAP=y
|
||||
# CONFIG_I2C_SIMTEC is not set
|
||||
# CONFIG_I2C_XILINX is not set
|
||||
|
||||
#
|
||||
# External I2C/SMBus adapter drivers
|
||||
#
|
||||
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||
# CONFIG_I2C_TAOS_EVM is not set
|
||||
|
||||
#
|
||||
# Other I2C/SMBus bus drivers
|
||||
#
|
||||
# CONFIG_I2C_PCA_PLATFORM is not set
|
||||
# CONFIG_I2C_STUB is not set
|
||||
# CONFIG_I2C_DEBUG_CORE is not set
|
||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||
# CONFIG_I2C_DEBUG_BUS is not set
|
||||
CONFIG_SPI=y
|
||||
# CONFIG_SPI_DEBUG is not set
|
||||
CONFIG_SPI_MASTER=y
|
||||
|
||||
#
|
||||
# SPI Master Controller Drivers
|
||||
#
|
||||
# CONFIG_SPI_BITBANG is not set
|
||||
# CONFIG_SPI_GPIO is not set
|
||||
CONFIG_SPI_OMAP24XX=y
|
||||
# CONFIG_SPI_XILINX is not set
|
||||
# CONFIG_SPI_DESIGNWARE is not set
|
||||
|
||||
#
|
||||
# SPI Protocol Masters
|
||||
#
|
||||
# CONFIG_SPI_SPIDEV is not set
|
||||
# CONFIG_SPI_TLE62X0 is not set
|
||||
|
||||
#
|
||||
# PPS support
|
||||
@ -471,10 +696,17 @@ CONFIG_GPIOLIB=y
|
||||
#
|
||||
# Memory mapped GPIO expanders:
|
||||
#
|
||||
# CONFIG_GPIO_IT8761E is not set
|
||||
|
||||
#
|
||||
# I2C GPIO expanders:
|
||||
#
|
||||
# CONFIG_GPIO_MAX7300 is not set
|
||||
# CONFIG_GPIO_MAX732X is not set
|
||||
# CONFIG_GPIO_PCA953X is not set
|
||||
# CONFIG_GPIO_PCF857X is not set
|
||||
# CONFIG_GPIO_TWL4030 is not set
|
||||
# CONFIG_GPIO_ADP5588 is not set
|
||||
|
||||
#
|
||||
# PCI GPIO expanders:
|
||||
@ -483,6 +715,9 @@ CONFIG_GPIOLIB=y
|
||||
#
|
||||
# SPI GPIO expanders:
|
||||
#
|
||||
# CONFIG_GPIO_MAX7301 is not set
|
||||
# CONFIG_GPIO_MCP23S08 is not set
|
||||
# CONFIG_GPIO_MC33880 is not set
|
||||
|
||||
#
|
||||
# AC97 GPIO expanders:
|
||||
@ -492,7 +727,15 @@ CONFIG_GPIOLIB=y
|
||||
# CONFIG_HWMON is not set
|
||||
# CONFIG_THERMAL is not set
|
||||
CONFIG_WATCHDOG=y
|
||||
# CONFIG_WATCHDOG_NOWAYOUT is not set
|
||||
|
||||
#
|
||||
# Watchdog Device Drivers
|
||||
#
|
||||
# CONFIG_SOFT_WATCHDOG is not set
|
||||
CONFIG_OMAP_WATCHDOG=y
|
||||
# CONFIG_TWL4030_WATCHDOG is not set
|
||||
# CONFIG_MAX63XX_WATCHDOG is not set
|
||||
CONFIG_SSB_POSSIBLE=y
|
||||
|
||||
#
|
||||
@ -504,15 +747,46 @@ CONFIG_SSB_POSSIBLE=y
|
||||
# Multifunction device drivers
|
||||
#
|
||||
# CONFIG_MFD_CORE is not set
|
||||
# CONFIG_MFD_88PM860X is not set
|
||||
# CONFIG_MFD_SM501 is not set
|
||||
# CONFIG_MFD_ASIC3 is not set
|
||||
# CONFIG_HTC_EGPIO is not set
|
||||
# CONFIG_HTC_PASIC3 is not set
|
||||
# CONFIG_HTC_I2CPLD is not set
|
||||
# CONFIG_TPS65010 is not set
|
||||
CONFIG_TWL4030_CORE=y
|
||||
# CONFIG_TWL4030_POWER is not set
|
||||
# CONFIG_TWL4030_CODEC is not set
|
||||
# CONFIG_MFD_TMIO is not set
|
||||
# CONFIG_MFD_T7L66XB is not set
|
||||
# CONFIG_MFD_TC6387XB is not set
|
||||
# CONFIG_MFD_TC6393XB is not set
|
||||
# CONFIG_REGULATOR is not set
|
||||
# CONFIG_PMIC_DA903X is not set
|
||||
# CONFIG_PMIC_ADP5520 is not set
|
||||
# CONFIG_MFD_MAX8925 is not set
|
||||
# CONFIG_MFD_WM8400 is not set
|
||||
# CONFIG_MFD_WM831X is not set
|
||||
# CONFIG_MFD_WM8350_I2C is not set
|
||||
# CONFIG_MFD_WM8994 is not set
|
||||
# CONFIG_MFD_PCF50633 is not set
|
||||
# CONFIG_MFD_MC13783 is not set
|
||||
# CONFIG_AB3100_CORE is not set
|
||||
# CONFIG_EZX_PCAP is not set
|
||||
# CONFIG_AB4500_CORE is not set
|
||||
CONFIG_REGULATOR=y
|
||||
# CONFIG_REGULATOR_DEBUG is not set
|
||||
# CONFIG_REGULATOR_DUMMY is not set
|
||||
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
|
||||
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
|
||||
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
|
||||
# CONFIG_REGULATOR_BQ24022 is not set
|
||||
# CONFIG_REGULATOR_MAX1586 is not set
|
||||
# CONFIG_REGULATOR_MAX8649 is not set
|
||||
# CONFIG_REGULATOR_MAX8660 is not set
|
||||
CONFIG_REGULATOR_TWL4030=y
|
||||
# CONFIG_REGULATOR_LP3971 is not set
|
||||
# CONFIG_REGULATOR_TPS65023 is not set
|
||||
# CONFIG_REGULATOR_TPS6507X is not set
|
||||
# CONFIG_MEDIA_SUPPORT is not set
|
||||
|
||||
#
|
||||
@ -536,12 +810,94 @@ CONFIG_DUMMY_CONSOLE=y
|
||||
# CONFIG_SOUND is not set
|
||||
# CONFIG_HID_SUPPORT is not set
|
||||
# CONFIG_USB_SUPPORT is not set
|
||||
# CONFIG_MMC is not set
|
||||
CONFIG_MMC=y
|
||||
# CONFIG_MMC_DEBUG is not set
|
||||
# CONFIG_MMC_UNSAFE_RESUME is not set
|
||||
|
||||
#
|
||||
# MMC/SD/SDIO Card Drivers
|
||||
#
|
||||
CONFIG_MMC_BLOCK=y
|
||||
CONFIG_MMC_BLOCK_BOUNCE=y
|
||||
# CONFIG_SDIO_UART is not set
|
||||
# CONFIG_MMC_TEST is not set
|
||||
|
||||
#
|
||||
# MMC/SD/SDIO Host Controller Drivers
|
||||
#
|
||||
# CONFIG_MMC_SDHCI is not set
|
||||
# CONFIG_MMC_OMAP is not set
|
||||
CONFIG_MMC_OMAP_HS=y
|
||||
# CONFIG_MEMSTICK is not set
|
||||
# CONFIG_NEW_LEDS is not set
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
CONFIG_RTC_LIB=y
|
||||
# CONFIG_RTC_CLASS is not set
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_HCTOSYS=y
|
||||
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
|
||||
# CONFIG_RTC_DEBUG is not set
|
||||
|
||||
#
|
||||
# RTC interfaces
|
||||
#
|
||||
CONFIG_RTC_INTF_SYSFS=y
|
||||
CONFIG_RTC_INTF_PROC=y
|
||||
CONFIG_RTC_INTF_DEV=y
|
||||
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
|
||||
# CONFIG_RTC_DRV_TEST is not set
|
||||
|
||||
#
|
||||
# I2C RTC drivers
|
||||
#
|
||||
# CONFIG_RTC_DRV_DS1307 is not set
|
||||
# CONFIG_RTC_DRV_DS1374 is not set
|
||||
# CONFIG_RTC_DRV_DS1672 is not set
|
||||
# CONFIG_RTC_DRV_MAX6900 is not set
|
||||
# CONFIG_RTC_DRV_RS5C372 is not set
|
||||
# CONFIG_RTC_DRV_ISL1208 is not set
|
||||
# CONFIG_RTC_DRV_X1205 is not set
|
||||
# CONFIG_RTC_DRV_PCF8563 is not set
|
||||
# CONFIG_RTC_DRV_PCF8583 is not set
|
||||
# CONFIG_RTC_DRV_M41T80 is not set
|
||||
# CONFIG_RTC_DRV_BQ32K is not set
|
||||
CONFIG_RTC_DRV_TWL4030=y
|
||||
# CONFIG_RTC_DRV_S35390A is not set
|
||||
# CONFIG_RTC_DRV_FM3130 is not set
|
||||
# CONFIG_RTC_DRV_RX8581 is not set
|
||||
# CONFIG_RTC_DRV_RX8025 is not set
|
||||
|
||||
#
|
||||
# SPI RTC drivers
|
||||
#
|
||||
# CONFIG_RTC_DRV_M41T94 is not set
|
||||
# CONFIG_RTC_DRV_DS1305 is not set
|
||||
# CONFIG_RTC_DRV_DS1390 is not set
|
||||
# CONFIG_RTC_DRV_MAX6902 is not set
|
||||
# CONFIG_RTC_DRV_R9701 is not set
|
||||
# CONFIG_RTC_DRV_RS5C348 is not set
|
||||
# CONFIG_RTC_DRV_DS3234 is not set
|
||||
# CONFIG_RTC_DRV_PCF2123 is not set
|
||||
|
||||
#
|
||||
# Platform RTC drivers
|
||||
#
|
||||
# CONFIG_RTC_DRV_CMOS is not set
|
||||
# CONFIG_RTC_DRV_DS1286 is not set
|
||||
# CONFIG_RTC_DRV_DS1511 is not set
|
||||
# CONFIG_RTC_DRV_DS1553 is not set
|
||||
# CONFIG_RTC_DRV_DS1742 is not set
|
||||
# CONFIG_RTC_DRV_STK17TA8 is not set
|
||||
# CONFIG_RTC_DRV_M48T86 is not set
|
||||
# CONFIG_RTC_DRV_M48T35 is not set
|
||||
# CONFIG_RTC_DRV_M48T59 is not set
|
||||
# CONFIG_RTC_DRV_MSM6242 is not set
|
||||
# CONFIG_RTC_DRV_BQ4802 is not set
|
||||
# CONFIG_RTC_DRV_RP5C01 is not set
|
||||
# CONFIG_RTC_DRV_V3020 is not set
|
||||
|
||||
#
|
||||
# on-CPU RTC drivers
|
||||
#
|
||||
# CONFIG_DMADEVICES is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_UIO is not set
|
||||
@ -564,9 +920,10 @@ CONFIG_EXT3_FS=y
|
||||
CONFIG_JBD=y
|
||||
# CONFIG_REISERFS_FS is not set
|
||||
# CONFIG_JFS_FS is not set
|
||||
# CONFIG_FS_POSIX_ACL is not set
|
||||
CONFIG_FS_POSIX_ACL=y
|
||||
# CONFIG_XFS_FS is not set
|
||||
# CONFIG_GFS2_FS is not set
|
||||
# CONFIG_OCFS2_FS is not set
|
||||
# CONFIG_BTRFS_FS is not set
|
||||
# CONFIG_NILFS2_FS is not set
|
||||
CONFIG_FILE_LOCKING=y
|
||||
@ -575,7 +932,9 @@ CONFIG_DNOTIFY=y
|
||||
CONFIG_INOTIFY=y
|
||||
CONFIG_INOTIFY_USER=y
|
||||
CONFIG_QUOTA=y
|
||||
# CONFIG_QUOTA_NETLINK_INTERFACE is not set
|
||||
CONFIG_PRINT_QUOTA_WARNING=y
|
||||
# CONFIG_QUOTA_DEBUG is not set
|
||||
CONFIG_QUOTA_TREE=y
|
||||
# CONFIG_QFMT_V1 is not set
|
||||
CONFIG_QFMT_V2=y
|
||||
@ -624,6 +983,7 @@ CONFIG_MISC_FILESYSTEMS=y
|
||||
# CONFIG_BEFS_FS is not set
|
||||
# CONFIG_BFS_FS is not set
|
||||
# CONFIG_EFS_FS is not set
|
||||
# CONFIG_LOGFS is not set
|
||||
# CONFIG_CRAMFS is not set
|
||||
# CONFIG_SQUASHFS is not set
|
||||
# CONFIG_VXFS_FS is not set
|
||||
@ -634,6 +994,28 @@ CONFIG_MISC_FILESYSTEMS=y
|
||||
# CONFIG_ROMFS_FS is not set
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
CONFIG_NETWORK_FILESYSTEMS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3=y
|
||||
CONFIG_NFS_V3_ACL=y
|
||||
CONFIG_NFS_V4=y
|
||||
# CONFIG_NFS_V4_1 is not set
|
||||
CONFIG_ROOT_NFS=y
|
||||
# CONFIG_NFSD is not set
|
||||
CONFIG_LOCKD=y
|
||||
CONFIG_LOCKD_V4=y
|
||||
CONFIG_NFS_ACL_SUPPORT=y
|
||||
CONFIG_NFS_COMMON=y
|
||||
CONFIG_SUNRPC=y
|
||||
CONFIG_SUNRPC_GSS=y
|
||||
CONFIG_RPCSEC_GSS_KRB5=y
|
||||
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
||||
# CONFIG_SMB_FS is not set
|
||||
# CONFIG_CEPH_FS is not set
|
||||
# CONFIG_CIFS is not set
|
||||
# CONFIG_NCP_FS is not set
|
||||
# CONFIG_CODA_FS is not set
|
||||
# CONFIG_AFS_FS is not set
|
||||
|
||||
#
|
||||
# Partition Types
|
||||
@ -696,6 +1078,7 @@ CONFIG_NLS_ISO8859_1=y
|
||||
# CONFIG_NLS_KOI8_R is not set
|
||||
# CONFIG_NLS_KOI8_U is not set
|
||||
# CONFIG_NLS_UTF8 is not set
|
||||
# CONFIG_DLM is not set
|
||||
|
||||
#
|
||||
# Kernel hacking
|
||||
@ -750,13 +1133,11 @@ CONFIG_FRAME_POINTER=y
|
||||
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
|
||||
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
||||
# CONFIG_FAULT_INJECTION is not set
|
||||
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
|
||||
# CONFIG_PAGE_POISONING is not set
|
||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||
CONFIG_TRACING_SUPPORT=y
|
||||
# CONFIG_FTRACE is not set
|
||||
# CONFIG_BRANCH_PROFILE_NONE is not set
|
||||
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
|
||||
# CONFIG_PROFILE_ALL_BRANCHES is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
@ -765,6 +1146,7 @@ CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_DEBUG_ERRORS is not set
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_LL is not set
|
||||
# CONFIG_OC_ETM is not set
|
||||
|
||||
#
|
||||
# Security options
|
||||
@ -772,7 +1154,11 @@ CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KEYS is not set
|
||||
# CONFIG_SECURITY is not set
|
||||
# CONFIG_SECURITYFS is not set
|
||||
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
|
||||
# CONFIG_DEFAULT_SECURITY_SELINUX is not set
|
||||
# CONFIG_DEFAULT_SECURITY_SMACK is not set
|
||||
# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
|
||||
CONFIG_DEFAULT_SECURITY_DAC=y
|
||||
CONFIG_DEFAULT_SECURITY=""
|
||||
CONFIG_CRYPTO=y
|
||||
|
||||
#
|
||||
@ -791,6 +1177,7 @@ CONFIG_CRYPTO_MANAGER=y
|
||||
CONFIG_CRYPTO_MANAGER2=y
|
||||
# CONFIG_CRYPTO_GF128MUL is not set
|
||||
# CONFIG_CRYPTO_NULL is not set
|
||||
# CONFIG_CRYPTO_PCRYPT is not set
|
||||
CONFIG_CRYPTO_WORKQUEUE=y
|
||||
# CONFIG_CRYPTO_CRYPTD is not set
|
||||
# CONFIG_CRYPTO_AUTHENC is not set
|
||||
@ -889,3 +1276,4 @@ CONFIG_DECOMPRESS_GZIP=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_NLATTR=y
|
||||
|
@ -152,6 +152,16 @@ config MACH_AMS_DELTA
|
||||
Support for the Amstrad E3 (codename Delta) videophone. Say Y here
|
||||
if you have such a device.
|
||||
|
||||
config AMS_DELTA_FIQ
|
||||
bool "Fast Interrupt Request (FIQ) support for the E3"
|
||||
depends on MACH_AMS_DELTA
|
||||
select FIQ
|
||||
help
|
||||
Provide a FIQ handler for the E3.
|
||||
This allows for fast handling of interrupts generated
|
||||
by the clock line of the E3 mailboard (or a PS/2 keyboard)
|
||||
connected to the GPIO based external keyboard port.
|
||||
|
||||
config MACH_OMAP_GENERIC
|
||||
bool "Generic OMAP board"
|
||||
depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX)
|
||||
|
@ -37,6 +37,7 @@ obj-$(CONFIG_MACH_OMAP_PALMZ71) += board-palmz71.o
|
||||
obj-$(CONFIG_MACH_OMAP_PALMTT) += board-palmtt.o
|
||||
obj-$(CONFIG_MACH_NOKIA770) += board-nokia770.o
|
||||
obj-$(CONFIG_MACH_AMS_DELTA) += board-ams-delta.o
|
||||
obj-$(CONFIG_AMS_DELTA_FIQ) += ams-delta-fiq.o ams-delta-fiq-handler.o
|
||||
obj-$(CONFIG_MACH_SX1) += board-sx1.o board-sx1-mmc.o
|
||||
obj-$(CONFIG_MACH_HERALD) += board-htcherald.o
|
||||
|
||||
|
278
arch/arm/mach-omap1/ams-delta-fiq-handler.S
Normal file
278
arch/arm/mach-omap1/ams-delta-fiq-handler.S
Normal file
@ -0,0 +1,278 @@
|
||||
/*
|
||||
* linux/arch/arm/mach-omap1/ams-delta-fiq-handler.S
|
||||
*
|
||||
* Based on linux/arch/arm/lib/floppydma.S
|
||||
* Renamed and modified to work with 2.6 kernel by Matt Callow
|
||||
* Copyright (C) 1995, 1996 Russell King
|
||||
* Copyright (C) 2004 Pete Trapps
|
||||
* Copyright (C) 2006 Matt Callow
|
||||
* Copyright (C) 2010 Janusz Krzysztofik
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <linux/linkage.h>
|
||||
|
||||
#include <plat/io.h>
|
||||
#include <plat/board-ams-delta.h>
|
||||
|
||||
#include <mach/ams-delta-fiq.h>
|
||||
|
||||
/*
|
||||
* GPIO related definitions, copied from arch/arm/plat-omap/gpio.c.
|
||||
* Unfortunately, those were not placed in a separate header file.
|
||||
*/
|
||||
#define OMAP1510_GPIO_BASE 0xFFFCE000
|
||||
#define OMAP1510_GPIO_DATA_INPUT 0x00
|
||||
#define OMAP1510_GPIO_DATA_OUTPUT 0x04
|
||||
#define OMAP1510_GPIO_DIR_CONTROL 0x08
|
||||
#define OMAP1510_GPIO_INT_CONTROL 0x0c
|
||||
#define OMAP1510_GPIO_INT_MASK 0x10
|
||||
#define OMAP1510_GPIO_INT_STATUS 0x14
|
||||
#define OMAP1510_GPIO_PIN_CONTROL 0x18
|
||||
|
||||
/* GPIO register bitmasks */
|
||||
#define KEYBRD_DATA_MASK (0x1 << AMS_DELTA_GPIO_PIN_KEYBRD_DATA)
|
||||
#define KEYBRD_CLK_MASK (0x1 << AMS_DELTA_GPIO_PIN_KEYBRD_CLK)
|
||||
#define MODEM_IRQ_MASK (0x1 << AMS_DELTA_GPIO_PIN_MODEM_IRQ)
|
||||
#define HOOK_SWITCH_MASK (0x1 << AMS_DELTA_GPIO_PIN_HOOK_SWITCH)
|
||||
#define OTHERS_MASK (MODEM_IRQ_MASK | HOOK_SWITCH_MASK)
|
||||
|
||||
/* IRQ handler register bitmasks */
|
||||
#define DEFERRED_FIQ_MASK (0x1 << (INT_DEFERRED_FIQ % IH2_BASE))
|
||||
#define GPIO_BANK1_MASK (0x1 << INT_GPIO_BANK1)
|
||||
|
||||
/* Driver buffer byte offsets */
|
||||
#define BUF_MASK (FIQ_MASK * 4)
|
||||
#define BUF_STATE (FIQ_STATE * 4)
|
||||
#define BUF_KEYS_CNT (FIQ_KEYS_CNT * 4)
|
||||
#define BUF_TAIL_OFFSET (FIQ_TAIL_OFFSET * 4)
|
||||
#define BUF_HEAD_OFFSET (FIQ_HEAD_OFFSET * 4)
|
||||
#define BUF_BUF_LEN (FIQ_BUF_LEN * 4)
|
||||
#define BUF_KEY (FIQ_KEY * 4)
|
||||
#define BUF_MISSED_KEYS (FIQ_MISSED_KEYS * 4)
|
||||
#define BUF_BUFFER_START (FIQ_BUFFER_START * 4)
|
||||
#define BUF_GPIO_INT_MASK (FIQ_GPIO_INT_MASK * 4)
|
||||
#define BUF_KEYS_HICNT (FIQ_KEYS_HICNT * 4)
|
||||
#define BUF_IRQ_PEND (FIQ_IRQ_PEND * 4)
|
||||
#define BUF_SIR_CODE_L1 (FIQ_SIR_CODE_L1 * 4)
|
||||
#define BUF_SIR_CODE_L2 (IRQ_SIR_CODE_L2 * 4)
|
||||
#define BUF_CNT_INT_00 (FIQ_CNT_INT_00 * 4)
|
||||
#define BUF_CNT_INT_KEY (FIQ_CNT_INT_KEY * 4)
|
||||
#define BUF_CNT_INT_MDM (FIQ_CNT_INT_MDM * 4)
|
||||
#define BUF_CNT_INT_03 (FIQ_CNT_INT_03 * 4)
|
||||
#define BUF_CNT_INT_HSW (FIQ_CNT_INT_HSW * 4)
|
||||
#define BUF_CNT_INT_05 (FIQ_CNT_INT_05 * 4)
|
||||
#define BUF_CNT_INT_06 (FIQ_CNT_INT_06 * 4)
|
||||
#define BUF_CNT_INT_07 (FIQ_CNT_INT_07 * 4)
|
||||
#define BUF_CNT_INT_08 (FIQ_CNT_INT_08 * 4)
|
||||
#define BUF_CNT_INT_09 (FIQ_CNT_INT_09 * 4)
|
||||
#define BUF_CNT_INT_10 (FIQ_CNT_INT_10 * 4)
|
||||
#define BUF_CNT_INT_11 (FIQ_CNT_INT_11 * 4)
|
||||
#define BUF_CNT_INT_12 (FIQ_CNT_INT_12 * 4)
|
||||
#define BUF_CNT_INT_13 (FIQ_CNT_INT_13 * 4)
|
||||
#define BUF_CNT_INT_14 (FIQ_CNT_INT_14 * 4)
|
||||
#define BUF_CNT_INT_15 (FIQ_CNT_INT_15 * 4)
|
||||
#define BUF_CIRC_BUFF (FIQ_CIRC_BUFF * 4)
|
||||
|
||||
|
||||
/*
|
||||
* Register useage
|
||||
* r8 - temporary
|
||||
* r9 - the driver buffer
|
||||
* r10 - temporary
|
||||
* r11 - interrupts mask
|
||||
* r12 - base pointers
|
||||
* r13 - interrupts status
|
||||
*/
|
||||
|
||||
.text
|
||||
|
||||
.global qwerty_fiqin_end
|
||||
|
||||
ENTRY(qwerty_fiqin_start)
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@ FIQ intrrupt handler
|
||||
ldr r12, omap_ih1_base @ set pointer to level1 handler
|
||||
|
||||
ldr r11, [r12, #IRQ_MIR_REG_OFFSET] @ fetch interrupts mask
|
||||
|
||||
ldr r13, [r12, #IRQ_ITR_REG_OFFSET] @ fetch interrupts status
|
||||
bics r13, r13, r11 @ clear masked - any left?
|
||||
beq exit @ none - spurious FIQ? exit
|
||||
|
||||
ldr r10, [r12, #IRQ_SIR_FIQ_REG_OFFSET] @ get requested interrupt number
|
||||
|
||||
mov r8, #2 @ reset FIQ agreement
|
||||
str r8, [r12, #IRQ_CONTROL_REG_OFFSET]
|
||||
|
||||
cmp r10, #INT_GPIO_BANK1 @ is it GPIO bank interrupt?
|
||||
beq gpio @ yes - process it
|
||||
|
||||
mov r8, #1
|
||||
orr r8, r11, r8, lsl r10 @ mask spurious interrupt
|
||||
str r8, [r12, #IRQ_MIR_REG_OFFSET]
|
||||
exit:
|
||||
subs pc, lr, #4 @ return from FIQ
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
|
||||
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
gpio: @ GPIO bank interrupt handler
|
||||
ldr r12, omap1510_gpio_base @ set base pointer to GPIO bank
|
||||
|
||||
ldr r11, [r12, #OMAP1510_GPIO_INT_MASK] @ fetch GPIO interrupts mask
|
||||
restart:
|
||||
ldr r13, [r12, #OMAP1510_GPIO_INT_STATUS] @ fetch status bits
|
||||
bics r13, r13, r11 @ clear masked - any left?
|
||||
beq exit @ no - spurious interrupt? exit
|
||||
|
||||
orr r11, r11, r13 @ mask all requested interrupts
|
||||
str r11, [r12, #OMAP1510_GPIO_INT_MASK]
|
||||
|
||||
ands r10, r13, #KEYBRD_CLK_MASK @ extract keyboard status - set?
|
||||
beq hksw @ no - try next source
|
||||
|
||||
|
||||
@@@@@@@@@@@@@@@@@@@@@@
|
||||
@ Keyboard clock FIQ mode interrupt handler
|
||||
@ r10 now contains KEYBRD_CLK_MASK, use it
|
||||
str r10, [r12, #OMAP1510_GPIO_INT_STATUS] @ ack the interrupt
|
||||
bic r11, r11, r10 @ unmask it
|
||||
str r11, [r12, #OMAP1510_GPIO_INT_MASK]
|
||||
|
||||
@ Process keyboard data
|
||||
ldr r8, [r12, #OMAP1510_GPIO_DATA_INPUT] @ fetch GPIO input
|
||||
|
||||
ldr r10, [r9, #BUF_STATE] @ fetch kbd interface state
|
||||
cmp r10, #0 @ are we expecting start bit?
|
||||
bne data @ no - go to data processing
|
||||
|
||||
ands r8, r8, #KEYBRD_DATA_MASK @ check start bit - detected?
|
||||
beq hksw @ no - try next source
|
||||
|
||||
@ r8 contains KEYBRD_DATA_MASK, use it
|
||||
str r8, [r9, #BUF_STATE] @ enter data processing state
|
||||
@ r10 already contains 0, reuse it
|
||||
str r10, [r9, #BUF_KEY] @ clear keycode
|
||||
mov r10, #2 @ reset input bit mask
|
||||
str r10, [r9, #BUF_MASK]
|
||||
|
||||
@ Mask other GPIO line interrupts till key done
|
||||
str r11, [r9, #BUF_GPIO_INT_MASK] @ save mask for later restore
|
||||
mvn r11, #KEYBRD_CLK_MASK @ prepare all except kbd mask
|
||||
str r11, [r12, #OMAP1510_GPIO_INT_MASK] @ store into the mask register
|
||||
|
||||
b restart @ restart
|
||||
|
||||
data: ldr r10, [r9, #BUF_MASK] @ fetch current input bit mask
|
||||
|
||||
@ r8 still contains GPIO input bits
|
||||
ands r8, r8, #KEYBRD_DATA_MASK @ is keyboard data line low?
|
||||
ldreq r8, [r9, #BUF_KEY] @ yes - fetch collected so far,
|
||||
orreq r8, r8, r10 @ set 1 at current mask position
|
||||
streq r8, [r9, #BUF_KEY] @ and save back
|
||||
|
||||
mov r10, r10, lsl #1 @ shift mask left
|
||||
bics r10, r10, #0x800 @ have we got all the bits?
|
||||
strne r10, [r9, #BUF_MASK] @ not yet - store the mask
|
||||
bne restart @ and restart
|
||||
|
||||
@ r10 already contains 0, reuse it
|
||||
str r10, [r9, #BUF_STATE] @ reset state to start
|
||||
|
||||
@ Key done - restore interrupt mask
|
||||
ldr r10, [r9, #BUF_GPIO_INT_MASK] @ fetch saved mask
|
||||
and r11, r11, r10 @ unmask all saved as unmasked
|
||||
str r11, [r12, #OMAP1510_GPIO_INT_MASK] @ restore into the mask register
|
||||
|
||||
@ Try appending the keycode to the circular buffer
|
||||
ldr r10, [r9, #BUF_KEYS_CNT] @ get saved keystrokes count
|
||||
ldr r8, [r9, #BUF_BUF_LEN] @ get buffer size
|
||||
cmp r10, r8 @ is buffer full?
|
||||
beq hksw @ yes - key lost, next source
|
||||
|
||||
add r10, r10, #1 @ incremet keystrokes counter
|
||||
str r10, [r9, #BUF_KEYS_CNT]
|
||||
|
||||
ldr r10, [r9, #BUF_TAIL_OFFSET] @ get buffer tail offset
|
||||
@ r8 already contains buffer size
|
||||
cmp r10, r8 @ end of buffer?
|
||||
moveq r10, #0 @ yes - rewind to buffer start
|
||||
|
||||
ldr r12, [r9, #BUF_BUFFER_START] @ get buffer start address
|
||||
add r12, r12, r10, LSL #2 @ calculate buffer tail address
|
||||
ldr r8, [r9, #BUF_KEY] @ get last keycode
|
||||
str r8, [r12] @ append it to the buffer tail
|
||||
|
||||
add r10, r10, #1 @ increment buffer tail offset
|
||||
str r10, [r9, #BUF_TAIL_OFFSET]
|
||||
|
||||
ldr r10, [r9, #BUF_CNT_INT_KEY] @ increment interrupts counter
|
||||
add r10, r10, #1
|
||||
str r10, [r9, #BUF_CNT_INT_KEY]
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
|
||||
|
||||
hksw: @Is hook switch interrupt requested?
|
||||
tst r13, #HOOK_SWITCH_MASK @ is hook switch status bit set?
|
||||
beq mdm @ no - try next source
|
||||
|
||||
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@ Hook switch interrupt FIQ mode simple handler
|
||||
|
||||
@ Don't toggle active edge, the switch always bounces
|
||||
|
||||
@ Increment hook switch interrupt counter
|
||||
ldr r10, [r9, #BUF_CNT_INT_HSW]
|
||||
add r10, r10, #1
|
||||
str r10, [r9, #BUF_CNT_INT_HSW]
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
|
||||
|
||||
mdm: @Is it a modem interrupt?
|
||||
tst r13, #MODEM_IRQ_MASK @ is modem status bit set?
|
||||
beq irq @ no - check for next interrupt
|
||||
|
||||
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@ Modem FIQ mode interrupt handler stub
|
||||
|
||||
@ Increment modem interrupt counter
|
||||
ldr r10, [r9, #BUF_CNT_INT_MDM]
|
||||
add r10, r10, #1
|
||||
str r10, [r9, #BUF_CNT_INT_MDM]
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
|
||||
|
||||
irq: @ Place deferred_fiq interrupt request
|
||||
ldr r12, deferred_fiq_ih_base @ set pointer to IRQ handler
|
||||
mov r10, #DEFERRED_FIQ_MASK @ set deferred_fiq bit
|
||||
str r10, [r12, #IRQ_ISR_REG_OFFSET] @ place it in the ISR register
|
||||
|
||||
ldr r12, omap1510_gpio_base @ set pointer back to GPIO bank
|
||||
b restart @ check for next GPIO interrupt
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
|
||||
|
||||
/*
|
||||
* Virtual addresses for IO
|
||||
*/
|
||||
omap_ih1_base:
|
||||
.word OMAP1_IO_ADDRESS(OMAP_IH1_BASE)
|
||||
deferred_fiq_ih_base:
|
||||
.word OMAP1_IO_ADDRESS(DEFERRED_FIQ_IH_BASE)
|
||||
omap1510_gpio_base:
|
||||
.word OMAP1_IO_ADDRESS(OMAP1510_GPIO_BASE)
|
||||
qwerty_fiqin_end:
|
||||
|
||||
/*
|
||||
* Check the size of the FIQ,
|
||||
* it cannot go beyond 0xffff0200, and is copied to 0xffff001c
|
||||
*/
|
||||
.if (qwerty_fiqin_end - qwerty_fiqin_start) > (0x200 - 0x1c)
|
||||
.err
|
||||
.endif
|
155
arch/arm/mach-omap1/ams-delta-fiq.c
Normal file
155
arch/arm/mach-omap1/ams-delta-fiq.c
Normal file
@ -0,0 +1,155 @@
|
||||
/*
|
||||
* Amstrad E3 FIQ handling
|
||||
*
|
||||
* Copyright (C) 2009 Janusz Krzysztofik
|
||||
* Copyright (c) 2006 Matt Callow
|
||||
* Copyright (c) 2004 Amstrad Plc
|
||||
* Copyright (C) 2001 RidgeRun, Inc.
|
||||
*
|
||||
* Parts of this code are taken from linux/arch/arm/mach-omap/irq.c
|
||||
* in the MontaVista 2.4 kernel (and the Amstrad changes therein)
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <plat/board-ams-delta.h>
|
||||
|
||||
#include <asm/fiq.h>
|
||||
#include <mach/ams-delta-fiq.h>
|
||||
|
||||
static struct fiq_handler fh = {
|
||||
.name = "ams-delta-fiq"
|
||||
};
|
||||
|
||||
/*
|
||||
* This buffer is shared between FIQ and IRQ contexts.
|
||||
* The FIQ and IRQ isrs can both read and write it.
|
||||
* It is structured as a header section several 32bit slots,
|
||||
* followed by the circular buffer where the FIQ isr stores
|
||||
* keystrokes received from the qwerty keyboard.
|
||||
* See ams-delta-fiq.h for details of offsets.
|
||||
*/
|
||||
unsigned int fiq_buffer[1024];
|
||||
EXPORT_SYMBOL(fiq_buffer);
|
||||
|
||||
static unsigned int irq_counter[16];
|
||||
|
||||
static irqreturn_t deferred_fiq(int irq, void *dev_id)
|
||||
{
|
||||
struct irq_desc *irq_desc;
|
||||
struct irq_chip *irq_chip = NULL;
|
||||
int gpio, irq_num, fiq_count;
|
||||
|
||||
irq_desc = irq_to_desc(IH_GPIO_BASE);
|
||||
if (irq_desc)
|
||||
irq_chip = irq_desc->chip;
|
||||
|
||||
/*
|
||||
* For each handled GPIO interrupt, keep calling its interrupt handler
|
||||
* until the IRQ counter catches the FIQ incremented interrupt counter.
|
||||
*/
|
||||
for (gpio = AMS_DELTA_GPIO_PIN_KEYBRD_CLK;
|
||||
gpio <= AMS_DELTA_GPIO_PIN_HOOK_SWITCH; gpio++) {
|
||||
irq_num = gpio_to_irq(gpio);
|
||||
fiq_count = fiq_buffer[FIQ_CNT_INT_00 + gpio];
|
||||
|
||||
while (irq_counter[gpio] < fiq_count) {
|
||||
if (gpio != AMS_DELTA_GPIO_PIN_KEYBRD_CLK) {
|
||||
/*
|
||||
* It looks like handle_edge_irq() that
|
||||
* OMAP GPIO edge interrupts default to,
|
||||
* expects interrupt already unmasked.
|
||||
*/
|
||||
if (irq_chip && irq_chip->unmask)
|
||||
irq_chip->unmask(irq_num);
|
||||
}
|
||||
generic_handle_irq(irq_num);
|
||||
|
||||
irq_counter[gpio]++;
|
||||
}
|
||||
}
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
void __init ams_delta_init_fiq(void)
|
||||
{
|
||||
void *fiqhandler_start;
|
||||
unsigned int fiqhandler_length;
|
||||
struct pt_regs FIQ_regs;
|
||||
unsigned long val, offset;
|
||||
int i, retval;
|
||||
|
||||
fiqhandler_start = &qwerty_fiqin_start;
|
||||
fiqhandler_length = &qwerty_fiqin_end - &qwerty_fiqin_start;
|
||||
pr_info("Installing fiq handler from %p, length 0x%x\n",
|
||||
fiqhandler_start, fiqhandler_length);
|
||||
|
||||
retval = claim_fiq(&fh);
|
||||
if (retval) {
|
||||
pr_err("ams_delta_init_fiq(): couldn't claim FIQ, ret=%d\n",
|
||||
retval);
|
||||
return;
|
||||
}
|
||||
|
||||
retval = request_irq(INT_DEFERRED_FIQ, deferred_fiq,
|
||||
IRQ_TYPE_EDGE_RISING, "deferred_fiq", 0);
|
||||
if (retval < 0) {
|
||||
pr_err("Failed to get deferred_fiq IRQ, ret=%d\n", retval);
|
||||
release_fiq(&fh);
|
||||
return;
|
||||
}
|
||||
/*
|
||||
* Since no set_type() method is provided by OMAP irq chip,
|
||||
* switch to edge triggered interrupt type manually.
|
||||
*/
|
||||
offset = IRQ_ILR0_REG_OFFSET + INT_DEFERRED_FIQ * 0x4;
|
||||
val = omap_readl(DEFERRED_FIQ_IH_BASE + offset) & ~(1 << 1);
|
||||
omap_writel(val, DEFERRED_FIQ_IH_BASE + offset);
|
||||
|
||||
set_fiq_handler(fiqhandler_start, fiqhandler_length);
|
||||
|
||||
/*
|
||||
* Initialise the buffer which is shared
|
||||
* between FIQ mode and IRQ mode
|
||||
*/
|
||||
fiq_buffer[FIQ_GPIO_INT_MASK] = 0;
|
||||
fiq_buffer[FIQ_MASK] = 0;
|
||||
fiq_buffer[FIQ_STATE] = 0;
|
||||
fiq_buffer[FIQ_KEY] = 0;
|
||||
fiq_buffer[FIQ_KEYS_CNT] = 0;
|
||||
fiq_buffer[FIQ_KEYS_HICNT] = 0;
|
||||
fiq_buffer[FIQ_TAIL_OFFSET] = 0;
|
||||
fiq_buffer[FIQ_HEAD_OFFSET] = 0;
|
||||
fiq_buffer[FIQ_BUF_LEN] = 256;
|
||||
fiq_buffer[FIQ_MISSED_KEYS] = 0;
|
||||
fiq_buffer[FIQ_BUFFER_START] =
|
||||
(unsigned int) &fiq_buffer[FIQ_CIRC_BUFF];
|
||||
|
||||
for (i = FIQ_CNT_INT_00; i <= FIQ_CNT_INT_15; i++)
|
||||
fiq_buffer[i] = 0;
|
||||
|
||||
/*
|
||||
* FIQ mode r9 always points to the fiq_buffer, becauses the FIQ isr
|
||||
* will run in an unpredictable context. The fiq_buffer is the FIQ isr's
|
||||
* only means of communication with the IRQ level and other kernel
|
||||
* context code.
|
||||
*/
|
||||
FIQ_regs.ARM_r9 = (unsigned int)fiq_buffer;
|
||||
set_fiq_regs(&FIQ_regs);
|
||||
|
||||
pr_info("request_fiq(): fiq_buffer = %p\n", fiq_buffer);
|
||||
|
||||
/*
|
||||
* Redirect GPIO interrupts to FIQ
|
||||
*/
|
||||
offset = IRQ_ILR0_REG_OFFSET + INT_GPIO_BANK1 * 0x4;
|
||||
val = omap_readl(OMAP_IH1_BASE + offset) | 1;
|
||||
omap_writel(val, OMAP_IH1_BASE + offset);
|
||||
}
|
@ -33,6 +33,8 @@
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
|
||||
#include <mach/ams-delta-fiq.h>
|
||||
|
||||
static u8 ams_delta_latch1_reg;
|
||||
static u16 ams_delta_latch2_reg;
|
||||
|
||||
@ -236,6 +238,10 @@ static void __init ams_delta_init(void)
|
||||
omap_usb_init(&ams_delta_usb_config);
|
||||
platform_add_devices(ams_delta_devices, ARRAY_SIZE(ams_delta_devices));
|
||||
|
||||
#ifdef CONFIG_AMS_DELTA_FIQ
|
||||
ams_delta_init_fiq();
|
||||
#endif
|
||||
|
||||
omap_writew(omap_readw(ARM_RSTCT1) | 0x0004, ARM_RSTCT1);
|
||||
}
|
||||
|
||||
@ -263,8 +269,18 @@ static struct platform_device ams_delta_modem_device = {
|
||||
|
||||
static int __init ams_delta_modem_init(void)
|
||||
{
|
||||
int err;
|
||||
|
||||
omap_cfg_reg(M14_1510_GPIO2);
|
||||
ams_delta_modem_ports[0].irq = gpio_to_irq(2);
|
||||
ams_delta_modem_ports[0].irq =
|
||||
gpio_to_irq(AMS_DELTA_GPIO_PIN_MODEM_IRQ);
|
||||
|
||||
err = gpio_request(AMS_DELTA_GPIO_PIN_MODEM_IRQ, "modem");
|
||||
if (err) {
|
||||
pr_err("Couldn't request gpio pin for modem\n");
|
||||
return err;
|
||||
}
|
||||
gpio_direction_input(AMS_DELTA_GPIO_PIN_MODEM_IRQ);
|
||||
|
||||
ams_delta_latch2_write(
|
||||
AMS_DELTA_LATCH2_MODEM_NRESET | AMS_DELTA_LATCH2_MODEM_CODEC,
|
||||
|
@ -578,7 +578,7 @@ int omap1_clk_set_rate(struct clk *clk, unsigned long rate)
|
||||
|
||||
#ifdef CONFIG_OMAP_RESET_CLOCKS
|
||||
|
||||
void __init omap1_clk_disable_unused(struct clk *clk)
|
||||
void omap1_clk_disable_unused(struct clk *clk)
|
||||
{
|
||||
__u32 regval32;
|
||||
|
||||
|
@ -39,7 +39,7 @@ extern long omap1_clk_round_rate_ckctl_arm(struct clk *clk, unsigned long rate);
|
||||
extern unsigned long omap1_watchdog_recalc(struct clk *clk);
|
||||
|
||||
#ifdef CONFIG_OMAP_RESET_CLOCKS
|
||||
extern void __init omap1_clk_disable_unused(struct clk *clk);
|
||||
extern void omap1_clk_disable_unused(struct clk *clk);
|
||||
#else
|
||||
#define omap1_clk_disable_unused NULL
|
||||
#endif
|
||||
|
79
arch/arm/mach-omap1/include/mach/ams-delta-fiq.h
Normal file
79
arch/arm/mach-omap1/include/mach/ams-delta-fiq.h
Normal file
@ -0,0 +1,79 @@
|
||||
/*
|
||||
* arch/arm/mach-omap1/include/ams-delta-fiq.h
|
||||
*
|
||||
* Taken from the original Amstrad modifications to fiq.h
|
||||
*
|
||||
* Copyright (c) 2004 Amstrad Plc
|
||||
* Copyright (c) 2006 Matt Callow
|
||||
* Copyright (c) 2010 Janusz Krzysztofik
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
#ifndef __AMS_DELTA_FIQ_H
|
||||
#define __AMS_DELTA_FIQ_H
|
||||
|
||||
#include <plat/irqs.h>
|
||||
|
||||
/*
|
||||
* Interrupt number used for passing control from FIQ to IRQ.
|
||||
* IRQ12, described as reserved, has been selected.
|
||||
*/
|
||||
#define INT_DEFERRED_FIQ INT_1510_RES12
|
||||
/*
|
||||
* Base address of an interrupt handler that the INT_DEFERRED_FIQ belongs to.
|
||||
*/
|
||||
#if (INT_DEFERRED_FIQ < IH2_BASE)
|
||||
#define DEFERRED_FIQ_IH_BASE OMAP_IH1_BASE
|
||||
#else
|
||||
#define DEFERRED_FIQ_IH_BASE OMAP_IH2_BASE
|
||||
#endif
|
||||
|
||||
/*
|
||||
* These are the offsets from the begining of the fiq_buffer. They are put here
|
||||
* since the buffer and header need to be accessed by drivers servicing devices
|
||||
* which generate GPIO interrupts - e.g. keyboard, modem, hook switch.
|
||||
*/
|
||||
#define FIQ_MASK 0
|
||||
#define FIQ_STATE 1
|
||||
#define FIQ_KEYS_CNT 2
|
||||
#define FIQ_TAIL_OFFSET 3
|
||||
#define FIQ_HEAD_OFFSET 4
|
||||
#define FIQ_BUF_LEN 5
|
||||
#define FIQ_KEY 6
|
||||
#define FIQ_MISSED_KEYS 7
|
||||
#define FIQ_BUFFER_START 8
|
||||
#define FIQ_GPIO_INT_MASK 9
|
||||
#define FIQ_KEYS_HICNT 10
|
||||
#define FIQ_IRQ_PEND 11
|
||||
#define FIQ_SIR_CODE_L1 12
|
||||
#define IRQ_SIR_CODE_L2 13
|
||||
|
||||
#define FIQ_CNT_INT_00 14
|
||||
#define FIQ_CNT_INT_KEY 15
|
||||
#define FIQ_CNT_INT_MDM 16
|
||||
#define FIQ_CNT_INT_03 17
|
||||
#define FIQ_CNT_INT_HSW 18
|
||||
#define FIQ_CNT_INT_05 19
|
||||
#define FIQ_CNT_INT_06 20
|
||||
#define FIQ_CNT_INT_07 21
|
||||
#define FIQ_CNT_INT_08 22
|
||||
#define FIQ_CNT_INT_09 23
|
||||
#define FIQ_CNT_INT_10 24
|
||||
#define FIQ_CNT_INT_11 25
|
||||
#define FIQ_CNT_INT_12 26
|
||||
#define FIQ_CNT_INT_13 27
|
||||
#define FIQ_CNT_INT_14 28
|
||||
#define FIQ_CNT_INT_15 29
|
||||
|
||||
#define FIQ_CIRC_BUFF 30 /*Start of circular buffer */
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
extern unsigned int fiq_buffer[];
|
||||
extern unsigned char qwerty_fiqin_start, qwerty_fiqin_end;
|
||||
|
||||
extern void __init ams_delta_init_fiq(void);
|
||||
#endif
|
||||
|
||||
#endif
|
@ -13,6 +13,8 @@
|
||||
|
||||
#include <linux/serial_reg.h>
|
||||
|
||||
#include <asm/memory.h>
|
||||
|
||||
#include <plat/serial.h>
|
||||
|
||||
.pushsection .data
|
||||
@ -37,23 +39,12 @@ omap_uart_virt: .word 0x0
|
||||
cmp \rx, #0 @ is port configured?
|
||||
bne 99f @ already configured
|
||||
|
||||
/* Check 7XX UART1 scratchpad register for uart to use */
|
||||
/* Check the debug UART configuration set in uncompress.h */
|
||||
mrc p15, 0, \rx, c1, c0
|
||||
tst \rx, #1 @ MMU enabled?
|
||||
moveq \rx, #0xff000000 @ physical base address
|
||||
movne \rx, #0xfe000000 @ virtual base
|
||||
orr \rx, \rx, #0x00fb0000 @ OMAP1UART1
|
||||
ldrb \rx, [\rx, #(UART_SCR << OMAP7XX_PORT_SHIFT)]
|
||||
cmp \rx, #0 @ anything in 7XX scratchpad?
|
||||
bne 10f @ found 7XX uart
|
||||
|
||||
/* Check 15xx/16xx UART1 scratchpad register for uart to use */
|
||||
mrc p15, 0, \rx, c1, c0
|
||||
tst \rx, #1 @ MMU enabled?
|
||||
moveq \rx, #0xff000000 @ physical base address
|
||||
movne \rx, #0xfe000000 @ virtual base
|
||||
orr \rx, \rx, #0x00fb0000 @ OMAP1UART1
|
||||
ldrb \rx, [\rx, #(UART_SCR << OMAP_PORT_SHIFT)]
|
||||
ldreq \rx, =OMAP_UART_INFO
|
||||
ldrne \rx, =__phys_to_virt(OMAP_UART_INFO)
|
||||
ldr \rx, [\rx, #0]
|
||||
|
||||
/* Select the UART to use based on the UART1 scratchpad value */
|
||||
10: cmp \rx, #0 @ no port configured?
|
||||
|
@ -10,6 +10,7 @@ config ARCH_OMAP2420
|
||||
config ARCH_OMAP2430
|
||||
bool "OMAP2430 support"
|
||||
depends on ARCH_OMAP2
|
||||
select ARCH_OMAP_OTG
|
||||
|
||||
config ARCH_OMAP3430
|
||||
bool "OMAP3430 support"
|
||||
@ -141,6 +142,12 @@ config MACH_IGEP0020
|
||||
depends on ARCH_OMAP3
|
||||
select OMAP_PACKAGE_CBB
|
||||
|
||||
config MACH_SBC3530
|
||||
bool "OMAP3 SBC STALKER board"
|
||||
depends on ARCH_OMAP3
|
||||
select OMAP_PACKAGE_CUS
|
||||
select OMAP_MUX
|
||||
|
||||
config MACH_OMAP_3630SDP
|
||||
bool "OMAP3630 SDP board"
|
||||
depends on ARCH_OMAP3
|
||||
|
@ -22,7 +22,7 @@ obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o
|
||||
# SMP support ONLY available for OMAP4
|
||||
obj-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o
|
||||
obj-$(CONFIG_LOCAL_TIMERS) += timer-mpu.o
|
||||
obj-$(CONFIG_ARCH_OMAP4) += omap44xx-smc.o
|
||||
obj-$(CONFIG_ARCH_OMAP4) += omap44xx-smc.o omap4-common.o
|
||||
|
||||
AFLAGS_omap44xx-smc.o :=-Wa,-march=armv7-a
|
||||
|
||||
@ -89,10 +89,7 @@ obj-$(CONFIG_OMAP3_EMU) += emu.o
|
||||
obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox_mach.o
|
||||
mailbox_mach-objs := mailbox.o
|
||||
|
||||
iommu-y += iommu2.o
|
||||
iommu-$(CONFIG_ARCH_OMAP3) += omap3-iommu.o
|
||||
|
||||
obj-$(CONFIG_OMAP_IOMMU) += $(iommu-y)
|
||||
obj-$(CONFIG_OMAP_IOMMU) := iommu2.o omap-iommu.o
|
||||
|
||||
i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o
|
||||
obj-y += $(i2c-omap-m) $(i2c-omap-y)
|
||||
@ -140,10 +137,13 @@ obj-$(CONFIG_MACH_IGEP0020) += board-igep0020.o \
|
||||
hsmmc.o
|
||||
obj-$(CONFIG_MACH_OMAP3_TOUCHBOOK) += board-omap3touchbook.o \
|
||||
hsmmc.o
|
||||
obj-$(CONFIG_MACH_OMAP_4430SDP) += board-4430sdp.o
|
||||
obj-$(CONFIG_MACH_OMAP_4430SDP) += board-4430sdp.o \
|
||||
hsmmc.o
|
||||
|
||||
obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o
|
||||
|
||||
obj-$(CONFIG_MACH_SBC3530) += board-omap3stalker.o \
|
||||
hsmmc.o
|
||||
# Platform specific device init code
|
||||
obj-y += usb-musb.o
|
||||
obj-$(CONFIG_MACH_OMAP2_TUSB6010) += usb-tusb6010.o
|
||||
|
@ -174,9 +174,18 @@ static struct i2c_board_info __initdata sdp2430_i2c_boardinfo[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct i2c_board_info __initdata sdp2430_i2c1_boardinfo[] = {
|
||||
{
|
||||
I2C_BOARD_INFO("isp1301_omap", 0x2D),
|
||||
.flags = I2C_CLIENT_WAKE,
|
||||
.irq = OMAP_GPIO_IRQ(78),
|
||||
},
|
||||
};
|
||||
|
||||
static int __init omap2430_i2c_init(void)
|
||||
{
|
||||
omap_register_i2c_bus(1, 400, NULL, 0);
|
||||
omap_register_i2c_bus(1, 100, sdp2430_i2c1_boardinfo,
|
||||
ARRAY_SIZE(sdp2430_i2c1_boardinfo));
|
||||
omap_register_i2c_bus(2, 2600, sdp2430_i2c_boardinfo,
|
||||
ARRAY_SIZE(sdp2430_i2c_boardinfo));
|
||||
return 0;
|
||||
@ -198,6 +207,15 @@ static struct omap_musb_board_data musb_board_data = {
|
||||
.mode = MUSB_OTG,
|
||||
.power = 100,
|
||||
};
|
||||
static struct omap_usb_config sdp2430_usb_config __initdata = {
|
||||
.otg = 1,
|
||||
#ifdef CONFIG_USB_GADGET_OMAP
|
||||
.hmc_mode = 0x0,
|
||||
#elif defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
|
||||
.hmc_mode = 0x1,
|
||||
#endif
|
||||
.pins[0] = 3,
|
||||
};
|
||||
|
||||
static void __init omap_2430sdp_init(void)
|
||||
{
|
||||
@ -208,6 +226,7 @@ static void __init omap_2430sdp_init(void)
|
||||
platform_add_devices(sdp2430_devices, ARRAY_SIZE(sdp2430_devices));
|
||||
omap_serial_init();
|
||||
omap2_hsmmc_init(mmc);
|
||||
omap_usb_init(&sdp2430_usb_config);
|
||||
usb_musb_init(&musb_board_data);
|
||||
board_smc91x_init();
|
||||
|
||||
|
@ -150,6 +150,7 @@ static int ads7846_get_pendown_state(void)
|
||||
static struct ads7846_platform_data tsc2046_config __initdata = {
|
||||
.get_pendown_state = ads7846_get_pendown_state,
|
||||
.keep_vref_on = 1,
|
||||
.wakeup = true,
|
||||
};
|
||||
|
||||
|
||||
|
@ -18,8 +18,12 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/usb/otg.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/omap4-common.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
@ -29,8 +33,77 @@
|
||||
#include <plat/control.h>
|
||||
#include <plat/timer-gp.h>
|
||||
#include <plat/usb.h>
|
||||
#include <asm/hardware/gic.h>
|
||||
#include <asm/hardware/cache-l2x0.h>
|
||||
#include <plat/mmc.h>
|
||||
#include "hsmmc.h"
|
||||
|
||||
#define ETH_KS8851_IRQ 34
|
||||
#define ETH_KS8851_POWER_ON 48
|
||||
#define ETH_KS8851_QUART 138
|
||||
|
||||
static struct spi_board_info sdp4430_spi_board_info[] __initdata = {
|
||||
{
|
||||
.modalias = "ks8851",
|
||||
.bus_num = 1,
|
||||
.chip_select = 0,
|
||||
.max_speed_hz = 24000000,
|
||||
.irq = ETH_KS8851_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static int omap_ethernet_init(void)
|
||||
{
|
||||
int status;
|
||||
|
||||
/* Request of GPIO lines */
|
||||
|
||||
status = gpio_request(ETH_KS8851_POWER_ON, "eth_power");
|
||||
if (status) {
|
||||
pr_err("Cannot request GPIO %d\n", ETH_KS8851_POWER_ON);
|
||||
return status;
|
||||
}
|
||||
|
||||
status = gpio_request(ETH_KS8851_QUART, "quart");
|
||||
if (status) {
|
||||
pr_err("Cannot request GPIO %d\n", ETH_KS8851_QUART);
|
||||
goto error1;
|
||||
}
|
||||
|
||||
status = gpio_request(ETH_KS8851_IRQ, "eth_irq");
|
||||
if (status) {
|
||||
pr_err("Cannot request GPIO %d\n", ETH_KS8851_IRQ);
|
||||
goto error2;
|
||||
}
|
||||
|
||||
/* Configuration of requested GPIO lines */
|
||||
|
||||
status = gpio_direction_output(ETH_KS8851_POWER_ON, 1);
|
||||
if (status) {
|
||||
pr_err("Cannot set output GPIO %d\n", ETH_KS8851_IRQ);
|
||||
goto error3;
|
||||
}
|
||||
|
||||
status = gpio_direction_output(ETH_KS8851_QUART, 1);
|
||||
if (status) {
|
||||
pr_err("Cannot set output GPIO %d\n", ETH_KS8851_QUART);
|
||||
goto error3;
|
||||
}
|
||||
|
||||
status = gpio_direction_input(ETH_KS8851_IRQ);
|
||||
if (status) {
|
||||
pr_err("Cannot set input GPIO %d\n", ETH_KS8851_IRQ);
|
||||
goto error3;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
error3:
|
||||
gpio_free(ETH_KS8851_IRQ);
|
||||
error2:
|
||||
gpio_free(ETH_KS8851_QUART);
|
||||
error1:
|
||||
gpio_free(ETH_KS8851_POWER_ON);
|
||||
return status;
|
||||
}
|
||||
|
||||
static struct platform_device sdp4430_lcd_device = {
|
||||
.name = "sdp4430_lcd",
|
||||
@ -49,50 +122,6 @@ static struct omap_board_config_kernel sdp4430_config[] __initdata = {
|
||||
{ OMAP_TAG_LCD, &sdp4430_lcd_config },
|
||||
};
|
||||
|
||||
#ifdef CONFIG_CACHE_L2X0
|
||||
static int __init omap_l2_cache_init(void)
|
||||
{
|
||||
extern void omap_smc1(u32 fn, u32 arg);
|
||||
void __iomem *l2cache_base;
|
||||
|
||||
/* To avoid code running on other OMAPs in
|
||||
* multi-omap builds
|
||||
*/
|
||||
if (!cpu_is_omap44xx())
|
||||
return -ENODEV;
|
||||
|
||||
/* Static mapping, never released */
|
||||
l2cache_base = ioremap(OMAP44XX_L2CACHE_BASE, SZ_4K);
|
||||
BUG_ON(!l2cache_base);
|
||||
|
||||
/* Enable PL310 L2 Cache controller */
|
||||
omap_smc1(0x102, 0x1);
|
||||
|
||||
/* 32KB way size, 16-way associativity,
|
||||
* parity disabled
|
||||
*/
|
||||
l2x0_init(l2cache_base, 0x0e050000, 0xc0000fff);
|
||||
|
||||
return 0;
|
||||
}
|
||||
early_initcall(omap_l2_cache_init);
|
||||
#endif
|
||||
|
||||
static void __init gic_init_irq(void)
|
||||
{
|
||||
void __iomem *base;
|
||||
|
||||
/* Static mapping, never released */
|
||||
base = ioremap(OMAP44XX_GIC_DIST_BASE, SZ_4K);
|
||||
BUG_ON(!base);
|
||||
gic_dist_init(0, base, 29);
|
||||
|
||||
/* Static mapping, never released */
|
||||
gic_cpu_base_addr = ioremap(OMAP44XX_GIC_CPU_BASE, SZ_512);
|
||||
BUG_ON(!gic_cpu_base_addr);
|
||||
gic_cpu_init(0, gic_cpu_base_addr);
|
||||
}
|
||||
|
||||
static void __init omap_4430sdp_init_irq(void)
|
||||
{
|
||||
omap_board_config = sdp4430_config;
|
||||
@ -111,15 +140,254 @@ static struct omap_musb_board_data musb_board_data = {
|
||||
.power = 100,
|
||||
};
|
||||
|
||||
static struct omap2_hsmmc_info mmc[] = {
|
||||
{
|
||||
.mmc = 1,
|
||||
.wires = 8,
|
||||
.gpio_wp = -EINVAL,
|
||||
},
|
||||
{
|
||||
.mmc = 2,
|
||||
.wires = 8,
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = -EINVAL,
|
||||
.nonremovable = true,
|
||||
},
|
||||
{} /* Terminator */
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply sdp4430_vmmc_supply[] = {
|
||||
{
|
||||
.supply = "vmmc",
|
||||
.dev_name = "mmci-omap-hs.0",
|
||||
},
|
||||
{
|
||||
.supply = "vmmc",
|
||||
.dev_name = "mmci-omap-hs.1",
|
||||
},
|
||||
};
|
||||
|
||||
static int omap4_twl6030_hsmmc_late_init(struct device *dev)
|
||||
{
|
||||
int ret = 0;
|
||||
struct platform_device *pdev = container_of(dev,
|
||||
struct platform_device, dev);
|
||||
struct omap_mmc_platform_data *pdata = dev->platform_data;
|
||||
|
||||
/* Setting MMC1 Card detect Irq */
|
||||
if (pdev->id == 0)
|
||||
pdata->slots[0].card_detect_irq = TWL6030_IRQ_BASE +
|
||||
MMCDETECT_INTR_OFFSET;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static __init void omap4_twl6030_hsmmc_set_late_init(struct device *dev)
|
||||
{
|
||||
struct omap_mmc_platform_data *pdata = dev->platform_data;
|
||||
|
||||
pdata->init = omap4_twl6030_hsmmc_late_init;
|
||||
}
|
||||
|
||||
static int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers)
|
||||
{
|
||||
struct omap2_hsmmc_info *c;
|
||||
|
||||
omap2_hsmmc_init(controllers);
|
||||
for (c = controllers; c->mmc; c++)
|
||||
omap4_twl6030_hsmmc_set_late_init(c->dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct regulator_init_data sdp4430_vaux1 = {
|
||||
.constraints = {
|
||||
.min_uV = 1000000,
|
||||
.max_uV = 3000000,
|
||||
.apply_uV = true,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
|
||||
| REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
};
|
||||
|
||||
static struct regulator_init_data sdp4430_vaux2 = {
|
||||
.constraints = {
|
||||
.min_uV = 1200000,
|
||||
.max_uV = 2800000,
|
||||
.apply_uV = true,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
|
||||
| REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
};
|
||||
|
||||
static struct regulator_init_data sdp4430_vaux3 = {
|
||||
.constraints = {
|
||||
.min_uV = 1000000,
|
||||
.max_uV = 3000000,
|
||||
.apply_uV = true,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
|
||||
| REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
};
|
||||
|
||||
/* VMMC1 for MMC1 card */
|
||||
static struct regulator_init_data sdp4430_vmmc = {
|
||||
.constraints = {
|
||||
.min_uV = 1200000,
|
||||
.max_uV = 3000000,
|
||||
.apply_uV = true,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
|
||||
| REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = 2,
|
||||
.consumer_supplies = sdp4430_vmmc_supply,
|
||||
};
|
||||
|
||||
static struct regulator_init_data sdp4430_vpp = {
|
||||
.constraints = {
|
||||
.min_uV = 1800000,
|
||||
.max_uV = 2500000,
|
||||
.apply_uV = true,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
|
||||
| REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
};
|
||||
|
||||
static struct regulator_init_data sdp4430_vusim = {
|
||||
.constraints = {
|
||||
.min_uV = 1200000,
|
||||
.max_uV = 2900000,
|
||||
.apply_uV = true,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
|
||||
| REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
};
|
||||
|
||||
static struct regulator_init_data sdp4430_vana = {
|
||||
.constraints = {
|
||||
.min_uV = 2100000,
|
||||
.max_uV = 2100000,
|
||||
.apply_uV = true,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
};
|
||||
|
||||
static struct regulator_init_data sdp4430_vcxio = {
|
||||
.constraints = {
|
||||
.min_uV = 1800000,
|
||||
.max_uV = 1800000,
|
||||
.apply_uV = true,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
};
|
||||
|
||||
static struct regulator_init_data sdp4430_vdac = {
|
||||
.constraints = {
|
||||
.min_uV = 1800000,
|
||||
.max_uV = 1800000,
|
||||
.apply_uV = true,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
};
|
||||
|
||||
static struct regulator_init_data sdp4430_vusb = {
|
||||
.constraints = {
|
||||
.min_uV = 3300000,
|
||||
.max_uV = 3300000,
|
||||
.apply_uV = true,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
};
|
||||
|
||||
static struct twl4030_platform_data sdp4430_twldata = {
|
||||
.irq_base = TWL6030_IRQ_BASE,
|
||||
.irq_end = TWL6030_IRQ_END,
|
||||
|
||||
/* Regulators */
|
||||
.vmmc = &sdp4430_vmmc,
|
||||
.vpp = &sdp4430_vpp,
|
||||
.vusim = &sdp4430_vusim,
|
||||
.vana = &sdp4430_vana,
|
||||
.vcxio = &sdp4430_vcxio,
|
||||
.vdac = &sdp4430_vdac,
|
||||
.vusb = &sdp4430_vusb,
|
||||
.vaux1 = &sdp4430_vaux1,
|
||||
.vaux2 = &sdp4430_vaux2,
|
||||
.vaux3 = &sdp4430_vaux3,
|
||||
};
|
||||
|
||||
static struct i2c_board_info __initdata sdp4430_i2c_boardinfo[] = {
|
||||
{
|
||||
I2C_BOARD_INFO("twl6030", 0x48),
|
||||
.flags = I2C_CLIENT_WAKE,
|
||||
.irq = OMAP44XX_IRQ_SYS_1N,
|
||||
.platform_data = &sdp4430_twldata,
|
||||
},
|
||||
};
|
||||
static int __init omap4_i2c_init(void)
|
||||
{
|
||||
/*
|
||||
* Phoenix Audio IC needs I2C1 to
|
||||
* start with 400 KHz or less
|
||||
*/
|
||||
omap_register_i2c_bus(1, 400, sdp4430_i2c_boardinfo,
|
||||
ARRAY_SIZE(sdp4430_i2c_boardinfo));
|
||||
omap_register_i2c_bus(2, 400, NULL, 0);
|
||||
omap_register_i2c_bus(3, 400, NULL, 0);
|
||||
omap_register_i2c_bus(4, 400, NULL, 0);
|
||||
return 0;
|
||||
}
|
||||
static void __init omap_4430sdp_init(void)
|
||||
{
|
||||
int status;
|
||||
|
||||
omap4_i2c_init();
|
||||
platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices));
|
||||
omap_serial_init();
|
||||
omap4_twl6030_hsmmc_init(mmc);
|
||||
/* OMAP4 SDP uses internal transceiver so register nop transceiver */
|
||||
usb_nop_xceiv_register();
|
||||
/* FIXME: allow multi-omap to boot until musb is updated for omap4 */
|
||||
if (!cpu_is_omap44xx())
|
||||
usb_musb_init(&musb_board_data);
|
||||
|
||||
status = omap_ethernet_init();
|
||||
if (status) {
|
||||
pr_err("Ethernet initialization failed: %d\n", status);
|
||||
} else {
|
||||
sdp4430_spi_board_info[0].irq = gpio_to_irq(ETH_KS8851_IRQ);
|
||||
spi_register_board_info(sdp4430_spi_board_info,
|
||||
ARRAY_SIZE(sdp4430_spi_board_info));
|
||||
}
|
||||
}
|
||||
|
||||
static void __init omap_4430sdp_map_io(void)
|
||||
|
@ -21,6 +21,8 @@
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/i2c/pca953x.h>
|
||||
#include <linux/can/platform/ti_hecc.h>
|
||||
#include <linux/davinci_emac.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/am35xx.h>
|
||||
@ -30,16 +32,111 @@
|
||||
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/control.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/display.h>
|
||||
|
||||
#include "mux.h"
|
||||
|
||||
#define AM35XX_EVM_PHY_MASK (0xF)
|
||||
#define AM35XX_EVM_MDIO_FREQUENCY (1000000)
|
||||
|
||||
static struct emac_platform_data am3517_evm_emac_pdata = {
|
||||
.phy_mask = AM35XX_EVM_PHY_MASK,
|
||||
.mdio_max_freq = AM35XX_EVM_MDIO_FREQUENCY,
|
||||
.rmii_en = 1,
|
||||
};
|
||||
|
||||
static struct resource am3517_emac_resources[] = {
|
||||
{
|
||||
.start = AM35XX_IPSS_EMAC_BASE,
|
||||
.end = AM35XX_IPSS_EMAC_BASE + 0x3FFFF,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
{
|
||||
.start = INT_35XX_EMAC_C0_RXTHRESH_IRQ,
|
||||
.end = INT_35XX_EMAC_C0_RXTHRESH_IRQ,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
{
|
||||
.start = INT_35XX_EMAC_C0_RX_PULSE_IRQ,
|
||||
.end = INT_35XX_EMAC_C0_RX_PULSE_IRQ,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
{
|
||||
.start = INT_35XX_EMAC_C0_TX_PULSE_IRQ,
|
||||
.end = INT_35XX_EMAC_C0_TX_PULSE_IRQ,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
{
|
||||
.start = INT_35XX_EMAC_C0_MISC_PULSE_IRQ,
|
||||
.end = INT_35XX_EMAC_C0_MISC_PULSE_IRQ,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device am3517_emac_device = {
|
||||
.name = "davinci_emac",
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(am3517_emac_resources),
|
||||
.resource = am3517_emac_resources,
|
||||
};
|
||||
|
||||
static void am3517_enable_ethernet_int(void)
|
||||
{
|
||||
u32 regval;
|
||||
|
||||
regval = omap_ctrl_readl(AM35XX_CONTROL_LVL_INTR_CLEAR);
|
||||
regval = (regval | AM35XX_CPGMAC_C0_RX_PULSE_CLR |
|
||||
AM35XX_CPGMAC_C0_TX_PULSE_CLR |
|
||||
AM35XX_CPGMAC_C0_MISC_PULSE_CLR |
|
||||
AM35XX_CPGMAC_C0_RX_THRESH_CLR);
|
||||
omap_ctrl_writel(regval, AM35XX_CONTROL_LVL_INTR_CLEAR);
|
||||
regval = omap_ctrl_readl(AM35XX_CONTROL_LVL_INTR_CLEAR);
|
||||
}
|
||||
|
||||
static void am3517_disable_ethernet_int(void)
|
||||
{
|
||||
u32 regval;
|
||||
|
||||
regval = omap_ctrl_readl(AM35XX_CONTROL_LVL_INTR_CLEAR);
|
||||
regval = (regval | AM35XX_CPGMAC_C0_RX_PULSE_CLR |
|
||||
AM35XX_CPGMAC_C0_TX_PULSE_CLR);
|
||||
omap_ctrl_writel(regval, AM35XX_CONTROL_LVL_INTR_CLEAR);
|
||||
regval = omap_ctrl_readl(AM35XX_CONTROL_LVL_INTR_CLEAR);
|
||||
}
|
||||
|
||||
void am3517_evm_ethernet_init(struct emac_platform_data *pdata)
|
||||
{
|
||||
unsigned int regval;
|
||||
|
||||
pdata->ctrl_reg_offset = AM35XX_EMAC_CNTRL_OFFSET;
|
||||
pdata->ctrl_mod_reg_offset = AM35XX_EMAC_CNTRL_MOD_OFFSET;
|
||||
pdata->ctrl_ram_offset = AM35XX_EMAC_CNTRL_RAM_OFFSET;
|
||||
pdata->mdio_reg_offset = AM35XX_EMAC_MDIO_OFFSET;
|
||||
pdata->ctrl_ram_size = AM35XX_EMAC_CNTRL_RAM_SIZE;
|
||||
pdata->version = EMAC_VERSION_2;
|
||||
pdata->hw_ram_addr = AM35XX_EMAC_HW_RAM_ADDR;
|
||||
pdata->interrupt_enable = am3517_enable_ethernet_int;
|
||||
pdata->interrupt_disable = am3517_disable_ethernet_int;
|
||||
am3517_emac_device.dev.platform_data = pdata;
|
||||
platform_device_register(&am3517_emac_device);
|
||||
|
||||
regval = omap_ctrl_readl(AM35XX_CONTROL_IP_SW_RESET);
|
||||
regval = regval & (~(AM35XX_CPGMACSS_SW_RST));
|
||||
omap_ctrl_writel(regval, AM35XX_CONTROL_IP_SW_RESET);
|
||||
regval = omap_ctrl_readl(AM35XX_CONTROL_IP_SW_RESET);
|
||||
|
||||
return ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#define LCD_PANEL_PWR 176
|
||||
#define LCD_PANEL_BKLIGHT_PWR 182
|
||||
#define LCD_PANEL_PWM 181
|
||||
|
||||
static struct i2c_board_info __initdata am3517evm_i2c_boardinfo[] = {
|
||||
static struct i2c_board_info __initdata am3517evm_i2c1_boardinfo[] = {
|
||||
{
|
||||
I2C_BOARD_INFO("s35390a", 0x30),
|
||||
.type = "s35390a",
|
||||
@ -69,7 +166,7 @@ static void __init am3517_evm_rtc_init(void)
|
||||
gpio_free(GPIO_RTCS35390A_IRQ);
|
||||
return;
|
||||
}
|
||||
am3517evm_i2c_boardinfo[0].irq = gpio_to_irq(GPIO_RTCS35390A_IRQ);
|
||||
am3517evm_i2c1_boardinfo[0].irq = gpio_to_irq(GPIO_RTCS35390A_IRQ);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -80,7 +177,7 @@ static void __init am3517_evm_rtc_init(void)
|
||||
static struct pca953x_platform_data am3517evm_gpio_expander_info_0 = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
};
|
||||
static struct i2c_board_info __initdata am3517evm_tca6416_info_0[] = {
|
||||
static struct i2c_board_info __initdata am3517evm_i2c2_boardinfo[] = {
|
||||
{
|
||||
I2C_BOARD_INFO("tca6416", 0x21),
|
||||
.platform_data = &am3517evm_gpio_expander_info_0,
|
||||
@ -94,7 +191,7 @@ static struct pca953x_platform_data am3517evm_ui_gpio_expander_info_1 = {
|
||||
static struct pca953x_platform_data am3517evm_ui_gpio_expander_info_2 = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES + 32,
|
||||
};
|
||||
static struct i2c_board_info __initdata am3517evm_ui_tca6416_info[] = {
|
||||
static struct i2c_board_info __initdata am3517evm_i2c3_boardinfo[] = {
|
||||
{
|
||||
I2C_BOARD_INFO("tca6416", 0x20),
|
||||
.platform_data = &am3517evm_ui_gpio_expander_info_1,
|
||||
@ -108,10 +205,10 @@ static struct i2c_board_info __initdata am3517evm_ui_tca6416_info[] = {
|
||||
static int __init am3517_evm_i2c_init(void)
|
||||
{
|
||||
omap_register_i2c_bus(1, 400, NULL, 0);
|
||||
omap_register_i2c_bus(2, 400, am3517evm_tca6416_info_0,
|
||||
ARRAY_SIZE(am3517evm_tca6416_info_0));
|
||||
omap_register_i2c_bus(3, 400, am3517evm_ui_tca6416_info,
|
||||
ARRAY_SIZE(am3517evm_ui_tca6416_info));
|
||||
omap_register_i2c_bus(2, 400, am3517evm_i2c2_boardinfo,
|
||||
ARRAY_SIZE(am3517evm_i2c2_boardinfo));
|
||||
omap_register_i2c_bus(3, 400, am3517evm_i2c3_boardinfo,
|
||||
ARRAY_SIZE(am3517evm_i2c3_boardinfo));
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -119,6 +216,8 @@ static int __init am3517_evm_i2c_init(void)
|
||||
static int lcd_enabled;
|
||||
static int dvi_enabled;
|
||||
|
||||
#if defined(CONFIG_PANEL_SHARP_LQ043T1DG01) || \
|
||||
defined(CONFIG_PANEL_SHARP_LQ043T1DG01_MODULE)
|
||||
static void __init am3517_evm_display_init(void)
|
||||
{
|
||||
int r;
|
||||
@ -162,6 +261,9 @@ err_2:
|
||||
err_1:
|
||||
gpio_free(LCD_PANEL_BKLIGHT_PWR);
|
||||
}
|
||||
#else
|
||||
static void __init am3517_evm_display_init(void) {}
|
||||
#endif
|
||||
|
||||
static int am3517_evm_panel_enable_lcd(struct omap_dss_device *dssdev)
|
||||
{
|
||||
@ -275,7 +377,12 @@ static void __init am3517_evm_init_irq(void)
|
||||
|
||||
static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
|
||||
.port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
|
||||
#if defined(CONFIG_PANEL_SHARP_LQ043T1DG01) || \
|
||||
defined(CONFIG_PANEL_SHARP_LQ043T1DG01_MODULE)
|
||||
.port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN,
|
||||
#else
|
||||
.port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
|
||||
#endif
|
||||
.port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
|
||||
|
||||
.phy_reset = true,
|
||||
@ -292,6 +399,42 @@ static struct omap_board_mux board_mux[] __initdata = {
|
||||
#define board_mux NULL
|
||||
#endif
|
||||
|
||||
|
||||
static struct resource am3517_hecc_resources[] = {
|
||||
{
|
||||
.start = AM35XX_IPSS_HECC_BASE,
|
||||
.end = AM35XX_IPSS_HECC_BASE + 0x3FFF,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
{
|
||||
.start = INT_35XX_HECC0_IRQ,
|
||||
.end = INT_35XX_HECC0_IRQ,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device am3517_hecc_device = {
|
||||
.name = "ti_hecc",
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(am3517_hecc_resources),
|
||||
.resource = am3517_hecc_resources,
|
||||
};
|
||||
|
||||
static struct ti_hecc_platform_data am3517_evm_hecc_pdata = {
|
||||
.scc_hecc_offset = AM35XX_HECC_SCC_HECC_OFFSET,
|
||||
.scc_ram_offset = AM35XX_HECC_SCC_RAM_OFFSET,
|
||||
.hecc_ram_offset = AM35XX_HECC_RAM_OFFSET,
|
||||
.mbx_offset = AM35XX_HECC_MBOX_OFFSET,
|
||||
.int_line = AM35XX_HECC_INT_LINE,
|
||||
.version = AM35XX_HECC_VERSION,
|
||||
};
|
||||
|
||||
static void am3517_evm_hecc_init(struct ti_hecc_platform_data *pdata)
|
||||
{
|
||||
am3517_hecc_device.dev.platform_data = pdata;
|
||||
platform_device_register(&am3517_hecc_device);
|
||||
}
|
||||
|
||||
static void __init am3517_evm_init(void)
|
||||
{
|
||||
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
|
||||
@ -305,14 +448,17 @@ static void __init am3517_evm_init(void)
|
||||
/* Configure GPIO for EHCI port */
|
||||
omap_mux_init_gpio(57, OMAP_PIN_OUTPUT);
|
||||
usb_ehci_init(&ehci_pdata);
|
||||
am3517_evm_hecc_init(&am3517_evm_hecc_pdata);
|
||||
/* DSS */
|
||||
am3517_evm_display_init();
|
||||
|
||||
/* RTC - S35390A */
|
||||
am3517_evm_rtc_init();
|
||||
|
||||
i2c_register_board_info(1, am3517evm_i2c_boardinfo,
|
||||
ARRAY_SIZE(am3517evm_i2c_boardinfo));
|
||||
i2c_register_board_info(1, am3517evm_i2c1_boardinfo,
|
||||
ARRAY_SIZE(am3517evm_i2c1_boardinfo));
|
||||
/*Ethernet*/
|
||||
am3517_evm_ethernet_init(&am3517_evm_emac_pdata);
|
||||
}
|
||||
|
||||
static void __init am3517_evm_map_io(void)
|
||||
|
@ -45,6 +45,7 @@
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/display.h>
|
||||
#include <plat/mcspi.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
|
||||
|
@ -633,8 +633,163 @@ static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
|
||||
.reset_gpio_port[2] = -EINVAL
|
||||
};
|
||||
|
||||
static struct omap_board_mux board_mux[] __initdata = {
|
||||
/* nCS and IRQ for Devkit8000 ethernet */
|
||||
OMAP3_MUX(GPMC_NCS6, OMAP_MUX_MODE0),
|
||||
OMAP3_MUX(ETK_D11, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP),
|
||||
|
||||
/* McSPI 2*/
|
||||
OMAP3_MUX(MCSPI2_CLK, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(MCSPI2_SIMO, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(MCSPI2_SOMI, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(MCSPI2_CS0, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(MCSPI2_CS1, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
|
||||
/* PENDOWN GPIO */
|
||||
OMAP3_MUX(ETK_D13, OMAP_MUX_MODE4 | OMAP_PIN_INPUT),
|
||||
|
||||
/* mUSB */
|
||||
OMAP3_MUX(HSUSB0_CLK, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(HSUSB0_STP, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(HSUSB0_DIR, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(HSUSB0_NXT, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(HSUSB0_DATA0, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(HSUSB0_DATA1, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(HSUSB0_DATA2, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(HSUSB0_DATA3, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(HSUSB0_DATA4, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(HSUSB0_DATA5, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(HSUSB0_DATA6, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(HSUSB0_DATA7, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
|
||||
/* USB 1 */
|
||||
OMAP3_MUX(ETK_CTL, OMAP_MUX_MODE3 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(ETK_CLK, OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(ETK_D8, OMAP_MUX_MODE3 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(ETK_D9, OMAP_MUX_MODE3 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(ETK_D0, OMAP_MUX_MODE3 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(ETK_D1, OMAP_MUX_MODE3 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(ETK_D2, OMAP_MUX_MODE3 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(ETK_D3, OMAP_MUX_MODE3 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(ETK_D4, OMAP_MUX_MODE3 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(ETK_D5, OMAP_MUX_MODE3 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(ETK_D6, OMAP_MUX_MODE3 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(ETK_D7, OMAP_MUX_MODE3 | OMAP_PIN_INPUT),
|
||||
|
||||
/* MMC 1 */
|
||||
OMAP3_MUX(SDMMC1_CLK, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(SDMMC1_CMD, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(SDMMC1_DAT0, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(SDMMC1_DAT1, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(SDMMC1_DAT2, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(SDMMC1_DAT3, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(SDMMC1_DAT4, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(SDMMC1_DAT5, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(SDMMC1_DAT6, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(SDMMC1_DAT7, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
|
||||
/* McBSP 2 */
|
||||
OMAP3_MUX(MCBSP2_FSX, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(MCBSP2_CLKX, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(MCBSP2_DR, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(MCBSP2_DX, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
|
||||
/* I2C 1 */
|
||||
OMAP3_MUX(I2C1_SCL, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(I2C1_SDA, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
|
||||
/* I2C 2 */
|
||||
OMAP3_MUX(I2C2_SCL, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(I2C2_SDA, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
|
||||
/* I2C 3 */
|
||||
OMAP3_MUX(I2C3_SCL, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(I2C3_SDA, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
|
||||
/* I2C 4 */
|
||||
OMAP3_MUX(I2C4_SCL, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(I2C4_SDA, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
|
||||
/* serial ports */
|
||||
OMAP3_MUX(MCBSP3_CLKX, OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(MCBSP3_FSX, OMAP_MUX_MODE1 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(UART1_TX, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(UART1_RX, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
|
||||
/* DSS */
|
||||
OMAP3_MUX(DSS_PCLK, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_HSYNC, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_VSYNC, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_ACBIAS, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA0, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA1, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA2, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA3, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA4, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA5, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA6, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA7, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA8, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA9, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA10, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA11, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA12, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA13, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA14, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA15, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA16, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA17, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA18, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA19, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA20, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA21, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA22, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA23, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
|
||||
/* expansion port */
|
||||
/* McSPI 1 */
|
||||
OMAP3_MUX(MCSPI1_CLK, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(MCSPI1_SIMO, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(MCSPI1_SOMI, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(MCSPI1_CS0, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN),
|
||||
OMAP3_MUX(MCSPI1_CS3, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN),
|
||||
|
||||
/* HDQ */
|
||||
OMAP3_MUX(HDQ_SIO, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
|
||||
/* McSPI4 */
|
||||
OMAP3_MUX(MCBSP1_CLKR, OMAP_MUX_MODE1 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(MCBSP1_DX, OMAP_MUX_MODE1 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(MCBSP1_DR, OMAP_MUX_MODE1 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(MCBSP1_FSX, OMAP_MUX_MODE1 | OMAP_PIN_INPUT_PULLUP),
|
||||
|
||||
/* MMC 2 */
|
||||
OMAP3_MUX(SDMMC2_DAT4, OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(SDMMC2_DAT5, OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(SDMMC2_DAT6, OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(SDMMC2_DAT7, OMAP_MUX_MODE1 | OMAP_PIN_INPUT),
|
||||
|
||||
/* I2C3 */
|
||||
OMAP3_MUX(I2C3_SCL, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
OMAP3_MUX(I2C3_SDA, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
|
||||
|
||||
OMAP3_MUX(MCBSP1_CLKX, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(MCBSP_CLKS, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(MCBSP1_FSR, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
|
||||
|
||||
OMAP3_MUX(GPMC_NCS7, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(GPMC_NCS3, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
|
||||
|
||||
/* TPS IRQ */
|
||||
OMAP3_MUX(SYS_NIRQ, OMAP_MUX_MODE0 | OMAP_WAKEUP_EN | \
|
||||
OMAP_PIN_INPUT_PULLUP),
|
||||
|
||||
{ .reg_offset = OMAP_MUX_TERMINATOR },
|
||||
};
|
||||
|
||||
static void __init devkit8000_init(void)
|
||||
{
|
||||
omap3_mux_init(board_mux, OMAP_PACKAGE_CUS);
|
||||
omap_serial_init();
|
||||
|
||||
omap_dm9000_init();
|
||||
|
@ -600,6 +600,7 @@ struct ads7846_platform_data ads7846_config = {
|
||||
.get_pendown_state = ads7846_get_pendown_state,
|
||||
.keep_vref_on = 1,
|
||||
.settle_delay_usecs = 150,
|
||||
.wakeup = true,
|
||||
};
|
||||
|
||||
static struct omap2_mcspi_device_config ads7846_mcspi_config = {
|
||||
@ -651,11 +652,10 @@ static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = {
|
||||
#ifdef CONFIG_OMAP_MUX
|
||||
static struct omap_board_mux board_mux[] __initdata = {
|
||||
OMAP3_MUX(SYS_NIRQ, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP |
|
||||
OMAP_PIN_OFF_INPUT_PULLUP |
|
||||
OMAP_PIN_OFF_INPUT_PULLUP | OMAP_PIN_OFF_OUTPUT_LOW |
|
||||
OMAP_PIN_OFF_WAKEUPENABLE),
|
||||
OMAP3_MUX(MCSPI1_CS1, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP |
|
||||
OMAP_PIN_OFF_INPUT_PULLUP |
|
||||
OMAP_PIN_OFF_WAKEUPENABLE),
|
||||
OMAP_PIN_OFF_INPUT_PULLUP | OMAP_PIN_OFF_OUTPUT_LOW),
|
||||
{ .reg_offset = OMAP_MUX_TERMINATOR },
|
||||
};
|
||||
#else
|
||||
|
672
arch/arm/mach-omap2/board-omap3stalker.c
Normal file
672
arch/arm/mach-omap2/board-omap3stalker.c
Normal file
@ -0,0 +1,672 @@
|
||||
/*
|
||||
* linux/arch/arm/mach-omap2/board-omap3evm.c
|
||||
*
|
||||
* Copyright (C) 2008 Guangzhou EMA-Tech
|
||||
*
|
||||
* Modified from mach-omap2/board-omap3evm.c
|
||||
*
|
||||
* Initial code: Syed Mohammed Khasim
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/leds.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/gpio_keys.h>
|
||||
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/nand.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/timer-gp.h>
|
||||
#include <plat/display.h>
|
||||
|
||||
#include <plat/mcspi.h>
|
||||
#include <linux/input/matrix_keypad.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/ads7846.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/i2c/at24.h>
|
||||
|
||||
#include "sdram-micron-mt46h32m32lf-6.h"
|
||||
#include "mux.h"
|
||||
#include "hsmmc.h"
|
||||
|
||||
#if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE)
|
||||
#define OMAP3STALKER_ETHR_START 0x2c000000
|
||||
#define OMAP3STALKER_ETHR_SIZE 1024
|
||||
#define OMAP3STALKER_ETHR_GPIO_IRQ 19
|
||||
#define OMAP3STALKER_SMC911X_CS 5
|
||||
|
||||
static struct resource omap3stalker_smsc911x_resources[] = {
|
||||
[0] = {
|
||||
.start = OMAP3STALKER_ETHR_START,
|
||||
.end =
|
||||
(OMAP3STALKER_ETHR_START + OMAP3STALKER_ETHR_SIZE - 1),
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[1] = {
|
||||
.start = OMAP_GPIO_IRQ(OMAP3STALKER_ETHR_GPIO_IRQ),
|
||||
.end = OMAP_GPIO_IRQ(OMAP3STALKER_ETHR_GPIO_IRQ),
|
||||
.flags = (IORESOURCE_IRQ | IRQF_TRIGGER_LOW),
|
||||
},
|
||||
};
|
||||
|
||||
static struct smsc911x_platform_config smsc911x_config = {
|
||||
.phy_interface = PHY_INTERFACE_MODE_MII,
|
||||
.irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
|
||||
.irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
|
||||
.flags = (SMSC911X_USE_32BIT | SMSC911X_SAVE_MAC_ADDRESS),
|
||||
};
|
||||
|
||||
static struct platform_device omap3stalker_smsc911x_device = {
|
||||
.name = "smsc911x",
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(omap3stalker_smsc911x_resources),
|
||||
.resource = &omap3stalker_smsc911x_resources[0],
|
||||
.dev = {
|
||||
.platform_data = &smsc911x_config,
|
||||
},
|
||||
};
|
||||
|
||||
static inline void __init omap3stalker_init_eth(void)
|
||||
{
|
||||
int eth_cs;
|
||||
struct clk *l3ck;
|
||||
unsigned int rate;
|
||||
|
||||
eth_cs = OMAP3STALKER_SMC911X_CS;
|
||||
|
||||
l3ck = clk_get(NULL, "l3_ck");
|
||||
if (IS_ERR(l3ck))
|
||||
rate = 100000000;
|
||||
else
|
||||
rate = clk_get_rate(l3ck);
|
||||
|
||||
omap_mux_init_gpio(19, OMAP_PIN_INPUT_PULLUP);
|
||||
if (gpio_request(OMAP3STALKER_ETHR_GPIO_IRQ, "SMC911x irq") < 0) {
|
||||
printk(KERN_ERR
|
||||
"Failed to request GPIO%d for smc911x IRQ\n",
|
||||
OMAP3STALKER_ETHR_GPIO_IRQ);
|
||||
return;
|
||||
}
|
||||
|
||||
gpio_direction_input(OMAP3STALKER_ETHR_GPIO_IRQ);
|
||||
|
||||
platform_device_register(&omap3stalker_smsc911x_device);
|
||||
}
|
||||
|
||||
#else
|
||||
static inline void __init omap3stalker_init_eth(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* OMAP3 DSS control signals
|
||||
*/
|
||||
|
||||
#define DSS_ENABLE_GPIO 199
|
||||
#define LCD_PANEL_BKLIGHT_GPIO 210
|
||||
#define ENABLE_VPLL2_DEV_GRP 0xE0
|
||||
|
||||
static int lcd_enabled;
|
||||
static int dvi_enabled;
|
||||
|
||||
static void __init omap3_stalker_display_init(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static int omap3_stalker_enable_lcd(struct omap_dss_device *dssdev)
|
||||
{
|
||||
if (dvi_enabled) {
|
||||
printk(KERN_ERR "cannot enable LCD, DVI is enabled\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
gpio_set_value(DSS_ENABLE_GPIO, 1);
|
||||
gpio_set_value(LCD_PANEL_BKLIGHT_GPIO, 1);
|
||||
lcd_enabled = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void omap3_stalker_disable_lcd(struct omap_dss_device *dssdev)
|
||||
{
|
||||
gpio_set_value(DSS_ENABLE_GPIO, 0);
|
||||
gpio_set_value(LCD_PANEL_BKLIGHT_GPIO, 0);
|
||||
lcd_enabled = 0;
|
||||
}
|
||||
|
||||
static struct omap_dss_device omap3_stalker_lcd_device = {
|
||||
.name = "lcd",
|
||||
.driver_name = "generic_panel",
|
||||
.phy.dpi.data_lines = 24,
|
||||
.type = OMAP_DISPLAY_TYPE_DPI,
|
||||
.platform_enable = omap3_stalker_enable_lcd,
|
||||
.platform_disable = omap3_stalker_disable_lcd,
|
||||
};
|
||||
|
||||
static int omap3_stalker_enable_tv(struct omap_dss_device *dssdev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void omap3_stalker_disable_tv(struct omap_dss_device *dssdev)
|
||||
{
|
||||
}
|
||||
|
||||
static struct omap_dss_device omap3_stalker_tv_device = {
|
||||
.name = "tv",
|
||||
.driver_name = "venc",
|
||||
.type = OMAP_DISPLAY_TYPE_VENC,
|
||||
#if defined(CONFIG_OMAP2_VENC_OUT_TYPE_SVIDEO)
|
||||
.phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO,
|
||||
#elif defined(CONFIG_OMAP2_VENC_OUT_TYPE_COMPOSITE)
|
||||
.u.venc.type = OMAP_DSS_VENC_TYPE_COMPOSITE,
|
||||
#endif
|
||||
.platform_enable = omap3_stalker_enable_tv,
|
||||
.platform_disable = omap3_stalker_disable_tv,
|
||||
};
|
||||
|
||||
static int omap3_stalker_enable_dvi(struct omap_dss_device *dssdev)
|
||||
{
|
||||
if (lcd_enabled) {
|
||||
printk(KERN_ERR "cannot enable DVI, LCD is enabled\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
gpio_set_value(DSS_ENABLE_GPIO, 1);
|
||||
dvi_enabled = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void omap3_stalker_disable_dvi(struct omap_dss_device *dssdev)
|
||||
{
|
||||
gpio_set_value(DSS_ENABLE_GPIO, 0);
|
||||
dvi_enabled = 0;
|
||||
}
|
||||
|
||||
static struct omap_dss_device omap3_stalker_dvi_device = {
|
||||
.name = "dvi",
|
||||
.driver_name = "generic_panel",
|
||||
.type = OMAP_DISPLAY_TYPE_DPI,
|
||||
.phy.dpi.data_lines = 24,
|
||||
.platform_enable = omap3_stalker_enable_dvi,
|
||||
.platform_disable = omap3_stalker_disable_dvi,
|
||||
};
|
||||
|
||||
static struct omap_dss_device *omap3_stalker_dss_devices[] = {
|
||||
&omap3_stalker_lcd_device,
|
||||
&omap3_stalker_tv_device,
|
||||
&omap3_stalker_dvi_device,
|
||||
};
|
||||
|
||||
static struct omap_dss_board_info omap3_stalker_dss_data = {
|
||||
.num_devices = ARRAY_SIZE(omap3_stalker_dss_devices),
|
||||
.devices = omap3_stalker_dss_devices,
|
||||
.default_device = &omap3_stalker_dvi_device,
|
||||
};
|
||||
|
||||
static struct platform_device omap3_stalker_dss_device = {
|
||||
.name = "omapdss",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = &omap3_stalker_dss_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply omap3stalker_vmmc1_supply = {
|
||||
.supply = "vmmc",
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply omap3stalker_vsim_supply = {
|
||||
.supply = "vmmc_aux",
|
||||
};
|
||||
|
||||
/* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */
|
||||
static struct regulator_init_data omap3stalker_vmmc1 = {
|
||||
.constraints = {
|
||||
.min_uV = 1850000,
|
||||
.max_uV = 3150000,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
|
||||
| REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = 1,
|
||||
.consumer_supplies = &omap3stalker_vmmc1_supply,
|
||||
};
|
||||
|
||||
/* VSIM for MMC1 pins DAT4..DAT7 (2 mA, plus card == max 50 mA) */
|
||||
static struct regulator_init_data omap3stalker_vsim = {
|
||||
.constraints = {
|
||||
.min_uV = 1800000,
|
||||
.max_uV = 3000000,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
|
||||
| REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = 1,
|
||||
.consumer_supplies = &omap3stalker_vsim_supply,
|
||||
};
|
||||
|
||||
static struct omap2_hsmmc_info mmc[] = {
|
||||
{
|
||||
.mmc = 1,
|
||||
.wires = 4,
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = 23,
|
||||
},
|
||||
{} /* Terminator */
|
||||
};
|
||||
|
||||
static struct gpio_keys_button gpio_buttons[] = {
|
||||
{
|
||||
.code = BTN_EXTRA,
|
||||
.gpio = 18,
|
||||
.desc = "user",
|
||||
.wakeup = 1,
|
||||
},
|
||||
};
|
||||
|
||||
static struct gpio_keys_platform_data gpio_key_info = {
|
||||
.buttons = gpio_buttons,
|
||||
.nbuttons = ARRAY_SIZE(gpio_buttons),
|
||||
};
|
||||
|
||||
static struct platform_device keys_gpio = {
|
||||
.name = "gpio-keys",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = &gpio_key_info,
|
||||
},
|
||||
};
|
||||
|
||||
static struct gpio_led gpio_leds[] = {
|
||||
{
|
||||
.name = "stalker:D8:usr0",
|
||||
.default_trigger = "default-on",
|
||||
.gpio = 126,
|
||||
},
|
||||
{
|
||||
.name = "stalker:D9:usr1",
|
||||
.default_trigger = "default-on",
|
||||
.gpio = 127,
|
||||
},
|
||||
{
|
||||
.name = "stalker:D3:mmc0",
|
||||
.gpio = -EINVAL, /* gets replaced */
|
||||
.active_low = true,
|
||||
.default_trigger = "mmc0",
|
||||
},
|
||||
{
|
||||
.name = "stalker:D4:heartbeat",
|
||||
.gpio = -EINVAL, /* gets replaced */
|
||||
.active_low = true,
|
||||
.default_trigger = "heartbeat",
|
||||
},
|
||||
};
|
||||
|
||||
static struct gpio_led_platform_data gpio_led_info = {
|
||||
.leds = gpio_leds,
|
||||
.num_leds = ARRAY_SIZE(gpio_leds),
|
||||
};
|
||||
|
||||
static struct platform_device leds_gpio = {
|
||||
.name = "leds-gpio",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = &gpio_led_info,
|
||||
},
|
||||
};
|
||||
|
||||
static int
|
||||
omap3stalker_twl_gpio_setup(struct device *dev,
|
||||
unsigned gpio, unsigned ngpio)
|
||||
{
|
||||
/* gpio + 0 is "mmc0_cd" (input/IRQ) */
|
||||
omap_mux_init_gpio(23, OMAP_PIN_INPUT);
|
||||
mmc[0].gpio_cd = gpio + 0;
|
||||
omap2_hsmmc_init(mmc);
|
||||
|
||||
/* link regulators to MMC adapters */
|
||||
omap3stalker_vmmc1_supply.dev = mmc[0].dev;
|
||||
omap3stalker_vsim_supply.dev = mmc[0].dev;
|
||||
|
||||
/*
|
||||
* Most GPIOs are for USB OTG. Some are mostly sent to
|
||||
* the P2 connector; notably LEDA for the LCD backlight.
|
||||
*/
|
||||
|
||||
/* TWL4030_GPIO_MAX + 0 == ledA, LCD Backlight control */
|
||||
gpio_request(gpio + TWL4030_GPIO_MAX, "EN_LCD_BKL");
|
||||
gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0);
|
||||
|
||||
/* gpio + 7 == DVI Enable */
|
||||
gpio_request(gpio + 7, "EN_DVI");
|
||||
gpio_direction_output(gpio + 7, 0);
|
||||
|
||||
/* TWL4030_GPIO_MAX + 1 == ledB (out, mmc0) */
|
||||
gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
|
||||
/* GPIO + 13 == ledsync (out, heartbeat) */
|
||||
gpio_leds[3].gpio = gpio + 13;
|
||||
|
||||
platform_device_register(&leds_gpio);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct twl4030_gpio_platform_data omap3stalker_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
.use_leds = true,
|
||||
.setup = omap3stalker_twl_gpio_setup,
|
||||
};
|
||||
|
||||
static struct twl4030_usb_data omap3stalker_usb_data = {
|
||||
.usb_mode = T2_USB_MODE_ULPI,
|
||||
};
|
||||
|
||||
static int board_keymap[] = {
|
||||
KEY(0, 0, KEY_LEFT),
|
||||
KEY(0, 1, KEY_DOWN),
|
||||
KEY(0, 2, KEY_ENTER),
|
||||
KEY(0, 3, KEY_M),
|
||||
|
||||
KEY(1, 0, KEY_RIGHT),
|
||||
KEY(1, 1, KEY_UP),
|
||||
KEY(1, 2, KEY_I),
|
||||
KEY(1, 3, KEY_N),
|
||||
|
||||
KEY(2, 0, KEY_A),
|
||||
KEY(2, 1, KEY_E),
|
||||
KEY(2, 2, KEY_J),
|
||||
KEY(2, 3, KEY_O),
|
||||
|
||||
KEY(3, 0, KEY_B),
|
||||
KEY(3, 1, KEY_F),
|
||||
KEY(3, 2, KEY_K),
|
||||
KEY(3, 3, KEY_P)
|
||||
};
|
||||
|
||||
static struct matrix_keymap_data board_map_data = {
|
||||
.keymap = board_keymap,
|
||||
.keymap_size = ARRAY_SIZE(board_keymap),
|
||||
};
|
||||
|
||||
static struct twl4030_keypad_data omap3stalker_kp_data = {
|
||||
.keymap_data = &board_map_data,
|
||||
.rows = 4,
|
||||
.cols = 4,
|
||||
.rep = 1,
|
||||
};
|
||||
|
||||
static struct twl4030_madc_platform_data omap3stalker_madc_data = {
|
||||
.irq_line = 1,
|
||||
};
|
||||
|
||||
static struct twl4030_codec_audio_data omap3stalker_audio_data = {
|
||||
.audio_mclk = 26000000,
|
||||
};
|
||||
|
||||
static struct twl4030_codec_data omap3stalker_codec_data = {
|
||||
.audio_mclk = 26000000,
|
||||
.audio = &omap3stalker_audio_data,
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply omap3_stalker_vdda_dac_supply = {
|
||||
.supply = "vdda_dac",
|
||||
.dev = &omap3_stalker_dss_device.dev,
|
||||
};
|
||||
|
||||
/* VDAC for DSS driving S-Video */
|
||||
static struct regulator_init_data omap3_stalker_vdac = {
|
||||
.constraints = {
|
||||
.min_uV = 1800000,
|
||||
.max_uV = 1800000,
|
||||
.apply_uV = true,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = 1,
|
||||
.consumer_supplies = &omap3_stalker_vdda_dac_supply,
|
||||
};
|
||||
|
||||
/* VPLL2 for digital video outputs */
|
||||
static struct regulator_consumer_supply omap3_stalker_vpll2_supply = {
|
||||
.supply = "vdds_dsi",
|
||||
.dev = &omap3_stalker_lcd_device.dev,
|
||||
};
|
||||
|
||||
static struct regulator_init_data omap3_stalker_vpll2 = {
|
||||
.constraints = {
|
||||
.name = "VDVI",
|
||||
.min_uV = 1800000,
|
||||
.max_uV = 1800000,
|
||||
.apply_uV = true,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = 1,
|
||||
.consumer_supplies = &omap3_stalker_vpll2_supply,
|
||||
};
|
||||
|
||||
static struct twl4030_platform_data omap3stalker_twldata = {
|
||||
.irq_base = TWL4030_IRQ_BASE,
|
||||
.irq_end = TWL4030_IRQ_END,
|
||||
|
||||
/* platform_data for children goes here */
|
||||
.keypad = &omap3stalker_kp_data,
|
||||
.madc = &omap3stalker_madc_data,
|
||||
.usb = &omap3stalker_usb_data,
|
||||
.gpio = &omap3stalker_gpio_data,
|
||||
.codec = &omap3stalker_codec_data,
|
||||
.vdac = &omap3_stalker_vdac,
|
||||
.vpll2 = &omap3_stalker_vpll2,
|
||||
};
|
||||
|
||||
static struct i2c_board_info __initdata omap3stalker_i2c_boardinfo[] = {
|
||||
{
|
||||
I2C_BOARD_INFO("twl4030", 0x48),
|
||||
.flags = I2C_CLIENT_WAKE,
|
||||
.irq = INT_34XX_SYS_NIRQ,
|
||||
.platform_data = &omap3stalker_twldata,
|
||||
},
|
||||
};
|
||||
|
||||
static struct at24_platform_data fram_info = {
|
||||
.byte_len = (64 * 1024) / 8,
|
||||
.page_size = 8192,
|
||||
.flags = AT24_FLAG_ADDR16 | AT24_FLAG_IRUGO,
|
||||
};
|
||||
|
||||
static struct i2c_board_info __initdata omap3stalker_i2c_boardinfo3[] = {
|
||||
{
|
||||
I2C_BOARD_INFO("24c64", 0x50),
|
||||
.flags = I2C_CLIENT_WAKE,
|
||||
.platform_data = &fram_info,
|
||||
},
|
||||
};
|
||||
|
||||
static int __init omap3_stalker_i2c_init(void)
|
||||
{
|
||||
/*
|
||||
* REVISIT: These entries can be set in omap3evm_twl_data
|
||||
* after a merge with MFD tree
|
||||
*/
|
||||
omap3stalker_twldata.vmmc1 = &omap3stalker_vmmc1;
|
||||
omap3stalker_twldata.vsim = &omap3stalker_vsim;
|
||||
|
||||
omap_register_i2c_bus(1, 2600, omap3stalker_i2c_boardinfo,
|
||||
ARRAY_SIZE(omap3stalker_i2c_boardinfo));
|
||||
omap_register_i2c_bus(2, 400, NULL, 0);
|
||||
omap_register_i2c_bus(3, 400, omap3stalker_i2c_boardinfo3,
|
||||
ARRAY_SIZE(omap3stalker_i2c_boardinfo3));
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define OMAP3_STALKER_TS_GPIO 175
|
||||
static void ads7846_dev_init(void)
|
||||
{
|
||||
if (gpio_request(OMAP3_STALKER_TS_GPIO, "ADS7846 pendown") < 0)
|
||||
printk(KERN_ERR "can't get ads7846 pen down GPIO\n");
|
||||
|
||||
gpio_direction_input(OMAP3_STALKER_TS_GPIO);
|
||||
|
||||
omap_set_gpio_debounce(OMAP3_STALKER_TS_GPIO, 1);
|
||||
omap_set_gpio_debounce_time(OMAP3_STALKER_TS_GPIO, 0xa);
|
||||
}
|
||||
|
||||
static int ads7846_get_pendown_state(void)
|
||||
{
|
||||
return !gpio_get_value(OMAP3_STALKER_TS_GPIO);
|
||||
}
|
||||
|
||||
static struct ads7846_platform_data ads7846_config = {
|
||||
.x_max = 0x0fff,
|
||||
.y_max = 0x0fff,
|
||||
.x_plate_ohms = 180,
|
||||
.pressure_max = 255,
|
||||
.debounce_max = 10,
|
||||
.debounce_tol = 3,
|
||||
.debounce_rep = 1,
|
||||
.get_pendown_state = ads7846_get_pendown_state,
|
||||
.keep_vref_on = 1,
|
||||
.settle_delay_usecs = 150,
|
||||
};
|
||||
|
||||
static struct omap2_mcspi_device_config ads7846_mcspi_config = {
|
||||
.turbo_mode = 0,
|
||||
.single_channel = 1, /* 0: slave, 1: master */
|
||||
};
|
||||
|
||||
struct spi_board_info omap3stalker_spi_board_info[] = {
|
||||
[0] = {
|
||||
.modalias = "ads7846",
|
||||
.bus_num = 1,
|
||||
.chip_select = 0,
|
||||
.max_speed_hz = 1500000,
|
||||
.controller_data = &ads7846_mcspi_config,
|
||||
.irq = OMAP_GPIO_IRQ(OMAP3_STALKER_TS_GPIO),
|
||||
.platform_data = &ads7846_config,
|
||||
},
|
||||
};
|
||||
|
||||
static struct omap_board_config_kernel omap3_stalker_config[] __initdata = {
|
||||
};
|
||||
|
||||
static void __init omap3_stalker_init_irq(void)
|
||||
{
|
||||
omap_board_config = omap3_stalker_config;
|
||||
omap_board_config_size = ARRAY_SIZE(omap3_stalker_config);
|
||||
omap2_init_common_hw(mt46h32m32lf6_sdrc_params, NULL);
|
||||
omap_init_irq();
|
||||
#ifdef CONFIG_OMAP_32K_TIMER
|
||||
omap2_gp_clockevent_set_gptimer(12);
|
||||
#endif
|
||||
omap_gpio_init();
|
||||
}
|
||||
|
||||
static struct platform_device *omap3_stalker_devices[] __initdata = {
|
||||
&omap3_stalker_dss_device,
|
||||
&keys_gpio,
|
||||
};
|
||||
|
||||
static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
|
||||
.port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN,
|
||||
.port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
|
||||
.port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
|
||||
|
||||
.phy_reset = true,
|
||||
.reset_gpio_port[0] = -EINVAL,
|
||||
.reset_gpio_port[1] = 21,
|
||||
.reset_gpio_port[2] = -EINVAL,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_OMAP_MUX
|
||||
static struct omap_board_mux board_mux[] __initdata = {
|
||||
OMAP3_MUX(SYS_NIRQ, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP |
|
||||
OMAP_PIN_OFF_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE),
|
||||
OMAP3_MUX(MCSPI1_CS1, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP |
|
||||
OMAP_PIN_OFF_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE),
|
||||
{.reg_offset = OMAP_MUX_TERMINATOR},
|
||||
};
|
||||
#else
|
||||
#define board_mux NULL
|
||||
#endif
|
||||
|
||||
static struct omap_musb_board_data musb_board_data = {
|
||||
.interface_type = MUSB_INTERFACE_ULPI,
|
||||
.mode = MUSB_OTG,
|
||||
.power = 100,
|
||||
};
|
||||
|
||||
static void __init omap3_stalker_init(void)
|
||||
{
|
||||
omap3_mux_init(board_mux, OMAP_PACKAGE_CUS);
|
||||
|
||||
omap3_stalker_i2c_init();
|
||||
|
||||
platform_add_devices(omap3_stalker_devices,
|
||||
ARRAY_SIZE(omap3_stalker_devices));
|
||||
|
||||
spi_register_board_info(omap3stalker_spi_board_info,
|
||||
ARRAY_SIZE(omap3stalker_spi_board_info));
|
||||
|
||||
omap_serial_init();
|
||||
usb_musb_init(&musb_board_data);
|
||||
usb_ehci_init(&ehci_pdata);
|
||||
ads7846_dev_init();
|
||||
|
||||
omap_mux_init_gpio(21, OMAP_PIN_OUTPUT);
|
||||
omap_mux_init_gpio(18, OMAP_PIN_INPUT_PULLUP);
|
||||
|
||||
omap3stalker_init_eth();
|
||||
omap3_stalker_display_init();
|
||||
/* Ensure SDRC pins are mux'd for self-refresh */
|
||||
omap_mux_init_signal("sdr_cke0", OMAP_PIN_OUTPUT);
|
||||
omap_mux_init_signal("sdr_cke1", OMAP_PIN_OUTPUT);
|
||||
}
|
||||
|
||||
static void __init omap3_stalker_map_io(void)
|
||||
{
|
||||
omap2_set_globals_343x();
|
||||
omap34xx_map_common_io();
|
||||
}
|
||||
|
||||
MACHINE_START(SBC3530, "OMAP3 STALKER")
|
||||
/* Maintainer: Jason Lam -lzg@ema-tech.com */
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap3_stalker_map_io,
|
||||
.init_irq = omap3_stalker_init_irq,
|
||||
.init_machine = omap3_stalker_init,
|
||||
.timer = &omap_timer,
|
||||
MACHINE_END
|
@ -63,6 +63,8 @@
|
||||
|
||||
#define OVERO_SMSC911X_CS 5
|
||||
#define OVERO_SMSC911X_GPIO 176
|
||||
#define OVERO_SMSC911X2_CS 4
|
||||
#define OVERO_SMSC911X2_GPIO 65
|
||||
|
||||
#if defined(CONFIG_TOUCHSCREEN_ADS7846) || \
|
||||
defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
|
||||
@ -137,6 +139,16 @@ static struct resource overo_smsc911x_resources[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource overo_smsc911x2_resources[] = {
|
||||
{
|
||||
.name = "smsc911x2-memory",
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
{
|
||||
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL,
|
||||
},
|
||||
};
|
||||
|
||||
static struct smsc911x_platform_config overo_smsc911x_config = {
|
||||
.irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
|
||||
.irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
|
||||
@ -146,7 +158,7 @@ static struct smsc911x_platform_config overo_smsc911x_config = {
|
||||
|
||||
static struct platform_device overo_smsc911x_device = {
|
||||
.name = "smsc911x",
|
||||
.id = -1,
|
||||
.id = 0,
|
||||
.num_resources = ARRAY_SIZE(overo_smsc911x_resources),
|
||||
.resource = overo_smsc911x_resources,
|
||||
.dev = {
|
||||
|
@ -277,7 +277,7 @@ static struct regulator_consumer_supply rx51_vmmc1_supply = {
|
||||
.dev_name = "mmci-omap-hs.0",
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply rx51_vmmc2_supply = {
|
||||
static struct regulator_consumer_supply rx51_vaux3_supply = {
|
||||
.supply = "vmmc",
|
||||
.dev_name = "mmci-omap-hs.1",
|
||||
};
|
||||
@ -287,6 +287,48 @@ static struct regulator_consumer_supply rx51_vsim_supply = {
|
||||
.dev_name = "mmci-omap-hs.1",
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply rx51_vmmc2_supplies[] = {
|
||||
/* tlv320aic3x analog supplies */
|
||||
{
|
||||
.supply = "AVDD",
|
||||
.dev_name = "2-0018",
|
||||
},
|
||||
{
|
||||
.supply = "DRVDD",
|
||||
.dev_name = "2-0018",
|
||||
},
|
||||
/* Keep vmmc as last item. It is not iterated for newer boards */
|
||||
{
|
||||
.supply = "vmmc",
|
||||
.dev_name = "mmci-omap-hs.1",
|
||||
},
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply rx51_vio_supplies[] = {
|
||||
/* tlv320aic3x digital supplies */
|
||||
{
|
||||
.supply = "IOVDD",
|
||||
.dev_name = "2-0018"
|
||||
},
|
||||
{
|
||||
.supply = "DVDD",
|
||||
.dev_name = "2-0018"
|
||||
},
|
||||
};
|
||||
|
||||
#if defined(CONFIG_FB_OMAP2) || defined(CONFIG_FB_OMAP2_MODULE)
|
||||
extern struct platform_device rx51_display_device;
|
||||
#endif
|
||||
|
||||
static struct regulator_consumer_supply rx51_vaux1_consumers[] = {
|
||||
#if defined(CONFIG_FB_OMAP2) || defined(CONFIG_FB_OMAP2_MODULE)
|
||||
{
|
||||
.supply = "vdds_sdi",
|
||||
.dev = &rx51_display_device.dev,
|
||||
},
|
||||
#endif
|
||||
};
|
||||
|
||||
static struct regulator_init_data rx51_vaux1 = {
|
||||
.constraints = {
|
||||
.name = "V28",
|
||||
@ -297,6 +339,8 @@ static struct regulator_init_data rx51_vaux1 = {
|
||||
.valid_ops_mask = REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = ARRAY_SIZE(rx51_vaux1_consumers),
|
||||
.consumer_supplies = rx51_vaux1_consumers,
|
||||
};
|
||||
|
||||
static struct regulator_init_data rx51_vaux2 = {
|
||||
@ -338,7 +382,7 @@ static struct regulator_init_data rx51_vaux3_mmc = {
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = 1,
|
||||
.consumer_supplies = &rx51_vmmc2_supply,
|
||||
.consumer_supplies = &rx51_vaux3_supply,
|
||||
};
|
||||
|
||||
static struct regulator_init_data rx51_vaux4 = {
|
||||
@ -370,9 +414,9 @@ static struct regulator_init_data rx51_vmmc1 = {
|
||||
|
||||
static struct regulator_init_data rx51_vmmc2 = {
|
||||
.constraints = {
|
||||
.name = "VMMC2_30",
|
||||
.min_uV = 1850000,
|
||||
.max_uV = 3150000,
|
||||
.name = "V28_A",
|
||||
.min_uV = 2800000,
|
||||
.max_uV = 3000000,
|
||||
.apply_uV = true,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
@ -380,8 +424,8 @@ static struct regulator_init_data rx51_vmmc2 = {
|
||||
| REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = 1,
|
||||
.consumer_supplies = &rx51_vmmc2_supply,
|
||||
.num_consumer_supplies = ARRAY_SIZE(rx51_vmmc2_supplies),
|
||||
.consumer_supplies = rx51_vmmc2_supplies,
|
||||
};
|
||||
|
||||
static struct regulator_init_data rx51_vsim = {
|
||||
@ -411,6 +455,20 @@ static struct regulator_init_data rx51_vdac = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct regulator_init_data rx51_vio = {
|
||||
.constraints = {
|
||||
.min_uV = 1800000,
|
||||
.max_uV = 1800000,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
|
||||
| REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = ARRAY_SIZE(rx51_vio_supplies),
|
||||
.consumer_supplies = rx51_vio_supplies,
|
||||
};
|
||||
|
||||
static int rx51_twlgpio_setup(struct device *dev, unsigned gpio, unsigned n)
|
||||
{
|
||||
/* FIXME this gpio setup is just a placeholder for now */
|
||||
@ -618,6 +676,7 @@ static struct twl4030_platform_data rx51_twldata __initdata = {
|
||||
.vmmc1 = &rx51_vmmc1,
|
||||
.vsim = &rx51_vsim,
|
||||
.vdac = &rx51_vdac,
|
||||
.vio = &rx51_vio,
|
||||
};
|
||||
|
||||
static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_1[] = {
|
||||
@ -629,18 +688,27 @@ static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_1[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_2[] = {
|
||||
{
|
||||
I2C_BOARD_INFO("tlv320aic3x", 0x18),
|
||||
},
|
||||
};
|
||||
|
||||
static int __init rx51_i2c_init(void)
|
||||
{
|
||||
if ((system_rev >= SYSTEM_REV_S_USES_VAUX3 && system_rev < 0x100) ||
|
||||
system_rev >= SYSTEM_REV_B_USES_VAUX3)
|
||||
system_rev >= SYSTEM_REV_B_USES_VAUX3) {
|
||||
rx51_twldata.vaux3 = &rx51_vaux3_mmc;
|
||||
else {
|
||||
/* Only older boards use VMMC2 for internal MMC */
|
||||
rx51_vmmc2.num_consumer_supplies--;
|
||||
} else {
|
||||
rx51_twldata.vaux3 = &rx51_vaux3_cam;
|
||||
rx51_twldata.vmmc2 = &rx51_vmmc2;
|
||||
}
|
||||
rx51_twldata.vmmc2 = &rx51_vmmc2;
|
||||
omap_register_i2c_bus(1, 2200, rx51_peripherals_i2c_board_info_1,
|
||||
ARRAY_SIZE(rx51_peripherals_i2c_board_info_1));
|
||||
omap_register_i2c_bus(2, 100, NULL, 0);
|
||||
ARRAY_SIZE(rx51_peripherals_i2c_board_info_1));
|
||||
omap_register_i2c_bus(2, 100, rx51_peripherals_i2c_board_info_2,
|
||||
ARRAY_SIZE(rx51_peripherals_i2c_board_info_2));
|
||||
omap_register_i2c_bus(3, 400, NULL, 0);
|
||||
return 0;
|
||||
}
|
||||
|
@ -82,7 +82,7 @@ static inline void __init zoom_init_smsc911x(void)
|
||||
|
||||
static struct plat_serial8250_port serial_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0x10000000,
|
||||
.mapbase = ZOOM_UART_BASE,
|
||||
.irq = OMAP_GPIO_IRQ(102),
|
||||
.flags = UPF_BOOT_AUTOCONF|UPF_IOREMAP|UPF_SHARE_IRQ,
|
||||
.irqflags = IRQF_SHARED | IRQF_TRIGGER_RISING,
|
||||
|
@ -91,8 +91,8 @@ static void __init omap_zoom2_map_io(void)
|
||||
}
|
||||
|
||||
MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board")
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.phys_io = ZOOM_UART_BASE,
|
||||
.io_pg_offst = (ZOOM_UART_VIRT >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_zoom2_map_io,
|
||||
.init_irq = omap_zoom2_init_irq,
|
||||
|
@ -73,8 +73,8 @@ static void __init omap_zoom_init(void)
|
||||
}
|
||||
|
||||
MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 board")
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.phys_io = ZOOM_UART_BASE,
|
||||
.io_pg_offst = (ZOOM_UART_VIRT >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_zoom_map_io,
|
||||
.init_irq = omap_zoom_init_irq,
|
||||
|
@ -70,12 +70,12 @@ static int omap2_clk_apll_enable(struct clk *clk, u32 status_mask)
|
||||
|
||||
static int omap2_clk_apll96_enable(struct clk *clk)
|
||||
{
|
||||
return omap2_clk_apll_enable(clk, OMAP24XX_ST_96M_APLL);
|
||||
return omap2_clk_apll_enable(clk, OMAP24XX_ST_96M_APLL_MASK);
|
||||
}
|
||||
|
||||
static int omap2_clk_apll54_enable(struct clk *clk)
|
||||
{
|
||||
return omap2_clk_apll_enable(clk, OMAP24XX_ST_54M_APLL);
|
||||
return omap2_clk_apll_enable(clk, OMAP24XX_ST_54M_APLL_MASK);
|
||||
}
|
||||
|
||||
/* Stop APLL */
|
||||
|
@ -68,16 +68,13 @@ long omap2_round_to_table_rate(struct clk *clk, unsigned long rate)
|
||||
{
|
||||
const struct prcm_config *ptr;
|
||||
long highest_rate;
|
||||
long sys_ck_rate;
|
||||
|
||||
sys_ck_rate = clk_get_rate(sclk);
|
||||
|
||||
highest_rate = -EINVAL;
|
||||
|
||||
for (ptr = rate_table; ptr->mpu_speed; ptr++) {
|
||||
if (!(ptr->flags & cpu_mask))
|
||||
continue;
|
||||
if (ptr->xtal_speed != sys_ck_rate)
|
||||
if (ptr->xtal_speed != sclk->rate)
|
||||
continue;
|
||||
|
||||
highest_rate = ptr->mpu_speed;
|
||||
@ -96,15 +93,12 @@ int omap2_select_table_rate(struct clk *clk, unsigned long rate)
|
||||
const struct prcm_config *prcm;
|
||||
unsigned long found_speed = 0;
|
||||
unsigned long flags;
|
||||
long sys_ck_rate;
|
||||
|
||||
sys_ck_rate = clk_get_rate(sclk);
|
||||
|
||||
for (prcm = rate_table; prcm->mpu_speed; prcm++) {
|
||||
if (!(prcm->flags & cpu_mask))
|
||||
continue;
|
||||
|
||||
if (prcm->xtal_speed != sys_ck_rate)
|
||||
if (prcm->xtal_speed != sclk->rate)
|
||||
continue;
|
||||
|
||||
if (prcm->mpu_speed <= rate) {
|
||||
@ -181,19 +175,16 @@ static struct cpufreq_frequency_table *freq_table;
|
||||
void omap2_clk_init_cpufreq_table(struct cpufreq_frequency_table **table)
|
||||
{
|
||||
const struct prcm_config *prcm;
|
||||
long sys_ck_rate;
|
||||
int i = 0;
|
||||
int tbl_sz = 0;
|
||||
|
||||
if (!cpu_is_omap24xx())
|
||||
return;
|
||||
|
||||
sys_ck_rate = clk_get_rate(sclk);
|
||||
|
||||
for (prcm = rate_table; prcm->mpu_speed; prcm++) {
|
||||
if (!(prcm->flags & cpu_mask))
|
||||
continue;
|
||||
if (prcm->xtal_speed != sys_ck_rate)
|
||||
if (prcm->xtal_speed != sclk->rate)
|
||||
continue;
|
||||
|
||||
/* don't put bypass rates in table */
|
||||
@ -226,7 +217,7 @@ void omap2_clk_init_cpufreq_table(struct cpufreq_frequency_table **table)
|
||||
for (prcm = rate_table; prcm->mpu_speed; prcm++) {
|
||||
if (!(prcm->flags & cpu_mask))
|
||||
continue;
|
||||
if (prcm->xtal_speed != sys_ck_rate)
|
||||
if (prcm->xtal_speed != sclk->rate)
|
||||
continue;
|
||||
|
||||
/* don't put bypass rates in table */
|
||||
|
@ -12,8 +12,26 @@
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* XXX At some point these clksel clocks should be split into
|
||||
* "divider" clocks and "mux" clocks to better match the hardware.
|
||||
*
|
||||
* clksel clocks are clocks that do not have a fixed parent, or that
|
||||
* can divide their parent's rate, or possibly both at the same time, based
|
||||
* on the contents of a hardware register bitfield.
|
||||
*
|
||||
* All of the various mux and divider settings can be encoded into
|
||||
* struct clksel* data structures, and then these can be autogenerated
|
||||
* from some hardware database for each new chip generation. This
|
||||
* should avoid the need to write, review, and validate a lot of new
|
||||
* clock code for each new chip, since it can be exported from the SoC
|
||||
* design flow. This is now done on OMAP4.
|
||||
*
|
||||
* The fusion of mux and divider clocks is a software creation. In
|
||||
* hardware reality, the multiplexer (parent selection) and the
|
||||
* divider exist separately. XXX At some point these clksel clocks
|
||||
* should be split into "divider" clocks and "mux" clocks to better
|
||||
* match the hardware.
|
||||
*
|
||||
* (The name "clksel" comes from the name of the corresponding
|
||||
* register field in the OMAP2/3 family of SoCs.)
|
||||
*
|
||||
* XXX Currently these clocks are only used in the OMAP2/3/4 code, but
|
||||
* many of the OMAP1 clocks should be convertible to use this
|
||||
@ -29,14 +47,11 @@
|
||||
#include <plat/clock.h>
|
||||
|
||||
#include "clock.h"
|
||||
#include "cm.h"
|
||||
#include "cm-regbits-24xx.h"
|
||||
#include "cm-regbits-34xx.h"
|
||||
|
||||
/* Private functions */
|
||||
|
||||
/**
|
||||
* _omap2_get_clksel_by_parent - return clksel struct for a given clk & parent
|
||||
* _get_clksel_by_parent() - return clksel struct for a given clk & parent
|
||||
* @clk: OMAP struct clk ptr to inspect
|
||||
* @src_clk: OMAP struct clk ptr of the parent clk to search for
|
||||
*
|
||||
@ -44,141 +59,217 @@
|
||||
* the element associated with the supplied parent clock address.
|
||||
* Returns a pointer to the struct clksel on success or NULL on error.
|
||||
*/
|
||||
static const struct clksel *_omap2_get_clksel_by_parent(struct clk *clk,
|
||||
struct clk *src_clk)
|
||||
static const struct clksel *_get_clksel_by_parent(struct clk *clk,
|
||||
struct clk *src_clk)
|
||||
{
|
||||
const struct clksel *clks;
|
||||
|
||||
if (!clk->clksel)
|
||||
return NULL;
|
||||
|
||||
for (clks = clk->clksel; clks->parent; clks++) {
|
||||
for (clks = clk->clksel; clks->parent; clks++)
|
||||
if (clks->parent == src_clk)
|
||||
break; /* Found the requested parent */
|
||||
}
|
||||
|
||||
if (!clks->parent) {
|
||||
printk(KERN_ERR "clock: Could not find parent clock %s in "
|
||||
"clksel array of clock %s\n", src_clk->name,
|
||||
clk->name);
|
||||
/* This indicates a data problem */
|
||||
WARN(1, "clock: Could not find parent clock %s in clksel array "
|
||||
"of clock %s\n", src_clk->name, clk->name);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return clks;
|
||||
}
|
||||
|
||||
/*
|
||||
* Converts encoded control register address into a full address
|
||||
* On error, the return value (parent_div) will be 0.
|
||||
/**
|
||||
* _get_div_and_fieldval() - find the new clksel divisor and field value to use
|
||||
* @src_clk: planned new parent struct clk *
|
||||
* @clk: struct clk * that is being reparented
|
||||
* @field_val: pointer to a u32 to contain the register data for the divisor
|
||||
*
|
||||
* Given an intended new parent struct clk * @src_clk, and the struct
|
||||
* clk * @clk to the clock that is being reparented, find the
|
||||
* appropriate rate divisor for the new clock (returned as the return
|
||||
* value), and the corresponding register bitfield data to program to
|
||||
* reach that divisor (returned in the u32 pointed to by @field_val).
|
||||
* Returns 0 on error, or returns the newly-selected divisor upon
|
||||
* success (in this latter case, the corresponding register bitfield
|
||||
* value is passed back in the variable pointed to by @field_val)
|
||||
*/
|
||||
static u32 _omap2_clksel_get_src_field(struct clk *src_clk, struct clk *clk,
|
||||
u32 *field_val)
|
||||
static u8 _get_div_and_fieldval(struct clk *src_clk, struct clk *clk,
|
||||
u32 *field_val)
|
||||
{
|
||||
const struct clksel *clks;
|
||||
const struct clksel_rate *clkr, *max_clkr;
|
||||
u8 max_div = 0;
|
||||
|
||||
clks = _get_clksel_by_parent(clk, src_clk);
|
||||
if (!clks)
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* Find the highest divisor (e.g., the one resulting in the
|
||||
* lowest rate) to use as the default. This should avoid
|
||||
* clock rates that are too high for the device. XXX A better
|
||||
* solution here would be to try to determine if there is a
|
||||
* divisor matching the original clock rate before the parent
|
||||
* switch, and if it cannot be found, to fall back to the
|
||||
* highest divisor.
|
||||
*/
|
||||
for (clkr = clks->rates; clkr->div; clkr++) {
|
||||
if (!(clkr->flags & cpu_mask))
|
||||
continue;
|
||||
|
||||
if (clkr->div > max_div) {
|
||||
max_div = clkr->div;
|
||||
max_clkr = clkr;
|
||||
}
|
||||
}
|
||||
|
||||
if (max_div == 0) {
|
||||
/* This indicates an error in the clksel data */
|
||||
WARN(1, "clock: Could not find divisor for clock %s parent %s"
|
||||
"\n", clk->name, src_clk->parent->name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
*field_val = max_clkr->val;
|
||||
|
||||
return max_div;
|
||||
}
|
||||
|
||||
/**
|
||||
* _write_clksel_reg() - program a clock's clksel register in hardware
|
||||
* @clk: struct clk * to program
|
||||
* @v: clksel bitfield value to program (with LSB at bit 0)
|
||||
*
|
||||
* Shift the clksel register bitfield value @v to its appropriate
|
||||
* location in the clksel register and write it in. This function
|
||||
* will ensure that the write to the clksel_reg reaches its
|
||||
* destination before returning -- important since PRM and CM register
|
||||
* accesses can be quite slow compared to ARM cycles -- but does not
|
||||
* take into account any time the hardware might take to switch the
|
||||
* clock source.
|
||||
*/
|
||||
static void _write_clksel_reg(struct clk *clk, u32 field_val)
|
||||
{
|
||||
u32 v;
|
||||
|
||||
v = __raw_readl(clk->clksel_reg);
|
||||
v &= ~clk->clksel_mask;
|
||||
v |= field_val << __ffs(clk->clksel_mask);
|
||||
__raw_writel(v, clk->clksel_reg);
|
||||
|
||||
v = __raw_readl(clk->clksel_reg); /* OCP barrier */
|
||||
}
|
||||
|
||||
/**
|
||||
* _clksel_to_divisor() - turn clksel field value into integer divider
|
||||
* @clk: OMAP struct clk to use
|
||||
* @field_val: register field value to find
|
||||
*
|
||||
* Given a struct clk of a rate-selectable clksel clock, and a register field
|
||||
* value to search for, find the corresponding clock divisor. The register
|
||||
* field value should be pre-masked and shifted down so the LSB is at bit 0
|
||||
* before calling. Returns 0 on error or returns the actual integer divisor
|
||||
* upon success.
|
||||
*/
|
||||
static u32 _clksel_to_divisor(struct clk *clk, u32 field_val)
|
||||
{
|
||||
const struct clksel *clks;
|
||||
const struct clksel_rate *clkr;
|
||||
|
||||
clks = _omap2_get_clksel_by_parent(clk, src_clk);
|
||||
clks = _get_clksel_by_parent(clk, clk->parent);
|
||||
if (!clks)
|
||||
return 0;
|
||||
|
||||
for (clkr = clks->rates; clkr->div; clkr++) {
|
||||
if (clkr->flags & cpu_mask && clkr->flags & DEFAULT_RATE)
|
||||
break; /* Found the default rate for this platform */
|
||||
if (!(clkr->flags & cpu_mask))
|
||||
continue;
|
||||
|
||||
if (clkr->val == field_val)
|
||||
break;
|
||||
}
|
||||
|
||||
if (!clkr->div) {
|
||||
printk(KERN_ERR "clock: Could not find default rate for "
|
||||
"clock %s parent %s\n", clk->name,
|
||||
src_clk->parent->name);
|
||||
/* This indicates a data error */
|
||||
WARN(1, "clock: Could not find fieldval %d for clock %s parent "
|
||||
"%s\n", field_val, clk->name, clk->parent->name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Should never happen. Add a clksel mask to the struct clk. */
|
||||
WARN_ON(clk->clksel_mask == 0);
|
||||
|
||||
*field_val = clkr->val;
|
||||
|
||||
return clkr->div;
|
||||
}
|
||||
|
||||
/**
|
||||
* _divisor_to_clksel() - turn clksel integer divisor into a field value
|
||||
* @clk: OMAP struct clk to use
|
||||
* @div: integer divisor to search for
|
||||
*
|
||||
* Given a struct clk of a rate-selectable clksel clock, and a clock
|
||||
* divisor, find the corresponding register field value. Returns the
|
||||
* register field value _before_ left-shifting (i.e., LSB is at bit
|
||||
* 0); or returns 0xFFFFFFFF (~0) upon error.
|
||||
*/
|
||||
static u32 _divisor_to_clksel(struct clk *clk, u32 div)
|
||||
{
|
||||
const struct clksel *clks;
|
||||
const struct clksel_rate *clkr;
|
||||
|
||||
/* should never happen */
|
||||
WARN_ON(div == 0);
|
||||
|
||||
clks = _get_clksel_by_parent(clk, clk->parent);
|
||||
if (!clks)
|
||||
return ~0;
|
||||
|
||||
for (clkr = clks->rates; clkr->div; clkr++) {
|
||||
if (!(clkr->flags & cpu_mask))
|
||||
continue;
|
||||
|
||||
if (clkr->div == div)
|
||||
break;
|
||||
}
|
||||
|
||||
if (!clkr->div) {
|
||||
pr_err("clock: Could not find divisor %d for clock %s parent "
|
||||
"%s\n", div, clk->name, clk->parent->name);
|
||||
return ~0;
|
||||
}
|
||||
|
||||
return clkr->val;
|
||||
}
|
||||
|
||||
/**
|
||||
* _read_divisor() - get current divisor applied to parent clock (from hdwr)
|
||||
* @clk: OMAP struct clk to use.
|
||||
*
|
||||
* Read the current divisor register value for @clk that is programmed
|
||||
* into the hardware, convert it into the actual divisor value, and
|
||||
* return it; or return 0 on error.
|
||||
*/
|
||||
static u32 _read_divisor(struct clk *clk)
|
||||
{
|
||||
u32 v;
|
||||
|
||||
if (!clk->clksel || !clk->clksel_mask)
|
||||
return 0;
|
||||
|
||||
v = __raw_readl(clk->clksel_reg);
|
||||
v &= clk->clksel_mask;
|
||||
v >>= __ffs(clk->clksel_mask);
|
||||
|
||||
return _clksel_to_divisor(clk, v);
|
||||
}
|
||||
|
||||
/* Public functions */
|
||||
|
||||
/**
|
||||
* omap2_init_clksel_parent - set a clksel clk's parent field from the hardware
|
||||
* @clk: OMAP clock struct ptr to use
|
||||
*
|
||||
* Given a pointer to a source-selectable struct clk, read the hardware
|
||||
* register and determine what its parent is currently set to. Update the
|
||||
* clk->parent field with the appropriate clk ptr.
|
||||
*/
|
||||
void omap2_init_clksel_parent(struct clk *clk)
|
||||
{
|
||||
const struct clksel *clks;
|
||||
const struct clksel_rate *clkr;
|
||||
u32 r, found = 0;
|
||||
|
||||
if (!clk->clksel)
|
||||
return;
|
||||
|
||||
r = __raw_readl(clk->clksel_reg) & clk->clksel_mask;
|
||||
r >>= __ffs(clk->clksel_mask);
|
||||
|
||||
for (clks = clk->clksel; clks->parent && !found; clks++) {
|
||||
for (clkr = clks->rates; clkr->div && !found; clkr++) {
|
||||
if ((clkr->flags & cpu_mask) && (clkr->val == r)) {
|
||||
if (clk->parent != clks->parent) {
|
||||
pr_debug("clock: inited %s parent "
|
||||
"to %s (was %s)\n",
|
||||
clk->name, clks->parent->name,
|
||||
((clk->parent) ?
|
||||
clk->parent->name : "NULL"));
|
||||
clk_reparent(clk, clks->parent);
|
||||
};
|
||||
found = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!found)
|
||||
printk(KERN_ERR "clock: init parent: could not find "
|
||||
"regval %0x for clock %s\n", r, clk->name);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Used for clocks that are part of CLKSEL_xyz governed clocks.
|
||||
* REVISIT: Maybe change to use clk->enable() functions like on omap1?
|
||||
*/
|
||||
unsigned long omap2_clksel_recalc(struct clk *clk)
|
||||
{
|
||||
unsigned long rate;
|
||||
u32 div = 0;
|
||||
|
||||
pr_debug("clock: recalc'ing clksel clk %s\n", clk->name);
|
||||
|
||||
div = omap2_clksel_get_divisor(clk);
|
||||
if (div == 0)
|
||||
return clk->rate;
|
||||
|
||||
rate = clk->parent->rate / div;
|
||||
|
||||
pr_debug("clock: new clock rate is %ld (div %d)\n", rate, div);
|
||||
|
||||
return rate;
|
||||
}
|
||||
|
||||
/**
|
||||
* omap2_clksel_round_rate_div - find divisor for the given clock and rate
|
||||
* omap2_clksel_round_rate_div() - find divisor for the given clock and rate
|
||||
* @clk: OMAP struct clk to use
|
||||
* @target_rate: desired clock rate
|
||||
* @new_div: ptr to where we should store the divisor
|
||||
*
|
||||
* Finds 'best' divider value in an array based on the source and target
|
||||
* rates. The divider array must be sorted with smallest divider first.
|
||||
* Note that this will not work for clocks which are part of CONFIG_PARTICIPANT,
|
||||
* they are only settable as part of virtual_prcm set.
|
||||
* This function is also used by the DPLL3 M2 divider code.
|
||||
*
|
||||
* Returns the rounded clock rate or returns 0xffffffff on error.
|
||||
*/
|
||||
@ -190,12 +281,15 @@ u32 omap2_clksel_round_rate_div(struct clk *clk, unsigned long target_rate,
|
||||
const struct clksel_rate *clkr;
|
||||
u32 last_div = 0;
|
||||
|
||||
if (!clk->clksel || !clk->clksel_mask)
|
||||
return ~0;
|
||||
|
||||
pr_debug("clock: clksel_round_rate_div: %s target_rate %ld\n",
|
||||
clk->name, target_rate);
|
||||
|
||||
*new_div = 1;
|
||||
|
||||
clks = _omap2_get_clksel_by_parent(clk, clk->parent);
|
||||
clks = _get_clksel_by_parent(clk, clk->parent);
|
||||
if (!clks)
|
||||
return ~0;
|
||||
|
||||
@ -231,16 +325,92 @@ u32 omap2_clksel_round_rate_div(struct clk *clk, unsigned long target_rate,
|
||||
return clk->parent->rate / clkr->div;
|
||||
}
|
||||
|
||||
/*
|
||||
* Clocktype interface functions to the OMAP clock code
|
||||
* (i.e., those used in struct clk field function pointers, etc.)
|
||||
*/
|
||||
|
||||
/**
|
||||
* omap2_clksel_round_rate - find rounded rate for the given clock and rate
|
||||
* omap2_init_clksel_parent() - set a clksel clk's parent field from the hdwr
|
||||
* @clk: OMAP clock struct ptr to use
|
||||
*
|
||||
* Given a pointer @clk to a source-selectable struct clk, read the
|
||||
* hardware register and determine what its parent is currently set
|
||||
* to. Update @clk's .parent field with the appropriate clk ptr. No
|
||||
* return value.
|
||||
*/
|
||||
void omap2_init_clksel_parent(struct clk *clk)
|
||||
{
|
||||
const struct clksel *clks;
|
||||
const struct clksel_rate *clkr;
|
||||
u32 r, found = 0;
|
||||
|
||||
if (!clk->clksel || !clk->clksel_mask)
|
||||
return;
|
||||
|
||||
r = __raw_readl(clk->clksel_reg) & clk->clksel_mask;
|
||||
r >>= __ffs(clk->clksel_mask);
|
||||
|
||||
for (clks = clk->clksel; clks->parent && !found; clks++) {
|
||||
for (clkr = clks->rates; clkr->div && !found; clkr++) {
|
||||
if (!(clkr->flags & cpu_mask))
|
||||
continue;
|
||||
|
||||
if (clkr->val == r) {
|
||||
if (clk->parent != clks->parent) {
|
||||
pr_debug("clock: inited %s parent "
|
||||
"to %s (was %s)\n",
|
||||
clk->name, clks->parent->name,
|
||||
((clk->parent) ?
|
||||
clk->parent->name : "NULL"));
|
||||
clk_reparent(clk, clks->parent);
|
||||
};
|
||||
found = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* This indicates a data error */
|
||||
WARN(!found, "clock: %s: init parent: could not find regval %0x\n",
|
||||
clk->name, r);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* omap2_clksel_recalc() - function ptr to pass via struct clk .recalc field
|
||||
* @clk: struct clk *
|
||||
*
|
||||
* This function is intended to be called only by the clock framework.
|
||||
* Each clksel clock should have its struct clk .recalc field set to this
|
||||
* function. Returns the clock's current rate, based on its parent's rate
|
||||
* and its current divisor setting in the hardware.
|
||||
*/
|
||||
unsigned long omap2_clksel_recalc(struct clk *clk)
|
||||
{
|
||||
unsigned long rate;
|
||||
u32 div = 0;
|
||||
|
||||
div = _read_divisor(clk);
|
||||
if (div == 0)
|
||||
return clk->rate;
|
||||
|
||||
rate = clk->parent->rate / div;
|
||||
|
||||
pr_debug("clock: %s: recalc'd rate is %ld (div %d)\n", clk->name,
|
||||
rate, div);
|
||||
|
||||
return rate;
|
||||
}
|
||||
|
||||
/**
|
||||
* omap2_clksel_round_rate() - find rounded rate for the given clock and rate
|
||||
* @clk: OMAP struct clk to use
|
||||
* @target_rate: desired clock rate
|
||||
*
|
||||
* Compatibility wrapper for OMAP clock framework
|
||||
* This function is intended to be called only by the clock framework.
|
||||
* Finds best target rate based on the source clock and possible dividers.
|
||||
* rates. The divider array must be sorted with smallest divider first.
|
||||
* Note that this will not work for clocks which are part of CONFIG_PARTICIPANT,
|
||||
* they are only settable as part of virtual_prcm set.
|
||||
*
|
||||
* Returns the rounded clock rate or returns 0xffffffff on error.
|
||||
*/
|
||||
@ -251,148 +421,78 @@ long omap2_clksel_round_rate(struct clk *clk, unsigned long target_rate)
|
||||
return omap2_clksel_round_rate_div(clk, target_rate, &new_div);
|
||||
}
|
||||
|
||||
|
||||
/* Given a clock and a rate apply a clock specific rounding function */
|
||||
long omap2_clk_round_rate(struct clk *clk, unsigned long rate)
|
||||
{
|
||||
if (clk->round_rate)
|
||||
return clk->round_rate(clk, rate);
|
||||
|
||||
return clk->rate;
|
||||
}
|
||||
|
||||
/**
|
||||
* omap2_clksel_to_divisor() - turn clksel field value into integer divider
|
||||
* @clk: OMAP struct clk to use
|
||||
* @field_val: register field value to find
|
||||
* omap2_clksel_set_rate() - program clock rate in hardware
|
||||
* @clk: struct clk * to program rate
|
||||
* @rate: target rate to program
|
||||
*
|
||||
* Given a struct clk of a rate-selectable clksel clock, and a register field
|
||||
* value to search for, find the corresponding clock divisor. The register
|
||||
* field value should be pre-masked and shifted down so the LSB is at bit 0
|
||||
* before calling. Returns 0 on error
|
||||
* This function is intended to be called only by the clock framework.
|
||||
* Program @clk's rate to @rate in the hardware. The clock can be
|
||||
* either enabled or disabled when this happens, although if the clock
|
||||
* is enabled, some downstream devices may glitch or behave
|
||||
* unpredictably when the clock rate is changed - this depends on the
|
||||
* hardware. This function does not currently check the usecount of
|
||||
* the clock, so if multiple drivers are using the clock, and the rate
|
||||
* is changed, they will all be affected without any notification.
|
||||
* Returns -EINVAL upon error, or 0 upon success.
|
||||
*/
|
||||
u32 omap2_clksel_to_divisor(struct clk *clk, u32 field_val)
|
||||
{
|
||||
const struct clksel *clks;
|
||||
const struct clksel_rate *clkr;
|
||||
|
||||
clks = _omap2_get_clksel_by_parent(clk, clk->parent);
|
||||
if (!clks)
|
||||
return 0;
|
||||
|
||||
for (clkr = clks->rates; clkr->div; clkr++) {
|
||||
if ((clkr->flags & cpu_mask) && (clkr->val == field_val))
|
||||
break;
|
||||
}
|
||||
|
||||
if (!clkr->div) {
|
||||
printk(KERN_ERR "clock: Could not find fieldval %d for "
|
||||
"clock %s parent %s\n", field_val, clk->name,
|
||||
clk->parent->name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return clkr->div;
|
||||
}
|
||||
|
||||
/**
|
||||
* omap2_divisor_to_clksel() - turn clksel integer divisor into a field value
|
||||
* @clk: OMAP struct clk to use
|
||||
* @div: integer divisor to search for
|
||||
*
|
||||
* Given a struct clk of a rate-selectable clksel clock, and a clock divisor,
|
||||
* find the corresponding register field value. The return register value is
|
||||
* the value before left-shifting. Returns ~0 on error
|
||||
*/
|
||||
u32 omap2_divisor_to_clksel(struct clk *clk, u32 div)
|
||||
{
|
||||
const struct clksel *clks;
|
||||
const struct clksel_rate *clkr;
|
||||
|
||||
/* should never happen */
|
||||
WARN_ON(div == 0);
|
||||
|
||||
clks = _omap2_get_clksel_by_parent(clk, clk->parent);
|
||||
if (!clks)
|
||||
return ~0;
|
||||
|
||||
for (clkr = clks->rates; clkr->div; clkr++) {
|
||||
if ((clkr->flags & cpu_mask) && (clkr->div == div))
|
||||
break;
|
||||
}
|
||||
|
||||
if (!clkr->div) {
|
||||
printk(KERN_ERR "clock: Could not find divisor %d for "
|
||||
"clock %s parent %s\n", div, clk->name,
|
||||
clk->parent->name);
|
||||
return ~0;
|
||||
}
|
||||
|
||||
return clkr->val;
|
||||
}
|
||||
|
||||
/**
|
||||
* omap2_clksel_get_divisor - get current divider applied to parent clock.
|
||||
* @clk: OMAP struct clk to use.
|
||||
*
|
||||
* Returns the integer divisor upon success or 0 on error.
|
||||
*/
|
||||
u32 omap2_clksel_get_divisor(struct clk *clk)
|
||||
{
|
||||
u32 v;
|
||||
|
||||
if (!clk->clksel_mask)
|
||||
return 0;
|
||||
|
||||
v = __raw_readl(clk->clksel_reg) & clk->clksel_mask;
|
||||
v >>= __ffs(clk->clksel_mask);
|
||||
|
||||
return omap2_clksel_to_divisor(clk, v);
|
||||
}
|
||||
|
||||
int omap2_clksel_set_rate(struct clk *clk, unsigned long rate)
|
||||
{
|
||||
u32 v, field_val, validrate, new_div = 0;
|
||||
u32 field_val, validrate, new_div = 0;
|
||||
|
||||
if (!clk->clksel_mask)
|
||||
if (!clk->clksel || !clk->clksel_mask)
|
||||
return -EINVAL;
|
||||
|
||||
validrate = omap2_clksel_round_rate_div(clk, rate, &new_div);
|
||||
if (validrate != rate)
|
||||
return -EINVAL;
|
||||
|
||||
field_val = omap2_divisor_to_clksel(clk, new_div);
|
||||
field_val = _divisor_to_clksel(clk, new_div);
|
||||
if (field_val == ~0)
|
||||
return -EINVAL;
|
||||
|
||||
v = __raw_readl(clk->clksel_reg);
|
||||
v &= ~clk->clksel_mask;
|
||||
v |= field_val << __ffs(clk->clksel_mask);
|
||||
__raw_writel(v, clk->clksel_reg);
|
||||
v = __raw_readl(clk->clksel_reg); /* OCP barrier */
|
||||
_write_clksel_reg(clk, field_val);
|
||||
|
||||
clk->rate = clk->parent->rate / new_div;
|
||||
|
||||
pr_debug("clock: %s: set rate to %ld\n", clk->name, clk->rate);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Clksel parent setting function - not passed in struct clk function
|
||||
* pointer - instead, the OMAP clock code currently assumes that any
|
||||
* parent-setting clock is a clksel clock, and calls
|
||||
* omap2_clksel_set_parent() by default
|
||||
*/
|
||||
|
||||
/**
|
||||
* omap2_clksel_set_parent() - change a clock's parent clock
|
||||
* @clk: struct clk * of the child clock
|
||||
* @new_parent: struct clk * of the new parent clock
|
||||
*
|
||||
* This function is intended to be called only by the clock framework.
|
||||
* Change the parent clock of clock @clk to @new_parent. This is
|
||||
* intended to be used while @clk is disabled. This function does not
|
||||
* currently check the usecount of the clock, so if multiple drivers
|
||||
* are using the clock, and the parent is changed, they will all be
|
||||
* affected without any notification. Returns -EINVAL upon error, or
|
||||
* 0 upon success.
|
||||
*/
|
||||
int omap2_clksel_set_parent(struct clk *clk, struct clk *new_parent)
|
||||
{
|
||||
u32 field_val, v, parent_div;
|
||||
u32 field_val = 0;
|
||||
u32 parent_div;
|
||||
|
||||
if (!clk->clksel)
|
||||
if (!clk->clksel || !clk->clksel_mask)
|
||||
return -EINVAL;
|
||||
|
||||
parent_div = _omap2_clksel_get_src_field(new_parent, clk, &field_val);
|
||||
parent_div = _get_div_and_fieldval(new_parent, clk, &field_val);
|
||||
if (!parent_div)
|
||||
return -EINVAL;
|
||||
|
||||
/* Set new source value (previous dividers if any in effect) */
|
||||
v = __raw_readl(clk->clksel_reg);
|
||||
v &= ~clk->clksel_mask;
|
||||
v |= field_val << __ffs(clk->clksel_mask);
|
||||
__raw_writel(v, clk->clksel_reg);
|
||||
v = __raw_readl(clk->clksel_reg); /* OCP barrier */
|
||||
_write_clksel_reg(clk, field_val);
|
||||
|
||||
clk_reparent(clk, new_parent);
|
||||
|
||||
@ -402,7 +502,7 @@ int omap2_clksel_set_parent(struct clk *clk, struct clk *new_parent)
|
||||
if (parent_div > 0)
|
||||
clk->rate /= parent_div;
|
||||
|
||||
pr_debug("clock: set parent of %s to %s (new rate %ld)\n",
|
||||
pr_debug("clock: %s: set parent to %s (new rate %ld)\n",
|
||||
clk->name, clk->parent->name, clk->rate);
|
||||
|
||||
return 0;
|
||||
|
@ -334,6 +334,15 @@ oce_err1:
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Given a clock and a rate apply a clock specific rounding function */
|
||||
long omap2_clk_round_rate(struct clk *clk, unsigned long rate)
|
||||
{
|
||||
if (clk->round_rate)
|
||||
return clk->round_rate(clk, rate);
|
||||
|
||||
return clk->rate;
|
||||
}
|
||||
|
||||
/* Set the clock rate for a clock source */
|
||||
int omap2_clk_set_rate(struct clk *clk, unsigned long rate)
|
||||
{
|
||||
|
@ -73,19 +73,20 @@ void omap2_clk_disable_unused(struct clk *clk);
|
||||
#define omap2_clk_disable_unused NULL
|
||||
#endif
|
||||
|
||||
unsigned long omap2_clksel_recalc(struct clk *clk);
|
||||
void omap2_init_clk_clkdm(struct clk *clk);
|
||||
void omap2_init_clksel_parent(struct clk *clk);
|
||||
u32 omap2_clksel_get_divisor(struct clk *clk);
|
||||
|
||||
/* clkt_clksel.c public functions */
|
||||
u32 omap2_clksel_round_rate_div(struct clk *clk, unsigned long target_rate,
|
||||
u32 *new_div);
|
||||
u32 omap2_clksel_to_divisor(struct clk *clk, u32 field_val);
|
||||
u32 omap2_divisor_to_clksel(struct clk *clk, u32 div);
|
||||
void omap2_init_clksel_parent(struct clk *clk);
|
||||
unsigned long omap2_clksel_recalc(struct clk *clk);
|
||||
long omap2_clksel_round_rate(struct clk *clk, unsigned long target_rate);
|
||||
int omap2_clksel_set_rate(struct clk *clk, unsigned long rate);
|
||||
int omap2_clksel_set_parent(struct clk *clk, struct clk *new_parent);
|
||||
|
||||
u32 omap2_get_dpll_rate(struct clk *clk);
|
||||
void omap2_init_dpll_parent(struct clk *clk);
|
||||
|
||||
int omap2_wait_clock_ready(void __iomem *reg, u32 cval, const char *name);
|
||||
|
||||
|
||||
|
@ -155,12 +155,12 @@ static struct clk apll54_ck = {
|
||||
/* func_54m_ck */
|
||||
|
||||
static const struct clksel_rate func_54m_apll54_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
static const struct clksel_rate func_54m_alt_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
@ -177,7 +177,7 @@ static struct clk func_54m_ck = {
|
||||
.clkdm_name = "wkup_clkdm",
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.clksel_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKSEL1),
|
||||
.clksel_mask = OMAP24XX_54M_SOURCE,
|
||||
.clksel_mask = OMAP24XX_54M_SOURCE_MASK,
|
||||
.clksel = func_54m_clksel,
|
||||
.recalc = &omap2_clksel_recalc,
|
||||
};
|
||||
@ -201,12 +201,12 @@ static struct clk func_96m_ck = {
|
||||
/* func_48m_ck */
|
||||
|
||||
static const struct clksel_rate func_48m_apll96_rates[] = {
|
||||
{ .div = 2, .val = 0, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 0, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
static const struct clksel_rate func_48m_alt_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
@ -223,7 +223,7 @@ static struct clk func_48m_ck = {
|
||||
.clkdm_name = "wkup_clkdm",
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.clksel_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKSEL1),
|
||||
.clksel_mask = OMAP24XX_48M_SOURCE,
|
||||
.clksel_mask = OMAP24XX_48M_SOURCE_MASK,
|
||||
.clksel = func_48m_clksel,
|
||||
.recalc = &omap2_clksel_recalc,
|
||||
.round_rate = &omap2_clksel_round_rate,
|
||||
@ -256,22 +256,22 @@ static struct clk wdt1_osc_ck = {
|
||||
* flags fields, which mark them as 2420-only.
|
||||
*/
|
||||
static const struct clksel_rate common_clkout_src_core_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate common_clkout_src_sys_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate common_clkout_src_96m_rates[] = {
|
||||
{ .div = 1, .val = 2, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate common_clkout_src_54m_rates[] = {
|
||||
{ .div = 1, .val = 3, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 3, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -300,7 +300,7 @@ static struct clk sys_clkout_src = {
|
||||
};
|
||||
|
||||
static const struct clksel_rate common_clkout_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX },
|
||||
{ .div = 2, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 4, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 8, .val = 3, .flags = RATE_IN_24XX },
|
||||
@ -384,7 +384,7 @@ static struct clk emul_ck = {
|
||||
*
|
||||
*/
|
||||
static const struct clksel_rate mpu_core_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_242X },
|
||||
{ .div = 6, .val = 6, .flags = RATE_IN_242X },
|
||||
@ -420,7 +420,7 @@ static struct clk mpu_ck = { /* Control cpu */
|
||||
* routed into a synchronizer and out of clocks abc.
|
||||
*/
|
||||
static const struct clksel_rate dsp_fck_core_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_24XX },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_24XX },
|
||||
@ -450,7 +450,7 @@ static struct clk dsp_fck = {
|
||||
|
||||
/* DSP interface clock */
|
||||
static const struct clksel_rate dsp_irate_ick_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
@ -532,7 +532,7 @@ static struct clk iva1_mpu_int_ifck = {
|
||||
static const struct clksel_rate core_l3_core_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_242X },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_24XX },
|
||||
{ .div = 6, .val = 6, .flags = RATE_IN_24XX },
|
||||
{ .div = 8, .val = 8, .flags = RATE_IN_242X },
|
||||
{ .div = 12, .val = 12, .flags = RATE_IN_242X },
|
||||
@ -559,7 +559,7 @@ static struct clk core_l3_ck = { /* Used for ick and fck, interconnect */
|
||||
/* usb_l4_ick */
|
||||
static const struct clksel_rate usb_l4_ick_core_l3_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
@ -591,7 +591,7 @@ static struct clk usb_l4_ick = { /* FS-USB interface clock */
|
||||
* this domain.
|
||||
*/
|
||||
static const struct clksel_rate l4_core_l3_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
@ -622,7 +622,7 @@ static struct clk l4_ck = { /* used both as an ick and fck */
|
||||
*/
|
||||
static const struct clksel_rate ssi_ssr_sst_fck_core_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_24XX },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_24XX },
|
||||
{ .div = 6, .val = 6, .flags = RATE_IN_242X },
|
||||
@ -730,7 +730,7 @@ static struct clk gfx_ick = {
|
||||
/* XXX Add RATE_NOT_VALIDATED */
|
||||
|
||||
static const struct clksel_rate dss1_fck_sys_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -744,7 +744,7 @@ static const struct clksel_rate dss1_fck_core_rates[] = {
|
||||
{ .div = 8, .val = 8, .flags = RATE_IN_24XX },
|
||||
{ .div = 9, .val = 9, .flags = RATE_IN_24XX },
|
||||
{ .div = 12, .val = 12, .flags = RATE_IN_24XX },
|
||||
{ .div = 16, .val = 16, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 16, .val = 16, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -779,12 +779,12 @@ static struct clk dss1_fck = {
|
||||
};
|
||||
|
||||
static const struct clksel_rate dss2_fck_sys_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate dss2_fck_48m_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -825,7 +825,7 @@ static struct clk dss_54m_fck = { /* Alt clk used in power management */
|
||||
* functional clock parents.
|
||||
*/
|
||||
static const struct clksel_rate gpt_alt_rates[] = {
|
||||
{ .div = 1, .val = 2, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -1588,7 +1588,7 @@ static struct clk vlynq_ick = {
|
||||
};
|
||||
|
||||
static const struct clksel_rate vlynq_fck_96m_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_242X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_242X },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -1601,7 +1601,7 @@ static const struct clksel_rate vlynq_fck_core_rates[] = {
|
||||
{ .div = 8, .val = 8, .flags = RATE_IN_242X },
|
||||
{ .div = 9, .val = 9, .flags = RATE_IN_242X },
|
||||
{ .div = 12, .val = 12, .flags = RATE_IN_242X },
|
||||
{ .div = 16, .val = 16, .flags = RATE_IN_242X | DEFAULT_RATE },
|
||||
{ .div = 16, .val = 16, .flags = RATE_IN_242X },
|
||||
{ .div = 18, .val = 18, .flags = RATE_IN_242X },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
@ -155,12 +155,12 @@ static struct clk apll54_ck = {
|
||||
/* func_54m_ck */
|
||||
|
||||
static const struct clksel_rate func_54m_apll54_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
static const struct clksel_rate func_54m_alt_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
@ -177,7 +177,7 @@ static struct clk func_54m_ck = {
|
||||
.clkdm_name = "wkup_clkdm",
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.clksel_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKSEL1),
|
||||
.clksel_mask = OMAP24XX_54M_SOURCE,
|
||||
.clksel_mask = OMAP24XX_54M_SOURCE_MASK,
|
||||
.clksel = func_54m_clksel,
|
||||
.recalc = &omap2_clksel_recalc,
|
||||
};
|
||||
@ -192,12 +192,12 @@ static struct clk core_ck = {
|
||||
|
||||
/* func_96m_ck */
|
||||
static const struct clksel_rate func_96m_apll96_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
static const struct clksel_rate func_96m_alt_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_243X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_243X },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
@ -214,7 +214,7 @@ static struct clk func_96m_ck = {
|
||||
.clkdm_name = "wkup_clkdm",
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.clksel_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKSEL1),
|
||||
.clksel_mask = OMAP2430_96M_SOURCE,
|
||||
.clksel_mask = OMAP2430_96M_SOURCE_MASK,
|
||||
.clksel = func_96m_clksel,
|
||||
.recalc = &omap2_clksel_recalc,
|
||||
};
|
||||
@ -222,12 +222,12 @@ static struct clk func_96m_ck = {
|
||||
/* func_48m_ck */
|
||||
|
||||
static const struct clksel_rate func_48m_apll96_rates[] = {
|
||||
{ .div = 2, .val = 0, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 0, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
static const struct clksel_rate func_48m_alt_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
@ -244,7 +244,7 @@ static struct clk func_48m_ck = {
|
||||
.clkdm_name = "wkup_clkdm",
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.clksel_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKSEL1),
|
||||
.clksel_mask = OMAP24XX_48M_SOURCE,
|
||||
.clksel_mask = OMAP24XX_48M_SOURCE_MASK,
|
||||
.clksel = func_48m_clksel,
|
||||
.recalc = &omap2_clksel_recalc,
|
||||
.round_rate = &omap2_clksel_round_rate,
|
||||
@ -277,22 +277,22 @@ static struct clk wdt1_osc_ck = {
|
||||
* flags fields, which mark them as 2420-only.
|
||||
*/
|
||||
static const struct clksel_rate common_clkout_src_core_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate common_clkout_src_sys_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate common_clkout_src_96m_rates[] = {
|
||||
{ .div = 1, .val = 2, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate common_clkout_src_54m_rates[] = {
|
||||
{ .div = 1, .val = 3, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 3, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -321,7 +321,7 @@ static struct clk sys_clkout_src = {
|
||||
};
|
||||
|
||||
static const struct clksel_rate common_clkout_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX },
|
||||
{ .div = 2, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 4, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 8, .val = 3, .flags = RATE_IN_24XX },
|
||||
@ -369,7 +369,7 @@ static struct clk emul_ck = {
|
||||
*
|
||||
*/
|
||||
static const struct clksel_rate mpu_core_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
@ -402,7 +402,7 @@ static struct clk mpu_ck = { /* Control cpu */
|
||||
* routed into a synchronizer and out of clocks abc.
|
||||
*/
|
||||
static const struct clksel_rate dsp_fck_core_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_24XX },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_24XX },
|
||||
@ -429,7 +429,7 @@ static struct clk dsp_fck = {
|
||||
|
||||
/* DSP interface clock */
|
||||
static const struct clksel_rate dsp_irate_ick_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_243X },
|
||||
{ .div = 0 },
|
||||
@ -481,7 +481,7 @@ static struct clk iva2_1_ick = {
|
||||
*/
|
||||
static const struct clksel_rate core_l3_core_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_24XX },
|
||||
{ .div = 6, .val = 6, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
@ -505,7 +505,7 @@ static struct clk core_l3_ck = { /* Used for ick and fck, interconnect */
|
||||
/* usb_l4_ick */
|
||||
static const struct clksel_rate usb_l4_ick_core_l3_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
@ -537,7 +537,7 @@ static struct clk usb_l4_ick = { /* FS-USB interface clock */
|
||||
* this domain.
|
||||
*/
|
||||
static const struct clksel_rate l4_core_l3_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
@ -568,7 +568,7 @@ static struct clk l4_ck = { /* used both as an ick and fck */
|
||||
*/
|
||||
static const struct clksel_rate ssi_ssr_sst_fck_core_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_24XX },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_24XX },
|
||||
{ .div = 5, .val = 5, .flags = RATE_IN_243X },
|
||||
@ -673,7 +673,7 @@ static struct clk gfx_ick = {
|
||||
*/
|
||||
static const struct clksel_rate mdm_ick_core_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_243X },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_243X | DEFAULT_RATE },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_243X },
|
||||
{ .div = 6, .val = 6, .flags = RATE_IN_243X },
|
||||
{ .div = 9, .val = 9, .flags = RATE_IN_243X },
|
||||
{ .div = 0 }
|
||||
@ -718,7 +718,7 @@ static struct clk mdm_osc_ck = {
|
||||
/* XXX Add RATE_NOT_VALIDATED */
|
||||
|
||||
static const struct clksel_rate dss1_fck_sys_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -732,7 +732,7 @@ static const struct clksel_rate dss1_fck_core_rates[] = {
|
||||
{ .div = 8, .val = 8, .flags = RATE_IN_24XX },
|
||||
{ .div = 9, .val = 9, .flags = RATE_IN_24XX },
|
||||
{ .div = 12, .val = 12, .flags = RATE_IN_24XX },
|
||||
{ .div = 16, .val = 16, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 16, .val = 16, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -767,12 +767,12 @@ static struct clk dss1_fck = {
|
||||
};
|
||||
|
||||
static const struct clksel_rate dss2_fck_sys_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate dss2_fck_48m_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -813,7 +813,7 @@ static struct clk dss_54m_fck = { /* Alt clk used in power management */
|
||||
* functional clock parents.
|
||||
*/
|
||||
static const struct clksel_rate gpt_alt_rates[] = {
|
||||
{ .div = 1, .val = 2, .flags = RATE_IN_24XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 2, .flags = RATE_IN_24XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
|
@ -110,32 +110,32 @@ static struct clk virt_38_4m_ck = {
|
||||
};
|
||||
|
||||
static const struct clksel_rate osc_sys_12m_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate osc_sys_13m_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate osc_sys_16_8m_rates[] = {
|
||||
{ .div = 1, .val = 5, .flags = RATE_IN_3430ES2 | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 5, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate osc_sys_19_2m_rates[] = {
|
||||
{ .div = 1, .val = 2, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 2, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate osc_sys_26m_rates[] = {
|
||||
{ .div = 1, .val = 3, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 3, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate osc_sys_38_4m_rates[] = {
|
||||
{ .div = 1, .val = 4, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 4, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -163,8 +163,8 @@ static struct clk osc_sys_ck = {
|
||||
};
|
||||
|
||||
static const struct clksel_rate div2_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_343X },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -213,42 +213,42 @@ static struct clk sys_clkout1 = {
|
||||
/* CM CLOCKS */
|
||||
|
||||
static const struct clksel_rate div16_dpll_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_343X },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_343X },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_343X },
|
||||
{ .div = 5, .val = 5, .flags = RATE_IN_343X },
|
||||
{ .div = 6, .val = 6, .flags = RATE_IN_343X },
|
||||
{ .div = 7, .val = 7, .flags = RATE_IN_343X },
|
||||
{ .div = 8, .val = 8, .flags = RATE_IN_343X },
|
||||
{ .div = 9, .val = 9, .flags = RATE_IN_343X },
|
||||
{ .div = 10, .val = 10, .flags = RATE_IN_343X },
|
||||
{ .div = 11, .val = 11, .flags = RATE_IN_343X },
|
||||
{ .div = 12, .val = 12, .flags = RATE_IN_343X },
|
||||
{ .div = 13, .val = 13, .flags = RATE_IN_343X },
|
||||
{ .div = 14, .val = 14, .flags = RATE_IN_343X },
|
||||
{ .div = 15, .val = 15, .flags = RATE_IN_343X },
|
||||
{ .div = 16, .val = 16, .flags = RATE_IN_343X },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_3XXX },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_3XXX },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_3XXX },
|
||||
{ .div = 5, .val = 5, .flags = RATE_IN_3XXX },
|
||||
{ .div = 6, .val = 6, .flags = RATE_IN_3XXX },
|
||||
{ .div = 7, .val = 7, .flags = RATE_IN_3XXX },
|
||||
{ .div = 8, .val = 8, .flags = RATE_IN_3XXX },
|
||||
{ .div = 9, .val = 9, .flags = RATE_IN_3XXX },
|
||||
{ .div = 10, .val = 10, .flags = RATE_IN_3XXX },
|
||||
{ .div = 11, .val = 11, .flags = RATE_IN_3XXX },
|
||||
{ .div = 12, .val = 12, .flags = RATE_IN_3XXX },
|
||||
{ .div = 13, .val = 13, .flags = RATE_IN_3XXX },
|
||||
{ .div = 14, .val = 14, .flags = RATE_IN_3XXX },
|
||||
{ .div = 15, .val = 15, .flags = RATE_IN_3XXX },
|
||||
{ .div = 16, .val = 16, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate div32_dpll4_rates_3630[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_36XX | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_36XX },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_36XX },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_36XX },
|
||||
{ .div = 5, .val = 5, .flags = RATE_IN_36XX },
|
||||
{ .div = 6, .val = 6, .flags = RATE_IN_36XX },
|
||||
{ .div = 7, .val = 7, .flags = RATE_IN_36XX },
|
||||
{ .div = 8, .val = 8, .flags = RATE_IN_36XX },
|
||||
{ .div = 9, .val = 9, .flags = RATE_IN_36XX },
|
||||
{ .div = 10, .val = 10, .flags = RATE_IN_36XX },
|
||||
{ .div = 11, .val = 11, .flags = RATE_IN_36XX },
|
||||
{ .div = 12, .val = 12, .flags = RATE_IN_36XX },
|
||||
{ .div = 13, .val = 13, .flags = RATE_IN_36XX },
|
||||
{ .div = 14, .val = 14, .flags = RATE_IN_36XX },
|
||||
{ .div = 15, .val = 15, .flags = RATE_IN_36XX },
|
||||
{ .div = 16, .val = 16, .flags = RATE_IN_36XX },
|
||||
static const struct clksel_rate dpll4_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_3XXX },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_3XXX },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_3XXX },
|
||||
{ .div = 5, .val = 5, .flags = RATE_IN_3XXX },
|
||||
{ .div = 6, .val = 6, .flags = RATE_IN_3XXX },
|
||||
{ .div = 7, .val = 7, .flags = RATE_IN_3XXX },
|
||||
{ .div = 8, .val = 8, .flags = RATE_IN_3XXX },
|
||||
{ .div = 9, .val = 9, .flags = RATE_IN_3XXX },
|
||||
{ .div = 10, .val = 10, .flags = RATE_IN_3XXX },
|
||||
{ .div = 11, .val = 11, .flags = RATE_IN_3XXX },
|
||||
{ .div = 12, .val = 12, .flags = RATE_IN_3XXX },
|
||||
{ .div = 13, .val = 13, .flags = RATE_IN_3XXX },
|
||||
{ .div = 14, .val = 14, .flags = RATE_IN_3XXX },
|
||||
{ .div = 15, .val = 15, .flags = RATE_IN_3XXX },
|
||||
{ .div = 16, .val = 16, .flags = RATE_IN_3XXX },
|
||||
{ .div = 17, .val = 17, .flags = RATE_IN_36XX },
|
||||
{ .div = 18, .val = 18, .flags = RATE_IN_36XX },
|
||||
{ .div = 19, .val = 19, .flags = RATE_IN_36XX },
|
||||
@ -450,37 +450,37 @@ static struct clk dpll3_x2_ck = {
|
||||
};
|
||||
|
||||
static const struct clksel_rate div31_dpll3_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_343X },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 5, .val = 5, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 6, .val = 6, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 7, .val = 7, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 8, .val = 8, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 9, .val = 9, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 10, .val = 10, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 11, .val = 11, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 12, .val = 12, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 13, .val = 13, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 14, .val = 14, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 15, .val = 15, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 16, .val = 16, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 17, .val = 17, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 18, .val = 18, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 19, .val = 19, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 20, .val = 20, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 21, .val = 21, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 22, .val = 22, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 23, .val = 23, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 24, .val = 24, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 25, .val = 25, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 26, .val = 26, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 27, .val = 27, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 28, .val = 28, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 29, .val = 29, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 30, .val = 30, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 31, .val = 31, .flags = RATE_IN_3430ES2 },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_3XXX },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 5, .val = 5, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 6, .val = 6, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 7, .val = 7, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 8, .val = 8, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 9, .val = 9, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 10, .val = 10, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 11, .val = 11, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 12, .val = 12, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 13, .val = 13, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 14, .val = 14, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 15, .val = 15, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 16, .val = 16, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 17, .val = 17, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 18, .val = 18, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 19, .val = 19, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 20, .val = 20, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 21, .val = 21, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 22, .val = 22, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 23, .val = 23, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 24, .val = 24, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 25, .val = 25, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 26, .val = 26, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 27, .val = 27, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 28, .val = 28, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 29, .val = 29, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 30, .val = 30, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 31, .val = 31, .flags = RATE_IN_3430ES2PLUS },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
@ -562,6 +562,7 @@ static struct clk emu_core_alwon_ck = {
|
||||
/* Supplies 96MHz, 54Mhz TV DAC, DSS fclk, CAM sensor clock, emul trace clk */
|
||||
/* Type: DPLL */
|
||||
static struct dpll_data dpll4_dd;
|
||||
|
||||
static struct dpll_data dpll4_dd_34xx __initdata = {
|
||||
.mult_div1_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKSEL2),
|
||||
.mult_mask = OMAP3430_PERIPH_DPLL_MULT_MASK,
|
||||
@ -632,39 +633,20 @@ static struct clk dpll4_x2_ck = {
|
||||
.recalc = &omap3_clkoutx2_recalc,
|
||||
};
|
||||
|
||||
static const struct clksel div16_dpll4_clksel[] = {
|
||||
{ .parent = &dpll4_ck, .rates = div16_dpll_rates },
|
||||
{ .parent = NULL }
|
||||
};
|
||||
|
||||
static const struct clksel div32_dpll4_clksel[] = {
|
||||
{ .parent = &dpll4_ck, .rates = div32_dpll4_rates_3630 },
|
||||
static const struct clksel dpll4_clksel[] = {
|
||||
{ .parent = &dpll4_ck, .rates = dpll4_rates },
|
||||
{ .parent = NULL }
|
||||
};
|
||||
|
||||
/* This virtual clock is the source for dpll4_m2x2_ck */
|
||||
static struct clk dpll4_m2_ck;
|
||||
|
||||
static struct clk dpll4_m2_ck_34xx __initdata = {
|
||||
.name = "dpll4_m2_ck",
|
||||
.ops = &clkops_null,
|
||||
.parent = &dpll4_ck,
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.clksel_reg = OMAP_CM_REGADDR(PLL_MOD, OMAP3430_CM_CLKSEL3),
|
||||
.clksel_mask = OMAP3430_DIV_96M_MASK,
|
||||
.clksel = div16_dpll4_clksel,
|
||||
.clkdm_name = "dpll4_clkdm",
|
||||
.recalc = &omap2_clksel_recalc,
|
||||
};
|
||||
|
||||
static struct clk dpll4_m2_ck_3630 __initdata = {
|
||||
static struct clk dpll4_m2_ck = {
|
||||
.name = "dpll4_m2_ck",
|
||||
.ops = &clkops_null,
|
||||
.parent = &dpll4_ck,
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.clksel_reg = OMAP_CM_REGADDR(PLL_MOD, OMAP3430_CM_CLKSEL3),
|
||||
.clksel_mask = OMAP3630_DIV_96M_MASK,
|
||||
.clksel = div32_dpll4_clksel,
|
||||
.clksel = dpll4_clksel,
|
||||
.clkdm_name = "dpll4_clkdm",
|
||||
.recalc = &omap2_clksel_recalc,
|
||||
};
|
||||
@ -698,7 +680,7 @@ static struct clk omap_192m_alwon_fck = {
|
||||
|
||||
static const struct clksel_rate omap_96m_alwon_fck_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_36XX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_36XX | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_36XX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -708,12 +690,12 @@ static const struct clksel omap_96m_alwon_fck_clksel[] = {
|
||||
};
|
||||
|
||||
static const struct clksel_rate omap_96m_dpll_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate omap_96m_sys_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -760,28 +742,14 @@ static struct clk omap_96m_fck = {
|
||||
};
|
||||
|
||||
/* This virtual clock is the source for dpll4_m3x2_ck */
|
||||
static struct clk dpll4_m3_ck;
|
||||
|
||||
static struct clk dpll4_m3_ck_34xx __initdata = {
|
||||
static struct clk dpll4_m3_ck = {
|
||||
.name = "dpll4_m3_ck",
|
||||
.ops = &clkops_null,
|
||||
.parent = &dpll4_ck,
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.clksel_reg = OMAP_CM_REGADDR(OMAP3430_DSS_MOD, CM_CLKSEL),
|
||||
.clksel_mask = OMAP3430_CLKSEL_TV_MASK,
|
||||
.clksel = div16_dpll4_clksel,
|
||||
.clkdm_name = "dpll4_clkdm",
|
||||
.recalc = &omap2_clksel_recalc,
|
||||
};
|
||||
|
||||
static struct clk dpll4_m3_ck_3630 __initdata = {
|
||||
.name = "dpll4_m3_ck",
|
||||
.ops = &clkops_null,
|
||||
.parent = &dpll4_ck,
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.clksel_reg = OMAP_CM_REGADDR(OMAP3430_DSS_MOD, CM_CLKSEL),
|
||||
.clksel_mask = OMAP3630_CLKSEL_TV_MASK,
|
||||
.clksel = div32_dpll4_clksel,
|
||||
.clksel = dpll4_clksel,
|
||||
.clkdm_name = "dpll4_clkdm",
|
||||
.recalc = &omap2_clksel_recalc,
|
||||
};
|
||||
@ -799,12 +767,12 @@ static struct clk dpll4_m3x2_ck = {
|
||||
};
|
||||
|
||||
static const struct clksel_rate omap_54m_d4m3x2_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate omap_54m_alt_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -825,12 +793,12 @@ static struct clk omap_54m_fck = {
|
||||
};
|
||||
|
||||
static const struct clksel_rate omap_48m_cm96m_rates[] = {
|
||||
{ .div = 2, .val = 0, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 0, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate omap_48m_alt_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -858,31 +826,15 @@ static struct clk omap_12m_fck = {
|
||||
.recalc = &omap_fixed_divisor_recalc,
|
||||
};
|
||||
|
||||
/* This virstual clock is the source for dpll4_m4x2_ck */
|
||||
static struct clk dpll4_m4_ck;
|
||||
|
||||
static struct clk dpll4_m4_ck_34xx __initdata = {
|
||||
/* This virtual clock is the source for dpll4_m4x2_ck */
|
||||
static struct clk dpll4_m4_ck = {
|
||||
.name = "dpll4_m4_ck",
|
||||
.ops = &clkops_null,
|
||||
.parent = &dpll4_ck,
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.clksel_reg = OMAP_CM_REGADDR(OMAP3430_DSS_MOD, CM_CLKSEL),
|
||||
.clksel_mask = OMAP3430_CLKSEL_DSS1_MASK,
|
||||
.clksel = div16_dpll4_clksel,
|
||||
.clkdm_name = "dpll4_clkdm",
|
||||
.recalc = &omap2_clksel_recalc,
|
||||
.set_rate = &omap2_clksel_set_rate,
|
||||
.round_rate = &omap2_clksel_round_rate,
|
||||
};
|
||||
|
||||
static struct clk dpll4_m4_ck_3630 __initdata = {
|
||||
.name = "dpll4_m4_ck",
|
||||
.ops = &clkops_null,
|
||||
.parent = &dpll4_ck,
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.clksel_reg = OMAP_CM_REGADDR(OMAP3430_DSS_MOD, CM_CLKSEL),
|
||||
.clksel_mask = OMAP3630_CLKSEL_DSS1_MASK,
|
||||
.clksel = div32_dpll4_clksel,
|
||||
.clksel = dpll4_clksel,
|
||||
.clkdm_name = "dpll4_clkdm",
|
||||
.recalc = &omap2_clksel_recalc,
|
||||
.set_rate = &omap2_clksel_set_rate,
|
||||
@ -902,30 +854,14 @@ static struct clk dpll4_m4x2_ck = {
|
||||
};
|
||||
|
||||
/* This virtual clock is the source for dpll4_m5x2_ck */
|
||||
static struct clk dpll4_m5_ck;
|
||||
|
||||
static struct clk dpll4_m5_ck_34xx __initdata = {
|
||||
static struct clk dpll4_m5_ck = {
|
||||
.name = "dpll4_m5_ck",
|
||||
.ops = &clkops_null,
|
||||
.parent = &dpll4_ck,
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.clksel_reg = OMAP_CM_REGADDR(OMAP3430_CAM_MOD, CM_CLKSEL),
|
||||
.clksel_mask = OMAP3430_CLKSEL_CAM_MASK,
|
||||
.clksel = div16_dpll4_clksel,
|
||||
.clkdm_name = "dpll4_clkdm",
|
||||
.set_rate = &omap2_clksel_set_rate,
|
||||
.round_rate = &omap2_clksel_round_rate,
|
||||
.recalc = &omap2_clksel_recalc,
|
||||
};
|
||||
|
||||
static struct clk dpll4_m5_ck_3630 __initdata = {
|
||||
.name = "dpll4_m5_ck",
|
||||
.ops = &clkops_null,
|
||||
.parent = &dpll4_ck,
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.clksel_reg = OMAP_CM_REGADDR(OMAP3430_CAM_MOD, CM_CLKSEL),
|
||||
.clksel_mask = OMAP3630_CLKSEL_CAM_MASK,
|
||||
.clksel = div32_dpll4_clksel,
|
||||
.clksel = dpll4_clksel,
|
||||
.clkdm_name = "dpll4_clkdm",
|
||||
.set_rate = &omap2_clksel_set_rate,
|
||||
.round_rate = &omap2_clksel_round_rate,
|
||||
@ -945,28 +881,14 @@ static struct clk dpll4_m5x2_ck = {
|
||||
};
|
||||
|
||||
/* This virtual clock is the source for dpll4_m6x2_ck */
|
||||
static struct clk dpll4_m6_ck;
|
||||
|
||||
static struct clk dpll4_m6_ck_34xx __initdata = {
|
||||
static struct clk dpll4_m6_ck = {
|
||||
.name = "dpll4_m6_ck",
|
||||
.ops = &clkops_null,
|
||||
.parent = &dpll4_ck,
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.clksel_reg = OMAP_CM_REGADDR(OMAP3430_EMU_MOD, CM_CLKSEL1),
|
||||
.clksel_mask = OMAP3430_DIV_DPLL4_MASK,
|
||||
.clksel = div16_dpll4_clksel,
|
||||
.clkdm_name = "dpll4_clkdm",
|
||||
.recalc = &omap2_clksel_recalc,
|
||||
};
|
||||
|
||||
static struct clk dpll4_m6_ck_3630 __initdata = {
|
||||
.name = "dpll4_m6_ck",
|
||||
.ops = &clkops_null,
|
||||
.parent = &dpll4_ck,
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.clksel_reg = OMAP_CM_REGADDR(OMAP3430_EMU_MOD, CM_CLKSEL1),
|
||||
.clksel_mask = OMAP3630_DIV_DPLL4_MASK,
|
||||
.clksel = div32_dpll4_clksel,
|
||||
.clksel = dpll4_clksel,
|
||||
.clkdm_name = "dpll4_clkdm",
|
||||
.recalc = &omap2_clksel_recalc,
|
||||
};
|
||||
@ -1049,22 +971,22 @@ static struct clk dpll5_m2_ck = {
|
||||
/* CM EXTERNAL CLOCK OUTPUTS */
|
||||
|
||||
static const struct clksel_rate clkout2_src_core_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate clkout2_src_sys_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate clkout2_src_96m_rates[] = {
|
||||
{ .div = 1, .val = 2, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 2, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate clkout2_src_54m_rates[] = {
|
||||
{ .div = 1, .val = 3, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 3, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -1090,11 +1012,11 @@ static struct clk clkout2_src_ck = {
|
||||
};
|
||||
|
||||
static const struct clksel_rate sys_clkout2_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 1, .flags = RATE_IN_343X },
|
||||
{ .div = 4, .val = 2, .flags = RATE_IN_343X },
|
||||
{ .div = 8, .val = 3, .flags = RATE_IN_343X },
|
||||
{ .div = 16, .val = 4, .flags = RATE_IN_343X },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_3XXX },
|
||||
{ .div = 2, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 4, .val = 2, .flags = RATE_IN_3XXX },
|
||||
{ .div = 8, .val = 3, .flags = RATE_IN_3XXX },
|
||||
{ .div = 16, .val = 4, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
@ -1111,6 +1033,8 @@ static struct clk sys_clkout2 = {
|
||||
.clksel_mask = OMAP3430_CLKOUT2_DIV_MASK,
|
||||
.clksel = sys_clkout2_clksel,
|
||||
.recalc = &omap2_clksel_recalc,
|
||||
.round_rate = &omap2_clksel_round_rate,
|
||||
.set_rate = &omap2_clksel_set_rate
|
||||
};
|
||||
|
||||
/* CM OUTPUT CLOCKS */
|
||||
@ -1125,9 +1049,9 @@ static struct clk corex2_fck = {
|
||||
/* DPLL power domain clock controls */
|
||||
|
||||
static const struct clksel_rate div4_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_343X },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_343X },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_3XXX },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -1161,8 +1085,8 @@ static struct clk mpu_ck = {
|
||||
|
||||
/* arm_fck is divided by two when DPLL1 locked; otherwise, passthrough mpu_ck */
|
||||
static const struct clksel_rate arm_fck_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 1, .flags = RATE_IN_343X },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_3XXX },
|
||||
{ .div = 2, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
@ -1333,25 +1257,25 @@ static struct clk gfx_cg2_ck = {
|
||||
|
||||
static const struct clksel_rate sgx_core_rates[] = {
|
||||
{ .div = 2, .val = 5, .flags = RATE_IN_36XX },
|
||||
{ .div = 3, .val = 0, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 4, .val = 1, .flags = RATE_IN_343X },
|
||||
{ .div = 6, .val = 2, .flags = RATE_IN_343X },
|
||||
{ .div = 3, .val = 0, .flags = RATE_IN_3XXX },
|
||||
{ .div = 4, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 6, .val = 2, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
static const struct clksel_rate sgx_192m_rates[] = {
|
||||
{ .div = 1, .val = 4, .flags = RATE_IN_36XX | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 4, .flags = RATE_IN_36XX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
static const struct clksel_rate sgx_corex2_rates[] = {
|
||||
{ .div = 3, .val = 6, .flags = RATE_IN_36XX | DEFAULT_RATE },
|
||||
{ .div = 3, .val = 6, .flags = RATE_IN_36XX },
|
||||
{ .div = 5, .val = 7, .flags = RATE_IN_36XX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
static const struct clksel_rate sgx_96m_rates[] = {
|
||||
{ .div = 1, .val = 3, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 3, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
@ -1576,12 +1500,12 @@ static struct clk i2c1_fck = {
|
||||
* MCBSP 2, 3, 4 get their 96MHz clock from per_96m_fck.
|
||||
*/
|
||||
static const struct clksel_rate common_mcbsp_96m_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
static const struct clksel_rate common_mcbsp_mcbsp_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -1714,12 +1638,12 @@ static struct clk hdq_fck = {
|
||||
/* DPLL3-derived clock */
|
||||
|
||||
static const struct clksel_rate ssi_ssr_corex2_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_343X },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_343X },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_343X },
|
||||
{ .div = 6, .val = 6, .flags = RATE_IN_343X },
|
||||
{ .div = 8, .val = 8, .flags = RATE_IN_343X },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_3XXX },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_3XXX },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_3XXX },
|
||||
{ .div = 6, .val = 6, .flags = RATE_IN_3XXX },
|
||||
{ .div = 8, .val = 8, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
@ -2353,18 +2277,18 @@ static struct clk usbhost_ick = {
|
||||
/* WKUP */
|
||||
|
||||
static const struct clksel_rate usim_96m_rates[] = {
|
||||
{ .div = 2, .val = 3, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_343X },
|
||||
{ .div = 8, .val = 5, .flags = RATE_IN_343X },
|
||||
{ .div = 10, .val = 6, .flags = RATE_IN_343X },
|
||||
{ .div = 2, .val = 3, .flags = RATE_IN_3XXX },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_3XXX },
|
||||
{ .div = 8, .val = 5, .flags = RATE_IN_3XXX },
|
||||
{ .div = 10, .val = 6, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
static const struct clksel_rate usim_120m_rates[] = {
|
||||
{ .div = 4, .val = 7, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 8, .val = 8, .flags = RATE_IN_343X },
|
||||
{ .div = 16, .val = 9, .flags = RATE_IN_343X },
|
||||
{ .div = 20, .val = 10, .flags = RATE_IN_343X },
|
||||
{ .div = 4, .val = 7, .flags = RATE_IN_3XXX },
|
||||
{ .div = 8, .val = 8, .flags = RATE_IN_3XXX },
|
||||
{ .div = 16, .val = 9, .flags = RATE_IN_3XXX },
|
||||
{ .div = 20, .val = 10, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
@ -2951,22 +2875,22 @@ static struct clk mcbsp4_fck = {
|
||||
/* More information: ARM Cortex-A8 Technical Reference Manual, sect 10.1 */
|
||||
|
||||
static const struct clksel_rate emu_src_sys_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
static const struct clksel_rate emu_src_core_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
static const struct clksel_rate emu_src_per_rates[] = {
|
||||
{ .div = 1, .val = 2, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 2, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
static const struct clksel_rate emu_src_mpu_rates[] = {
|
||||
{ .div = 1, .val = 3, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 3, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
@ -2995,10 +2919,10 @@ static struct clk emu_src_ck = {
|
||||
};
|
||||
|
||||
static const struct clksel_rate pclk_emu_rates[] = {
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_343X },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_343X },
|
||||
{ .div = 6, .val = 6, .flags = RATE_IN_343X },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_3XXX },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_3XXX },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_3XXX },
|
||||
{ .div = 6, .val = 6, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
@ -3019,9 +2943,9 @@ static struct clk pclk_fck = {
|
||||
};
|
||||
|
||||
static const struct clksel_rate pclkx2_emu_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_343X },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_343X },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_3XXX },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
@ -3069,9 +2993,9 @@ static struct clk traceclk_src_fck = {
|
||||
};
|
||||
|
||||
static const struct clksel_rate traceclk_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_343X },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_343X },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_3XXX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_3XXX },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_3XXX },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
@ -3472,8 +3396,8 @@ static struct omap_clk omap3xxx_clks[] = {
|
||||
CLK(NULL, "ipss_ick", &ipss_ick, CK_AM35XX),
|
||||
CLK(NULL, "rmii_ck", &rmii_ck, CK_AM35XX),
|
||||
CLK(NULL, "pclk_ck", &pclk_ck, CK_AM35XX),
|
||||
CLK("davinci_emac", "ick", &emac_ick, CK_AM35XX),
|
||||
CLK("davinci_emac", "fck", &emac_fck, CK_AM35XX),
|
||||
CLK("davinci_emac", "emac_clk", &emac_ick, CK_AM35XX),
|
||||
CLK("davinci_emac", "phy_clk", &emac_fck, CK_AM35XX),
|
||||
CLK("vpfe-capture", "master", &vpfe_ick, CK_AM35XX),
|
||||
CLK("vpfe-capture", "slave", &vpfe_fck, CK_AM35XX),
|
||||
CLK("musb_hdrc", "ick", &hsotgusb_ick_am35xx, CK_AM35XX),
|
||||
@ -3488,14 +3412,8 @@ int __init omap3xxx_clk_init(void)
|
||||
struct omap_clk *c;
|
||||
u32 cpu_clkflg = CK_3XXX;
|
||||
|
||||
if (cpu_is_omap3517()) {
|
||||
cpu_mask = RATE_IN_343X | RATE_IN_3430ES2;
|
||||
cpu_clkflg |= CK_3517;
|
||||
} else if (cpu_is_omap3505()) {
|
||||
cpu_mask = RATE_IN_343X | RATE_IN_3430ES2;
|
||||
cpu_clkflg |= CK_3505;
|
||||
} else if (cpu_is_omap34xx()) {
|
||||
cpu_mask = RATE_IN_343X;
|
||||
if (cpu_is_omap34xx()) {
|
||||
cpu_mask = RATE_IN_3XXX;
|
||||
cpu_clkflg |= CK_343X;
|
||||
|
||||
/*
|
||||
@ -3506,10 +3424,17 @@ int __init omap3xxx_clk_init(void)
|
||||
/* No 3430ES1-only rates exist, so no RATE_IN_3430ES1 */
|
||||
cpu_clkflg |= CK_3430ES1;
|
||||
} else {
|
||||
cpu_mask |= RATE_IN_3430ES2;
|
||||
cpu_mask |= RATE_IN_3430ES2PLUS;
|
||||
cpu_clkflg |= CK_3430ES2;
|
||||
}
|
||||
} else if (cpu_is_omap3517()) {
|
||||
cpu_mask = RATE_IN_3XXX | RATE_IN_3430ES2PLUS;
|
||||
cpu_clkflg |= CK_3517;
|
||||
} else if (cpu_is_omap3505()) {
|
||||
cpu_mask = RATE_IN_3XXX | RATE_IN_3430ES2PLUS;
|
||||
cpu_clkflg |= CK_3505;
|
||||
}
|
||||
|
||||
if (omap3_has_192mhz_clk())
|
||||
omap_96m_alwon_fck = omap_96m_alwon_fck_3630;
|
||||
|
||||
@ -3520,14 +3445,7 @@ int __init omap3xxx_clk_init(void)
|
||||
/*
|
||||
* XXX This type of dynamic rewriting of the clock tree is
|
||||
* deprecated and should be revised soon.
|
||||
*/
|
||||
dpll4_m2_ck = dpll4_m2_ck_3630;
|
||||
dpll4_m3_ck = dpll4_m3_ck_3630;
|
||||
dpll4_m4_ck = dpll4_m4_ck_3630;
|
||||
dpll4_m5_ck = dpll4_m5_ck_3630;
|
||||
dpll4_m6_ck = dpll4_m6_ck_3630;
|
||||
|
||||
/*
|
||||
*
|
||||
* For 3630: override clkops_omap2_dflt_wait for the
|
||||
* clocks affected from PWRDN reset Limitation
|
||||
*/
|
||||
@ -3543,18 +3461,12 @@ int __init omap3xxx_clk_init(void)
|
||||
&clkops_omap36xx_pwrdn_with_hsdiv_wait_restore;
|
||||
dpll4_m6x2_ck.ops =
|
||||
&clkops_omap36xx_pwrdn_with_hsdiv_wait_restore;
|
||||
} else {
|
||||
/*
|
||||
* XXX This type of dynamic rewriting of the clock tree is
|
||||
* deprecated and should be revised soon.
|
||||
*/
|
||||
dpll4_m2_ck = dpll4_m2_ck_34xx;
|
||||
dpll4_m3_ck = dpll4_m3_ck_34xx;
|
||||
dpll4_m4_ck = dpll4_m4_ck_34xx;
|
||||
dpll4_m5_ck = dpll4_m5_ck_34xx;
|
||||
dpll4_m6_ck = dpll4_m6_ck_34xx;
|
||||
}
|
||||
|
||||
/*
|
||||
* XXX This type of dynamic rewriting of the clock tree is
|
||||
* deprecated and should be revised soon.
|
||||
*/
|
||||
if (cpu_is_omap3630())
|
||||
dpll4_dd = dpll4_dd_3630;
|
||||
else
|
||||
|
@ -2675,6 +2675,11 @@ static struct omap_clk omap44xx_clks[] = {
|
||||
CLK("omap2_mcspi.2", "ick", &dummy_ck, CK_443X),
|
||||
CLK("omap2_mcspi.3", "ick", &dummy_ck, CK_443X),
|
||||
CLK("omap2_mcspi.4", "ick", &dummy_ck, CK_443X),
|
||||
CLK("mmci-omap-hs.0", "ick", &dummy_ck, CK_443X),
|
||||
CLK("mmci-omap-hs.1", "ick", &dummy_ck, CK_443X),
|
||||
CLK("mmci-omap-hs.2", "ick", &dummy_ck, CK_443X),
|
||||
CLK("mmci-omap-hs.3", "ick", &dummy_ck, CK_443X),
|
||||
CLK("mmci-omap-hs.4", "ick", &dummy_ck, CK_443X),
|
||||
CLK(NULL, "uart1_ick", &dummy_ck, CK_443X),
|
||||
CLK(NULL, "uart2_ick", &dummy_ck, CK_443X),
|
||||
CLK(NULL, "uart3_ick", &dummy_ck, CK_443X),
|
||||
|
@ -20,20 +20,20 @@
|
||||
|
||||
/* clksel_rate data common to 24xx/343x */
|
||||
const struct clksel_rate gpt_32k_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX | RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_24XX | RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
const struct clksel_rate gpt_sys_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
const struct clksel_rate gfx_l3_rates[] = {
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | RATE_IN_343X },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX | RATE_IN_343X | DEFAULT_RATE },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_243X | RATE_IN_343X },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_243X | RATE_IN_343X },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_24XX | RATE_IN_3XXX },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_24XX | RATE_IN_3XXX },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_243X | RATE_IN_3XXX },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_243X | RATE_IN_3XXX },
|
||||
{ .div = 0 }
|
||||
};
|
||||
|
||||
|
@ -809,7 +809,7 @@ int omap2_clkdm_sleep(struct clockdomain *clkdm)
|
||||
|
||||
if (cpu_is_omap24xx()) {
|
||||
|
||||
cm_set_mod_reg_bits(OMAP24XX_FORCESTATE,
|
||||
cm_set_mod_reg_bits(OMAP24XX_FORCESTATE_MASK,
|
||||
clkdm->pwrdm.ptr->prcm_offs, OMAP2_PM_PWSTCTRL);
|
||||
|
||||
} else if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
|
||||
@ -853,7 +853,7 @@ int omap2_clkdm_wakeup(struct clockdomain *clkdm)
|
||||
|
||||
if (cpu_is_omap24xx()) {
|
||||
|
||||
cm_clear_mod_reg_bits(OMAP24XX_FORCESTATE,
|
||||
cm_clear_mod_reg_bits(OMAP24XX_FORCESTATE_MASK,
|
||||
clkdm->pwrdm.ptr->prcm_offs, OMAP2_PM_PWSTCTRL);
|
||||
|
||||
} else if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
|
||||
|
@ -131,7 +131,7 @@ static struct clockdomain mpuss_44xx_clkdm = {
|
||||
static struct clockdomain mpu0_44xx_clkdm = {
|
||||
.name = "mpu0_clkdm",
|
||||
.pwrdm = { .name = "cpu0_pwrdm" },
|
||||
.clkstctrl_reg = OMAP4430_CM_PDA_CPU0_CLKSTCTRL,
|
||||
.clkstctrl_reg = OMAP4430_CM_CPU0_CLKSTCTRL,
|
||||
.clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
|
||||
.flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
|
||||
.omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
|
||||
@ -140,7 +140,7 @@ static struct clockdomain mpu0_44xx_clkdm = {
|
||||
static struct clockdomain mpu1_44xx_clkdm = {
|
||||
.name = "mpu1_clkdm",
|
||||
.pwrdm = { .name = "cpu1_pwrdm" },
|
||||
.clkstctrl_reg = OMAP4430_CM_PDA_CPU1_CLKSTCTRL,
|
||||
.clkstctrl_reg = OMAP4430_CM_CPU1_CLKSTCTRL,
|
||||
.clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
|
||||
.flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
|
||||
.omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
|
||||
|
@ -20,43 +20,43 @@
|
||||
|
||||
/* CM_FCLKEN1_CORE and CM_ICLKEN1_CORE shared bits */
|
||||
#define OMAP24XX_EN_CAM_SHIFT 31
|
||||
#define OMAP24XX_EN_CAM (1 << 31)
|
||||
#define OMAP24XX_EN_CAM_MASK (1 << 31)
|
||||
#define OMAP24XX_EN_WDT4_SHIFT 29
|
||||
#define OMAP24XX_EN_WDT4 (1 << 29)
|
||||
#define OMAP24XX_EN_WDT4_MASK (1 << 29)
|
||||
#define OMAP2420_EN_WDT3_SHIFT 28
|
||||
#define OMAP2420_EN_WDT3 (1 << 28)
|
||||
#define OMAP2420_EN_WDT3_MASK (1 << 28)
|
||||
#define OMAP24XX_EN_MSPRO_SHIFT 27
|
||||
#define OMAP24XX_EN_MSPRO (1 << 27)
|
||||
#define OMAP24XX_EN_MSPRO_MASK (1 << 27)
|
||||
#define OMAP24XX_EN_FAC_SHIFT 25
|
||||
#define OMAP24XX_EN_FAC (1 << 25)
|
||||
#define OMAP24XX_EN_FAC_MASK (1 << 25)
|
||||
#define OMAP2420_EN_EAC_SHIFT 24
|
||||
#define OMAP2420_EN_EAC (1 << 24)
|
||||
#define OMAP2420_EN_EAC_MASK (1 << 24)
|
||||
#define OMAP24XX_EN_HDQ_SHIFT 23
|
||||
#define OMAP24XX_EN_HDQ (1 << 23)
|
||||
#define OMAP24XX_EN_HDQ_MASK (1 << 23)
|
||||
#define OMAP2420_EN_I2C2_SHIFT 20
|
||||
#define OMAP2420_EN_I2C2 (1 << 20)
|
||||
#define OMAP2420_EN_I2C2_MASK (1 << 20)
|
||||
#define OMAP2420_EN_I2C1_SHIFT 19
|
||||
#define OMAP2420_EN_I2C1 (1 << 19)
|
||||
#define OMAP2420_EN_I2C1_MASK (1 << 19)
|
||||
|
||||
/* CM_FCLKEN2_CORE and CM_ICLKEN2_CORE shared bits */
|
||||
#define OMAP2430_EN_MCBSP5_SHIFT 5
|
||||
#define OMAP2430_EN_MCBSP5 (1 << 5)
|
||||
#define OMAP2430_EN_MCBSP5_MASK (1 << 5)
|
||||
#define OMAP2430_EN_MCBSP4_SHIFT 4
|
||||
#define OMAP2430_EN_MCBSP4 (1 << 4)
|
||||
#define OMAP2430_EN_MCBSP4_MASK (1 << 4)
|
||||
#define OMAP2430_EN_MCBSP3_SHIFT 3
|
||||
#define OMAP2430_EN_MCBSP3 (1 << 3)
|
||||
#define OMAP2430_EN_MCBSP3_MASK (1 << 3)
|
||||
#define OMAP24XX_EN_SSI_SHIFT 1
|
||||
#define OMAP24XX_EN_SSI (1 << 1)
|
||||
#define OMAP24XX_EN_SSI_MASK (1 << 1)
|
||||
|
||||
/* CM_FCLKEN_WKUP and CM_ICLKEN_WKUP shared bits */
|
||||
#define OMAP24XX_EN_MPU_WDT_SHIFT 3
|
||||
#define OMAP24XX_EN_MPU_WDT (1 << 3)
|
||||
#define OMAP24XX_EN_MPU_WDT_MASK (1 << 3)
|
||||
|
||||
/* Bits specific to each register */
|
||||
|
||||
/* CM_IDLEST_MPU */
|
||||
/* 2430 only */
|
||||
#define OMAP2430_ST_MPU (1 << 0)
|
||||
#define OMAP2430_ST_MPU_MASK (1 << 0)
|
||||
|
||||
/* CM_CLKSEL_MPU */
|
||||
#define OMAP24XX_CLKSEL_MPU_SHIFT 0
|
||||
@ -68,46 +68,46 @@
|
||||
|
||||
/* CM_FCLKEN1_CORE specific bits*/
|
||||
#define OMAP24XX_EN_TV_SHIFT 2
|
||||
#define OMAP24XX_EN_TV (1 << 2)
|
||||
#define OMAP24XX_EN_TV_MASK (1 << 2)
|
||||
#define OMAP24XX_EN_DSS2_SHIFT 1
|
||||
#define OMAP24XX_EN_DSS2 (1 << 1)
|
||||
#define OMAP24XX_EN_DSS2_MASK (1 << 1)
|
||||
#define OMAP24XX_EN_DSS1_SHIFT 0
|
||||
#define OMAP24XX_EN_DSS1 (1 << 0)
|
||||
#define OMAP24XX_EN_DSS1_MASK (1 << 0)
|
||||
|
||||
/* CM_FCLKEN2_CORE specific bits */
|
||||
#define OMAP2430_EN_I2CHS2_SHIFT 20
|
||||
#define OMAP2430_EN_I2CHS2 (1 << 20)
|
||||
#define OMAP2430_EN_I2CHS2_MASK (1 << 20)
|
||||
#define OMAP2430_EN_I2CHS1_SHIFT 19
|
||||
#define OMAP2430_EN_I2CHS1 (1 << 19)
|
||||
#define OMAP2430_EN_I2CHS1_MASK (1 << 19)
|
||||
#define OMAP2430_EN_MMCHSDB2_SHIFT 17
|
||||
#define OMAP2430_EN_MMCHSDB2 (1 << 17)
|
||||
#define OMAP2430_EN_MMCHSDB2_MASK (1 << 17)
|
||||
#define OMAP2430_EN_MMCHSDB1_SHIFT 16
|
||||
#define OMAP2430_EN_MMCHSDB1 (1 << 16)
|
||||
#define OMAP2430_EN_MMCHSDB1_MASK (1 << 16)
|
||||
|
||||
/* CM_ICLKEN1_CORE specific bits */
|
||||
#define OMAP24XX_EN_MAILBOXES_SHIFT 30
|
||||
#define OMAP24XX_EN_MAILBOXES (1 << 30)
|
||||
#define OMAP24XX_EN_MAILBOXES_MASK (1 << 30)
|
||||
#define OMAP24XX_EN_DSS_SHIFT 0
|
||||
#define OMAP24XX_EN_DSS (1 << 0)
|
||||
#define OMAP24XX_EN_DSS_MASK (1 << 0)
|
||||
|
||||
/* CM_ICLKEN2_CORE specific bits */
|
||||
|
||||
/* CM_ICLKEN3_CORE */
|
||||
/* 2430 only */
|
||||
#define OMAP2430_EN_SDRC_SHIFT 2
|
||||
#define OMAP2430_EN_SDRC (1 << 2)
|
||||
#define OMAP2430_EN_SDRC_MASK (1 << 2)
|
||||
|
||||
/* CM_ICLKEN4_CORE */
|
||||
#define OMAP24XX_EN_PKA_SHIFT 4
|
||||
#define OMAP24XX_EN_PKA (1 << 4)
|
||||
#define OMAP24XX_EN_PKA_MASK (1 << 4)
|
||||
#define OMAP24XX_EN_AES_SHIFT 3
|
||||
#define OMAP24XX_EN_AES (1 << 3)
|
||||
#define OMAP24XX_EN_AES_MASK (1 << 3)
|
||||
#define OMAP24XX_EN_RNG_SHIFT 2
|
||||
#define OMAP24XX_EN_RNG (1 << 2)
|
||||
#define OMAP24XX_EN_RNG_MASK (1 << 2)
|
||||
#define OMAP24XX_EN_SHA_SHIFT 1
|
||||
#define OMAP24XX_EN_SHA (1 << 1)
|
||||
#define OMAP24XX_EN_SHA_MASK (1 << 1)
|
||||
#define OMAP24XX_EN_DES_SHIFT 0
|
||||
#define OMAP24XX_EN_DES (1 << 0)
|
||||
#define OMAP24XX_EN_DES_MASK (1 << 0)
|
||||
|
||||
/* CM_IDLEST1_CORE specific bits */
|
||||
#define OMAP24XX_ST_MAILBOXES_SHIFT 30
|
||||
@ -138,9 +138,9 @@
|
||||
/* CM_IDLEST2_CORE */
|
||||
#define OMAP2430_ST_MCBSP5_SHIFT 5
|
||||
#define OMAP2430_ST_MCBSP5_MASK (1 << 5)
|
||||
#define OMAP2430_ST_MCBSP4_SHIFT 4
|
||||
#define OMAP2430_ST_MCBSP4_SHIFT 4
|
||||
#define OMAP2430_ST_MCBSP4_MASK (1 << 4)
|
||||
#define OMAP2430_ST_MCBSP3_SHIFT 3
|
||||
#define OMAP2430_ST_MCBSP3_SHIFT 3
|
||||
#define OMAP2430_ST_MCBSP3_MASK (1 << 3)
|
||||
#define OMAP24XX_ST_SSI_SHIFT 1
|
||||
#define OMAP24XX_ST_SSI_MASK (1 << 1)
|
||||
@ -162,62 +162,62 @@
|
||||
#define OMAP24XX_ST_DES_MASK (1 << 0)
|
||||
|
||||
/* CM_AUTOIDLE1_CORE */
|
||||
#define OMAP24XX_AUTO_CAM (1 << 31)
|
||||
#define OMAP24XX_AUTO_MAILBOXES (1 << 30)
|
||||
#define OMAP24XX_AUTO_WDT4 (1 << 29)
|
||||
#define OMAP2420_AUTO_WDT3 (1 << 28)
|
||||
#define OMAP24XX_AUTO_MSPRO (1 << 27)
|
||||
#define OMAP2420_AUTO_MMC (1 << 26)
|
||||
#define OMAP24XX_AUTO_FAC (1 << 25)
|
||||
#define OMAP2420_AUTO_EAC (1 << 24)
|
||||
#define OMAP24XX_AUTO_HDQ (1 << 23)
|
||||
#define OMAP24XX_AUTO_UART2 (1 << 22)
|
||||
#define OMAP24XX_AUTO_UART1 (1 << 21)
|
||||
#define OMAP24XX_AUTO_I2C2 (1 << 20)
|
||||
#define OMAP24XX_AUTO_I2C1 (1 << 19)
|
||||
#define OMAP24XX_AUTO_MCSPI2 (1 << 18)
|
||||
#define OMAP24XX_AUTO_MCSPI1 (1 << 17)
|
||||
#define OMAP24XX_AUTO_MCBSP2 (1 << 16)
|
||||
#define OMAP24XX_AUTO_MCBSP1 (1 << 15)
|
||||
#define OMAP24XX_AUTO_GPT12 (1 << 14)
|
||||
#define OMAP24XX_AUTO_GPT11 (1 << 13)
|
||||
#define OMAP24XX_AUTO_GPT10 (1 << 12)
|
||||
#define OMAP24XX_AUTO_GPT9 (1 << 11)
|
||||
#define OMAP24XX_AUTO_GPT8 (1 << 10)
|
||||
#define OMAP24XX_AUTO_GPT7 (1 << 9)
|
||||
#define OMAP24XX_AUTO_GPT6 (1 << 8)
|
||||
#define OMAP24XX_AUTO_GPT5 (1 << 7)
|
||||
#define OMAP24XX_AUTO_GPT4 (1 << 6)
|
||||
#define OMAP24XX_AUTO_GPT3 (1 << 5)
|
||||
#define OMAP24XX_AUTO_GPT2 (1 << 4)
|
||||
#define OMAP2420_AUTO_VLYNQ (1 << 3)
|
||||
#define OMAP24XX_AUTO_DSS (1 << 0)
|
||||
#define OMAP24XX_AUTO_CAM_MASK (1 << 31)
|
||||
#define OMAP24XX_AUTO_MAILBOXES_MASK (1 << 30)
|
||||
#define OMAP24XX_AUTO_WDT4_MASK (1 << 29)
|
||||
#define OMAP2420_AUTO_WDT3_MASK (1 << 28)
|
||||
#define OMAP24XX_AUTO_MSPRO_MASK (1 << 27)
|
||||
#define OMAP2420_AUTO_MMC_MASK (1 << 26)
|
||||
#define OMAP24XX_AUTO_FAC_MASK (1 << 25)
|
||||
#define OMAP2420_AUTO_EAC_MASK (1 << 24)
|
||||
#define OMAP24XX_AUTO_HDQ_MASK (1 << 23)
|
||||
#define OMAP24XX_AUTO_UART2_MASK (1 << 22)
|
||||
#define OMAP24XX_AUTO_UART1_MASK (1 << 21)
|
||||
#define OMAP24XX_AUTO_I2C2_MASK (1 << 20)
|
||||
#define OMAP24XX_AUTO_I2C1_MASK (1 << 19)
|
||||
#define OMAP24XX_AUTO_MCSPI2_MASK (1 << 18)
|
||||
#define OMAP24XX_AUTO_MCSPI1_MASK (1 << 17)
|
||||
#define OMAP24XX_AUTO_MCBSP2_MASK (1 << 16)
|
||||
#define OMAP24XX_AUTO_MCBSP1_MASK (1 << 15)
|
||||
#define OMAP24XX_AUTO_GPT12_MASK (1 << 14)
|
||||
#define OMAP24XX_AUTO_GPT11_MASK (1 << 13)
|
||||
#define OMAP24XX_AUTO_GPT10_MASK (1 << 12)
|
||||
#define OMAP24XX_AUTO_GPT9_MASK (1 << 11)
|
||||
#define OMAP24XX_AUTO_GPT8_MASK (1 << 10)
|
||||
#define OMAP24XX_AUTO_GPT7_MASK (1 << 9)
|
||||
#define OMAP24XX_AUTO_GPT6_MASK (1 << 8)
|
||||
#define OMAP24XX_AUTO_GPT5_MASK (1 << 7)
|
||||
#define OMAP24XX_AUTO_GPT4_MASK (1 << 6)
|
||||
#define OMAP24XX_AUTO_GPT3_MASK (1 << 5)
|
||||
#define OMAP24XX_AUTO_GPT2_MASK (1 << 4)
|
||||
#define OMAP2420_AUTO_VLYNQ_MASK (1 << 3)
|
||||
#define OMAP24XX_AUTO_DSS_MASK (1 << 0)
|
||||
|
||||
/* CM_AUTOIDLE2_CORE */
|
||||
#define OMAP2430_AUTO_MDM_INTC (1 << 11)
|
||||
#define OMAP2430_AUTO_GPIO5 (1 << 10)
|
||||
#define OMAP2430_AUTO_MCSPI3 (1 << 9)
|
||||
#define OMAP2430_AUTO_MMCHS2 (1 << 8)
|
||||
#define OMAP2430_AUTO_MMCHS1 (1 << 7)
|
||||
#define OMAP2430_AUTO_USBHS (1 << 6)
|
||||
#define OMAP2430_AUTO_MCBSP5 (1 << 5)
|
||||
#define OMAP2430_AUTO_MCBSP4 (1 << 4)
|
||||
#define OMAP2430_AUTO_MCBSP3 (1 << 3)
|
||||
#define OMAP24XX_AUTO_UART3 (1 << 2)
|
||||
#define OMAP24XX_AUTO_SSI (1 << 1)
|
||||
#define OMAP24XX_AUTO_USB (1 << 0)
|
||||
#define OMAP2430_AUTO_MDM_INTC_MASK (1 << 11)
|
||||
#define OMAP2430_AUTO_GPIO5_MASK (1 << 10)
|
||||
#define OMAP2430_AUTO_MCSPI3_MASK (1 << 9)
|
||||
#define OMAP2430_AUTO_MMCHS2_MASK (1 << 8)
|
||||
#define OMAP2430_AUTO_MMCHS1_MASK (1 << 7)
|
||||
#define OMAP2430_AUTO_USBHS_MASK (1 << 6)
|
||||
#define OMAP2430_AUTO_MCBSP5_MASK (1 << 5)
|
||||
#define OMAP2430_AUTO_MCBSP4_MASK (1 << 4)
|
||||
#define OMAP2430_AUTO_MCBSP3_MASK (1 << 3)
|
||||
#define OMAP24XX_AUTO_UART3_MASK (1 << 2)
|
||||
#define OMAP24XX_AUTO_SSI_MASK (1 << 1)
|
||||
#define OMAP24XX_AUTO_USB_MASK (1 << 0)
|
||||
|
||||
/* CM_AUTOIDLE3_CORE */
|
||||
#define OMAP24XX_AUTO_SDRC (1 << 2)
|
||||
#define OMAP24XX_AUTO_GPMC (1 << 1)
|
||||
#define OMAP24XX_AUTO_SDMA (1 << 0)
|
||||
#define OMAP24XX_AUTO_SDRC_MASK (1 << 2)
|
||||
#define OMAP24XX_AUTO_GPMC_MASK (1 << 1)
|
||||
#define OMAP24XX_AUTO_SDMA_MASK (1 << 0)
|
||||
|
||||
/* CM_AUTOIDLE4_CORE */
|
||||
#define OMAP24XX_AUTO_PKA (1 << 4)
|
||||
#define OMAP24XX_AUTO_AES (1 << 3)
|
||||
#define OMAP24XX_AUTO_RNG (1 << 2)
|
||||
#define OMAP24XX_AUTO_SHA (1 << 1)
|
||||
#define OMAP24XX_AUTO_DES (1 << 0)
|
||||
#define OMAP24XX_AUTO_PKA_MASK (1 << 4)
|
||||
#define OMAP24XX_AUTO_AES_MASK (1 << 3)
|
||||
#define OMAP24XX_AUTO_RNG_MASK (1 << 2)
|
||||
#define OMAP24XX_AUTO_SHA_MASK (1 << 1)
|
||||
#define OMAP24XX_AUTO_DES_MASK (1 << 0)
|
||||
|
||||
/* CM_CLKSEL1_CORE */
|
||||
#define OMAP24XX_CLKSEL_USB_SHIFT 25
|
||||
@ -269,9 +269,9 @@
|
||||
|
||||
/* CM_FCLKEN_GFX */
|
||||
#define OMAP24XX_EN_3D_SHIFT 2
|
||||
#define OMAP24XX_EN_3D (1 << 2)
|
||||
#define OMAP24XX_EN_3D_MASK (1 << 2)
|
||||
#define OMAP24XX_EN_2D_SHIFT 1
|
||||
#define OMAP24XX_EN_2D (1 << 1)
|
||||
#define OMAP24XX_EN_2D_MASK (1 << 1)
|
||||
|
||||
/* CM_ICLKEN_GFX specific bits */
|
||||
|
||||
@ -287,13 +287,13 @@
|
||||
|
||||
/* CM_ICLKEN_WKUP specific bits */
|
||||
#define OMAP2430_EN_ICR_SHIFT 6
|
||||
#define OMAP2430_EN_ICR (1 << 6)
|
||||
#define OMAP2430_EN_ICR_MASK (1 << 6)
|
||||
#define OMAP24XX_EN_OMAPCTRL_SHIFT 5
|
||||
#define OMAP24XX_EN_OMAPCTRL (1 << 5)
|
||||
#define OMAP24XX_EN_OMAPCTRL_MASK (1 << 5)
|
||||
#define OMAP24XX_EN_WDT1_SHIFT 4
|
||||
#define OMAP24XX_EN_WDT1 (1 << 4)
|
||||
#define OMAP24XX_EN_WDT1_MASK (1 << 4)
|
||||
#define OMAP24XX_EN_32KSYNC_SHIFT 1
|
||||
#define OMAP24XX_EN_32KSYNC (1 << 1)
|
||||
#define OMAP24XX_EN_32KSYNC_MASK (1 << 1)
|
||||
|
||||
/* CM_IDLEST_WKUP specific bits */
|
||||
#define OMAP2430_ST_ICR_SHIFT 6
|
||||
@ -308,12 +308,12 @@
|
||||
#define OMAP24XX_ST_32KSYNC_MASK (1 << 1)
|
||||
|
||||
/* CM_AUTOIDLE_WKUP */
|
||||
#define OMAP24XX_AUTO_OMAPCTRL (1 << 5)
|
||||
#define OMAP24XX_AUTO_WDT1 (1 << 4)
|
||||
#define OMAP24XX_AUTO_MPU_WDT (1 << 3)
|
||||
#define OMAP24XX_AUTO_GPIOS (1 << 2)
|
||||
#define OMAP24XX_AUTO_32KSYNC (1 << 1)
|
||||
#define OMAP24XX_AUTO_GPT1 (1 << 0)
|
||||
#define OMAP24XX_AUTO_OMAPCTRL_MASK (1 << 5)
|
||||
#define OMAP24XX_AUTO_WDT1_MASK (1 << 4)
|
||||
#define OMAP24XX_AUTO_MPU_WDT_MASK (1 << 3)
|
||||
#define OMAP24XX_AUTO_GPIOS_MASK (1 << 2)
|
||||
#define OMAP24XX_AUTO_32KSYNC_MASK (1 << 1)
|
||||
#define OMAP24XX_AUTO_GPT1_MASK (1 << 0)
|
||||
|
||||
/* CM_CLKSEL_WKUP */
|
||||
#define OMAP24XX_CLKSEL_GPT1_SHIFT 0
|
||||
@ -328,12 +328,12 @@
|
||||
#define OMAP24XX_EN_DPLL_MASK (0x3 << 0)
|
||||
|
||||
/* CM_IDLEST_CKGEN */
|
||||
#define OMAP24XX_ST_54M_APLL (1 << 9)
|
||||
#define OMAP24XX_ST_96M_APLL (1 << 8)
|
||||
#define OMAP24XX_ST_54M_CLK (1 << 6)
|
||||
#define OMAP24XX_ST_12M_CLK (1 << 5)
|
||||
#define OMAP24XX_ST_48M_CLK (1 << 4)
|
||||
#define OMAP24XX_ST_96M_CLK (1 << 2)
|
||||
#define OMAP24XX_ST_54M_APLL_MASK (1 << 9)
|
||||
#define OMAP24XX_ST_96M_APLL_MASK (1 << 8)
|
||||
#define OMAP24XX_ST_54M_CLK_MASK (1 << 6)
|
||||
#define OMAP24XX_ST_12M_CLK_MASK (1 << 5)
|
||||
#define OMAP24XX_ST_48M_CLK_MASK (1 << 4)
|
||||
#define OMAP24XX_ST_96M_CLK_MASK (1 << 2)
|
||||
#define OMAP24XX_ST_CORE_CLK_SHIFT 0
|
||||
#define OMAP24XX_ST_CORE_CLK_MASK (0x3 << 0)
|
||||
|
||||
@ -355,11 +355,11 @@
|
||||
#define OMAP24XX_DPLL_DIV_SHIFT 8
|
||||
#define OMAP24XX_DPLL_DIV_MASK (0xf << 8)
|
||||
#define OMAP24XX_54M_SOURCE_SHIFT 5
|
||||
#define OMAP24XX_54M_SOURCE (1 << 5)
|
||||
#define OMAP24XX_54M_SOURCE_MASK (1 << 5)
|
||||
#define OMAP2430_96M_SOURCE_SHIFT 4
|
||||
#define OMAP2430_96M_SOURCE (1 << 4)
|
||||
#define OMAP2430_96M_SOURCE_MASK (1 << 4)
|
||||
#define OMAP24XX_48M_SOURCE_SHIFT 3
|
||||
#define OMAP24XX_48M_SOURCE (1 << 3)
|
||||
#define OMAP24XX_48M_SOURCE_MASK (1 << 3)
|
||||
#define OMAP2430_ALTCLK_SOURCE_SHIFT 0
|
||||
#define OMAP2430_ALTCLK_SOURCE_MASK (0x7 << 0)
|
||||
|
||||
@ -369,29 +369,29 @@
|
||||
|
||||
/* CM_FCLKEN_DSP */
|
||||
#define OMAP2420_EN_IVA_COP_SHIFT 10
|
||||
#define OMAP2420_EN_IVA_COP (1 << 10)
|
||||
#define OMAP2420_EN_IVA_COP_MASK (1 << 10)
|
||||
#define OMAP2420_EN_IVA_MPU_SHIFT 8
|
||||
#define OMAP2420_EN_IVA_MPU (1 << 8)
|
||||
#define OMAP2420_EN_IVA_MPU_MASK (1 << 8)
|
||||
#define OMAP24XX_CM_FCLKEN_DSP_EN_DSP_SHIFT 0
|
||||
#define OMAP24XX_CM_FCLKEN_DSP_EN_DSP (1 << 0)
|
||||
#define OMAP24XX_CM_FCLKEN_DSP_EN_DSP_MASK (1 << 0)
|
||||
|
||||
/* CM_ICLKEN_DSP */
|
||||
#define OMAP2420_EN_DSP_IPI_SHIFT 1
|
||||
#define OMAP2420_EN_DSP_IPI (1 << 1)
|
||||
#define OMAP2420_EN_DSP_IPI_MASK (1 << 1)
|
||||
|
||||
/* CM_IDLEST_DSP */
|
||||
#define OMAP2420_ST_IVA (1 << 8)
|
||||
#define OMAP2420_ST_IPI (1 << 1)
|
||||
#define OMAP24XX_ST_DSP (1 << 0)
|
||||
#define OMAP2420_ST_IVA_MASK (1 << 8)
|
||||
#define OMAP2420_ST_IPI_MASK (1 << 1)
|
||||
#define OMAP24XX_ST_DSP_MASK (1 << 0)
|
||||
|
||||
/* CM_AUTOIDLE_DSP */
|
||||
#define OMAP2420_AUTO_DSP_IPI (1 << 1)
|
||||
#define OMAP2420_AUTO_DSP_IPI_MASK (1 << 1)
|
||||
|
||||
/* CM_CLKSEL_DSP */
|
||||
#define OMAP2420_SYNC_IVA (1 << 13)
|
||||
#define OMAP2420_SYNC_IVA_MASK (1 << 13)
|
||||
#define OMAP2420_CLKSEL_IVA_SHIFT 8
|
||||
#define OMAP2420_CLKSEL_IVA_MASK (0x1f << 8)
|
||||
#define OMAP24XX_SYNC_DSP (1 << 7)
|
||||
#define OMAP24XX_SYNC_DSP_MASK (1 << 7)
|
||||
#define OMAP24XX_CLKSEL_DSP_IF_SHIFT 5
|
||||
#define OMAP24XX_CLKSEL_DSP_IF_MASK (0x3 << 5)
|
||||
#define OMAP24XX_CLKSEL_DSP_SHIFT 0
|
||||
@ -406,24 +406,24 @@
|
||||
/* CM_FCLKEN_MDM */
|
||||
/* 2430 only */
|
||||
#define OMAP2430_EN_OSC_SHIFT 1
|
||||
#define OMAP2430_EN_OSC (1 << 1)
|
||||
#define OMAP2430_EN_OSC_MASK (1 << 1)
|
||||
|
||||
/* CM_ICLKEN_MDM */
|
||||
/* 2430 only */
|
||||
#define OMAP2430_CM_ICLKEN_MDM_EN_MDM_SHIFT 0
|
||||
#define OMAP2430_CM_ICLKEN_MDM_EN_MDM (1 << 0)
|
||||
#define OMAP2430_CM_ICLKEN_MDM_EN_MDM_MASK (1 << 0)
|
||||
|
||||
/* CM_IDLEST_MDM specific bits */
|
||||
/* 2430 only */
|
||||
|
||||
/* CM_AUTOIDLE_MDM */
|
||||
/* 2430 only */
|
||||
#define OMAP2430_AUTO_OSC (1 << 1)
|
||||
#define OMAP2430_AUTO_MDM (1 << 0)
|
||||
#define OMAP2430_AUTO_OSC_MASK (1 << 1)
|
||||
#define OMAP2430_AUTO_MDM_MASK (1 << 0)
|
||||
|
||||
/* CM_CLKSEL_MDM */
|
||||
/* 2430 only */
|
||||
#define OMAP2430_SYNC_MDM (1 << 4)
|
||||
#define OMAP2430_SYNC_MDM_MASK (1 << 4)
|
||||
#define OMAP2430_CLKSEL_MDM_SHIFT 0
|
||||
#define OMAP2430_CLKSEL_MDM_MASK (0xf << 0)
|
||||
|
||||
|
@ -21,15 +21,15 @@
|
||||
/* CM_FCLKEN1_CORE and CM_ICLKEN1_CORE shared bits */
|
||||
#define OMAP3430ES2_EN_MMC3_MASK (1 << 30)
|
||||
#define OMAP3430ES2_EN_MMC3_SHIFT 30
|
||||
#define OMAP3430_EN_MSPRO (1 << 23)
|
||||
#define OMAP3430_EN_MSPRO_MASK (1 << 23)
|
||||
#define OMAP3430_EN_MSPRO_SHIFT 23
|
||||
#define OMAP3430_EN_HDQ (1 << 22)
|
||||
#define OMAP3430_EN_HDQ_MASK (1 << 22)
|
||||
#define OMAP3430_EN_HDQ_SHIFT 22
|
||||
#define OMAP3430ES1_EN_FSHOSTUSB (1 << 5)
|
||||
#define OMAP3430ES1_EN_FSHOSTUSB_MASK (1 << 5)
|
||||
#define OMAP3430ES1_EN_FSHOSTUSB_SHIFT 5
|
||||
#define OMAP3430ES1_EN_D2D (1 << 3)
|
||||
#define OMAP3430ES1_EN_D2D_MASK (1 << 3)
|
||||
#define OMAP3430ES1_EN_D2D_SHIFT 3
|
||||
#define OMAP3430_EN_SSI (1 << 0)
|
||||
#define OMAP3430_EN_SSI_MASK (1 << 0)
|
||||
#define OMAP3430_EN_SSI_SHIFT 0
|
||||
|
||||
/* CM_FCLKEN3_CORE and CM_ICLKEN3_CORE shared bits */
|
||||
@ -37,19 +37,19 @@
|
||||
#define OMAP3430ES2_EN_USBTLL_MASK (1 << 2)
|
||||
|
||||
/* CM_FCLKEN_WKUP and CM_ICLKEN_WKUP shared bits */
|
||||
#define OMAP3430_EN_WDT2 (1 << 5)
|
||||
#define OMAP3430_EN_WDT2_MASK (1 << 5)
|
||||
#define OMAP3430_EN_WDT2_SHIFT 5
|
||||
|
||||
/* CM_ICLKEN_CAM, CM_FCLKEN_CAM shared bits */
|
||||
#define OMAP3430_EN_CAM (1 << 0)
|
||||
#define OMAP3430_EN_CAM_MASK (1 << 0)
|
||||
#define OMAP3430_EN_CAM_SHIFT 0
|
||||
|
||||
/* CM_FCLKEN_PER, CM_ICLKEN_PER shared bits */
|
||||
#define OMAP3430_EN_WDT3 (1 << 12)
|
||||
#define OMAP3430_EN_WDT3_MASK (1 << 12)
|
||||
#define OMAP3430_EN_WDT3_SHIFT 12
|
||||
|
||||
/* CM_CLKSEL2_EMU, CM_CLKSEL3_EMU shared bits */
|
||||
#define OMAP3430_OVERRIDE_ENABLE (1 << 19)
|
||||
#define OMAP3430_OVERRIDE_ENABLE_MASK (1 << 19)
|
||||
|
||||
|
||||
/* Bits specific to each register */
|
||||
@ -69,7 +69,7 @@
|
||||
#define OMAP3430_EN_IVA2_DPLL_MASK (0x7 << 0)
|
||||
|
||||
/* CM_IDLEST_IVA2 */
|
||||
#define OMAP3430_ST_IVA2 (1 << 0)
|
||||
#define OMAP3430_ST_IVA2_MASK (1 << 0)
|
||||
|
||||
/* CM_IDLEST_PLL_IVA2 */
|
||||
#define OMAP3430_ST_IVA2_CLK_SHIFT 0
|
||||
@ -114,7 +114,7 @@
|
||||
#define OMAP3430_EN_MPU_DPLL_MASK (0x7 << 0)
|
||||
|
||||
/* CM_IDLEST_MPU */
|
||||
#define OMAP3430_ST_MPU (1 << 0)
|
||||
#define OMAP3430_ST_MPU_MASK (1 << 0)
|
||||
|
||||
/* CM_IDLEST_PLL_MPU */
|
||||
#define OMAP3430_ST_MPU_CLK_SHIFT 0
|
||||
@ -145,50 +145,50 @@
|
||||
#define OMAP3430_CLKACTIVITY_MPU_MASK (1 << 0)
|
||||
|
||||
/* CM_FCLKEN1_CORE specific bits */
|
||||
#define OMAP3430_EN_MODEM (1 << 31)
|
||||
#define OMAP3430_EN_MODEM_MASK (1 << 31)
|
||||
#define OMAP3430_EN_MODEM_SHIFT 31
|
||||
|
||||
/* CM_ICLKEN1_CORE specific bits */
|
||||
#define OMAP3430_EN_ICR (1 << 29)
|
||||
#define OMAP3430_EN_ICR_MASK (1 << 29)
|
||||
#define OMAP3430_EN_ICR_SHIFT 29
|
||||
#define OMAP3430_EN_AES2 (1 << 28)
|
||||
#define OMAP3430_EN_AES2_MASK (1 << 28)
|
||||
#define OMAP3430_EN_AES2_SHIFT 28
|
||||
#define OMAP3430_EN_SHA12 (1 << 27)
|
||||
#define OMAP3430_EN_SHA12_MASK (1 << 27)
|
||||
#define OMAP3430_EN_SHA12_SHIFT 27
|
||||
#define OMAP3430_EN_DES2 (1 << 26)
|
||||
#define OMAP3430_EN_DES2_MASK (1 << 26)
|
||||
#define OMAP3430_EN_DES2_SHIFT 26
|
||||
#define OMAP3430ES1_EN_FAC (1 << 8)
|
||||
#define OMAP3430ES1_EN_FAC_MASK (1 << 8)
|
||||
#define OMAP3430ES1_EN_FAC_SHIFT 8
|
||||
#define OMAP3430_EN_MAILBOXES (1 << 7)
|
||||
#define OMAP3430_EN_MAILBOXES_MASK (1 << 7)
|
||||
#define OMAP3430_EN_MAILBOXES_SHIFT 7
|
||||
#define OMAP3430_EN_OMAPCTRL (1 << 6)
|
||||
#define OMAP3430_EN_OMAPCTRL_MASK (1 << 6)
|
||||
#define OMAP3430_EN_OMAPCTRL_SHIFT 6
|
||||
#define OMAP3430_EN_SAD2D (1 << 3)
|
||||
#define OMAP3430_EN_SAD2D_MASK (1 << 3)
|
||||
#define OMAP3430_EN_SAD2D_SHIFT 3
|
||||
#define OMAP3430_EN_SDRC (1 << 1)
|
||||
#define OMAP3430_EN_SDRC_MASK (1 << 1)
|
||||
#define OMAP3430_EN_SDRC_SHIFT 1
|
||||
|
||||
/* AM35XX specific CM_ICLKEN1_CORE bits */
|
||||
#define AM35XX_EN_IPSS_MASK (1 << 4)
|
||||
#define AM35XX_EN_IPSS_SHIFT 4
|
||||
#define AM35XX_EN_UART4_MASK (1 << 23)
|
||||
#define AM35XX_EN_UART4_MASK (1 << 23)
|
||||
#define AM35XX_EN_UART4_SHIFT 23
|
||||
|
||||
/* CM_ICLKEN2_CORE */
|
||||
#define OMAP3430_EN_PKA (1 << 4)
|
||||
#define OMAP3430_EN_PKA_MASK (1 << 4)
|
||||
#define OMAP3430_EN_PKA_SHIFT 4
|
||||
#define OMAP3430_EN_AES1 (1 << 3)
|
||||
#define OMAP3430_EN_AES1_MASK (1 << 3)
|
||||
#define OMAP3430_EN_AES1_SHIFT 3
|
||||
#define OMAP3430_EN_RNG (1 << 2)
|
||||
#define OMAP3430_EN_RNG_MASK (1 << 2)
|
||||
#define OMAP3430_EN_RNG_SHIFT 2
|
||||
#define OMAP3430_EN_SHA11 (1 << 1)
|
||||
#define OMAP3430_EN_SHA11_MASK (1 << 1)
|
||||
#define OMAP3430_EN_SHA11_SHIFT 1
|
||||
#define OMAP3430_EN_DES1 (1 << 0)
|
||||
#define OMAP3430_EN_DES1_MASK (1 << 0)
|
||||
#define OMAP3430_EN_DES1_SHIFT 0
|
||||
|
||||
/* CM_ICLKEN3_CORE */
|
||||
#define OMAP3430_EN_MAD2D_SHIFT 3
|
||||
#define OMAP3430_EN_MAD2D (1 << 3)
|
||||
#define OMAP3430_EN_MAD2D_MASK (1 << 3)
|
||||
|
||||
/* CM_FCLKEN3_CORE specific bits */
|
||||
#define OMAP3430ES2_EN_TS_SHIFT 1
|
||||
@ -249,79 +249,79 @@
|
||||
#define OMAP3430ES2_ST_CPEFUSE_MASK (1 << 0)
|
||||
|
||||
/* CM_AUTOIDLE1_CORE */
|
||||
#define OMAP3430_AUTO_MODEM (1 << 31)
|
||||
#define OMAP3430_AUTO_MODEM_MASK (1 << 31)
|
||||
#define OMAP3430_AUTO_MODEM_SHIFT 31
|
||||
#define OMAP3430ES2_AUTO_MMC3 (1 << 30)
|
||||
#define OMAP3430ES2_AUTO_MMC3_MASK (1 << 30)
|
||||
#define OMAP3430ES2_AUTO_MMC3_SHIFT 30
|
||||
#define OMAP3430ES2_AUTO_ICR (1 << 29)
|
||||
#define OMAP3430ES2_AUTO_ICR_MASK (1 << 29)
|
||||
#define OMAP3430ES2_AUTO_ICR_SHIFT 29
|
||||
#define OMAP3430_AUTO_AES2 (1 << 28)
|
||||
#define OMAP3430_AUTO_AES2_MASK (1 << 28)
|
||||
#define OMAP3430_AUTO_AES2_SHIFT 28
|
||||
#define OMAP3430_AUTO_SHA12 (1 << 27)
|
||||
#define OMAP3430_AUTO_SHA12_MASK (1 << 27)
|
||||
#define OMAP3430_AUTO_SHA12_SHIFT 27
|
||||
#define OMAP3430_AUTO_DES2 (1 << 26)
|
||||
#define OMAP3430_AUTO_DES2_MASK (1 << 26)
|
||||
#define OMAP3430_AUTO_DES2_SHIFT 26
|
||||
#define OMAP3430_AUTO_MMC2 (1 << 25)
|
||||
#define OMAP3430_AUTO_MMC2_MASK (1 << 25)
|
||||
#define OMAP3430_AUTO_MMC2_SHIFT 25
|
||||
#define OMAP3430_AUTO_MMC1 (1 << 24)
|
||||
#define OMAP3430_AUTO_MMC1_MASK (1 << 24)
|
||||
#define OMAP3430_AUTO_MMC1_SHIFT 24
|
||||
#define OMAP3430_AUTO_MSPRO (1 << 23)
|
||||
#define OMAP3430_AUTO_MSPRO_MASK (1 << 23)
|
||||
#define OMAP3430_AUTO_MSPRO_SHIFT 23
|
||||
#define OMAP3430_AUTO_HDQ (1 << 22)
|
||||
#define OMAP3430_AUTO_HDQ_MASK (1 << 22)
|
||||
#define OMAP3430_AUTO_HDQ_SHIFT 22
|
||||
#define OMAP3430_AUTO_MCSPI4 (1 << 21)
|
||||
#define OMAP3430_AUTO_MCSPI4_MASK (1 << 21)
|
||||
#define OMAP3430_AUTO_MCSPI4_SHIFT 21
|
||||
#define OMAP3430_AUTO_MCSPI3 (1 << 20)
|
||||
#define OMAP3430_AUTO_MCSPI3_MASK (1 << 20)
|
||||
#define OMAP3430_AUTO_MCSPI3_SHIFT 20
|
||||
#define OMAP3430_AUTO_MCSPI2 (1 << 19)
|
||||
#define OMAP3430_AUTO_MCSPI2_MASK (1 << 19)
|
||||
#define OMAP3430_AUTO_MCSPI2_SHIFT 19
|
||||
#define OMAP3430_AUTO_MCSPI1 (1 << 18)
|
||||
#define OMAP3430_AUTO_MCSPI1_MASK (1 << 18)
|
||||
#define OMAP3430_AUTO_MCSPI1_SHIFT 18
|
||||
#define OMAP3430_AUTO_I2C3 (1 << 17)
|
||||
#define OMAP3430_AUTO_I2C3_MASK (1 << 17)
|
||||
#define OMAP3430_AUTO_I2C3_SHIFT 17
|
||||
#define OMAP3430_AUTO_I2C2 (1 << 16)
|
||||
#define OMAP3430_AUTO_I2C2_MASK (1 << 16)
|
||||
#define OMAP3430_AUTO_I2C2_SHIFT 16
|
||||
#define OMAP3430_AUTO_I2C1 (1 << 15)
|
||||
#define OMAP3430_AUTO_I2C1_MASK (1 << 15)
|
||||
#define OMAP3430_AUTO_I2C1_SHIFT 15
|
||||
#define OMAP3430_AUTO_UART2 (1 << 14)
|
||||
#define OMAP3430_AUTO_UART2_MASK (1 << 14)
|
||||
#define OMAP3430_AUTO_UART2_SHIFT 14
|
||||
#define OMAP3430_AUTO_UART1 (1 << 13)
|
||||
#define OMAP3430_AUTO_UART1_MASK (1 << 13)
|
||||
#define OMAP3430_AUTO_UART1_SHIFT 13
|
||||
#define OMAP3430_AUTO_GPT11 (1 << 12)
|
||||
#define OMAP3430_AUTO_GPT11_MASK (1 << 12)
|
||||
#define OMAP3430_AUTO_GPT11_SHIFT 12
|
||||
#define OMAP3430_AUTO_GPT10 (1 << 11)
|
||||
#define OMAP3430_AUTO_GPT10_MASK (1 << 11)
|
||||
#define OMAP3430_AUTO_GPT10_SHIFT 11
|
||||
#define OMAP3430_AUTO_MCBSP5 (1 << 10)
|
||||
#define OMAP3430_AUTO_MCBSP5_MASK (1 << 10)
|
||||
#define OMAP3430_AUTO_MCBSP5_SHIFT 10
|
||||
#define OMAP3430_AUTO_MCBSP1 (1 << 9)
|
||||
#define OMAP3430_AUTO_MCBSP1_MASK (1 << 9)
|
||||
#define OMAP3430_AUTO_MCBSP1_SHIFT 9
|
||||
#define OMAP3430ES1_AUTO_FAC (1 << 8)
|
||||
#define OMAP3430ES1_AUTO_FAC_MASK (1 << 8)
|
||||
#define OMAP3430ES1_AUTO_FAC_SHIFT 8
|
||||
#define OMAP3430_AUTO_MAILBOXES (1 << 7)
|
||||
#define OMAP3430_AUTO_MAILBOXES_MASK (1 << 7)
|
||||
#define OMAP3430_AUTO_MAILBOXES_SHIFT 7
|
||||
#define OMAP3430_AUTO_OMAPCTRL (1 << 6)
|
||||
#define OMAP3430_AUTO_OMAPCTRL_MASK (1 << 6)
|
||||
#define OMAP3430_AUTO_OMAPCTRL_SHIFT 6
|
||||
#define OMAP3430ES1_AUTO_FSHOSTUSB (1 << 5)
|
||||
#define OMAP3430ES1_AUTO_FSHOSTUSB_MASK (1 << 5)
|
||||
#define OMAP3430ES1_AUTO_FSHOSTUSB_SHIFT 5
|
||||
#define OMAP3430_AUTO_HSOTGUSB (1 << 4)
|
||||
#define OMAP3430_AUTO_HSOTGUSB_MASK (1 << 4)
|
||||
#define OMAP3430_AUTO_HSOTGUSB_SHIFT 4
|
||||
#define OMAP3430ES1_AUTO_D2D (1 << 3)
|
||||
#define OMAP3430ES1_AUTO_D2D_MASK (1 << 3)
|
||||
#define OMAP3430ES1_AUTO_D2D_SHIFT 3
|
||||
#define OMAP3430_AUTO_SAD2D (1 << 3)
|
||||
#define OMAP3430_AUTO_SAD2D_MASK (1 << 3)
|
||||
#define OMAP3430_AUTO_SAD2D_SHIFT 3
|
||||
#define OMAP3430_AUTO_SSI (1 << 0)
|
||||
#define OMAP3430_AUTO_SSI_MASK (1 << 0)
|
||||
#define OMAP3430_AUTO_SSI_SHIFT 0
|
||||
|
||||
/* CM_AUTOIDLE2_CORE */
|
||||
#define OMAP3430_AUTO_PKA (1 << 4)
|
||||
#define OMAP3430_AUTO_PKA_MASK (1 << 4)
|
||||
#define OMAP3430_AUTO_PKA_SHIFT 4
|
||||
#define OMAP3430_AUTO_AES1 (1 << 3)
|
||||
#define OMAP3430_AUTO_AES1_MASK (1 << 3)
|
||||
#define OMAP3430_AUTO_AES1_SHIFT 3
|
||||
#define OMAP3430_AUTO_RNG (1 << 2)
|
||||
#define OMAP3430_AUTO_RNG_MASK (1 << 2)
|
||||
#define OMAP3430_AUTO_RNG_SHIFT 2
|
||||
#define OMAP3430_AUTO_SHA11 (1 << 1)
|
||||
#define OMAP3430_AUTO_SHA11_MASK (1 << 1)
|
||||
#define OMAP3430_AUTO_SHA11_SHIFT 1
|
||||
#define OMAP3430_AUTO_DES1 (1 << 0)
|
||||
#define OMAP3430_AUTO_DES1_MASK (1 << 0)
|
||||
#define OMAP3430_AUTO_DES1_SHIFT 0
|
||||
|
||||
/* CM_AUTOIDLE3_CORE */
|
||||
@ -331,7 +331,7 @@
|
||||
#define OMAP3430ES2_AUTO_USBTLL_SHIFT 2
|
||||
#define OMAP3430ES2_AUTO_USBTLL_MASK (1 << 2)
|
||||
#define OMAP3430_AUTO_MAD2D_SHIFT 3
|
||||
#define OMAP3430_AUTO_MAD2D (1 << 3)
|
||||
#define OMAP3430_AUTO_MAD2D_MASK (1 << 3)
|
||||
|
||||
/* CM_CLKSEL_CORE */
|
||||
#define OMAP3430_CLKSEL_SSI_SHIFT 8
|
||||
@ -366,9 +366,9 @@
|
||||
#define OMAP3430_CLKACTIVITY_L3_MASK (1 << 0)
|
||||
|
||||
/* CM_FCLKEN_GFX */
|
||||
#define OMAP3430ES1_EN_3D (1 << 2)
|
||||
#define OMAP3430ES1_EN_3D_MASK (1 << 2)
|
||||
#define OMAP3430ES1_EN_3D_SHIFT 2
|
||||
#define OMAP3430ES1_EN_2D (1 << 1)
|
||||
#define OMAP3430ES1_EN_2D_MASK (1 << 1)
|
||||
#define OMAP3430ES1_EN_2D_SHIFT 1
|
||||
|
||||
/* CM_ICLKEN_GFX specific bits */
|
||||
@ -416,9 +416,9 @@
|
||||
#define OMAP3430ES2_EN_USIMOCP_MASK (1 << 9)
|
||||
|
||||
/* CM_ICLKEN_WKUP specific bits */
|
||||
#define OMAP3430_EN_WDT1 (1 << 4)
|
||||
#define OMAP3430_EN_WDT1_MASK (1 << 4)
|
||||
#define OMAP3430_EN_WDT1_SHIFT 4
|
||||
#define OMAP3430_EN_32KSYNC (1 << 2)
|
||||
#define OMAP3430_EN_32KSYNC_MASK (1 << 2)
|
||||
#define OMAP3430_EN_32KSYNC_SHIFT 2
|
||||
|
||||
/* CM_IDLEST_WKUP specific bits */
|
||||
@ -432,19 +432,19 @@
|
||||
#define OMAP3430_ST_32KSYNC_MASK (1 << 2)
|
||||
|
||||
/* CM_AUTOIDLE_WKUP */
|
||||
#define OMAP3430ES2_AUTO_USIMOCP (1 << 9)
|
||||
#define OMAP3430ES2_AUTO_USIMOCP_MASK (1 << 9)
|
||||
#define OMAP3430ES2_AUTO_USIMOCP_SHIFT 9
|
||||
#define OMAP3430_AUTO_WDT2 (1 << 5)
|
||||
#define OMAP3430_AUTO_WDT2_MASK (1 << 5)
|
||||
#define OMAP3430_AUTO_WDT2_SHIFT 5
|
||||
#define OMAP3430_AUTO_WDT1 (1 << 4)
|
||||
#define OMAP3430_AUTO_WDT1_MASK (1 << 4)
|
||||
#define OMAP3430_AUTO_WDT1_SHIFT 4
|
||||
#define OMAP3430_AUTO_GPIO1 (1 << 3)
|
||||
#define OMAP3430_AUTO_GPIO1_MASK (1 << 3)
|
||||
#define OMAP3430_AUTO_GPIO1_SHIFT 3
|
||||
#define OMAP3430_AUTO_32KSYNC (1 << 2)
|
||||
#define OMAP3430_AUTO_32KSYNC_MASK (1 << 2)
|
||||
#define OMAP3430_AUTO_32KSYNC_SHIFT 2
|
||||
#define OMAP3430_AUTO_GPT12 (1 << 1)
|
||||
#define OMAP3430_AUTO_GPT12_MASK (1 << 1)
|
||||
#define OMAP3430_AUTO_GPT12_SHIFT 1
|
||||
#define OMAP3430_AUTO_GPT1 (1 << 0)
|
||||
#define OMAP3430_AUTO_GPT1_MASK (1 << 0)
|
||||
#define OMAP3430_AUTO_GPT1_SHIFT 0
|
||||
|
||||
/* CM_CLKSEL_WKUP */
|
||||
@ -479,7 +479,7 @@
|
||||
#define OMAP3430_EN_CORE_DPLL_MASK (0x7 << 0)
|
||||
|
||||
/* CM_CLKEN2_PLL */
|
||||
#define OMAP3430ES2_EN_PERIPH2_DPLL_LPMODE_SHIFT 10
|
||||
#define OMAP3430ES2_EN_PERIPH2_DPLL_LPMODE_SHIFT 10
|
||||
#define OMAP3430ES2_PERIPH2_DPLL_RAMPTIME_MASK (0x3 << 8)
|
||||
#define OMAP3430ES2_PERIPH2_DPLL_FREQSEL_SHIFT 4
|
||||
#define OMAP3430ES2_PERIPH2_DPLL_FREQSEL_MASK (0xf << 4)
|
||||
@ -488,10 +488,10 @@
|
||||
#define OMAP3430ES2_EN_PERIPH2_DPLL_MASK (0x7 << 0)
|
||||
|
||||
/* CM_IDLEST_CKGEN */
|
||||
#define OMAP3430_ST_54M_CLK (1 << 5)
|
||||
#define OMAP3430_ST_12M_CLK (1 << 4)
|
||||
#define OMAP3430_ST_48M_CLK (1 << 3)
|
||||
#define OMAP3430_ST_96M_CLK (1 << 2)
|
||||
#define OMAP3430_ST_54M_CLK_MASK (1 << 5)
|
||||
#define OMAP3430_ST_12M_CLK_MASK (1 << 4)
|
||||
#define OMAP3430_ST_48M_CLK_MASK (1 << 3)
|
||||
#define OMAP3430_ST_96M_CLK_MASK (1 << 2)
|
||||
#define OMAP3430_ST_PERIPH_CLK_SHIFT 1
|
||||
#define OMAP3430_ST_PERIPH_CLK_MASK (1 << 1)
|
||||
#define OMAP3430_ST_CORE_CLK_SHIFT 0
|
||||
@ -558,22 +558,22 @@
|
||||
|
||||
/* CM_CLKOUT_CTRL */
|
||||
#define OMAP3430_CLKOUT2_EN_SHIFT 7
|
||||
#define OMAP3430_CLKOUT2_EN (1 << 7)
|
||||
#define OMAP3430_CLKOUT2_EN_MASK (1 << 7)
|
||||
#define OMAP3430_CLKOUT2_DIV_SHIFT 3
|
||||
#define OMAP3430_CLKOUT2_DIV_MASK (0x7 << 3)
|
||||
#define OMAP3430_CLKOUT2SOURCE_SHIFT 0
|
||||
#define OMAP3430_CLKOUT2SOURCE_MASK (0x3 << 0)
|
||||
|
||||
/* CM_FCLKEN_DSS */
|
||||
#define OMAP3430_EN_TV (1 << 2)
|
||||
#define OMAP3430_EN_TV_MASK (1 << 2)
|
||||
#define OMAP3430_EN_TV_SHIFT 2
|
||||
#define OMAP3430_EN_DSS2 (1 << 1)
|
||||
#define OMAP3430_EN_DSS2_MASK (1 << 1)
|
||||
#define OMAP3430_EN_DSS2_SHIFT 1
|
||||
#define OMAP3430_EN_DSS1 (1 << 0)
|
||||
#define OMAP3430_EN_DSS1_MASK (1 << 0)
|
||||
#define OMAP3430_EN_DSS1_SHIFT 0
|
||||
|
||||
/* CM_ICLKEN_DSS */
|
||||
#define OMAP3430_CM_ICLKEN_DSS_EN_DSS (1 << 0)
|
||||
#define OMAP3430_CM_ICLKEN_DSS_EN_DSS_MASK (1 << 0)
|
||||
#define OMAP3430_CM_ICLKEN_DSS_EN_DSS_SHIFT 0
|
||||
|
||||
/* CM_IDLEST_DSS */
|
||||
@ -585,7 +585,7 @@
|
||||
#define OMAP3430ES1_ST_DSS_MASK (1 << 0)
|
||||
|
||||
/* CM_AUTOIDLE_DSS */
|
||||
#define OMAP3430_AUTO_DSS (1 << 0)
|
||||
#define OMAP3430_AUTO_DSS_MASK (1 << 0)
|
||||
#define OMAP3430_AUTO_DSS_SHIFT 0
|
||||
|
||||
/* CM_CLKSEL_DSS */
|
||||
@ -607,16 +607,16 @@
|
||||
#define OMAP3430_CLKACTIVITY_DSS_MASK (1 << 0)
|
||||
|
||||
/* CM_FCLKEN_CAM specific bits */
|
||||
#define OMAP3430_EN_CSI2 (1 << 1)
|
||||
#define OMAP3430_EN_CSI2_MASK (1 << 1)
|
||||
#define OMAP3430_EN_CSI2_SHIFT 1
|
||||
|
||||
/* CM_ICLKEN_CAM specific bits */
|
||||
|
||||
/* CM_IDLEST_CAM */
|
||||
#define OMAP3430_ST_CAM (1 << 0)
|
||||
#define OMAP3430_ST_CAM_MASK (1 << 0)
|
||||
|
||||
/* CM_AUTOIDLE_CAM */
|
||||
#define OMAP3430_AUTO_CAM (1 << 0)
|
||||
#define OMAP3430_AUTO_CAM_MASK (1 << 0)
|
||||
#define OMAP3430_AUTO_CAM_SHIFT 0
|
||||
|
||||
/* CM_CLKSEL_CAM */
|
||||
@ -649,41 +649,41 @@
|
||||
#define OMAP3430_ST_MCBSP2_MASK (1 << 0)
|
||||
|
||||
/* CM_AUTOIDLE_PER */
|
||||
#define OMAP3430_AUTO_GPIO6 (1 << 17)
|
||||
#define OMAP3430_AUTO_GPIO6_MASK (1 << 17)
|
||||
#define OMAP3430_AUTO_GPIO6_SHIFT 17
|
||||
#define OMAP3430_AUTO_GPIO5 (1 << 16)
|
||||
#define OMAP3430_AUTO_GPIO5_MASK (1 << 16)
|
||||
#define OMAP3430_AUTO_GPIO5_SHIFT 16
|
||||
#define OMAP3430_AUTO_GPIO4 (1 << 15)
|
||||
#define OMAP3430_AUTO_GPIO4_MASK (1 << 15)
|
||||
#define OMAP3430_AUTO_GPIO4_SHIFT 15
|
||||
#define OMAP3430_AUTO_GPIO3 (1 << 14)
|
||||
#define OMAP3430_AUTO_GPIO3_MASK (1 << 14)
|
||||
#define OMAP3430_AUTO_GPIO3_SHIFT 14
|
||||
#define OMAP3430_AUTO_GPIO2 (1 << 13)
|
||||
#define OMAP3430_AUTO_GPIO2_MASK (1 << 13)
|
||||
#define OMAP3430_AUTO_GPIO2_SHIFT 13
|
||||
#define OMAP3430_AUTO_WDT3 (1 << 12)
|
||||
#define OMAP3430_AUTO_WDT3_MASK (1 << 12)
|
||||
#define OMAP3430_AUTO_WDT3_SHIFT 12
|
||||
#define OMAP3430_AUTO_UART3 (1 << 11)
|
||||
#define OMAP3430_AUTO_UART3_MASK (1 << 11)
|
||||
#define OMAP3430_AUTO_UART3_SHIFT 11
|
||||
#define OMAP3430_AUTO_GPT9 (1 << 10)
|
||||
#define OMAP3430_AUTO_GPT9_MASK (1 << 10)
|
||||
#define OMAP3430_AUTO_GPT9_SHIFT 10
|
||||
#define OMAP3430_AUTO_GPT8 (1 << 9)
|
||||
#define OMAP3430_AUTO_GPT8_MASK (1 << 9)
|
||||
#define OMAP3430_AUTO_GPT8_SHIFT 9
|
||||
#define OMAP3430_AUTO_GPT7 (1 << 8)
|
||||
#define OMAP3430_AUTO_GPT7_MASK (1 << 8)
|
||||
#define OMAP3430_AUTO_GPT7_SHIFT 8
|
||||
#define OMAP3430_AUTO_GPT6 (1 << 7)
|
||||
#define OMAP3430_AUTO_GPT6_MASK (1 << 7)
|
||||
#define OMAP3430_AUTO_GPT6_SHIFT 7
|
||||
#define OMAP3430_AUTO_GPT5 (1 << 6)
|
||||
#define OMAP3430_AUTO_GPT5_MASK (1 << 6)
|
||||
#define OMAP3430_AUTO_GPT5_SHIFT 6
|
||||
#define OMAP3430_AUTO_GPT4 (1 << 5)
|
||||
#define OMAP3430_AUTO_GPT4_MASK (1 << 5)
|
||||
#define OMAP3430_AUTO_GPT4_SHIFT 5
|
||||
#define OMAP3430_AUTO_GPT3 (1 << 4)
|
||||
#define OMAP3430_AUTO_GPT3_MASK (1 << 4)
|
||||
#define OMAP3430_AUTO_GPT3_SHIFT 4
|
||||
#define OMAP3430_AUTO_GPT2 (1 << 3)
|
||||
#define OMAP3430_AUTO_GPT2_MASK (1 << 3)
|
||||
#define OMAP3430_AUTO_GPT2_SHIFT 3
|
||||
#define OMAP3430_AUTO_MCBSP4 (1 << 2)
|
||||
#define OMAP3430_AUTO_MCBSP4_MASK (1 << 2)
|
||||
#define OMAP3430_AUTO_MCBSP4_SHIFT 2
|
||||
#define OMAP3430_AUTO_MCBSP3 (1 << 1)
|
||||
#define OMAP3430_AUTO_MCBSP3_MASK (1 << 1)
|
||||
#define OMAP3430_AUTO_MCBSP3_SHIFT 1
|
||||
#define OMAP3430_AUTO_MCBSP2 (1 << 0)
|
||||
#define OMAP3430_AUTO_MCBSP2_MASK (1 << 0)
|
||||
#define OMAP3430_AUTO_MCBSP2_SHIFT 0
|
||||
|
||||
/* CM_CLKSEL_PER */
|
||||
@ -705,7 +705,7 @@
|
||||
#define OMAP3430_CLKSEL_GPT2_SHIFT 0
|
||||
|
||||
/* CM_SLEEPDEP_PER specific bits */
|
||||
#define OMAP3430_CM_SLEEPDEP_PER_EN_IVA2 (1 << 2)
|
||||
#define OMAP3430_CM_SLEEPDEP_PER_EN_IVA2_MASK (1 << 2)
|
||||
|
||||
/* CM_CLKSTCTRL_PER */
|
||||
#define OMAP3430_CLKTRCTRL_PER_SHIFT 0
|
||||
@ -755,10 +755,10 @@
|
||||
#define OMAP3430_PERIPH_DPLL_EMU_DIV_MASK (0x7f << 0)
|
||||
|
||||
/* CM_POLCTRL */
|
||||
#define OMAP3430_CLKOUT2_POL (1 << 0)
|
||||
#define OMAP3430_CLKOUT2_POL_MASK (1 << 0)
|
||||
|
||||
/* CM_IDLEST_NEON */
|
||||
#define OMAP3430_ST_NEON (1 << 0)
|
||||
#define OMAP3430_ST_NEON_MASK (1 << 0)
|
||||
|
||||
/* CM_CLKSTCTRL_NEON */
|
||||
#define OMAP3430_CLKTRCTRL_NEON_SHIFT 0
|
||||
|
@ -27,9 +27,6 @@
|
||||
#include "cm-regbits-24xx.h"
|
||||
#include "cm-regbits-34xx.h"
|
||||
|
||||
/* MAX_MODULE_READY_TIME: max milliseconds for module to leave idle */
|
||||
#define MAX_MODULE_READY_TIME 20000
|
||||
|
||||
static const u8 cm_idlest_offs[] = {
|
||||
CM_IDLEST1, CM_IDLEST2, OMAP2430_CM_IDLEST3
|
||||
};
|
||||
|
@ -112,7 +112,7 @@ extern u32 cm_rmw_mod_reg_bits(u32 mask, u32 bits, s16 module, s16 idx);
|
||||
|
||||
extern int omap2_cm_wait_module_ready(s16 prcm_mod, u8 idlest_id,
|
||||
u8 idlest_shift);
|
||||
extern int omap4_cm_wait_module_ready(u32 prcm_mod, u8 prcm_dev_offs);
|
||||
extern int omap4_cm_wait_module_ready(void __iomem *clkctrl_reg);
|
||||
|
||||
static inline u32 cm_set_mod_reg_bits(u32 bits, s16 module, s16 idx)
|
||||
{
|
||||
@ -134,13 +134,23 @@ static inline u32 cm_clear_mod_reg_bits(u32 bits, s16 module, s16 idx)
|
||||
|
||||
/* CM_ICLKEN_GFX */
|
||||
#define OMAP_EN_GFX_SHIFT 0
|
||||
#define OMAP_EN_GFX (1 << 0)
|
||||
#define OMAP_EN_GFX_MASK (1 << 0)
|
||||
|
||||
/* CM_IDLEST_GFX */
|
||||
#define OMAP_ST_GFX (1 << 0)
|
||||
#define OMAP_ST_GFX_MASK (1 << 0)
|
||||
|
||||
|
||||
/* CM_IDLEST indicator */
|
||||
#define OMAP24XX_CM_IDLEST_VAL 0
|
||||
#define OMAP34XX_CM_IDLEST_VAL 1
|
||||
|
||||
/*
|
||||
* MAX_MODULE_READY_TIME: max duration in microseconds to wait for the
|
||||
* PRCM to request that a module exit the inactive state in the case of
|
||||
* OMAP2 & 3.
|
||||
* In the case of OMAP4 this is the max duration in microseconds for the
|
||||
* module to reach the functionnal state from an inactive state.
|
||||
*/
|
||||
#define MAX_MODULE_READY_TIME 2000
|
||||
|
||||
#endif
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* OMAP44xx CM1 & CM2 instance offset macros
|
||||
*
|
||||
* Copyright (C) 2009 Texas Instruments, Inc.
|
||||
* Copyright (C) 2009 Nokia Corporation
|
||||
* Copyright (C) 2009-2010 Texas Instruments, Inc.
|
||||
* Copyright (C) 2009-2010 Nokia Corporation
|
||||
*
|
||||
* Paul Walmsley (paul@pwsan.com)
|
||||
* Rajendra Nayak (rnayak@ti.com)
|
||||
@ -25,334 +25,557 @@
|
||||
|
||||
/* CM1 */
|
||||
|
||||
|
||||
/* CM1.OCP_SOCKET_CM1 register offsets */
|
||||
#define OMAP4_REVISION_CM1_OFFSET 0x0000
|
||||
#define OMAP4430_REVISION_CM1 OMAP44XX_CM1_REGADDR(OMAP4430_CM1_OCP_SOCKET_MOD, 0x0000)
|
||||
#define OMAP4_CM_CM1_PROFILING_CLKCTRL_OFFSET 0x0040
|
||||
#define OMAP4430_CM_CM1_PROFILING_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_OCP_SOCKET_MOD, 0x0040)
|
||||
|
||||
/* CM1.CKGEN_CM1 register offsets */
|
||||
#define OMAP4_CM_CLKSEL_CORE_OFFSET 0x0000
|
||||
#define OMAP4430_CM_CLKSEL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0000)
|
||||
#define OMAP4_CM_CLKSEL_ABE_OFFSET 0x0008
|
||||
#define OMAP4430_CM_CLKSEL_ABE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0008)
|
||||
#define OMAP4_CM_DLL_CTRL_OFFSET 0x0010
|
||||
#define OMAP4430_CM_DLL_CTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0010)
|
||||
#define OMAP4_CM_CLKMODE_DPLL_CORE_OFFSET 0x0020
|
||||
#define OMAP4430_CM_CLKMODE_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0020)
|
||||
#define OMAP4_CM_IDLEST_DPLL_CORE_OFFSET 0x0024
|
||||
#define OMAP4430_CM_IDLEST_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0024)
|
||||
#define OMAP4_CM_AUTOIDLE_DPLL_CORE_OFFSET 0x0028
|
||||
#define OMAP4430_CM_AUTOIDLE_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0028)
|
||||
#define OMAP4_CM_CLKSEL_DPLL_CORE_OFFSET 0x002c
|
||||
#define OMAP4430_CM_CLKSEL_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x002c)
|
||||
#define OMAP4_CM_DIV_M2_DPLL_CORE_OFFSET 0x0030
|
||||
#define OMAP4430_CM_DIV_M2_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0030)
|
||||
#define OMAP4_CM_DIV_M3_DPLL_CORE_OFFSET 0x0034
|
||||
#define OMAP4430_CM_DIV_M3_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0034)
|
||||
#define OMAP4_CM_DIV_M4_DPLL_CORE_OFFSET 0x0038
|
||||
#define OMAP4430_CM_DIV_M4_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0038)
|
||||
#define OMAP4_CM_DIV_M5_DPLL_CORE_OFFSET 0x003c
|
||||
#define OMAP4430_CM_DIV_M5_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x003c)
|
||||
#define OMAP4_CM_DIV_M6_DPLL_CORE_OFFSET 0x0040
|
||||
#define OMAP4430_CM_DIV_M6_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0040)
|
||||
#define OMAP4_CM_DIV_M7_DPLL_CORE_OFFSET 0x0044
|
||||
#define OMAP4430_CM_DIV_M7_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0044)
|
||||
#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_CORE_OFFSET 0x0048
|
||||
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0048)
|
||||
#define OMAP4_CM_SSC_MODFREQDIV_DPLL_CORE_OFFSET 0x004c
|
||||
#define OMAP4430_CM_SSC_MODFREQDIV_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x004c)
|
||||
#define OMAP4_CM_EMU_OVERRIDE_DPLL_CORE_OFFSET 0x0050
|
||||
#define OMAP4430_CM_EMU_OVERRIDE_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0050)
|
||||
#define OMAP4_CM_CLKMODE_DPLL_MPU_OFFSET 0x0060
|
||||
#define OMAP4430_CM_CLKMODE_DPLL_MPU OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0060)
|
||||
#define OMAP4_CM_IDLEST_DPLL_MPU_OFFSET 0x0064
|
||||
#define OMAP4430_CM_IDLEST_DPLL_MPU OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0064)
|
||||
#define OMAP4_CM_AUTOIDLE_DPLL_MPU_OFFSET 0x0068
|
||||
#define OMAP4430_CM_AUTOIDLE_DPLL_MPU OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0068)
|
||||
#define OMAP4_CM_CLKSEL_DPLL_MPU_OFFSET 0x006c
|
||||
#define OMAP4430_CM_CLKSEL_DPLL_MPU OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x006c)
|
||||
#define OMAP4_CM_DIV_M2_DPLL_MPU_OFFSET 0x0070
|
||||
#define OMAP4430_CM_DIV_M2_DPLL_MPU OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0070)
|
||||
#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_MPU_OFFSET 0x0088
|
||||
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_MPU OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0088)
|
||||
#define OMAP4_CM_SSC_MODFREQDIV_DPLL_MPU_OFFSET 0x008c
|
||||
#define OMAP4430_CM_SSC_MODFREQDIV_DPLL_MPU OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x008c)
|
||||
#define OMAP4_CM_BYPCLK_DPLL_MPU_OFFSET 0x009c
|
||||
#define OMAP4430_CM_BYPCLK_DPLL_MPU OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x009c)
|
||||
#define OMAP4_CM_CLKMODE_DPLL_IVA_OFFSET 0x00a0
|
||||
#define OMAP4430_CM_CLKMODE_DPLL_IVA OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x00a0)
|
||||
#define OMAP4_CM_IDLEST_DPLL_IVA_OFFSET 0x00a4
|
||||
#define OMAP4430_CM_IDLEST_DPLL_IVA OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x00a4)
|
||||
#define OMAP4_CM_AUTOIDLE_DPLL_IVA_OFFSET 0x00a8
|
||||
#define OMAP4430_CM_AUTOIDLE_DPLL_IVA OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x00a8)
|
||||
#define OMAP4_CM_CLKSEL_DPLL_IVA_OFFSET 0x00ac
|
||||
#define OMAP4430_CM_CLKSEL_DPLL_IVA OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x00ac)
|
||||
#define OMAP4_CM_DIV_M4_DPLL_IVA_OFFSET 0x00b8
|
||||
#define OMAP4430_CM_DIV_M4_DPLL_IVA OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x00b8)
|
||||
#define OMAP4_CM_DIV_M5_DPLL_IVA_OFFSET 0x00bc
|
||||
#define OMAP4430_CM_DIV_M5_DPLL_IVA OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x00bc)
|
||||
#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_IVA_OFFSET 0x00c8
|
||||
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_IVA OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x00c8)
|
||||
#define OMAP4_CM_SSC_MODFREQDIV_DPLL_IVA_OFFSET 0x00cc
|
||||
#define OMAP4430_CM_SSC_MODFREQDIV_DPLL_IVA OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x00cc)
|
||||
#define OMAP4_CM_BYPCLK_DPLL_IVA_OFFSET 0x00dc
|
||||
#define OMAP4430_CM_BYPCLK_DPLL_IVA OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x00dc)
|
||||
#define OMAP4_CM_CLKMODE_DPLL_ABE_OFFSET 0x00e0
|
||||
#define OMAP4430_CM_CLKMODE_DPLL_ABE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x00e0)
|
||||
#define OMAP4_CM_IDLEST_DPLL_ABE_OFFSET 0x00e4
|
||||
#define OMAP4430_CM_IDLEST_DPLL_ABE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x00e4)
|
||||
#define OMAP4_CM_AUTOIDLE_DPLL_ABE_OFFSET 0x00e8
|
||||
#define OMAP4430_CM_AUTOIDLE_DPLL_ABE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x00e8)
|
||||
#define OMAP4_CM_CLKSEL_DPLL_ABE_OFFSET 0x00ec
|
||||
#define OMAP4430_CM_CLKSEL_DPLL_ABE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x00ec)
|
||||
#define OMAP4_CM_DIV_M2_DPLL_ABE_OFFSET 0x00f0
|
||||
#define OMAP4430_CM_DIV_M2_DPLL_ABE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x00f0)
|
||||
#define OMAP4_CM_DIV_M3_DPLL_ABE_OFFSET 0x00f4
|
||||
#define OMAP4430_CM_DIV_M3_DPLL_ABE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x00f4)
|
||||
#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_ABE_OFFSET 0x0108
|
||||
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_ABE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0108)
|
||||
#define OMAP4_CM_SSC_MODFREQDIV_DPLL_ABE_OFFSET 0x010c
|
||||
#define OMAP4430_CM_SSC_MODFREQDIV_DPLL_ABE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x010c)
|
||||
#define OMAP4_CM_CLKMODE_DPLL_DDRPHY_OFFSET 0x0120
|
||||
#define OMAP4430_CM_CLKMODE_DPLL_DDRPHY OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0120)
|
||||
#define OMAP4_CM_IDLEST_DPLL_DDRPHY_OFFSET 0x0124
|
||||
#define OMAP4430_CM_IDLEST_DPLL_DDRPHY OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0124)
|
||||
#define OMAP4_CM_AUTOIDLE_DPLL_DDRPHY_OFFSET 0x0128
|
||||
#define OMAP4430_CM_AUTOIDLE_DPLL_DDRPHY OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0128)
|
||||
#define OMAP4_CM_CLKSEL_DPLL_DDRPHY_OFFSET 0x012c
|
||||
#define OMAP4430_CM_CLKSEL_DPLL_DDRPHY OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x012c)
|
||||
#define OMAP4_CM_DIV_M2_DPLL_DDRPHY_OFFSET 0x0130
|
||||
#define OMAP4430_CM_DIV_M2_DPLL_DDRPHY OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0130)
|
||||
#define OMAP4_CM_DIV_M4_DPLL_DDRPHY_OFFSET 0x0138
|
||||
#define OMAP4430_CM_DIV_M4_DPLL_DDRPHY OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0138)
|
||||
#define OMAP4_CM_DIV_M5_DPLL_DDRPHY_OFFSET 0x013c
|
||||
#define OMAP4430_CM_DIV_M5_DPLL_DDRPHY OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x013c)
|
||||
#define OMAP4_CM_DIV_M6_DPLL_DDRPHY_OFFSET 0x0140
|
||||
#define OMAP4430_CM_DIV_M6_DPLL_DDRPHY OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0140)
|
||||
#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_DDRPHY_OFFSET 0x0148
|
||||
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_DDRPHY OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0148)
|
||||
#define OMAP4_CM_SSC_MODFREQDIV_DPLL_DDRPHY_OFFSET 0x014c
|
||||
#define OMAP4430_CM_SSC_MODFREQDIV_DPLL_DDRPHY OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x014c)
|
||||
#define OMAP4_CM_SHADOW_FREQ_CONFIG1_OFFSET 0x0160
|
||||
#define OMAP4430_CM_SHADOW_FREQ_CONFIG1 OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0160)
|
||||
#define OMAP4_CM_SHADOW_FREQ_CONFIG2_OFFSET 0x0164
|
||||
#define OMAP4430_CM_SHADOW_FREQ_CONFIG2 OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0164)
|
||||
#define OMAP4_CM_DYN_DEP_PRESCAL_OFFSET 0x0170
|
||||
#define OMAP4430_CM_DYN_DEP_PRESCAL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0170)
|
||||
#define OMAP4_CM_RESTORE_ST_OFFSET 0x0180
|
||||
#define OMAP4430_CM_RESTORE_ST OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_MOD, 0x0180)
|
||||
|
||||
/* CM1.MPU_CM1 register offsets */
|
||||
#define OMAP4_CM_MPU_CLKSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_CM_MPU_CLKSTCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_MPU_MOD, 0x0000)
|
||||
#define OMAP4_CM_MPU_STATICDEP_OFFSET 0x0004
|
||||
#define OMAP4430_CM_MPU_STATICDEP OMAP44XX_CM1_REGADDR(OMAP4430_CM1_MPU_MOD, 0x0004)
|
||||
#define OMAP4_CM_MPU_DYNAMICDEP_OFFSET 0x0008
|
||||
#define OMAP4430_CM_MPU_DYNAMICDEP OMAP44XX_CM1_REGADDR(OMAP4430_CM1_MPU_MOD, 0x0008)
|
||||
#define OMAP4_CM_MPU_MPU_CLKCTRL_OFFSET 0x0020
|
||||
#define OMAP4430_CM_MPU_MPU_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_MPU_MOD, 0x0020)
|
||||
|
||||
/* CM1.TESLA_CM1 register offsets */
|
||||
#define OMAP4_CM_TESLA_CLKSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_CM_TESLA_CLKSTCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_TESLA_MOD, 0x0000)
|
||||
#define OMAP4_CM_TESLA_STATICDEP_OFFSET 0x0004
|
||||
#define OMAP4430_CM_TESLA_STATICDEP OMAP44XX_CM1_REGADDR(OMAP4430_CM1_TESLA_MOD, 0x0004)
|
||||
#define OMAP4_CM_TESLA_DYNAMICDEP_OFFSET 0x0008
|
||||
#define OMAP4430_CM_TESLA_DYNAMICDEP OMAP44XX_CM1_REGADDR(OMAP4430_CM1_TESLA_MOD, 0x0008)
|
||||
#define OMAP4_CM_TESLA_TESLA_CLKCTRL_OFFSET 0x0020
|
||||
#define OMAP4430_CM_TESLA_TESLA_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_TESLA_MOD, 0x0020)
|
||||
|
||||
/* CM1.ABE_CM1 register offsets */
|
||||
#define OMAP4_CM1_ABE_CLKSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_CM1_ABE_CLKSTCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_ABE_MOD, 0x0000)
|
||||
#define OMAP4_CM1_ABE_L4ABE_CLKCTRL_OFFSET 0x0020
|
||||
#define OMAP4430_CM1_ABE_L4ABE_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_ABE_MOD, 0x0020)
|
||||
#define OMAP4_CM1_ABE_AESS_CLKCTRL_OFFSET 0x0028
|
||||
#define OMAP4430_CM1_ABE_AESS_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_ABE_MOD, 0x0028)
|
||||
#define OMAP4_CM1_ABE_PDM_CLKCTRL_OFFSET 0x0030
|
||||
#define OMAP4430_CM1_ABE_PDM_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_ABE_MOD, 0x0030)
|
||||
#define OMAP4_CM1_ABE_DMIC_CLKCTRL_OFFSET 0x0038
|
||||
#define OMAP4430_CM1_ABE_DMIC_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_ABE_MOD, 0x0038)
|
||||
#define OMAP4_CM1_ABE_MCASP_CLKCTRL_OFFSET 0x0040
|
||||
#define OMAP4430_CM1_ABE_MCASP_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_ABE_MOD, 0x0040)
|
||||
#define OMAP4_CM1_ABE_MCBSP1_CLKCTRL_OFFSET 0x0048
|
||||
#define OMAP4430_CM1_ABE_MCBSP1_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_ABE_MOD, 0x0048)
|
||||
#define OMAP4_CM1_ABE_MCBSP2_CLKCTRL_OFFSET 0x0050
|
||||
#define OMAP4430_CM1_ABE_MCBSP2_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_ABE_MOD, 0x0050)
|
||||
#define OMAP4_CM1_ABE_MCBSP3_CLKCTRL_OFFSET 0x0058
|
||||
#define OMAP4430_CM1_ABE_MCBSP3_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_ABE_MOD, 0x0058)
|
||||
#define OMAP4_CM1_ABE_SLIMBUS_CLKCTRL_OFFSET 0x0060
|
||||
#define OMAP4430_CM1_ABE_SLIMBUS_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_ABE_MOD, 0x0060)
|
||||
#define OMAP4_CM1_ABE_TIMER5_CLKCTRL_OFFSET 0x0068
|
||||
#define OMAP4430_CM1_ABE_TIMER5_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_ABE_MOD, 0x0068)
|
||||
#define OMAP4_CM1_ABE_TIMER6_CLKCTRL_OFFSET 0x0070
|
||||
#define OMAP4430_CM1_ABE_TIMER6_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_ABE_MOD, 0x0070)
|
||||
#define OMAP4_CM1_ABE_TIMER7_CLKCTRL_OFFSET 0x0078
|
||||
#define OMAP4430_CM1_ABE_TIMER7_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_ABE_MOD, 0x0078)
|
||||
#define OMAP4_CM1_ABE_TIMER8_CLKCTRL_OFFSET 0x0080
|
||||
#define OMAP4430_CM1_ABE_TIMER8_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_ABE_MOD, 0x0080)
|
||||
#define OMAP4_CM1_ABE_WDT3_CLKCTRL_OFFSET 0x0088
|
||||
#define OMAP4430_CM1_ABE_WDT3_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_ABE_MOD, 0x0088)
|
||||
|
||||
/* CM1.RESTORE_CM1 register offsets */
|
||||
#define OMAP4430_CM_CLKSEL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_MOD, 0x0000)
|
||||
#define OMAP4430_CM_DIV_M2_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_MOD, 0x0004)
|
||||
#define OMAP4430_CM_DIV_M3_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_MOD, 0x0008)
|
||||
#define OMAP4430_CM_DIV_M4_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_MOD, 0x000c)
|
||||
#define OMAP4430_CM_DIV_M5_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_MOD, 0x0010)
|
||||
#define OMAP4430_CM_DIV_M6_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_MOD, 0x0014)
|
||||
#define OMAP4430_CM_DIV_M7_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_MOD, 0x0018)
|
||||
#define OMAP4430_CM_CLKSEL_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_MOD, 0x001c)
|
||||
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_MOD, 0x0020)
|
||||
#define OMAP4430_CM_SSC_MODFREQDIV_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_MOD, 0x0024)
|
||||
#define OMAP4430_CM_CLKMODE_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_MOD, 0x0028)
|
||||
#define OMAP4430_CM_SHADOW_FREQ_CONFIG1_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_MOD, 0x002c)
|
||||
#define OMAP4430_CM_AUTOIDLE_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_MOD, 0x0030)
|
||||
#define OMAP4430_CM_MPU_CLKSTCTRL_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_MOD, 0x0034)
|
||||
|
||||
/* CM2 */
|
||||
|
||||
|
||||
/* CM2.OCP_SOCKET_CM2 register offsets */
|
||||
#define OMAP4_REVISION_CM2_OFFSET 0x0000
|
||||
#define OMAP4430_REVISION_CM2 OMAP44XX_CM2_REGADDR(OMAP4430_CM2_OCP_SOCKET_MOD, 0x0000)
|
||||
#define OMAP4_CM_CM2_PROFILING_CLKCTRL_OFFSET 0x0040
|
||||
#define OMAP4430_CM_CM2_PROFILING_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_OCP_SOCKET_MOD, 0x0040)
|
||||
|
||||
/* CM2.CKGEN_CM2 register offsets */
|
||||
#define OMAP4_CM_CLKSEL_DUCATI_ISS_ROOT_OFFSET 0x0000
|
||||
#define OMAP4430_CM_CLKSEL_DUCATI_ISS_ROOT OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0000)
|
||||
#define OMAP4_CM_CLKSEL_USB_60MHZ_OFFSET 0x0004
|
||||
#define OMAP4430_CM_CLKSEL_USB_60MHZ OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0004)
|
||||
#define OMAP4_CM_SCALE_FCLK_OFFSET 0x0008
|
||||
#define OMAP4430_CM_SCALE_FCLK OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0008)
|
||||
#define OMAP4_CM_CORE_DVFS_PERF1_OFFSET 0x0010
|
||||
#define OMAP4430_CM_CORE_DVFS_PERF1 OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0010)
|
||||
#define OMAP4_CM_CORE_DVFS_PERF2_OFFSET 0x0014
|
||||
#define OMAP4430_CM_CORE_DVFS_PERF2 OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0014)
|
||||
#define OMAP4_CM_CORE_DVFS_PERF3_OFFSET 0x0018
|
||||
#define OMAP4430_CM_CORE_DVFS_PERF3 OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0018)
|
||||
#define OMAP4_CM_CORE_DVFS_PERF4_OFFSET 0x001c
|
||||
#define OMAP4430_CM_CORE_DVFS_PERF4 OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x001c)
|
||||
#define OMAP4_CM_CORE_DVFS_CURRENT_OFFSET 0x0024
|
||||
#define OMAP4430_CM_CORE_DVFS_CURRENT OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0024)
|
||||
#define OMAP4_CM_IVA_DVFS_PERF_TESLA_OFFSET 0x0028
|
||||
#define OMAP4430_CM_IVA_DVFS_PERF_TESLA OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0028)
|
||||
#define OMAP4_CM_IVA_DVFS_PERF_IVAHD_OFFSET 0x002c
|
||||
#define OMAP4430_CM_IVA_DVFS_PERF_IVAHD OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x002c)
|
||||
#define OMAP4_CM_IVA_DVFS_PERF_ABE_OFFSET 0x0030
|
||||
#define OMAP4430_CM_IVA_DVFS_PERF_ABE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0030)
|
||||
#define OMAP4_CM_IVA_DVFS_CURRENT_OFFSET 0x0038
|
||||
#define OMAP4430_CM_IVA_DVFS_CURRENT OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0038)
|
||||
#define OMAP4_CM_CLKMODE_DPLL_PER_OFFSET 0x0040
|
||||
#define OMAP4430_CM_CLKMODE_DPLL_PER OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0040)
|
||||
#define OMAP4_CM_IDLEST_DPLL_PER_OFFSET 0x0044
|
||||
#define OMAP4430_CM_IDLEST_DPLL_PER OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0044)
|
||||
#define OMAP4_CM_AUTOIDLE_DPLL_PER_OFFSET 0x0048
|
||||
#define OMAP4430_CM_AUTOIDLE_DPLL_PER OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0048)
|
||||
#define OMAP4_CM_CLKSEL_DPLL_PER_OFFSET 0x004c
|
||||
#define OMAP4430_CM_CLKSEL_DPLL_PER OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x004c)
|
||||
#define OMAP4_CM_DIV_M2_DPLL_PER_OFFSET 0x0050
|
||||
#define OMAP4430_CM_DIV_M2_DPLL_PER OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0050)
|
||||
#define OMAP4_CM_DIV_M3_DPLL_PER_OFFSET 0x0054
|
||||
#define OMAP4430_CM_DIV_M3_DPLL_PER OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0054)
|
||||
#define OMAP4_CM_DIV_M4_DPLL_PER_OFFSET 0x0058
|
||||
#define OMAP4430_CM_DIV_M4_DPLL_PER OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0058)
|
||||
#define OMAP4_CM_DIV_M5_DPLL_PER_OFFSET 0x005c
|
||||
#define OMAP4430_CM_DIV_M5_DPLL_PER OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x005c)
|
||||
#define OMAP4_CM_DIV_M6_DPLL_PER_OFFSET 0x0060
|
||||
#define OMAP4430_CM_DIV_M6_DPLL_PER OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0060)
|
||||
#define OMAP4_CM_DIV_M7_DPLL_PER_OFFSET 0x0064
|
||||
#define OMAP4430_CM_DIV_M7_DPLL_PER OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0064)
|
||||
#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_PER_OFFSET 0x0068
|
||||
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_PER OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0068)
|
||||
#define OMAP4_CM_SSC_MODFREQDIV_DPLL_PER_OFFSET 0x006c
|
||||
#define OMAP4430_CM_SSC_MODFREQDIV_DPLL_PER OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x006c)
|
||||
#define OMAP4_CM_EMU_OVERRIDE_DPLL_PER_OFFSET 0x0070
|
||||
#define OMAP4430_CM_EMU_OVERRIDE_DPLL_PER OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0070)
|
||||
#define OMAP4_CM_CLKMODE_DPLL_USB_OFFSET 0x0080
|
||||
#define OMAP4430_CM_CLKMODE_DPLL_USB OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0080)
|
||||
#define OMAP4_CM_IDLEST_DPLL_USB_OFFSET 0x0084
|
||||
#define OMAP4430_CM_IDLEST_DPLL_USB OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0084)
|
||||
#define OMAP4_CM_AUTOIDLE_DPLL_USB_OFFSET 0x0088
|
||||
#define OMAP4430_CM_AUTOIDLE_DPLL_USB OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0088)
|
||||
#define OMAP4_CM_CLKSEL_DPLL_USB_OFFSET 0x008c
|
||||
#define OMAP4430_CM_CLKSEL_DPLL_USB OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x008c)
|
||||
#define OMAP4_CM_DIV_M2_DPLL_USB_OFFSET 0x0090
|
||||
#define OMAP4430_CM_DIV_M2_DPLL_USB OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x0090)
|
||||
#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_USB_OFFSET 0x00a8
|
||||
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_USB OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x00a8)
|
||||
#define OMAP4_CM_SSC_MODFREQDIV_DPLL_USB_OFFSET 0x00ac
|
||||
#define OMAP4430_CM_SSC_MODFREQDIV_DPLL_USB OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x00ac)
|
||||
#define OMAP4_CM_CLKDCOLDO_DPLL_USB_OFFSET 0x00b4
|
||||
#define OMAP4430_CM_CLKDCOLDO_DPLL_USB OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x00b4)
|
||||
#define OMAP4_CM_CLKMODE_DPLL_UNIPRO_OFFSET 0x00c0
|
||||
#define OMAP4430_CM_CLKMODE_DPLL_UNIPRO OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x00c0)
|
||||
#define OMAP4_CM_IDLEST_DPLL_UNIPRO_OFFSET 0x00c4
|
||||
#define OMAP4430_CM_IDLEST_DPLL_UNIPRO OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x00c4)
|
||||
#define OMAP4_CM_AUTOIDLE_DPLL_UNIPRO_OFFSET 0x00c8
|
||||
#define OMAP4430_CM_AUTOIDLE_DPLL_UNIPRO OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x00c8)
|
||||
#define OMAP4_CM_CLKSEL_DPLL_UNIPRO_OFFSET 0x00cc
|
||||
#define OMAP4430_CM_CLKSEL_DPLL_UNIPRO OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x00cc)
|
||||
#define OMAP4_CM_DIV_M2_DPLL_UNIPRO_OFFSET 0x00d0
|
||||
#define OMAP4430_CM_DIV_M2_DPLL_UNIPRO OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x00d0)
|
||||
#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_UNIPRO_OFFSET 0x00e8
|
||||
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_UNIPRO OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x00e8)
|
||||
#define OMAP4_CM_SSC_MODFREQDIV_DPLL_UNIPRO_OFFSET 0x00ec
|
||||
#define OMAP4430_CM_SSC_MODFREQDIV_DPLL_UNIPRO OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_MOD, 0x00ec)
|
||||
|
||||
/* CM2.ALWAYS_ON_CM2 register offsets */
|
||||
#define OMAP4_CM_ALWON_CLKSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_CM_ALWON_CLKSTCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_ALWAYS_ON_MOD, 0x0000)
|
||||
#define OMAP4_CM_ALWON_MDMINTC_CLKCTRL_OFFSET 0x0020
|
||||
#define OMAP4430_CM_ALWON_MDMINTC_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_ALWAYS_ON_MOD, 0x0020)
|
||||
#define OMAP4_CM_ALWON_SR_MPU_CLKCTRL_OFFSET 0x0028
|
||||
#define OMAP4430_CM_ALWON_SR_MPU_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_ALWAYS_ON_MOD, 0x0028)
|
||||
#define OMAP4_CM_ALWON_SR_IVA_CLKCTRL_OFFSET 0x0030
|
||||
#define OMAP4430_CM_ALWON_SR_IVA_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_ALWAYS_ON_MOD, 0x0030)
|
||||
#define OMAP4_CM_ALWON_SR_CORE_CLKCTRL_OFFSET 0x0038
|
||||
#define OMAP4430_CM_ALWON_SR_CORE_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_ALWAYS_ON_MOD, 0x0038)
|
||||
|
||||
/* CM2.CORE_CM2 register offsets */
|
||||
#define OMAP4_CM_L3_1_CLKSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_CM_L3_1_CLKSTCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0000)
|
||||
#define OMAP4_CM_L3_1_DYNAMICDEP_OFFSET 0x0008
|
||||
#define OMAP4430_CM_L3_1_DYNAMICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0008)
|
||||
#define OMAP4_CM_L3_1_L3_1_CLKCTRL_OFFSET 0x0020
|
||||
#define OMAP4430_CM_L3_1_L3_1_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0020)
|
||||
#define OMAP4_CM_L3_2_CLKSTCTRL_OFFSET 0x0100
|
||||
#define OMAP4430_CM_L3_2_CLKSTCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0100)
|
||||
#define OMAP4_CM_L3_2_DYNAMICDEP_OFFSET 0x0108
|
||||
#define OMAP4430_CM_L3_2_DYNAMICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0108)
|
||||
#define OMAP4_CM_L3_2_L3_2_CLKCTRL_OFFSET 0x0120
|
||||
#define OMAP4430_CM_L3_2_L3_2_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0120)
|
||||
#define OMAP4_CM_L3_2_GPMC_CLKCTRL_OFFSET 0x0128
|
||||
#define OMAP4430_CM_L3_2_GPMC_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0128)
|
||||
#define OMAP4_CM_L3_2_OCMC_RAM_CLKCTRL_OFFSET 0x0130
|
||||
#define OMAP4430_CM_L3_2_OCMC_RAM_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0130)
|
||||
#define OMAP4_CM_DUCATI_CLKSTCTRL_OFFSET 0x0200
|
||||
#define OMAP4430_CM_DUCATI_CLKSTCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0200)
|
||||
#define OMAP4_CM_DUCATI_STATICDEP_OFFSET 0x0204
|
||||
#define OMAP4430_CM_DUCATI_STATICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0204)
|
||||
#define OMAP4_CM_DUCATI_DYNAMICDEP_OFFSET 0x0208
|
||||
#define OMAP4430_CM_DUCATI_DYNAMICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0208)
|
||||
#define OMAP4_CM_DUCATI_DUCATI_CLKCTRL_OFFSET 0x0220
|
||||
#define OMAP4430_CM_DUCATI_DUCATI_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0220)
|
||||
#define OMAP4_CM_SDMA_CLKSTCTRL_OFFSET 0x0300
|
||||
#define OMAP4430_CM_SDMA_CLKSTCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0300)
|
||||
#define OMAP4_CM_SDMA_STATICDEP_OFFSET 0x0304
|
||||
#define OMAP4430_CM_SDMA_STATICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0304)
|
||||
#define OMAP4_CM_SDMA_DYNAMICDEP_OFFSET 0x0308
|
||||
#define OMAP4430_CM_SDMA_DYNAMICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0308)
|
||||
#define OMAP4_CM_SDMA_SDMA_CLKCTRL_OFFSET 0x0320
|
||||
#define OMAP4430_CM_SDMA_SDMA_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0320)
|
||||
#define OMAP4_CM_MEMIF_CLKSTCTRL_OFFSET 0x0400
|
||||
#define OMAP4430_CM_MEMIF_CLKSTCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0400)
|
||||
#define OMAP4_CM_MEMIF_DMM_CLKCTRL_OFFSET 0x0420
|
||||
#define OMAP4430_CM_MEMIF_DMM_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0420)
|
||||
#define OMAP4_CM_MEMIF_EMIF_FW_CLKCTRL_OFFSET 0x0428
|
||||
#define OMAP4430_CM_MEMIF_EMIF_FW_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0428)
|
||||
#define OMAP4_CM_MEMIF_EMIF_1_CLKCTRL_OFFSET 0x0430
|
||||
#define OMAP4430_CM_MEMIF_EMIF_1_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0430)
|
||||
#define OMAP4_CM_MEMIF_EMIF_2_CLKCTRL_OFFSET 0x0438
|
||||
#define OMAP4430_CM_MEMIF_EMIF_2_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0438)
|
||||
#define OMAP4_CM_MEMIF_DLL_CLKCTRL_OFFSET 0x0440
|
||||
#define OMAP4430_CM_MEMIF_DLL_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0440)
|
||||
#define OMAP4_CM_MEMIF_EMIF_H1_CLKCTRL_OFFSET 0x0450
|
||||
#define OMAP4430_CM_MEMIF_EMIF_H1_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0450)
|
||||
#define OMAP4_CM_MEMIF_EMIF_H2_CLKCTRL_OFFSET 0x0458
|
||||
#define OMAP4430_CM_MEMIF_EMIF_H2_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0458)
|
||||
#define OMAP4_CM_MEMIF_DLL_H_CLKCTRL_OFFSET 0x0460
|
||||
#define OMAP4430_CM_MEMIF_DLL_H_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0460)
|
||||
#define OMAP4_CM_D2D_CLKSTCTRL_OFFSET 0x0500
|
||||
#define OMAP4430_CM_D2D_CLKSTCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0500)
|
||||
#define OMAP4_CM_D2D_STATICDEP_OFFSET 0x0504
|
||||
#define OMAP4430_CM_D2D_STATICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0504)
|
||||
#define OMAP4_CM_D2D_DYNAMICDEP_OFFSET 0x0508
|
||||
#define OMAP4430_CM_D2D_DYNAMICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0508)
|
||||
#define OMAP4_CM_D2D_SAD2D_CLKCTRL_OFFSET 0x0520
|
||||
#define OMAP4430_CM_D2D_SAD2D_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0520)
|
||||
#define OMAP4_CM_D2D_MODEM_ICR_CLKCTRL_OFFSET 0x0528
|
||||
#define OMAP4430_CM_D2D_MODEM_ICR_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0528)
|
||||
#define OMAP4_CM_D2D_SAD2D_FW_CLKCTRL_OFFSET 0x0530
|
||||
#define OMAP4430_CM_D2D_SAD2D_FW_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0530)
|
||||
#define OMAP4_CM_L4CFG_CLKSTCTRL_OFFSET 0x0600
|
||||
#define OMAP4430_CM_L4CFG_CLKSTCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0600)
|
||||
#define OMAP4_CM_L4CFG_DYNAMICDEP_OFFSET 0x0608
|
||||
#define OMAP4430_CM_L4CFG_DYNAMICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0608)
|
||||
#define OMAP4_CM_L4CFG_L4_CFG_CLKCTRL_OFFSET 0x0620
|
||||
#define OMAP4430_CM_L4CFG_L4_CFG_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0620)
|
||||
#define OMAP4_CM_L4CFG_HW_SEM_CLKCTRL_OFFSET 0x0628
|
||||
#define OMAP4430_CM_L4CFG_HW_SEM_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0628)
|
||||
#define OMAP4_CM_L4CFG_MAILBOX_CLKCTRL_OFFSET 0x0630
|
||||
#define OMAP4430_CM_L4CFG_MAILBOX_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0630)
|
||||
#define OMAP4_CM_L4CFG_SAR_ROM_CLKCTRL_OFFSET 0x0638
|
||||
#define OMAP4430_CM_L4CFG_SAR_ROM_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0638)
|
||||
#define OMAP4_CM_L3INSTR_CLKSTCTRL_OFFSET 0x0700
|
||||
#define OMAP4430_CM_L3INSTR_CLKSTCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0700)
|
||||
#define OMAP4_CM_L3INSTR_L3_3_CLKCTRL_OFFSET 0x0720
|
||||
#define OMAP4430_CM_L3INSTR_L3_3_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0720)
|
||||
#define OMAP4_CM_L3INSTR_L3_INSTR_CLKCTRL_OFFSET 0x0728
|
||||
#define OMAP4430_CM_L3INSTR_L3_INSTR_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0728)
|
||||
#define OMAP4_CM_L3INSTR_OCP_WP1_CLKCTRL_OFFSET 0x0740
|
||||
#define OMAP4430_CM_L3INSTR_OCP_WP1_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_MOD, 0x0740)
|
||||
|
||||
/* CM2.IVAHD_CM2 register offsets */
|
||||
#define OMAP4_CM_IVAHD_CLKSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_CM_IVAHD_CLKSTCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_IVAHD_MOD, 0x0000)
|
||||
#define OMAP4_CM_IVAHD_STATICDEP_OFFSET 0x0004
|
||||
#define OMAP4430_CM_IVAHD_STATICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_IVAHD_MOD, 0x0004)
|
||||
#define OMAP4_CM_IVAHD_DYNAMICDEP_OFFSET 0x0008
|
||||
#define OMAP4430_CM_IVAHD_DYNAMICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_IVAHD_MOD, 0x0008)
|
||||
#define OMAP4_CM_IVAHD_IVAHD_CLKCTRL_OFFSET 0x0020
|
||||
#define OMAP4430_CM_IVAHD_IVAHD_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_IVAHD_MOD, 0x0020)
|
||||
#define OMAP4_CM_IVAHD_SL2_CLKCTRL_OFFSET 0x0028
|
||||
#define OMAP4430_CM_IVAHD_SL2_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_IVAHD_MOD, 0x0028)
|
||||
|
||||
/* CM2.CAM_CM2 register offsets */
|
||||
#define OMAP4_CM_CAM_CLKSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_CM_CAM_CLKSTCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CAM_MOD, 0x0000)
|
||||
#define OMAP4_CM_CAM_STATICDEP_OFFSET 0x0004
|
||||
#define OMAP4430_CM_CAM_STATICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CAM_MOD, 0x0004)
|
||||
#define OMAP4_CM_CAM_DYNAMICDEP_OFFSET 0x0008
|
||||
#define OMAP4430_CM_CAM_DYNAMICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CAM_MOD, 0x0008)
|
||||
#define OMAP4_CM_CAM_ISS_CLKCTRL_OFFSET 0x0020
|
||||
#define OMAP4430_CM_CAM_ISS_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CAM_MOD, 0x0020)
|
||||
#define OMAP4_CM_CAM_FDIF_CLKCTRL_OFFSET 0x0028
|
||||
#define OMAP4430_CM_CAM_FDIF_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CAM_MOD, 0x0028)
|
||||
|
||||
/* CM2.DSS_CM2 register offsets */
|
||||
#define OMAP4_CM_DSS_CLKSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_CM_DSS_CLKSTCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_DSS_MOD, 0x0000)
|
||||
#define OMAP4_CM_DSS_STATICDEP_OFFSET 0x0004
|
||||
#define OMAP4430_CM_DSS_STATICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_DSS_MOD, 0x0004)
|
||||
#define OMAP4_CM_DSS_DYNAMICDEP_OFFSET 0x0008
|
||||
#define OMAP4430_CM_DSS_DYNAMICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_DSS_MOD, 0x0008)
|
||||
#define OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET 0x0020
|
||||
#define OMAP4430_CM_DSS_DSS_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_DSS_MOD, 0x0020)
|
||||
#define OMAP4_CM_DSS_DEISS_CLKCTRL_OFFSET 0x0028
|
||||
#define OMAP4430_CM_DSS_DEISS_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_DSS_MOD, 0x0028)
|
||||
|
||||
/* CM2.GFX_CM2 register offsets */
|
||||
#define OMAP4_CM_GFX_CLKSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_CM_GFX_CLKSTCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_GFX_MOD, 0x0000)
|
||||
#define OMAP4_CM_GFX_STATICDEP_OFFSET 0x0004
|
||||
#define OMAP4430_CM_GFX_STATICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_GFX_MOD, 0x0004)
|
||||
#define OMAP4_CM_GFX_DYNAMICDEP_OFFSET 0x0008
|
||||
#define OMAP4430_CM_GFX_DYNAMICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_GFX_MOD, 0x0008)
|
||||
#define OMAP4_CM_GFX_GFX_CLKCTRL_OFFSET 0x0020
|
||||
#define OMAP4430_CM_GFX_GFX_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_GFX_MOD, 0x0020)
|
||||
|
||||
/* CM2.L3INIT_CM2 register offsets */
|
||||
#define OMAP4_CM_L3INIT_CLKSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_CM_L3INIT_CLKSTCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x0000)
|
||||
#define OMAP4_CM_L3INIT_STATICDEP_OFFSET 0x0004
|
||||
#define OMAP4430_CM_L3INIT_STATICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x0004)
|
||||
#define OMAP4_CM_L3INIT_DYNAMICDEP_OFFSET 0x0008
|
||||
#define OMAP4430_CM_L3INIT_DYNAMICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x0008)
|
||||
#define OMAP4_CM_L3INIT_MMC1_CLKCTRL_OFFSET 0x0028
|
||||
#define OMAP4430_CM_L3INIT_MMC1_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x0028)
|
||||
#define OMAP4_CM_L3INIT_MMC2_CLKCTRL_OFFSET 0x0030
|
||||
#define OMAP4430_CM_L3INIT_MMC2_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x0030)
|
||||
#define OMAP4_CM_L3INIT_HSI_CLKCTRL_OFFSET 0x0038
|
||||
#define OMAP4430_CM_L3INIT_HSI_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x0038)
|
||||
#define OMAP4_CM_L3INIT_UNIPRO1_CLKCTRL_OFFSET 0x0040
|
||||
#define OMAP4430_CM_L3INIT_UNIPRO1_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x0040)
|
||||
#define OMAP4_CM_L3INIT_USB_HOST_CLKCTRL_OFFSET 0x0058
|
||||
#define OMAP4430_CM_L3INIT_USB_HOST_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x0058)
|
||||
#define OMAP4_CM_L3INIT_USB_OTG_CLKCTRL_OFFSET 0x0060
|
||||
#define OMAP4430_CM_L3INIT_USB_OTG_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x0060)
|
||||
#define OMAP4_CM_L3INIT_USB_TLL_CLKCTRL_OFFSET 0x0068
|
||||
#define OMAP4430_CM_L3INIT_USB_TLL_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x0068)
|
||||
#define OMAP4_CM_L3INIT_P1500_CLKCTRL_OFFSET 0x0078
|
||||
#define OMAP4430_CM_L3INIT_P1500_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x0078)
|
||||
#define OMAP4_CM_L3INIT_EMAC_CLKCTRL_OFFSET 0x0080
|
||||
#define OMAP4430_CM_L3INIT_EMAC_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x0080)
|
||||
#define OMAP4_CM_L3INIT_SATA_CLKCTRL_OFFSET 0x0088
|
||||
#define OMAP4430_CM_L3INIT_SATA_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x0088)
|
||||
#define OMAP4_CM_L3INIT_TPPSS_CLKCTRL_OFFSET 0x0090
|
||||
#define OMAP4430_CM_L3INIT_TPPSS_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x0090)
|
||||
#define OMAP4_CM_L3INIT_PCIESS_CLKCTRL_OFFSET 0x0098
|
||||
#define OMAP4430_CM_L3INIT_PCIESS_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x0098)
|
||||
#define OMAP4_CM_L3INIT_CCPTX_CLKCTRL_OFFSET 0x00a8
|
||||
#define OMAP4430_CM_L3INIT_CCPTX_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x00a8)
|
||||
#define OMAP4_CM_L3INIT_XHPI_CLKCTRL_OFFSET 0x00c0
|
||||
#define OMAP4430_CM_L3INIT_XHPI_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x00c0)
|
||||
#define OMAP4_CM_L3INIT_MMC6_CLKCTRL_OFFSET 0x00c8
|
||||
#define OMAP4430_CM_L3INIT_MMC6_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x00c8)
|
||||
#define OMAP4_CM_L3INIT_USB_HOST_FS_CLKCTRL_OFFSET 0x00d0
|
||||
#define OMAP4430_CM_L3INIT_USB_HOST_FS_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x00d0)
|
||||
#define OMAP4_CM_L3INIT_USBPHYOCP2SCP_CLKCTRL_OFFSET 0x00e0
|
||||
#define OMAP4430_CM_L3INIT_USBPHYOCP2SCP_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L3INIT_MOD, 0x00e0)
|
||||
|
||||
/* CM2.L4PER_CM2 register offsets */
|
||||
#define OMAP4_CM_L4PER_CLKSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_CM_L4PER_CLKSTCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0000)
|
||||
#define OMAP4_CM_L4PER_DYNAMICDEP_OFFSET 0x0008
|
||||
#define OMAP4430_CM_L4PER_DYNAMICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0008)
|
||||
#define OMAP4_CM_L4PER_ADC_CLKCTRL_OFFSET 0x0020
|
||||
#define OMAP4430_CM_L4PER_ADC_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0020)
|
||||
#define OMAP4_CM_L4PER_DMTIMER10_CLKCTRL_OFFSET 0x0028
|
||||
#define OMAP4430_CM_L4PER_DMTIMER10_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0028)
|
||||
#define OMAP4_CM_L4PER_DMTIMER11_CLKCTRL_OFFSET 0x0030
|
||||
#define OMAP4430_CM_L4PER_DMTIMER11_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0030)
|
||||
#define OMAP4_CM_L4PER_DMTIMER2_CLKCTRL_OFFSET 0x0038
|
||||
#define OMAP4430_CM_L4PER_DMTIMER2_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0038)
|
||||
#define OMAP4_CM_L4PER_DMTIMER3_CLKCTRL_OFFSET 0x0040
|
||||
#define OMAP4430_CM_L4PER_DMTIMER3_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0040)
|
||||
#define OMAP4_CM_L4PER_DMTIMER4_CLKCTRL_OFFSET 0x0048
|
||||
#define OMAP4430_CM_L4PER_DMTIMER4_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0048)
|
||||
#define OMAP4_CM_L4PER_DMTIMER9_CLKCTRL_OFFSET 0x0050
|
||||
#define OMAP4430_CM_L4PER_DMTIMER9_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0050)
|
||||
#define OMAP4_CM_L4PER_ELM_CLKCTRL_OFFSET 0x0058
|
||||
#define OMAP4430_CM_L4PER_ELM_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0058)
|
||||
#define OMAP4_CM_L4PER_GPIO2_CLKCTRL_OFFSET 0x0060
|
||||
#define OMAP4430_CM_L4PER_GPIO2_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0060)
|
||||
#define OMAP4_CM_L4PER_GPIO3_CLKCTRL_OFFSET 0x0068
|
||||
#define OMAP4430_CM_L4PER_GPIO3_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0068)
|
||||
#define OMAP4_CM_L4PER_GPIO4_CLKCTRL_OFFSET 0x0070
|
||||
#define OMAP4430_CM_L4PER_GPIO4_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0070)
|
||||
#define OMAP4_CM_L4PER_GPIO5_CLKCTRL_OFFSET 0x0078
|
||||
#define OMAP4430_CM_L4PER_GPIO5_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0078)
|
||||
#define OMAP4_CM_L4PER_GPIO6_CLKCTRL_OFFSET 0x0080
|
||||
#define OMAP4430_CM_L4PER_GPIO6_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0080)
|
||||
#define OMAP4_CM_L4PER_HDQ1W_CLKCTRL_OFFSET 0x0088
|
||||
#define OMAP4430_CM_L4PER_HDQ1W_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0088)
|
||||
#define OMAP4_CM_L4PER_HECC1_CLKCTRL_OFFSET 0x0090
|
||||
#define OMAP4430_CM_L4PER_HECC1_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0090)
|
||||
#define OMAP4_CM_L4PER_HECC2_CLKCTRL_OFFSET 0x0098
|
||||
#define OMAP4430_CM_L4PER_HECC2_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0098)
|
||||
#define OMAP4_CM_L4PER_I2C1_CLKCTRL_OFFSET 0x00a0
|
||||
#define OMAP4430_CM_L4PER_I2C1_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x00a0)
|
||||
#define OMAP4_CM_L4PER_I2C2_CLKCTRL_OFFSET 0x00a8
|
||||
#define OMAP4430_CM_L4PER_I2C2_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x00a8)
|
||||
#define OMAP4_CM_L4PER_I2C3_CLKCTRL_OFFSET 0x00b0
|
||||
#define OMAP4430_CM_L4PER_I2C3_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x00b0)
|
||||
#define OMAP4_CM_L4PER_I2C4_CLKCTRL_OFFSET 0x00b8
|
||||
#define OMAP4430_CM_L4PER_I2C4_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x00b8)
|
||||
#define OMAP4_CM_L4PER_L4PER_CLKCTRL_OFFSET 0x00c0
|
||||
#define OMAP4430_CM_L4PER_L4PER_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x00c0)
|
||||
#define OMAP4_CM_L4PER_MCASP2_CLKCTRL_OFFSET 0x00d0
|
||||
#define OMAP4430_CM_L4PER_MCASP2_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x00d0)
|
||||
#define OMAP4_CM_L4PER_MCASP3_CLKCTRL_OFFSET 0x00d8
|
||||
#define OMAP4430_CM_L4PER_MCASP3_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x00d8)
|
||||
#define OMAP4_CM_L4PER_MCBSP4_CLKCTRL_OFFSET 0x00e0
|
||||
#define OMAP4430_CM_L4PER_MCBSP4_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x00e0)
|
||||
#define OMAP4_CM_L4PER_MGATE_CLKCTRL_OFFSET 0x00e8
|
||||
#define OMAP4430_CM_L4PER_MGATE_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x00e8)
|
||||
#define OMAP4_CM_L4PER_MCSPI1_CLKCTRL_OFFSET 0x00f0
|
||||
#define OMAP4430_CM_L4PER_MCSPI1_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x00f0)
|
||||
#define OMAP4_CM_L4PER_MCSPI2_CLKCTRL_OFFSET 0x00f8
|
||||
#define OMAP4430_CM_L4PER_MCSPI2_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x00f8)
|
||||
#define OMAP4_CM_L4PER_MCSPI3_CLKCTRL_OFFSET 0x0100
|
||||
#define OMAP4430_CM_L4PER_MCSPI3_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0100)
|
||||
#define OMAP4_CM_L4PER_MCSPI4_CLKCTRL_OFFSET 0x0108
|
||||
#define OMAP4430_CM_L4PER_MCSPI4_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0108)
|
||||
#define OMAP4_CM_L4PER_MMCSD3_CLKCTRL_OFFSET 0x0120
|
||||
#define OMAP4430_CM_L4PER_MMCSD3_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0120)
|
||||
#define OMAP4_CM_L4PER_MMCSD4_CLKCTRL_OFFSET 0x0128
|
||||
#define OMAP4430_CM_L4PER_MMCSD4_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0128)
|
||||
#define OMAP4_CM_L4PER_MSPROHG_CLKCTRL_OFFSET 0x0130
|
||||
#define OMAP4430_CM_L4PER_MSPROHG_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0130)
|
||||
#define OMAP4_CM_L4PER_SLIMBUS2_CLKCTRL_OFFSET 0x0138
|
||||
#define OMAP4430_CM_L4PER_SLIMBUS2_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0138)
|
||||
#define OMAP4_CM_L4PER_UART1_CLKCTRL_OFFSET 0x0140
|
||||
#define OMAP4430_CM_L4PER_UART1_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0140)
|
||||
#define OMAP4_CM_L4PER_UART2_CLKCTRL_OFFSET 0x0148
|
||||
#define OMAP4430_CM_L4PER_UART2_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0148)
|
||||
#define OMAP4_CM_L4PER_UART3_CLKCTRL_OFFSET 0x0150
|
||||
#define OMAP4430_CM_L4PER_UART3_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0150)
|
||||
#define OMAP4_CM_L4PER_UART4_CLKCTRL_OFFSET 0x0158
|
||||
#define OMAP4430_CM_L4PER_UART4_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0158)
|
||||
#define OMAP4_CM_L4PER_MMCSD5_CLKCTRL_OFFSET 0x0160
|
||||
#define OMAP4430_CM_L4PER_MMCSD5_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0160)
|
||||
#define OMAP4_CM_L4PER_I2C5_CLKCTRL_OFFSET 0x0168
|
||||
#define OMAP4430_CM_L4PER_I2C5_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0168)
|
||||
#define OMAP4_CM_L4SEC_CLKSTCTRL_OFFSET 0x0180
|
||||
#define OMAP4430_CM_L4SEC_CLKSTCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0180)
|
||||
#define OMAP4_CM_L4SEC_STATICDEP_OFFSET 0x0184
|
||||
#define OMAP4430_CM_L4SEC_STATICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0184)
|
||||
#define OMAP4_CM_L4SEC_DYNAMICDEP_OFFSET 0x0188
|
||||
#define OMAP4430_CM_L4SEC_DYNAMICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x0188)
|
||||
#define OMAP4_CM_L4SEC_AES1_CLKCTRL_OFFSET 0x01a0
|
||||
#define OMAP4430_CM_L4SEC_AES1_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x01a0)
|
||||
#define OMAP4_CM_L4SEC_AES2_CLKCTRL_OFFSET 0x01a8
|
||||
#define OMAP4430_CM_L4SEC_AES2_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x01a8)
|
||||
#define OMAP4_CM_L4SEC_DES3DES_CLKCTRL_OFFSET 0x01b0
|
||||
#define OMAP4430_CM_L4SEC_DES3DES_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x01b0)
|
||||
#define OMAP4_CM_L4SEC_PKAEIP29_CLKCTRL_OFFSET 0x01b8
|
||||
#define OMAP4430_CM_L4SEC_PKAEIP29_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x01b8)
|
||||
#define OMAP4_CM_L4SEC_RNG_CLKCTRL_OFFSET 0x01c0
|
||||
#define OMAP4430_CM_L4SEC_RNG_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x01c0)
|
||||
#define OMAP4_CM_L4SEC_SHA2MD51_CLKCTRL_OFFSET 0x01c8
|
||||
#define OMAP4430_CM_L4SEC_SHA2MD51_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x01c8)
|
||||
#define OMAP4_CM_L4SEC_CRYPTODMA_CLKCTRL_OFFSET 0x01d8
|
||||
#define OMAP4430_CM_L4SEC_CRYPTODMA_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_L4PER_MOD, 0x01d8)
|
||||
|
||||
/* CM2.CEFUSE_CM2 register offsets */
|
||||
#define OMAP4_CM_CEFUSE_CLKSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_CM_CEFUSE_CLKSTCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CEFUSE_MOD, 0x0000)
|
||||
#define OMAP4_CM_CEFUSE_CEFUSE_CLKCTRL_OFFSET 0x0020
|
||||
#define OMAP4430_CM_CEFUSE_CEFUSE_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CEFUSE_MOD, 0x0020)
|
||||
|
||||
/* CM2.RESTORE_CM2 register offsets */
|
||||
#define OMAP4430_CM_L3_1_CLKSTCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_MOD, 0x0000)
|
||||
#define OMAP4430_CM_L3_2_CLKSTCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_MOD, 0x0004)
|
||||
#define OMAP4430_CM_L4CFG_CLKSTCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_MOD, 0x0008)
|
||||
#define OMAP4430_CM_MEMIF_CLKSTCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_MOD, 0x000c)
|
||||
#define OMAP4430_CM_L4PER_CLKSTCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_MOD, 0x0010)
|
||||
#define OMAP4430_CM_L3INIT_CLKSTCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_MOD, 0x0014)
|
||||
#define OMAP4430_CM_L3INSTR_L3_3_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_MOD, 0x0018)
|
||||
#define OMAP4430_CM_L3INSTR_L3_INSTR_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_MOD, 0x001c)
|
||||
#define OMAP4430_CM_L3INSTR_OCP_WP1_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_MOD, 0x0020)
|
||||
#define OMAP4430_CM_L4PER_GPIO2_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_MOD, 0x0024)
|
||||
#define OMAP4430_CM_L4PER_GPIO3_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_MOD, 0x0028)
|
||||
#define OMAP4430_CM_L4PER_GPIO4_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_MOD, 0x002c)
|
||||
#define OMAP4430_CM_L4PER_GPIO5_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_MOD, 0x0030)
|
||||
#define OMAP4430_CM_L4PER_GPIO6_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_MOD, 0x0034)
|
||||
#define OMAP4430_CM_L3INIT_USB_HOST_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_MOD, 0x0038)
|
||||
#define OMAP4430_CM_L3INIT_USB_TLL_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_MOD, 0x003c)
|
||||
#define OMAP4430_CM_SDMA_STATICDEP_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_MOD, 0x0040)
|
||||
#endif
|
||||
|
@ -21,35 +21,41 @@
|
||||
|
||||
#include <asm/atomic.h>
|
||||
|
||||
#include <plat/common.h>
|
||||
|
||||
#include "cm.h"
|
||||
|
||||
/* XXX move this to cm.h */
|
||||
/* MAX_MODULE_READY_TIME: max milliseconds for module to leave idle */
|
||||
#define MAX_MODULE_READY_TIME 20000
|
||||
|
||||
/*
|
||||
* OMAP4_PRCM_CM_CLKCTRL_IDLEST_MASK: isolates the IDLEST field in the
|
||||
* CM_CLKCTRL register.
|
||||
*/
|
||||
#define OMAP4_PRCM_CM_CLKCTRL_IDLEST_MASK (0x2 << 16)
|
||||
|
||||
/*
|
||||
* OMAP4 prcm_mod u32 fields contain packed data: the CM ID in bit 16 and
|
||||
* the PRCM module offset address (from the CM module base) in bits 15-0.
|
||||
*/
|
||||
#define OMAP4_PRCM_MOD_CM_ID_SHIFT 16
|
||||
#define OMAP4_PRCM_MOD_OFFS_MASK 0xffff
|
||||
#include "cm-regbits-44xx.h"
|
||||
|
||||
/**
|
||||
* omap4_cm_wait_idlest_ready - wait for a module to leave idle or standby
|
||||
* @prcm_mod: PRCM module offset (XXX example)
|
||||
* @prcm_dev_offs: PRCM device offset (e.g. MCASP XXX example)
|
||||
* omap4_cm_wait_module_ready - wait for a module to be in 'func' state
|
||||
* @clkctrl_reg: CLKCTRL module address
|
||||
*
|
||||
* XXX document
|
||||
* Wait for the module IDLEST to be functional. If the idle state is in any
|
||||
* the non functional state (trans, idle or disabled), module and thus the
|
||||
* sysconfig cannot be accessed and will probably lead to an "imprecise
|
||||
* external abort"
|
||||
*
|
||||
* Module idle state:
|
||||
* 0x0 func: Module is fully functional, including OCP
|
||||
* 0x1 trans: Module is performing transition: wakeup, or sleep, or sleep
|
||||
* abortion
|
||||
* 0x2 idle: Module is in Idle mode (only OCP part). It is functional if
|
||||
* using separate functional clock
|
||||
* 0x3 disabled: Module is disabled and cannot be accessed
|
||||
*
|
||||
* TODO: Need to handle module accessible in idle state
|
||||
*/
|
||||
int omap4_cm_wait_idlest_ready(u32 prcm_mod, u8 prcm_dev_offs)
|
||||
int omap4_cm_wait_module_ready(void __iomem *clkctrl_reg)
|
||||
{
|
||||
/* FIXME: Add clock manager related code */
|
||||
return 0;
|
||||
int i = 0;
|
||||
|
||||
if (!clkctrl_reg)
|
||||
return 0;
|
||||
|
||||
omap_test_timeout(((__raw_readl(clkctrl_reg) &
|
||||
OMAP4430_IDLEST_MASK) == 0),
|
||||
MAX_MODULE_READY_TIME, i);
|
||||
|
||||
return (i < MAX_MODULE_READY_TIME) ? 0 : -EBUSY;
|
||||
}
|
||||
|
||||
|
@ -194,11 +194,12 @@ void omap3_clear_scratchpad_contents(void)
|
||||
u32 offset = 0;
|
||||
v_addr = OMAP2_L4_IO_ADDRESS(OMAP343X_SCRATCHPAD_ROM);
|
||||
if (prm_read_mod_reg(OMAP3430_GR_MOD, OMAP3_PRM_RSTST_OFFSET) &
|
||||
OMAP3430_GLOBAL_COLD_RST) {
|
||||
OMAP3430_GLOBAL_COLD_RST_MASK) {
|
||||
for ( ; offset <= max_offset; offset += 0x4)
|
||||
__raw_writel(0x0, (v_addr + offset));
|
||||
prm_set_mod_reg_bits(OMAP3430_GLOBAL_COLD_RST, OMAP3430_GR_MOD,
|
||||
OMAP3_PRM_RSTST_OFFSET);
|
||||
prm_set_mod_reg_bits(OMAP3430_GLOBAL_COLD_RST_MASK,
|
||||
OMAP3430_GR_MOD,
|
||||
OMAP3_PRM_RSTST_OFFSET);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -624,6 +624,15 @@ static inline void omap_hsmmc_reset(void) {}
|
||||
static inline void omap2_mmc_mux(struct omap_mmc_platform_data *mmc_controller,
|
||||
int controller_nr)
|
||||
{
|
||||
if ((mmc_controller->slots[0].switch_pin > 0) && \
|
||||
(mmc_controller->slots[0].switch_pin < OMAP_MAX_GPIO_LINES))
|
||||
omap_mux_init_gpio(mmc_controller->slots[0].switch_pin,
|
||||
OMAP_PIN_INPUT_PULLUP);
|
||||
if ((mmc_controller->slots[0].gpio_wp > 0) && \
|
||||
(mmc_controller->slots[0].gpio_wp < OMAP_MAX_GPIO_LINES))
|
||||
omap_mux_init_gpio(mmc_controller->slots[0].gpio_wp,
|
||||
OMAP_PIN_INPUT_PULLUP);
|
||||
|
||||
if (cpu_is_omap2420() && controller_nr == 0) {
|
||||
omap_cfg_reg(H18_24XX_MMC_CMD);
|
||||
omap_cfg_reg(H15_24XX_MMC_CLKI);
|
||||
@ -819,6 +828,33 @@ static inline void omap_hdq_init(void)
|
||||
static inline void omap_hdq_init(void) {}
|
||||
#endif
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
#if defined(CONFIG_VIDEO_OMAP2_VOUT) || \
|
||||
defined(CONFIG_VIDEO_OMAP2_VOUT_MODULE)
|
||||
#if defined(CONFIG_FB_OMAP2) || defined(CONFIG_FB_OMAP2_MODULE)
|
||||
static struct resource omap_vout_resource[3 - CONFIG_FB_OMAP2_NUM_FBS] = {
|
||||
};
|
||||
#else
|
||||
static struct resource omap_vout_resource[2] = {
|
||||
};
|
||||
#endif
|
||||
|
||||
static struct platform_device omap_vout_device = {
|
||||
.name = "omap_vout",
|
||||
.num_resources = ARRAY_SIZE(omap_vout_resource),
|
||||
.resource = &omap_vout_resource[0],
|
||||
.id = -1,
|
||||
};
|
||||
static void omap_init_vout(void)
|
||||
{
|
||||
if (platform_device_register(&omap_vout_device) < 0)
|
||||
printk(KERN_ERR "Unable to register OMAP-VOUT device\n");
|
||||
}
|
||||
#else
|
||||
static inline void omap_init_vout(void) {}
|
||||
#endif
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
static int __init omap2_init_devices(void)
|
||||
@ -834,6 +870,7 @@ static int __init omap2_init_devices(void)
|
||||
omap_hdq_init();
|
||||
omap_init_sti();
|
||||
omap_init_sha1_md5();
|
||||
omap_init_vout();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -24,6 +24,7 @@
|
||||
|
||||
static u16 control_pbias_offset;
|
||||
static u16 control_devconf1_offset;
|
||||
static u16 control_mmc1;
|
||||
|
||||
#define HSMMC_NAME_LEN 9
|
||||
|
||||
@ -42,7 +43,7 @@ static int hsmmc_get_context_loss(struct device *dev)
|
||||
#define hsmmc_get_context_loss NULL
|
||||
#endif
|
||||
|
||||
static void hsmmc1_before_set_reg(struct device *dev, int slot,
|
||||
static void omap_hsmmc1_before_set_reg(struct device *dev, int slot,
|
||||
int power_on, int vdd)
|
||||
{
|
||||
u32 reg, prog_io;
|
||||
@ -95,7 +96,7 @@ static void hsmmc1_before_set_reg(struct device *dev, int slot,
|
||||
}
|
||||
}
|
||||
|
||||
static void hsmmc1_after_set_reg(struct device *dev, int slot,
|
||||
static void omap_hsmmc1_after_set_reg(struct device *dev, int slot,
|
||||
int power_on, int vdd)
|
||||
{
|
||||
u32 reg;
|
||||
@ -119,6 +120,60 @@ static void hsmmc1_after_set_reg(struct device *dev, int slot,
|
||||
}
|
||||
}
|
||||
|
||||
static void omap4_hsmmc1_before_set_reg(struct device *dev, int slot,
|
||||
int power_on, int vdd)
|
||||
{
|
||||
u32 reg;
|
||||
|
||||
/*
|
||||
* Assume we power both OMAP VMMC1 (for CMD, CLK, DAT0..3) and the
|
||||
* card with Vcc regulator (from twl4030 or whatever). OMAP has both
|
||||
* 1.8V and 3.0V modes, controlled by the PBIAS register.
|
||||
*
|
||||
* In 8-bit modes, OMAP VMMC1A (for DAT4..7) needs a supply, which
|
||||
* is most naturally TWL VSIM; those pins also use PBIAS.
|
||||
*
|
||||
* FIXME handle VMMC1A as needed ...
|
||||
*/
|
||||
reg = omap_ctrl_readl(control_pbias_offset);
|
||||
reg &= ~(OMAP4_MMC1_PBIASLITE_PWRDNZ | OMAP4_MMC1_PWRDNZ |
|
||||
OMAP4_USBC1_ICUSB_PWRDNZ);
|
||||
omap_ctrl_writel(reg, control_pbias_offset);
|
||||
}
|
||||
|
||||
static void omap4_hsmmc1_after_set_reg(struct device *dev, int slot,
|
||||
int power_on, int vdd)
|
||||
{
|
||||
u32 reg;
|
||||
|
||||
if (power_on) {
|
||||
reg = omap_ctrl_readl(control_pbias_offset);
|
||||
reg |= OMAP4_MMC1_PBIASLITE_PWRDNZ;
|
||||
if ((1 << vdd) <= MMC_VDD_165_195)
|
||||
reg &= ~OMAP4_MMC1_PBIASLITE_VMODE;
|
||||
else
|
||||
reg |= OMAP4_MMC1_PBIASLITE_VMODE;
|
||||
reg |= (OMAP4_MMC1_PBIASLITE_PWRDNZ | OMAP4_MMC1_PWRDNZ |
|
||||
OMAP4_USBC1_ICUSB_PWRDNZ);
|
||||
omap_ctrl_writel(reg, control_pbias_offset);
|
||||
/* 4 microsec delay for comparator to generate an error*/
|
||||
udelay(4);
|
||||
reg = omap_ctrl_readl(control_pbias_offset);
|
||||
if (reg & OMAP4_MMC1_PBIASLITE_VMODE_ERROR) {
|
||||
pr_err("Pbias Voltage is not same as LDO\n");
|
||||
/* Caution : On VMODE_ERROR Power Down MMC IO */
|
||||
reg &= ~(OMAP4_MMC1_PWRDNZ | OMAP4_USBC1_ICUSB_PWRDNZ);
|
||||
omap_ctrl_writel(reg, control_pbias_offset);
|
||||
}
|
||||
} else {
|
||||
reg = omap_ctrl_readl(control_pbias_offset);
|
||||
reg |= (OMAP4_MMC1_PBIASLITE_PWRDNZ |
|
||||
OMAP4_MMC1_PBIASLITE_VMODE | OMAP4_MMC1_PWRDNZ |
|
||||
OMAP4_USBC1_ICUSB_PWRDNZ);
|
||||
omap_ctrl_writel(reg, control_pbias_offset);
|
||||
}
|
||||
}
|
||||
|
||||
static void hsmmc23_before_set_reg(struct device *dev, int slot,
|
||||
int power_on, int vdd)
|
||||
{
|
||||
@ -139,6 +194,12 @@ static void hsmmc23_before_set_reg(struct device *dev, int slot,
|
||||
}
|
||||
}
|
||||
|
||||
static int nop_mmc_set_power(struct device *dev, int slot, int power_on,
|
||||
int vdd)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct omap_mmc_platform_data *hsmmc_data[OMAP34XX_NR_MMC] __initdata;
|
||||
|
||||
void __init omap2_hsmmc_init(struct omap2_hsmmc_info *controllers)
|
||||
@ -146,13 +207,28 @@ void __init omap2_hsmmc_init(struct omap2_hsmmc_info *controllers)
|
||||
struct omap2_hsmmc_info *c;
|
||||
int nr_hsmmc = ARRAY_SIZE(hsmmc_data);
|
||||
int i;
|
||||
u32 reg;
|
||||
|
||||
if (cpu_is_omap2430()) {
|
||||
control_pbias_offset = OMAP243X_CONTROL_PBIAS_LITE;
|
||||
control_devconf1_offset = OMAP243X_CONTROL_DEVCONF1;
|
||||
if (!cpu_is_omap44xx()) {
|
||||
if (cpu_is_omap2430()) {
|
||||
control_pbias_offset = OMAP243X_CONTROL_PBIAS_LITE;
|
||||
control_devconf1_offset = OMAP243X_CONTROL_DEVCONF1;
|
||||
} else {
|
||||
control_pbias_offset = OMAP343X_CONTROL_PBIAS_LITE;
|
||||
control_devconf1_offset = OMAP343X_CONTROL_DEVCONF1;
|
||||
}
|
||||
} else {
|
||||
control_pbias_offset = OMAP343X_CONTROL_PBIAS_LITE;
|
||||
control_devconf1_offset = OMAP343X_CONTROL_DEVCONF1;
|
||||
control_pbias_offset = OMAP44XX_CONTROL_PBIAS_LITE;
|
||||
control_mmc1 = OMAP44XX_CONTROL_MMC1;
|
||||
reg = omap_ctrl_readl(control_mmc1);
|
||||
reg |= (OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP0 |
|
||||
OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP1);
|
||||
reg &= ~(OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP2 |
|
||||
OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP3);
|
||||
reg |= (OMAP4_CONTROL_SDMMC1_DR0_SPEEDCTRL |
|
||||
OMAP4_CONTROL_SDMMC1_DR1_SPEEDCTRL |
|
||||
OMAP4_CONTROL_SDMMC1_DR2_SPEEDCTRL);
|
||||
omap_ctrl_writel(reg, control_mmc1);
|
||||
}
|
||||
|
||||
for (c = controllers; c->mmc; c++) {
|
||||
@ -216,11 +292,27 @@ void __init omap2_hsmmc_init(struct omap2_hsmmc_info *controllers)
|
||||
*/
|
||||
mmc->slots[0].ocr_mask = c->ocr_mask;
|
||||
|
||||
if (cpu_is_omap3517() || cpu_is_omap3505())
|
||||
mmc->slots[0].set_power = nop_mmc_set_power;
|
||||
else
|
||||
mmc->slots[0].features |= HSMMC_HAS_PBIAS;
|
||||
|
||||
switch (c->mmc) {
|
||||
case 1:
|
||||
/* on-chip level shifting via PBIAS0/PBIAS1 */
|
||||
mmc->slots[0].before_set_reg = hsmmc1_before_set_reg;
|
||||
mmc->slots[0].after_set_reg = hsmmc1_after_set_reg;
|
||||
if (mmc->slots[0].features & HSMMC_HAS_PBIAS) {
|
||||
/* on-chip level shifting via PBIAS0/PBIAS1 */
|
||||
if (cpu_is_omap44xx()) {
|
||||
mmc->slots[0].before_set_reg =
|
||||
omap4_hsmmc1_before_set_reg;
|
||||
mmc->slots[0].after_set_reg =
|
||||
omap4_hsmmc1_after_set_reg;
|
||||
} else {
|
||||
mmc->slots[0].before_set_reg =
|
||||
omap_hsmmc1_before_set_reg;
|
||||
mmc->slots[0].after_set_reg =
|
||||
omap_hsmmc1_after_set_reg;
|
||||
}
|
||||
}
|
||||
|
||||
/* Omap3630 HSMMC1 supports only 4-bit */
|
||||
if (cpu_is_omap3630() && c->wires > 4) {
|
||||
@ -235,9 +327,11 @@ void __init omap2_hsmmc_init(struct omap2_hsmmc_info *controllers)
|
||||
c->wires = 4;
|
||||
/* FALLTHROUGH */
|
||||
case 3:
|
||||
/* off-chip level shifting, or none */
|
||||
mmc->slots[0].before_set_reg = hsmmc23_before_set_reg;
|
||||
mmc->slots[0].after_set_reg = NULL;
|
||||
if (mmc->slots[0].features & HSMMC_HAS_PBIAS) {
|
||||
/* off-chip level shifting, or none */
|
||||
mmc->slots[0].before_set_reg = hsmmc23_before_set_reg;
|
||||
mmc->slots[0].after_set_reg = NULL;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
pr_err("MMC%d configuration not supported!\n", c->mmc);
|
||||
|
@ -23,4 +23,22 @@
|
||||
#define AM35XX_IPSS_HECC_BASE 0x5C050000
|
||||
#define AM35XX_IPSS_VPFE_BASE 0x5C060000
|
||||
|
||||
#endif /* __ASM_ARCH_AM35XX_H */
|
||||
|
||||
/* HECC module specifc offset definitions */
|
||||
#define AM35XX_HECC_SCC_HECC_OFFSET (0x0)
|
||||
#define AM35XX_HECC_SCC_RAM_OFFSET (0x3000)
|
||||
#define AM35XX_HECC_RAM_OFFSET (0x3000)
|
||||
#define AM35XX_HECC_MBOX_OFFSET (0x2000)
|
||||
#define AM35XX_HECC_INT_LINE (0x0)
|
||||
#define AM35XX_HECC_VERSION (0x1)
|
||||
|
||||
#define AM35XX_EMAC_CNTRL_OFFSET (0x10000)
|
||||
#define AM35XX_EMAC_CNTRL_MOD_OFFSET (0x0)
|
||||
#define AM35XX_EMAC_CNTRL_RAM_OFFSET (0x20000)
|
||||
#define AM35XX_EMAC_MDIO_OFFSET (0x30000)
|
||||
#define AM35XX_EMAC_CNTRL_RAM_SIZE (0x2000)
|
||||
#define AM35XX_EMAC_RAM_ADDR (AM3517_EMAC_BASE + \
|
||||
AM3517_EMAC_CNTRL_RAM_OFFSET)
|
||||
#define AM35XX_EMAC_HW_RAM_ADDR (0x01E20000)
|
||||
|
||||
#endif /* __ASM_ARCH_AM35XX_H */
|
||||
|
@ -13,6 +13,8 @@
|
||||
|
||||
#include <linux/serial_reg.h>
|
||||
|
||||
#include <asm/memory.h>
|
||||
|
||||
#include <plat/serial.h>
|
||||
|
||||
#define UART_OFFSET(addr) ((addr) & 0x00ffffff)
|
||||
@ -40,13 +42,12 @@ omap_uart_lsr: .word 0
|
||||
cmp \rx, #0 @ is port configured?
|
||||
bne 99f @ already configured
|
||||
|
||||
/* Check UART1 scratchpad register for uart to use */
|
||||
/* Check the debug UART configuration set in uncompress.h */
|
||||
mrc p15, 0, \rx, c1, c0
|
||||
tst \rx, #1 @ MMU enabled?
|
||||
moveq \rx, #0x48000000 @ physical base address
|
||||
movne \rx, #0xfa000000 @ virtual base
|
||||
orr \rx, \rx, #0x0006a000 @ uart1 on omap2/3/4
|
||||
ldrb \rx, [\rx, #(UART_SCR << OMAP_PORT_SHIFT)] @ scratchpad
|
||||
ldreq \rx, =OMAP_UART_INFO
|
||||
ldrne \rx, =__phys_to_virt(OMAP_UART_INFO)
|
||||
ldr \rx, [\rx, #0]
|
||||
|
||||
/* Select the UART to use based on the UART1 scratchpad value */
|
||||
cmp \rx, #0 @ no port configured?
|
||||
@ -87,10 +88,10 @@ omap_uart_lsr: .word 0
|
||||
b 98f
|
||||
44: mov \rx, #UART_OFFSET(OMAP4_UART4_BASE)
|
||||
b 98f
|
||||
95: mov \rx, #ZOOM_UART_BASE
|
||||
95: ldr \rx, =ZOOM_UART_BASE
|
||||
ldr \tmp, =omap_uart_phys
|
||||
str \rx, [\tmp, #0]
|
||||
mov \rx, #ZOOM_UART_VIRT
|
||||
ldr \rx, =ZOOM_UART_VIRT
|
||||
ldr \tmp, =omap_uart_virt
|
||||
str \rx, [\tmp, #0]
|
||||
mov \rx, #(UART_LSR << ZOOM_PORT_SHIFT)
|
||||
|
26
arch/arm/mach-omap2/include/mach/omap4-common.h
Normal file
26
arch/arm/mach-omap2/include/mach/omap4-common.h
Normal file
@ -0,0 +1,26 @@
|
||||
/*
|
||||
* omap4-common.h: OMAP4 specific common header file
|
||||
*
|
||||
* Copyright (C) 2010 Texas Instruments, Inc.
|
||||
*
|
||||
* Author:
|
||||
* Santosh Shilimkar <santosh.shilimkar@ti.com>
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
#ifndef OMAP_ARCH_OMAP4_COMMON_H
|
||||
#define OMAP_ARCH_OMAP4_COMMON_H
|
||||
|
||||
#ifdef CONFIG_CACHE_L2X0
|
||||
extern void __iomem *l2cache_base;
|
||||
#endif
|
||||
|
||||
extern void __iomem *gic_cpu_base_addr;
|
||||
extern void __iomem *gic_dist_base_addr;
|
||||
|
||||
extern void __init gic_init_irq(void);
|
||||
extern void omap_smc1(u32 fn, u32 arg);
|
||||
|
||||
#endif
|
@ -166,6 +166,15 @@ static struct map_desc omap34xx_io_desc[] __initdata = {
|
||||
.length = L4_EMU_34XX_SIZE,
|
||||
.type = MT_DEVICE
|
||||
},
|
||||
#if defined(CONFIG_DEBUG_LL) && \
|
||||
(defined(CONFIG_MACH_OMAP_ZOOM2) || defined(CONFIG_MACH_OMAP_ZOOM3))
|
||||
{
|
||||
.virtual = ZOOM_UART_VIRT,
|
||||
.pfn = __phys_to_pfn(ZOOM_UART_BASE),
|
||||
.length = SZ_1M,
|
||||
.type = MT_DEVICE
|
||||
},
|
||||
#endif
|
||||
};
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_OMAP4
|
||||
|
@ -147,6 +147,7 @@ static u32 omap2_iommu_fault_isr(struct iommu *obj, u32 *ra)
|
||||
printk("\n");
|
||||
|
||||
iommu_write_reg(obj, stat, MMU_IRQSTATUS);
|
||||
omap2_iommu_disable(obj);
|
||||
return stat;
|
||||
}
|
||||
|
||||
@ -184,7 +185,7 @@ static struct cr_regs *omap2_alloc_cr(struct iommu *obj, struct iotlb_entry *e)
|
||||
if (!cr)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
cr->cam = (e->da & MMU_CAM_VATAG_MASK) | e->prsvd | e->pgsz;
|
||||
cr->cam = (e->da & MMU_CAM_VATAG_MASK) | e->prsvd | e->pgsz | e->valid;
|
||||
cr->ram = e->pa | e->endian | e->elsz | e->mixed;
|
||||
|
||||
return cr;
|
||||
@ -212,7 +213,8 @@ static ssize_t omap2_dump_cr(struct iommu *obj, struct cr_regs *cr, char *buf)
|
||||
char *p = buf;
|
||||
|
||||
/* FIXME: Need more detail analysis of cam/ram */
|
||||
p += sprintf(p, "%08x %08x\n", cr->cam, cr->ram);
|
||||
p += sprintf(p, "%08x %08x %01x\n", cr->cam, cr->ram,
|
||||
(cr->cam & MMU_CAM_P) ? 1 : 0);
|
||||
|
||||
return p - buf;
|
||||
}
|
||||
|
@ -1901,26 +1901,15 @@ struct omap_ball __initdata omap36xx_cbp_ball[] = {
|
||||
_OMAP3_BALLENTRY(GPMC_A8, "m3", "ab18"),
|
||||
_OMAP3_BALLENTRY(GPMC_A9, "l3", "ac19"),
|
||||
_OMAP3_BALLENTRY(GPMC_CLK, "t4", "w2"),
|
||||
_OMAP3_BALLENTRY(GPMC_D0, "k1", "m2"),
|
||||
_OMAP3_BALLENTRY(GPMC_D1, "l1", "m1"),
|
||||
_OMAP3_BALLENTRY(GPMC_D10, "p1", "ab4"),
|
||||
_OMAP3_BALLENTRY(GPMC_D11, "r1", "ac4"),
|
||||
_OMAP3_BALLENTRY(GPMC_D12, "r2", "ab6"),
|
||||
_OMAP3_BALLENTRY(GPMC_D13, "t2", "ac6"),
|
||||
_OMAP3_BALLENTRY(GPMC_D14, "w1", "ab7"),
|
||||
_OMAP3_BALLENTRY(GPMC_D15, "y1", "ac7"),
|
||||
_OMAP3_BALLENTRY(GPMC_D2, "l2", "n2"),
|
||||
_OMAP3_BALLENTRY(GPMC_D3, "p2", "n1"),
|
||||
_OMAP3_BALLENTRY(GPMC_D4, "t1", "r2"),
|
||||
_OMAP3_BALLENTRY(GPMC_D5, "v1", "r1"),
|
||||
_OMAP3_BALLENTRY(GPMC_D6, "v2", "t2"),
|
||||
_OMAP3_BALLENTRY(GPMC_D7, "w2", "t1"),
|
||||
_OMAP3_BALLENTRY(GPMC_D8, "h2", "ab3"),
|
||||
_OMAP3_BALLENTRY(GPMC_D9, "k2", "ac3"),
|
||||
_OMAP3_BALLENTRY(GPMC_NADV_ALE, "f3", "w1"),
|
||||
_OMAP3_BALLENTRY(GPMC_NBE0_CLE, "g3", "ac12"),
|
||||
_OMAP3_BALLENTRY(GPMC_NBE1, "u3", NULL),
|
||||
_OMAP3_BALLENTRY(GPMC_NCS0, "g4", "y2"),
|
||||
_OMAP3_BALLENTRY(GPMC_NCS1, "h3", "y1"),
|
||||
_OMAP3_BALLENTRY(GPMC_NCS2, "v8", NULL),
|
||||
_OMAP3_BALLENTRY(GPMC_NCS3, "u8", NULL),
|
||||
@ -1928,10 +1917,7 @@ struct omap_ball __initdata omap36xx_cbp_ball[] = {
|
||||
_OMAP3_BALLENTRY(GPMC_NCS5, "r8", NULL),
|
||||
_OMAP3_BALLENTRY(GPMC_NCS6, "p8", NULL),
|
||||
_OMAP3_BALLENTRY(GPMC_NCS7, "n8", NULL),
|
||||
_OMAP3_BALLENTRY(GPMC_NOE, "g2", "v2"),
|
||||
_OMAP3_BALLENTRY(GPMC_NWE, "f4", "v1"),
|
||||
_OMAP3_BALLENTRY(GPMC_NWP, "h1", "ab10"),
|
||||
_OMAP3_BALLENTRY(GPMC_WAIT0, "m8", "ab12"),
|
||||
_OMAP3_BALLENTRY(GPMC_WAIT1, "l8", "ac10"),
|
||||
_OMAP3_BALLENTRY(GPMC_WAIT2, "k8", NULL),
|
||||
_OMAP3_BALLENTRY(GPMC_WAIT3, "j8", NULL),
|
||||
@ -1948,8 +1934,6 @@ struct omap_ball __initdata omap36xx_cbp_ball[] = {
|
||||
_OMAP3_BALLENTRY(HSUSB0_DIR, "r28", NULL),
|
||||
_OMAP3_BALLENTRY(HSUSB0_NXT, "t26", NULL),
|
||||
_OMAP3_BALLENTRY(HSUSB0_STP, "t25", NULL),
|
||||
_OMAP3_BALLENTRY(I2C1_SCL, "k21", NULL),
|
||||
_OMAP3_BALLENTRY(I2C1_SDA, "j21", NULL),
|
||||
_OMAP3_BALLENTRY(I2C2_SCL, "af15", NULL),
|
||||
_OMAP3_BALLENTRY(I2C2_SDA, "ae15", NULL),
|
||||
_OMAP3_BALLENTRY(I2C3_SCL, "af14", NULL),
|
||||
@ -1958,11 +1942,6 @@ struct omap_ball __initdata omap36xx_cbp_ball[] = {
|
||||
_OMAP3_BALLENTRY(I2C4_SDA, "ae26", NULL),
|
||||
_OMAP3_BALLENTRY(JTAG_EMU0, "aa11", NULL),
|
||||
_OMAP3_BALLENTRY(JTAG_EMU1, "aa10", NULL),
|
||||
_OMAP3_BALLENTRY(JTAG_RTCK, "aa12", NULL),
|
||||
_OMAP3_BALLENTRY(JTAG_TCK, "aa13", NULL),
|
||||
_OMAP3_BALLENTRY(JTAG_TDI, "aa20", NULL),
|
||||
_OMAP3_BALLENTRY(JTAG_TDO, "aa19", NULL),
|
||||
_OMAP3_BALLENTRY(JTAG_TMS_TMSC, "aa18", NULL),
|
||||
_OMAP3_BALLENTRY(MCBSP1_CLKR, "y21", NULL),
|
||||
_OMAP3_BALLENTRY(MCBSP1_CLKX, "w21", NULL),
|
||||
_OMAP3_BALLENTRY(MCBSP1_DR, "u21", NULL),
|
||||
@ -2010,77 +1989,12 @@ struct omap_ball __initdata omap36xx_cbp_ball[] = {
|
||||
_OMAP3_BALLENTRY(SDMMC2_DAT5, "ah3", NULL),
|
||||
_OMAP3_BALLENTRY(SDMMC2_DAT6, "af3", NULL),
|
||||
_OMAP3_BALLENTRY(SDMMC2_DAT7, "ae3", NULL),
|
||||
_OMAP3_BALLENTRY(SDRC_A0, NULL, "n22"),
|
||||
_OMAP3_BALLENTRY(SDRC_A1, NULL, "n23"),
|
||||
_OMAP3_BALLENTRY(SDRC_A10, NULL, "v22"),
|
||||
_OMAP3_BALLENTRY(SDRC_A11, NULL, "v23"),
|
||||
_OMAP3_BALLENTRY(SDRC_A12, NULL, "w22"),
|
||||
_OMAP3_BALLENTRY(SDRC_A13, NULL, "w23"),
|
||||
_OMAP3_BALLENTRY(SDRC_A14, NULL, "y22"),
|
||||
_OMAP3_BALLENTRY(SDRC_A2, NULL, "p22"),
|
||||
_OMAP3_BALLENTRY(SDRC_A3, NULL, "p23"),
|
||||
_OMAP3_BALLENTRY(SDRC_A4, NULL, "r22"),
|
||||
_OMAP3_BALLENTRY(SDRC_A5, NULL, "r23"),
|
||||
_OMAP3_BALLENTRY(SDRC_A6, NULL, "t22"),
|
||||
_OMAP3_BALLENTRY(SDRC_A7, NULL, "t23"),
|
||||
_OMAP3_BALLENTRY(SDRC_A8, NULL, "u22"),
|
||||
_OMAP3_BALLENTRY(SDRC_A9, NULL, "u23"),
|
||||
_OMAP3_BALLENTRY(SDRC_BA0, "h9", "ab21"),
|
||||
_OMAP3_BALLENTRY(SDRC_BA1, "h10", "ac21"),
|
||||
_OMAP3_BALLENTRY(SDRC_CKE0, "h16", "j22"),
|
||||
_OMAP3_BALLENTRY(SDRC_CKE1, "h17", "j23"),
|
||||
_OMAP3_BALLENTRY(SDRC_CLK, "a13", "a11"),
|
||||
_OMAP3_BALLENTRY(SDRC_D0, NULL, "j2"),
|
||||
_OMAP3_BALLENTRY(SDRC_D1, NULL, "j1"),
|
||||
_OMAP3_BALLENTRY(SDRC_D10, "c15", "b14"),
|
||||
_OMAP3_BALLENTRY(SDRC_D11, "b16", "a14"),
|
||||
_OMAP3_BALLENTRY(SDRC_D12, "d17", "b16"),
|
||||
_OMAP3_BALLENTRY(SDRC_D13, "c17", "a16"),
|
||||
_OMAP3_BALLENTRY(SDRC_D14, "b17", "b19"),
|
||||
_OMAP3_BALLENTRY(SDRC_D15, "d18", "a19"),
|
||||
_OMAP3_BALLENTRY(SDRC_D16, NULL, "b3"),
|
||||
_OMAP3_BALLENTRY(SDRC_D17, NULL, "a3"),
|
||||
_OMAP3_BALLENTRY(SDRC_D18, NULL, "b5"),
|
||||
_OMAP3_BALLENTRY(SDRC_D19, NULL, "a5"),
|
||||
_OMAP3_BALLENTRY(SDRC_D2, NULL, "g2"),
|
||||
_OMAP3_BALLENTRY(SDRC_D20, NULL, "b8"),
|
||||
_OMAP3_BALLENTRY(SDRC_D21, NULL, "a8"),
|
||||
_OMAP3_BALLENTRY(SDRC_D22, NULL, "b9"),
|
||||
_OMAP3_BALLENTRY(SDRC_D23, NULL, "a9"),
|
||||
_OMAP3_BALLENTRY(SDRC_D24, NULL, "b21"),
|
||||
_OMAP3_BALLENTRY(SDRC_D25, NULL, "a21"),
|
||||
_OMAP3_BALLENTRY(SDRC_D26, NULL, "d22"),
|
||||
_OMAP3_BALLENTRY(SDRC_D27, NULL, "d23"),
|
||||
_OMAP3_BALLENTRY(SDRC_D28, NULL, "e22"),
|
||||
_OMAP3_BALLENTRY(SDRC_D29, NULL, "e23"),
|
||||
_OMAP3_BALLENTRY(SDRC_D3, NULL, "g1"),
|
||||
_OMAP3_BALLENTRY(SDRC_D30, NULL, "g22"),
|
||||
_OMAP3_BALLENTRY(SDRC_D31, NULL, "g23"),
|
||||
_OMAP3_BALLENTRY(SDRC_D4, NULL, "f2"),
|
||||
_OMAP3_BALLENTRY(SDRC_D5, NULL, "f1"),
|
||||
_OMAP3_BALLENTRY(SDRC_D6, NULL, "d2"),
|
||||
_OMAP3_BALLENTRY(SDRC_D7, NULL, "d1"),
|
||||
_OMAP3_BALLENTRY(SDRC_D8, "c14", "b13"),
|
||||
_OMAP3_BALLENTRY(SDRC_D9, "b14", "a13"),
|
||||
_OMAP3_BALLENTRY(SDRC_DM0, NULL, "c1"),
|
||||
_OMAP3_BALLENTRY(SDRC_DM1, "a16", "a17"),
|
||||
_OMAP3_BALLENTRY(SDRC_DM2, NULL, "a6"),
|
||||
_OMAP3_BALLENTRY(SDRC_DM3, NULL, "a20"),
|
||||
_OMAP3_BALLENTRY(SDRC_DQS0, NULL, "c2"),
|
||||
_OMAP3_BALLENTRY(SDRC_DQS1, "a17", "b17"),
|
||||
_OMAP3_BALLENTRY(SDRC_DQS2, NULL, "b6"),
|
||||
_OMAP3_BALLENTRY(SDRC_DQS3, NULL, "b20"),
|
||||
_OMAP3_BALLENTRY(SDRC_NCAS, "h13", "l22"),
|
||||
_OMAP3_BALLENTRY(SDRC_NCLK, "a14", "b11"),
|
||||
_OMAP3_BALLENTRY(SDRC_NCS0, "h11", "m22"),
|
||||
_OMAP3_BALLENTRY(SDRC_NCS1, "h12", "m23"),
|
||||
_OMAP3_BALLENTRY(SDRC_NRAS, "h14", "l23"),
|
||||
_OMAP3_BALLENTRY(SDRC_NWE, "h15", "k23"),
|
||||
_OMAP3_BALLENTRY(SIM_CLK, "p26", NULL),
|
||||
_OMAP3_BALLENTRY(SIM_IO, "p27", NULL),
|
||||
_OMAP3_BALLENTRY(SIM_PWRCTRL, "r27", NULL),
|
||||
_OMAP3_BALLENTRY(SIM_RST, "r25", NULL),
|
||||
_OMAP3_BALLENTRY(SYS_32K, "ae25", NULL),
|
||||
_OMAP3_BALLENTRY(SYS_BOOT0, "ah26", NULL),
|
||||
_OMAP3_BALLENTRY(SYS_BOOT1, "ag26", NULL),
|
||||
_OMAP3_BALLENTRY(SYS_BOOT2, "ae14", NULL),
|
||||
|
157
arch/arm/mach-omap2/omap-iommu.c
Normal file
157
arch/arm/mach-omap2/omap-iommu.c
Normal file
@ -0,0 +1,157 @@
|
||||
/*
|
||||
* omap iommu: omap device registration
|
||||
*
|
||||
* Copyright (C) 2008-2009 Nokia Corporation
|
||||
*
|
||||
* Written by Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <plat/iommu.h>
|
||||
#include <plat/irqs.h>
|
||||
|
||||
struct iommu_device {
|
||||
resource_size_t base;
|
||||
int irq;
|
||||
struct iommu_platform_data pdata;
|
||||
struct resource res[2];
|
||||
};
|
||||
static struct iommu_device *devices;
|
||||
static int num_iommu_devices;
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP3
|
||||
static struct iommu_device omap3_devices[] = {
|
||||
{
|
||||
.base = 0x480bd400,
|
||||
.irq = 24,
|
||||
.pdata = {
|
||||
.name = "isp",
|
||||
.nr_tlb_entries = 8,
|
||||
.clk_name = "cam_ick",
|
||||
},
|
||||
},
|
||||
#if defined(CONFIG_MPU_BRIDGE_IOMMU)
|
||||
{
|
||||
.base = 0x5d000000,
|
||||
.irq = 28,
|
||||
.pdata = {
|
||||
.name = "iva2",
|
||||
.nr_tlb_entries = 32,
|
||||
.clk_name = "iva2_ck",
|
||||
},
|
||||
},
|
||||
#endif
|
||||
};
|
||||
#define NR_OMAP3_IOMMU_DEVICES ARRAY_SIZE(omap3_devices)
|
||||
static struct platform_device *omap3_iommu_pdev[NR_OMAP3_IOMMU_DEVICES];
|
||||
#else
|
||||
#define omap3_devices NULL
|
||||
#define NR_OMAP3_IOMMU_DEVICES 0
|
||||
#define omap3_iommu_pdev NULL
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP4
|
||||
static struct iommu_device omap4_devices[] = {
|
||||
{
|
||||
.base = OMAP4_MMU1_BASE,
|
||||
.irq = INT_44XX_DUCATI_MMU_IRQ,
|
||||
.pdata = {
|
||||
.name = "ducati",
|
||||
.nr_tlb_entries = 32,
|
||||
.clk_name = "ducati_ick",
|
||||
},
|
||||
},
|
||||
#if defined(CONFIG_MPU_TESLA_IOMMU)
|
||||
{
|
||||
.base = OMAP4_MMU2_BASE,
|
||||
.irq = INT_44XX_DSP_MMU,
|
||||
.pdata = {
|
||||
.name = "tesla",
|
||||
.nr_tlb_entries = 32,
|
||||
.clk_name = "tesla_ick",
|
||||
},
|
||||
},
|
||||
#endif
|
||||
};
|
||||
#define NR_OMAP4_IOMMU_DEVICES ARRAY_SIZE(omap4_devices)
|
||||
static struct platform_device *omap4_iommu_pdev[NR_OMAP4_IOMMU_DEVICES];
|
||||
#else
|
||||
#define omap4_devices NULL
|
||||
#define NR_OMAP4_IOMMU_DEVICES 0
|
||||
#define omap4_iommu_pdev NULL
|
||||
#endif
|
||||
|
||||
static struct platform_device **omap_iommu_pdev;
|
||||
|
||||
static int __init omap_iommu_init(void)
|
||||
{
|
||||
int i, err;
|
||||
struct resource res[] = {
|
||||
{ .flags = IORESOURCE_MEM },
|
||||
{ .flags = IORESOURCE_IRQ },
|
||||
};
|
||||
|
||||
if (cpu_is_omap34xx()) {
|
||||
devices = omap3_devices;
|
||||
omap_iommu_pdev = omap3_iommu_pdev;
|
||||
num_iommu_devices = NR_OMAP3_IOMMU_DEVICES;
|
||||
} else if (cpu_is_omap44xx()) {
|
||||
devices = omap4_devices;
|
||||
omap_iommu_pdev = omap4_iommu_pdev;
|
||||
num_iommu_devices = NR_OMAP4_IOMMU_DEVICES;
|
||||
} else
|
||||
return -ENODEV;
|
||||
|
||||
for (i = 0; i < num_iommu_devices; i++) {
|
||||
struct platform_device *pdev;
|
||||
const struct iommu_device *d = &devices[i];
|
||||
|
||||
pdev = platform_device_alloc("omap-iommu", i);
|
||||
if (!pdev) {
|
||||
err = -ENOMEM;
|
||||
goto err_out;
|
||||
}
|
||||
|
||||
res[0].start = d->base;
|
||||
res[0].end = d->base + MMU_REG_SIZE - 1;
|
||||
res[1].start = res[1].end = d->irq;
|
||||
|
||||
err = platform_device_add_resources(pdev, res,
|
||||
ARRAY_SIZE(res));
|
||||
if (err)
|
||||
goto err_out;
|
||||
err = platform_device_add_data(pdev, &d->pdata,
|
||||
sizeof(d->pdata));
|
||||
if (err)
|
||||
goto err_out;
|
||||
err = platform_device_add(pdev);
|
||||
if (err)
|
||||
goto err_out;
|
||||
omap_iommu_pdev[i] = pdev;
|
||||
}
|
||||
return 0;
|
||||
|
||||
err_out:
|
||||
while (i--)
|
||||
platform_device_put(omap_iommu_pdev[i]);
|
||||
return err;
|
||||
}
|
||||
module_init(omap_iommu_init);
|
||||
|
||||
static void __exit omap_iommu_exit(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < num_iommu_devices; i++)
|
||||
platform_device_unregister(omap_iommu_pdev[i]);
|
||||
}
|
||||
module_exit(omap_iommu_exit);
|
||||
|
||||
MODULE_AUTHOR("Hiroshi DOYU");
|
||||
MODULE_DESCRIPTION("omap iommu: omap device registration");
|
||||
MODULE_LICENSE("GPL v2");
|
@ -24,7 +24,7 @@
|
||||
#include <asm/localtimer.h>
|
||||
#include <asm/smp_scu.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <plat/common.h>
|
||||
#include <mach/omap4-common.h>
|
||||
|
||||
/* SCU base address */
|
||||
static void __iomem *scu_base;
|
||||
|
@ -1,105 +0,0 @@
|
||||
/*
|
||||
* omap iommu: omap3 device registration
|
||||
*
|
||||
* Copyright (C) 2008-2009 Nokia Corporation
|
||||
*
|
||||
* Written by Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <plat/iommu.h>
|
||||
|
||||
struct iommu_device {
|
||||
resource_size_t base;
|
||||
int irq;
|
||||
struct iommu_platform_data pdata;
|
||||
struct resource res[2];
|
||||
};
|
||||
|
||||
static struct iommu_device devices[] = {
|
||||
{
|
||||
.base = 0x480bd400,
|
||||
.irq = 24,
|
||||
.pdata = {
|
||||
.name = "isp",
|
||||
.nr_tlb_entries = 8,
|
||||
.clk_name = "cam_ick",
|
||||
},
|
||||
},
|
||||
#if defined(CONFIG_MPU_BRIDGE_IOMMU)
|
||||
{
|
||||
.base = 0x5d000000,
|
||||
.irq = 28,
|
||||
.pdata = {
|
||||
.name = "iva2",
|
||||
.nr_tlb_entries = 32,
|
||||
.clk_name = "iva2_ck",
|
||||
},
|
||||
},
|
||||
#endif
|
||||
};
|
||||
#define NR_IOMMU_DEVICES ARRAY_SIZE(devices)
|
||||
|
||||
static struct platform_device *omap3_iommu_pdev[NR_IOMMU_DEVICES];
|
||||
|
||||
static int __init omap3_iommu_init(void)
|
||||
{
|
||||
int i, err;
|
||||
struct resource res[] = {
|
||||
{ .flags = IORESOURCE_MEM },
|
||||
{ .flags = IORESOURCE_IRQ },
|
||||
};
|
||||
|
||||
for (i = 0; i < NR_IOMMU_DEVICES; i++) {
|
||||
struct platform_device *pdev;
|
||||
const struct iommu_device *d = &devices[i];
|
||||
|
||||
pdev = platform_device_alloc("omap-iommu", i);
|
||||
if (!pdev) {
|
||||
err = -ENOMEM;
|
||||
goto err_out;
|
||||
}
|
||||
|
||||
res[0].start = d->base;
|
||||
res[0].end = d->base + MMU_REG_SIZE - 1;
|
||||
res[1].start = res[1].end = d->irq;
|
||||
|
||||
err = platform_device_add_resources(pdev, res,
|
||||
ARRAY_SIZE(res));
|
||||
if (err)
|
||||
goto err_out;
|
||||
err = platform_device_add_data(pdev, &d->pdata,
|
||||
sizeof(d->pdata));
|
||||
if (err)
|
||||
goto err_out;
|
||||
err = platform_device_add(pdev);
|
||||
if (err)
|
||||
goto err_out;
|
||||
omap3_iommu_pdev[i] = pdev;
|
||||
}
|
||||
return 0;
|
||||
|
||||
err_out:
|
||||
while (i--)
|
||||
platform_device_put(omap3_iommu_pdev[i]);
|
||||
return err;
|
||||
}
|
||||
module_init(omap3_iommu_init);
|
||||
|
||||
static void __exit omap3_iommu_exit(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < NR_IOMMU_DEVICES; i++)
|
||||
platform_device_unregister(omap3_iommu_pdev[i]);
|
||||
}
|
||||
module_exit(omap3_iommu_exit);
|
||||
|
||||
MODULE_AUTHOR("Hiroshi DOYU");
|
||||
MODULE_DESCRIPTION("omap iommu: omap3 device registration");
|
||||
MODULE_LICENSE("GPL v2");
|
72
arch/arm/mach-omap2/omap4-common.c
Normal file
72
arch/arm/mach-omap2/omap4-common.c
Normal file
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* OMAP4 specific common source file.
|
||||
*
|
||||
* Copyright (C) 2010 Texas Instruments, Inc.
|
||||
* Author:
|
||||
* Santosh Shilimkar <santosh.shilimkar@ti.com>
|
||||
*
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <asm/hardware/gic.h>
|
||||
#include <asm/hardware/cache-l2x0.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/omap4-common.h>
|
||||
|
||||
#ifdef CONFIG_CACHE_L2X0
|
||||
void __iomem *l2cache_base;
|
||||
#endif
|
||||
|
||||
void __iomem *gic_cpu_base_addr;
|
||||
void __iomem *gic_dist_base_addr;
|
||||
|
||||
|
||||
void __init gic_init_irq(void)
|
||||
{
|
||||
/* Static mapping, never released */
|
||||
gic_dist_base_addr = ioremap(OMAP44XX_GIC_DIST_BASE, SZ_4K);
|
||||
BUG_ON(!gic_dist_base_addr);
|
||||
gic_dist_init(0, gic_dist_base_addr, 29);
|
||||
|
||||
/* Static mapping, never released */
|
||||
gic_cpu_base_addr = ioremap(OMAP44XX_GIC_CPU_BASE, SZ_512);
|
||||
BUG_ON(!gic_cpu_base_addr);
|
||||
gic_cpu_init(0, gic_cpu_base_addr);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_CACHE_L2X0
|
||||
static int __init omap_l2_cache_init(void)
|
||||
{
|
||||
/*
|
||||
* To avoid code running on other OMAPs in
|
||||
* multi-omap builds
|
||||
*/
|
||||
if (!cpu_is_omap44xx())
|
||||
return -ENODEV;
|
||||
|
||||
/* Static mapping, never released */
|
||||
l2cache_base = ioremap(OMAP44XX_L2CACHE_BASE, SZ_4K);
|
||||
BUG_ON(!l2cache_base);
|
||||
|
||||
/* Enable PL310 L2 Cache controller */
|
||||
omap_smc1(0x102, 0x1);
|
||||
|
||||
/*
|
||||
* 32KB way size, 16-way associativity,
|
||||
* parity disabled
|
||||
*/
|
||||
l2x0_init(l2cache_base, 0x0e050000, 0xc0000fff);
|
||||
|
||||
return 0;
|
||||
}
|
||||
early_initcall(omap_l2_cache_init);
|
||||
#endif
|
@ -2,12 +2,12 @@
|
||||
* omap_hwmod implementation for OMAP2/3/4
|
||||
*
|
||||
* Copyright (C) 2009 Nokia Corporation
|
||||
* Paul Walmsley
|
||||
* With fixes and testing from Kevin Hilman
|
||||
*
|
||||
* Created in collaboration with (alphabetical order): Benoit Cousson,
|
||||
* Kevin Hilman, Tony Lindgren, Rajendra Nayak, Vikram Pandita, Sakari
|
||||
* Poussa, Anand Sawant, Santosh Shilimkar, Richard Woodruff
|
||||
* Paul Walmsley, Benoît Cousson, Kevin Hilman
|
||||
*
|
||||
* Created in collaboration with (alphabetical order): Thara Gopinath,
|
||||
* 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
|
||||
@ -57,7 +57,7 @@
|
||||
#define MAX_MODULE_RESET_WAIT 10000
|
||||
|
||||
/* Name of the OMAP hwmod for the MPU */
|
||||
#define MPU_INITIATOR_NAME "mpu_hwmod"
|
||||
#define MPU_INITIATOR_NAME "mpu"
|
||||
|
||||
/* omap_hwmod_list contains all registered struct omap_hwmods */
|
||||
static LIST_HEAD(omap_hwmod_list);
|
||||
@ -403,21 +403,20 @@ static int _del_initiator_dep(struct omap_hwmod *oh, struct omap_hwmod *init_oh)
|
||||
*/
|
||||
static int _init_main_clk(struct omap_hwmod *oh)
|
||||
{
|
||||
struct clk *c;
|
||||
int ret = 0;
|
||||
|
||||
if (!oh->main_clk)
|
||||
return 0;
|
||||
|
||||
c = omap_clk_get_by_name(oh->main_clk);
|
||||
WARN(IS_ERR(c), "omap_hwmod: %s: cannot clk_get main_clk %s\n",
|
||||
oh->name, oh->main_clk);
|
||||
if (IS_ERR(c))
|
||||
ret = -EINVAL;
|
||||
oh->_clk = c;
|
||||
oh->_clk = omap_clk_get_by_name(oh->main_clk);
|
||||
if (!oh->_clk)
|
||||
pr_warning("omap_hwmod: %s: cannot clk_get main_clk %s\n",
|
||||
oh->name, oh->main_clk);
|
||||
return -EINVAL;
|
||||
|
||||
WARN(!c->clkdm, "omap_hwmod: %s: missing clockdomain for %s.\n",
|
||||
oh->main_clk, c->name);
|
||||
if (!oh->_clk->clkdm)
|
||||
pr_warning("omap_hwmod: %s: missing clockdomain for %s.\n",
|
||||
oh->main_clk, oh->_clk->name);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -431,7 +430,6 @@ static int _init_main_clk(struct omap_hwmod *oh)
|
||||
*/
|
||||
static int _init_interface_clks(struct omap_hwmod *oh)
|
||||
{
|
||||
struct omap_hwmod_ocp_if *os;
|
||||
struct clk *c;
|
||||
int i;
|
||||
int ret = 0;
|
||||
@ -439,14 +437,16 @@ static int _init_interface_clks(struct omap_hwmod *oh)
|
||||
if (oh->slaves_cnt == 0)
|
||||
return 0;
|
||||
|
||||
for (i = 0, os = *oh->slaves; i < oh->slaves_cnt; i++, os++) {
|
||||
for (i = 0; i < oh->slaves_cnt; i++) {
|
||||
struct omap_hwmod_ocp_if *os = oh->slaves[i];
|
||||
|
||||
if (!os->clk)
|
||||
continue;
|
||||
|
||||
c = omap_clk_get_by_name(os->clk);
|
||||
WARN(IS_ERR(c), "omap_hwmod: %s: cannot clk_get "
|
||||
"interface_clk %s\n", oh->name, os->clk);
|
||||
if (IS_ERR(c))
|
||||
if (!c)
|
||||
pr_warning("omap_hwmod: %s: cannot clk_get interface_clk %s\n",
|
||||
oh->name, os->clk);
|
||||
ret = -EINVAL;
|
||||
os->_clk = c;
|
||||
}
|
||||
@ -470,9 +470,9 @@ static int _init_opt_clks(struct omap_hwmod *oh)
|
||||
|
||||
for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++) {
|
||||
c = omap_clk_get_by_name(oc->clk);
|
||||
WARN(IS_ERR(c), "omap_hwmod: %s: cannot clk_get opt_clk "
|
||||
"%s\n", oh->name, oc->clk);
|
||||
if (IS_ERR(c))
|
||||
if (!c)
|
||||
pr_warning("omap_hwmod: %s: cannot clk_get opt_clk %s\n",
|
||||
oh->name, oc->clk);
|
||||
ret = -EINVAL;
|
||||
oc->_clk = c;
|
||||
}
|
||||
@ -489,19 +489,19 @@ static int _init_opt_clks(struct omap_hwmod *oh)
|
||||
*/
|
||||
static int _enable_clocks(struct omap_hwmod *oh)
|
||||
{
|
||||
struct omap_hwmod_ocp_if *os;
|
||||
int i;
|
||||
|
||||
pr_debug("omap_hwmod: %s: enabling clocks\n", oh->name);
|
||||
|
||||
if (oh->_clk && !IS_ERR(oh->_clk))
|
||||
if (oh->_clk)
|
||||
clk_enable(oh->_clk);
|
||||
|
||||
if (oh->slaves_cnt > 0) {
|
||||
for (i = 0, os = *oh->slaves; i < oh->slaves_cnt; i++, os++) {
|
||||
for (i = 0; i < oh->slaves_cnt; i++) {
|
||||
struct omap_hwmod_ocp_if *os = oh->slaves[i];
|
||||
struct clk *c = os->_clk;
|
||||
|
||||
if (c && !IS_ERR(c) && (os->flags & OCPIF_SWSUP_IDLE))
|
||||
if (c && (os->flags & OCPIF_SWSUP_IDLE))
|
||||
clk_enable(c);
|
||||
}
|
||||
}
|
||||
@ -519,19 +519,19 @@ static int _enable_clocks(struct omap_hwmod *oh)
|
||||
*/
|
||||
static int _disable_clocks(struct omap_hwmod *oh)
|
||||
{
|
||||
struct omap_hwmod_ocp_if *os;
|
||||
int i;
|
||||
|
||||
pr_debug("omap_hwmod: %s: disabling clocks\n", oh->name);
|
||||
|
||||
if (oh->_clk && !IS_ERR(oh->_clk))
|
||||
if (oh->_clk)
|
||||
clk_disable(oh->_clk);
|
||||
|
||||
if (oh->slaves_cnt > 0) {
|
||||
for (i = 0, os = *oh->slaves; i < oh->slaves_cnt; i++, os++) {
|
||||
for (i = 0; i < oh->slaves_cnt; i++) {
|
||||
struct omap_hwmod_ocp_if *os = oh->slaves[i];
|
||||
struct clk *c = os->_clk;
|
||||
|
||||
if (c && !IS_ERR(c) && (os->flags & OCPIF_SWSUP_IDLE))
|
||||
if (c && (os->flags & OCPIF_SWSUP_IDLE))
|
||||
clk_disable(c);
|
||||
}
|
||||
}
|
||||
@ -550,14 +550,15 @@ static int _disable_clocks(struct omap_hwmod *oh)
|
||||
*/
|
||||
static int _find_mpu_port_index(struct omap_hwmod *oh)
|
||||
{
|
||||
struct omap_hwmod_ocp_if *os;
|
||||
int i;
|
||||
int found = 0;
|
||||
|
||||
if (!oh || oh->slaves_cnt == 0)
|
||||
return -EINVAL;
|
||||
|
||||
for (i = 0, os = *oh->slaves; i < oh->slaves_cnt; i++, os++) {
|
||||
for (i = 0; i < oh->slaves_cnt; i++) {
|
||||
struct omap_hwmod_ocp_if *os = oh->slaves[i];
|
||||
|
||||
if (os->user & OCP_USER_MPU) {
|
||||
found = 1;
|
||||
break;
|
||||
@ -592,7 +593,7 @@ static void __iomem *_find_mpu_rt_base(struct omap_hwmod *oh, u8 index)
|
||||
if (!oh || oh->slaves_cnt == 0)
|
||||
return NULL;
|
||||
|
||||
os = *oh->slaves + index;
|
||||
os = oh->slaves[index];
|
||||
|
||||
for (i = 0, mem = os->addr; i < os->addr_cnt; i++, mem++) {
|
||||
if (mem->flags & ADDR_TYPE_RT) {
|
||||
@ -780,9 +781,10 @@ static int _init_clocks(struct omap_hwmod *oh)
|
||||
ret |= _init_interface_clks(oh);
|
||||
ret |= _init_opt_clks(oh);
|
||||
|
||||
oh->_state = _HWMOD_STATE_CLKS_INITED;
|
||||
if (!ret)
|
||||
oh->_state = _HWMOD_STATE_CLKS_INITED;
|
||||
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -805,9 +807,9 @@ static int _wait_target_ready(struct omap_hwmod *oh)
|
||||
if (oh->_int_flags & _HWMOD_NO_MPU_PORT)
|
||||
return 0;
|
||||
|
||||
os = *oh->slaves + oh->_mpu_port_index;
|
||||
os = oh->slaves[oh->_mpu_port_index];
|
||||
|
||||
if (!(os->flags & OCPIF_HAS_IDLEST))
|
||||
if (oh->flags & HWMOD_NO_IDLEST)
|
||||
return 0;
|
||||
|
||||
/* XXX check module SIDLEMODE */
|
||||
@ -818,11 +820,8 @@ static int _wait_target_ready(struct omap_hwmod *oh)
|
||||
ret = omap2_cm_wait_module_ready(oh->prcm.omap2.module_offs,
|
||||
oh->prcm.omap2.idlest_reg_id,
|
||||
oh->prcm.omap2.idlest_idle_bit);
|
||||
#if 0
|
||||
} else if (cpu_is_omap44xx()) {
|
||||
ret = omap4_cm_wait_module_ready(oh->prcm.omap4.module_offs,
|
||||
oh->prcm.omap4.device_offs);
|
||||
#endif
|
||||
ret = omap4_cm_wait_module_ready(oh->prcm.omap4.clkctrl_reg);
|
||||
} else {
|
||||
BUG();
|
||||
};
|
||||
@ -911,16 +910,21 @@ static int _enable(struct omap_hwmod *oh)
|
||||
_add_initiator_dep(oh, mpu_oh);
|
||||
_enable_clocks(oh);
|
||||
|
||||
if (oh->class->sysc) {
|
||||
if (!(oh->_int_flags & _HWMOD_SYSCONFIG_LOADED))
|
||||
_update_sysc_cache(oh);
|
||||
_sysc_enable(oh);
|
||||
}
|
||||
|
||||
r = _wait_target_ready(oh);
|
||||
if (!r)
|
||||
if (!r) {
|
||||
oh->_state = _HWMOD_STATE_ENABLED;
|
||||
|
||||
/* Access the sysconfig only if the target is ready */
|
||||
if (oh->class->sysc) {
|
||||
if (!(oh->_int_flags & _HWMOD_SYSCONFIG_LOADED))
|
||||
_update_sysc_cache(oh);
|
||||
_sysc_enable(oh);
|
||||
}
|
||||
} else {
|
||||
pr_debug("omap_hwmod: %s: _wait_target_ready: %d\n",
|
||||
oh->name, r);
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
@ -997,18 +1001,18 @@ static int _shutdown(struct omap_hwmod *oh)
|
||||
*/
|
||||
static int _setup(struct omap_hwmod *oh)
|
||||
{
|
||||
struct omap_hwmod_ocp_if *os;
|
||||
int i;
|
||||
int i, r;
|
||||
|
||||
if (!oh)
|
||||
return -EINVAL;
|
||||
|
||||
/* Set iclk autoidle mode */
|
||||
if (oh->slaves_cnt > 0) {
|
||||
for (i = 0, os = *oh->slaves; i < oh->slaves_cnt; i++, os++) {
|
||||
for (i = 0; i < oh->slaves_cnt; i++) {
|
||||
struct omap_hwmod_ocp_if *os = oh->slaves[i];
|
||||
struct clk *c = os->_clk;
|
||||
|
||||
if (!c || IS_ERR(c))
|
||||
if (!c)
|
||||
continue;
|
||||
|
||||
if (os->flags & OCPIF_SWSUP_IDLE) {
|
||||
@ -1022,7 +1026,12 @@ static int _setup(struct omap_hwmod *oh)
|
||||
|
||||
oh->_state = _HWMOD_STATE_INITIALIZED;
|
||||
|
||||
_enable(oh);
|
||||
r = _enable(oh);
|
||||
if (r) {
|
||||
pr_warning("omap_hwmod: %s: cannot be enabled (%d)\n",
|
||||
oh->name, oh->_state);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!(oh->flags & HWMOD_INIT_NO_RESET)) {
|
||||
/*
|
||||
@ -1430,7 +1439,7 @@ int omap_hwmod_count_resources(struct omap_hwmod *oh)
|
||||
ret = oh->mpu_irqs_cnt + oh->sdma_chs_cnt;
|
||||
|
||||
for (i = 0; i < oh->slaves_cnt; i++)
|
||||
ret += (*oh->slaves + i)->addr_cnt;
|
||||
ret += oh->slaves[i]->addr_cnt;
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -1471,7 +1480,7 @@ int omap_hwmod_fill_resources(struct omap_hwmod *oh, struct resource *res)
|
||||
for (i = 0; i < oh->slaves_cnt; i++) {
|
||||
struct omap_hwmod_ocp_if *os;
|
||||
|
||||
os = *oh->slaves + i;
|
||||
os = oh->slaves[i];
|
||||
|
||||
for (j = 0; j < os->addr_cnt; j++) {
|
||||
(res + r)->start = (os->addr + j)->pa_start;
|
||||
|
@ -125,7 +125,7 @@ static struct omap_hwmod_ocp_if *omap2420_mpu_masters[] = {
|
||||
|
||||
/* MPU */
|
||||
static struct omap_hwmod omap2420_mpu_hwmod = {
|
||||
.name = "mpu_hwmod",
|
||||
.name = "mpu",
|
||||
.class = &mpu_hwmod_class,
|
||||
.main_clk = "mpu_ck",
|
||||
.masters = omap2420_mpu_masters,
|
||||
|
@ -127,7 +127,7 @@ static struct omap_hwmod_ocp_if *omap2430_mpu_masters[] = {
|
||||
|
||||
/* MPU */
|
||||
static struct omap_hwmod omap2430_mpu_hwmod = {
|
||||
.name = "mpu_hwmod",
|
||||
.name = "mpu",
|
||||
.class = &mpu_hwmod_class,
|
||||
.main_clk = "mpu_ck",
|
||||
.masters = omap2430_mpu_masters,
|
||||
|
@ -156,7 +156,7 @@ static struct omap_hwmod_ocp_if *omap3xxx_mpu_masters[] = {
|
||||
|
||||
/* MPU */
|
||||
static struct omap_hwmod omap3xxx_mpu_hwmod = {
|
||||
.name = "mpu_hwmod",
|
||||
.name = "mpu",
|
||||
.class = &mpu_hwmod_class,
|
||||
.main_clk = "arm_fck",
|
||||
.masters = omap3xxx_mpu_masters,
|
||||
|
@ -548,6 +548,9 @@ static int option_set(void *data, u64 val)
|
||||
{
|
||||
u32 *option = data;
|
||||
|
||||
if (option == &wakeup_timer_milliseconds && val >= 1000)
|
||||
return -EINVAL;
|
||||
|
||||
*option = val;
|
||||
|
||||
if (option == &enable_off_mode)
|
||||
|
@ -43,6 +43,7 @@ extern int omap3_pm_get_suspend_state(struct powerdomain *pwrdm);
|
||||
extern int omap3_pm_set_suspend_state(struct powerdomain *pwrdm, int state);
|
||||
|
||||
extern u32 wakeup_timer_seconds;
|
||||
extern u32 wakeup_timer_milliseconds;
|
||||
extern struct omap_dm_timer *gptimer_wakeup;
|
||||
|
||||
#ifdef CONFIG_PM_DEBUG
|
||||
|
@ -70,8 +70,8 @@ static int omap2_fclks_active(void)
|
||||
f2 = cm_read_mod_reg(CORE_MOD, OMAP24XX_CM_FCLKEN2);
|
||||
|
||||
/* Ignore UART clocks. These are handled by UART core (serial.c) */
|
||||
f1 &= ~(OMAP24XX_EN_UART1 | OMAP24XX_EN_UART2);
|
||||
f2 &= ~OMAP24XX_EN_UART3;
|
||||
f1 &= ~(OMAP24XX_EN_UART1_MASK | OMAP24XX_EN_UART2_MASK);
|
||||
f2 &= ~OMAP24XX_EN_UART3_MASK;
|
||||
|
||||
if (f1 | f2)
|
||||
return 1;
|
||||
@ -107,7 +107,7 @@ static void omap2_enter_full_retention(void)
|
||||
l = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0) | OMAP24XX_USBSTANDBYCTRL;
|
||||
omap_ctrl_writel(l, OMAP2_CONTROL_DEVCONF0);
|
||||
|
||||
omap2_gpio_prepare_for_retention();
|
||||
omap2_gpio_prepare_for_idle(PWRDM_POWER_RET);
|
||||
|
||||
if (omap2_pm_debug) {
|
||||
omap2_pm_dump(0, 0, 0);
|
||||
@ -141,7 +141,7 @@ no_sleep:
|
||||
tmp = timespec_to_ns(&ts_idle) * NSEC_PER_USEC;
|
||||
omap2_pm_dump(0, 1, tmp);
|
||||
}
|
||||
omap2_gpio_resume_after_retention();
|
||||
omap2_gpio_resume_after_idle();
|
||||
|
||||
clk_enable(osc_ck);
|
||||
|
||||
@ -170,7 +170,7 @@ static int omap2_i2c_active(void)
|
||||
u32 l;
|
||||
|
||||
l = cm_read_mod_reg(CORE_MOD, CM_FCLKEN1);
|
||||
return l & (OMAP2420_EN_I2C2 | OMAP2420_EN_I2C1);
|
||||
return l & (OMAP2420_EN_I2C2_MASK | OMAP2420_EN_I2C1_MASK);
|
||||
}
|
||||
|
||||
static int sti_console_enabled;
|
||||
@ -181,13 +181,13 @@ static int omap2_allow_mpu_retention(void)
|
||||
|
||||
/* Check for MMC, UART2, UART1, McSPI2, McSPI1 and DSS1. */
|
||||
l = cm_read_mod_reg(CORE_MOD, CM_FCLKEN1);
|
||||
if (l & (OMAP2420_EN_MMC | OMAP24XX_EN_UART2 |
|
||||
OMAP24XX_EN_UART1 | OMAP24XX_EN_MCSPI2 |
|
||||
OMAP24XX_EN_MCSPI1 | OMAP24XX_EN_DSS1))
|
||||
if (l & (OMAP2420_EN_MMC_MASK | OMAP24XX_EN_UART2_MASK |
|
||||
OMAP24XX_EN_UART1_MASK | OMAP24XX_EN_MCSPI2_MASK |
|
||||
OMAP24XX_EN_MCSPI1_MASK | OMAP24XX_EN_DSS1_MASK))
|
||||
return 0;
|
||||
/* Check for UART3. */
|
||||
l = cm_read_mod_reg(CORE_MOD, OMAP24XX_CM_FCLKEN2);
|
||||
if (l & OMAP24XX_EN_UART3)
|
||||
if (l & OMAP24XX_EN_UART3_MASK)
|
||||
return 0;
|
||||
if (sti_console_enabled)
|
||||
return 0;
|
||||
@ -215,12 +215,12 @@ static void omap2_enter_mpu_retention(void)
|
||||
|
||||
/* Try to enter MPU retention */
|
||||
prm_write_mod_reg((0x01 << OMAP_POWERSTATE_SHIFT) |
|
||||
OMAP_LOGICRETSTATE,
|
||||
OMAP_LOGICRETSTATE_MASK,
|
||||
MPU_MOD, OMAP2_PM_PWSTCTRL);
|
||||
} else {
|
||||
/* Block MPU retention */
|
||||
|
||||
prm_write_mod_reg(OMAP_LOGICRETSTATE, MPU_MOD,
|
||||
prm_write_mod_reg(OMAP_LOGICRETSTATE_MASK, MPU_MOD,
|
||||
OMAP2_PM_PWSTCTRL);
|
||||
only_idle = 1;
|
||||
}
|
||||
@ -288,7 +288,8 @@ static int omap2_pm_suspend(void)
|
||||
u32 wken_wkup, mir1;
|
||||
|
||||
wken_wkup = prm_read_mod_reg(WKUP_MOD, PM_WKEN);
|
||||
prm_write_mod_reg(wken_wkup & ~OMAP24XX_EN_GPT1, WKUP_MOD, PM_WKEN);
|
||||
wken_wkup &= ~OMAP24XX_EN_GPT1_MASK;
|
||||
prm_write_mod_reg(wken_wkup, WKUP_MOD, PM_WKEN);
|
||||
|
||||
/* Mask GPT1 */
|
||||
mir1 = omap_readl(0x480fe0a4);
|
||||
@ -351,7 +352,7 @@ static void __init prcm_setup_regs(void)
|
||||
struct powerdomain *pwrdm;
|
||||
|
||||
/* Enable autoidle */
|
||||
prm_write_mod_reg(OMAP24XX_AUTOIDLE, OCP_MOD,
|
||||
prm_write_mod_reg(OMAP24XX_AUTOIDLE_MASK, OCP_MOD,
|
||||
OMAP2_PRCM_SYSCONFIG_OFFSET);
|
||||
|
||||
/*
|
||||
@ -390,53 +391,54 @@ static void __init prcm_setup_regs(void)
|
||||
clkdm_add_wkdep(mpu_clkdm, wkup_clkdm);
|
||||
|
||||
/* Enable clock autoidle for all domains */
|
||||
cm_write_mod_reg(OMAP24XX_AUTO_CAM |
|
||||
OMAP24XX_AUTO_MAILBOXES |
|
||||
OMAP24XX_AUTO_WDT4 |
|
||||
OMAP2420_AUTO_WDT3 |
|
||||
OMAP24XX_AUTO_MSPRO |
|
||||
OMAP2420_AUTO_MMC |
|
||||
OMAP24XX_AUTO_FAC |
|
||||
OMAP2420_AUTO_EAC |
|
||||
OMAP24XX_AUTO_HDQ |
|
||||
OMAP24XX_AUTO_UART2 |
|
||||
OMAP24XX_AUTO_UART1 |
|
||||
OMAP24XX_AUTO_I2C2 |
|
||||
OMAP24XX_AUTO_I2C1 |
|
||||
OMAP24XX_AUTO_MCSPI2 |
|
||||
OMAP24XX_AUTO_MCSPI1 |
|
||||
OMAP24XX_AUTO_MCBSP2 |
|
||||
OMAP24XX_AUTO_MCBSP1 |
|
||||
OMAP24XX_AUTO_GPT12 |
|
||||
OMAP24XX_AUTO_GPT11 |
|
||||
OMAP24XX_AUTO_GPT10 |
|
||||
OMAP24XX_AUTO_GPT9 |
|
||||
OMAP24XX_AUTO_GPT8 |
|
||||
OMAP24XX_AUTO_GPT7 |
|
||||
OMAP24XX_AUTO_GPT6 |
|
||||
OMAP24XX_AUTO_GPT5 |
|
||||
OMAP24XX_AUTO_GPT4 |
|
||||
OMAP24XX_AUTO_GPT3 |
|
||||
OMAP24XX_AUTO_GPT2 |
|
||||
OMAP2420_AUTO_VLYNQ |
|
||||
OMAP24XX_AUTO_DSS,
|
||||
cm_write_mod_reg(OMAP24XX_AUTO_CAM_MASK |
|
||||
OMAP24XX_AUTO_MAILBOXES_MASK |
|
||||
OMAP24XX_AUTO_WDT4_MASK |
|
||||
OMAP2420_AUTO_WDT3_MASK |
|
||||
OMAP24XX_AUTO_MSPRO_MASK |
|
||||
OMAP2420_AUTO_MMC_MASK |
|
||||
OMAP24XX_AUTO_FAC_MASK |
|
||||
OMAP2420_AUTO_EAC_MASK |
|
||||
OMAP24XX_AUTO_HDQ_MASK |
|
||||
OMAP24XX_AUTO_UART2_MASK |
|
||||
OMAP24XX_AUTO_UART1_MASK |
|
||||
OMAP24XX_AUTO_I2C2_MASK |
|
||||
OMAP24XX_AUTO_I2C1_MASK |
|
||||
OMAP24XX_AUTO_MCSPI2_MASK |
|
||||
OMAP24XX_AUTO_MCSPI1_MASK |
|
||||
OMAP24XX_AUTO_MCBSP2_MASK |
|
||||
OMAP24XX_AUTO_MCBSP1_MASK |
|
||||
OMAP24XX_AUTO_GPT12_MASK |
|
||||
OMAP24XX_AUTO_GPT11_MASK |
|
||||
OMAP24XX_AUTO_GPT10_MASK |
|
||||
OMAP24XX_AUTO_GPT9_MASK |
|
||||
OMAP24XX_AUTO_GPT8_MASK |
|
||||
OMAP24XX_AUTO_GPT7_MASK |
|
||||
OMAP24XX_AUTO_GPT6_MASK |
|
||||
OMAP24XX_AUTO_GPT5_MASK |
|
||||
OMAP24XX_AUTO_GPT4_MASK |
|
||||
OMAP24XX_AUTO_GPT3_MASK |
|
||||
OMAP24XX_AUTO_GPT2_MASK |
|
||||
OMAP2420_AUTO_VLYNQ_MASK |
|
||||
OMAP24XX_AUTO_DSS_MASK,
|
||||
CORE_MOD, CM_AUTOIDLE1);
|
||||
cm_write_mod_reg(OMAP24XX_AUTO_UART3 |
|
||||
OMAP24XX_AUTO_SSI |
|
||||
OMAP24XX_AUTO_USB,
|
||||
cm_write_mod_reg(OMAP24XX_AUTO_UART3_MASK |
|
||||
OMAP24XX_AUTO_SSI_MASK |
|
||||
OMAP24XX_AUTO_USB_MASK,
|
||||
CORE_MOD, CM_AUTOIDLE2);
|
||||
cm_write_mod_reg(OMAP24XX_AUTO_SDRC |
|
||||
OMAP24XX_AUTO_GPMC |
|
||||
OMAP24XX_AUTO_SDMA,
|
||||
cm_write_mod_reg(OMAP24XX_AUTO_SDRC_MASK |
|
||||
OMAP24XX_AUTO_GPMC_MASK |
|
||||
OMAP24XX_AUTO_SDMA_MASK,
|
||||
CORE_MOD, CM_AUTOIDLE3);
|
||||
cm_write_mod_reg(OMAP24XX_AUTO_PKA |
|
||||
OMAP24XX_AUTO_AES |
|
||||
OMAP24XX_AUTO_RNG |
|
||||
OMAP24XX_AUTO_SHA |
|
||||
OMAP24XX_AUTO_DES,
|
||||
cm_write_mod_reg(OMAP24XX_AUTO_PKA_MASK |
|
||||
OMAP24XX_AUTO_AES_MASK |
|
||||
OMAP24XX_AUTO_RNG_MASK |
|
||||
OMAP24XX_AUTO_SHA_MASK |
|
||||
OMAP24XX_AUTO_DES_MASK,
|
||||
CORE_MOD, OMAP24XX_CM_AUTOIDLE4);
|
||||
|
||||
cm_write_mod_reg(OMAP2420_AUTO_DSP_IPI, OMAP24XX_DSP_MOD, CM_AUTOIDLE);
|
||||
cm_write_mod_reg(OMAP2420_AUTO_DSP_IPI_MASK, OMAP24XX_DSP_MOD,
|
||||
CM_AUTOIDLE);
|
||||
|
||||
/* Put DPLL and both APLLs into autoidle mode */
|
||||
cm_write_mod_reg((0x03 << OMAP24XX_AUTO_DPLL_SHIFT) |
|
||||
@ -444,12 +446,12 @@ static void __init prcm_setup_regs(void)
|
||||
(0x03 << OMAP24XX_AUTO_54M_SHIFT),
|
||||
PLL_MOD, CM_AUTOIDLE);
|
||||
|
||||
cm_write_mod_reg(OMAP24XX_AUTO_OMAPCTRL |
|
||||
OMAP24XX_AUTO_WDT1 |
|
||||
OMAP24XX_AUTO_MPU_WDT |
|
||||
OMAP24XX_AUTO_GPIOS |
|
||||
OMAP24XX_AUTO_32KSYNC |
|
||||
OMAP24XX_AUTO_GPT1,
|
||||
cm_write_mod_reg(OMAP24XX_AUTO_OMAPCTRL_MASK |
|
||||
OMAP24XX_AUTO_WDT1_MASK |
|
||||
OMAP24XX_AUTO_MPU_WDT_MASK |
|
||||
OMAP24XX_AUTO_GPIOS_MASK |
|
||||
OMAP24XX_AUTO_32KSYNC_MASK |
|
||||
OMAP24XX_AUTO_GPT1_MASK,
|
||||
WKUP_MOD, CM_AUTOIDLE);
|
||||
|
||||
/* REVISIT: Configure number of 32 kHz clock cycles for sys_clk
|
||||
@ -460,15 +462,15 @@ static void __init prcm_setup_regs(void)
|
||||
/* Configure automatic voltage transition */
|
||||
prm_write_mod_reg(2 << OMAP_SETUP_TIME_SHIFT, OMAP24XX_GR_MOD,
|
||||
OMAP2_PRCM_VOLTSETUP_OFFSET);
|
||||
prm_write_mod_reg(OMAP24XX_AUTO_EXTVOLT |
|
||||
prm_write_mod_reg(OMAP24XX_AUTO_EXTVOLT_MASK |
|
||||
(0x1 << OMAP24XX_SETOFF_LEVEL_SHIFT) |
|
||||
OMAP24XX_MEMRETCTRL |
|
||||
OMAP24XX_MEMRETCTRL_MASK |
|
||||
(0x1 << OMAP24XX_SETRET_LEVEL_SHIFT) |
|
||||
(0x0 << OMAP24XX_VOLT_LEVEL_SHIFT),
|
||||
OMAP24XX_GR_MOD, OMAP2_PRCM_VOLTCTRL_OFFSET);
|
||||
|
||||
/* Enable wake-up events */
|
||||
prm_write_mod_reg(OMAP24XX_EN_GPIOS | OMAP24XX_EN_GPT1,
|
||||
prm_write_mod_reg(OMAP24XX_EN_GPIOS_MASK | OMAP24XX_EN_GPT1_MASK,
|
||||
WKUP_MOD, PM_WKEN);
|
||||
}
|
||||
|
||||
|
@ -58,6 +58,7 @@
|
||||
u32 enable_off_mode;
|
||||
u32 sleep_while_idle;
|
||||
u32 wakeup_timer_seconds;
|
||||
u32 wakeup_timer_milliseconds;
|
||||
|
||||
struct power_state {
|
||||
struct powerdomain *pwrdm;
|
||||
@ -93,19 +94,20 @@ static void omap3_enable_io_chain(void)
|
||||
int timeout = 0;
|
||||
|
||||
if (omap_rev() >= OMAP3430_REV_ES3_1) {
|
||||
prm_set_mod_reg_bits(OMAP3430_EN_IO_CHAIN, WKUP_MOD, PM_WKEN);
|
||||
prm_set_mod_reg_bits(OMAP3430_EN_IO_CHAIN_MASK, WKUP_MOD,
|
||||
PM_WKEN);
|
||||
/* Do a readback to assure write has been done */
|
||||
prm_read_mod_reg(WKUP_MOD, PM_WKEN);
|
||||
|
||||
while (!(prm_read_mod_reg(WKUP_MOD, PM_WKST) &
|
||||
OMAP3430_ST_IO_CHAIN)) {
|
||||
OMAP3430_ST_IO_CHAIN_MASK)) {
|
||||
timeout++;
|
||||
if (timeout > 1000) {
|
||||
printk(KERN_ERR "Wake up daisy chain "
|
||||
"activation failed.\n");
|
||||
return;
|
||||
}
|
||||
prm_set_mod_reg_bits(OMAP3430_ST_IO_CHAIN,
|
||||
prm_set_mod_reg_bits(OMAP3430_ST_IO_CHAIN_MASK,
|
||||
WKUP_MOD, PM_WKST);
|
||||
}
|
||||
}
|
||||
@ -114,7 +116,8 @@ static void omap3_enable_io_chain(void)
|
||||
static void omap3_disable_io_chain(void)
|
||||
{
|
||||
if (omap_rev() >= OMAP3430_REV_ES3_1)
|
||||
prm_clear_mod_reg_bits(OMAP3430_EN_IO_CHAIN, WKUP_MOD, PM_WKEN);
|
||||
prm_clear_mod_reg_bits(OMAP3430_EN_IO_CHAIN_MASK, WKUP_MOD,
|
||||
PM_WKEN);
|
||||
}
|
||||
|
||||
static void omap3_core_save_context(void)
|
||||
@ -267,14 +270,18 @@ static int _prcm_int_handle_wakeup(void)
|
||||
*/
|
||||
static irqreturn_t prcm_interrupt_handler (int irq, void *dev_id)
|
||||
{
|
||||
u32 irqstatus_mpu;
|
||||
u32 irqenable_mpu, irqstatus_mpu;
|
||||
int c = 0;
|
||||
|
||||
do {
|
||||
irqstatus_mpu = prm_read_mod_reg(OCP_MOD,
|
||||
OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
|
||||
irqenable_mpu = prm_read_mod_reg(OCP_MOD,
|
||||
OMAP3_PRM_IRQENABLE_MPU_OFFSET);
|
||||
irqstatus_mpu = prm_read_mod_reg(OCP_MOD,
|
||||
OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
|
||||
irqstatus_mpu &= irqenable_mpu;
|
||||
|
||||
if (irqstatus_mpu & (OMAP3430_WKUP_ST | OMAP3430_IO_ST)) {
|
||||
do {
|
||||
if (irqstatus_mpu & (OMAP3430_WKUP_ST_MASK |
|
||||
OMAP3430_IO_ST_MASK)) {
|
||||
c = _prcm_int_handle_wakeup();
|
||||
|
||||
/*
|
||||
@ -292,7 +299,11 @@ static irqreturn_t prcm_interrupt_handler (int irq, void *dev_id)
|
||||
prm_write_mod_reg(irqstatus_mpu, OCP_MOD,
|
||||
OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
|
||||
|
||||
} while (prm_read_mod_reg(OCP_MOD, OMAP3_PRM_IRQSTATUS_MPU_OFFSET));
|
||||
irqstatus_mpu = prm_read_mod_reg(OCP_MOD,
|
||||
OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
|
||||
irqstatus_mpu &= irqenable_mpu;
|
||||
|
||||
} while (irqstatus_mpu);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
@ -371,12 +382,19 @@ void omap_sram_idle(void)
|
||||
if (pwrdm_read_pwrst(neon_pwrdm) == PWRDM_POWER_ON)
|
||||
pwrdm_set_next_pwrst(neon_pwrdm, mpu_next_state);
|
||||
|
||||
/* PER */
|
||||
/* Enable IO-PAD and IO-CHAIN wakeups */
|
||||
per_next_state = pwrdm_read_next_pwrst(per_pwrdm);
|
||||
core_next_state = pwrdm_read_next_pwrst(core_pwrdm);
|
||||
if (per_next_state < PWRDM_POWER_ON ||
|
||||
core_next_state < PWRDM_POWER_ON) {
|
||||
prm_set_mod_reg_bits(OMAP3430_EN_IO_MASK, WKUP_MOD, PM_WKEN);
|
||||
omap3_enable_io_chain();
|
||||
}
|
||||
|
||||
/* PER */
|
||||
if (per_next_state < PWRDM_POWER_ON) {
|
||||
omap_uart_prepare_idle(2);
|
||||
omap2_gpio_prepare_for_retention();
|
||||
omap2_gpio_prepare_for_idle(per_next_state);
|
||||
if (per_next_state == PWRDM_POWER_OFF) {
|
||||
if (core_next_state == PWRDM_POWER_ON) {
|
||||
per_next_state = PWRDM_POWER_RET;
|
||||
@ -398,10 +416,8 @@ void omap_sram_idle(void)
|
||||
omap3_core_save_context();
|
||||
omap3_prcm_save_context();
|
||||
}
|
||||
/* Enable IO-PAD and IO-CHAIN wakeups */
|
||||
prm_set_mod_reg_bits(OMAP3430_EN_IO, WKUP_MOD, PM_WKEN);
|
||||
omap3_enable_io_chain();
|
||||
}
|
||||
|
||||
omap3_intc_prepare_idle();
|
||||
|
||||
/*
|
||||
@ -445,7 +461,7 @@ void omap_sram_idle(void)
|
||||
omap_uart_resume_idle(0);
|
||||
omap_uart_resume_idle(1);
|
||||
if (core_next_state == PWRDM_POWER_OFF)
|
||||
prm_clear_mod_reg_bits(OMAP3430_AUTO_OFF,
|
||||
prm_clear_mod_reg_bits(OMAP3430_AUTO_OFF_MASK,
|
||||
OMAP3430_GR_MOD,
|
||||
OMAP3_PRM_VOLTCTRL_OFFSET);
|
||||
}
|
||||
@ -454,9 +470,9 @@ void omap_sram_idle(void)
|
||||
/* PER */
|
||||
if (per_next_state < PWRDM_POWER_ON) {
|
||||
per_prev_state = pwrdm_read_prev_pwrst(per_pwrdm);
|
||||
omap2_gpio_resume_after_idle();
|
||||
if (per_prev_state == PWRDM_POWER_OFF)
|
||||
omap3_per_restore_context();
|
||||
omap2_gpio_resume_after_retention();
|
||||
omap_uart_resume_idle(2);
|
||||
if (per_state_modified)
|
||||
pwrdm_set_next_pwrst(per_pwrdm, PWRDM_POWER_OFF);
|
||||
@ -464,7 +480,7 @@ void omap_sram_idle(void)
|
||||
|
||||
/* Disable IO-PAD and IO-CHAIN wakeup */
|
||||
if (core_next_state < PWRDM_POWER_ON) {
|
||||
prm_clear_mod_reg_bits(OMAP3430_EN_IO, WKUP_MOD, PM_WKEN);
|
||||
prm_clear_mod_reg_bits(OMAP3430_EN_IO_MASK, WKUP_MOD, PM_WKEN);
|
||||
omap3_disable_io_chain();
|
||||
}
|
||||
|
||||
@ -548,20 +564,21 @@ out:
|
||||
#ifdef CONFIG_SUSPEND
|
||||
static suspend_state_t suspend_state;
|
||||
|
||||
static void omap2_pm_wakeup_on_timer(u32 seconds)
|
||||
static void omap2_pm_wakeup_on_timer(u32 seconds, u32 milliseconds)
|
||||
{
|
||||
u32 tick_rate, cycles;
|
||||
|
||||
if (!seconds)
|
||||
if (!seconds && !milliseconds)
|
||||
return;
|
||||
|
||||
tick_rate = clk_get_rate(omap_dm_timer_get_fclk(gptimer_wakeup));
|
||||
cycles = tick_rate * seconds;
|
||||
cycles = tick_rate * seconds + tick_rate * milliseconds / 1000;
|
||||
omap_dm_timer_stop(gptimer_wakeup);
|
||||
omap_dm_timer_set_load_start(gptimer_wakeup, 0, 0xffffffff - cycles);
|
||||
|
||||
pr_info("PM: Resume timer in %d secs (%d ticks at %d ticks/sec.)\n",
|
||||
seconds, cycles, tick_rate);
|
||||
pr_info("PM: Resume timer in %u.%03u secs"
|
||||
" (%d ticks at %d ticks/sec.)\n",
|
||||
seconds, milliseconds, cycles, tick_rate);
|
||||
}
|
||||
|
||||
static int omap3_pm_prepare(void)
|
||||
@ -575,8 +592,9 @@ static int omap3_pm_suspend(void)
|
||||
struct power_state *pwrst;
|
||||
int state, ret = 0;
|
||||
|
||||
if (wakeup_timer_seconds)
|
||||
omap2_pm_wakeup_on_timer(wakeup_timer_seconds);
|
||||
if (wakeup_timer_seconds || wakeup_timer_milliseconds)
|
||||
omap2_pm_wakeup_on_timer(wakeup_timer_seconds,
|
||||
wakeup_timer_milliseconds);
|
||||
|
||||
/* Read current next_pwrsts */
|
||||
list_for_each_entry(pwrst, &pwrst_list, node)
|
||||
@ -683,9 +701,9 @@ static void __init omap3_iva_idle(void)
|
||||
return;
|
||||
|
||||
/* Reset IVA2 */
|
||||
prm_write_mod_reg(OMAP3430_RST1_IVA2 |
|
||||
OMAP3430_RST2_IVA2 |
|
||||
OMAP3430_RST3_IVA2,
|
||||
prm_write_mod_reg(OMAP3430_RST1_IVA2_MASK |
|
||||
OMAP3430_RST2_IVA2_MASK |
|
||||
OMAP3430_RST3_IVA2_MASK,
|
||||
OMAP3430_IVA2_MOD, OMAP2_RM_RSTCTRL);
|
||||
|
||||
/* Enable IVA2 clock */
|
||||
@ -703,9 +721,9 @@ static void __init omap3_iva_idle(void)
|
||||
cm_write_mod_reg(0, OMAP3430_IVA2_MOD, CM_FCLKEN);
|
||||
|
||||
/* Reset IVA2 */
|
||||
prm_write_mod_reg(OMAP3430_RST1_IVA2 |
|
||||
OMAP3430_RST2_IVA2 |
|
||||
OMAP3430_RST3_IVA2,
|
||||
prm_write_mod_reg(OMAP3430_RST1_IVA2_MASK |
|
||||
OMAP3430_RST2_IVA2_MASK |
|
||||
OMAP3430_RST3_IVA2_MASK,
|
||||
OMAP3430_IVA2_MOD, OMAP2_RM_RSTCTRL);
|
||||
}
|
||||
|
||||
@ -727,8 +745,8 @@ static void __init omap3_d2d_idle(void)
|
||||
omap_ctrl_writew(padconf, OMAP3_PADCONF_SAD2D_IDLEACK);
|
||||
|
||||
/* reset modem */
|
||||
prm_write_mod_reg(OMAP3430_RM_RSTCTRL_CORE_MODEM_SW_RSTPWRON |
|
||||
OMAP3430_RM_RSTCTRL_CORE_MODEM_SW_RST,
|
||||
prm_write_mod_reg(OMAP3430_RM_RSTCTRL_CORE_MODEM_SW_RSTPWRON_MASK |
|
||||
OMAP3430_RM_RSTCTRL_CORE_MODEM_SW_RST_MASK,
|
||||
CORE_MOD, OMAP2_RM_RSTCTRL);
|
||||
prm_write_mod_reg(0, CORE_MOD, OMAP2_RM_RSTCTRL);
|
||||
}
|
||||
@ -754,102 +772,102 @@ static void __init prcm_setup_regs(void)
|
||||
* Note that in the long run this should be done by clockfw
|
||||
*/
|
||||
cm_write_mod_reg(
|
||||
OMAP3430_AUTO_MODEM |
|
||||
OMAP3430ES2_AUTO_MMC3 |
|
||||
OMAP3430ES2_AUTO_ICR |
|
||||
OMAP3430_AUTO_AES2 |
|
||||
OMAP3430_AUTO_SHA12 |
|
||||
OMAP3430_AUTO_DES2 |
|
||||
OMAP3430_AUTO_MMC2 |
|
||||
OMAP3430_AUTO_MMC1 |
|
||||
OMAP3430_AUTO_MSPRO |
|
||||
OMAP3430_AUTO_HDQ |
|
||||
OMAP3430_AUTO_MCSPI4 |
|
||||
OMAP3430_AUTO_MCSPI3 |
|
||||
OMAP3430_AUTO_MCSPI2 |
|
||||
OMAP3430_AUTO_MCSPI1 |
|
||||
OMAP3430_AUTO_I2C3 |
|
||||
OMAP3430_AUTO_I2C2 |
|
||||
OMAP3430_AUTO_I2C1 |
|
||||
OMAP3430_AUTO_UART2 |
|
||||
OMAP3430_AUTO_UART1 |
|
||||
OMAP3430_AUTO_GPT11 |
|
||||
OMAP3430_AUTO_GPT10 |
|
||||
OMAP3430_AUTO_MCBSP5 |
|
||||
OMAP3430_AUTO_MCBSP1 |
|
||||
OMAP3430ES1_AUTO_FAC | /* This is es1 only */
|
||||
OMAP3430_AUTO_MAILBOXES |
|
||||
OMAP3430_AUTO_OMAPCTRL |
|
||||
OMAP3430ES1_AUTO_FSHOSTUSB |
|
||||
OMAP3430_AUTO_HSOTGUSB |
|
||||
OMAP3430_AUTO_SAD2D |
|
||||
OMAP3430_AUTO_SSI,
|
||||
OMAP3430_AUTO_MODEM_MASK |
|
||||
OMAP3430ES2_AUTO_MMC3_MASK |
|
||||
OMAP3430ES2_AUTO_ICR_MASK |
|
||||
OMAP3430_AUTO_AES2_MASK |
|
||||
OMAP3430_AUTO_SHA12_MASK |
|
||||
OMAP3430_AUTO_DES2_MASK |
|
||||
OMAP3430_AUTO_MMC2_MASK |
|
||||
OMAP3430_AUTO_MMC1_MASK |
|
||||
OMAP3430_AUTO_MSPRO_MASK |
|
||||
OMAP3430_AUTO_HDQ_MASK |
|
||||
OMAP3430_AUTO_MCSPI4_MASK |
|
||||
OMAP3430_AUTO_MCSPI3_MASK |
|
||||
OMAP3430_AUTO_MCSPI2_MASK |
|
||||
OMAP3430_AUTO_MCSPI1_MASK |
|
||||
OMAP3430_AUTO_I2C3_MASK |
|
||||
OMAP3430_AUTO_I2C2_MASK |
|
||||
OMAP3430_AUTO_I2C1_MASK |
|
||||
OMAP3430_AUTO_UART2_MASK |
|
||||
OMAP3430_AUTO_UART1_MASK |
|
||||
OMAP3430_AUTO_GPT11_MASK |
|
||||
OMAP3430_AUTO_GPT10_MASK |
|
||||
OMAP3430_AUTO_MCBSP5_MASK |
|
||||
OMAP3430_AUTO_MCBSP1_MASK |
|
||||
OMAP3430ES1_AUTO_FAC_MASK | /* This is es1 only */
|
||||
OMAP3430_AUTO_MAILBOXES_MASK |
|
||||
OMAP3430_AUTO_OMAPCTRL_MASK |
|
||||
OMAP3430ES1_AUTO_FSHOSTUSB_MASK |
|
||||
OMAP3430_AUTO_HSOTGUSB_MASK |
|
||||
OMAP3430_AUTO_SAD2D_MASK |
|
||||
OMAP3430_AUTO_SSI_MASK,
|
||||
CORE_MOD, CM_AUTOIDLE1);
|
||||
|
||||
cm_write_mod_reg(
|
||||
OMAP3430_AUTO_PKA |
|
||||
OMAP3430_AUTO_AES1 |
|
||||
OMAP3430_AUTO_RNG |
|
||||
OMAP3430_AUTO_SHA11 |
|
||||
OMAP3430_AUTO_DES1,
|
||||
OMAP3430_AUTO_PKA_MASK |
|
||||
OMAP3430_AUTO_AES1_MASK |
|
||||
OMAP3430_AUTO_RNG_MASK |
|
||||
OMAP3430_AUTO_SHA11_MASK |
|
||||
OMAP3430_AUTO_DES1_MASK,
|
||||
CORE_MOD, CM_AUTOIDLE2);
|
||||
|
||||
if (omap_rev() > OMAP3430_REV_ES1_0) {
|
||||
cm_write_mod_reg(
|
||||
OMAP3430_AUTO_MAD2D |
|
||||
OMAP3430ES2_AUTO_USBTLL,
|
||||
OMAP3430_AUTO_MAD2D_MASK |
|
||||
OMAP3430ES2_AUTO_USBTLL_MASK,
|
||||
CORE_MOD, CM_AUTOIDLE3);
|
||||
}
|
||||
|
||||
cm_write_mod_reg(
|
||||
OMAP3430_AUTO_WDT2 |
|
||||
OMAP3430_AUTO_WDT1 |
|
||||
OMAP3430_AUTO_GPIO1 |
|
||||
OMAP3430_AUTO_32KSYNC |
|
||||
OMAP3430_AUTO_GPT12 |
|
||||
OMAP3430_AUTO_GPT1 ,
|
||||
OMAP3430_AUTO_WDT2_MASK |
|
||||
OMAP3430_AUTO_WDT1_MASK |
|
||||
OMAP3430_AUTO_GPIO1_MASK |
|
||||
OMAP3430_AUTO_32KSYNC_MASK |
|
||||
OMAP3430_AUTO_GPT12_MASK |
|
||||
OMAP3430_AUTO_GPT1_MASK,
|
||||
WKUP_MOD, CM_AUTOIDLE);
|
||||
|
||||
cm_write_mod_reg(
|
||||
OMAP3430_AUTO_DSS,
|
||||
OMAP3430_AUTO_DSS_MASK,
|
||||
OMAP3430_DSS_MOD,
|
||||
CM_AUTOIDLE);
|
||||
|
||||
cm_write_mod_reg(
|
||||
OMAP3430_AUTO_CAM,
|
||||
OMAP3430_AUTO_CAM_MASK,
|
||||
OMAP3430_CAM_MOD,
|
||||
CM_AUTOIDLE);
|
||||
|
||||
cm_write_mod_reg(
|
||||
OMAP3430_AUTO_GPIO6 |
|
||||
OMAP3430_AUTO_GPIO5 |
|
||||
OMAP3430_AUTO_GPIO4 |
|
||||
OMAP3430_AUTO_GPIO3 |
|
||||
OMAP3430_AUTO_GPIO2 |
|
||||
OMAP3430_AUTO_WDT3 |
|
||||
OMAP3430_AUTO_UART3 |
|
||||
OMAP3430_AUTO_GPT9 |
|
||||
OMAP3430_AUTO_GPT8 |
|
||||
OMAP3430_AUTO_GPT7 |
|
||||
OMAP3430_AUTO_GPT6 |
|
||||
OMAP3430_AUTO_GPT5 |
|
||||
OMAP3430_AUTO_GPT4 |
|
||||
OMAP3430_AUTO_GPT3 |
|
||||
OMAP3430_AUTO_GPT2 |
|
||||
OMAP3430_AUTO_MCBSP4 |
|
||||
OMAP3430_AUTO_MCBSP3 |
|
||||
OMAP3430_AUTO_MCBSP2,
|
||||
OMAP3430_AUTO_GPIO6_MASK |
|
||||
OMAP3430_AUTO_GPIO5_MASK |
|
||||
OMAP3430_AUTO_GPIO4_MASK |
|
||||
OMAP3430_AUTO_GPIO3_MASK |
|
||||
OMAP3430_AUTO_GPIO2_MASK |
|
||||
OMAP3430_AUTO_WDT3_MASK |
|
||||
OMAP3430_AUTO_UART3_MASK |
|
||||
OMAP3430_AUTO_GPT9_MASK |
|
||||
OMAP3430_AUTO_GPT8_MASK |
|
||||
OMAP3430_AUTO_GPT7_MASK |
|
||||
OMAP3430_AUTO_GPT6_MASK |
|
||||
OMAP3430_AUTO_GPT5_MASK |
|
||||
OMAP3430_AUTO_GPT4_MASK |
|
||||
OMAP3430_AUTO_GPT3_MASK |
|
||||
OMAP3430_AUTO_GPT2_MASK |
|
||||
OMAP3430_AUTO_MCBSP4_MASK |
|
||||
OMAP3430_AUTO_MCBSP3_MASK |
|
||||
OMAP3430_AUTO_MCBSP2_MASK,
|
||||
OMAP3430_PER_MOD,
|
||||
CM_AUTOIDLE);
|
||||
|
||||
if (omap_rev() > OMAP3430_REV_ES1_0) {
|
||||
cm_write_mod_reg(
|
||||
OMAP3430ES2_AUTO_USBHOST,
|
||||
OMAP3430ES2_AUTO_USBHOST_MASK,
|
||||
OMAP3430ES2_USBHOST_MOD,
|
||||
CM_AUTOIDLE);
|
||||
}
|
||||
|
||||
omap_ctrl_writel(OMAP3430_AUTOIDLE, OMAP2_CONTROL_SYSCONFIG);
|
||||
omap_ctrl_writel(OMAP3430_AUTOIDLE_MASK, OMAP2_CONTROL_SYSCONFIG);
|
||||
|
||||
/*
|
||||
* Set all plls to autoidle. This is needed until autoidle is
|
||||
@ -879,35 +897,40 @@ static void __init prcm_setup_regs(void)
|
||||
OMAP3_PRM_CLKSRC_CTRL_OFFSET);
|
||||
|
||||
/* setup wakup source */
|
||||
prm_write_mod_reg(OMAP3430_EN_IO | OMAP3430_EN_GPIO1 |
|
||||
OMAP3430_EN_GPT1 | OMAP3430_EN_GPT12,
|
||||
prm_write_mod_reg(OMAP3430_EN_IO_MASK | OMAP3430_EN_GPIO1_MASK |
|
||||
OMAP3430_EN_GPT1_MASK | OMAP3430_EN_GPT12_MASK,
|
||||
WKUP_MOD, PM_WKEN);
|
||||
/* No need to write EN_IO, that is always enabled */
|
||||
prm_write_mod_reg(OMAP3430_EN_GPIO1 | OMAP3430_EN_GPT1 |
|
||||
OMAP3430_EN_GPT12,
|
||||
prm_write_mod_reg(OMAP3430_GRPSEL_GPIO1_MASK |
|
||||
OMAP3430_GRPSEL_GPT1_MASK |
|
||||
OMAP3430_GRPSEL_GPT12_MASK,
|
||||
WKUP_MOD, OMAP3430_PM_MPUGRPSEL);
|
||||
/* For some reason IO doesn't generate wakeup event even if
|
||||
* it is selected to mpu wakeup goup */
|
||||
prm_write_mod_reg(OMAP3430_IO_EN | OMAP3430_WKUP_EN,
|
||||
prm_write_mod_reg(OMAP3430_IO_EN_MASK | OMAP3430_WKUP_EN_MASK,
|
||||
OCP_MOD, OMAP3_PRM_IRQENABLE_MPU_OFFSET);
|
||||
|
||||
/* Enable PM_WKEN to support DSS LPR */
|
||||
prm_write_mod_reg(OMAP3430_PM_WKEN_DSS_EN_DSS,
|
||||
prm_write_mod_reg(OMAP3430_PM_WKEN_DSS_EN_DSS_MASK,
|
||||
OMAP3430_DSS_MOD, PM_WKEN);
|
||||
|
||||
/* Enable wakeups in PER */
|
||||
prm_write_mod_reg(OMAP3430_EN_GPIO2 | OMAP3430_EN_GPIO3 |
|
||||
OMAP3430_EN_GPIO4 | OMAP3430_EN_GPIO5 |
|
||||
OMAP3430_EN_GPIO6 | OMAP3430_EN_UART3 |
|
||||
OMAP3430_EN_MCBSP2 | OMAP3430_EN_MCBSP3 |
|
||||
OMAP3430_EN_MCBSP4,
|
||||
prm_write_mod_reg(OMAP3430_EN_GPIO2_MASK | OMAP3430_EN_GPIO3_MASK |
|
||||
OMAP3430_EN_GPIO4_MASK | OMAP3430_EN_GPIO5_MASK |
|
||||
OMAP3430_EN_GPIO6_MASK | OMAP3430_EN_UART3_MASK |
|
||||
OMAP3430_EN_MCBSP2_MASK | OMAP3430_EN_MCBSP3_MASK |
|
||||
OMAP3430_EN_MCBSP4_MASK,
|
||||
OMAP3430_PER_MOD, PM_WKEN);
|
||||
/* and allow them to wake up MPU */
|
||||
prm_write_mod_reg(OMAP3430_GRPSEL_GPIO2 | OMAP3430_EN_GPIO3 |
|
||||
OMAP3430_GRPSEL_GPIO4 | OMAP3430_EN_GPIO5 |
|
||||
OMAP3430_GRPSEL_GPIO6 | OMAP3430_EN_UART3 |
|
||||
OMAP3430_EN_MCBSP2 | OMAP3430_EN_MCBSP3 |
|
||||
OMAP3430_EN_MCBSP4,
|
||||
prm_write_mod_reg(OMAP3430_GRPSEL_GPIO2_MASK |
|
||||
OMAP3430_GRPSEL_GPIO3_MASK |
|
||||
OMAP3430_GRPSEL_GPIO4_MASK |
|
||||
OMAP3430_GRPSEL_GPIO5_MASK |
|
||||
OMAP3430_GRPSEL_GPIO6_MASK |
|
||||
OMAP3430_GRPSEL_UART3_MASK |
|
||||
OMAP3430_GRPSEL_MCBSP2_MASK |
|
||||
OMAP3430_GRPSEL_MCBSP3_MASK |
|
||||
OMAP3430_GRPSEL_MCBSP4_MASK,
|
||||
OMAP3430_PER_MOD, OMAP3430_PM_MPUGRPSEL);
|
||||
|
||||
/* Don't attach IVA interrupts */
|
||||
@ -1080,14 +1103,6 @@ static int __init omap3_pm_init(void)
|
||||
omap3_idle_init();
|
||||
|
||||
clkdm_add_wkdep(neon_clkdm, mpu_clkdm);
|
||||
/*
|
||||
* REVISIT: This wkdep is only necessary when GPIO2-6 are enabled for
|
||||
* IO-pad wakeup. Otherwise it will unnecessarily waste power
|
||||
* waking up PER with every CORE wakeup - see
|
||||
* http://marc.info/?l=linux-omap&m=121852150710062&w=2
|
||||
*/
|
||||
clkdm_add_wkdep(per_clkdm, core_clkdm);
|
||||
|
||||
if (omap_type() != OMAP2_DEVICE_TYPE_GP) {
|
||||
omap3_secure_ram_storage =
|
||||
kmalloc(0x803F, GFP_KERNEL);
|
||||
|
@ -5,8 +5,8 @@
|
||||
* Copyright (C) 2007-2009 Nokia Corporation
|
||||
*
|
||||
* Written by Paul Walmsley
|
||||
*
|
||||
* Added OMAP4 specific support by Abhijit Pagare <abhijitpagare@ti.com>
|
||||
* State counting code by Tero Kristo <tero.kristo@nokia.com>
|
||||
*
|
||||
* 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
|
||||
@ -64,10 +64,10 @@ static u16 pwrstst_reg_offs;
|
||||
#define OMAP_MEM4_ONSTATE_MASK OMAP4430_OCP_NRET_BANK_ONSTATE_MASK
|
||||
|
||||
/* OMAP3 and OMAP4 Memory Retstate Masks (common across all power domains) */
|
||||
#define OMAP_MEM0_RETSTATE_MASK OMAP3430_SHAREDL1CACHEFLATRETSTATE
|
||||
#define OMAP_MEM1_RETSTATE_MASK OMAP3430_L1FLATMEMRETSTATE
|
||||
#define OMAP_MEM2_RETSTATE_MASK OMAP3430_SHAREDL2CACHEFLATRETSTATE
|
||||
#define OMAP_MEM3_RETSTATE_MASK OMAP3430_L2FLATMEMRETSTATE
|
||||
#define OMAP_MEM0_RETSTATE_MASK OMAP3430_SHAREDL1CACHEFLATRETSTATE_MASK
|
||||
#define OMAP_MEM1_RETSTATE_MASK OMAP3430_L1FLATMEMRETSTATE_MASK
|
||||
#define OMAP_MEM2_RETSTATE_MASK OMAP3430_SHAREDL2CACHEFLATRETSTATE_MASK
|
||||
#define OMAP_MEM3_RETSTATE_MASK OMAP3430_L2FLATMEMRETSTATE_MASK
|
||||
#define OMAP_MEM4_RETSTATE_MASK OMAP4430_OCP_NRET_BANK_RETSTATE_MASK
|
||||
|
||||
/* OMAP3 and OMAP4 Memory Status bits */
|
||||
@ -511,6 +511,8 @@ int pwrdm_read_prev_pwrst(struct powerdomain *pwrdm)
|
||||
*/
|
||||
int pwrdm_set_logic_retst(struct powerdomain *pwrdm, u8 pwrst)
|
||||
{
|
||||
u32 v;
|
||||
|
||||
if (!pwrdm)
|
||||
return -EINVAL;
|
||||
|
||||
@ -526,9 +528,9 @@ int pwrdm_set_logic_retst(struct powerdomain *pwrdm, u8 pwrst)
|
||||
* but the type of value returned is the same for each
|
||||
* powerdomain.
|
||||
*/
|
||||
prm_rmw_mod_reg_bits(OMAP3430_LOGICL1CACHERETSTATE,
|
||||
(pwrst << __ffs(OMAP3430_LOGICL1CACHERETSTATE)),
|
||||
pwrdm->prcm_offs, pwrstctrl_reg_offs);
|
||||
v = pwrst << __ffs(OMAP3430_LOGICL1CACHERETSTATE_MASK);
|
||||
prm_rmw_mod_reg_bits(OMAP3430_LOGICL1CACHERETSTATE_MASK, v,
|
||||
pwrdm->prcm_offs, pwrstctrl_reg_offs);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -676,8 +678,8 @@ int pwrdm_read_logic_pwrst(struct powerdomain *pwrdm)
|
||||
if (!pwrdm)
|
||||
return -EINVAL;
|
||||
|
||||
return prm_read_mod_bits_shift(pwrdm->prcm_offs,
|
||||
pwrstst_reg_offs, OMAP3430_LOGICSTATEST);
|
||||
return prm_read_mod_bits_shift(pwrdm->prcm_offs, pwrstst_reg_offs,
|
||||
OMAP3430_LOGICSTATEST_MASK);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -700,7 +702,7 @@ int pwrdm_read_prev_logic_pwrst(struct powerdomain *pwrdm)
|
||||
* powerdomain.
|
||||
*/
|
||||
return prm_read_mod_bits_shift(pwrdm->prcm_offs, OMAP3430_PM_PREPWSTST,
|
||||
OMAP3430_LASTLOGICSTATEENTERED);
|
||||
OMAP3430_LASTLOGICSTATEENTERED_MASK);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -723,7 +725,7 @@ int pwrdm_read_logic_retst(struct powerdomain *pwrdm)
|
||||
* powerdomain.
|
||||
*/
|
||||
return prm_read_mod_bits_shift(pwrdm->prcm_offs, pwrstctrl_reg_offs,
|
||||
OMAP3430_LOGICSTATEST);
|
||||
OMAP3430_LOGICSTATEST_MASK);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -977,6 +979,34 @@ bool pwrdm_has_hdwr_sar(struct powerdomain *pwrdm)
|
||||
return (pwrdm && pwrdm->flags & PWRDM_HAS_HDWR_SAR) ? 1 : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* pwrdm_set_lowpwrstchange - Request a low power state change
|
||||
* @pwrdm: struct powerdomain *
|
||||
*
|
||||
* Allows a powerdomain to transtion to a lower power sleep state
|
||||
* from an existing sleep state without waking up the powerdomain.
|
||||
* Returns -EINVAL if the powerdomain pointer is null or if the
|
||||
* powerdomain does not support LOWPOWERSTATECHANGE, or returns 0
|
||||
* upon success.
|
||||
*/
|
||||
int pwrdm_set_lowpwrstchange(struct powerdomain *pwrdm)
|
||||
{
|
||||
if (!pwrdm)
|
||||
return -EINVAL;
|
||||
|
||||
if (!(pwrdm->flags & PWRDM_HAS_LOWPOWERSTATECHANGE))
|
||||
return -EINVAL;
|
||||
|
||||
pr_debug("powerdomain: %s: setting LOWPOWERSTATECHANGE bit\n",
|
||||
pwrdm->name);
|
||||
|
||||
prm_rmw_mod_reg_bits(OMAP4430_LOWPOWERSTATECHANGE_MASK,
|
||||
(1 << OMAP4430_LOWPOWERSTATECHANGE_SHIFT),
|
||||
pwrdm->prcm_offs, pwrstctrl_reg_offs);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* pwrdm_wait_transition - wait for powerdomain power transition to finish
|
||||
* @pwrdm: struct powerdomain * to wait for
|
||||
@ -1002,7 +1032,7 @@ int pwrdm_wait_transition(struct powerdomain *pwrdm)
|
||||
|
||||
/* XXX Is this udelay() value meaningful? */
|
||||
while ((prm_read_mod_reg(pwrdm->prcm_offs, pwrstst_reg_offs) &
|
||||
OMAP_INTRANSITION) &&
|
||||
OMAP_INTRANSITION_MASK) &&
|
||||
(c++ < PWRDM_TRANSITION_BAILOUT))
|
||||
udelay(1);
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
/*
|
||||
* OMAP4 Power domains framework
|
||||
*
|
||||
* Copyright (C) 2009 Texas Instruments, Inc.
|
||||
* Copyright (C) 2009 Nokia Corporation
|
||||
* Copyright (C) 2009-2010 Texas Instruments, Inc.
|
||||
* Copyright (C) 2009-2010 Nokia Corporation
|
||||
*
|
||||
* Abhijit Pagare (abhijitpagare@ti.com)
|
||||
* Benoit Cousson (b-cousson@ti.com)
|
||||
* Paul Walmsley
|
||||
* Paul Walmsley (paul@pwsan.com)
|
||||
*
|
||||
* This file is automatically generated from the OMAP hardware databases.
|
||||
* We respectfully ask that any modifications to this file be coordinated
|
||||
@ -54,6 +54,7 @@ static struct powerdomain core_44xx_pwrdm = {
|
||||
[3] = PWRDM_POWER_ON, /* ducati_l2ram */
|
||||
[4] = PWRDM_POWER_ON, /* ducati_unicache */
|
||||
},
|
||||
.flags = PWRDM_HAS_LOWPOWERSTATECHANGE,
|
||||
};
|
||||
|
||||
/* gfx_44xx_pwrdm: 3D accelerator power domain */
|
||||
@ -69,6 +70,7 @@ static struct powerdomain gfx_44xx_pwrdm = {
|
||||
.pwrsts_mem_on = {
|
||||
[0] = PWRDM_POWER_ON, /* gfx_mem */
|
||||
},
|
||||
.flags = PWRDM_HAS_LOWPOWERSTATECHANGE,
|
||||
};
|
||||
|
||||
/* abe_44xx_pwrdm: Audio back end power domain */
|
||||
@ -87,6 +89,7 @@ static struct powerdomain abe_44xx_pwrdm = {
|
||||
[0] = PWRDM_POWER_ON, /* aessmem */
|
||||
[1] = PWRDM_POWER_ON, /* periphmem */
|
||||
},
|
||||
.flags = PWRDM_HAS_LOWPOWERSTATECHANGE,
|
||||
};
|
||||
|
||||
/* dss_44xx_pwrdm: Display subsystem power domain */
|
||||
@ -103,6 +106,7 @@ static struct powerdomain dss_44xx_pwrdm = {
|
||||
.pwrsts_mem_on = {
|
||||
[0] = PWRDM_POWER_ON, /* dss_mem */
|
||||
},
|
||||
.flags = PWRDM_HAS_LOWPOWERSTATECHANGE,
|
||||
};
|
||||
|
||||
/* tesla_44xx_pwrdm: Tesla processor power domain */
|
||||
@ -123,6 +127,7 @@ static struct powerdomain tesla_44xx_pwrdm = {
|
||||
[1] = PWRDM_POWER_ON, /* tesla_l1 */
|
||||
[2] = PWRDM_POWER_ON, /* tesla_l2 */
|
||||
},
|
||||
.flags = PWRDM_HAS_LOWPOWERSTATECHANGE,
|
||||
};
|
||||
|
||||
/* wkup_44xx_pwrdm: Wake-up power domain */
|
||||
@ -130,7 +135,7 @@ static struct powerdomain wkup_44xx_pwrdm = {
|
||||
.name = "wkup_pwrdm",
|
||||
.prcm_offs = OMAP4430_PRM_WKUP_MOD,
|
||||
.omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
|
||||
.pwrsts = PWRDM_POWER_ON,
|
||||
.pwrsts = PWRSTS_ON,
|
||||
.banks = 1,
|
||||
.pwrsts_mem_ret = {
|
||||
[0] = PWRDM_POWER_OFF, /* wkup_bank */
|
||||
@ -143,7 +148,7 @@ static struct powerdomain wkup_44xx_pwrdm = {
|
||||
/* cpu0_44xx_pwrdm: MPU0 processor and Neon coprocessor power domain */
|
||||
static struct powerdomain cpu0_44xx_pwrdm = {
|
||||
.name = "cpu0_pwrdm",
|
||||
.prcm_offs = OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD,
|
||||
.prcm_offs = OMAP4430_PRCM_MPU_CPU0_MOD,
|
||||
.omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
|
||||
.pwrsts = PWRSTS_OFF_RET_ON,
|
||||
.pwrsts_logic_ret = PWRSTS_OFF_RET,
|
||||
@ -159,7 +164,7 @@ static struct powerdomain cpu0_44xx_pwrdm = {
|
||||
/* cpu1_44xx_pwrdm: MPU1 processor and Neon coprocessor power domain */
|
||||
static struct powerdomain cpu1_44xx_pwrdm = {
|
||||
.name = "cpu1_pwrdm",
|
||||
.prcm_offs = OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD,
|
||||
.prcm_offs = OMAP4430_PRCM_MPU_CPU1_MOD,
|
||||
.omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
|
||||
.pwrsts = PWRSTS_OFF_RET_ON,
|
||||
.pwrsts_logic_ret = PWRSTS_OFF_RET,
|
||||
@ -227,6 +232,7 @@ static struct powerdomain ivahd_44xx_pwrdm = {
|
||||
[2] = PWRDM_POWER_ON, /* tcm1_mem */
|
||||
[3] = PWRDM_POWER_ON, /* tcm2_mem */
|
||||
},
|
||||
.flags = PWRDM_HAS_LOWPOWERSTATECHANGE,
|
||||
};
|
||||
|
||||
/* cam_44xx_pwrdm: Camera subsystem power domain */
|
||||
@ -242,6 +248,7 @@ static struct powerdomain cam_44xx_pwrdm = {
|
||||
.pwrsts_mem_on = {
|
||||
[0] = PWRDM_POWER_ON, /* cam_mem */
|
||||
},
|
||||
.flags = PWRDM_HAS_LOWPOWERSTATECHANGE,
|
||||
};
|
||||
|
||||
/* l3init_44xx_pwrdm: L3 initators pheripherals power domain */
|
||||
@ -258,6 +265,7 @@ static struct powerdomain l3init_44xx_pwrdm = {
|
||||
.pwrsts_mem_on = {
|
||||
[0] = PWRDM_POWER_ON, /* l3init_bank1 */
|
||||
},
|
||||
.flags = PWRDM_HAS_LOWPOWERSTATECHANGE,
|
||||
};
|
||||
|
||||
/* l4per_44xx_pwrdm: Target peripherals power domain */
|
||||
@ -276,6 +284,7 @@ static struct powerdomain l4per_44xx_pwrdm = {
|
||||
[0] = PWRDM_POWER_ON, /* nonretained_bank */
|
||||
[1] = PWRDM_POWER_ON, /* retained_bank */
|
||||
},
|
||||
.flags = PWRDM_HAS_LOWPOWERSTATECHANGE,
|
||||
};
|
||||
|
||||
/*
|
||||
@ -286,7 +295,7 @@ static struct powerdomain always_on_core_44xx_pwrdm = {
|
||||
.name = "always_on_core_pwrdm",
|
||||
.prcm_offs = OMAP4430_PRM_ALWAYS_ON_MOD,
|
||||
.omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
|
||||
.pwrsts = PWRDM_POWER_ON,
|
||||
.pwrsts = PWRSTS_ON,
|
||||
};
|
||||
|
||||
/* cefuse_44xx_pwrdm: Customer efuse controller power domain */
|
||||
|
@ -112,83 +112,75 @@
|
||||
|
||||
#define OMAP4430_SCRM_SCRM_MOD 0x0000
|
||||
|
||||
/* CHIRONSS instances */
|
||||
/* PRCM_MPU instances */
|
||||
|
||||
#define OMAP4430_CHIRONSS_CHIRONSS_OCP_SOCKET_PRCM_MOD 0x0000
|
||||
#define OMAP4430_CHIRONSS_CHIRONSS_DEVICE_PRM_MOD 0x0200
|
||||
#define OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD 0x0400
|
||||
#define OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD 0x0800
|
||||
|
||||
/* Base Addresses for the OMAP4 */
|
||||
|
||||
#define OMAP4430_CM1_BASE 0x4a004000
|
||||
#define OMAP4430_CM2_BASE 0x4a008000
|
||||
#define OMAP4430_PRM_BASE 0x4a306000
|
||||
#define OMAP4430_SCRM_BASE 0x4a30a000
|
||||
#define OMAP4430_CHIRONSS_BASE 0x48243000
|
||||
#define OMAP4430_PRCM_MPU_OCP_SOCKET_PRCM_MOD 0x0000
|
||||
#define OMAP4430_PRCM_MPU_DEVICE_PRM_MOD 0x0200
|
||||
#define OMAP4430_PRCM_MPU_CPU0_MOD 0x0400
|
||||
#define OMAP4430_PRCM_MPU_CPU1_MOD 0x0800
|
||||
|
||||
|
||||
/* 24XX register bits shared between CM & PRM registers */
|
||||
|
||||
/* CM_FCLKEN1_CORE, CM_ICLKEN1_CORE, PM_WKEN1_CORE shared bits */
|
||||
#define OMAP2420_EN_MMC_SHIFT 26
|
||||
#define OMAP2420_EN_MMC (1 << 26)
|
||||
#define OMAP2420_EN_MMC_MASK (1 << 26)
|
||||
#define OMAP24XX_EN_UART2_SHIFT 22
|
||||
#define OMAP24XX_EN_UART2 (1 << 22)
|
||||
#define OMAP24XX_EN_UART2_MASK (1 << 22)
|
||||
#define OMAP24XX_EN_UART1_SHIFT 21
|
||||
#define OMAP24XX_EN_UART1 (1 << 21)
|
||||
#define OMAP24XX_EN_UART1_MASK (1 << 21)
|
||||
#define OMAP24XX_EN_MCSPI2_SHIFT 18
|
||||
#define OMAP24XX_EN_MCSPI2 (1 << 18)
|
||||
#define OMAP24XX_EN_MCSPI2_MASK (1 << 18)
|
||||
#define OMAP24XX_EN_MCSPI1_SHIFT 17
|
||||
#define OMAP24XX_EN_MCSPI1 (1 << 17)
|
||||
#define OMAP24XX_EN_MCSPI1_MASK (1 << 17)
|
||||
#define OMAP24XX_EN_MCBSP2_SHIFT 16
|
||||
#define OMAP24XX_EN_MCBSP2 (1 << 16)
|
||||
#define OMAP24XX_EN_MCBSP2_MASK (1 << 16)
|
||||
#define OMAP24XX_EN_MCBSP1_SHIFT 15
|
||||
#define OMAP24XX_EN_MCBSP1 (1 << 15)
|
||||
#define OMAP24XX_EN_MCBSP1_MASK (1 << 15)
|
||||
#define OMAP24XX_EN_GPT12_SHIFT 14
|
||||
#define OMAP24XX_EN_GPT12 (1 << 14)
|
||||
#define OMAP24XX_EN_GPT12_MASK (1 << 14)
|
||||
#define OMAP24XX_EN_GPT11_SHIFT 13
|
||||
#define OMAP24XX_EN_GPT11 (1 << 13)
|
||||
#define OMAP24XX_EN_GPT11_MASK (1 << 13)
|
||||
#define OMAP24XX_EN_GPT10_SHIFT 12
|
||||
#define OMAP24XX_EN_GPT10 (1 << 12)
|
||||
#define OMAP24XX_EN_GPT10_MASK (1 << 12)
|
||||
#define OMAP24XX_EN_GPT9_SHIFT 11
|
||||
#define OMAP24XX_EN_GPT9 (1 << 11)
|
||||
#define OMAP24XX_EN_GPT9_MASK (1 << 11)
|
||||
#define OMAP24XX_EN_GPT8_SHIFT 10
|
||||
#define OMAP24XX_EN_GPT8 (1 << 10)
|
||||
#define OMAP24XX_EN_GPT8_MASK (1 << 10)
|
||||
#define OMAP24XX_EN_GPT7_SHIFT 9
|
||||
#define OMAP24XX_EN_GPT7 (1 << 9)
|
||||
#define OMAP24XX_EN_GPT7_MASK (1 << 9)
|
||||
#define OMAP24XX_EN_GPT6_SHIFT 8
|
||||
#define OMAP24XX_EN_GPT6 (1 << 8)
|
||||
#define OMAP24XX_EN_GPT6_MASK (1 << 8)
|
||||
#define OMAP24XX_EN_GPT5_SHIFT 7
|
||||
#define OMAP24XX_EN_GPT5 (1 << 7)
|
||||
#define OMAP24XX_EN_GPT5_MASK (1 << 7)
|
||||
#define OMAP24XX_EN_GPT4_SHIFT 6
|
||||
#define OMAP24XX_EN_GPT4 (1 << 6)
|
||||
#define OMAP24XX_EN_GPT4_MASK (1 << 6)
|
||||
#define OMAP24XX_EN_GPT3_SHIFT 5
|
||||
#define OMAP24XX_EN_GPT3 (1 << 5)
|
||||
#define OMAP24XX_EN_GPT3_MASK (1 << 5)
|
||||
#define OMAP24XX_EN_GPT2_SHIFT 4
|
||||
#define OMAP24XX_EN_GPT2 (1 << 4)
|
||||
#define OMAP24XX_EN_GPT2_MASK (1 << 4)
|
||||
#define OMAP2420_EN_VLYNQ_SHIFT 3
|
||||
#define OMAP2420_EN_VLYNQ (1 << 3)
|
||||
#define OMAP2420_EN_VLYNQ_MASK (1 << 3)
|
||||
|
||||
/* CM_FCLKEN2_CORE, CM_ICLKEN2_CORE, PM_WKEN2_CORE shared bits */
|
||||
#define OMAP2430_EN_GPIO5_SHIFT 10
|
||||
#define OMAP2430_EN_GPIO5 (1 << 10)
|
||||
#define OMAP2430_EN_GPIO5_MASK (1 << 10)
|
||||
#define OMAP2430_EN_MCSPI3_SHIFT 9
|
||||
#define OMAP2430_EN_MCSPI3 (1 << 9)
|
||||
#define OMAP2430_EN_MCSPI3_MASK (1 << 9)
|
||||
#define OMAP2430_EN_MMCHS2_SHIFT 8
|
||||
#define OMAP2430_EN_MMCHS2 (1 << 8)
|
||||
#define OMAP2430_EN_MMCHS2_MASK (1 << 8)
|
||||
#define OMAP2430_EN_MMCHS1_SHIFT 7
|
||||
#define OMAP2430_EN_MMCHS1 (1 << 7)
|
||||
#define OMAP2430_EN_MMCHS1_MASK (1 << 7)
|
||||
#define OMAP24XX_EN_UART3_SHIFT 2
|
||||
#define OMAP24XX_EN_UART3 (1 << 2)
|
||||
#define OMAP24XX_EN_UART3_MASK (1 << 2)
|
||||
#define OMAP24XX_EN_USB_SHIFT 0
|
||||
#define OMAP24XX_EN_USB (1 << 0)
|
||||
#define OMAP24XX_EN_USB_MASK (1 << 0)
|
||||
|
||||
/* CM_ICLKEN2_CORE, PM_WKEN2_CORE shared bits */
|
||||
#define OMAP2430_EN_MDM_INTC_SHIFT 11
|
||||
#define OMAP2430_EN_MDM_INTC (1 << 11)
|
||||
#define OMAP2430_EN_MDM_INTC_MASK (1 << 11)
|
||||
#define OMAP2430_EN_USBHS_SHIFT 6
|
||||
#define OMAP2430_EN_USBHS (1 << 6)
|
||||
#define OMAP2430_EN_USBHS_MASK (1 << 6)
|
||||
|
||||
/* CM_IDLEST1_CORE, PM_WKST1_CORE shared bits */
|
||||
#define OMAP2420_ST_MMC_SHIFT 26
|
||||
@ -246,9 +238,9 @@
|
||||
|
||||
/* CM_FCLKEN_WKUP, CM_ICLKEN_WKUP, PM_WKEN_WKUP shared bits */
|
||||
#define OMAP24XX_EN_GPIOS_SHIFT 2
|
||||
#define OMAP24XX_EN_GPIOS (1 << 2)
|
||||
#define OMAP24XX_EN_GPIOS_MASK (1 << 2)
|
||||
#define OMAP24XX_EN_GPT1_SHIFT 0
|
||||
#define OMAP24XX_EN_GPT1 (1 << 0)
|
||||
#define OMAP24XX_EN_GPT1_MASK (1 << 0)
|
||||
|
||||
/* PM_WKST_WKUP, CM_IDLEST_WKUP shared bits */
|
||||
#define OMAP24XX_ST_GPIOS_SHIFT (1 << 2)
|
||||
@ -267,47 +259,47 @@
|
||||
#define OMAP3430_REV_MASK (0xff << 0)
|
||||
|
||||
/* CM_SYSCONFIG, PRM_SYSCONFIG shared bits */
|
||||
#define OMAP3430_AUTOIDLE (1 << 0)
|
||||
#define OMAP3430_AUTOIDLE_MASK (1 << 0)
|
||||
|
||||
/* CM_FCLKEN1_CORE, CM_ICLKEN1_CORE, PM_WKEN1_CORE shared bits */
|
||||
#define OMAP3430_EN_MMC2 (1 << 25)
|
||||
#define OMAP3430_EN_MMC2_MASK (1 << 25)
|
||||
#define OMAP3430_EN_MMC2_SHIFT 25
|
||||
#define OMAP3430_EN_MMC1 (1 << 24)
|
||||
#define OMAP3430_EN_MMC1_MASK (1 << 24)
|
||||
#define OMAP3430_EN_MMC1_SHIFT 24
|
||||
#define OMAP3430_EN_MCSPI4 (1 << 21)
|
||||
#define OMAP3430_EN_MCSPI4_MASK (1 << 21)
|
||||
#define OMAP3430_EN_MCSPI4_SHIFT 21
|
||||
#define OMAP3430_EN_MCSPI3 (1 << 20)
|
||||
#define OMAP3430_EN_MCSPI3_MASK (1 << 20)
|
||||
#define OMAP3430_EN_MCSPI3_SHIFT 20
|
||||
#define OMAP3430_EN_MCSPI2 (1 << 19)
|
||||
#define OMAP3430_EN_MCSPI2_MASK (1 << 19)
|
||||
#define OMAP3430_EN_MCSPI2_SHIFT 19
|
||||
#define OMAP3430_EN_MCSPI1 (1 << 18)
|
||||
#define OMAP3430_EN_MCSPI1_MASK (1 << 18)
|
||||
#define OMAP3430_EN_MCSPI1_SHIFT 18
|
||||
#define OMAP3430_EN_I2C3 (1 << 17)
|
||||
#define OMAP3430_EN_I2C3_MASK (1 << 17)
|
||||
#define OMAP3430_EN_I2C3_SHIFT 17
|
||||
#define OMAP3430_EN_I2C2 (1 << 16)
|
||||
#define OMAP3430_EN_I2C2_MASK (1 << 16)
|
||||
#define OMAP3430_EN_I2C2_SHIFT 16
|
||||
#define OMAP3430_EN_I2C1 (1 << 15)
|
||||
#define OMAP3430_EN_I2C1_MASK (1 << 15)
|
||||
#define OMAP3430_EN_I2C1_SHIFT 15
|
||||
#define OMAP3430_EN_UART2 (1 << 14)
|
||||
#define OMAP3430_EN_UART2_MASK (1 << 14)
|
||||
#define OMAP3430_EN_UART2_SHIFT 14
|
||||
#define OMAP3430_EN_UART1 (1 << 13)
|
||||
#define OMAP3430_EN_UART1_MASK (1 << 13)
|
||||
#define OMAP3430_EN_UART1_SHIFT 13
|
||||
#define OMAP3430_EN_GPT11 (1 << 12)
|
||||
#define OMAP3430_EN_GPT11_MASK (1 << 12)
|
||||
#define OMAP3430_EN_GPT11_SHIFT 12
|
||||
#define OMAP3430_EN_GPT10 (1 << 11)
|
||||
#define OMAP3430_EN_GPT10_MASK (1 << 11)
|
||||
#define OMAP3430_EN_GPT10_SHIFT 11
|
||||
#define OMAP3430_EN_MCBSP5 (1 << 10)
|
||||
#define OMAP3430_EN_MCBSP5_MASK (1 << 10)
|
||||
#define OMAP3430_EN_MCBSP5_SHIFT 10
|
||||
#define OMAP3430_EN_MCBSP1 (1 << 9)
|
||||
#define OMAP3430_EN_MCBSP1_MASK (1 << 9)
|
||||
#define OMAP3430_EN_MCBSP1_SHIFT 9
|
||||
#define OMAP3430_EN_FSHOSTUSB (1 << 5)
|
||||
#define OMAP3430_EN_FSHOSTUSB_MASK (1 << 5)
|
||||
#define OMAP3430_EN_FSHOSTUSB_SHIFT 5
|
||||
#define OMAP3430_EN_D2D (1 << 3)
|
||||
#define OMAP3430_EN_D2D_MASK (1 << 3)
|
||||
#define OMAP3430_EN_D2D_SHIFT 3
|
||||
|
||||
/* CM_ICLKEN1_CORE, PM_WKEN1_CORE shared bits */
|
||||
#define OMAP3430_EN_HSOTGUSB (1 << 4)
|
||||
#define OMAP3430_EN_HSOTGUSB_SHIFT 4
|
||||
#define OMAP3430_EN_HSOTGUSB_MASK (1 << 4)
|
||||
#define OMAP3430_EN_HSOTGUSB_SHIFT 4
|
||||
|
||||
/* PM_WKST1_CORE, CM_IDLEST1_CORE shared bits */
|
||||
#define OMAP3430_ST_MMC2_SHIFT 25
|
||||
@ -352,21 +344,21 @@
|
||||
#define OMAP3430_ST_D2D_MASK (1 << 3)
|
||||
|
||||
/* CM_FCLKEN_WKUP, CM_ICLKEN_WKUP, PM_WKEN_WKUP shared bits */
|
||||
#define OMAP3430_EN_GPIO1 (1 << 3)
|
||||
#define OMAP3430_EN_GPIO1_MASK (1 << 3)
|
||||
#define OMAP3430_EN_GPIO1_SHIFT 3
|
||||
#define OMAP3430_EN_GPT12 (1 << 1)
|
||||
#define OMAP3430_EN_GPT12_MASK (1 << 1)
|
||||
#define OMAP3430_EN_GPT12_SHIFT 1
|
||||
#define OMAP3430_EN_GPT1 (1 << 0)
|
||||
#define OMAP3430_EN_GPT1_MASK (1 << 0)
|
||||
#define OMAP3430_EN_GPT1_SHIFT 0
|
||||
|
||||
/* CM_FCLKEN_WKUP, PM_WKEN_WKUP shared bits */
|
||||
#define OMAP3430_EN_SR2 (1 << 7)
|
||||
#define OMAP3430_EN_SR2_MASK (1 << 7)
|
||||
#define OMAP3430_EN_SR2_SHIFT 7
|
||||
#define OMAP3430_EN_SR1 (1 << 6)
|
||||
#define OMAP3430_EN_SR1_MASK (1 << 6)
|
||||
#define OMAP3430_EN_SR1_SHIFT 6
|
||||
|
||||
/* CM_ICLKEN_WKUP, PM_WKEN_WKUP shared bits */
|
||||
#define OMAP3430_EN_GPT12 (1 << 1)
|
||||
#define OMAP3430_EN_GPT12_MASK (1 << 1)
|
||||
#define OMAP3430_EN_GPT12_SHIFT 1
|
||||
|
||||
/* CM_IDLEST_WKUP, PM_WKST_WKUP shared bits */
|
||||
@ -386,47 +378,47 @@
|
||||
* CM_SLEEPDEP_PER, PM_WKDEP_IVA2, PM_WKDEP_GFX,
|
||||
* PM_WKDEP_DSS, PM_WKDEP_CAM, PM_WKDEP_PER, PM_WKDEP_NEON shared bits
|
||||
*/
|
||||
#define OMAP3430_EN_MPU (1 << 1)
|
||||
#define OMAP3430_EN_MPU_MASK (1 << 1)
|
||||
#define OMAP3430_EN_MPU_SHIFT 1
|
||||
|
||||
/* CM_FCLKEN_PER, CM_ICLKEN_PER, PM_WKEN_PER shared bits */
|
||||
#define OMAP3430_EN_GPIO6 (1 << 17)
|
||||
#define OMAP3430_EN_GPIO6_MASK (1 << 17)
|
||||
#define OMAP3430_EN_GPIO6_SHIFT 17
|
||||
#define OMAP3430_EN_GPIO5 (1 << 16)
|
||||
#define OMAP3430_EN_GPIO5_MASK (1 << 16)
|
||||
#define OMAP3430_EN_GPIO5_SHIFT 16
|
||||
#define OMAP3430_EN_GPIO4 (1 << 15)
|
||||
#define OMAP3430_EN_GPIO4_MASK (1 << 15)
|
||||
#define OMAP3430_EN_GPIO4_SHIFT 15
|
||||
#define OMAP3430_EN_GPIO3 (1 << 14)
|
||||
#define OMAP3430_EN_GPIO3_MASK (1 << 14)
|
||||
#define OMAP3430_EN_GPIO3_SHIFT 14
|
||||
#define OMAP3430_EN_GPIO2 (1 << 13)
|
||||
#define OMAP3430_EN_GPIO2_MASK (1 << 13)
|
||||
#define OMAP3430_EN_GPIO2_SHIFT 13
|
||||
#define OMAP3430_EN_UART3 (1 << 11)
|
||||
#define OMAP3430_EN_UART3_MASK (1 << 11)
|
||||
#define OMAP3430_EN_UART3_SHIFT 11
|
||||
#define OMAP3430_EN_GPT9 (1 << 10)
|
||||
#define OMAP3430_EN_GPT9_MASK (1 << 10)
|
||||
#define OMAP3430_EN_GPT9_SHIFT 10
|
||||
#define OMAP3430_EN_GPT8 (1 << 9)
|
||||
#define OMAP3430_EN_GPT8_MASK (1 << 9)
|
||||
#define OMAP3430_EN_GPT8_SHIFT 9
|
||||
#define OMAP3430_EN_GPT7 (1 << 8)
|
||||
#define OMAP3430_EN_GPT7_MASK (1 << 8)
|
||||
#define OMAP3430_EN_GPT7_SHIFT 8
|
||||
#define OMAP3430_EN_GPT6 (1 << 7)
|
||||
#define OMAP3430_EN_GPT6_MASK (1 << 7)
|
||||
#define OMAP3430_EN_GPT6_SHIFT 7
|
||||
#define OMAP3430_EN_GPT5 (1 << 6)
|
||||
#define OMAP3430_EN_GPT5_MASK (1 << 6)
|
||||
#define OMAP3430_EN_GPT5_SHIFT 6
|
||||
#define OMAP3430_EN_GPT4 (1 << 5)
|
||||
#define OMAP3430_EN_GPT4_MASK (1 << 5)
|
||||
#define OMAP3430_EN_GPT4_SHIFT 5
|
||||
#define OMAP3430_EN_GPT3 (1 << 4)
|
||||
#define OMAP3430_EN_GPT3_MASK (1 << 4)
|
||||
#define OMAP3430_EN_GPT3_SHIFT 4
|
||||
#define OMAP3430_EN_GPT2 (1 << 3)
|
||||
#define OMAP3430_EN_GPT2_MASK (1 << 3)
|
||||
#define OMAP3430_EN_GPT2_SHIFT 3
|
||||
|
||||
/* CM_FCLKEN_PER, CM_ICLKEN_PER, PM_WKEN_PER, PM_WKST_PER shared bits */
|
||||
/* XXX Possible TI documentation bug: should the PM_WKST_PER EN_* bits
|
||||
* be ST_* bits instead? */
|
||||
#define OMAP3430_EN_MCBSP4 (1 << 2)
|
||||
#define OMAP3430_EN_MCBSP4_MASK (1 << 2)
|
||||
#define OMAP3430_EN_MCBSP4_SHIFT 2
|
||||
#define OMAP3430_EN_MCBSP3 (1 << 1)
|
||||
#define OMAP3430_EN_MCBSP3_MASK (1 << 1)
|
||||
#define OMAP3430_EN_MCBSP3_SHIFT 1
|
||||
#define OMAP3430_EN_MCBSP2 (1 << 0)
|
||||
#define OMAP3430_EN_MCBSP2_MASK (1 << 0)
|
||||
#define OMAP3430_EN_MCBSP2_SHIFT 0
|
||||
|
||||
/* CM_IDLEST_PER, PM_WKST_PER shared bits */
|
||||
|
@ -158,10 +158,10 @@ void omap_prcm_arch_reset(char mode, const char *cmd)
|
||||
WARN_ON(1);
|
||||
|
||||
if (cpu_is_omap24xx() || cpu_is_omap34xx())
|
||||
prm_set_mod_reg_bits(OMAP_RST_DPLL3, prcm_offs,
|
||||
prm_set_mod_reg_bits(OMAP_RST_DPLL3_MASK, prcm_offs,
|
||||
OMAP2_RM_RSTCTRL);
|
||||
if (cpu_is_omap44xx())
|
||||
prm_set_mod_reg_bits(OMAP_RST_DPLL3, prcm_offs,
|
||||
prm_set_mod_reg_bits(OMAP_RST_DPLL3_MASK, prcm_offs,
|
||||
OMAP4_RM_RSTCTRL);
|
||||
}
|
||||
|
||||
|
@ -19,14 +19,14 @@
|
||||
/* Bits shared between registers */
|
||||
|
||||
/* PRCM_IRQSTATUS_MPU, PM_IRQSTATUS_DSP, PRCM_IRQSTATUS_IVA shared bits */
|
||||
#define OMAP24XX_VOLTTRANS_ST (1 << 2)
|
||||
#define OMAP24XX_WKUP2_ST (1 << 1)
|
||||
#define OMAP24XX_WKUP1_ST (1 << 0)
|
||||
#define OMAP24XX_VOLTTRANS_ST_MASK (1 << 2)
|
||||
#define OMAP24XX_WKUP2_ST_MASK (1 << 1)
|
||||
#define OMAP24XX_WKUP1_ST_MASK (1 << 0)
|
||||
|
||||
/* PRCM_IRQENABLE_MPU, PM_IRQENABLE_DSP, PRCM_IRQENABLE_IVA shared bits */
|
||||
#define OMAP24XX_VOLTTRANS_EN (1 << 2)
|
||||
#define OMAP24XX_WKUP2_EN (1 << 1)
|
||||
#define OMAP24XX_WKUP1_EN (1 << 0)
|
||||
#define OMAP24XX_VOLTTRANS_EN_MASK (1 << 2)
|
||||
#define OMAP24XX_WKUP2_EN_MASK (1 << 1)
|
||||
#define OMAP24XX_WKUP1_EN_MASK (1 << 0)
|
||||
|
||||
/* PM_WKDEP_GFX, PM_WKDEP_MPU, PM_WKDEP_DSP, PM_WKDEP_MDM shared bits */
|
||||
#define OMAP24XX_EN_MPU_SHIFT 1
|
||||
@ -40,16 +40,16 @@
|
||||
*/
|
||||
#define OMAP24XX_MEMONSTATE_SHIFT 10
|
||||
#define OMAP24XX_MEMONSTATE_MASK (0x3 << 10)
|
||||
#define OMAP24XX_MEMRETSTATE (1 << 3)
|
||||
#define OMAP24XX_MEMRETSTATE_MASK (1 << 3)
|
||||
|
||||
/* PM_PWSTCTRL_GFX, PM_PWSTCTRL_DSP, PM_PWSTCTRL_MDM shared bits */
|
||||
#define OMAP24XX_FORCESTATE (1 << 18)
|
||||
#define OMAP24XX_FORCESTATE_MASK (1 << 18)
|
||||
|
||||
/*
|
||||
* PM_PWSTST_CORE, PM_PWSTST_GFX, PM_PWSTST_MPU, PM_PWSTST_DSP,
|
||||
* PM_PWSTST_MDM shared bits
|
||||
*/
|
||||
#define OMAP24XX_CLKACTIVITY (1 << 19)
|
||||
#define OMAP24XX_CLKACTIVITY_MASK (1 << 19)
|
||||
|
||||
/* PM_PWSTST_MPU, PM_PWSTST_CORE, PM_PWSTST_DSP shared bits */
|
||||
#define OMAP24XX_LASTSTATEENTERED_SHIFT 4
|
||||
@ -71,26 +71,26 @@
|
||||
#define OMAP24XX_REV_MASK (0xff << 0)
|
||||
|
||||
/* PRCM_SYSCONFIG */
|
||||
#define OMAP24XX_AUTOIDLE (1 << 0)
|
||||
#define OMAP24XX_AUTOIDLE_MASK (1 << 0)
|
||||
|
||||
/* PRCM_IRQSTATUS_MPU specific bits */
|
||||
#define OMAP2430_DPLL_RECAL_ST (1 << 6)
|
||||
#define OMAP24XX_TRANSITION_ST (1 << 5)
|
||||
#define OMAP24XX_EVGENOFF_ST (1 << 4)
|
||||
#define OMAP24XX_EVGENON_ST (1 << 3)
|
||||
#define OMAP2430_DPLL_RECAL_ST_MASK (1 << 6)
|
||||
#define OMAP24XX_TRANSITION_ST_MASK (1 << 5)
|
||||
#define OMAP24XX_EVGENOFF_ST_MASK (1 << 4)
|
||||
#define OMAP24XX_EVGENON_ST_MASK (1 << 3)
|
||||
|
||||
/* PRCM_IRQENABLE_MPU specific bits */
|
||||
#define OMAP2430_DPLL_RECAL_EN (1 << 6)
|
||||
#define OMAP24XX_TRANSITION_EN (1 << 5)
|
||||
#define OMAP24XX_EVGENOFF_EN (1 << 4)
|
||||
#define OMAP24XX_EVGENON_EN (1 << 3)
|
||||
#define OMAP2430_DPLL_RECAL_EN_MASK (1 << 6)
|
||||
#define OMAP24XX_TRANSITION_EN_MASK (1 << 5)
|
||||
#define OMAP24XX_EVGENOFF_EN_MASK (1 << 4)
|
||||
#define OMAP24XX_EVGENON_EN_MASK (1 << 3)
|
||||
|
||||
/* PRCM_VOLTCTRL */
|
||||
#define OMAP24XX_AUTO_EXTVOLT (1 << 15)
|
||||
#define OMAP24XX_FORCE_EXTVOLT (1 << 14)
|
||||
#define OMAP24XX_AUTO_EXTVOLT_MASK (1 << 15)
|
||||
#define OMAP24XX_FORCE_EXTVOLT_MASK (1 << 14)
|
||||
#define OMAP24XX_SETOFF_LEVEL_SHIFT 12
|
||||
#define OMAP24XX_SETOFF_LEVEL_MASK (0x3 << 12)
|
||||
#define OMAP24XX_MEMRETCTRL (1 << 8)
|
||||
#define OMAP24XX_MEMRETCTRL_MASK (1 << 8)
|
||||
#define OMAP24XX_SETRET_LEVEL_SHIFT 6
|
||||
#define OMAP24XX_SETRET_LEVEL_MASK (0x3 << 6)
|
||||
#define OMAP24XX_VOLT_LEVEL_SHIFT 0
|
||||
@ -104,13 +104,13 @@
|
||||
|
||||
/* PRCM_CLKOUT_CTRL */
|
||||
#define OMAP2420_CLKOUT2_EN_SHIFT 15
|
||||
#define OMAP2420_CLKOUT2_EN (1 << 15)
|
||||
#define OMAP2420_CLKOUT2_EN_MASK (1 << 15)
|
||||
#define OMAP2420_CLKOUT2_DIV_SHIFT 11
|
||||
#define OMAP2420_CLKOUT2_DIV_MASK (0x7 << 11)
|
||||
#define OMAP2420_CLKOUT2_SOURCE_SHIFT 8
|
||||
#define OMAP2420_CLKOUT2_SOURCE_MASK (0x3 << 8)
|
||||
#define OMAP24XX_CLKOUT_EN_SHIFT 7
|
||||
#define OMAP24XX_CLKOUT_EN (1 << 7)
|
||||
#define OMAP24XX_CLKOUT_EN_MASK (1 << 7)
|
||||
#define OMAP24XX_CLKOUT_DIV_SHIFT 3
|
||||
#define OMAP24XX_CLKOUT_DIV_MASK (0x7 << 3)
|
||||
#define OMAP24XX_CLKOUT_SOURCE_SHIFT 0
|
||||
@ -118,25 +118,25 @@
|
||||
|
||||
/* PRCM_CLKEMUL_CTRL */
|
||||
#define OMAP24XX_EMULATION_EN_SHIFT 0
|
||||
#define OMAP24XX_EMULATION_EN (1 << 0)
|
||||
#define OMAP24XX_EMULATION_EN_MASK (1 << 0)
|
||||
|
||||
/* PRCM_CLKCFG_CTRL */
|
||||
#define OMAP24XX_VALID_CONFIG (1 << 0)
|
||||
#define OMAP24XX_VALID_CONFIG_MASK (1 << 0)
|
||||
|
||||
/* PRCM_CLKCFG_STATUS */
|
||||
#define OMAP24XX_CONFIG_STATUS (1 << 0)
|
||||
#define OMAP24XX_CONFIG_STATUS_MASK (1 << 0)
|
||||
|
||||
/* PRCM_VOLTSETUP specific bits */
|
||||
|
||||
/* PRCM_CLKSSETUP specific bits */
|
||||
|
||||
/* PRCM_POLCTRL */
|
||||
#define OMAP2420_CLKOUT2_POL (1 << 10)
|
||||
#define OMAP24XX_CLKOUT_POL (1 << 9)
|
||||
#define OMAP24XX_CLKREQ_POL (1 << 8)
|
||||
#define OMAP2430_USE_POWEROK (1 << 2)
|
||||
#define OMAP2430_POWEROK_POL (1 << 1)
|
||||
#define OMAP24XX_EXTVOL_POL (1 << 0)
|
||||
#define OMAP2420_CLKOUT2_POL_MASK (1 << 10)
|
||||
#define OMAP24XX_CLKOUT_POL_MASK (1 << 9)
|
||||
#define OMAP24XX_CLKREQ_POL_MASK (1 << 8)
|
||||
#define OMAP2430_USE_POWEROK_MASK (1 << 2)
|
||||
#define OMAP2430_POWEROK_POL_MASK (1 << 1)
|
||||
#define OMAP24XX_EXTVOL_POL_MASK (1 << 0)
|
||||
|
||||
/* RM_RSTST_MPU specific bits */
|
||||
/* 2430 calls GLOBALWMPU_RST "GLOBALWARM_RST" instead */
|
||||
@ -154,7 +154,7 @@
|
||||
/* PM_EVEGENOFFTIM_MPU specific bits */
|
||||
|
||||
/* PM_PWSTCTRL_MPU specific bits */
|
||||
#define OMAP2430_FORCESTATE (1 << 18)
|
||||
#define OMAP2430_FORCESTATE_MASK (1 << 18)
|
||||
|
||||
/* PM_PWSTST_MPU specific bits */
|
||||
/* INTRANSITION, CLKACTIVITY, POWERSTATE, MEMSTATEST are 2430 only */
|
||||
@ -168,21 +168,21 @@
|
||||
/* PM_WKST2_CORE specific bits */
|
||||
|
||||
/* PM_WKDEP_CORE specific bits*/
|
||||
#define OMAP2430_PM_WKDEP_CORE_EN_MDM (1 << 5)
|
||||
#define OMAP24XX_PM_WKDEP_CORE_EN_GFX (1 << 3)
|
||||
#define OMAP24XX_PM_WKDEP_CORE_EN_DSP (1 << 2)
|
||||
#define OMAP2430_PM_WKDEP_CORE_EN_MDM_MASK (1 << 5)
|
||||
#define OMAP24XX_PM_WKDEP_CORE_EN_GFX_MASK (1 << 3)
|
||||
#define OMAP24XX_PM_WKDEP_CORE_EN_DSP_MASK (1 << 2)
|
||||
|
||||
/* PM_PWSTCTRL_CORE specific bits */
|
||||
#define OMAP24XX_MEMORYCHANGE (1 << 20)
|
||||
#define OMAP24XX_MEMORYCHANGE_MASK (1 << 20)
|
||||
#define OMAP24XX_MEM3ONSTATE_SHIFT 14
|
||||
#define OMAP24XX_MEM3ONSTATE_MASK (0x3 << 14)
|
||||
#define OMAP24XX_MEM2ONSTATE_SHIFT 12
|
||||
#define OMAP24XX_MEM2ONSTATE_MASK (0x3 << 12)
|
||||
#define OMAP24XX_MEM1ONSTATE_SHIFT 10
|
||||
#define OMAP24XX_MEM1ONSTATE_MASK (0x3 << 10)
|
||||
#define OMAP24XX_MEM3RETSTATE (1 << 5)
|
||||
#define OMAP24XX_MEM2RETSTATE (1 << 4)
|
||||
#define OMAP24XX_MEM1RETSTATE (1 << 3)
|
||||
#define OMAP24XX_MEM3RETSTATE_MASK (1 << 5)
|
||||
#define OMAP24XX_MEM2RETSTATE_MASK (1 << 4)
|
||||
#define OMAP24XX_MEM1RETSTATE_MASK (1 << 3)
|
||||
|
||||
/* PM_PWSTST_CORE specific bits */
|
||||
#define OMAP24XX_MEM3STATEST_SHIFT 14
|
||||
@ -193,10 +193,10 @@
|
||||
#define OMAP24XX_MEM1STATEST_MASK (0x3 << 10)
|
||||
|
||||
/* RM_RSTCTRL_GFX */
|
||||
#define OMAP24XX_GFX_RST (1 << 0)
|
||||
#define OMAP24XX_GFX_RST_MASK (1 << 0)
|
||||
|
||||
/* RM_RSTST_GFX specific bits */
|
||||
#define OMAP24XX_GFX_SW_RST (1 << 4)
|
||||
#define OMAP24XX_GFX_SW_RST_MASK (1 << 4)
|
||||
|
||||
/* PM_PWSTCTRL_GFX specific bits */
|
||||
|
||||
@ -209,25 +209,25 @@
|
||||
|
||||
/* RM_RSTST_WKUP specific bits */
|
||||
/* 2430 calls EXTWMPU_RST "EXTWARM_RST" and GLOBALWMPU_RST "GLOBALWARM_RST" */
|
||||
#define OMAP24XX_EXTWMPU_RST (1 << 6)
|
||||
#define OMAP24XX_SECU_WD_RST (1 << 5)
|
||||
#define OMAP24XX_MPU_WD_RST (1 << 4)
|
||||
#define OMAP24XX_SECU_VIOL_RST (1 << 3)
|
||||
#define OMAP24XX_EXTWMPU_RST_MASK (1 << 6)
|
||||
#define OMAP24XX_SECU_WD_RST_MASK (1 << 5)
|
||||
#define OMAP24XX_MPU_WD_RST_MASK (1 << 4)
|
||||
#define OMAP24XX_SECU_VIOL_RST_MASK (1 << 3)
|
||||
|
||||
/* PM_WKEN_WKUP specific bits */
|
||||
|
||||
/* PM_WKST_WKUP specific bits */
|
||||
|
||||
/* RM_RSTCTRL_DSP */
|
||||
#define OMAP2420_RST_IVA (1 << 8)
|
||||
#define OMAP24XX_RST2_DSP (1 << 1)
|
||||
#define OMAP24XX_RST1_DSP (1 << 0)
|
||||
#define OMAP2420_RST_IVA_MASK (1 << 8)
|
||||
#define OMAP24XX_RST2_DSP_MASK (1 << 1)
|
||||
#define OMAP24XX_RST1_DSP_MASK (1 << 0)
|
||||
|
||||
/* RM_RSTST_DSP specific bits */
|
||||
/* 2430 calls GLOBALWMPU_RST "GLOBALWARM_RST" */
|
||||
#define OMAP2420_IVA_SW_RST (1 << 8)
|
||||
#define OMAP24XX_DSP_SW_RST2 (1 << 5)
|
||||
#define OMAP24XX_DSP_SW_RST1 (1 << 4)
|
||||
#define OMAP2420_IVA_SW_RST_MASK (1 << 8)
|
||||
#define OMAP24XX_DSP_SW_RST2_MASK (1 << 5)
|
||||
#define OMAP24XX_DSP_SW_RST1_MASK (1 << 4)
|
||||
|
||||
/* PM_WKDEP_DSP specific bits */
|
||||
|
||||
@ -235,7 +235,7 @@
|
||||
/* 2430 only: MEMONSTATE, MEMRETSTATE */
|
||||
#define OMAP2420_MEMIONSTATE_SHIFT 12
|
||||
#define OMAP2420_MEMIONSTATE_MASK (0x3 << 12)
|
||||
#define OMAP2420_MEMIRETSTATE (1 << 4)
|
||||
#define OMAP2420_MEMIRETSTATE_MASK (1 << 4)
|
||||
|
||||
/* PM_PWSTST_DSP specific bits */
|
||||
/* MEMSTATEST is 2430 only */
|
||||
@ -248,18 +248,18 @@
|
||||
|
||||
/* RM_RSTCTRL_MDM */
|
||||
/* 2430 only */
|
||||
#define OMAP2430_PWRON1_MDM (1 << 1)
|
||||
#define OMAP2430_RST1_MDM (1 << 0)
|
||||
#define OMAP2430_PWRON1_MDM_MASK (1 << 1)
|
||||
#define OMAP2430_RST1_MDM_MASK (1 << 0)
|
||||
|
||||
/* RM_RSTST_MDM specific bits */
|
||||
/* 2430 only */
|
||||
#define OMAP2430_MDM_SECU_VIOL (1 << 6)
|
||||
#define OMAP2430_MDM_SW_PWRON1 (1 << 5)
|
||||
#define OMAP2430_MDM_SW_RST1 (1 << 4)
|
||||
#define OMAP2430_MDM_SECU_VIOL_MASK (1 << 6)
|
||||
#define OMAP2430_MDM_SW_PWRON1_MASK (1 << 5)
|
||||
#define OMAP2430_MDM_SW_RST1_MASK (1 << 4)
|
||||
|
||||
/* PM_WKEN_MDM */
|
||||
/* 2430 only */
|
||||
#define OMAP2430_PM_WKEN_MDM_EN_MDM (1 << 0)
|
||||
#define OMAP2430_PM_WKEN_MDM_EN_MDM_MASK (1 << 0)
|
||||
|
||||
/* PM_WKST_MDM specific bits */
|
||||
/* 2430 only */
|
||||
@ -269,7 +269,7 @@
|
||||
|
||||
/* PM_PWSTCTRL_MDM specific bits */
|
||||
/* 2430 only */
|
||||
#define OMAP2430_KILLDOMAINWKUP (1 << 19)
|
||||
#define OMAP2430_KILLDOMAINWKUP_MASK (1 << 19)
|
||||
|
||||
/* PM_PWSTST_MDM specific bits */
|
||||
/* 2430 only */
|
||||
|
@ -35,10 +35,10 @@
|
||||
#define OMAP3430_ERRORGAIN_MASK (0xff << 16)
|
||||
#define OMAP3430_INITVOLTAGE_SHIFT 8
|
||||
#define OMAP3430_INITVOLTAGE_MASK (0xff << 8)
|
||||
#define OMAP3430_TIMEOUTEN (1 << 3)
|
||||
#define OMAP3430_INITVDD (1 << 2)
|
||||
#define OMAP3430_FORCEUPDATE (1 << 1)
|
||||
#define OMAP3430_VPENABLE (1 << 0)
|
||||
#define OMAP3430_TIMEOUTEN_MASK (1 << 3)
|
||||
#define OMAP3430_INITVDD_MASK (1 << 2)
|
||||
#define OMAP3430_FORCEUPDATE_MASK (1 << 1)
|
||||
#define OMAP3430_VPENABLE_MASK (1 << 0)
|
||||
|
||||
/* PRM_VP1_VSTEPMIN, PRM_VP2_VSTEPMIN shared bits */
|
||||
#define OMAP3430_SMPSWAITTIMEMIN_SHIFT 8
|
||||
@ -65,53 +65,53 @@
|
||||
#define OMAP3430_VPVOLTAGE_MASK (0xff << 0)
|
||||
|
||||
/* PRM_VP1_STATUS, PRM_VP2_STATUS shared bits */
|
||||
#define OMAP3430_VPINIDLE (1 << 0)
|
||||
#define OMAP3430_VPINIDLE_MASK (1 << 0)
|
||||
|
||||
/* PM_WKDEP_IVA2, PM_WKDEP_MPU shared bits */
|
||||
#define OMAP3430_EN_PER_SHIFT 7
|
||||
#define OMAP3430_EN_PER_MASK (1 << 7)
|
||||
|
||||
/* PM_PWSTCTRL_IVA2, PM_PWSTCTRL_MPU, PM_PWSTCTRL_CORE shared bits */
|
||||
#define OMAP3430_MEMORYCHANGE (1 << 3)
|
||||
#define OMAP3430_MEMORYCHANGE_MASK (1 << 3)
|
||||
|
||||
/* PM_PWSTST_IVA2, PM_PWSTST_CORE shared bits */
|
||||
#define OMAP3430_LOGICSTATEST (1 << 2)
|
||||
#define OMAP3430_LOGICSTATEST_MASK (1 << 2)
|
||||
|
||||
/* PM_PREPWSTST_IVA2, PM_PREPWSTST_CORE shared bits */
|
||||
#define OMAP3430_LASTLOGICSTATEENTERED (1 << 2)
|
||||
#define OMAP3430_LASTLOGICSTATEENTERED_MASK (1 << 2)
|
||||
|
||||
/*
|
||||
* PM_PREPWSTST_IVA2, PM_PREPWSTST_MPU, PM_PREPWSTST_CORE,
|
||||
* PM_PREPWSTST_GFX, PM_PREPWSTST_DSS, PM_PREPWSTST_CAM,
|
||||
* PM_PREPWSTST_PER, PM_PREPWSTST_NEON shared bits
|
||||
*/
|
||||
#define OMAP3430_LASTPOWERSTATEENTERED_SHIFT 0
|
||||
#define OMAP3430_LASTPOWERSTATEENTERED_MASK (0x3 << 0)
|
||||
#define OMAP3430_LASTPOWERSTATEENTERED_SHIFT 0
|
||||
#define OMAP3430_LASTPOWERSTATEENTERED_MASK (0x3 << 0)
|
||||
|
||||
/* PRM_IRQSTATUS_IVA2, PRM_IRQSTATUS_MPU shared bits */
|
||||
#define OMAP3430_WKUP_ST (1 << 0)
|
||||
#define OMAP3430_WKUP_ST_MASK (1 << 0)
|
||||
|
||||
/* PRM_IRQENABLE_IVA2, PRM_IRQENABLE_MPU shared bits */
|
||||
#define OMAP3430_WKUP_EN (1 << 0)
|
||||
#define OMAP3430_WKUP_EN_MASK (1 << 0)
|
||||
|
||||
/* PM_MPUGRPSEL1_CORE, PM_IVA2GRPSEL1_CORE shared bits */
|
||||
#define OMAP3430_GRPSEL_MMC2 (1 << 25)
|
||||
#define OMAP3430_GRPSEL_MMC1 (1 << 24)
|
||||
#define OMAP3430_GRPSEL_MCSPI4 (1 << 21)
|
||||
#define OMAP3430_GRPSEL_MCSPI3 (1 << 20)
|
||||
#define OMAP3430_GRPSEL_MCSPI2 (1 << 19)
|
||||
#define OMAP3430_GRPSEL_MCSPI1 (1 << 18)
|
||||
#define OMAP3430_GRPSEL_I2C3 (1 << 17)
|
||||
#define OMAP3430_GRPSEL_I2C2 (1 << 16)
|
||||
#define OMAP3430_GRPSEL_I2C1 (1 << 15)
|
||||
#define OMAP3430_GRPSEL_UART2 (1 << 14)
|
||||
#define OMAP3430_GRPSEL_UART1 (1 << 13)
|
||||
#define OMAP3430_GRPSEL_GPT11 (1 << 12)
|
||||
#define OMAP3430_GRPSEL_GPT10 (1 << 11)
|
||||
#define OMAP3430_GRPSEL_MCBSP5 (1 << 10)
|
||||
#define OMAP3430_GRPSEL_MCBSP1 (1 << 9)
|
||||
#define OMAP3430_GRPSEL_HSOTGUSB (1 << 4)
|
||||
#define OMAP3430_GRPSEL_D2D (1 << 3)
|
||||
#define OMAP3430_GRPSEL_MMC2_MASK (1 << 25)
|
||||
#define OMAP3430_GRPSEL_MMC1_MASK (1 << 24)
|
||||
#define OMAP3430_GRPSEL_MCSPI4_MASK (1 << 21)
|
||||
#define OMAP3430_GRPSEL_MCSPI3_MASK (1 << 20)
|
||||
#define OMAP3430_GRPSEL_MCSPI2_MASK (1 << 19)
|
||||
#define OMAP3430_GRPSEL_MCSPI1_MASK (1 << 18)
|
||||
#define OMAP3430_GRPSEL_I2C3_MASK (1 << 17)
|
||||
#define OMAP3430_GRPSEL_I2C2_MASK (1 << 16)
|
||||
#define OMAP3430_GRPSEL_I2C1_MASK (1 << 15)
|
||||
#define OMAP3430_GRPSEL_UART2_MASK (1 << 14)
|
||||
#define OMAP3430_GRPSEL_UART1_MASK (1 << 13)
|
||||
#define OMAP3430_GRPSEL_GPT11_MASK (1 << 12)
|
||||
#define OMAP3430_GRPSEL_GPT10_MASK (1 << 11)
|
||||
#define OMAP3430_GRPSEL_MCBSP5_MASK (1 << 10)
|
||||
#define OMAP3430_GRPSEL_MCBSP1_MASK (1 << 9)
|
||||
#define OMAP3430_GRPSEL_HSOTGUSB_MASK (1 << 4)
|
||||
#define OMAP3430_GRPSEL_D2D_MASK (1 << 3)
|
||||
|
||||
/*
|
||||
* PM_PWSTCTRL_GFX, PM_PWSTCTRL_DSS, PM_PWSTCTRL_CAM,
|
||||
@ -119,49 +119,49 @@
|
||||
*/
|
||||
#define OMAP3430_MEMONSTATE_SHIFT 16
|
||||
#define OMAP3430_MEMONSTATE_MASK (0x3 << 16)
|
||||
#define OMAP3430_MEMRETSTATE (1 << 8)
|
||||
#define OMAP3430_MEMRETSTATE_MASK (1 << 8)
|
||||
|
||||
/* PM_MPUGRPSEL_PER, PM_IVA2GRPSEL_PER shared bits */
|
||||
#define OMAP3430_GRPSEL_GPIO6 (1 << 17)
|
||||
#define OMAP3430_GRPSEL_GPIO5 (1 << 16)
|
||||
#define OMAP3430_GRPSEL_GPIO4 (1 << 15)
|
||||
#define OMAP3430_GRPSEL_GPIO3 (1 << 14)
|
||||
#define OMAP3430_GRPSEL_GPIO2 (1 << 13)
|
||||
#define OMAP3430_GRPSEL_UART3 (1 << 11)
|
||||
#define OMAP3430_GRPSEL_GPT9 (1 << 10)
|
||||
#define OMAP3430_GRPSEL_GPT8 (1 << 9)
|
||||
#define OMAP3430_GRPSEL_GPT7 (1 << 8)
|
||||
#define OMAP3430_GRPSEL_GPT6 (1 << 7)
|
||||
#define OMAP3430_GRPSEL_GPT5 (1 << 6)
|
||||
#define OMAP3430_GRPSEL_GPT4 (1 << 5)
|
||||
#define OMAP3430_GRPSEL_GPT3 (1 << 4)
|
||||
#define OMAP3430_GRPSEL_GPT2 (1 << 3)
|
||||
#define OMAP3430_GRPSEL_MCBSP4 (1 << 2)
|
||||
#define OMAP3430_GRPSEL_MCBSP3 (1 << 1)
|
||||
#define OMAP3430_GRPSEL_MCBSP2 (1 << 0)
|
||||
#define OMAP3430_GRPSEL_GPIO6_MASK (1 << 17)
|
||||
#define OMAP3430_GRPSEL_GPIO5_MASK (1 << 16)
|
||||
#define OMAP3430_GRPSEL_GPIO4_MASK (1 << 15)
|
||||
#define OMAP3430_GRPSEL_GPIO3_MASK (1 << 14)
|
||||
#define OMAP3430_GRPSEL_GPIO2_MASK (1 << 13)
|
||||
#define OMAP3430_GRPSEL_UART3_MASK (1 << 11)
|
||||
#define OMAP3430_GRPSEL_GPT9_MASK (1 << 10)
|
||||
#define OMAP3430_GRPSEL_GPT8_MASK (1 << 9)
|
||||
#define OMAP3430_GRPSEL_GPT7_MASK (1 << 8)
|
||||
#define OMAP3430_GRPSEL_GPT6_MASK (1 << 7)
|
||||
#define OMAP3430_GRPSEL_GPT5_MASK (1 << 6)
|
||||
#define OMAP3430_GRPSEL_GPT4_MASK (1 << 5)
|
||||
#define OMAP3430_GRPSEL_GPT3_MASK (1 << 4)
|
||||
#define OMAP3430_GRPSEL_GPT2_MASK (1 << 3)
|
||||
#define OMAP3430_GRPSEL_MCBSP4_MASK (1 << 2)
|
||||
#define OMAP3430_GRPSEL_MCBSP3_MASK (1 << 1)
|
||||
#define OMAP3430_GRPSEL_MCBSP2_MASK (1 << 0)
|
||||
|
||||
/* PM_MPUGRPSEL_WKUP, PM_IVA2GRPSEL_WKUP shared bits */
|
||||
#define OMAP3430_GRPSEL_IO (1 << 8)
|
||||
#define OMAP3430_GRPSEL_SR2 (1 << 7)
|
||||
#define OMAP3430_GRPSEL_SR1 (1 << 6)
|
||||
#define OMAP3430_GRPSEL_GPIO1 (1 << 3)
|
||||
#define OMAP3430_GRPSEL_GPT12 (1 << 1)
|
||||
#define OMAP3430_GRPSEL_GPT1 (1 << 0)
|
||||
#define OMAP3430_GRPSEL_IO_MASK (1 << 8)
|
||||
#define OMAP3430_GRPSEL_SR2_MASK (1 << 7)
|
||||
#define OMAP3430_GRPSEL_SR1_MASK (1 << 6)
|
||||
#define OMAP3430_GRPSEL_GPIO1_MASK (1 << 3)
|
||||
#define OMAP3430_GRPSEL_GPT12_MASK (1 << 1)
|
||||
#define OMAP3430_GRPSEL_GPT1_MASK (1 << 0)
|
||||
|
||||
/* Bits specific to each register */
|
||||
|
||||
/* RM_RSTCTRL_IVA2 */
|
||||
#define OMAP3430_RST3_IVA2 (1 << 2)
|
||||
#define OMAP3430_RST2_IVA2 (1 << 1)
|
||||
#define OMAP3430_RST1_IVA2 (1 << 0)
|
||||
#define OMAP3430_RST3_IVA2_MASK (1 << 2)
|
||||
#define OMAP3430_RST2_IVA2_MASK (1 << 1)
|
||||
#define OMAP3430_RST1_IVA2_MASK (1 << 0)
|
||||
|
||||
/* RM_RSTST_IVA2 specific bits */
|
||||
#define OMAP3430_EMULATION_VSEQ_RST (1 << 13)
|
||||
#define OMAP3430_EMULATION_VHWA_RST (1 << 12)
|
||||
#define OMAP3430_EMULATION_IVA2_RST (1 << 11)
|
||||
#define OMAP3430_IVA2_SW_RST3 (1 << 10)
|
||||
#define OMAP3430_IVA2_SW_RST2 (1 << 9)
|
||||
#define OMAP3430_IVA2_SW_RST1 (1 << 8)
|
||||
#define OMAP3430_EMULATION_VSEQ_RST_MASK (1 << 13)
|
||||
#define OMAP3430_EMULATION_VHWA_RST_MASK (1 << 12)
|
||||
#define OMAP3430_EMULATION_IVA2_RST_MASK (1 << 11)
|
||||
#define OMAP3430_IVA2_SW_RST3_MASK (1 << 10)
|
||||
#define OMAP3430_IVA2_SW_RST2_MASK (1 << 9)
|
||||
#define OMAP3430_IVA2_SW_RST1_MASK (1 << 8)
|
||||
|
||||
/* PM_WKDEP_IVA2 specific bits */
|
||||
|
||||
@ -174,10 +174,10 @@
|
||||
#define OMAP3430_L1FLATMEMONSTATE_MASK (0x3 << 18)
|
||||
#define OMAP3430_SHAREDL1CACHEFLATONSTATE_SHIFT 16
|
||||
#define OMAP3430_SHAREDL1CACHEFLATONSTATE_MASK (0x3 << 16)
|
||||
#define OMAP3430_L2FLATMEMRETSTATE (1 << 11)
|
||||
#define OMAP3430_SHAREDL2CACHEFLATRETSTATE (1 << 10)
|
||||
#define OMAP3430_L1FLATMEMRETSTATE (1 << 9)
|
||||
#define OMAP3430_SHAREDL1CACHEFLATRETSTATE (1 << 8)
|
||||
#define OMAP3430_L2FLATMEMRETSTATE_MASK (1 << 11)
|
||||
#define OMAP3430_SHAREDL2CACHEFLATRETSTATE_MASK (1 << 10)
|
||||
#define OMAP3430_L1FLATMEMRETSTATE_MASK (1 << 9)
|
||||
#define OMAP3430_SHAREDL1CACHEFLATRETSTATE_MASK (1 << 8)
|
||||
|
||||
/* PM_PWSTST_IVA2 specific bits */
|
||||
#define OMAP3430_L2FLATMEMSTATEST_SHIFT 10
|
||||
@ -200,12 +200,12 @@
|
||||
#define OMAP3430_LASTSHAREDL1CACHEFLATSTATEENTERED_MASK (0x3 << 4)
|
||||
|
||||
/* PRM_IRQSTATUS_IVA2 specific bits */
|
||||
#define OMAP3430_PRM_IRQSTATUS_IVA2_IVA2_DPLL_ST (1 << 2)
|
||||
#define OMAP3430_FORCEWKUP_ST (1 << 1)
|
||||
#define OMAP3430_PRM_IRQSTATUS_IVA2_IVA2_DPLL_ST_MASK (1 << 2)
|
||||
#define OMAP3430_FORCEWKUP_ST_MASK (1 << 1)
|
||||
|
||||
/* PRM_IRQENABLE_IVA2 specific bits */
|
||||
#define OMAP3430_PRM_IRQENABLE_IVA2_IVA2_DPLL_RECAL_EN (1 << 2)
|
||||
#define OMAP3430_FORCEWKUP_EN (1 << 1)
|
||||
#define OMAP3430_PRM_IRQENABLE_IVA2_IVA2_DPLL_RECAL_EN_MASK (1 << 2)
|
||||
#define OMAP3430_FORCEWKUP_EN_MASK (1 << 1)
|
||||
|
||||
/* PRM_REVISION specific bits */
|
||||
|
||||
@ -213,70 +213,70 @@
|
||||
|
||||
/* PRM_IRQSTATUS_MPU specific bits */
|
||||
#define OMAP3430ES2_SND_PERIPH_DPLL_ST_SHIFT 25
|
||||
#define OMAP3430ES2_SND_PERIPH_DPLL_ST (1 << 25)
|
||||
#define OMAP3430_VC_TIMEOUTERR_ST (1 << 24)
|
||||
#define OMAP3430_VC_RAERR_ST (1 << 23)
|
||||
#define OMAP3430_VC_SAERR_ST (1 << 22)
|
||||
#define OMAP3430_VP2_TRANXDONE_ST (1 << 21)
|
||||
#define OMAP3430_VP2_EQVALUE_ST (1 << 20)
|
||||
#define OMAP3430_VP2_NOSMPSACK_ST (1 << 19)
|
||||
#define OMAP3430_VP2_MAXVDD_ST (1 << 18)
|
||||
#define OMAP3430_VP2_MINVDD_ST (1 << 17)
|
||||
#define OMAP3430_VP2_OPPCHANGEDONE_ST (1 << 16)
|
||||
#define OMAP3430_VP1_TRANXDONE_ST (1 << 15)
|
||||
#define OMAP3430_VP1_EQVALUE_ST (1 << 14)
|
||||
#define OMAP3430_VP1_NOSMPSACK_ST (1 << 13)
|
||||
#define OMAP3430_VP1_MAXVDD_ST (1 << 12)
|
||||
#define OMAP3430_VP1_MINVDD_ST (1 << 11)
|
||||
#define OMAP3430_VP1_OPPCHANGEDONE_ST (1 << 10)
|
||||
#define OMAP3430_IO_ST (1 << 9)
|
||||
#define OMAP3430_PRM_IRQSTATUS_MPU_IVA2_DPLL_ST (1 << 8)
|
||||
#define OMAP3430ES2_SND_PERIPH_DPLL_ST_MASK (1 << 25)
|
||||
#define OMAP3430_VC_TIMEOUTERR_ST_MASK (1 << 24)
|
||||
#define OMAP3430_VC_RAERR_ST_MASK (1 << 23)
|
||||
#define OMAP3430_VC_SAERR_ST_MASK (1 << 22)
|
||||
#define OMAP3430_VP2_TRANXDONE_ST_MASK (1 << 21)
|
||||
#define OMAP3430_VP2_EQVALUE_ST_MASK (1 << 20)
|
||||
#define OMAP3430_VP2_NOSMPSACK_ST_MASK (1 << 19)
|
||||
#define OMAP3430_VP2_MAXVDD_ST_MASK (1 << 18)
|
||||
#define OMAP3430_VP2_MINVDD_ST_MASK (1 << 17)
|
||||
#define OMAP3430_VP2_OPPCHANGEDONE_ST_MASK (1 << 16)
|
||||
#define OMAP3430_VP1_TRANXDONE_ST_MASK (1 << 15)
|
||||
#define OMAP3430_VP1_EQVALUE_ST_MASK (1 << 14)
|
||||
#define OMAP3430_VP1_NOSMPSACK_ST_MASK (1 << 13)
|
||||
#define OMAP3430_VP1_MAXVDD_ST_MASK (1 << 12)
|
||||
#define OMAP3430_VP1_MINVDD_ST_MASK (1 << 11)
|
||||
#define OMAP3430_VP1_OPPCHANGEDONE_ST_MASK (1 << 10)
|
||||
#define OMAP3430_IO_ST_MASK (1 << 9)
|
||||
#define OMAP3430_PRM_IRQSTATUS_MPU_IVA2_DPLL_ST_MASK (1 << 8)
|
||||
#define OMAP3430_PRM_IRQSTATUS_MPU_IVA2_DPLL_ST_SHIFT 8
|
||||
#define OMAP3430_MPU_DPLL_ST (1 << 7)
|
||||
#define OMAP3430_MPU_DPLL_ST_MASK (1 << 7)
|
||||
#define OMAP3430_MPU_DPLL_ST_SHIFT 7
|
||||
#define OMAP3430_PERIPH_DPLL_ST (1 << 6)
|
||||
#define OMAP3430_PERIPH_DPLL_ST_MASK (1 << 6)
|
||||
#define OMAP3430_PERIPH_DPLL_ST_SHIFT 6
|
||||
#define OMAP3430_CORE_DPLL_ST (1 << 5)
|
||||
#define OMAP3430_CORE_DPLL_ST_MASK (1 << 5)
|
||||
#define OMAP3430_CORE_DPLL_ST_SHIFT 5
|
||||
#define OMAP3430_TRANSITION_ST (1 << 4)
|
||||
#define OMAP3430_EVGENOFF_ST (1 << 3)
|
||||
#define OMAP3430_EVGENON_ST (1 << 2)
|
||||
#define OMAP3430_FS_USB_WKUP_ST (1 << 1)
|
||||
#define OMAP3430_TRANSITION_ST_MASK (1 << 4)
|
||||
#define OMAP3430_EVGENOFF_ST_MASK (1 << 3)
|
||||
#define OMAP3430_EVGENON_ST_MASK (1 << 2)
|
||||
#define OMAP3430_FS_USB_WKUP_ST_MASK (1 << 1)
|
||||
|
||||
/* PRM_IRQENABLE_MPU specific bits */
|
||||
#define OMAP3430ES2_SND_PERIPH_DPLL_RECAL_EN_SHIFT 25
|
||||
#define OMAP3430ES2_SND_PERIPH_DPLL_RECAL_EN (1 << 25)
|
||||
#define OMAP3430_VC_TIMEOUTERR_EN (1 << 24)
|
||||
#define OMAP3430_VC_RAERR_EN (1 << 23)
|
||||
#define OMAP3430_VC_SAERR_EN (1 << 22)
|
||||
#define OMAP3430_VP2_TRANXDONE_EN (1 << 21)
|
||||
#define OMAP3430_VP2_EQVALUE_EN (1 << 20)
|
||||
#define OMAP3430_VP2_NOSMPSACK_EN (1 << 19)
|
||||
#define OMAP3430_VP2_MAXVDD_EN (1 << 18)
|
||||
#define OMAP3430_VP2_MINVDD_EN (1 << 17)
|
||||
#define OMAP3430_VP2_OPPCHANGEDONE_EN (1 << 16)
|
||||
#define OMAP3430_VP1_TRANXDONE_EN (1 << 15)
|
||||
#define OMAP3430_VP1_EQVALUE_EN (1 << 14)
|
||||
#define OMAP3430_VP1_NOSMPSACK_EN (1 << 13)
|
||||
#define OMAP3430_VP1_MAXVDD_EN (1 << 12)
|
||||
#define OMAP3430_VP1_MINVDD_EN (1 << 11)
|
||||
#define OMAP3430_VP1_OPPCHANGEDONE_EN (1 << 10)
|
||||
#define OMAP3430_IO_EN (1 << 9)
|
||||
#define OMAP3430_PRM_IRQENABLE_MPU_IVA2_DPLL_RECAL_EN (1 << 8)
|
||||
#define OMAP3430ES2_SND_PERIPH_DPLL_RECAL_EN_MASK (1 << 25)
|
||||
#define OMAP3430_VC_TIMEOUTERR_EN_MASK (1 << 24)
|
||||
#define OMAP3430_VC_RAERR_EN_MASK (1 << 23)
|
||||
#define OMAP3430_VC_SAERR_EN_MASK (1 << 22)
|
||||
#define OMAP3430_VP2_TRANXDONE_EN_MASK (1 << 21)
|
||||
#define OMAP3430_VP2_EQVALUE_EN_MASK (1 << 20)
|
||||
#define OMAP3430_VP2_NOSMPSACK_EN_MASK (1 << 19)
|
||||
#define OMAP3430_VP2_MAXVDD_EN_MASK (1 << 18)
|
||||
#define OMAP3430_VP2_MINVDD_EN_MASK (1 << 17)
|
||||
#define OMAP3430_VP2_OPPCHANGEDONE_EN_MASK (1 << 16)
|
||||
#define OMAP3430_VP1_TRANXDONE_EN_MASK (1 << 15)
|
||||
#define OMAP3430_VP1_EQVALUE_EN_MASK (1 << 14)
|
||||
#define OMAP3430_VP1_NOSMPSACK_EN_MASK (1 << 13)
|
||||
#define OMAP3430_VP1_MAXVDD_EN_MASK (1 << 12)
|
||||
#define OMAP3430_VP1_MINVDD_EN_MASK (1 << 11)
|
||||
#define OMAP3430_VP1_OPPCHANGEDONE_EN_MASK (1 << 10)
|
||||
#define OMAP3430_IO_EN_MASK (1 << 9)
|
||||
#define OMAP3430_PRM_IRQENABLE_MPU_IVA2_DPLL_RECAL_EN_MASK (1 << 8)
|
||||
#define OMAP3430_PRM_IRQENABLE_MPU_IVA2_DPLL_RECAL_EN_SHIFT 8
|
||||
#define OMAP3430_MPU_DPLL_RECAL_EN (1 << 7)
|
||||
#define OMAP3430_MPU_DPLL_RECAL_EN_MASK (1 << 7)
|
||||
#define OMAP3430_MPU_DPLL_RECAL_EN_SHIFT 7
|
||||
#define OMAP3430_PERIPH_DPLL_RECAL_EN (1 << 6)
|
||||
#define OMAP3430_PERIPH_DPLL_RECAL_EN_MASK (1 << 6)
|
||||
#define OMAP3430_PERIPH_DPLL_RECAL_EN_SHIFT 6
|
||||
#define OMAP3430_CORE_DPLL_RECAL_EN (1 << 5)
|
||||
#define OMAP3430_CORE_DPLL_RECAL_EN_MASK (1 << 5)
|
||||
#define OMAP3430_CORE_DPLL_RECAL_EN_SHIFT 5
|
||||
#define OMAP3430_TRANSITION_EN (1 << 4)
|
||||
#define OMAP3430_EVGENOFF_EN (1 << 3)
|
||||
#define OMAP3430_EVGENON_EN (1 << 2)
|
||||
#define OMAP3430_FS_USB_WKUP_EN (1 << 1)
|
||||
#define OMAP3430_TRANSITION_EN_MASK (1 << 4)
|
||||
#define OMAP3430_EVGENOFF_EN_MASK (1 << 3)
|
||||
#define OMAP3430_EVGENON_EN_MASK (1 << 2)
|
||||
#define OMAP3430_FS_USB_WKUP_EN_MASK (1 << 1)
|
||||
|
||||
/* RM_RSTST_MPU specific bits */
|
||||
#define OMAP3430_EMULATION_MPU_RST (1 << 11)
|
||||
#define OMAP3430_EMULATION_MPU_RST_MASK (1 << 11)
|
||||
|
||||
/* PM_WKDEP_MPU specific bits */
|
||||
#define OMAP3430_PM_WKDEP_MPU_EN_DSS_SHIFT 5
|
||||
@ -289,7 +289,7 @@
|
||||
#define OMAP3430_OFFLOADMODE_MASK (0x3 << 3)
|
||||
#define OMAP3430_ONLOADMODE_SHIFT 1
|
||||
#define OMAP3430_ONLOADMODE_MASK (0x3 << 1)
|
||||
#define OMAP3430_ENABLE (1 << 0)
|
||||
#define OMAP3430_ENABLE_MASK (1 << 0)
|
||||
|
||||
/* PM_EVGENONTIM_MPU */
|
||||
#define OMAP3430_ONTIMEVAL_SHIFT 0
|
||||
@ -302,32 +302,32 @@
|
||||
/* PM_PWSTCTRL_MPU specific bits */
|
||||
#define OMAP3430_L2CACHEONSTATE_SHIFT 16
|
||||
#define OMAP3430_L2CACHEONSTATE_MASK (0x3 << 16)
|
||||
#define OMAP3430_L2CACHERETSTATE (1 << 8)
|
||||
#define OMAP3430_LOGICL1CACHERETSTATE (1 << 2)
|
||||
#define OMAP3430_L2CACHERETSTATE_MASK (1 << 8)
|
||||
#define OMAP3430_LOGICL1CACHERETSTATE_MASK (1 << 2)
|
||||
|
||||
/* PM_PWSTST_MPU specific bits */
|
||||
#define OMAP3430_L2CACHESTATEST_SHIFT 6
|
||||
#define OMAP3430_L2CACHESTATEST_MASK (0x3 << 6)
|
||||
#define OMAP3430_LOGICL1CACHESTATEST (1 << 2)
|
||||
#define OMAP3430_LOGICL1CACHESTATEST_MASK (1 << 2)
|
||||
|
||||
/* PM_PREPWSTST_MPU specific bits */
|
||||
#define OMAP3430_LASTL2CACHESTATEENTERED_SHIFT 6
|
||||
#define OMAP3430_LASTL2CACHESTATEENTERED_MASK (0x3 << 6)
|
||||
#define OMAP3430_LASTLOGICL1CACHESTATEENTERED (1 << 2)
|
||||
#define OMAP3430_LASTLOGICL1CACHESTATEENTERED_MASK (1 << 2)
|
||||
|
||||
/* RM_RSTCTRL_CORE */
|
||||
#define OMAP3430_RM_RSTCTRL_CORE_MODEM_SW_RSTPWRON (1 << 1)
|
||||
#define OMAP3430_RM_RSTCTRL_CORE_MODEM_SW_RST (1 << 0)
|
||||
#define OMAP3430_RM_RSTCTRL_CORE_MODEM_SW_RSTPWRON_MASK (1 << 1)
|
||||
#define OMAP3430_RM_RSTCTRL_CORE_MODEM_SW_RST_MASK (1 << 0)
|
||||
|
||||
/* RM_RSTST_CORE specific bits */
|
||||
#define OMAP3430_MODEM_SECURITY_VIOL_RST (1 << 10)
|
||||
#define OMAP3430_RM_RSTST_CORE_MODEM_SW_RSTPWRON (1 << 9)
|
||||
#define OMAP3430_RM_RSTST_CORE_MODEM_SW_RST (1 << 8)
|
||||
#define OMAP3430_MODEM_SECURITY_VIOL_RST_MASK (1 << 10)
|
||||
#define OMAP3430_RM_RSTST_CORE_MODEM_SW_RSTPWRON_MASK (1 << 9)
|
||||
#define OMAP3430_RM_RSTST_CORE_MODEM_SW_RST_MASK (1 << 8)
|
||||
|
||||
/* PM_WKEN1_CORE specific bits */
|
||||
|
||||
/* PM_MPUGRPSEL1_CORE specific bits */
|
||||
#define OMAP3430_GRPSEL_FSHOSTUSB (1 << 5)
|
||||
#define OMAP3430_GRPSEL_FSHOSTUSB_MASK (1 << 5)
|
||||
|
||||
/* PM_IVA2GRPSEL1_CORE specific bits */
|
||||
|
||||
@ -338,8 +338,8 @@
|
||||
#define OMAP3430_MEM2ONSTATE_MASK (0x3 << 18)
|
||||
#define OMAP3430_MEM1ONSTATE_SHIFT 16
|
||||
#define OMAP3430_MEM1ONSTATE_MASK (0x3 << 16)
|
||||
#define OMAP3430_MEM2RETSTATE (1 << 9)
|
||||
#define OMAP3430_MEM1RETSTATE (1 << 8)
|
||||
#define OMAP3430_MEM2RETSTATE_MASK (1 << 9)
|
||||
#define OMAP3430_MEM1RETSTATE_MASK (1 << 8)
|
||||
|
||||
/* PM_PWSTST_CORE specific bits */
|
||||
#define OMAP3430_MEM2STATEST_SHIFT 6
|
||||
@ -356,7 +356,7 @@
|
||||
/* RM_RSTST_GFX specific bits */
|
||||
|
||||
/* PM_WKDEP_GFX specific bits */
|
||||
#define OMAP3430_PM_WKDEP_GFX_EN_IVA2 (1 << 2)
|
||||
#define OMAP3430_PM_WKDEP_GFX_EN_IVA2_MASK (1 << 2)
|
||||
|
||||
/* PM_PWSTCTRL_GFX specific bits */
|
||||
|
||||
@ -365,33 +365,33 @@
|
||||
/* PM_PREPWSTST_GFX specific bits */
|
||||
|
||||
/* PM_WKEN_WKUP specific bits */
|
||||
#define OMAP3430_EN_IO_CHAIN (1 << 16)
|
||||
#define OMAP3430_EN_IO (1 << 8)
|
||||
#define OMAP3430_EN_GPIO1 (1 << 3)
|
||||
#define OMAP3430_EN_IO_CHAIN_MASK (1 << 16)
|
||||
#define OMAP3430_EN_IO_MASK (1 << 8)
|
||||
#define OMAP3430_EN_GPIO1_MASK (1 << 3)
|
||||
|
||||
/* PM_MPUGRPSEL_WKUP specific bits */
|
||||
|
||||
/* PM_IVA2GRPSEL_WKUP specific bits */
|
||||
|
||||
/* PM_WKST_WKUP specific bits */
|
||||
#define OMAP3430_ST_IO_CHAIN (1 << 16)
|
||||
#define OMAP3430_ST_IO (1 << 8)
|
||||
#define OMAP3430_ST_IO_CHAIN_MASK (1 << 16)
|
||||
#define OMAP3430_ST_IO_MASK (1 << 8)
|
||||
|
||||
/* PRM_CLKSEL */
|
||||
#define OMAP3430_SYS_CLKIN_SEL_SHIFT 0
|
||||
#define OMAP3430_SYS_CLKIN_SEL_MASK (0x7 << 0)
|
||||
|
||||
/* PRM_CLKOUT_CTRL */
|
||||
#define OMAP3430_CLKOUT_EN (1 << 7)
|
||||
#define OMAP3430_CLKOUT_EN_MASK (1 << 7)
|
||||
#define OMAP3430_CLKOUT_EN_SHIFT 7
|
||||
|
||||
/* RM_RSTST_DSS specific bits */
|
||||
|
||||
/* PM_WKEN_DSS */
|
||||
#define OMAP3430_PM_WKEN_DSS_EN_DSS (1 << 0)
|
||||
#define OMAP3430_PM_WKEN_DSS_EN_DSS_MASK (1 << 0)
|
||||
|
||||
/* PM_WKDEP_DSS specific bits */
|
||||
#define OMAP3430_PM_WKDEP_DSS_EN_IVA2 (1 << 2)
|
||||
#define OMAP3430_PM_WKDEP_DSS_EN_IVA2_MASK (1 << 2)
|
||||
|
||||
/* PM_PWSTCTRL_DSS specific bits */
|
||||
|
||||
@ -402,7 +402,7 @@
|
||||
/* RM_RSTST_CAM specific bits */
|
||||
|
||||
/* PM_WKDEP_CAM specific bits */
|
||||
#define OMAP3430_PM_WKDEP_CAM_EN_IVA2 (1 << 2)
|
||||
#define OMAP3430_PM_WKDEP_CAM_EN_IVA2_MASK (1 << 2)
|
||||
|
||||
/* PM_PWSTCTRL_CAM specific bits */
|
||||
|
||||
@ -424,7 +424,7 @@
|
||||
/* PM_WKST_PER specific bits */
|
||||
|
||||
/* PM_WKDEP_PER specific bits */
|
||||
#define OMAP3430_PM_WKDEP_PER_EN_IVA2 (1 << 2)
|
||||
#define OMAP3430_PM_WKDEP_PER_EN_IVA2_MASK (1 << 2)
|
||||
|
||||
/* PM_PWSTCTRL_PER specific bits */
|
||||
|
||||
@ -467,26 +467,26 @@
|
||||
/* PRM_VC_CMD_VAL_1 specific bits */
|
||||
|
||||
/* PRM_VC_CH_CONF */
|
||||
#define OMAP3430_CMD1 (1 << 20)
|
||||
#define OMAP3430_RACEN1 (1 << 19)
|
||||
#define OMAP3430_RAC1 (1 << 18)
|
||||
#define OMAP3430_RAV1 (1 << 17)
|
||||
#define OMAP3430_PRM_VC_CH_CONF_SA1 (1 << 16)
|
||||
#define OMAP3430_CMD0 (1 << 4)
|
||||
#define OMAP3430_RACEN0 (1 << 3)
|
||||
#define OMAP3430_RAC0 (1 << 2)
|
||||
#define OMAP3430_RAV0 (1 << 1)
|
||||
#define OMAP3430_PRM_VC_CH_CONF_SA0 (1 << 0)
|
||||
#define OMAP3430_CMD1_MASK (1 << 20)
|
||||
#define OMAP3430_RACEN1_MASK (1 << 19)
|
||||
#define OMAP3430_RAC1_MASK (1 << 18)
|
||||
#define OMAP3430_RAV1_MASK (1 << 17)
|
||||
#define OMAP3430_PRM_VC_CH_CONF_SA1_MASK (1 << 16)
|
||||
#define OMAP3430_CMD0_MASK (1 << 4)
|
||||
#define OMAP3430_RACEN0_MASK (1 << 3)
|
||||
#define OMAP3430_RAC0_MASK (1 << 2)
|
||||
#define OMAP3430_RAV0_MASK (1 << 1)
|
||||
#define OMAP3430_PRM_VC_CH_CONF_SA0_MASK (1 << 0)
|
||||
|
||||
/* PRM_VC_I2C_CFG */
|
||||
#define OMAP3430_HSMASTER (1 << 5)
|
||||
#define OMAP3430_SREN (1 << 4)
|
||||
#define OMAP3430_HSEN (1 << 3)
|
||||
#define OMAP3430_HSMASTER_MASK (1 << 5)
|
||||
#define OMAP3430_SREN_MASK (1 << 4)
|
||||
#define OMAP3430_HSEN_MASK (1 << 3)
|
||||
#define OMAP3430_MCODE_SHIFT 0
|
||||
#define OMAP3430_MCODE_MASK (0x7 << 0)
|
||||
|
||||
/* PRM_VC_BYPASS_VAL */
|
||||
#define OMAP3430_VALID (1 << 24)
|
||||
#define OMAP3430_VALID_MASK (1 << 24)
|
||||
#define OMAP3430_DATA_SHIFT 16
|
||||
#define OMAP3430_DATA_MASK (0xff << 16)
|
||||
#define OMAP3430_REGADDR_SHIFT 8
|
||||
@ -495,8 +495,8 @@
|
||||
#define OMAP3430_SLAVEADDR_MASK (0x7f << 0)
|
||||
|
||||
/* PRM_RSTCTRL */
|
||||
#define OMAP3430_RST_DPLL3 (1 << 2)
|
||||
#define OMAP3430_RST_GS (1 << 1)
|
||||
#define OMAP3430_RST_DPLL3_MASK (1 << 2)
|
||||
#define OMAP3430_RST_GS_MASK (1 << 1)
|
||||
|
||||
/* PRM_RSTTIME */
|
||||
#define OMAP3430_RSTTIME2_SHIFT 8
|
||||
@ -505,23 +505,23 @@
|
||||
#define OMAP3430_RSTTIME1_MASK (0xff << 0)
|
||||
|
||||
/* PRM_RSTST */
|
||||
#define OMAP3430_ICECRUSHER_RST (1 << 10)
|
||||
#define OMAP3430_ICEPICK_RST (1 << 9)
|
||||
#define OMAP3430_VDD2_VOLTAGE_MANAGER_RST (1 << 8)
|
||||
#define OMAP3430_VDD1_VOLTAGE_MANAGER_RST (1 << 7)
|
||||
#define OMAP3430_EXTERNAL_WARM_RST (1 << 6)
|
||||
#define OMAP3430_SECURE_WD_RST (1 << 5)
|
||||
#define OMAP3430_MPU_WD_RST (1 << 4)
|
||||
#define OMAP3430_SECURITY_VIOL_RST (1 << 3)
|
||||
#define OMAP3430_GLOBAL_SW_RST (1 << 1)
|
||||
#define OMAP3430_GLOBAL_COLD_RST (1 << 0)
|
||||
#define OMAP3430_ICECRUSHER_RST_MASK (1 << 10)
|
||||
#define OMAP3430_ICEPICK_RST_MASK (1 << 9)
|
||||
#define OMAP3430_VDD2_VOLTAGE_MANAGER_RST_MASK (1 << 8)
|
||||
#define OMAP3430_VDD1_VOLTAGE_MANAGER_RST_MASK (1 << 7)
|
||||
#define OMAP3430_EXTERNAL_WARM_RST_MASK (1 << 6)
|
||||
#define OMAP3430_SECURE_WD_RST_MASK (1 << 5)
|
||||
#define OMAP3430_MPU_WD_RST_MASK (1 << 4)
|
||||
#define OMAP3430_SECURITY_VIOL_RST_MASK (1 << 3)
|
||||
#define OMAP3430_GLOBAL_SW_RST_MASK (1 << 1)
|
||||
#define OMAP3430_GLOBAL_COLD_RST_MASK (1 << 0)
|
||||
|
||||
/* PRM_VOLTCTRL */
|
||||
#define OMAP3430_SEL_VMODE (1 << 4)
|
||||
#define OMAP3430_SEL_OFF (1 << 3)
|
||||
#define OMAP3430_AUTO_OFF (1 << 2)
|
||||
#define OMAP3430_AUTO_RET (1 << 1)
|
||||
#define OMAP3430_AUTO_SLEEP (1 << 0)
|
||||
#define OMAP3430_SEL_VMODE_MASK (1 << 4)
|
||||
#define OMAP3430_SEL_OFF_MASK (1 << 3)
|
||||
#define OMAP3430_AUTO_OFF_MASK (1 << 2)
|
||||
#define OMAP3430_AUTO_RET_MASK (1 << 1)
|
||||
#define OMAP3430_AUTO_SLEEP_MASK (1 << 0)
|
||||
|
||||
/* PRM_SRAM_PCHARGE */
|
||||
#define OMAP3430_PCHARGE_TIME_SHIFT 0
|
||||
@ -550,10 +550,10 @@
|
||||
#define OMAP3430_SETUP_TIME_MASK (0xffff << 0)
|
||||
|
||||
/* PRM_POLCTRL */
|
||||
#define OMAP3430_OFFMODE_POL (1 << 3)
|
||||
#define OMAP3430_CLKOUT_POL (1 << 2)
|
||||
#define OMAP3430_CLKREQ_POL (1 << 1)
|
||||
#define OMAP3430_EXTVOL_POL (1 << 0)
|
||||
#define OMAP3430_OFFMODE_POL_MASK (1 << 3)
|
||||
#define OMAP3430_CLKOUT_POL_MASK (1 << 2)
|
||||
#define OMAP3430_CLKREQ_POL_MASK (1 << 1)
|
||||
#define OMAP3430_EXTVOL_POL_MASK (1 << 0)
|
||||
|
||||
/* PRM_VOLTSETUP2 */
|
||||
#define OMAP3430_OFFMODESETUPTIME_SHIFT 0
|
||||
|
@ -24,8 +24,8 @@
|
||||
OMAP2_L4_IO_ADDRESS(OMAP3430_PRM_BASE + (module) + (reg))
|
||||
#define OMAP44XX_PRM_REGADDR(module, reg) \
|
||||
OMAP2_L4_IO_ADDRESS(OMAP4430_PRM_BASE + (module) + (reg))
|
||||
#define OMAP44XX_CHIRONSS_REGADDR(module, reg) \
|
||||
OMAP2_L4_IO_ADDRESS(OMAP4430_CHIRONSS_BASE + (module) + (reg))
|
||||
#define OMAP44XX_PRCM_MPU_REGADDR(module, reg) \
|
||||
OMAP2_L4_IO_ADDRESS(OMAP4430_PRCM_MPU_BASE + (module) + (reg))
|
||||
|
||||
#include "prm44xx.h"
|
||||
|
||||
@ -284,7 +284,7 @@ static inline u32 prm_clear_mod_reg_bits(u32 bits, s16 module, s16 idx)
|
||||
#define OMAP_OFFLOADMODE_MASK (0x3 << 3)
|
||||
#define OMAP_ONLOADMODE_SHIFT 1
|
||||
#define OMAP_ONLOADMODE_MASK (0x3 << 1)
|
||||
#define OMAP_ENABLE (1 << 0)
|
||||
#define OMAP_ENABLE_MASK (1 << 0)
|
||||
|
||||
/* PRM_RSTTIME */
|
||||
/* Named RM_RSTTIME_WKUP on the 24xx */
|
||||
@ -296,8 +296,8 @@ static inline u32 prm_clear_mod_reg_bits(u32 bits, s16 module, s16 idx)
|
||||
/* PRM_RSTCTRL */
|
||||
/* Named RM_RSTCTRL_WKUP on the 24xx */
|
||||
/* 2420 calls RST_DPLL3 'RST_DPLL' */
|
||||
#define OMAP_RST_DPLL3 (1 << 2)
|
||||
#define OMAP_RST_GS (1 << 1)
|
||||
#define OMAP_RST_DPLL3_MASK (1 << 2)
|
||||
#define OMAP_RST_GS_MASK (1 << 1)
|
||||
|
||||
|
||||
/*
|
||||
@ -316,7 +316,7 @@ static inline u32 prm_clear_mod_reg_bits(u32 bits, s16 module, s16 idx)
|
||||
* PM_PWSTST_DSS, PM_PWSTST_CAM, PM_PWSTST_PER, PM_PWSTST_EMU,
|
||||
* PM_PWSTST_NEON
|
||||
*/
|
||||
#define OMAP_INTRANSITION (1 << 20)
|
||||
#define OMAP_INTRANSITION_MASK (1 << 20)
|
||||
|
||||
|
||||
/*
|
||||
@ -338,7 +338,7 @@ static inline u32 prm_clear_mod_reg_bits(u32 bits, s16 module, s16 idx)
|
||||
* 3430: RM_RSTST_IVA2, RM_RSTST_MPU, RM_RSTST_GFX, RM_RSTST_DSS,
|
||||
* RM_RSTST_CAM, RM_RSTST_PER, RM_RSTST_NEON
|
||||
*/
|
||||
#define OMAP_COREDOMAINWKUP_RST (1 << 3)
|
||||
#define OMAP_COREDOMAINWKUP_RST_MASK (1 << 3)
|
||||
|
||||
/*
|
||||
* 24XX: RM_RSTST_MPU, RM_RSTST_GFX, RM_RSTST_DSP
|
||||
@ -347,7 +347,7 @@ static inline u32 prm_clear_mod_reg_bits(u32 bits, s16 module, s16 idx)
|
||||
*
|
||||
* 3430: RM_RSTST_CORE, RM_RSTST_EMU
|
||||
*/
|
||||
#define OMAP_DOMAINWKUP_RST (1 << 2)
|
||||
#define OMAP_DOMAINWKUP_RST_MASK (1 << 2)
|
||||
|
||||
/*
|
||||
* 24XX: RM_RSTST_MPU, RM_RSTST_WKUP, RM_RSTST_DSP
|
||||
@ -357,8 +357,8 @@ static inline u32 prm_clear_mod_reg_bits(u32 bits, s16 module, s16 idx)
|
||||
*
|
||||
* 3430: RM_RSTST_CORE, RM_RSTST_EMU
|
||||
*/
|
||||
#define OMAP_GLOBALWARM_RST (1 << 1)
|
||||
#define OMAP_GLOBALCOLD_RST (1 << 0)
|
||||
#define OMAP_GLOBALWARM_RST_MASK (1 << 1)
|
||||
#define OMAP_GLOBALCOLD_RST_MASK (1 << 0)
|
||||
|
||||
/*
|
||||
* 24XX: PM_WKDEP_GFX, PM_WKDEP_MPU, PM_WKDEP_CORE, PM_WKDEP_DSP
|
||||
@ -382,7 +382,7 @@ static inline u32 prm_clear_mod_reg_bits(u32 bits, s16 module, s16 idx)
|
||||
* PM_PWSTCTRL_DSS, PM_PWSTCTRL_CAM, PM_PWSTCTRL_PER,
|
||||
* PM_PWSTCTRL_NEON
|
||||
*/
|
||||
#define OMAP_LOGICRETSTATE (1 << 2)
|
||||
#define OMAP_LOGICRETSTATE_MASK (1 << 2)
|
||||
|
||||
/*
|
||||
* 24XX: PM_PWSTCTRL_MPU, PM_PWSTCTRL_CORE, PM_PWSTCTRL_GFX,
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* OMAP44xx PRM instance offset macros
|
||||
*
|
||||
* Copyright (C) 2009 Texas Instruments, Inc.
|
||||
* Copyright (C) 2009 Nokia Corporation
|
||||
* Copyright (C) 2009-2010 Texas Instruments, Inc.
|
||||
* Copyright (C) 2009-2010 Nokia Corporation
|
||||
*
|
||||
* Paul Walmsley (paul@pwsan.com)
|
||||
* Rajendra Nayak (rnayak@ti.com)
|
||||
@ -25,387 +25,726 @@
|
||||
|
||||
/* PRM */
|
||||
|
||||
|
||||
/* PRM.OCP_SOCKET_PRM register offsets */
|
||||
#define OMAP4_REVISION_PRM_OFFSET 0x0000
|
||||
#define OMAP4430_REVISION_PRM OMAP44XX_PRM_REGADDR(OMAP4430_PRM_OCP_SOCKET_MOD, 0x0000)
|
||||
#define OMAP4_PRM_IRQSTATUS_MPU_OFFSET 0x0010
|
||||
#define OMAP4430_PRM_IRQSTATUS_MPU OMAP44XX_PRM_REGADDR(OMAP4430_PRM_OCP_SOCKET_MOD, 0x0010)
|
||||
#define OMAP4_PRM_IRQSTATUS_MPU_2_OFFSET 0x0014
|
||||
#define OMAP4430_PRM_IRQSTATUS_MPU_2 OMAP44XX_PRM_REGADDR(OMAP4430_PRM_OCP_SOCKET_MOD, 0x0014)
|
||||
#define OMAP4_PRM_IRQENABLE_MPU_OFFSET 0x0018
|
||||
#define OMAP4430_PRM_IRQENABLE_MPU OMAP44XX_PRM_REGADDR(OMAP4430_PRM_OCP_SOCKET_MOD, 0x0018)
|
||||
#define OMAP4_PRM_IRQENABLE_MPU_2_OFFSET 0x001c
|
||||
#define OMAP4430_PRM_IRQENABLE_MPU_2 OMAP44XX_PRM_REGADDR(OMAP4430_PRM_OCP_SOCKET_MOD, 0x001c)
|
||||
#define OMAP4_PRM_IRQSTATUS_DUCATI_OFFSET 0x0020
|
||||
#define OMAP4430_PRM_IRQSTATUS_DUCATI OMAP44XX_PRM_REGADDR(OMAP4430_PRM_OCP_SOCKET_MOD, 0x0020)
|
||||
#define OMAP4_PRM_IRQENABLE_DUCATI_OFFSET 0x0028
|
||||
#define OMAP4430_PRM_IRQENABLE_DUCATI OMAP44XX_PRM_REGADDR(OMAP4430_PRM_OCP_SOCKET_MOD, 0x0028)
|
||||
#define OMAP4_PRM_IRQSTATUS_TESLA_OFFSET 0x0030
|
||||
#define OMAP4430_PRM_IRQSTATUS_TESLA OMAP44XX_PRM_REGADDR(OMAP4430_PRM_OCP_SOCKET_MOD, 0x0030)
|
||||
#define OMAP4_PRM_IRQENABLE_TESLA_OFFSET 0x0038
|
||||
#define OMAP4430_PRM_IRQENABLE_TESLA OMAP44XX_PRM_REGADDR(OMAP4430_PRM_OCP_SOCKET_MOD, 0x0038)
|
||||
#define OMAP4_PRM_PRM_PROFILING_CLKCTRL_OFFSET 0x0040
|
||||
#define OMAP4430_PRM_PRM_PROFILING_CLKCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_OCP_SOCKET_MOD, 0x0040)
|
||||
|
||||
/* PRM.CKGEN_PRM register offsets */
|
||||
#define OMAP4_CM_ABE_DSS_SYS_CLKSEL_OFFSET 0x0000
|
||||
#define OMAP4430_CM_ABE_DSS_SYS_CLKSEL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CKGEN_MOD, 0x0000)
|
||||
#define OMAP4_CM_DPLL_SYS_REF_CLKSEL_OFFSET 0x0004
|
||||
#define OMAP4430_CM_DPLL_SYS_REF_CLKSEL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CKGEN_MOD, 0x0004)
|
||||
#define OMAP4_CM_L4_WKUP_CLKSEL_OFFSET 0x0008
|
||||
#define OMAP4430_CM_L4_WKUP_CLKSEL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CKGEN_MOD, 0x0008)
|
||||
#define OMAP4_CM_ABE_PLL_REF_CLKSEL_OFFSET 0x000c
|
||||
#define OMAP4430_CM_ABE_PLL_REF_CLKSEL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CKGEN_MOD, 0x000c)
|
||||
#define OMAP4_CM_SYS_CLKSEL_OFFSET 0x0010
|
||||
#define OMAP4430_CM_SYS_CLKSEL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CKGEN_MOD, 0x0010)
|
||||
|
||||
/* PRM.MPU_PRM register offsets */
|
||||
#define OMAP4_PM_MPU_PWRSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_PM_MPU_PWRSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_MPU_MOD, 0x0000)
|
||||
#define OMAP4_PM_MPU_PWRSTST_OFFSET 0x0004
|
||||
#define OMAP4430_PM_MPU_PWRSTST OMAP44XX_PRM_REGADDR(OMAP4430_PRM_MPU_MOD, 0x0004)
|
||||
#define OMAP4_RM_MPU_RSTST_OFFSET 0x0014
|
||||
#define OMAP4430_RM_MPU_RSTST OMAP44XX_PRM_REGADDR(OMAP4430_PRM_MPU_MOD, 0x0014)
|
||||
#define OMAP4_RM_MPU_MPU_CONTEXT_OFFSET 0x0024
|
||||
#define OMAP4430_RM_MPU_MPU_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_MPU_MOD, 0x0024)
|
||||
|
||||
/* PRM.TESLA_PRM register offsets */
|
||||
#define OMAP4_PM_TESLA_PWRSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_PM_TESLA_PWRSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_TESLA_MOD, 0x0000)
|
||||
#define OMAP4_PM_TESLA_PWRSTST_OFFSET 0x0004
|
||||
#define OMAP4430_PM_TESLA_PWRSTST OMAP44XX_PRM_REGADDR(OMAP4430_PRM_TESLA_MOD, 0x0004)
|
||||
#define OMAP4_RM_TESLA_RSTCTRL_OFFSET 0x0010
|
||||
#define OMAP4430_RM_TESLA_RSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_TESLA_MOD, 0x0010)
|
||||
#define OMAP4_RM_TESLA_RSTST_OFFSET 0x0014
|
||||
#define OMAP4430_RM_TESLA_RSTST OMAP44XX_PRM_REGADDR(OMAP4430_PRM_TESLA_MOD, 0x0014)
|
||||
#define OMAP4_RM_TESLA_TESLA_CONTEXT_OFFSET 0x0024
|
||||
#define OMAP4430_RM_TESLA_TESLA_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_TESLA_MOD, 0x0024)
|
||||
|
||||
/* PRM.ABE_PRM register offsets */
|
||||
#define OMAP4_PM_ABE_PWRSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_PM_ABE_PWRSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0000)
|
||||
#define OMAP4_PM_ABE_PWRSTST_OFFSET 0x0004
|
||||
#define OMAP4430_PM_ABE_PWRSTST OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0004)
|
||||
#define OMAP4_RM_ABE_AESS_CONTEXT_OFFSET 0x002c
|
||||
#define OMAP4430_RM_ABE_AESS_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x002c)
|
||||
#define OMAP4_PM_ABE_PDM_WKDEP_OFFSET 0x0030
|
||||
#define OMAP4430_PM_ABE_PDM_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0030)
|
||||
#define OMAP4_RM_ABE_PDM_CONTEXT_OFFSET 0x0034
|
||||
#define OMAP4430_RM_ABE_PDM_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0034)
|
||||
#define OMAP4_PM_ABE_DMIC_WKDEP_OFFSET 0x0038
|
||||
#define OMAP4430_PM_ABE_DMIC_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0038)
|
||||
#define OMAP4_RM_ABE_DMIC_CONTEXT_OFFSET 0x003c
|
||||
#define OMAP4430_RM_ABE_DMIC_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x003c)
|
||||
#define OMAP4_PM_ABE_MCASP_WKDEP_OFFSET 0x0040
|
||||
#define OMAP4430_PM_ABE_MCASP_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0040)
|
||||
#define OMAP4_RM_ABE_MCASP_CONTEXT_OFFSET 0x0044
|
||||
#define OMAP4430_RM_ABE_MCASP_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0044)
|
||||
#define OMAP4_PM_ABE_MCBSP1_WKDEP_OFFSET 0x0048
|
||||
#define OMAP4430_PM_ABE_MCBSP1_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0048)
|
||||
#define OMAP4_RM_ABE_MCBSP1_CONTEXT_OFFSET 0x004c
|
||||
#define OMAP4430_RM_ABE_MCBSP1_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x004c)
|
||||
#define OMAP4_PM_ABE_MCBSP2_WKDEP_OFFSET 0x0050
|
||||
#define OMAP4430_PM_ABE_MCBSP2_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0050)
|
||||
#define OMAP4_RM_ABE_MCBSP2_CONTEXT_OFFSET 0x0054
|
||||
#define OMAP4430_RM_ABE_MCBSP2_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0054)
|
||||
#define OMAP4_PM_ABE_MCBSP3_WKDEP_OFFSET 0x0058
|
||||
#define OMAP4430_PM_ABE_MCBSP3_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0058)
|
||||
#define OMAP4_RM_ABE_MCBSP3_CONTEXT_OFFSET 0x005c
|
||||
#define OMAP4430_RM_ABE_MCBSP3_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x005c)
|
||||
#define OMAP4_PM_ABE_SLIMBUS_WKDEP_OFFSET 0x0060
|
||||
#define OMAP4430_PM_ABE_SLIMBUS_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0060)
|
||||
#define OMAP4_RM_ABE_SLIMBUS_CONTEXT_OFFSET 0x0064
|
||||
#define OMAP4430_RM_ABE_SLIMBUS_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0064)
|
||||
#define OMAP4_PM_ABE_TIMER5_WKDEP_OFFSET 0x0068
|
||||
#define OMAP4430_PM_ABE_TIMER5_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0068)
|
||||
#define OMAP4_RM_ABE_TIMER5_CONTEXT_OFFSET 0x006c
|
||||
#define OMAP4430_RM_ABE_TIMER5_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x006c)
|
||||
#define OMAP4_PM_ABE_TIMER6_WKDEP_OFFSET 0x0070
|
||||
#define OMAP4430_PM_ABE_TIMER6_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0070)
|
||||
#define OMAP4_RM_ABE_TIMER6_CONTEXT_OFFSET 0x0074
|
||||
#define OMAP4430_RM_ABE_TIMER6_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0074)
|
||||
#define OMAP4_PM_ABE_TIMER7_WKDEP_OFFSET 0x0078
|
||||
#define OMAP4430_PM_ABE_TIMER7_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0078)
|
||||
#define OMAP4_RM_ABE_TIMER7_CONTEXT_OFFSET 0x007c
|
||||
#define OMAP4430_RM_ABE_TIMER7_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x007c)
|
||||
#define OMAP4_PM_ABE_TIMER8_WKDEP_OFFSET 0x0080
|
||||
#define OMAP4430_PM_ABE_TIMER8_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0080)
|
||||
#define OMAP4_RM_ABE_TIMER8_CONTEXT_OFFSET 0x0084
|
||||
#define OMAP4430_RM_ABE_TIMER8_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0084)
|
||||
#define OMAP4_PM_ABE_WDT3_WKDEP_OFFSET 0x0088
|
||||
#define OMAP4430_PM_ABE_WDT3_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x0088)
|
||||
#define OMAP4_RM_ABE_WDT3_CONTEXT_OFFSET 0x008c
|
||||
#define OMAP4430_RM_ABE_WDT3_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ABE_MOD, 0x008c)
|
||||
|
||||
/* PRM.ALWAYS_ON_PRM register offsets */
|
||||
#define OMAP4_RM_ALWON_MDMINTC_CONTEXT_OFFSET 0x0024
|
||||
#define OMAP4430_RM_ALWON_MDMINTC_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ALWAYS_ON_MOD, 0x0024)
|
||||
#define OMAP4_PM_ALWON_SR_MPU_WKDEP_OFFSET 0x0028
|
||||
#define OMAP4430_PM_ALWON_SR_MPU_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ALWAYS_ON_MOD, 0x0028)
|
||||
#define OMAP4_RM_ALWON_SR_MPU_CONTEXT_OFFSET 0x002c
|
||||
#define OMAP4430_RM_ALWON_SR_MPU_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ALWAYS_ON_MOD, 0x002c)
|
||||
#define OMAP4_PM_ALWON_SR_IVA_WKDEP_OFFSET 0x0030
|
||||
#define OMAP4430_PM_ALWON_SR_IVA_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ALWAYS_ON_MOD, 0x0030)
|
||||
#define OMAP4_RM_ALWON_SR_IVA_CONTEXT_OFFSET 0x0034
|
||||
#define OMAP4430_RM_ALWON_SR_IVA_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ALWAYS_ON_MOD, 0x0034)
|
||||
#define OMAP4_PM_ALWON_SR_CORE_WKDEP_OFFSET 0x0038
|
||||
#define OMAP4430_PM_ALWON_SR_CORE_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ALWAYS_ON_MOD, 0x0038)
|
||||
#define OMAP4_RM_ALWON_SR_CORE_CONTEXT_OFFSET 0x003c
|
||||
#define OMAP4430_RM_ALWON_SR_CORE_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_ALWAYS_ON_MOD, 0x003c)
|
||||
|
||||
/* PRM.CORE_PRM register offsets */
|
||||
#define OMAP4_PM_CORE_PWRSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_PM_CORE_PWRSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0000)
|
||||
#define OMAP4_PM_CORE_PWRSTST_OFFSET 0x0004
|
||||
#define OMAP4430_PM_CORE_PWRSTST OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0004)
|
||||
#define OMAP4_RM_L3_1_L3_1_CONTEXT_OFFSET 0x0024
|
||||
#define OMAP4430_RM_L3_1_L3_1_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0024)
|
||||
#define OMAP4_RM_L3_2_L3_2_CONTEXT_OFFSET 0x0124
|
||||
#define OMAP4430_RM_L3_2_L3_2_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0124)
|
||||
#define OMAP4_RM_L3_2_GPMC_CONTEXT_OFFSET 0x012c
|
||||
#define OMAP4430_RM_L3_2_GPMC_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x012c)
|
||||
#define OMAP4_RM_L3_2_OCMC_RAM_CONTEXT_OFFSET 0x0134
|
||||
#define OMAP4430_RM_L3_2_OCMC_RAM_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0134)
|
||||
#define OMAP4_RM_DUCATI_RSTCTRL_OFFSET 0x0210
|
||||
#define OMAP4430_RM_DUCATI_RSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0210)
|
||||
#define OMAP4_RM_DUCATI_RSTST_OFFSET 0x0214
|
||||
#define OMAP4430_RM_DUCATI_RSTST OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0214)
|
||||
#define OMAP4_RM_DUCATI_DUCATI_CONTEXT_OFFSET 0x0224
|
||||
#define OMAP4430_RM_DUCATI_DUCATI_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0224)
|
||||
#define OMAP4_RM_SDMA_SDMA_CONTEXT_OFFSET 0x0324
|
||||
#define OMAP4430_RM_SDMA_SDMA_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0324)
|
||||
#define OMAP4_RM_MEMIF_DMM_CONTEXT_OFFSET 0x0424
|
||||
#define OMAP4430_RM_MEMIF_DMM_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0424)
|
||||
#define OMAP4_RM_MEMIF_EMIF_FW_CONTEXT_OFFSET 0x042c
|
||||
#define OMAP4430_RM_MEMIF_EMIF_FW_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x042c)
|
||||
#define OMAP4_RM_MEMIF_EMIF_1_CONTEXT_OFFSET 0x0434
|
||||
#define OMAP4430_RM_MEMIF_EMIF_1_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0434)
|
||||
#define OMAP4_RM_MEMIF_EMIF_2_CONTEXT_OFFSET 0x043c
|
||||
#define OMAP4430_RM_MEMIF_EMIF_2_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x043c)
|
||||
#define OMAP4_RM_MEMIF_DLL_CONTEXT_OFFSET 0x0444
|
||||
#define OMAP4430_RM_MEMIF_DLL_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0444)
|
||||
#define OMAP4_RM_MEMIF_EMIF_H1_CONTEXT_OFFSET 0x0454
|
||||
#define OMAP4430_RM_MEMIF_EMIF_H1_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0454)
|
||||
#define OMAP4_RM_MEMIF_EMIF_H2_CONTEXT_OFFSET 0x045c
|
||||
#define OMAP4430_RM_MEMIF_EMIF_H2_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x045c)
|
||||
#define OMAP4_RM_MEMIF_DLL_H_CONTEXT_OFFSET 0x0464
|
||||
#define OMAP4430_RM_MEMIF_DLL_H_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0464)
|
||||
#define OMAP4_RM_D2D_SAD2D_CONTEXT_OFFSET 0x0524
|
||||
#define OMAP4430_RM_D2D_SAD2D_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0524)
|
||||
#define OMAP4_RM_D2D_MODEM_ICR_CONTEXT_OFFSET 0x052c
|
||||
#define OMAP4430_RM_D2D_MODEM_ICR_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x052c)
|
||||
#define OMAP4_RM_D2D_SAD2D_FW_CONTEXT_OFFSET 0x0534
|
||||
#define OMAP4430_RM_D2D_SAD2D_FW_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0534)
|
||||
#define OMAP4_RM_L4CFG_L4_CFG_CONTEXT_OFFSET 0x0624
|
||||
#define OMAP4430_RM_L4CFG_L4_CFG_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0624)
|
||||
#define OMAP4_RM_L4CFG_HW_SEM_CONTEXT_OFFSET 0x062c
|
||||
#define OMAP4430_RM_L4CFG_HW_SEM_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x062c)
|
||||
#define OMAP4_RM_L4CFG_MAILBOX_CONTEXT_OFFSET 0x0634
|
||||
#define OMAP4430_RM_L4CFG_MAILBOX_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0634)
|
||||
#define OMAP4_RM_L4CFG_SAR_ROM_CONTEXT_OFFSET 0x063c
|
||||
#define OMAP4430_RM_L4CFG_SAR_ROM_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x063c)
|
||||
#define OMAP4_RM_L3INSTR_L3_3_CONTEXT_OFFSET 0x0724
|
||||
#define OMAP4430_RM_L3INSTR_L3_3_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0724)
|
||||
#define OMAP4_RM_L3INSTR_L3_INSTR_CONTEXT_OFFSET 0x072c
|
||||
#define OMAP4430_RM_L3INSTR_L3_INSTR_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x072c)
|
||||
#define OMAP4_RM_L3INSTR_OCP_WP1_CONTEXT_OFFSET 0x0744
|
||||
#define OMAP4430_RM_L3INSTR_OCP_WP1_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_MOD, 0x0744)
|
||||
|
||||
/* PRM.IVAHD_PRM register offsets */
|
||||
#define OMAP4_PM_IVAHD_PWRSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_PM_IVAHD_PWRSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_IVAHD_MOD, 0x0000)
|
||||
#define OMAP4_PM_IVAHD_PWRSTST_OFFSET 0x0004
|
||||
#define OMAP4430_PM_IVAHD_PWRSTST OMAP44XX_PRM_REGADDR(OMAP4430_PRM_IVAHD_MOD, 0x0004)
|
||||
#define OMAP4_RM_IVAHD_RSTCTRL_OFFSET 0x0010
|
||||
#define OMAP4430_RM_IVAHD_RSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_IVAHD_MOD, 0x0010)
|
||||
#define OMAP4_RM_IVAHD_RSTST_OFFSET 0x0014
|
||||
#define OMAP4430_RM_IVAHD_RSTST OMAP44XX_PRM_REGADDR(OMAP4430_PRM_IVAHD_MOD, 0x0014)
|
||||
#define OMAP4_RM_IVAHD_IVAHD_CONTEXT_OFFSET 0x0024
|
||||
#define OMAP4430_RM_IVAHD_IVAHD_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_IVAHD_MOD, 0x0024)
|
||||
#define OMAP4_RM_IVAHD_SL2_CONTEXT_OFFSET 0x002c
|
||||
#define OMAP4430_RM_IVAHD_SL2_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_IVAHD_MOD, 0x002c)
|
||||
|
||||
/* PRM.CAM_PRM register offsets */
|
||||
#define OMAP4_PM_CAM_PWRSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_PM_CAM_PWRSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CAM_MOD, 0x0000)
|
||||
#define OMAP4_PM_CAM_PWRSTST_OFFSET 0x0004
|
||||
#define OMAP4430_PM_CAM_PWRSTST OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CAM_MOD, 0x0004)
|
||||
#define OMAP4_RM_CAM_ISS_CONTEXT_OFFSET 0x0024
|
||||
#define OMAP4430_RM_CAM_ISS_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CAM_MOD, 0x0024)
|
||||
#define OMAP4_RM_CAM_FDIF_CONTEXT_OFFSET 0x002c
|
||||
#define OMAP4430_RM_CAM_FDIF_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CAM_MOD, 0x002c)
|
||||
|
||||
/* PRM.DSS_PRM register offsets */
|
||||
#define OMAP4_PM_DSS_PWRSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_PM_DSS_PWRSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DSS_MOD, 0x0000)
|
||||
#define OMAP4_PM_DSS_PWRSTST_OFFSET 0x0004
|
||||
#define OMAP4430_PM_DSS_PWRSTST OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DSS_MOD, 0x0004)
|
||||
#define OMAP4_PM_DSS_DSS_WKDEP_OFFSET 0x0020
|
||||
#define OMAP4430_PM_DSS_DSS_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DSS_MOD, 0x0020)
|
||||
#define OMAP4_RM_DSS_DSS_CONTEXT_OFFSET 0x0024
|
||||
#define OMAP4430_RM_DSS_DSS_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DSS_MOD, 0x0024)
|
||||
#define OMAP4_RM_DSS_DEISS_CONTEXT_OFFSET 0x002c
|
||||
#define OMAP4430_RM_DSS_DEISS_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DSS_MOD, 0x002c)
|
||||
|
||||
/* PRM.GFX_PRM register offsets */
|
||||
#define OMAP4_PM_GFX_PWRSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_PM_GFX_PWRSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_GFX_MOD, 0x0000)
|
||||
#define OMAP4_PM_GFX_PWRSTST_OFFSET 0x0004
|
||||
#define OMAP4430_PM_GFX_PWRSTST OMAP44XX_PRM_REGADDR(OMAP4430_PRM_GFX_MOD, 0x0004)
|
||||
#define OMAP4_RM_GFX_GFX_CONTEXT_OFFSET 0x0024
|
||||
#define OMAP4430_RM_GFX_GFX_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_GFX_MOD, 0x0024)
|
||||
|
||||
/* PRM.L3INIT_PRM register offsets */
|
||||
#define OMAP4_PM_L3INIT_PWRSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_PM_L3INIT_PWRSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x0000)
|
||||
#define OMAP4_PM_L3INIT_PWRSTST_OFFSET 0x0004
|
||||
#define OMAP4430_PM_L3INIT_PWRSTST OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x0004)
|
||||
#define OMAP4_PM_L3INIT_MMC1_WKDEP_OFFSET 0x0028
|
||||
#define OMAP4430_PM_L3INIT_MMC1_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x0028)
|
||||
#define OMAP4_RM_L3INIT_MMC1_CONTEXT_OFFSET 0x002c
|
||||
#define OMAP4430_RM_L3INIT_MMC1_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x002c)
|
||||
#define OMAP4_PM_L3INIT_MMC2_WKDEP_OFFSET 0x0030
|
||||
#define OMAP4430_PM_L3INIT_MMC2_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x0030)
|
||||
#define OMAP4_RM_L3INIT_MMC2_CONTEXT_OFFSET 0x0034
|
||||
#define OMAP4430_RM_L3INIT_MMC2_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x0034)
|
||||
#define OMAP4_PM_L3INIT_HSI_WKDEP_OFFSET 0x0038
|
||||
#define OMAP4430_PM_L3INIT_HSI_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x0038)
|
||||
#define OMAP4_RM_L3INIT_HSI_CONTEXT_OFFSET 0x003c
|
||||
#define OMAP4430_RM_L3INIT_HSI_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x003c)
|
||||
#define OMAP4_PM_L3INIT_UNIPRO1_WKDEP_OFFSET 0x0040
|
||||
#define OMAP4430_PM_L3INIT_UNIPRO1_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x0040)
|
||||
#define OMAP4_RM_L3INIT_UNIPRO1_CONTEXT_OFFSET 0x0044
|
||||
#define OMAP4430_RM_L3INIT_UNIPRO1_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x0044)
|
||||
#define OMAP4_PM_L3INIT_USB_HOST_WKDEP_OFFSET 0x0058
|
||||
#define OMAP4430_PM_L3INIT_USB_HOST_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x0058)
|
||||
#define OMAP4_RM_L3INIT_USB_HOST_CONTEXT_OFFSET 0x005c
|
||||
#define OMAP4430_RM_L3INIT_USB_HOST_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x005c)
|
||||
#define OMAP4_PM_L3INIT_USB_OTG_WKDEP_OFFSET 0x0060
|
||||
#define OMAP4430_PM_L3INIT_USB_OTG_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x0060)
|
||||
#define OMAP4_RM_L3INIT_USB_OTG_CONTEXT_OFFSET 0x0064
|
||||
#define OMAP4430_RM_L3INIT_USB_OTG_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x0064)
|
||||
#define OMAP4_PM_L3INIT_USB_TLL_WKDEP_OFFSET 0x0068
|
||||
#define OMAP4430_PM_L3INIT_USB_TLL_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x0068)
|
||||
#define OMAP4_RM_L3INIT_USB_TLL_CONTEXT_OFFSET 0x006c
|
||||
#define OMAP4430_RM_L3INIT_USB_TLL_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x006c)
|
||||
#define OMAP4_RM_L3INIT_P1500_CONTEXT_OFFSET 0x007c
|
||||
#define OMAP4430_RM_L3INIT_P1500_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x007c)
|
||||
#define OMAP4_RM_L3INIT_EMAC_CONTEXT_OFFSET 0x0084
|
||||
#define OMAP4430_RM_L3INIT_EMAC_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x0084)
|
||||
#define OMAP4_PM_L3INIT_SATA_WKDEP_OFFSET 0x0088
|
||||
#define OMAP4430_PM_L3INIT_SATA_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x0088)
|
||||
#define OMAP4_RM_L3INIT_SATA_CONTEXT_OFFSET 0x008c
|
||||
#define OMAP4430_RM_L3INIT_SATA_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x008c)
|
||||
#define OMAP4_RM_L3INIT_TPPSS_CONTEXT_OFFSET 0x0094
|
||||
#define OMAP4430_RM_L3INIT_TPPSS_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x0094)
|
||||
#define OMAP4_PM_L3INIT_PCIESS_WKDEP_OFFSET 0x0098
|
||||
#define OMAP4430_PM_L3INIT_PCIESS_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x0098)
|
||||
#define OMAP4_RM_L3INIT_PCIESS_CONTEXT_OFFSET 0x009c
|
||||
#define OMAP4430_RM_L3INIT_PCIESS_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x009c)
|
||||
#define OMAP4_RM_L3INIT_CCPTX_CONTEXT_OFFSET 0x00ac
|
||||
#define OMAP4430_RM_L3INIT_CCPTX_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x00ac)
|
||||
#define OMAP4_PM_L3INIT_XHPI_WKDEP_OFFSET 0x00c0
|
||||
#define OMAP4430_PM_L3INIT_XHPI_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x00c0)
|
||||
#define OMAP4_RM_L3INIT_XHPI_CONTEXT_OFFSET 0x00c4
|
||||
#define OMAP4430_RM_L3INIT_XHPI_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x00c4)
|
||||
#define OMAP4_PM_L3INIT_MMC6_WKDEP_OFFSET 0x00c8
|
||||
#define OMAP4430_PM_L3INIT_MMC6_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x00c8)
|
||||
#define OMAP4_RM_L3INIT_MMC6_CONTEXT_OFFSET 0x00cc
|
||||
#define OMAP4430_RM_L3INIT_MMC6_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x00cc)
|
||||
#define OMAP4_PM_L3INIT_USB_HOST_FS_WKDEP_OFFSET 0x00d0
|
||||
#define OMAP4430_PM_L3INIT_USB_HOST_FS_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x00d0)
|
||||
#define OMAP4_RM_L3INIT_USB_HOST_FS_CONTEXT_OFFSET 0x00d4
|
||||
#define OMAP4430_RM_L3INIT_USB_HOST_FS_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x00d4)
|
||||
#define OMAP4_RM_L3INIT_USBPHYOCP2SCP_CONTEXT_OFFSET 0x00e4
|
||||
#define OMAP4430_RM_L3INIT_USBPHYOCP2SCP_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L3INIT_MOD, 0x00e4)
|
||||
|
||||
/* PRM.L4PER_PRM register offsets */
|
||||
#define OMAP4_PM_L4PER_PWRSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_PM_L4PER_PWRSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0000)
|
||||
#define OMAP4_PM_L4PER_PWRSTST_OFFSET 0x0004
|
||||
#define OMAP4430_PM_L4PER_PWRSTST OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0004)
|
||||
#define OMAP4_RM_L4PER_ADC_CONTEXT_OFFSET 0x0024
|
||||
#define OMAP4430_RM_L4PER_ADC_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0024)
|
||||
#define OMAP4_PM_L4PER_DMTIMER10_WKDEP_OFFSET 0x0028
|
||||
#define OMAP4430_PM_L4PER_DMTIMER10_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0028)
|
||||
#define OMAP4_RM_L4PER_DMTIMER10_CONTEXT_OFFSET 0x002c
|
||||
#define OMAP4430_RM_L4PER_DMTIMER10_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x002c)
|
||||
#define OMAP4_PM_L4PER_DMTIMER11_WKDEP_OFFSET 0x0030
|
||||
#define OMAP4430_PM_L4PER_DMTIMER11_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0030)
|
||||
#define OMAP4_RM_L4PER_DMTIMER11_CONTEXT_OFFSET 0x0034
|
||||
#define OMAP4430_RM_L4PER_DMTIMER11_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0034)
|
||||
#define OMAP4_PM_L4PER_DMTIMER2_WKDEP_OFFSET 0x0038
|
||||
#define OMAP4430_PM_L4PER_DMTIMER2_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0038)
|
||||
#define OMAP4_RM_L4PER_DMTIMER2_CONTEXT_OFFSET 0x003c
|
||||
#define OMAP4430_RM_L4PER_DMTIMER2_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x003c)
|
||||
#define OMAP4_PM_L4PER_DMTIMER3_WKDEP_OFFSET 0x0040
|
||||
#define OMAP4430_PM_L4PER_DMTIMER3_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0040)
|
||||
#define OMAP4_RM_L4PER_DMTIMER3_CONTEXT_OFFSET 0x0044
|
||||
#define OMAP4430_RM_L4PER_DMTIMER3_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0044)
|
||||
#define OMAP4_PM_L4PER_DMTIMER4_WKDEP_OFFSET 0x0048
|
||||
#define OMAP4430_PM_L4PER_DMTIMER4_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0048)
|
||||
#define OMAP4_RM_L4PER_DMTIMER4_CONTEXT_OFFSET 0x004c
|
||||
#define OMAP4430_RM_L4PER_DMTIMER4_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x004c)
|
||||
#define OMAP4_PM_L4PER_DMTIMER9_WKDEP_OFFSET 0x0050
|
||||
#define OMAP4430_PM_L4PER_DMTIMER9_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0050)
|
||||
#define OMAP4_RM_L4PER_DMTIMER9_CONTEXT_OFFSET 0x0054
|
||||
#define OMAP4430_RM_L4PER_DMTIMER9_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0054)
|
||||
#define OMAP4_RM_L4PER_ELM_CONTEXT_OFFSET 0x005c
|
||||
#define OMAP4430_RM_L4PER_ELM_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x005c)
|
||||
#define OMAP4_PM_L4PER_GPIO2_WKDEP_OFFSET 0x0060
|
||||
#define OMAP4430_PM_L4PER_GPIO2_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0060)
|
||||
#define OMAP4_RM_L4PER_GPIO2_CONTEXT_OFFSET 0x0064
|
||||
#define OMAP4430_RM_L4PER_GPIO2_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0064)
|
||||
#define OMAP4_PM_L4PER_GPIO3_WKDEP_OFFSET 0x0068
|
||||
#define OMAP4430_PM_L4PER_GPIO3_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0068)
|
||||
#define OMAP4_RM_L4PER_GPIO3_CONTEXT_OFFSET 0x006c
|
||||
#define OMAP4430_RM_L4PER_GPIO3_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x006c)
|
||||
#define OMAP4_PM_L4PER_GPIO4_WKDEP_OFFSET 0x0070
|
||||
#define OMAP4430_PM_L4PER_GPIO4_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0070)
|
||||
#define OMAP4_RM_L4PER_GPIO4_CONTEXT_OFFSET 0x0074
|
||||
#define OMAP4430_RM_L4PER_GPIO4_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0074)
|
||||
#define OMAP4_PM_L4PER_GPIO5_WKDEP_OFFSET 0x0078
|
||||
#define OMAP4430_PM_L4PER_GPIO5_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0078)
|
||||
#define OMAP4_RM_L4PER_GPIO5_CONTEXT_OFFSET 0x007c
|
||||
#define OMAP4430_RM_L4PER_GPIO5_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x007c)
|
||||
#define OMAP4_PM_L4PER_GPIO6_WKDEP_OFFSET 0x0080
|
||||
#define OMAP4430_PM_L4PER_GPIO6_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0080)
|
||||
#define OMAP4_RM_L4PER_GPIO6_CONTEXT_OFFSET 0x0084
|
||||
#define OMAP4430_RM_L4PER_GPIO6_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0084)
|
||||
#define OMAP4_RM_L4PER_HDQ1W_CONTEXT_OFFSET 0x008c
|
||||
#define OMAP4430_RM_L4PER_HDQ1W_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x008c)
|
||||
#define OMAP4_PM_L4PER_HECC1_WKDEP_OFFSET 0x0090
|
||||
#define OMAP4430_PM_L4PER_HECC1_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0090)
|
||||
#define OMAP4_RM_L4PER_HECC1_CONTEXT_OFFSET 0x0094
|
||||
#define OMAP4430_RM_L4PER_HECC1_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0094)
|
||||
#define OMAP4_PM_L4PER_HECC2_WKDEP_OFFSET 0x0098
|
||||
#define OMAP4430_PM_L4PER_HECC2_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0098)
|
||||
#define OMAP4_RM_L4PER_HECC2_CONTEXT_OFFSET 0x009c
|
||||
#define OMAP4430_RM_L4PER_HECC2_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x009c)
|
||||
#define OMAP4_PM_L4PER_I2C1_WKDEP_OFFSET 0x00a0
|
||||
#define OMAP4430_PM_L4PER_I2C1_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00a0)
|
||||
#define OMAP4_RM_L4PER_I2C1_CONTEXT_OFFSET 0x00a4
|
||||
#define OMAP4430_RM_L4PER_I2C1_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00a4)
|
||||
#define OMAP4_PM_L4PER_I2C2_WKDEP_OFFSET 0x00a8
|
||||
#define OMAP4430_PM_L4PER_I2C2_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00a8)
|
||||
#define OMAP4_RM_L4PER_I2C2_CONTEXT_OFFSET 0x00ac
|
||||
#define OMAP4430_RM_L4PER_I2C2_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00ac)
|
||||
#define OMAP4_PM_L4PER_I2C3_WKDEP_OFFSET 0x00b0
|
||||
#define OMAP4430_PM_L4PER_I2C3_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00b0)
|
||||
#define OMAP4_RM_L4PER_I2C3_CONTEXT_OFFSET 0x00b4
|
||||
#define OMAP4430_RM_L4PER_I2C3_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00b4)
|
||||
#define OMAP4_PM_L4PER_I2C4_WKDEP_OFFSET 0x00b8
|
||||
#define OMAP4430_PM_L4PER_I2C4_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00b8)
|
||||
#define OMAP4_RM_L4PER_I2C4_CONTEXT_OFFSET 0x00bc
|
||||
#define OMAP4430_RM_L4PER_I2C4_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00bc)
|
||||
#define OMAP4_RM_L4PER_L4_PER_CONTEXT_OFFSET 0x00c0
|
||||
#define OMAP4430_RM_L4PER_L4_PER_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00c0)
|
||||
#define OMAP4_PM_L4PER_MCASP2_WKDEP_OFFSET 0x00d0
|
||||
#define OMAP4430_PM_L4PER_MCASP2_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00d0)
|
||||
#define OMAP4_RM_L4PER_MCASP2_CONTEXT_OFFSET 0x00d4
|
||||
#define OMAP4430_RM_L4PER_MCASP2_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00d4)
|
||||
#define OMAP4_PM_L4PER_MCASP3_WKDEP_OFFSET 0x00d8
|
||||
#define OMAP4430_PM_L4PER_MCASP3_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00d8)
|
||||
#define OMAP4_RM_L4PER_MCASP3_CONTEXT_OFFSET 0x00dc
|
||||
#define OMAP4430_RM_L4PER_MCASP3_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00dc)
|
||||
#define OMAP4_PM_L4PER_MCBSP4_WKDEP_OFFSET 0x00e0
|
||||
#define OMAP4430_PM_L4PER_MCBSP4_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00e0)
|
||||
#define OMAP4_RM_L4PER_MCBSP4_CONTEXT_OFFSET 0x00e4
|
||||
#define OMAP4430_RM_L4PER_MCBSP4_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00e4)
|
||||
#define OMAP4_RM_L4PER_MGATE_CONTEXT_OFFSET 0x00ec
|
||||
#define OMAP4430_RM_L4PER_MGATE_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00ec)
|
||||
#define OMAP4_PM_L4PER_MCSPI1_WKDEP_OFFSET 0x00f0
|
||||
#define OMAP4430_PM_L4PER_MCSPI1_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00f0)
|
||||
#define OMAP4_RM_L4PER_MCSPI1_CONTEXT_OFFSET 0x00f4
|
||||
#define OMAP4430_RM_L4PER_MCSPI1_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00f4)
|
||||
#define OMAP4_PM_L4PER_MCSPI2_WKDEP_OFFSET 0x00f8
|
||||
#define OMAP4430_PM_L4PER_MCSPI2_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00f8)
|
||||
#define OMAP4_RM_L4PER_MCSPI2_CONTEXT_OFFSET 0x00fc
|
||||
#define OMAP4430_RM_L4PER_MCSPI2_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x00fc)
|
||||
#define OMAP4_PM_L4PER_MCSPI3_WKDEP_OFFSET 0x0100
|
||||
#define OMAP4430_PM_L4PER_MCSPI3_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0100)
|
||||
#define OMAP4_RM_L4PER_MCSPI3_CONTEXT_OFFSET 0x0104
|
||||
#define OMAP4430_RM_L4PER_MCSPI3_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0104)
|
||||
#define OMAP4_PM_L4PER_MCSPI4_WKDEP_OFFSET 0x0108
|
||||
#define OMAP4430_PM_L4PER_MCSPI4_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0108)
|
||||
#define OMAP4_RM_L4PER_MCSPI4_CONTEXT_OFFSET 0x010c
|
||||
#define OMAP4430_RM_L4PER_MCSPI4_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x010c)
|
||||
#define OMAP4_PM_L4PER_MMCSD3_WKDEP_OFFSET 0x0120
|
||||
#define OMAP4430_PM_L4PER_MMCSD3_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0120)
|
||||
#define OMAP4_RM_L4PER_MMCSD3_CONTEXT_OFFSET 0x0124
|
||||
#define OMAP4430_RM_L4PER_MMCSD3_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0124)
|
||||
#define OMAP4_PM_L4PER_MMCSD4_WKDEP_OFFSET 0x0128
|
||||
#define OMAP4430_PM_L4PER_MMCSD4_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0128)
|
||||
#define OMAP4_RM_L4PER_MMCSD4_CONTEXT_OFFSET 0x012c
|
||||
#define OMAP4430_RM_L4PER_MMCSD4_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x012c)
|
||||
#define OMAP4_RM_L4PER_MSPROHG_CONTEXT_OFFSET 0x0134
|
||||
#define OMAP4430_RM_L4PER_MSPROHG_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0134)
|
||||
#define OMAP4_PM_L4PER_SLIMBUS2_WKDEP_OFFSET 0x0138
|
||||
#define OMAP4430_PM_L4PER_SLIMBUS2_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0138)
|
||||
#define OMAP4_RM_L4PER_SLIMBUS2_CONTEXT_OFFSET 0x013c
|
||||
#define OMAP4430_RM_L4PER_SLIMBUS2_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x013c)
|
||||
#define OMAP4_PM_L4PER_UART1_WKDEP_OFFSET 0x0140
|
||||
#define OMAP4430_PM_L4PER_UART1_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0140)
|
||||
#define OMAP4_RM_L4PER_UART1_CONTEXT_OFFSET 0x0144
|
||||
#define OMAP4430_RM_L4PER_UART1_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0144)
|
||||
#define OMAP4_PM_L4PER_UART2_WKDEP_OFFSET 0x0148
|
||||
#define OMAP4430_PM_L4PER_UART2_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0148)
|
||||
#define OMAP4_RM_L4PER_UART2_CONTEXT_OFFSET 0x014c
|
||||
#define OMAP4430_RM_L4PER_UART2_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x014c)
|
||||
#define OMAP4_PM_L4PER_UART3_WKDEP_OFFSET 0x0150
|
||||
#define OMAP4430_PM_L4PER_UART3_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0150)
|
||||
#define OMAP4_RM_L4PER_UART3_CONTEXT_OFFSET 0x0154
|
||||
#define OMAP4430_RM_L4PER_UART3_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0154)
|
||||
#define OMAP4_PM_L4PER_UART4_WKDEP_OFFSET 0x0158
|
||||
#define OMAP4430_PM_L4PER_UART4_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0158)
|
||||
#define OMAP4_RM_L4PER_UART4_CONTEXT_OFFSET 0x015c
|
||||
#define OMAP4430_RM_L4PER_UART4_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x015c)
|
||||
#define OMAP4_PM_L4PER_MMCSD5_WKDEP_OFFSET 0x0160
|
||||
#define OMAP4430_PM_L4PER_MMCSD5_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0160)
|
||||
#define OMAP4_RM_L4PER_MMCSD5_CONTEXT_OFFSET 0x0164
|
||||
#define OMAP4430_RM_L4PER_MMCSD5_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0164)
|
||||
#define OMAP4_PM_L4PER_I2C5_WKDEP_OFFSET 0x0168
|
||||
#define OMAP4430_PM_L4PER_I2C5_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x0168)
|
||||
#define OMAP4_RM_L4PER_I2C5_CONTEXT_OFFSET 0x016c
|
||||
#define OMAP4430_RM_L4PER_I2C5_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x016c)
|
||||
#define OMAP4_RM_L4SEC_AES1_CONTEXT_OFFSET 0x01a4
|
||||
#define OMAP4430_RM_L4SEC_AES1_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x01a4)
|
||||
#define OMAP4_RM_L4SEC_AES2_CONTEXT_OFFSET 0x01ac
|
||||
#define OMAP4430_RM_L4SEC_AES2_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x01ac)
|
||||
#define OMAP4_RM_L4SEC_DES3DES_CONTEXT_OFFSET 0x01b4
|
||||
#define OMAP4430_RM_L4SEC_DES3DES_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x01b4)
|
||||
#define OMAP4_RM_L4SEC_PKAEIP29_CONTEXT_OFFSET 0x01bc
|
||||
#define OMAP4430_RM_L4SEC_PKAEIP29_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x01bc)
|
||||
#define OMAP4_RM_L4SEC_RNG_CONTEXT_OFFSET 0x01c4
|
||||
#define OMAP4430_RM_L4SEC_RNG_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x01c4)
|
||||
#define OMAP4_RM_L4SEC_SHA2MD51_CONTEXT_OFFSET 0x01cc
|
||||
#define OMAP4430_RM_L4SEC_SHA2MD51_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x01cc)
|
||||
#define OMAP4_RM_L4SEC_CRYPTODMA_CONTEXT_OFFSET 0x01dc
|
||||
#define OMAP4430_RM_L4SEC_CRYPTODMA_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_L4PER_MOD, 0x01dc)
|
||||
|
||||
/* PRM.CEFUSE_PRM register offsets */
|
||||
#define OMAP4_PM_CEFUSE_PWRSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_PM_CEFUSE_PWRSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CEFUSE_MOD, 0x0000)
|
||||
#define OMAP4_PM_CEFUSE_PWRSTST_OFFSET 0x0004
|
||||
#define OMAP4430_PM_CEFUSE_PWRSTST OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CEFUSE_MOD, 0x0004)
|
||||
#define OMAP4_RM_CEFUSE_CEFUSE_CONTEXT_OFFSET 0x0024
|
||||
#define OMAP4430_RM_CEFUSE_CEFUSE_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CEFUSE_MOD, 0x0024)
|
||||
|
||||
/* PRM.WKUP_PRM register offsets */
|
||||
#define OMAP4_RM_WKUP_L4WKUP_CONTEXT_OFFSET 0x0024
|
||||
#define OMAP4430_RM_WKUP_L4WKUP_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x0024)
|
||||
#define OMAP4_RM_WKUP_WDT1_CONTEXT_OFFSET 0x002c
|
||||
#define OMAP4430_RM_WKUP_WDT1_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x002c)
|
||||
#define OMAP4_PM_WKUP_WDT2_WKDEP_OFFSET 0x0030
|
||||
#define OMAP4430_PM_WKUP_WDT2_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x0030)
|
||||
#define OMAP4_RM_WKUP_WDT2_CONTEXT_OFFSET 0x0034
|
||||
#define OMAP4430_RM_WKUP_WDT2_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x0034)
|
||||
#define OMAP4_PM_WKUP_GPIO1_WKDEP_OFFSET 0x0038
|
||||
#define OMAP4430_PM_WKUP_GPIO1_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x0038)
|
||||
#define OMAP4_RM_WKUP_GPIO1_CONTEXT_OFFSET 0x003c
|
||||
#define OMAP4430_RM_WKUP_GPIO1_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x003c)
|
||||
#define OMAP4_PM_WKUP_TIMER1_WKDEP_OFFSET 0x0040
|
||||
#define OMAP4430_PM_WKUP_TIMER1_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x0040)
|
||||
#define OMAP4_RM_WKUP_TIMER1_CONTEXT_OFFSET 0x0044
|
||||
#define OMAP4430_RM_WKUP_TIMER1_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x0044)
|
||||
#define OMAP4_PM_WKUP_TIMER12_WKDEP_OFFSET 0x0048
|
||||
#define OMAP4430_PM_WKUP_TIMER12_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x0048)
|
||||
#define OMAP4_RM_WKUP_TIMER12_CONTEXT_OFFSET 0x004c
|
||||
#define OMAP4430_RM_WKUP_TIMER12_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x004c)
|
||||
#define OMAP4_RM_WKUP_SYNCTIMER_CONTEXT_OFFSET 0x0054
|
||||
#define OMAP4430_RM_WKUP_SYNCTIMER_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x0054)
|
||||
#define OMAP4_PM_WKUP_USIM_WKDEP_OFFSET 0x0058
|
||||
#define OMAP4430_PM_WKUP_USIM_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x0058)
|
||||
#define OMAP4_RM_WKUP_USIM_CONTEXT_OFFSET 0x005c
|
||||
#define OMAP4430_RM_WKUP_USIM_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x005c)
|
||||
#define OMAP4_RM_WKUP_SARRAM_CONTEXT_OFFSET 0x0064
|
||||
#define OMAP4430_RM_WKUP_SARRAM_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x0064)
|
||||
#define OMAP4_PM_WKUP_KEYBOARD_WKDEP_OFFSET 0x0078
|
||||
#define OMAP4430_PM_WKUP_KEYBOARD_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x0078)
|
||||
#define OMAP4_RM_WKUP_KEYBOARD_CONTEXT_OFFSET 0x007c
|
||||
#define OMAP4430_RM_WKUP_KEYBOARD_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x007c)
|
||||
#define OMAP4_PM_WKUP_RTC_WKDEP_OFFSET 0x0080
|
||||
#define OMAP4430_PM_WKUP_RTC_WKDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x0080)
|
||||
#define OMAP4_RM_WKUP_RTC_CONTEXT_OFFSET 0x0084
|
||||
#define OMAP4430_RM_WKUP_RTC_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_MOD, 0x0084)
|
||||
|
||||
/* PRM.WKUP_CM register offsets */
|
||||
#define OMAP4_CM_WKUP_CLKSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_CM_WKUP_CLKSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_CM_MOD, 0x0000)
|
||||
#define OMAP4_CM_WKUP_L4WKUP_CLKCTRL_OFFSET 0x0020
|
||||
#define OMAP4430_CM_WKUP_L4WKUP_CLKCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_CM_MOD, 0x0020)
|
||||
#define OMAP4_CM_WKUP_WDT1_CLKCTRL_OFFSET 0x0028
|
||||
#define OMAP4430_CM_WKUP_WDT1_CLKCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_CM_MOD, 0x0028)
|
||||
#define OMAP4_CM_WKUP_WDT2_CLKCTRL_OFFSET 0x0030
|
||||
#define OMAP4430_CM_WKUP_WDT2_CLKCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_CM_MOD, 0x0030)
|
||||
#define OMAP4_CM_WKUP_GPIO1_CLKCTRL_OFFSET 0x0038
|
||||
#define OMAP4430_CM_WKUP_GPIO1_CLKCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_CM_MOD, 0x0038)
|
||||
#define OMAP4_CM_WKUP_TIMER1_CLKCTRL_OFFSET 0x0040
|
||||
#define OMAP4430_CM_WKUP_TIMER1_CLKCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_CM_MOD, 0x0040)
|
||||
#define OMAP4_CM_WKUP_TIMER12_CLKCTRL_OFFSET 0x0048
|
||||
#define OMAP4430_CM_WKUP_TIMER12_CLKCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_CM_MOD, 0x0048)
|
||||
#define OMAP4_CM_WKUP_SYNCTIMER_CLKCTRL_OFFSET 0x0050
|
||||
#define OMAP4430_CM_WKUP_SYNCTIMER_CLKCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_CM_MOD, 0x0050)
|
||||
#define OMAP4_CM_WKUP_USIM_CLKCTRL_OFFSET 0x0058
|
||||
#define OMAP4430_CM_WKUP_USIM_CLKCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_CM_MOD, 0x0058)
|
||||
#define OMAP4_CM_WKUP_SARRAM_CLKCTRL_OFFSET 0x0060
|
||||
#define OMAP4430_CM_WKUP_SARRAM_CLKCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_CM_MOD, 0x0060)
|
||||
#define OMAP4_CM_WKUP_KEYBOARD_CLKCTRL_OFFSET 0x0078
|
||||
#define OMAP4430_CM_WKUP_KEYBOARD_CLKCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_CM_MOD, 0x0078)
|
||||
#define OMAP4_CM_WKUP_RTC_CLKCTRL_OFFSET 0x0080
|
||||
#define OMAP4430_CM_WKUP_RTC_CLKCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_CM_MOD, 0x0080)
|
||||
#define OMAP4_CM_WKUP_BANDGAP_CLKCTRL_OFFSET 0x0088
|
||||
#define OMAP4430_CM_WKUP_BANDGAP_CLKCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_WKUP_CM_MOD, 0x0088)
|
||||
|
||||
/* PRM.EMU_PRM register offsets */
|
||||
#define OMAP4_PM_EMU_PWRSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_PM_EMU_PWRSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_EMU_MOD, 0x0000)
|
||||
#define OMAP4_PM_EMU_PWRSTST_OFFSET 0x0004
|
||||
#define OMAP4430_PM_EMU_PWRSTST OMAP44XX_PRM_REGADDR(OMAP4430_PRM_EMU_MOD, 0x0004)
|
||||
#define OMAP4_RM_EMU_DEBUGSS_CONTEXT_OFFSET 0x0024
|
||||
#define OMAP4430_RM_EMU_DEBUGSS_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_EMU_MOD, 0x0024)
|
||||
|
||||
/* PRM.EMU_CM register offsets */
|
||||
#define OMAP4_CM_EMU_CLKSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_CM_EMU_CLKSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_EMU_CM_MOD, 0x0000)
|
||||
#define OMAP4_CM_EMU_DYNAMICDEP_OFFSET 0x0008
|
||||
#define OMAP4430_CM_EMU_DYNAMICDEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_EMU_CM_MOD, 0x0008)
|
||||
#define OMAP4_CM_EMU_DEBUGSS_CLKCTRL_OFFSET 0x0020
|
||||
#define OMAP4430_CM_EMU_DEBUGSS_CLKCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_EMU_CM_MOD, 0x0020)
|
||||
|
||||
/* PRM.DEVICE_PRM register offsets */
|
||||
#define OMAP4_PRM_RSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_PRM_RSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0000)
|
||||
#define OMAP4_PRM_RSTST_OFFSET 0x0004
|
||||
#define OMAP4430_PRM_RSTST OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0004)
|
||||
#define OMAP4_PRM_RSTTIME_OFFSET 0x0008
|
||||
#define OMAP4430_PRM_RSTTIME OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0008)
|
||||
#define OMAP4_PRM_CLKREQCTRL_OFFSET 0x000c
|
||||
#define OMAP4430_PRM_CLKREQCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x000c)
|
||||
#define OMAP4_PRM_VOLTCTRL_OFFSET 0x0010
|
||||
#define OMAP4430_PRM_VOLTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0010)
|
||||
#define OMAP4_PRM_PWRREQCTRL_OFFSET 0x0014
|
||||
#define OMAP4430_PRM_PWRREQCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0014)
|
||||
#define OMAP4_PRM_PSCON_COUNT_OFFSET 0x0018
|
||||
#define OMAP4430_PRM_PSCON_COUNT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0018)
|
||||
#define OMAP4_PRM_IO_COUNT_OFFSET 0x001c
|
||||
#define OMAP4430_PRM_IO_COUNT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x001c)
|
||||
#define OMAP4_PRM_IO_PMCTRL_OFFSET 0x0020
|
||||
#define OMAP4430_PRM_IO_PMCTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0020)
|
||||
#define OMAP4_PRM_VOLTSETUP_WARMRESET_OFFSET 0x0024
|
||||
#define OMAP4430_PRM_VOLTSETUP_WARMRESET OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0024)
|
||||
#define OMAP4_PRM_VOLTSETUP_CORE_OFF_OFFSET 0x0028
|
||||
#define OMAP4430_PRM_VOLTSETUP_CORE_OFF OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0028)
|
||||
#define OMAP4_PRM_VOLTSETUP_MPU_OFF_OFFSET 0x002c
|
||||
#define OMAP4430_PRM_VOLTSETUP_MPU_OFF OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x002c)
|
||||
#define OMAP4_PRM_VOLTSETUP_IVA_OFF_OFFSET 0x0030
|
||||
#define OMAP4430_PRM_VOLTSETUP_IVA_OFF OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0030)
|
||||
#define OMAP4_PRM_VOLTSETUP_CORE_RET_SLEEP_OFFSET 0x0034
|
||||
#define OMAP4430_PRM_VOLTSETUP_CORE_RET_SLEEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0034)
|
||||
#define OMAP4_PRM_VOLTSETUP_MPU_RET_SLEEP_OFFSET 0x0038
|
||||
#define OMAP4430_PRM_VOLTSETUP_MPU_RET_SLEEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0038)
|
||||
#define OMAP4_PRM_VOLTSETUP_IVA_RET_SLEEP_OFFSET 0x003c
|
||||
#define OMAP4430_PRM_VOLTSETUP_IVA_RET_SLEEP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x003c)
|
||||
#define OMAP4_PRM_VP_CORE_CONFIG_OFFSET 0x0040
|
||||
#define OMAP4430_PRM_VP_CORE_CONFIG OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0040)
|
||||
#define OMAP4_PRM_VP_CORE_STATUS_OFFSET 0x0044
|
||||
#define OMAP4430_PRM_VP_CORE_STATUS OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0044)
|
||||
#define OMAP4_PRM_VP_CORE_VLIMITTO_OFFSET 0x0048
|
||||
#define OMAP4430_PRM_VP_CORE_VLIMITTO OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0048)
|
||||
#define OMAP4_PRM_VP_CORE_VOLTAGE_OFFSET 0x004c
|
||||
#define OMAP4430_PRM_VP_CORE_VOLTAGE OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x004c)
|
||||
#define OMAP4_PRM_VP_CORE_VSTEPMAX_OFFSET 0x0050
|
||||
#define OMAP4430_PRM_VP_CORE_VSTEPMAX OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0050)
|
||||
#define OMAP4_PRM_VP_CORE_VSTEPMIN_OFFSET 0x0054
|
||||
#define OMAP4430_PRM_VP_CORE_VSTEPMIN OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0054)
|
||||
#define OMAP4_PRM_VP_MPU_CONFIG_OFFSET 0x0058
|
||||
#define OMAP4430_PRM_VP_MPU_CONFIG OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0058)
|
||||
#define OMAP4_PRM_VP_MPU_STATUS_OFFSET 0x005c
|
||||
#define OMAP4430_PRM_VP_MPU_STATUS OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x005c)
|
||||
#define OMAP4_PRM_VP_MPU_VLIMITTO_OFFSET 0x0060
|
||||
#define OMAP4430_PRM_VP_MPU_VLIMITTO OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0060)
|
||||
#define OMAP4_PRM_VP_MPU_VOLTAGE_OFFSET 0x0064
|
||||
#define OMAP4430_PRM_VP_MPU_VOLTAGE OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0064)
|
||||
#define OMAP4_PRM_VP_MPU_VSTEPMAX_OFFSET 0x0068
|
||||
#define OMAP4430_PRM_VP_MPU_VSTEPMAX OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0068)
|
||||
#define OMAP4_PRM_VP_MPU_VSTEPMIN_OFFSET 0x006c
|
||||
#define OMAP4430_PRM_VP_MPU_VSTEPMIN OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x006c)
|
||||
#define OMAP4_PRM_VP_IVA_CONFIG_OFFSET 0x0070
|
||||
#define OMAP4430_PRM_VP_IVA_CONFIG OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0070)
|
||||
#define OMAP4_PRM_VP_IVA_STATUS_OFFSET 0x0074
|
||||
#define OMAP4430_PRM_VP_IVA_STATUS OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0074)
|
||||
#define OMAP4_PRM_VP_IVA_VLIMITTO_OFFSET 0x0078
|
||||
#define OMAP4430_PRM_VP_IVA_VLIMITTO OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0078)
|
||||
#define OMAP4_PRM_VP_IVA_VOLTAGE_OFFSET 0x007c
|
||||
#define OMAP4430_PRM_VP_IVA_VOLTAGE OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x007c)
|
||||
#define OMAP4_PRM_VP_IVA_VSTEPMAX_OFFSET 0x0080
|
||||
#define OMAP4430_PRM_VP_IVA_VSTEPMAX OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0080)
|
||||
#define OMAP4_PRM_VP_IVA_VSTEPMIN_OFFSET 0x0084
|
||||
#define OMAP4430_PRM_VP_IVA_VSTEPMIN OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0084)
|
||||
#define OMAP4_PRM_VC_SMPS_SA_OFFSET 0x0088
|
||||
#define OMAP4430_PRM_VC_SMPS_SA OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0088)
|
||||
#define OMAP4_PRM_VC_VAL_SMPS_RA_VOL_OFFSET 0x008c
|
||||
#define OMAP4430_PRM_VC_VAL_SMPS_RA_VOL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x008c)
|
||||
#define OMAP4_PRM_VC_VAL_SMPS_RA_CMD_OFFSET 0x0090
|
||||
#define OMAP4430_PRM_VC_VAL_SMPS_RA_CMD OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0090)
|
||||
#define OMAP4_PRM_VC_VAL_CMD_VDD_CORE_L_OFFSET 0x0094
|
||||
#define OMAP4430_PRM_VC_VAL_CMD_VDD_CORE_L OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0094)
|
||||
#define OMAP4_PRM_VC_VAL_CMD_VDD_MPU_L_OFFSET 0x0098
|
||||
#define OMAP4430_PRM_VC_VAL_CMD_VDD_MPU_L OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x0098)
|
||||
#define OMAP4_PRM_VC_VAL_CMD_VDD_IVA_L_OFFSET 0x009c
|
||||
#define OMAP4430_PRM_VC_VAL_CMD_VDD_IVA_L OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x009c)
|
||||
#define OMAP4_PRM_VC_VAL_BYPASS_OFFSET 0x00a0
|
||||
#define OMAP4430_PRM_VC_VAL_BYPASS OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00a0)
|
||||
#define OMAP4_PRM_VC_CFG_CHANNEL_OFFSET 0x00a4
|
||||
#define OMAP4430_PRM_VC_CFG_CHANNEL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00a4)
|
||||
#define OMAP4_PRM_VC_CFG_I2C_MODE_OFFSET 0x00a8
|
||||
#define OMAP4430_PRM_VC_CFG_I2C_MODE OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00a8)
|
||||
#define OMAP4_PRM_VC_CFG_I2C_CLK_OFFSET 0x00ac
|
||||
#define OMAP4430_PRM_VC_CFG_I2C_CLK OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00ac)
|
||||
#define OMAP4_PRM_SRAM_COUNT_OFFSET 0x00b0
|
||||
#define OMAP4430_PRM_SRAM_COUNT OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00b0)
|
||||
#define OMAP4_PRM_SRAM_WKUP_SETUP_OFFSET 0x00b4
|
||||
#define OMAP4430_PRM_SRAM_WKUP_SETUP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00b4)
|
||||
#define OMAP4_PRM_LDO_SRAM_CORE_SETUP_OFFSET 0x00b8
|
||||
#define OMAP4430_PRM_LDO_SRAM_CORE_SETUP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00b8)
|
||||
#define OMAP4_PRM_LDO_SRAM_CORE_CTRL_OFFSET 0x00bc
|
||||
#define OMAP4430_PRM_LDO_SRAM_CORE_CTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00bc)
|
||||
#define OMAP4_PRM_LDO_SRAM_MPU_SETUP_OFFSET 0x00c0
|
||||
#define OMAP4430_PRM_LDO_SRAM_MPU_SETUP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00c0)
|
||||
#define OMAP4_PRM_LDO_SRAM_MPU_CTRL_OFFSET 0x00c4
|
||||
#define OMAP4430_PRM_LDO_SRAM_MPU_CTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00c4)
|
||||
#define OMAP4_PRM_LDO_SRAM_IVA_SETUP_OFFSET 0x00c8
|
||||
#define OMAP4430_PRM_LDO_SRAM_IVA_SETUP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00c8)
|
||||
#define OMAP4_PRM_LDO_SRAM_IVA_CTRL_OFFSET 0x00cc
|
||||
#define OMAP4430_PRM_LDO_SRAM_IVA_CTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00cc)
|
||||
#define OMAP4_PRM_LDO_ABB_MPU_SETUP_OFFSET 0x00d0
|
||||
#define OMAP4430_PRM_LDO_ABB_MPU_SETUP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00d0)
|
||||
#define OMAP4_PRM_LDO_ABB_MPU_CTRL_OFFSET 0x00d4
|
||||
#define OMAP4430_PRM_LDO_ABB_MPU_CTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00d4)
|
||||
#define OMAP4_PRM_LDO_ABB_IVA_SETUP_OFFSET 0x00d8
|
||||
#define OMAP4430_PRM_LDO_ABB_IVA_SETUP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00d8)
|
||||
#define OMAP4_PRM_LDO_ABB_IVA_CTRL_OFFSET 0x00dc
|
||||
#define OMAP4430_PRM_LDO_ABB_IVA_CTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00dc)
|
||||
#define OMAP4_PRM_LDO_BANDGAP_CTRL_OFFSET 0x00e0
|
||||
#define OMAP4430_PRM_LDO_BANDGAP_CTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00e0)
|
||||
#define OMAP4_PRM_DEVICE_OFF_CTRL_OFFSET 0x00e4
|
||||
#define OMAP4430_PRM_DEVICE_OFF_CTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00e4)
|
||||
#define OMAP4_PRM_PHASE1_CNDP_OFFSET 0x00e8
|
||||
#define OMAP4430_PRM_PHASE1_CNDP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00e8)
|
||||
#define OMAP4_PRM_PHASE2A_CNDP_OFFSET 0x00ec
|
||||
#define OMAP4430_PRM_PHASE2A_CNDP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00ec)
|
||||
#define OMAP4_PRM_PHASE2B_CNDP_OFFSET 0x00f0
|
||||
#define OMAP4430_PRM_PHASE2B_CNDP OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00f0)
|
||||
#define OMAP4_PRM_MODEM_IF_CTRL_OFFSET 0x00f4
|
||||
#define OMAP4430_PRM_MODEM_IF_CTRL OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_MOD, 0x00f4)
|
||||
|
||||
/* CHIRON_PRCM */
|
||||
/*
|
||||
* PRCM_MPU
|
||||
*
|
||||
* The PRCM_MPU is a local PRCM inside the MPU subsystem. For the PRCM (global)
|
||||
* point of view the PRCM_MPU is a single entity. It shares the same
|
||||
* programming model as the global PRCM and thus can be assimilate as two new
|
||||
* MOD inside the PRCM
|
||||
*/
|
||||
|
||||
/* PRCM_MPU.OCP_SOCKET_PRCM register offsets */
|
||||
#define OMAP4_REVISION_PRCM_OFFSET 0x0000
|
||||
#define OMAP4430_REVISION_PRCM OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_OCP_SOCKET_PRCM_MOD, 0x0000)
|
||||
|
||||
/* CHIRON_PRCM.CHIRONSS_OCP_SOCKET_PRCM register offsets */
|
||||
#define OMAP4430_REVISION_PRCM OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_OCP_SOCKET_PRCM_MOD, 0x0000)
|
||||
/* PRCM_MPU.DEVICE_PRM register offsets */
|
||||
#define OMAP4_PRCM_MPU_PRM_RSTST_OFFSET 0x0000
|
||||
#define OMAP4430_PRCM_MPU_PRM_RSTST OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_DEVICE_PRM_MOD, 0x0000)
|
||||
|
||||
/* CHIRON_PRCM.CHIRONSS_DEVICE_PRM register offsets */
|
||||
#define OMAP4430_CHIRON_PRCM_PRM_RSTST OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_DEVICE_PRM_MOD, 0x0000)
|
||||
/* PRCM_MPU.CPU0 register offsets */
|
||||
#define OMAP4_PM_CPU0_PWRSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_PM_CPU0_PWRSTCTRL OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_MOD, 0x0000)
|
||||
#define OMAP4_PM_CPU0_PWRSTST_OFFSET 0x0004
|
||||
#define OMAP4430_PM_CPU0_PWRSTST OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_MOD, 0x0004)
|
||||
#define OMAP4_RM_CPU0_CPU0_CONTEXT_OFFSET 0x0008
|
||||
#define OMAP4430_RM_CPU0_CPU0_CONTEXT OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_MOD, 0x0008)
|
||||
#define OMAP4_RM_CPU0_CPU0_RSTCTRL_OFFSET 0x000c
|
||||
#define OMAP4430_RM_CPU0_CPU0_RSTCTRL OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_MOD, 0x000c)
|
||||
#define OMAP4_RM_CPU0_CPU0_RSTST_OFFSET 0x0010
|
||||
#define OMAP4430_RM_CPU0_CPU0_RSTST OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_MOD, 0x0010)
|
||||
#define OMAP4_CM_CPU0_CPU0_CLKCTRL_OFFSET 0x0014
|
||||
#define OMAP4430_CM_CPU0_CPU0_CLKCTRL OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_MOD, 0x0014)
|
||||
#define OMAP4_CM_CPU0_CLKSTCTRL_OFFSET 0x0018
|
||||
#define OMAP4430_CM_CPU0_CLKSTCTRL OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_MOD, 0x0018)
|
||||
|
||||
/* CHIRON_PRCM.CHIRONSS_CPU0 register offsets */
|
||||
#define OMAP4430_PM_PDA_CPU0_PWRSTCTRL OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0000)
|
||||
#define OMAP4430_PM_PDA_CPU0_PWRSTST OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0004)
|
||||
#define OMAP4430_RM_PDA_CPU0_CPU0_CONTEXT OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0008)
|
||||
#define OMAP4430_RM_PDA_CPU0_CPU0_RSTCTRL OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x000c)
|
||||
#define OMAP4430_RM_PDA_CPU0_CPU0_RSTST OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0010)
|
||||
#define OMAP4430_CM_PDA_CPU0_CPU0_CLKCTRL OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0014)
|
||||
#define OMAP4430_CM_PDA_CPU0_CLKSTCTRL OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0018)
|
||||
|
||||
/* CHIRON_PRCM.CHIRONSS_CPU1 register offsets */
|
||||
#define OMAP4430_PM_PDA_CPU1_PWRSTCTRL OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0000)
|
||||
#define OMAP4430_PM_PDA_CPU1_PWRSTST OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0004)
|
||||
#define OMAP4430_RM_PDA_CPU1_CPU1_CONTEXT OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0008)
|
||||
#define OMAP4430_RM_PDA_CPU1_CPU1_RSTCTRL OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x000c)
|
||||
#define OMAP4430_RM_PDA_CPU1_CPU1_RSTST OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0010)
|
||||
#define OMAP4430_CM_PDA_CPU1_CPU1_CLKCTRL OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0014)
|
||||
#define OMAP4430_CM_PDA_CPU1_CLKSTCTRL OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0018)
|
||||
/* PRCM_MPU.CPU1 register offsets */
|
||||
#define OMAP4_PM_CPU1_PWRSTCTRL_OFFSET 0x0000
|
||||
#define OMAP4430_PM_CPU1_PWRSTCTRL OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_MOD, 0x0000)
|
||||
#define OMAP4_PM_CPU1_PWRSTST_OFFSET 0x0004
|
||||
#define OMAP4430_PM_CPU1_PWRSTST OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_MOD, 0x0004)
|
||||
#define OMAP4_RM_CPU1_CPU1_CONTEXT_OFFSET 0x0008
|
||||
#define OMAP4430_RM_CPU1_CPU1_CONTEXT OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_MOD, 0x0008)
|
||||
#define OMAP4_RM_CPU1_CPU1_RSTCTRL_OFFSET 0x000c
|
||||
#define OMAP4430_RM_CPU1_CPU1_RSTCTRL OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_MOD, 0x000c)
|
||||
#define OMAP4_RM_CPU1_CPU1_RSTST_OFFSET 0x0010
|
||||
#define OMAP4430_RM_CPU1_CPU1_RSTST OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_MOD, 0x0010)
|
||||
#define OMAP4_CM_CPU1_CPU1_CLKCTRL_OFFSET 0x0014
|
||||
#define OMAP4430_CM_CPU1_CPU1_CLKCTRL OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_MOD, 0x0014)
|
||||
#define OMAP4_CM_CPU1_CLKSTCTRL_OFFSET 0x0018
|
||||
#define OMAP4430_CM_CPU1_CLKSTCTRL OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_MOD, 0x0018)
|
||||
#endif
|
||||
|
@ -110,8 +110,13 @@ config OMAP_IOMMU
|
||||
tristate
|
||||
|
||||
config OMAP_IOMMU_DEBUG
|
||||
depends on OMAP_IOMMU
|
||||
tristate
|
||||
tristate "Export OMAP IOMMU internals in DebugFS"
|
||||
depends on OMAP_IOMMU && DEBUG_FS
|
||||
help
|
||||
Select this to see extensive information about
|
||||
the internal state of OMAP IOMMU in debugfs.
|
||||
|
||||
Say N unless you know you need this.
|
||||
|
||||
choice
|
||||
prompt "System timer"
|
||||
|
@ -12,14 +12,12 @@
|
||||
*/
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/cpufreq.h>
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/io.h>
|
||||
@ -32,9 +30,9 @@ static DEFINE_SPINLOCK(clockfw_lock);
|
||||
|
||||
static struct clk_functions *arch_clock;
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
/*
|
||||
* Standard clock functions defined in include/linux/clk.h
|
||||
*-------------------------------------------------------------------------*/
|
||||
*/
|
||||
|
||||
int clk_enable(struct clk *clk)
|
||||
{
|
||||
@ -92,9 +90,9 @@ unsigned long clk_get_rate(struct clk *clk)
|
||||
}
|
||||
EXPORT_SYMBOL(clk_get_rate);
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
/*
|
||||
* Optional clock functions defined in include/linux/clk.h
|
||||
*-------------------------------------------------------------------------*/
|
||||
*/
|
||||
|
||||
long clk_round_rate(struct clk *clk, unsigned long rate)
|
||||
{
|
||||
@ -140,9 +138,6 @@ int clk_set_parent(struct clk *clk, struct clk *parent)
|
||||
unsigned long flags;
|
||||
int ret = -EINVAL;
|
||||
|
||||
if (cpu_is_omap44xx())
|
||||
/* OMAP4 clk framework not supported yet */
|
||||
return 0;
|
||||
if (clk == NULL || IS_ERR(clk) || parent == NULL || IS_ERR(parent))
|
||||
return ret;
|
||||
|
||||
@ -169,9 +164,9 @@ struct clk *clk_get_parent(struct clk *clk)
|
||||
}
|
||||
EXPORT_SYMBOL(clk_get_parent);
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
/*
|
||||
* OMAP specific clock functions shared between omap1 and omap2
|
||||
*-------------------------------------------------------------------------*/
|
||||
*/
|
||||
|
||||
int __initdata mpurate;
|
||||
|
||||
@ -222,7 +217,7 @@ void clk_reparent(struct clk *child, struct clk *parent)
|
||||
}
|
||||
|
||||
/* Propagate rate to children */
|
||||
void propagate_rate(struct clk * tclk)
|
||||
void propagate_rate(struct clk *tclk)
|
||||
{
|
||||
struct clk *clkp;
|
||||
|
||||
@ -389,7 +384,9 @@ void clk_exit_cpufreq_table(struct cpufreq_frequency_table **table)
|
||||
}
|
||||
#endif
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
/*
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_OMAP_RESET_CLOCKS
|
||||
/*
|
||||
@ -404,7 +401,7 @@ static int __init clk_disable_unused(void)
|
||||
if (ck->ops == &clkops_null)
|
||||
continue;
|
||||
|
||||
if (ck->usecount > 0 || ck->enable_reg == 0)
|
||||
if (ck->usecount > 0 || !ck->enable_reg)
|
||||
continue;
|
||||
|
||||
spin_lock_irqsave(&clockfw_lock, flags);
|
||||
|
@ -47,9 +47,6 @@
|
||||
struct omap_board_config_kernel *omap_board_config;
|
||||
int omap_board_config_size;
|
||||
|
||||
/* used by omap-smp.c and board-4430sdp.c */
|
||||
void __iomem *gic_cpu_base_addr;
|
||||
|
||||
static const void *get_config(u16 tag, size_t len, int skip, size_t *len_out)
|
||||
{
|
||||
struct omap_board_config_kernel *kinfo = NULL;
|
||||
|
@ -501,7 +501,8 @@ void omap_set_dma_src_burst_mode(int lch, enum omap_dma_burst_mode burst_mode)
|
||||
burst = 0x2;
|
||||
break;
|
||||
}
|
||||
/* not supported by current hardware on OMAP1
|
||||
/*
|
||||
* not supported by current hardware on OMAP1
|
||||
* w |= (0x03 << 7);
|
||||
* fall through
|
||||
*/
|
||||
@ -510,7 +511,8 @@ void omap_set_dma_src_burst_mode(int lch, enum omap_dma_burst_mode burst_mode)
|
||||
burst = 0x3;
|
||||
break;
|
||||
}
|
||||
/* OMAP1 don't support burst 16
|
||||
/*
|
||||
* OMAP1 don't support burst 16
|
||||
* fall through
|
||||
*/
|
||||
default:
|
||||
@ -604,7 +606,8 @@ void omap_set_dma_dest_burst_mode(int lch, enum omap_dma_burst_mode burst_mode)
|
||||
burst = 0x3;
|
||||
break;
|
||||
}
|
||||
/* OMAP1 don't support burst 16
|
||||
/*
|
||||
* OMAP1 don't support burst 16
|
||||
* fall through
|
||||
*/
|
||||
default:
|
||||
@ -709,6 +712,21 @@ static inline void omap2_enable_irq_lch(int lch)
|
||||
spin_unlock_irqrestore(&dma_chan_lock, flags);
|
||||
}
|
||||
|
||||
static inline void omap2_disable_irq_lch(int lch)
|
||||
{
|
||||
u32 val;
|
||||
unsigned long flags;
|
||||
|
||||
if (!cpu_class_is_omap2())
|
||||
return;
|
||||
|
||||
spin_lock_irqsave(&dma_chan_lock, flags);
|
||||
val = dma_read(IRQENABLE_L0);
|
||||
val &= ~(1 << lch);
|
||||
dma_write(val, IRQENABLE_L0);
|
||||
spin_unlock_irqrestore(&dma_chan_lock, flags);
|
||||
}
|
||||
|
||||
int omap_request_dma(int dev_id, const char *dev_name,
|
||||
void (*callback)(int lch, u16 ch_status, void *data),
|
||||
void *data, int *dma_ch_out)
|
||||
@ -807,14 +825,7 @@ void omap_free_dma(int lch)
|
||||
}
|
||||
|
||||
if (cpu_class_is_omap2()) {
|
||||
u32 val;
|
||||
|
||||
spin_lock_irqsave(&dma_chan_lock, flags);
|
||||
/* Disable interrupts */
|
||||
val = dma_read(IRQENABLE_L0);
|
||||
val &= ~(1 << lch);
|
||||
dma_write(val, IRQENABLE_L0);
|
||||
spin_unlock_irqrestore(&dma_chan_lock, flags);
|
||||
omap2_disable_irq_lch(lch);
|
||||
|
||||
/* Clear the CSR register and IRQ status register */
|
||||
dma_write(OMAP2_DMA_CSR_CLEAR_MASK, CSR(lch));
|
||||
@ -1277,8 +1288,10 @@ int omap_request_dma_chain(int dev_id, const char *dev_name,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* Allocate a queue to maintain the status of the channels
|
||||
* in the chain */
|
||||
/*
|
||||
* Allocate a queue to maintain the status of the channels
|
||||
* in the chain
|
||||
*/
|
||||
channels = kmalloc(sizeof(*channels) * no_of_chans, GFP_KERNEL);
|
||||
if (channels == NULL) {
|
||||
printk(KERN_ERR "omap_dma: No memory for channel queue\n");
|
||||
@ -1907,7 +1920,8 @@ static int omap2_dma_handle_ch(int ch)
|
||||
printk(KERN_INFO "DMA transaction error with device %d\n",
|
||||
dma_chan[ch].dev_id);
|
||||
if (cpu_class_is_omap2()) {
|
||||
/* Errata: sDMA Channel is not disabled
|
||||
/*
|
||||
* Errata: sDMA Channel is not disabled
|
||||
* after a transaction error. So we explicitely
|
||||
* disable the channel
|
||||
*/
|
||||
@ -2107,6 +2121,9 @@ static int __init omap_init_dma(void)
|
||||
|
||||
for (ch = 0; ch < dma_chan_count; ch++) {
|
||||
omap_clear_dma(ch);
|
||||
if (cpu_class_is_omap2())
|
||||
omap2_disable_irq_lch(ch);
|
||||
|
||||
dma_chan[ch].dev_id = -1;
|
||||
dma_chan[ch].next_lch = -1;
|
||||
|
||||
|
@ -264,8 +264,8 @@ static struct omap_dm_timer omap4_dm_timers[] = {
|
||||
{ .phys_base = 0x4a320000, .irq = OMAP44XX_IRQ_GPT12 },
|
||||
};
|
||||
static const char *omap4_dm_source_names[] __initdata = {
|
||||
"sys_ck",
|
||||
"omap_32k_fck",
|
||||
"sys_clkin_ck",
|
||||
"sys_32k_ck",
|
||||
NULL
|
||||
};
|
||||
static struct clk *omap4_dm_source_clocks[2];
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <asm/mach/irq.h>
|
||||
#include <plat/powerdomain.h>
|
||||
|
||||
/*
|
||||
* OMAP1510 GPIO registers
|
||||
@ -137,7 +138,11 @@
|
||||
#define OMAP4_GPIO_IRQSTATUSCLR1 0x0040
|
||||
#define OMAP4_GPIO_IRQWAKEN0 0x0044
|
||||
#define OMAP4_GPIO_IRQWAKEN1 0x0048
|
||||
#define OMAP4_GPIO_SYSSTATUS 0x0104
|
||||
#define OMAP4_GPIO_SYSSTATUS 0x0114
|
||||
#define OMAP4_GPIO_IRQENABLE1 0x011c
|
||||
#define OMAP4_GPIO_WAKE_EN 0x0120
|
||||
#define OMAP4_GPIO_IRQSTATUS2 0x0128
|
||||
#define OMAP4_GPIO_IRQENABLE2 0x012c
|
||||
#define OMAP4_GPIO_CTRL 0x0130
|
||||
#define OMAP4_GPIO_OE 0x0134
|
||||
#define OMAP4_GPIO_DATAIN 0x0138
|
||||
@ -148,6 +153,10 @@
|
||||
#define OMAP4_GPIO_FALLINGDETECT 0x014c
|
||||
#define OMAP4_GPIO_DEBOUNCENABLE 0x0150
|
||||
#define OMAP4_GPIO_DEBOUNCINGTIME 0x0154
|
||||
#define OMAP4_GPIO_CLEARIRQENABLE1 0x0160
|
||||
#define OMAP4_GPIO_SETIRQENABLE1 0x0164
|
||||
#define OMAP4_GPIO_CLEARWKUENA 0x0180
|
||||
#define OMAP4_GPIO_SETWKUENA 0x0184
|
||||
#define OMAP4_GPIO_CLEARDATAOUT 0x0190
|
||||
#define OMAP4_GPIO_SETDATAOUT 0x0194
|
||||
/*
|
||||
@ -195,6 +204,7 @@ struct gpio_bank {
|
||||
struct gpio_chip chip;
|
||||
struct clk *dbck;
|
||||
u32 mod_usage;
|
||||
u32 dbck_enable_mask;
|
||||
};
|
||||
|
||||
#define METHOD_MPUIO 0
|
||||
@ -303,8 +313,6 @@ struct omap3_gpio_regs {
|
||||
u32 risingdetect;
|
||||
u32 fallingdetect;
|
||||
u32 dataout;
|
||||
u32 setwkuena;
|
||||
u32 setdataout;
|
||||
};
|
||||
|
||||
static struct omap3_gpio_regs gpio_context[OMAP34XX_NR_GPIOS];
|
||||
@ -591,11 +599,15 @@ static int _get_gpio_dataout(struct gpio_bank *bank, int gpio)
|
||||
reg += OMAP7XX_GPIO_DATA_OUTPUT;
|
||||
break;
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_OMAP2PLUS
|
||||
#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
|
||||
case METHOD_GPIO_24XX:
|
||||
case METHOD_GPIO_44XX:
|
||||
reg += OMAP24XX_GPIO_DATAOUT;
|
||||
break;
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_OMAP4
|
||||
case METHOD_GPIO_44XX:
|
||||
reg += OMAP4_GPIO_DATAOUT;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
return -EINVAL;
|
||||
@ -646,6 +658,7 @@ void omap_set_gpio_debounce(int gpio, int enable)
|
||||
goto done;
|
||||
|
||||
if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
|
||||
bank->dbck_enable_mask = val;
|
||||
if (enable)
|
||||
clk_enable(bank->dbck);
|
||||
else
|
||||
@ -724,15 +737,27 @@ static inline void set_24xx_gpio_triggering(struct gpio_bank *bank, int gpio,
|
||||
OMAP4_GPIO_IRQWAKEN0);
|
||||
}
|
||||
} else {
|
||||
if (trigger != 0)
|
||||
/*
|
||||
* GPIO wakeup request can only be generated on edge
|
||||
* transitions
|
||||
*/
|
||||
if (trigger & IRQ_TYPE_EDGE_BOTH)
|
||||
__raw_writel(1 << gpio, bank->base
|
||||
+ OMAP24XX_GPIO_SETWKUENA);
|
||||
else
|
||||
__raw_writel(1 << gpio, bank->base
|
||||
+ OMAP24XX_GPIO_CLEARWKUENA);
|
||||
}
|
||||
} else {
|
||||
if (trigger != 0)
|
||||
}
|
||||
/* This part needs to be executed always for OMAP34xx */
|
||||
if (cpu_is_omap34xx() || (bank->non_wakeup_gpios & gpio_bit)) {
|
||||
/*
|
||||
* Log the edge gpio and manually trigger the IRQ
|
||||
* after resume if the input level changes
|
||||
* to avoid irq lost during PER RET/OFF mode
|
||||
* Applies for omap2 non-wakeup gpio and all omap3 gpios
|
||||
*/
|
||||
if (trigger & IRQ_TYPE_EDGE_BOTH)
|
||||
bank->enabled_non_wakeup_gpios |= gpio_bit;
|
||||
else
|
||||
bank->enabled_non_wakeup_gpios &= ~gpio_bit;
|
||||
@ -1200,11 +1225,17 @@ static int omap_gpio_request(struct gpio_chip *chip, unsigned offset)
|
||||
#endif
|
||||
if (!cpu_class_is_omap1()) {
|
||||
if (!bank->mod_usage) {
|
||||
void __iomem *reg = bank->base;
|
||||
u32 ctrl;
|
||||
ctrl = __raw_readl(bank->base + OMAP24XX_GPIO_CTRL);
|
||||
ctrl &= 0xFFFFFFFE;
|
||||
|
||||
if (cpu_is_omap24xx() || cpu_is_omap34xx())
|
||||
reg += OMAP24XX_GPIO_CTRL;
|
||||
else if (cpu_is_omap44xx())
|
||||
reg += OMAP4_GPIO_CTRL;
|
||||
ctrl = __raw_readl(reg);
|
||||
/* Module is enabled, clocks are not gated */
|
||||
__raw_writel(ctrl, bank->base + OMAP24XX_GPIO_CTRL);
|
||||
ctrl &= 0xFFFFFFFE;
|
||||
__raw_writel(ctrl, reg);
|
||||
}
|
||||
bank->mod_usage |= 1 << offset;
|
||||
}
|
||||
@ -1226,22 +1257,34 @@ static void omap_gpio_free(struct gpio_chip *chip, unsigned offset)
|
||||
__raw_writel(1 << offset, reg);
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_OMAP2PLUS
|
||||
if ((bank->method == METHOD_GPIO_24XX) ||
|
||||
(bank->method == METHOD_GPIO_44XX)) {
|
||||
#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
|
||||
if (bank->method == METHOD_GPIO_24XX) {
|
||||
/* Disable wake-up during idle for dynamic tick */
|
||||
void __iomem *reg = bank->base + OMAP24XX_GPIO_CLEARWKUENA;
|
||||
__raw_writel(1 << offset, reg);
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_OMAP4
|
||||
if (bank->method == METHOD_GPIO_44XX) {
|
||||
/* Disable wake-up during idle for dynamic tick */
|
||||
void __iomem *reg = bank->base + OMAP4_GPIO_IRQWAKEN0;
|
||||
__raw_writel(1 << offset, reg);
|
||||
}
|
||||
#endif
|
||||
if (!cpu_class_is_omap1()) {
|
||||
bank->mod_usage &= ~(1 << offset);
|
||||
if (!bank->mod_usage) {
|
||||
void __iomem *reg = bank->base;
|
||||
u32 ctrl;
|
||||
ctrl = __raw_readl(bank->base + OMAP24XX_GPIO_CTRL);
|
||||
|
||||
if (cpu_is_omap24xx() || cpu_is_omap34xx())
|
||||
reg += OMAP24XX_GPIO_CTRL;
|
||||
else if (cpu_is_omap44xx())
|
||||
reg += OMAP4_GPIO_CTRL;
|
||||
ctrl = __raw_readl(reg);
|
||||
/* Module is disabled, clocks are gated */
|
||||
ctrl |= 1;
|
||||
__raw_writel(ctrl, bank->base + OMAP24XX_GPIO_CTRL);
|
||||
__raw_writel(ctrl, reg);
|
||||
}
|
||||
}
|
||||
_reset_gpio(bank, bank->chip.base + offset);
|
||||
@ -1570,9 +1613,14 @@ static int gpio_is_input(struct gpio_bank *bank, int mask)
|
||||
reg += OMAP7XX_GPIO_DIR_CONTROL;
|
||||
break;
|
||||
case METHOD_GPIO_24XX:
|
||||
case METHOD_GPIO_44XX:
|
||||
reg += OMAP24XX_GPIO_OE;
|
||||
break;
|
||||
case METHOD_GPIO_44XX:
|
||||
reg += OMAP4_GPIO_OE;
|
||||
break;
|
||||
default:
|
||||
WARN_ONCE(1, "gpio_is_input: incorrect OMAP GPIO method");
|
||||
return -EINVAL;
|
||||
}
|
||||
return __raw_readl(reg) & mask;
|
||||
}
|
||||
@ -1845,7 +1893,8 @@ static int __init _omap_gpio_init(void)
|
||||
__raw_writel(0, bank->base +
|
||||
OMAP24XX_GPIO_CTRL);
|
||||
}
|
||||
if (i < ARRAY_SIZE(non_wakeup_gpios))
|
||||
if (cpu_is_omap24xx() &&
|
||||
i < ARRAY_SIZE(non_wakeup_gpios))
|
||||
bank->non_wakeup_gpios = non_wakeup_gpios[i];
|
||||
gpio_count = 32;
|
||||
}
|
||||
@ -2028,16 +2077,27 @@ static struct sys_device omap_gpio_device = {
|
||||
|
||||
static int workaround_enabled;
|
||||
|
||||
void omap2_gpio_prepare_for_retention(void)
|
||||
void omap2_gpio_prepare_for_idle(int power_state)
|
||||
{
|
||||
int i, c = 0;
|
||||
int min = 0;
|
||||
|
||||
/* Remove triggering for all non-wakeup GPIOs. Otherwise spurious
|
||||
* IRQs will be generated. See OMAP2420 Errata item 1.101. */
|
||||
for (i = 0; i < gpio_bank_count; i++) {
|
||||
if (cpu_is_omap34xx())
|
||||
min = 1;
|
||||
|
||||
for (i = min; i < gpio_bank_count; i++) {
|
||||
struct gpio_bank *bank = &gpio_bank[i];
|
||||
u32 l1, l2;
|
||||
|
||||
if (bank->dbck_enable_mask)
|
||||
clk_disable(bank->dbck);
|
||||
|
||||
if (power_state > PWRDM_POWER_OFF)
|
||||
continue;
|
||||
|
||||
/* If going to OFF, remove triggering for all
|
||||
* non-wakeup GPIOs. Otherwise spurious IRQs will be
|
||||
* generated. See OMAP2420 Errata item 1.101. */
|
||||
if (!(bank->enabled_non_wakeup_gpios))
|
||||
continue;
|
||||
|
||||
@ -2085,16 +2145,23 @@ void omap2_gpio_prepare_for_retention(void)
|
||||
workaround_enabled = 1;
|
||||
}
|
||||
|
||||
void omap2_gpio_resume_after_retention(void)
|
||||
void omap2_gpio_resume_after_idle(void)
|
||||
{
|
||||
int i;
|
||||
int min = 0;
|
||||
|
||||
if (!workaround_enabled)
|
||||
return;
|
||||
for (i = 0; i < gpio_bank_count; i++) {
|
||||
if (cpu_is_omap34xx())
|
||||
min = 1;
|
||||
for (i = min; i < gpio_bank_count; i++) {
|
||||
struct gpio_bank *bank = &gpio_bank[i];
|
||||
u32 l, gen, gen0, gen1;
|
||||
|
||||
if (bank->dbck_enable_mask)
|
||||
clk_enable(bank->dbck);
|
||||
|
||||
if (!workaround_enabled)
|
||||
continue;
|
||||
|
||||
if (!(bank->enabled_non_wakeup_gpios))
|
||||
continue;
|
||||
|
||||
@ -2119,7 +2186,7 @@ void omap2_gpio_resume_after_retention(void)
|
||||
* horribly racy, but it's the best we can do to work around
|
||||
* this silicon bug. */
|
||||
l ^= bank->saved_datain;
|
||||
l &= bank->non_wakeup_gpios;
|
||||
l &= bank->enabled_non_wakeup_gpios;
|
||||
|
||||
/*
|
||||
* No need to generate IRQs for the rising edge for gpio IRQs
|
||||
@ -2207,10 +2274,6 @@ void omap_gpio_save_context(void)
|
||||
__raw_readl(bank->base + OMAP24XX_GPIO_FALLINGDETECT);
|
||||
gpio_context[i].dataout =
|
||||
__raw_readl(bank->base + OMAP24XX_GPIO_DATAOUT);
|
||||
gpio_context[i].setwkuena =
|
||||
__raw_readl(bank->base + OMAP24XX_GPIO_SETWKUENA);
|
||||
gpio_context[i].setdataout =
|
||||
__raw_readl(bank->base + OMAP24XX_GPIO_SETDATAOUT);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2243,10 +2306,6 @@ void omap_gpio_restore_context(void)
|
||||
bank->base + OMAP24XX_GPIO_FALLINGDETECT);
|
||||
__raw_writel(gpio_context[i].dataout,
|
||||
bank->base + OMAP24XX_GPIO_DATAOUT);
|
||||
__raw_writel(gpio_context[i].setwkuena,
|
||||
bank->base + OMAP24XX_GPIO_SETWKUENA);
|
||||
__raw_writel(gpio_context[i].setdataout,
|
||||
bank->base + OMAP24XX_GPIO_SETDATAOUT);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -2286,110 +2345,3 @@ static int __init omap_gpio_sysinit(void)
|
||||
}
|
||||
|
||||
arch_initcall(omap_gpio_sysinit);
|
||||
|
||||
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/seq_file.h>
|
||||
|
||||
static int dbg_gpio_show(struct seq_file *s, void *unused)
|
||||
{
|
||||
unsigned i, j, gpio;
|
||||
|
||||
for (i = 0, gpio = 0; i < gpio_bank_count; i++) {
|
||||
struct gpio_bank *bank = gpio_bank + i;
|
||||
unsigned bankwidth = 16;
|
||||
u32 mask = 1;
|
||||
|
||||
if (bank_is_mpuio(bank))
|
||||
gpio = OMAP_MPUIO(0);
|
||||
else if (cpu_class_is_omap2() || cpu_is_omap7xx())
|
||||
bankwidth = 32;
|
||||
|
||||
for (j = 0; j < bankwidth; j++, gpio++, mask <<= 1) {
|
||||
unsigned irq, value, is_in, irqstat;
|
||||
const char *label;
|
||||
|
||||
label = gpiochip_is_requested(&bank->chip, j);
|
||||
if (!label)
|
||||
continue;
|
||||
|
||||
irq = bank->virtual_irq_start + j;
|
||||
value = gpio_get_value(gpio);
|
||||
is_in = gpio_is_input(bank, mask);
|
||||
|
||||
if (bank_is_mpuio(bank))
|
||||
seq_printf(s, "MPUIO %2d ", j);
|
||||
else
|
||||
seq_printf(s, "GPIO %3d ", gpio);
|
||||
seq_printf(s, "(%-20.20s): %s %s",
|
||||
label,
|
||||
is_in ? "in " : "out",
|
||||
value ? "hi" : "lo");
|
||||
|
||||
/* FIXME for at least omap2, show pullup/pulldown state */
|
||||
|
||||
irqstat = irq_desc[irq].status;
|
||||
#if defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP2PLUS)
|
||||
if (is_in && ((bank->suspend_wakeup & mask)
|
||||
|| irqstat & IRQ_TYPE_SENSE_MASK)) {
|
||||
char *trigger = NULL;
|
||||
|
||||
switch (irqstat & IRQ_TYPE_SENSE_MASK) {
|
||||
case IRQ_TYPE_EDGE_FALLING:
|
||||
trigger = "falling";
|
||||
break;
|
||||
case IRQ_TYPE_EDGE_RISING:
|
||||
trigger = "rising";
|
||||
break;
|
||||
case IRQ_TYPE_EDGE_BOTH:
|
||||
trigger = "bothedge";
|
||||
break;
|
||||
case IRQ_TYPE_LEVEL_LOW:
|
||||
trigger = "low";
|
||||
break;
|
||||
case IRQ_TYPE_LEVEL_HIGH:
|
||||
trigger = "high";
|
||||
break;
|
||||
case IRQ_TYPE_NONE:
|
||||
trigger = "(?)";
|
||||
break;
|
||||
}
|
||||
seq_printf(s, ", irq-%d %-8s%s",
|
||||
irq, trigger,
|
||||
(bank->suspend_wakeup & mask)
|
||||
? " wakeup" : "");
|
||||
}
|
||||
#endif
|
||||
seq_printf(s, "\n");
|
||||
}
|
||||
|
||||
if (bank_is_mpuio(bank)) {
|
||||
seq_printf(s, "\n");
|
||||
gpio = 0;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int dbg_gpio_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, dbg_gpio_show, &inode->i_private);
|
||||
}
|
||||
|
||||
static const struct file_operations debug_fops = {
|
||||
.open = dbg_gpio_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static int __init omap_gpio_debuginit(void)
|
||||
{
|
||||
(void) debugfs_create_file("omap_gpio", S_IRUGO,
|
||||
NULL, NULL, &debug_fops);
|
||||
return 0;
|
||||
}
|
||||
late_initcall(omap_gpio_debuginit);
|
||||
#endif
|
||||
|
@ -38,6 +38,7 @@
|
||||
#define OMAP2_I2C_BASE1 0x48070000
|
||||
#define OMAP2_I2C_BASE2 0x48072000
|
||||
#define OMAP2_I2C_BASE3 0x48060000
|
||||
#define OMAP4_I2C_BASE4 0x48350000
|
||||
|
||||
static const char name[] = "i2c_omap";
|
||||
|
||||
@ -54,11 +55,14 @@ static const char name[] = "i2c_omap";
|
||||
|
||||
static struct resource i2c_resources[][2] = {
|
||||
{ I2C_RESOURCE_BUILDER(0, 0) },
|
||||
#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
|
||||
{ I2C_RESOURCE_BUILDER(OMAP2_I2C_BASE2, INT_24XX_I2C2_IRQ) },
|
||||
#if defined(CONFIG_ARCH_OMAP2PLUS)
|
||||
{ I2C_RESOURCE_BUILDER(OMAP2_I2C_BASE2, 0) },
|
||||
#endif
|
||||
#if defined(CONFIG_ARCH_OMAP3)
|
||||
{ I2C_RESOURCE_BUILDER(OMAP2_I2C_BASE3, INT_34XX_I2C3_IRQ) },
|
||||
#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
|
||||
{ I2C_RESOURCE_BUILDER(OMAP2_I2C_BASE3, 0) },
|
||||
#endif
|
||||
#if defined(CONFIG_ARCH_OMAP4)
|
||||
{ I2C_RESOURCE_BUILDER(OMAP4_I2C_BASE4, 0) },
|
||||
#endif
|
||||
};
|
||||
|
||||
@ -76,12 +80,15 @@ static struct resource i2c_resources[][2] = {
|
||||
static struct omap_i2c_bus_platform_data i2c_pdata[ARRAY_SIZE(i2c_resources)];
|
||||
static struct platform_device omap_i2c_devices[] = {
|
||||
I2C_DEV_BUILDER(1, i2c_resources[0], &i2c_pdata[0]),
|
||||
#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
|
||||
#if defined(CONFIG_ARCH_OMAP2PLUS)
|
||||
I2C_DEV_BUILDER(2, i2c_resources[1], &i2c_pdata[1]),
|
||||
#endif
|
||||
#if defined(CONFIG_ARCH_OMAP3)
|
||||
#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
|
||||
I2C_DEV_BUILDER(3, i2c_resources[2], &i2c_pdata[2]),
|
||||
#endif
|
||||
#if defined(CONFIG_ARCH_OMAP4)
|
||||
I2C_DEV_BUILDER(4, i2c_resources[3], &i2c_pdata[3]),
|
||||
#endif
|
||||
};
|
||||
|
||||
#define OMAP_I2C_CMDLINE_SETUP (BIT(31))
|
||||
@ -96,37 +103,60 @@ static int __init omap_i2c_nr_ports(void)
|
||||
ports = 2;
|
||||
else if (cpu_is_omap34xx())
|
||||
ports = 3;
|
||||
else if (cpu_is_omap44xx())
|
||||
ports = 4;
|
||||
|
||||
return ports;
|
||||
}
|
||||
|
||||
static int __init omap_i2c_add_bus(int bus_id)
|
||||
/* Shared between omap2 and 3 */
|
||||
static resource_size_t omap2_i2c_irq[3] __initdata = {
|
||||
INT_24XX_I2C1_IRQ,
|
||||
INT_24XX_I2C2_IRQ,
|
||||
INT_34XX_I2C3_IRQ,
|
||||
};
|
||||
|
||||
static resource_size_t omap4_i2c_irq[4] __initdata = {
|
||||
OMAP44XX_IRQ_I2C1,
|
||||
OMAP44XX_IRQ_I2C2,
|
||||
OMAP44XX_IRQ_I2C3,
|
||||
OMAP44XX_IRQ_I2C4,
|
||||
};
|
||||
|
||||
static inline int omap1_i2c_add_bus(struct platform_device *pdev, int bus_id)
|
||||
{
|
||||
struct platform_device *pdev;
|
||||
struct omap_i2c_bus_platform_data *pd;
|
||||
struct resource *res;
|
||||
resource_size_t base, irq;
|
||||
|
||||
pdev = &omap_i2c_devices[bus_id - 1];
|
||||
pd = pdev->dev.platform_data;
|
||||
res = pdev->resource;
|
||||
res[0].start = OMAP1_I2C_BASE;
|
||||
res[0].end = res[0].start + OMAP_I2C_SIZE;
|
||||
res[1].start = INT_I2C;
|
||||
omap1_i2c_mux_pins(bus_id);
|
||||
|
||||
return platform_device_register(pdev);
|
||||
}
|
||||
|
||||
static inline int omap2_i2c_add_bus(struct platform_device *pdev, int bus_id)
|
||||
{
|
||||
struct resource *res;
|
||||
resource_size_t *irq;
|
||||
|
||||
res = pdev->resource;
|
||||
|
||||
if (!cpu_is_omap44xx())
|
||||
irq = omap2_i2c_irq;
|
||||
else
|
||||
irq = omap4_i2c_irq;
|
||||
|
||||
if (bus_id == 1) {
|
||||
res = pdev->resource;
|
||||
if (cpu_class_is_omap1()) {
|
||||
base = OMAP1_I2C_BASE;
|
||||
irq = INT_I2C;
|
||||
} else {
|
||||
base = OMAP2_I2C_BASE1;
|
||||
irq = INT_24XX_I2C1_IRQ;
|
||||
}
|
||||
res[0].start = base;
|
||||
res[0].end = base + OMAP_I2C_SIZE;
|
||||
res[1].start = irq;
|
||||
res[0].start = OMAP2_I2C_BASE1;
|
||||
res[0].end = res[0].start + OMAP_I2C_SIZE;
|
||||
}
|
||||
|
||||
if (cpu_class_is_omap1())
|
||||
omap1_i2c_mux_pins(bus_id);
|
||||
if (cpu_class_is_omap2())
|
||||
omap2_i2c_mux_pins(bus_id);
|
||||
res[1].start = irq[bus_id - 1];
|
||||
omap2_i2c_mux_pins(bus_id);
|
||||
|
||||
/*
|
||||
* When waiting for completion of a i2c transfer, we need to
|
||||
@ -134,12 +164,28 @@ static int __init omap_i2c_add_bus(int bus_id)
|
||||
* ensure quick enough wakeup from idle, when transfer
|
||||
* completes.
|
||||
*/
|
||||
if (cpu_is_omap34xx())
|
||||
if (cpu_is_omap34xx()) {
|
||||
struct omap_i2c_bus_platform_data *pd;
|
||||
|
||||
pd = pdev->dev.platform_data;
|
||||
pd->set_mpu_wkup_lat = omap_pm_set_max_mpu_wakeup_lat;
|
||||
}
|
||||
|
||||
return platform_device_register(pdev);
|
||||
}
|
||||
|
||||
static int __init omap_i2c_add_bus(int bus_id)
|
||||
{
|
||||
struct platform_device *pdev;
|
||||
|
||||
pdev = &omap_i2c_devices[bus_id - 1];
|
||||
|
||||
if (cpu_class_is_omap1())
|
||||
return omap1_i2c_add_bus(pdev, bus_id);
|
||||
else
|
||||
return omap2_i2c_add_bus(pdev, bus_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* omap_i2c_bus_setup - Process command line options for the I2C bus speed
|
||||
* @str: String of options
|
||||
|
@ -196,15 +196,15 @@ extern struct clk dummy_ck;
|
||||
#define INVERT_ENABLE (1 << 4) /* 0 enables, 1 disables */
|
||||
|
||||
/* Clksel_rate flags */
|
||||
#define DEFAULT_RATE (1 << 0)
|
||||
#define RATE_IN_242X (1 << 1)
|
||||
#define RATE_IN_243X (1 << 2)
|
||||
#define RATE_IN_343X (1 << 3) /* rates common to all 343X */
|
||||
#define RATE_IN_3430ES2 (1 << 4) /* 3430ES2 rates only */
|
||||
#define RATE_IN_36XX (1 << 5)
|
||||
#define RATE_IN_4430 (1 << 6)
|
||||
#define RATE_IN_242X (1 << 0)
|
||||
#define RATE_IN_243X (1 << 1)
|
||||
#define RATE_IN_3XXX (1 << 2) /* rates common to all OMAP3 */
|
||||
#define RATE_IN_3430ES2 (1 << 3) /* 3430ES2 rates only */
|
||||
#define RATE_IN_36XX (1 << 4)
|
||||
#define RATE_IN_4430 (1 << 5)
|
||||
|
||||
#define RATE_IN_24XX (RATE_IN_242X | RATE_IN_243X)
|
||||
|
||||
#define RATE_IN_3430ES2PLUS (RATE_IN_3430ES2 | RATE_IN_36XX)
|
||||
|
||||
#endif
|
||||
|
@ -31,9 +31,6 @@
|
||||
|
||||
struct sys_timer;
|
||||
|
||||
/* used by omap-smp.c and board-4430sdp.c */
|
||||
extern void __iomem *gic_cpu_base_addr;
|
||||
|
||||
extern void omap_map_common_io(void);
|
||||
extern struct sys_timer omap_timer;
|
||||
|
||||
|
@ -207,6 +207,9 @@
|
||||
/* 44xx control status register offset */
|
||||
#define OMAP44XX_CONTROL_STATUS 0x2c4
|
||||
|
||||
/* 44xx-only CONTROL_GENERAL register offsets */
|
||||
#define OMAP44XX_CONTROL_MMC1 0x628
|
||||
#define OMAP44XX_CONTROL_PBIAS_LITE 0x600
|
||||
/*
|
||||
* REVISIT: This list of registers is not comprehensive - there are more
|
||||
* that should be added.
|
||||
@ -252,6 +255,23 @@
|
||||
#define OMAP2_PBIASLITEPWRDNZ0 (1 << 1)
|
||||
#define OMAP2_PBIASLITEVMODE0 (1 << 0)
|
||||
|
||||
/* CONTROL_PBIAS_LITE bits for OMAP4 */
|
||||
#define OMAP4_MMC1_PWRDNZ (1 << 26)
|
||||
#define OMAP4_MMC1_PBIASLITE_HIZ_MODE (1 << 25)
|
||||
#define OMAP4_MMC1_PBIASLITE_SUPPLY_HI_OUT (1 << 24)
|
||||
#define OMAP4_MMC1_PBIASLITE_VMODE_ERROR (1 << 23)
|
||||
#define OMAP4_MMC1_PBIASLITE_PWRDNZ (1 << 22)
|
||||
#define OMAP4_MMC1_PBIASLITE_VMODE (1 << 21)
|
||||
#define OMAP4_USBC1_ICUSB_PWRDNZ (1 << 20)
|
||||
|
||||
#define OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP0 (1 << 31)
|
||||
#define OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP1 (1 << 30)
|
||||
#define OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP2 (1 << 29)
|
||||
#define OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP3 (1 << 28)
|
||||
#define OMAP4_CONTROL_SDMMC1_DR0_SPEEDCTRL (1 << 27)
|
||||
#define OMAP4_CONTROL_SDMMC1_DR1_SPEEDCTRL (1 << 26)
|
||||
#define OMAP4_CONTROL_SDMMC1_DR2_SPEEDCTRL (1 << 25)
|
||||
|
||||
/* CONTROL_PROG_IO1 bits */
|
||||
#define OMAP3630_PRG_SDMMC1_SPEEDCTRL (1 << 20)
|
||||
|
||||
|
@ -72,8 +72,8 @@
|
||||
IH_GPIO_BASE + (nr))
|
||||
|
||||
extern int omap_gpio_init(void); /* Call from board init only */
|
||||
extern void omap2_gpio_prepare_for_retention(void);
|
||||
extern void omap2_gpio_resume_after_retention(void);
|
||||
extern void omap2_gpio_prepare_for_idle(int power_state);
|
||||
extern void omap2_gpio_resume_after_idle(void);
|
||||
extern void omap_set_gpio_debounce(int gpio, int enable);
|
||||
extern void omap_set_gpio_debounce_time(int gpio, int enable);
|
||||
extern void omap_gpio_save_context(void);
|
||||
|
@ -428,4 +428,8 @@ void omap3_intc_resume_idle(void);
|
||||
|
||||
#include <mach/hardware.h>
|
||||
|
||||
#ifdef CONFIG_FIQ
|
||||
#define FIQ_START 1024
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -102,6 +102,10 @@ struct omap_mmc_platform_data {
|
||||
/* Regulator off remapped to sleep */
|
||||
unsigned vcc_aux_disable_is_sleep:1;
|
||||
|
||||
/* we can put the features above into this variable */
|
||||
#define HSMMC_HAS_PBIAS (1 << 0)
|
||||
unsigned features;
|
||||
|
||||
int switch_pin; /* gpio (card detect) */
|
||||
int gpio_wp; /* gpio (write protect) */
|
||||
|
||||
|
@ -61,9 +61,9 @@
|
||||
# define OMAP_NAME omap16xx
|
||||
# endif
|
||||
#endif
|
||||
#if (defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3))
|
||||
#ifdef CONFIG_ARCH_OMAP2PLUS
|
||||
# if (defined(OMAP_NAME) || defined(MULTI_OMAP1))
|
||||
# error "OMAP1 and OMAP2 can't be selected at the same time"
|
||||
# error "OMAP1 and OMAP2PLUS can't be selected at the same time"
|
||||
# endif
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_OMAP2420
|
||||
@ -82,12 +82,20 @@
|
||||
# define OMAP_NAME omap2430
|
||||
# endif
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_OMAP3430
|
||||
#ifdef CONFIG_ARCH_OMAP3
|
||||
# ifdef OMAP_NAME
|
||||
# undef MULTI_OMAP2
|
||||
# define MULTI_OMAP2
|
||||
# else
|
||||
# define OMAP_NAME omap3430
|
||||
# define OMAP_NAME omap3
|
||||
# endif
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_OMAP4
|
||||
# ifdef OMAP_NAME
|
||||
# undef MULTI_OMAP2
|
||||
# define MULTI_OMAP2
|
||||
# else
|
||||
# define OMAP_NAME omap4
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
@ -30,6 +30,7 @@
|
||||
#define OMAP4430_CM_BASE OMAP4430_CM1_BASE
|
||||
#define OMAP4430_CM2_BASE 0x4a008000
|
||||
#define OMAP4430_PRM_BASE 0x4a306000
|
||||
#define OMAP4430_PRCM_MPU_BASE 0x48243000
|
||||
#define OMAP44XX_GPMC_BASE 0x50000000
|
||||
#define OMAP443X_SCM_BASE 0x4a002000
|
||||
#define OMAP443X_CTRL_BASE 0x4a100000
|
||||
@ -48,5 +49,8 @@
|
||||
#define OMAP44XX_MAILBOX_BASE (L4_44XX_BASE + 0xF4000)
|
||||
#define OMAP44XX_HSUSB_OTG_BASE (L4_44XX_BASE + 0xAB000)
|
||||
|
||||
#define OMAP4_MMU1_BASE 0x55082000
|
||||
#define OMAP4_MMU2_BASE 0x4A066000
|
||||
|
||||
#endif /* __ASM_ARCH_OMAP44XX_H */
|
||||
|
||||
|
@ -176,9 +176,8 @@ struct omap_hwmod_addr_space {
|
||||
#define OCP_USER_SDMA (1 << 1)
|
||||
|
||||
/* omap_hwmod_ocp_if.flags bits */
|
||||
#define OCPIF_HAS_IDLEST (1 << 0)
|
||||
#define OCPIF_SWSUP_IDLE (1 << 1)
|
||||
#define OCPIF_CAN_BURST (1 << 2)
|
||||
#define OCPIF_SWSUP_IDLE (1 << 0)
|
||||
#define OCPIF_CAN_BURST (1 << 1)
|
||||
|
||||
/**
|
||||
* struct omap_hwmod_ocp_if - OCP interface data
|
||||
@ -327,14 +326,12 @@ struct omap_hwmod_omap2_prcm {
|
||||
|
||||
/**
|
||||
* struct omap_hwmod_omap4_prcm - OMAP4-specific PRCM data
|
||||
* @module_offs: PRCM submodule offset from the start of the PRM/CM1/CM2
|
||||
* @device_offs: device register offset from @module_offs
|
||||
* @clkctrl_reg: PRCM address of the clock control register
|
||||
* @submodule_wkdep_bit: bit shift of the WKDEP range
|
||||
*/
|
||||
struct omap_hwmod_omap4_prcm {
|
||||
u32 module_offs;
|
||||
u16 device_offs;
|
||||
u8 submodule_wkdep_bit;
|
||||
void __iomem *clkctrl_reg;
|
||||
u8 submodule_wkdep_bit;
|
||||
};
|
||||
|
||||
|
||||
@ -353,6 +350,8 @@ struct omap_hwmod_omap4_prcm {
|
||||
* when module is enabled, rather than the default, which is to
|
||||
* enable autoidle
|
||||
* HWMOD_SET_DEFAULT_CLOCKACT: program CLOCKACTIVITY bits at startup
|
||||
* HWMOD_NO_IDLEST : this module does not have idle status - this is the case
|
||||
* only for few initiator modules on OMAP2 & 3.
|
||||
*/
|
||||
#define HWMOD_SWSUP_SIDLE (1 << 0)
|
||||
#define HWMOD_SWSUP_MSTANDBY (1 << 1)
|
||||
@ -360,6 +359,7 @@ struct omap_hwmod_omap4_prcm {
|
||||
#define HWMOD_INIT_NO_IDLE (1 << 3)
|
||||
#define HWMOD_NO_OCP_AUTOIDLE (1 << 4)
|
||||
#define HWMOD_SET_DEFAULT_CLOCKACT (1 << 5)
|
||||
#define HWMOD_NO_IDLEST (1 << 6)
|
||||
|
||||
/*
|
||||
* omap_hwmod._int_flags definitions
|
||||
|
@ -31,6 +31,7 @@
|
||||
#define PWRDM_MAX_PWRSTS 4
|
||||
|
||||
/* Powerdomain allowable state bitfields */
|
||||
#define PWRSTS_ON (1 << PWRDM_POWER_ON)
|
||||
#define PWRSTS_OFF_ON ((1 << PWRDM_POWER_OFF) | \
|
||||
(1 << PWRDM_POWER_ON))
|
||||
|
||||
@ -49,6 +50,12 @@
|
||||
* in MEM bank 1 position. This is
|
||||
* true for OMAP3430
|
||||
*/
|
||||
#define PWRDM_HAS_LOWPOWERSTATECHANGE (1 << 2) /*
|
||||
* support to transition from a
|
||||
* sleep state to a lower sleep
|
||||
* state without waking up the
|
||||
* powerdomain
|
||||
*/
|
||||
|
||||
/*
|
||||
* Number of memory banks that are power-controllable. On OMAP4430, the
|
||||
|
@ -15,6 +15,20 @@
|
||||
|
||||
#include <linux/init.h>
|
||||
|
||||
/*
|
||||
* Memory entry used for the DEBUG_LL UART configuration. See also
|
||||
* uncompress.h and debug-macro.S.
|
||||
*
|
||||
* Note that using a memory location for storing the UART configuration
|
||||
* has at least two limitations:
|
||||
*
|
||||
* 1. Kernel uncompress code cannot overlap OMAP_UART_INFO as the
|
||||
* uncompress code could then partially overwrite itself
|
||||
* 2. We assume printascii is called at least once before paging_init,
|
||||
* and addruart has a chance to read OMAP_UART_INFO
|
||||
*/
|
||||
#define OMAP_UART_INFO (PHYS_OFFSET + 0x3ffc)
|
||||
|
||||
/* OMAP1 serial ports */
|
||||
#define OMAP1_UART1_BASE 0xfffb0000
|
||||
#define OMAP1_UART2_BASE 0xfffb0800
|
||||
@ -39,7 +53,7 @@
|
||||
|
||||
/* External port on Zoom2/3 */
|
||||
#define ZOOM_UART_BASE 0x10000000
|
||||
#define ZOOM_UART_VIRT 0xfb000000
|
||||
#define ZOOM_UART_VIRT 0xfa400000
|
||||
|
||||
#define OMAP_PORT_SHIFT 2
|
||||
#define OMAP7XX_PORT_SHIFT 0
|
||||
|
@ -20,27 +20,21 @@
|
||||
#include <linux/types.h>
|
||||
#include <linux/serial_reg.h>
|
||||
|
||||
#include <asm/memory.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
#include <plat/serial.h>
|
||||
|
||||
static volatile u8 *uart1_base;
|
||||
static int uart1_shift;
|
||||
|
||||
static volatile u8 *uart_base;
|
||||
static int uart_shift;
|
||||
|
||||
/*
|
||||
* Store the DEBUG_LL uart number into UART1 scratchpad register.
|
||||
* Store the DEBUG_LL uart number into memory.
|
||||
* See also debug-macro.S, and serial.c for related code.
|
||||
*
|
||||
* Please note that we currently assume that:
|
||||
* - UART1 clocks are enabled for register access
|
||||
* - UART1 scratchpad register can be used
|
||||
*/
|
||||
static void set_uart1_scratchpad(unsigned char port)
|
||||
static void set_omap_uart_info(unsigned char port)
|
||||
{
|
||||
uart1_base[UART_SCR << uart1_shift] = port;
|
||||
*(volatile u32 *)OMAP_UART_INFO = port;
|
||||
}
|
||||
|
||||
static void putc(int c)
|
||||
@ -60,42 +54,38 @@ static inline void flush(void)
|
||||
/*
|
||||
* Macros to configure UART1 and debug UART
|
||||
*/
|
||||
#define _DEBUG_LL_ENTRY(mach, uart1_phys, uart1_shft, \
|
||||
dbg_uart, dbg_shft, dbg_id) \
|
||||
#define _DEBUG_LL_ENTRY(mach, dbg_uart, dbg_shft, dbg_id) \
|
||||
if (machine_is_##mach()) { \
|
||||
uart1_base = (volatile u8 *)(uart1_phys); \
|
||||
uart1_shift = (uart1_shft); \
|
||||
uart_base = (volatile u8 *)(dbg_uart); \
|
||||
uart_shift = (dbg_shft); \
|
||||
port = (dbg_id); \
|
||||
set_uart1_scratchpad(port); \
|
||||
set_omap_uart_info(port); \
|
||||
break; \
|
||||
}
|
||||
|
||||
#define DEBUG_LL_OMAP7XX(p, mach) \
|
||||
_DEBUG_LL_ENTRY(mach, OMAP1_UART1_BASE, OMAP7XX_PORT_SHIFT, \
|
||||
OMAP1_UART##p##_BASE, OMAP7XX_PORT_SHIFT, OMAP1UART##p)
|
||||
_DEBUG_LL_ENTRY(mach, OMAP1_UART##p##_BASE, OMAP7XX_PORT_SHIFT, \
|
||||
OMAP1UART##p)
|
||||
|
||||
#define DEBUG_LL_OMAP1(p, mach) \
|
||||
_DEBUG_LL_ENTRY(mach, OMAP1_UART1_BASE, OMAP_PORT_SHIFT, \
|
||||
OMAP1_UART##p##_BASE, OMAP_PORT_SHIFT, OMAP1UART##p)
|
||||
_DEBUG_LL_ENTRY(mach, OMAP1_UART##p##_BASE, OMAP_PORT_SHIFT, \
|
||||
OMAP1UART##p)
|
||||
|
||||
#define DEBUG_LL_OMAP2(p, mach) \
|
||||
_DEBUG_LL_ENTRY(mach, OMAP2_UART1_BASE, OMAP_PORT_SHIFT, \
|
||||
OMAP2_UART##p##_BASE, OMAP_PORT_SHIFT, OMAP2UART##p)
|
||||
_DEBUG_LL_ENTRY(mach, OMAP2_UART##p##_BASE, OMAP_PORT_SHIFT, \
|
||||
OMAP2UART##p)
|
||||
|
||||
#define DEBUG_LL_OMAP3(p, mach) \
|
||||
_DEBUG_LL_ENTRY(mach, OMAP3_UART1_BASE, OMAP_PORT_SHIFT, \
|
||||
OMAP3_UART##p##_BASE, OMAP_PORT_SHIFT, OMAP3UART##p)
|
||||
_DEBUG_LL_ENTRY(mach, OMAP3_UART##p##_BASE, OMAP_PORT_SHIFT, \
|
||||
OMAP3UART##p)
|
||||
|
||||
#define DEBUG_LL_OMAP4(p, mach) \
|
||||
_DEBUG_LL_ENTRY(mach, OMAP4_UART1_BASE, OMAP_PORT_SHIFT, \
|
||||
OMAP4_UART##p##_BASE, OMAP_PORT_SHIFT, OMAP4UART##p)
|
||||
_DEBUG_LL_ENTRY(mach, OMAP4_UART##p##_BASE, OMAP_PORT_SHIFT, \
|
||||
OMAP4UART##p)
|
||||
|
||||
/* Zoom2/3 shift is different for UART1 and external port */
|
||||
#define DEBUG_LL_ZOOM(mach) \
|
||||
_DEBUG_LL_ENTRY(mach, OMAP2_UART1_BASE, OMAP_PORT_SHIFT, \
|
||||
ZOOM_UART_BASE, ZOOM_PORT_SHIFT, ZOOM_UART)
|
||||
_DEBUG_LL_ENTRY(mach, ZOOM_UART_BASE, ZOOM_PORT_SHIFT, ZOOM_UART)
|
||||
|
||||
static inline void __arch_decomp_setup(unsigned long arch_id)
|
||||
{
|
||||
|
@ -25,6 +25,11 @@
|
||||
|
||||
#include "iopgtable.h"
|
||||
|
||||
#define for_each_iotlb_cr(obj, n, __i, cr) \
|
||||
for (__i = 0; \
|
||||
(__i < (n)) && (cr = __iotlb_read_cr((obj), __i), true); \
|
||||
__i++)
|
||||
|
||||
/* accommodate the difference between omap1 and omap2/3 */
|
||||
static const struct iommu_functions *arch_iommu;
|
||||
|
||||
@ -172,15 +177,12 @@ static void iotlb_lock_get(struct iommu *obj, struct iotlb_lock *l)
|
||||
l->base = MMU_LOCK_BASE(val);
|
||||
l->vict = MMU_LOCK_VICT(val);
|
||||
|
||||
BUG_ON(l->base != 0); /* Currently no preservation is used */
|
||||
}
|
||||
|
||||
static void iotlb_lock_set(struct iommu *obj, struct iotlb_lock *l)
|
||||
{
|
||||
u32 val;
|
||||
|
||||
BUG_ON(l->base != 0); /* Currently no preservation is used */
|
||||
|
||||
val = (l->base << MMU_LOCK_BASE_SHIFT);
|
||||
val |= (l->vict << MMU_LOCK_VICT_SHIFT);
|
||||
|
||||
@ -214,6 +216,20 @@ static inline ssize_t iotlb_dump_cr(struct iommu *obj, struct cr_regs *cr,
|
||||
return arch_iommu->dump_cr(obj, cr, buf);
|
||||
}
|
||||
|
||||
/* only used in iotlb iteration for-loop */
|
||||
static struct cr_regs __iotlb_read_cr(struct iommu *obj, int n)
|
||||
{
|
||||
struct cr_regs cr;
|
||||
struct iotlb_lock l;
|
||||
|
||||
iotlb_lock_get(obj, &l);
|
||||
l.vict = n;
|
||||
iotlb_lock_set(obj, &l);
|
||||
iotlb_read_cr(obj, &cr);
|
||||
|
||||
return cr;
|
||||
}
|
||||
|
||||
/**
|
||||
* load_iotlb_entry - Set an iommu tlb entry
|
||||
* @obj: target iommu
|
||||
@ -221,7 +237,6 @@ static inline ssize_t iotlb_dump_cr(struct iommu *obj, struct cr_regs *cr,
|
||||
**/
|
||||
int load_iotlb_entry(struct iommu *obj, struct iotlb_entry *e)
|
||||
{
|
||||
int i;
|
||||
int err = 0;
|
||||
struct iotlb_lock l;
|
||||
struct cr_regs *cr;
|
||||
@ -231,22 +246,31 @@ int load_iotlb_entry(struct iommu *obj, struct iotlb_entry *e)
|
||||
|
||||
clk_enable(obj->clk);
|
||||
|
||||
for (i = 0; i < obj->nr_tlb_entries; i++) {
|
||||
struct cr_regs tmp;
|
||||
|
||||
iotlb_lock_get(obj, &l);
|
||||
l.vict = i;
|
||||
iotlb_lock_set(obj, &l);
|
||||
iotlb_read_cr(obj, &tmp);
|
||||
if (!iotlb_cr_valid(&tmp))
|
||||
break;
|
||||
}
|
||||
|
||||
if (i == obj->nr_tlb_entries) {
|
||||
dev_dbg(obj->dev, "%s: full: no entry\n", __func__);
|
||||
iotlb_lock_get(obj, &l);
|
||||
if (l.base == obj->nr_tlb_entries) {
|
||||
dev_warn(obj->dev, "%s: preserve entries full\n", __func__);
|
||||
err = -EBUSY;
|
||||
goto out;
|
||||
}
|
||||
if (!e->prsvd) {
|
||||
int i;
|
||||
struct cr_regs tmp;
|
||||
|
||||
for_each_iotlb_cr(obj, obj->nr_tlb_entries, i, tmp)
|
||||
if (!iotlb_cr_valid(&tmp))
|
||||
break;
|
||||
|
||||
if (i == obj->nr_tlb_entries) {
|
||||
dev_dbg(obj->dev, "%s: full: no entry\n", __func__);
|
||||
err = -EBUSY;
|
||||
goto out;
|
||||
}
|
||||
|
||||
iotlb_lock_get(obj, &l);
|
||||
} else {
|
||||
l.vict = l.base;
|
||||
iotlb_lock_set(obj, &l);
|
||||
}
|
||||
|
||||
cr = iotlb_alloc_cr(obj, e);
|
||||
if (IS_ERR(cr)) {
|
||||
@ -257,9 +281,11 @@ int load_iotlb_entry(struct iommu *obj, struct iotlb_entry *e)
|
||||
iotlb_load_cr(obj, cr);
|
||||
kfree(cr);
|
||||
|
||||
if (e->prsvd)
|
||||
l.base++;
|
||||
/* increment victim for next tlb load */
|
||||
if (++l.vict == obj->nr_tlb_entries)
|
||||
l.vict = 0;
|
||||
l.vict = l.base;
|
||||
iotlb_lock_set(obj, &l);
|
||||
out:
|
||||
clk_disable(obj->clk);
|
||||
@ -276,20 +302,15 @@ EXPORT_SYMBOL_GPL(load_iotlb_entry);
|
||||
**/
|
||||
void flush_iotlb_page(struct iommu *obj, u32 da)
|
||||
{
|
||||
struct iotlb_lock l;
|
||||
int i;
|
||||
struct cr_regs cr;
|
||||
|
||||
clk_enable(obj->clk);
|
||||
|
||||
for (i = 0; i < obj->nr_tlb_entries; i++) {
|
||||
struct cr_regs cr;
|
||||
for_each_iotlb_cr(obj, obj->nr_tlb_entries, i, cr) {
|
||||
u32 start;
|
||||
size_t bytes;
|
||||
|
||||
iotlb_lock_get(obj, &l);
|
||||
l.vict = i;
|
||||
iotlb_lock_set(obj, &l);
|
||||
iotlb_read_cr(obj, &cr);
|
||||
if (!iotlb_cr_valid(&cr))
|
||||
continue;
|
||||
|
||||
@ -299,7 +320,6 @@ void flush_iotlb_page(struct iommu *obj, u32 da)
|
||||
if ((start <= da) && (da < start + bytes)) {
|
||||
dev_dbg(obj->dev, "%s: %08x<=%08x(%x)\n",
|
||||
__func__, start, da, bytes);
|
||||
iotlb_load_cr(obj, &cr);
|
||||
iommu_write_reg(obj, 1, MMU_FLUSH_ENTRY);
|
||||
}
|
||||
}
|
||||
@ -370,26 +390,19 @@ EXPORT_SYMBOL_GPL(iommu_dump_ctx);
|
||||
static int __dump_tlb_entries(struct iommu *obj, struct cr_regs *crs, int num)
|
||||
{
|
||||
int i;
|
||||
struct iotlb_lock saved, l;
|
||||
struct iotlb_lock saved;
|
||||
struct cr_regs tmp;
|
||||
struct cr_regs *p = crs;
|
||||
|
||||
clk_enable(obj->clk);
|
||||
|
||||
iotlb_lock_get(obj, &saved);
|
||||
memcpy(&l, &saved, sizeof(saved));
|
||||
|
||||
for (i = 0; i < num; i++) {
|
||||
struct cr_regs tmp;
|
||||
|
||||
iotlb_lock_get(obj, &l);
|
||||
l.vict = i;
|
||||
iotlb_lock_set(obj, &l);
|
||||
iotlb_read_cr(obj, &tmp);
|
||||
for_each_iotlb_cr(obj, num, i, tmp) {
|
||||
if (!iotlb_cr_valid(&tmp))
|
||||
continue;
|
||||
|
||||
*p++ = tmp;
|
||||
}
|
||||
|
||||
iotlb_lock_set(obj, &saved);
|
||||
clk_disable(obj->clk);
|
||||
|
||||
@ -503,6 +516,12 @@ static int iopgd_alloc_section(struct iommu *obj, u32 da, u32 pa, u32 prot)
|
||||
{
|
||||
u32 *iopgd = iopgd_offset(obj, da);
|
||||
|
||||
if ((da | pa) & ~IOSECTION_MASK) {
|
||||
dev_err(obj->dev, "%s: %08x:%08x should aligned on %08lx\n",
|
||||
__func__, da, pa, IOSECTION_SIZE);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
*iopgd = (pa & IOSECTION_MASK) | prot | IOPGD_SECTION;
|
||||
flush_iopgd_range(iopgd, iopgd);
|
||||
return 0;
|
||||
@ -513,6 +532,12 @@ static int iopgd_alloc_super(struct iommu *obj, u32 da, u32 pa, u32 prot)
|
||||
u32 *iopgd = iopgd_offset(obj, da);
|
||||
int i;
|
||||
|
||||
if ((da | pa) & ~IOSUPER_MASK) {
|
||||
dev_err(obj->dev, "%s: %08x:%08x should aligned on %08lx\n",
|
||||
__func__, da, pa, IOSUPER_SIZE);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
*(iopgd + i) = (pa & IOSUPER_MASK) | prot | IOPGD_SUPER;
|
||||
flush_iopgd_range(iopgd, iopgd + 15);
|
||||
@ -542,6 +567,12 @@ static int iopte_alloc_large(struct iommu *obj, u32 da, u32 pa, u32 prot)
|
||||
u32 *iopte = iopte_alloc(obj, iopgd, da);
|
||||
int i;
|
||||
|
||||
if ((da | pa) & ~IOLARGE_MASK) {
|
||||
dev_err(obj->dev, "%s: %08x:%08x should aligned on %08lx\n",
|
||||
__func__, da, pa, IOLARGE_SIZE);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (IS_ERR(iopte))
|
||||
return PTR_ERR(iopte);
|
||||
|
||||
|
@ -287,16 +287,19 @@ static struct iovm_struct *alloc_iovm_area(struct iommu *obj, u32 da,
|
||||
prev_end = 0;
|
||||
list_for_each_entry(tmp, &obj->mmap, list) {
|
||||
|
||||
if ((prev_end <= start) && (start + bytes < tmp->da_start))
|
||||
if (prev_end >= start)
|
||||
break;
|
||||
|
||||
if (start + bytes < tmp->da_start)
|
||||
goto found;
|
||||
|
||||
if (flags & IOVMF_DA_ANON)
|
||||
start = roundup(tmp->da_end, alignement);
|
||||
start = roundup(tmp->da_end + 1, alignement);
|
||||
|
||||
prev_end = tmp->da_end;
|
||||
}
|
||||
|
||||
if ((start >= prev_end) && (ULONG_MAX - start >= bytes))
|
||||
if ((start > prev_end) && (ULONG_MAX - start >= bytes))
|
||||
goto found;
|
||||
|
||||
dev_dbg(obj->dev, "%s: no space to fit %08x(%x) flags: %08x\n",
|
||||
|
@ -2,10 +2,10 @@
|
||||
* omap_device implementation
|
||||
*
|
||||
* Copyright (C) 2009 Nokia Corporation
|
||||
* Paul Walmsley
|
||||
* Paul Walmsley, Kevin Hilman
|
||||
*
|
||||
* Developed in collaboration with (alphabetical order): Benoit
|
||||
* Cousson, Kevin Hilman, Tony Lindgren, Rajendra Nayak, Vikram
|
||||
* Cousson, Thara Gopinath, Tony Lindgren, Rajendra Nayak, Vikram
|
||||
* Pandita, Sakari Poussa, Anand Sawant, Santosh Shilimkar, Richard
|
||||
* Woodruff
|
||||
*
|
||||
|
@ -437,6 +437,20 @@ static inline int omap34xx_sram_init(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP4
|
||||
int __init omap44xx_sram_init(void)
|
||||
{
|
||||
printk(KERN_ERR "FIXME: %s not implemented\n", __func__);
|
||||
|
||||
return -ENODEV;
|
||||
}
|
||||
#else
|
||||
static inline int omap44xx_sram_init(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
int __init omap_sram_init(void)
|
||||
{
|
||||
omap_detect_sram();
|
||||
@ -451,7 +465,7 @@ int __init omap_sram_init(void)
|
||||
else if (cpu_is_omap34xx())
|
||||
omap34xx_sram_init();
|
||||
else if (cpu_is_omap44xx())
|
||||
omap34xx_sram_init(); /* FIXME: */
|
||||
omap44xx_sram_init();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user