diff options
author | Benoit Cousson <b-cousson@ti.com> | 2011-02-02 07:04:36 -0500 |
---|---|---|
committer | Benoit Cousson <b-cousson@ti.com> | 2011-02-17 04:57:58 -0500 |
commit | d11c217f1a8f9ea2b2c89b8a533396482a36e8c0 (patch) | |
tree | 29d030d39b0f6bf87d889f4e25dfd9dc5b7cfedc | |
parent | 85e2efbb1db9a18d218006706d6e4fbeb0216213 (diff) |
OMAP4: hwmod data: Add hwspinlock
Add hwspinlock hwmod data for OMAP4 chip
Signed-off-by: Cousson, Benoit <b-cousson@ti.com>
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Cc: Paul Walmsley <paul@pwsan.com>
[b-cousson@ti.com: Move the data to keep the original
order and add missing SIDLE_SMART_WKUP flag]
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 65 |
1 files changed, 64 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index c2806bd11fbf..46da576ffaf8 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c | |||
@@ -555,7 +555,6 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = { | |||
555 | * sl2if | 555 | * sl2if |
556 | * slimbus1 | 556 | * slimbus1 |
557 | * slimbus2 | 557 | * slimbus2 |
558 | * spinlock | ||
559 | * timer1 | 558 | * timer1 |
560 | * timer10 | 559 | * timer10 |
561 | * timer11 | 560 | * timer11 |
@@ -1639,6 +1638,67 @@ static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod = { | |||
1639 | }; | 1638 | }; |
1640 | 1639 | ||
1641 | /* | 1640 | /* |
1641 | * 'spinlock' class | ||
1642 | * spinlock provides hardware assistance for synchronizing the processes | ||
1643 | * running on multiple processors | ||
1644 | */ | ||
1645 | |||
1646 | static struct omap_hwmod_class_sysconfig omap44xx_spinlock_sysc = { | ||
1647 | .rev_offs = 0x0000, | ||
1648 | .sysc_offs = 0x0010, | ||
1649 | .syss_offs = 0x0014, | ||
1650 | .sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY | | ||
1651 | SYSC_HAS_ENAWAKEUP | SYSC_HAS_SIDLEMODE | | ||
1652 | SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS), | ||
1653 | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | | ||
1654 | SIDLE_SMART_WKUP), | ||
1655 | .sysc_fields = &omap_hwmod_sysc_type1, | ||
1656 | }; | ||
1657 | |||
1658 | static struct omap_hwmod_class omap44xx_spinlock_hwmod_class = { | ||
1659 | .name = "spinlock", | ||
1660 | .sysc = &omap44xx_spinlock_sysc, | ||
1661 | }; | ||
1662 | |||
1663 | /* spinlock */ | ||
1664 | static struct omap_hwmod omap44xx_spinlock_hwmod; | ||
1665 | static struct omap_hwmod_addr_space omap44xx_spinlock_addrs[] = { | ||
1666 | { | ||
1667 | .pa_start = 0x4a0f6000, | ||
1668 | .pa_end = 0x4a0f6fff, | ||
1669 | .flags = ADDR_TYPE_RT | ||
1670 | }, | ||
1671 | }; | ||
1672 | |||
1673 | /* l4_cfg -> spinlock */ | ||
1674 | static struct omap_hwmod_ocp_if omap44xx_l4_cfg__spinlock = { | ||
1675 | .master = &omap44xx_l4_cfg_hwmod, | ||
1676 | .slave = &omap44xx_spinlock_hwmod, | ||
1677 | .clk = "l4_div_ck", | ||
1678 | .addr = omap44xx_spinlock_addrs, | ||
1679 | .addr_cnt = ARRAY_SIZE(omap44xx_spinlock_addrs), | ||
1680 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
1681 | }; | ||
1682 | |||
1683 | /* spinlock slave ports */ | ||
1684 | static struct omap_hwmod_ocp_if *omap44xx_spinlock_slaves[] = { | ||
1685 | &omap44xx_l4_cfg__spinlock, | ||
1686 | }; | ||
1687 | |||
1688 | static struct omap_hwmod omap44xx_spinlock_hwmod = { | ||
1689 | .name = "spinlock", | ||
1690 | .class = &omap44xx_spinlock_hwmod_class, | ||
1691 | .prcm = { | ||
1692 | .omap4 = { | ||
1693 | .clkctrl_reg = OMAP4430_CM_L4CFG_HW_SEM_CLKCTRL, | ||
1694 | }, | ||
1695 | }, | ||
1696 | .slaves = omap44xx_spinlock_slaves, | ||
1697 | .slaves_cnt = ARRAY_SIZE(omap44xx_spinlock_slaves), | ||
1698 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
1699 | }; | ||
1700 | |||
1701 | /* | ||
1642 | * 'uart' class | 1702 | * 'uart' class |
1643 | * universal asynchronous receiver/transmitter (uart) | 1703 | * universal asynchronous receiver/transmitter (uart) |
1644 | */ | 1704 | */ |
@@ -2058,6 +2118,9 @@ static __initdata struct omap_hwmod *omap44xx_hwmods[] = { | |||
2058 | &omap44xx_smartreflex_iva_hwmod, | 2118 | &omap44xx_smartreflex_iva_hwmod, |
2059 | &omap44xx_smartreflex_mpu_hwmod, | 2119 | &omap44xx_smartreflex_mpu_hwmod, |
2060 | 2120 | ||
2121 | /* spinlock class */ | ||
2122 | &omap44xx_spinlock_hwmod, | ||
2123 | |||
2061 | /* uart class */ | 2124 | /* uart class */ |
2062 | &omap44xx_uart1_hwmod, | 2125 | &omap44xx_uart1_hwmod, |
2063 | &omap44xx_uart2_hwmod, | 2126 | &omap44xx_uart2_hwmod, |